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