github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/sharedfilesystems/v2/shareaccessrules_test.go (about)

     1  //go:build acceptance
     2  // +build acceptance
     3  
     4  package v2
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/gophercloud/gophercloud/internal/acceptance/clients"
    10  	"github.com/gophercloud/gophercloud/internal/acceptance/tools"
    11  	th "github.com/gophercloud/gophercloud/testhelper"
    12  )
    13  
    14  func TestShareAccessRulesGet(t *testing.T) {
    15  	client, err := clients.NewSharedFileSystemV2Client()
    16  	if err != nil {
    17  		t.Fatalf("Unable to create a shared file system client: %v", err)
    18  	}
    19  
    20  	client.Microversion = "2.49"
    21  
    22  	share, err := CreateShare(t, client)
    23  	if err != nil {
    24  		t.Fatalf("Unable to create a share: %v", err)
    25  	}
    26  
    27  	defer DeleteShare(t, client, share)
    28  
    29  	addedAccessRight, err := GrantAccess(t, client, share)
    30  	if err != nil {
    31  		t.Fatalf("Unable to grant access to share %s: %v", share.ID, err)
    32  	}
    33  
    34  	addedShareAccess := AccessRightToShareAccess(addedAccessRight)
    35  
    36  	accessRule, err := ShareAccessRuleGet(t, client, addedShareAccess.ID)
    37  	if err != nil {
    38  		t.Fatalf("Unable to get share access rule for share %s: %v", share.ID, err)
    39  	}
    40  
    41  	if err = WaitForShareAccessRule(t, client, accessRule, "active"); err != nil {
    42  		t.Fatalf("Unable to wait for share access rule to achieve 'active' state: %v", err)
    43  	}
    44  
    45  	tools.PrintResource(t, accessRule)
    46  
    47  	th.AssertEquals(t, addedShareAccess.ID, accessRule.ID)
    48  	th.AssertEquals(t, addedShareAccess.AccessType, accessRule.AccessType)
    49  	th.AssertEquals(t, addedShareAccess.AccessLevel, accessRule.AccessLevel)
    50  	th.AssertEquals(t, addedShareAccess.AccessTo, accessRule.AccessTo)
    51  	th.AssertEquals(t, addedShareAccess.AccessKey, accessRule.AccessKey)
    52  	th.AssertEquals(t, share.ID, accessRule.ShareID)
    53  	th.AssertEquals(t, "active", accessRule.State)
    54  }
    55  
    56  func TestShareAccessRulesList(t *testing.T) {
    57  	client, err := clients.NewSharedFileSystemV2Client()
    58  	if err != nil {
    59  		t.Fatalf("Unable to create a shared file system client: %v", err)
    60  	}
    61  
    62  	client.Microversion = "2.49"
    63  
    64  	share, err := CreateShare(t, client)
    65  	if err != nil {
    66  		t.Fatalf("Unable to create a share: %v", err)
    67  	}
    68  
    69  	defer DeleteShare(t, client, share)
    70  
    71  	addedAccessRight, err := GrantAccess(t, client, share)
    72  	if err != nil {
    73  		t.Fatalf("Unable to grant access to share %s: %v", share.ID, err)
    74  	}
    75  
    76  	addedShareAccess := AccessRightToShareAccess(addedAccessRight)
    77  
    78  	if err = WaitForShareAccessRule(t, client, addedShareAccess, "active"); err != nil {
    79  		t.Fatalf("Unable to wait for share access rule to achieve 'active' state: %v", err)
    80  	}
    81  
    82  	accessRules, err := ShareAccessRuleList(t, client, share.ID)
    83  	if err != nil {
    84  		t.Logf("Unable to list share access rules for share %s: %v", share.ID, err)
    85  	}
    86  
    87  	tools.PrintResource(t, accessRules)
    88  
    89  	th.AssertEquals(t, 1, len(accessRules))
    90  
    91  	accessRule := accessRules[0]
    92  
    93  	if err = WaitForShareAccessRule(t, client, &accessRule, "active"); err != nil {
    94  		t.Fatalf("Unable to wait for share access rule to achieve 'active' state: %v", err)
    95  	}
    96  
    97  	th.AssertEquals(t, addedShareAccess.ID, accessRule.ID)
    98  	th.AssertEquals(t, addedShareAccess.AccessType, accessRule.AccessType)
    99  	th.AssertEquals(t, addedShareAccess.AccessLevel, accessRule.AccessLevel)
   100  	th.AssertEquals(t, addedShareAccess.AccessTo, accessRule.AccessTo)
   101  	th.AssertEquals(t, addedShareAccess.AccessKey, accessRule.AccessKey)
   102  	th.AssertEquals(t, addedShareAccess.State, accessRule.State)
   103  }