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  }