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