github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/sharedfilesystems/v2/sharetransfers.go (about) 1 package v2 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/gophercloud/gophercloud" 8 "github.com/gophercloud/gophercloud/openstack/sharedfilesystems/v2/shares" 9 "github.com/gophercloud/gophercloud/openstack/sharedfilesystems/v2/sharetransfers" 10 ) 11 12 func CreateTransferRequest(t *testing.T, client *gophercloud.ServiceClient, share *shares.Share, name string) (*sharetransfers.Transfer, error) { 13 opts := sharetransfers.CreateOpts{ 14 ShareID: share.ID, 15 Name: name, 16 } 17 transfer, err := sharetransfers.Create(client, opts).Extract() 18 if err != nil { 19 return nil, fmt.Errorf("failed to create a share transfer request: %s", err) 20 } 21 22 return transfer, nil 23 } 24 25 func AcceptTransfer(t *testing.T, client *gophercloud.ServiceClient, transferRequest *sharetransfers.Transfer) error { 26 opts := sharetransfers.AcceptOpts{ 27 AuthKey: transferRequest.AuthKey, 28 ClearAccessRules: true, 29 } 30 err := sharetransfers.Accept(client, transferRequest.ID, opts).ExtractErr() 31 if err != nil { 32 return fmt.Errorf("failed to accept a share transfer request: %s", err) 33 } 34 35 return nil 36 } 37 38 func DeleteTransferRequest(t *testing.T, client *gophercloud.ServiceClient, transfer *sharetransfers.Transfer) { 39 err := sharetransfers.Delete(client, transfer.ID).ExtractErr() 40 if err != nil { 41 if _, ok := err.(gophercloud.ErrDefault404); ok { 42 return 43 } 44 t.Errorf("Unable to delete share transfer %s: %v", transfer.ID, err) 45 } 46 }