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  }