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

     1  //go:build acceptance || blockstorage || backups
     2  
     3  package v3
     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/openstack/blockstorage/v3/backups"
    11  
    12  	th "github.com/vnpaycloud-console/gophercloud/v2/testhelper"
    13  )
    14  
    15  func TestBackupsCRUD(t *testing.T) {
    16  	blockClient, err := clients.NewBlockStorageV3Client()
    17  	th.AssertNoErr(t, err)
    18  
    19  	volume, err := CreateVolume(t, blockClient)
    20  	th.AssertNoErr(t, err)
    21  	defer DeleteVolume(t, blockClient, volume)
    22  
    23  	backup, err := CreateBackup(t, blockClient, volume.ID)
    24  	th.AssertNoErr(t, err)
    25  	defer DeleteBackup(t, blockClient, backup.ID)
    26  
    27  	allPages, err := backups.List(blockClient, nil).AllPages(context.TODO())
    28  	th.AssertNoErr(t, err)
    29  
    30  	allBackups, err := backups.ExtractBackups(allPages)
    31  	th.AssertNoErr(t, err)
    32  
    33  	var found bool
    34  	for _, v := range allBackups {
    35  		if backup.Name == v.Name {
    36  			found = true
    37  		}
    38  	}
    39  
    40  	th.AssertEquals(t, found, true)
    41  }
    42  
    43  func TestBackupsResetStatus(t *testing.T) {
    44  	blockClient, err := clients.NewBlockStorageV3Client()
    45  	th.AssertNoErr(t, err)
    46  
    47  	volume, err := CreateVolume(t, blockClient)
    48  	th.AssertNoErr(t, err)
    49  	defer DeleteVolume(t, blockClient, volume)
    50  
    51  	backup, err := CreateBackup(t, blockClient, volume.ID)
    52  	th.AssertNoErr(t, err)
    53  	defer DeleteBackup(t, blockClient, backup.ID)
    54  
    55  	err = ResetBackupStatus(t, blockClient, backup, "error")
    56  	th.AssertNoErr(t, err)
    57  
    58  	err = ResetBackupStatus(t, blockClient, backup, "available")
    59  	th.AssertNoErr(t, err)
    60  }
    61  
    62  func TestBackupsForceDelete(t *testing.T) {
    63  	blockClient, err := clients.NewBlockStorageV3Client()
    64  	th.AssertNoErr(t, err)
    65  
    66  	volume, err := CreateVolume(t, blockClient)
    67  	th.AssertNoErr(t, err)
    68  	defer DeleteVolume(t, blockClient, volume)
    69  
    70  	backup, err := CreateBackup(t, blockClient, volume.ID)
    71  	th.AssertNoErr(t, err)
    72  	defer DeleteBackup(t, blockClient, backup.ID)
    73  
    74  	err = WaitForBackupStatus(blockClient, backup.ID, "available")
    75  	th.AssertNoErr(t, err)
    76  
    77  	err = backups.ForceDelete(context.TODO(), blockClient, backup.ID).ExtractErr()
    78  	th.AssertNoErr(t, err)
    79  
    80  	err = WaitForBackupStatus(blockClient, backup.ID, "deleted")
    81  	th.AssertNoErr(t, err)
    82  }