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