示例#1
0
文件: role.py 项目: tjecheva/vcd-cli
def delete(ctx, role_name, org_name):
    try:
        client = ctx.obj['client']
        if org_name is not None:
            org_href = client.get_org_by_name(org_name).get('href')
        else:
            org_href = ctx.obj['profiles'].get('org_href')
        org = Org(client, org_href)
        org.delete_role(role_name)
        stdout('Role \'%s\' has been successfully deleted.' % role_name, ctx)
    except Exception as e:
        stderr(e, ctx)
示例#2
0
文件: role.py 项目: vmware/vca-cli
def delete(ctx, role_name, org_name):
    try:
        restore_session(ctx)
        client = ctx.obj['client']
        if org_name is not None:
            org_href = client.get_org_by_name(org_name).get('href')
        else:
            org_href = ctx.obj['profiles'].get('org_href')
        org = Org(client, href=org_href)
        org.delete_role(role_name)
        stdout('Role \'%s\' has been successfully deleted.' % role_name, ctx)
    except Exception as e:
        stderr(e, ctx)
示例#3
0
def cleanup_roles_and_users(logger=NULL_LOGGER):
    """Cleanup all the new roles and users created.

    Deletes the following
    - cluster_author User
    - cluster_author_role Role
    - cluster_admin User
    - cluster_admin_role ROle
    """
    user_and_role_list = [(CLUSTER_AUTHOR_NAME, CLUSTER_AUTHOR_ROLE_NAME),
                          (CLUSTER_ADMIN_NAME, CLUSTER_ADMIN_ROLE_NAME)]
    org = Org(CLIENT, href=TEST_ORG_HREF)
    for user_and_role in user_and_role_list:
        try:
            logger.debug(f"cleaning up user {user_and_role[0]} and "
                         f"role {user_and_role[1]}")
            org.delete_user(user_and_role[0])
            org.delete_role(user_and_role[1])
        except Exception as e:
            logger.warning("Exception occurred when "
                           f"cleaning up roles and users: {e}")
示例#4
0
 def test_06_delete_role_in_org(self):
     logged_in_org = self.client.get_org()
     org = Org(self.client, resource=logged_in_org)
     role_name = self.config['vcd']['role_name']
     org.delete_role(role_name)
示例#5
0
class Roles(VcdAnsibleModule):
    def __init__(self, **kwargs):
        super(Roles, self).__init__(**kwargs)
        self.org = Org(self.client, resource=self.client.get_org())

    def manage_states(self):
        state = self.params.get('state')
        if state == 'present':
            return self.create()

        if state == 'absent':
            return self.delete()

        if state == 'update':
            return self.update()

    def manage_operations(self):
        operation = self.params.get('operation')
        if operation == "list_rights":
            return self.list_rights()

        if operation == "list_roles":
            return self.list_roles()

    def create(self):
        role_name = self.params.get('role_name')
        role_description = self.params.get('role_description')
        role_rights = self.params.get('role_rights')
        response = dict()
        response['changed'] = False

        try:
            self.org.get_role_record(role_name)
        except EntityNotFoundException:
            self.org.create_role(role_name, role_description, role_rights)
            response['msg'] = 'Role {} has been created.'.format(role_name)
            response['changed'] = True
        else:
            response['warnings'] = 'Role {} is already present.'.format(
                role_name)

        return response

    def update(self):
        role_name = self.params.get('role_name')
        role_description = self.params.get('role_description')
        role_rights = self.params.get('role_rights')
        response = dict()
        response['changed'] = False

        role = self.org.get_role_record(role_name)
        role_resource = self.org.get_role_resource(role_name)
        role_resource.Description = E.Description(role_description)
        role_rights = tuple() if role_rights is None else role_rights

        for role_right in tuple(role_rights):
            role_right_record = self.org.get_right_record(role_right)
            role_resource.RightReferences.append(
                E.RightReference(name=role_right_record.get('name'),
                                 href=role_right_record.get('href'),
                                 type=EntityType.RIGHT.value))

        self.client.put_resource(role.get('href'), role_resource,
                                 EntityType.ROLE.value)
        response['msg'] = 'Role {} has been updated.'.format(role_name)
        response['changed'] = True

        return response

    def delete(self):
        role_name = self.params.get('role_name')
        response = dict()
        response['changed'] = False

        try:
            self.org.get_role_record(role_name)
            self.org.delete_role(role_name)
            response['msg'] = 'Role {} has been deleted.'.format(role_name)
            response['changed'] = True
        except EntityNotFoundException:
            response['warnings'] = 'Role {} is not present.'.format(role_name)

        return response

    def list_rights(self):
        response = dict()
        response['changed'] = False
        response['msg'] = self.org.list_rights_of_org()

        return response

    def list_roles(self):
        response = dict()
        response['changed'] = False
        response['msg'] = self.org.list_roles()

        return response