github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/internal/acceptance/openstack/networking/v2/extensions/rbacpolicies/rbacpolicies.go (about) 1 package rbacpolicies 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/vnpaycloud-console/gophercloud/v2" 8 "github.com/vnpaycloud-console/gophercloud/v2/openstack/networking/v2/extensions/rbacpolicies" 9 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 10 ) 11 12 // CreateRBACPolicy will create a rbac-policy. An error will be returned if the 13 // rbac-policy could not be created. 14 func CreateRBACPolicy(t *testing.T, client *gophercloud.ServiceClient, tenantID, networkID string) (*rbacpolicies.RBACPolicy, error) { 15 createOpts := rbacpolicies.CreateOpts{ 16 Action: rbacpolicies.ActionAccessShared, 17 ObjectType: "network", 18 TargetTenant: tenantID, 19 ObjectID: networkID, 20 } 21 22 t.Logf("Trying to create rbac_policy") 23 24 rbacPolicy, err := rbacpolicies.Create(context.TODO(), client, createOpts).Extract() 25 if err != nil { 26 return rbacPolicy, err 27 } 28 29 t.Logf("Successfully created rbac_policy") 30 31 th.AssertEquals(t, rbacPolicy.ObjectID, networkID) 32 33 return rbacPolicy, nil 34 } 35 36 // DeleteRBACPolicy will delete a rbac-policy with a specified ID. A fatal error will 37 // occur if the delete was not successful. This works best when used as a 38 // deferred function. 39 func DeleteRBACPolicy(t *testing.T, client *gophercloud.ServiceClient, rbacPolicyID string) { 40 t.Logf("Trying to delete rbac_policy: %s", rbacPolicyID) 41 42 err := rbacpolicies.Delete(context.TODO(), client, rbacPolicyID).ExtractErr() 43 if err != nil { 44 t.Fatalf("Unable to delete rbac_policy %s: %v", rbacPolicyID, err) 45 } 46 47 t.Logf("Deleted rbac_policy: %s", rbacPolicyID) 48 }