示例#1
0
    def test_03_create_org_vapp__template_lease_settings_not_default(self):
        ''' Create organization with vApp template lease setting non default values'''

        sys_admin = self.client.get_admin()
        system = System(self.client, admin_resource=sys_admin)

        # Test Data
        (org_name, org_desc) = self.get_org_data()
        vapp_lease_template_delete_on_storage = True
        vapp_lease_template_delete_on_storage_lease_expiration = 7200
        vapp_lease_delete_on_storage_lease_expiration = False
        vapp_lease_deployment_lease_seconds = 0
        vapp_lease_storage_lease_seconds = 0

        # Set up settings object
        settings = OrgSettings()
        settings.set_vapp_lease_settings(vapp_lease_delete_on_storage_lease_expiration,
                                         vapp_lease_deployment_lease_seconds,
                                         vapp_lease_storage_lease_seconds)
        settings.set_vapp_template_lease_settings(vapp_lease_template_delete_on_storage,
                                                  vapp_lease_template_delete_on_storage_lease_expiration)

        org = system.create_org(org_name,
                                org_desc,
                                settings=settings)

        assert org.get('name') == org_name

        vtls = org.Settings.VAppTemplateLeaseSettings
        assert vtls.DeleteOnStorageLeaseExpiration.text == str(vapp_lease_template_delete_on_storage).lower()
        assert vtls.StorageLeaseSeconds.text == str(vapp_lease_template_delete_on_storage_lease_expiration)

        # Cleanup delete the organization
        system.delete_org(org_name, True, True)
示例#2
0
    def test_02_create_org_vapp_lease_settings_never_expire(self):
        ''' Create organization with lease never expire'''

        sys_admin = self.client.get_admin()
        system = System(self.client, admin_resource=sys_admin)

        # Test Data
        (org_name, org_desc) = self.get_org_data()
        vapp_lease_delete_on_storage_lease_expiration = False
        vapp_lease_deployment_lease_seconds = 0
        vapp_lease_storage_lease_seconds = 0

        # Set up settings object
        settings = OrgSettings()
        settings.set_vapp_lease_settings(vapp_lease_delete_on_storage_lease_expiration,
                                         vapp_lease_deployment_lease_seconds,
                                         vapp_lease_storage_lease_seconds)

        org = system.create_org(org_name,
                                org_desc,
                                settings=settings)

        assert org.get('name') == org_name

        vls = org.Settings.VAppLeaseSettings
        assert vls.DeleteOnStorageLeaseExpiration.text == str(vapp_lease_delete_on_storage_lease_expiration).lower()
        assert vls.DeploymentLeaseSeconds.text == str(vapp_lease_deployment_lease_seconds)
        assert vls.StorageLeaseSeconds.text ==  str(vapp_lease_storage_lease_seconds)

        # Cleanup delete the organization
        system.delete_org(org_name, True, True)
示例#3
0
    def test_04_create_org_ldap_settings_system(self):
        ''' Create organization with LDAP settings SYSTEM '''

        sys_admin = self.client.get_admin()
        system = System(self.client, admin_resource=sys_admin)

        # Test data
        (org_name, org_desc) = self.get_org_data()
        ldap_mode = 'SYSTEM'
        sys_users_ou = 'ou=Users,dc=example,dc=local'

        settings = OrgSettings()
        settings.set_org_ldap_settings( org_ldap_mode=ldap_mode,
                                        sys_users_ou=sys_users_ou
                                       )

        org = system.create_org(org_name,
                                org_desc,
                                settings=settings)
        ldap = org.Settings.OrgLdapSettings

        # Verifications
        assert org.get('name') == org_name
        assert ldap.OrgLdapMode.text == ldap_mode
        assert ldap.CustomUsersOu.text == sys_users_ou

        # Cleanup delete the organization
        system.delete_org(org_name, True, True)
示例#4
0
    def test_cleanup(self):
        """Get the test Org and delete it"""
        client = Environment.get_sys_admin_client()
        test_org = Environment.get_test_org(client)

        print("Deleting test org: {0}".format(test_org.get_name()))
        sys_admin_resource = client.get_admin()
        system = System(client, admin_resource=sys_admin_resource)
        task = system.delete_org(test_org.get_name(), True, True)

        # Track the task to completion. 
        task = client.get_task_monitor().wait_for_success(task)
        self.assertEqual(task.get('status'), TaskStatus.SUCCESS.value)
示例#5
0
    def test_9998_teardown(self):
        """Test the method System.delete_org() with force = recursive = True.

        Invoke the method for the organization created by setup.

        This test passes if no errors are generated while deleting the org.
        """
        sys_admin_resource = TestOrg._client.get_admin()
        system = System(TestOrg._client, admin_resource=sys_admin_resource)
        task = system.delete_org(org_name=TestOrg._new_org_name,
                                 force=True,
                                 recursive=True)
        result = TestOrg._client.get_task_monitor().wait_for_success(task=task)
        self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
示例#6
0
    def test_9998_teardown(self):
        """Test the method System.delete_org() with force = recursive = True.

        Invoke the method for the organization created by setup.

        This test passes if no errors are generated while deleting the org.
        """
        sys_admin_resource = TestUser._client.get_admin()
        system = System(TestUser._client, admin_resource=sys_admin_resource)
        task = system.delete_org(org_name=TestUser._new_org_name,
                                 force=True,
                                 recursive=True)
        result = TestUser._client.get_task_monitor().\
            wait_for_success(task=task)
        self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
示例#7
0
def delete(ctx, name, recursive, force):
    try:
        client = ctx.obj['client']
        system = System(client)
        if force and recursive:
            click.confirm('Do you want to force delete \'%s\' and all '
                          'its objects recursively?' % name,
                          abort=True)
        elif force:
            click.confirm('Do you want to force delete \'%s\'' % name,
                          abort=True)
        task = system.delete_org(name, force, recursive)
        stdout(task, ctx)
    except Exception as e:
        stderr(e, ctx)
示例#8
0
文件: org.py 项目: vmware/vca-cli
def delete(ctx, name, recursive, force):
    try:
        restore_session(ctx)
        client = ctx.obj['client']
        sys_admin_resource = client.get_admin()
        system = System(client, admin_resource=sys_admin_resource)
        if force and recursive:
            click.confirm(
                'Do you want to force delete \'%s\' and all '
                'its objects recursively?' % name,
                abort=True)
        elif force:
            click.confirm(
                'Do you want to force delete \'%s\'' % name, abort=True)
        task = system.delete_org(name, force, recursive)
        stdout(task, ctx)
    except Exception as e:
        stderr(e, ctx)
    def Delete(self, request, context):
        """
        # API used https://github.com/vmware/pyvcloud/blob/master/pyvcloud/vcd/system.py#L62
        """
        logging.info("__INIT_Delete[org_plugin]")
        res = org_pb2.DeleteOrgResult()
        res.deleted = False
        try:
            vref = VCDClientRef()
            client = vref.get_ref()
            sys_admin = client.get_admin()
            system = System(client, admin_resource=sys_admin)
            delete_org_resp = system.delete_org(request.name, request.force,
                                                request.recursive)

            task = client.get_task_monitor().wait_for_status(
                task=delete_org_resp,
                timeout=60,
                poll_frequency=2,
                fail_on_statuses=None,
                expected_target_statuses=[
                    TaskStatus.SUCCESS, TaskStatus.ABORTED, TaskStatus.ERROR,
                    TaskStatus.CANCELED
                ],
                callback=None)

            st = task.get('status')
            if st == TaskStatus.SUCCESS.value:
                message = 'delete org status : {0} '.format(st)
                logging.info(message)
            else:
                raise errors.VCDOrgDeleteError(
                    etree.tostring(task, pretty_print=True))

            logging.info("__DONE_Delete[org_plugin]")
            res.deleted = True
            return res
        except Exception as e:
            error_message = '__ERROR_Delete[org_plugin] failed  {0} '.format(
                request.name)
            logging.warn(error_message, e)
            context.set_code(grpc.StatusCode.INVALID_ARGUMENT)
            context.set_details(error_message)
            return res
示例#10
0
    def test_cleanup(self):
        """Get the test Org and delete it."""
        client = None
        try:
            logger = Environment.get_default_logger()
            client = Environment.get_sys_admin_client()
            test_org = Environment.get_test_org(client)

            logger.debug('Deleting test org: {0}'.format(test_org.get_name()))
            sys_admin_resource = client.get_admin()
            system = System(client, admin_resource=sys_admin_resource)
            task = system.delete_org(test_org.get_name(), True, True)

            # Track the task to completion.
            result = client.get_task_monitor().wait_for_success(task)
            self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
        finally:
            if client is not None:
                client.logout()
示例#11
0
    def test_cleanup(self):
        """Get the test Org and delete it."""
        client = None
        try:
            logger = Environment.get_default_logger()
            client = Environment.get_sys_admin_client()
            test_org = Environment.get_test_org(client)

            logger.debug('Deleting test org: {0}'.format(test_org.get_name()))
            sys_admin_resource = client.get_admin()
            system = System(client, admin_resource=sys_admin_resource)
            task = system.delete_org(test_org.get_name(), True, True)

            # Track the task to completion.
            result = client.get_task_monitor().wait_for_success(task)
            self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
        finally:
            if client is not None:
                client.logout()
示例#12
0
    def test_0050_delete_no_force_enabled_org(self):
        """Test the method System.delete_org() with force = recursive = False.

        Invoke delete operation on an enabled organization with 'force' and
        'recursive' flag set to False. An enabled organization can't be deleted
        unless 'force' flag is set to True.

        This test passes if the operation fails with a VcdTaskException.
        """
        try:
            sys_admin_resource = TestOrg._client.get_admin()
            system = System(TestOrg._client, admin_resource=sys_admin_resource)
            task = system.delete_org(org_name=TestOrg._new_org_name,
                                     force=False,
                                     recursive=False)
            TestOrg._client.get_task_monitor().wait_for_success(task=task)
            self.fail('Deletion of org ' + TestOrg._new_org_name + 'shouldn\'t'
                      'succeeded.')
        except VcdTaskException as e:
            return
示例#13
0
class VCDOrg(VcdAnsibleModule):
    def __init__(self, **kwargs):
        super(VCDOrg, self).__init__(**kwargs)
        sys_admin = self.client.get_admin()
        self.system = System(self.client, admin_resource=sys_admin)

    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 == "read":
            return self.read()

    def create(self):
        org_name = self.params.get('org_name')
        full_name = self.params.get('full_name')
        is_enabled = self.params.get('is_enabled')
        response = dict()
        response['changed'] = False

        try:
            self.system.create_org(org_name, full_name, is_enabled)
            response['msg'] = 'Org {} has been created.'.format(org_name)
            response['changed'] = True
        except BadRequestException:
            response['warnings'] = 'Org {} is already present.'.format(
                org_name)

        return response

    def read(self):
        org_name = self.params.get('org_name')
        response = dict()
        org_details = dict()
        response['changed'] = False

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        org_admin_resource = org.client.get_resource(org.href_admin)
        org_details['org_name'] = org_name
        org_details['full_name'] = str(org_admin_resource['FullName'])
        org_details['is_enabled'] = str(org_admin_resource['IsEnabled'])
        response['msg'] = org_details

        return response

    def update(self):
        org_name = self.params.get('org_name')
        is_enabled = self.params.get('is_enabled')
        response = dict()
        response['changed'] = False

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        org.update_org(is_enabled)
        response['msg'] = "Org {} has been updated.".format(org_name)
        response['changed'] = True

        return response

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

        try:
            delete_org_task = self.system.delete_org(org_name, force,
                                                     recursive)
            self.execute_task(delete_org_task)
            response['msg'] = "Org {} has been deleted.".format(org_name)
            response['changed'] = True
        except EntityNotFoundException:
            response['warnings'] = "Org {} is not present.".format(org_name)

        return response
示例#14
0
    def test_05_create_org_ldap_settings_custom(self):
        ''' Create organization with LDAP settings CUSTOM '''

        sys_admin = self.client.get_admin()
        system = System(self.client, admin_resource=sys_admin)

        # Test data
        (org_name, org_desc) = self.get_org_data()
        ldap_mode = 'CUSTOM'
        custom_hostname = 'localhost'
        custom_port = 8080
        custom_is_ssl = True
        custom_is_ssl_accept_all = True
        custom_username = '******'
        custom_password = '******'
        custom_auth_mechanism = 'SIMPLE'
        custom_connector_type = 'OPEN_LDAP'
        custom_is_group_search_base_enabled = False
        custom_user_object_class = 'user'
        custom_user_object_identifier = 'objectGuid'
        custom_user_username = '******'
        custom_user_email = '*****@*****.**'
        custom_user_full_name = 'First Last'
        custom_user_given_name = 'First'
        custom_user_surname = 'Last'
        custom_user_telephone = '+61430088000'
        custom_user_group_membership_identifier = 'dn'
        custom_user_group_back_link_identifier = 'abc'
        custom_group_object_class = 'group'
        custom_group_object_identifier = 'dn'
        custom_group_group_name = 'cn'
        custom_group_membership = 'member'
        custom_group_membership_identifier = 'dn'
        custom_group_back_link_identifier = 'abc'
        custom_use_external_kerberos = False

        settings = OrgSettings()
        settings.set_org_ldap_settings(org_ldap_mode=ldap_mode,
                                       cus_hostname=custom_hostname,
                                       cus_port=custom_port,
                                       cus_is_ssl=custom_is_ssl,
                                       cus_is_ssl_accept_all=custom_is_ssl_accept_all,
                                       cus_username=custom_username,
                                       cus_password=custom_password,
                                       cus_auth_mechanism=custom_auth_mechanism,
                                       cus_connector_type=custom_connector_type,
                                       cus_is_grp_search_base_enabled=custom_is_group_search_base_enabled,
                                       cus_user_object_class=custom_user_object_class,
                                       cus_user_object_id=custom_user_object_identifier,
                                       cus_user_username=custom_user_username,
                                       cus_user_email=custom_user_email,
                                       cus_user_full_name=custom_user_full_name,
                                       cus_user_given_name=custom_user_given_name,
                                       cus_user_surname=custom_user_surname,
                                       cus_user_telephone=custom_user_telephone,
                                       cus_user_grp_membership_id=custom_user_group_membership_identifier,
                                       cus_user_grp_back_link_id=custom_user_group_back_link_identifier,
                                       cus_grp_object_class=custom_group_object_class,
                                       cus_grp_object_id=custom_group_object_identifier,
                                       cus_grp_grp_name=custom_group_group_name,
                                       cus_grp_membership=custom_group_membership,
                                       cus_grp_membership_id=custom_group_membership_identifier,
                                       cus_grp_back_link_id=custom_group_back_link_identifier,
                                       cus_use_external_kerberos=custom_use_external_kerberos)

        org = system.create_org(org_name,
                                org_desc,
                                settings=settings)
        ldap = org.Settings.OrgLdapSettings

        # Verifications
        assert org.get('name') == org_name
        assert ldap.OrgLdapMode.text == ldap_mode
        assert ldap.CustomOrgLdapSettings.HostName.text == custom_hostname
        assert int(ldap.CustomOrgLdapSettings.Port.text) == custom_port
        assert ldap.CustomOrgLdapSettings.IsSsl.text == str(custom_is_ssl).lower()
        assert ldap.CustomOrgLdapSettings.IsSslAcceptAll.text == str(custom_is_ssl_accept_all).lower()
        assert ldap.CustomOrgLdapSettings.UserName.text == custom_username
        # Password is not returned so no assert for password
        assert ldap.CustomOrgLdapSettings.AuthenticationMechanism.text == custom_auth_mechanism
        assert ldap.CustomOrgLdapSettings.IsGroupSearchBaseEnabled.text == str(custom_is_group_search_base_enabled).lower()
        assert ldap.CustomOrgLdapSettings.ConnectorType.text == custom_connector_type
        assert ldap.CustomOrgLdapSettings.UserAttributes.ObjectClass.text == custom_user_object_class
        assert ldap.CustomOrgLdapSettings.UserAttributes.ObjectIdentifier.text == custom_user_object_identifier
        assert ldap.CustomOrgLdapSettings.UserAttributes.UserName.text == custom_user_username
        assert ldap.CustomOrgLdapSettings.UserAttributes.Email.text == custom_user_email
        assert ldap.CustomOrgLdapSettings.UserAttributes.FullName.text == custom_user_full_name
        assert ldap.CustomOrgLdapSettings.UserAttributes.GivenName.text == custom_user_given_name
        assert ldap.CustomOrgLdapSettings.UserAttributes.Surname.text == custom_user_surname
        assert ldap.CustomOrgLdapSettings.UserAttributes.Telephone.text == custom_user_telephone
        assert ldap.CustomOrgLdapSettings.UserAttributes.GroupMembershipIdentifier.text == custom_user_group_membership_identifier
        assert ldap.CustomOrgLdapSettings.UserAttributes.GroupBackLinkIdentifier.text == custom_user_group_back_link_identifier
        assert ldap.CustomOrgLdapSettings.GroupAttributes.ObjectClass.text == custom_group_object_class
        assert ldap.CustomOrgLdapSettings.GroupAttributes.ObjectIdentifier.text == custom_group_object_identifier
        assert ldap.CustomOrgLdapSettings.GroupAttributes.GroupName.text == custom_group_group_name
        assert ldap.CustomOrgLdapSettings.GroupAttributes.Membership.text == custom_group_membership
        assert ldap.CustomOrgLdapSettings.GroupAttributes.MembershipIdentifier.text == custom_group_membership_identifier
        assert ldap.CustomOrgLdapSettings.GroupAttributes.BackLinkIdentifier.text == custom_group_back_link_identifier
        assert ldap.CustomOrgLdapSettings.UseExternalKerberos.text == str(custom_use_external_kerberos).lower()

        # Cleanup delete the organization
        system.delete_org(org_name, True, True)
示例#15
0
class VCDOrg(VcdAnsibleModule):
    def __init__(self, **kwargs):
        super(VCDOrg, self).__init__(**kwargs)

    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 == "read":
            return self.read()

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

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

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

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

        if operation == 'list_vdcs':
            return self.list_vdcs()

    def get_org(self):
        org_name = self.params.get('org_name')
        resource = self.client.get_org_by_name(org_name)

        return Org(self.client, resource=resource)

    def create(self):
        org_name = self.params.get('org_name')
        full_name = self.params.get('full_name')
        is_enabled = self.params.get('is_enabled')
        response = dict()
        response['changed'] = False

        try:
            self.get_org()
            response['warnings'] = 'Org {} is already present'.format(org_name)
        except EntityNotFoundException:
            sys_admin = self.client.get_admin()
            self.system = System(self.client, admin_resource=sys_admin)
            self.system.create_org(org_name, full_name, is_enabled)
            response['msg'] = 'Org {} has been created'.format(org_name)
            response['changed'] = True
        except BadRequestException:
            response['warnings'] = 'Org {} is already present'.format(org_name)

        return response

    def read(self):
        org_name = self.params.get('org_name')
        response = dict()
        org_details = dict()
        response['changed'] = False

        try:
            org = self.get_org()
            org_admin_resource = org.client.get_resource(org.href_admin)
            org_details['org_name'] = org_name
            org_details['full_name'] = str(org_admin_resource['FullName'])
            org_details['is_enabled'] = str(org_admin_resource['IsEnabled'])
            response['msg'] = org_details
        except EntityNotFoundException:
            response['warnings'] = "Org {0} not found".format(org_name)

        return response

    def update(self):
        org_name = self.params.get('org_name')
        is_enabled = self.params.get('is_enabled')
        response = dict()
        response['changed'] = False

        try:
            org = self.get_org()
            org.update_org(is_enabled)
            response['msg'] = "Org {} has been updated".format(org_name)
            response['changed'] = True
        except EntityNotFoundException:
            response['warnings'] = "Org {0} not found".format(org_name)

        return response

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

        try:
            org = self.read()['msg']
            if org['is_enabled'] == "True":
                org.update_org(False)
            sys_admin = self.client.get_admin()
            self.system = System(self.client, admin_resource=sys_admin)
            delete_org_task = self.system.delete_org(org_name, force,
                                                     recursive)
            self.execute_task(delete_org_task)
            response['msg'] = "Org {} has been deleted".format(org_name)
            response['changed'] = True
        except EntityNotFoundException:
            response['warnings'] = "Org {} is not present".format(org_name)

        return response

    def add_rights(self):
        org_name = self.params.get('org_name')
        org_rights = self.params.get('org_rights')
        response = dict()
        response['changed'] = False

        try:
            org = self.get_org()
            org.add_rights(org_rights)
            response['msg'] = "Rights has been added to org successfully."
            response['changed'] = True
        except EntityNotFoundException:
            response['warnings'] = "Org {0} not found".format(org_name)

        return response

    def remove_rights(self):
        org_name = self.params.get('org_name')
        org_rights = self.params.get('org_rights')
        response = dict()
        response['changed'] = False

        try:
            org = self.get_org()
            org.remove_rights(org_rights)
            response['msg'] = "Rights has been removed to org successfully."
            response['changed'] = True
        except EntityNotFoundException:
            response['warnings'] = "Org {0} not found".format(org_name)

        return response

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

        try:
            org = self.get_org()
            response['msg'] = org.list_rights_of_org()
        except EntityNotFoundException:
            response['warnings'] = "Org {0} not found".format(org_name)

        return response

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

        try:
            org = self.get_org()
            response['msg'] = org.list_roles()
        except EntityNotFoundException:
            response['warnings'] = "Org {0} not found".format(org_name)

        return response

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

        try:
            org = self.get_org()
            response['msg'] = [vdc.get('name') for vdc in org.list_vdcs()]
        except EntityNotFoundException:
            response['warnings'] = "Org {0} not found".format(org_name)

        return response
示例#16
0
文件: vcd_org.py 项目: 0z-cloud/vx
class VCDOrg(VcdAnsibleModule):
    def __init__(self, **kwargs):
        super(VCDOrg, self).__init__(**kwargs)

    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 == "read":
            return self.read()

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

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

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

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

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

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

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

    def create(self):
        org_name = self.params.get('org_name')
        full_name = self.params.get('full_name')
        is_enabled = self.params.get('is_enabled')
        response = dict()
        response['changed'] = False

        try:
            sys_admin = self.client.get_admin()
            self.system = System(self.client, admin_resource=sys_admin)
            self.system.create_org(org_name, full_name, is_enabled)
            response['msg'] = 'Org {} has been created.'.format(org_name)
            response['changed'] = True
        except BadRequestException:
            response['warnings'] = 'Org {} is already present.'.format(
                org_name)

        return response

    def read(self):
        org_name = self.params.get('org_name')
        response = dict()
        org_details = dict()
        response['changed'] = False

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        org_admin_resource = org.client.get_resource(org.href_admin)
        org_details['org_name'] = org_name
        org_details['full_name'] = str(org_admin_resource['FullName'])
        org_details['is_enabled'] = str(org_admin_resource['IsEnabled'])
        response['msg'] = org_details

        return response

    def update(self):
        org_name = self.params.get('org_name')
        is_enabled = self.params.get('is_enabled')
        response = dict()
        response['changed'] = False

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        org.update_org(is_enabled)
        response['msg'] = "Org {} has been updated.".format(org_name)
        response['changed'] = True

        return response

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

        try:
            sys_admin = self.client.get_admin()
            self.system = System(self.client, admin_resource=sys_admin)
            delete_org_task = self.system.delete_org(org_name, force,
                                                     recursive)
            self.execute_task(delete_org_task)
            response['msg'] = "Org {} has been deleted.".format(org_name)
            response['changed'] = True
        except EntityNotFoundException:
            response['warnings'] = "Org {} is not present.".format(org_name)

        return response

    def add_rights(self):
        org_name = self.params.get('org_name')
        org_rights = self.params.get('org_rights')
        response = dict()
        response['changed'] = False

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        org.add_rights(org_rights)
        response['msg'] = "Rights has been added to org successfully."
        response['changed'] = True

        return response

    def remove_rights(self):
        org_name = self.params.get('org_name')
        org_rights = self.params.get('org_rights')
        response = dict()
        response['changed'] = False

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        org.remove_rights(org_rights)
        response['msg'] = "Rights has been removed to org successfully."
        response['changed'] = True

        return response

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

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        response['msg'] = org.list_rights_of_org()

        return response

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

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        response['msg'] = org.list_roles()

        return response

    def list_users(self):
        org_name = self.params.get('org_name')
        response = dict()
        org_details = dict()
        response['users'] = list()
        response['changed'] = False

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        org_user_list = org.list_users()
        resource_type = ResourceType.USER.value
        if self.client.is_sysadmin():
            resource_type = ResourceType.ADMIN_USER.value
        for org_user in org_user_list:
            response['users'].append(
                to_dict(org_user, resource_type=resource_type, exclude=[]))

        return response

    def list_vdcs(self):
        org_name = self.params.get('org_name')
        response = dict()
        org_details = dict()
        response['vdcs'] = list()
        response['changed'] = False

        resource = self.client.get_org_by_name(org_name)
        org = Org(self.client, resource=resource)
        response['vdcs'] = org.list_vdcs()

        return response

    def set_metadata(self):
        org_name = self.params.get('org_name')
        metadata = self.params.get('metadata')
        response = dict()
        response['msg'] = ''

        if len(metadata) != 0:
            # workaround to set metadata for org as it is as of now not implemented in pyvcloud for org, vdc, e.g. - we will open a pull request to fix this in the future
            resource = self.client.get_linked_resource(
                self.client.get_org_by_name(org_name), RelationType.DOWN,
                EntityType.METADATA.value)
            self.metadata = Metadata(self.client, resource=resource)
            for md in metadata:
                domain = MetadataDomain.SYSTEM
                visibility = MetadataVisibility.READONLY
                if type(md) is dict and md.get('state', 'present') == 'absent':
                    if md.get('visibility', 'READONLY').upper() == 'READWRITE':
                        domain = MetadataDomain.GENERAL
                    self.metadata.remove_metadata(md['name'], domain)
                else:
                    if md.get('visibility', 'READONLY').upper() == 'PRIVATE':
                        visibility = MetadataVisibility.PRIVATE
                    elif md.get('visibility',
                                'READONLY').upper() == 'READWRITE':
                        domain = MetadataDomain.GENERAL
                        visibility = MetadataVisibility.READWRITE
                    value_type = MetadataValueType.STRING
                    if md.get('type', 'STRING').upper() == 'NUMBER':
                        value_type = MetadataValueType.NUMBER
                    elif md.get('type', 'STRING').upper() == 'BOOLEAN':
                        value_type = MetadataValueType.BOOLEAN
                    elif md.get('type', 'STRING').upper() == 'DATA_TIME':
                        value_type = MetadataValueType.DATA_TIME
                    self.metadata.set_metadata(md['name'], md['value'], domain,
                                               visibility, value_type, True)

        return response
示例#17
0
 def test_04_delete_org(self):
     system = System(self.client)
     system.delete_org(self.config['vcd']['org_name'], True, True)
示例#18
0
client = Client(cfg.vcd_host,
                verify_ssl_certs=False,
                log_file='pyvcloud.log',
                log_requests=True,
                log_headers=True,
                log_bodies=True)
client.set_highest_supported_version()
client.set_credentials(
    BasicLoginCredentials(cfg.vcd_admin_user, "System",
                          cfg.vcd_admin_password))

# Load the org.  If it does not exist, there's nothing to do.
print("Fetching Org...")
try:
    org_record = client.get_org_by_name(cfg.org)
except Exception:
    print("Org does not exist, nothing to be done")
    sys.exit(0)

# Delete the org.
print("Org exists, deleting: {0}".format(cfg.org))
sys_admin_resource = client.get_admin()
system = System(client, admin_resource=sys_admin_resource)
resource = system.delete_org(cfg.org, True, True)
handle_task(client, resource)
print("Deleted the org...")

# Log out.
print("All done!")
client.logout()
示例#19
0
 def test_delete_org(self):
     system = System(self.client)
     system.delete_org(self.config['vcd']['org_name'], True, True)