github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/blockstorage/noauth/snapshots_test.go (about)

     1  //go:build acceptance || blockstorage || snapshots
     2  
     3  package noauth
     4  
     5  import (
     6  	"context"
     7  	"testing"
     8  
     9  	"github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/clients"
    10  	"github.com/vnpaycloud-console/gophercloud/v2/internal/acceptance/tools"
    11  	"github.com/vnpaycloud-console/gophercloud/v2/openstack/blockstorage/v3/snapshots"
    12  )
    13  
    14  func TestSnapshotsList(t *testing.T) {
    15  	clients.RequireCinderNoAuth(t)
    16  
    17  	client, err := clients.NewBlockStorageV3NoAuthClient()
    18  	if err != nil {
    19  		t.Fatalf("Unable to create a blockstorage client: %v", err)
    20  	}
    21  
    22  	allPages, err := snapshots.List(client, snapshots.ListOpts{}).AllPages(context.TODO())
    23  	if err != nil {
    24  		t.Fatalf("Unable to retrieve snapshots: %v", err)
    25  	}
    26  
    27  	allSnapshots, err := snapshots.ExtractSnapshots(allPages)
    28  	if err != nil {
    29  		t.Fatalf("Unable to extract snapshots: %v", err)
    30  	}
    31  
    32  	for _, snapshot := range allSnapshots {
    33  		tools.PrintResource(t, snapshot)
    34  	}
    35  }
    36  
    37  func TestSnapshotsCreateDelete(t *testing.T) {
    38  	clients.RequireCinderNoAuth(t)
    39  
    40  	client, err := clients.NewBlockStorageV3NoAuthClient()
    41  	if err != nil {
    42  		t.Fatalf("Unable to create a blockstorage client: %v", err)
    43  	}
    44  
    45  	volume, err := CreateVolume(t, client)
    46  	if err != nil {
    47  		t.Fatalf("Unable to create volume: %v", err)
    48  	}
    49  	defer DeleteVolume(t, client, volume)
    50  
    51  	snapshot, err := CreateSnapshot(t, client, volume)
    52  	if err != nil {
    53  		t.Fatalf("Unable to create snapshot: %v", err)
    54  	}
    55  	defer DeleteSnapshot(t, client, snapshot)
    56  
    57  	newSnapshot, err := snapshots.Get(context.TODO(), client, snapshot.ID).Extract()
    58  	if err != nil {
    59  		t.Errorf("Unable to retrieve snapshot: %v", err)
    60  	}
    61  
    62  	tools.PrintResource(t, newSnapshot)
    63  }