github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/blockstorage/extensions/volumetenants_test.go (about)

     1  //go:build acceptance || blockstorage
     2  // +build acceptance blockstorage
     3  
     4  package extensions
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/gophercloud/gophercloud/internal/acceptance/clients"
    10  	blockstorage "github.com/gophercloud/gophercloud/internal/acceptance/openstack/blockstorage/v3"
    11  	"github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumetenants"
    12  	"github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes"
    13  	th "github.com/gophercloud/gophercloud/testhelper"
    14  )
    15  
    16  func TestVolumeTenants(t *testing.T) {
    17  	type volumeWithTenant struct {
    18  		volumes.Volume
    19  		volumetenants.VolumeTenantExt
    20  	}
    21  
    22  	var allVolumes []volumeWithTenant
    23  
    24  	client, err := clients.NewBlockStorageV3Client()
    25  	th.AssertNoErr(t, err)
    26  
    27  	listOpts := volumes.ListOpts{
    28  		Name: "I SHOULD NOT EXIST",
    29  	}
    30  	allPages, err := volumes.List(client, listOpts).AllPages()
    31  	th.AssertNoErr(t, err)
    32  
    33  	err = volumes.ExtractVolumesInto(allPages, &allVolumes)
    34  	th.AssertNoErr(t, err)
    35  	th.AssertEquals(t, 0, len(allVolumes))
    36  
    37  	volume1, err := blockstorage.CreateVolume(t, client)
    38  	th.AssertNoErr(t, err)
    39  	defer blockstorage.DeleteVolume(t, client, volume1)
    40  
    41  	allPages, err = volumes.List(client, nil).AllPages()
    42  	th.AssertNoErr(t, err)
    43  
    44  	err = volumes.ExtractVolumesInto(allPages, &allVolumes)
    45  	th.AssertNoErr(t, err)
    46  	th.AssertEquals(t, true, len(allVolumes) > 0)
    47  }