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

     1  //go:build acceptance || blockstorage
     2  // +build acceptance blockstorage
     3  
     4  package v1
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/gophercloud/gophercloud/internal/acceptance/clients"
    10  	"github.com/gophercloud/gophercloud/internal/acceptance/tools"
    11  	"github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes"
    12  	th "github.com/gophercloud/gophercloud/testhelper"
    13  )
    14  
    15  func TestVolumesList(t *testing.T) {
    16  	clients.SkipReleasesAbove(t, "stable/icehouse")
    17  	client, err := clients.NewBlockStorageV1Client()
    18  	if err != nil {
    19  		t.Fatalf("Unable to create a blockstorage client: %v", err)
    20  	}
    21  
    22  	allPages, err := volumes.List(client, volumes.ListOpts{}).AllPages()
    23  	if err != nil {
    24  		t.Fatalf("Unable to retrieve volumes: %v", err)
    25  	}
    26  
    27  	allVolumes, err := volumes.ExtractVolumes(allPages)
    28  	if err != nil {
    29  		t.Fatalf("Unable to extract volumes: %v", err)
    30  	}
    31  
    32  	for _, volume := range allVolumes {
    33  		tools.PrintResource(t, volume)
    34  	}
    35  }
    36  
    37  func TestVolumesCreateDestroy(t *testing.T) {
    38  	clients.SkipReleasesAbove(t, "stable/icehouse")
    39  	client, err := clients.NewBlockStorageV1Client()
    40  	if err != nil {
    41  		t.Fatalf("Unable to create blockstorage client: %v", err)
    42  	}
    43  
    44  	volume, err := CreateVolume(t, client)
    45  	if err != nil {
    46  		t.Fatalf("Unable to create volume: %v", err)
    47  	}
    48  	defer DeleteVolume(t, client, volume)
    49  
    50  	newVolume, err := volumes.Get(client, volume.ID).Extract()
    51  	if err != nil {
    52  		t.Errorf("Unable to retrieve volume: %v", err)
    53  	}
    54  
    55  	tools.PrintResource(t, newVolume)
    56  	th.AssertEquals(t, volume.Name, newVolume.Name)
    57  	th.AssertEquals(t, volume.Description, newVolume.Description)
    58  
    59  	// Update volume
    60  	updatedVolumeName := ""
    61  	updatedVolumeDescription := ""
    62  	updateOpts := volumes.UpdateOpts{
    63  		Name:        &updatedVolumeName,
    64  		Description: &updatedVolumeDescription,
    65  	}
    66  	updatedVolume, err := volumes.Update(client, volume.ID, updateOpts).Extract()
    67  	th.AssertNoErr(t, err)
    68  
    69  	tools.PrintResource(t, updatedVolume)
    70  	th.AssertEquals(t, updatedVolume.Name, updatedVolumeName)
    71  	th.AssertEquals(t, updatedVolume.Description, updatedVolumeDescription)
    72  }