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 }