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  }