def create_org(cls): """Creates an org by the name specified in the config file. Skips creating one, if such an org already exists. Also stores the href of the org as class variable for future use. """ cls._basic_check() system = System( cls._sys_admin_client, admin_resource=cls._sys_admin_client.get_admin()) org_name = cls._config['vcd']['default_org_name'] org_resource_list = cls._sys_admin_client.get_org_list() for org_resource in org_resource_list: if org_resource.get('name').lower() == org_name.lower(): cls._logger.debug('Reusing existing org ' + org_name + '.') cls._org_href = org_resource.get('href') return cls._logger.debug('Creating new org ' + org_name) system.create_org( org_name=org_name, full_org_name=org_name, is_enabled=True) # The following contraption is required to get the non admin href of # the org. The result of create_org() contains the admin version of # the href, since we created the org as a sys admin. org_resource = cls._sys_admin_client.get_org_by_name(org_name) cls._org_href = org_resource.get('href')
def Create(self, request, context): """ # API used https://github.com/vmware/pyvcloud/blob/master/pyvcloud/vcd/system.py#L43 """ logging.basicConfig(level=logging.DEBUG) logging.info("__INIT__Create[org_plugin]") res = org_pb2.CreateOrgResult() res.created = False try: vref = VCDClientRef() client = vref.get_ref() sys_admin = client.get_admin() system = System(client, admin_resource=sys_admin) system.create_org(request.name, request.org_full_name, request.is_enabled) logging.info("__DONE_Create[org_plugin]") res.created = True return res except Exception as e: error_message = '__ERROR_Create[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
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)
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)
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)
def create(ctx, name, full_name, enabled): try: client = ctx.obj['client'] sys_admin_resource = client.get_admin() system = System(client, admin_resource=sys_admin_resource) result = system.create_org(name, full_name, enabled) stdout('Org \'%s\' is successfully created.' % result.get('name'), ctx) except Exception as e: stderr(e, ctx)
def create(ctx, name, full_name, enabled): try: restore_session(ctx) client = ctx.obj['client'] sys_admin_resource = client.get_admin() system = System(client, admin_resource=sys_admin_resource) result = system.create_org(name, full_name, enabled) stdout('Org \'%s\' is successfully created.' % result.get('name'), ctx) except Exception as e: stderr(e, ctx)
def test_0000_setup(self): """Setup a Org required for other tests in this module. Create an Org as per the configuration stated above. Tests System.create_org() method. This test passes if org href is not None. """ TestOrg._client = Environment.get_sys_admin_client() sys_admin_resource = TestOrg._client.get_admin() system = System(TestOrg._client, admin_resource=sys_admin_resource) result = system.create_org(TestOrg._new_org_name, TestOrg._new_org_full_name, TestOrg._new_org_enabled) TestOrg._new_org_admin_href = result.get('href') self.assertIsNotNone(TestOrg._new_org_admin_href)
def test_0000_setup(self): """Setup a Org required for other tests in this module. Create an Org as per the configuration stated above. Tests System.create_org() method. This test passes if org href is not None. """ TestUser._client = Environment.get_sys_admin_client() sys_admin_resource = TestUser._client.get_admin() system = System(TestUser._client, admin_resource=sys_admin_resource) result = system.create_org(TestUser._new_org_name, TestUser._new_org_full_name, TestUser._new_org_enabled) TestUser._new_org_admin_href = result.get('href') TestUser._org = Org(TestUser._client, href=TestUser._new_org_admin_href) self.assertIsNotNone(TestUser._new_org_admin_href)
def create_org(client): logging.info("create org %s", str(client)) sys_admin = client.get_admin() system = System(client, admin_resource=sys_admin) task = system.create_org("O2", "O2 ORG") print(type(task))
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
client.set_highest_supported_version() client.set_credentials(BasicLoginCredentials(cfg.vcd_admin_user, "System", cfg.vcd_admin_password)) # Ensure the org exists. print("Fetching org...") try: # This call gets a record that we can turn into an Org class. org_record = client.get_org_by_name(cfg.org) org = Org(client, href=org_record.get('href')) print("Org already exists: {0}".format(org.get_name())) except Exception: print("Org does not exist, creating: {0}".format(cfg.org)) sys_admin_resource = client.get_admin() system = System(client, admin_resource=sys_admin_resource) admin_org_resource = system.create_org(cfg.org, "Test Org", True) org_record = client.get_org_by_name(cfg.org) org = Org(client, href=org_record.get('href')) print("Org now exists: {0}".format(org.get_name())) # Ensure user exists on the org. try: user_resource = org.get_user(cfg.user['name']) print("User already exists: {0}".format(cfg.user['name'])) except Exception: print("User does not exist, creating: {0}".format(cfg.user['name'])) role_record = org.get_role_record(cfg.user['role']) user_resource = org.create_user(user_name=cfg.user['name'], password=cfg.user['password'], role_href=role_record.get('href')) print("User now exists: {0}".format(user_resource.get('name')))
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)
BasicLoginCredentials(os.environ['VCLOUD_USERNAME'], os.environ['VCLOUD_ORG'], os.environ['VCLOUD_PASSWORD'])) # Ensure the org exists. print("Fetching org...") try: # This call gets a record that we can turn into an Org class. org_record = client.get_org_by_name(os.environ['VCLOUD_ORG']) org = Org(client, href=org_record.get('href')) print("Org already exists: {0}".format(org.get_name())) except Exception: print("Org does not exist, creating: {0}".format(os.environ['VCLOUD_ORG'])) sys_admin_resource = client.get_admin() system = System(client, admin_resource=sys_admin_resource) admin_org_resource = system.create_org(os.environ['VCLOUD_ORG'], "Test Org", True) org_record = client.get_org_by_name(os.environ['VCLOUD_ORG']) org = Org(client, href=org_record.get('href')) print("Org now exists: {0}".format(org.get_name())) # Ensure VDC exists. try: vdc_resource = org.get_vdc(os.environ['VCLOUD_VDC_NAME']) vdc = VDC(client, resource=vdc_resource) print(" VDC '{0}' ... OK".format(os.environ['VCLOUD_VDC_NAME'])) except Exception: print(" VDC '{0}' ... KO. Exiting.".format(os.environ['VCLOUD_VDC_NAME'])) exit(0) # # Fetching catalogs
def create_org(client): logging.info("create org %s", str(client)) sys_admin = client.get_admin() system = System(client, admin_resource=sys_admin) system.create_org("O2", "O2 ORG")
def test_create_org(self): sys_admin = self.client.get_admin() system = System(self.client, admin_resource=sys_admin) org = system.create_org(self.config['vcd']['org_name'], self.config['vcd']['org_full_name']) assert org.get('name') == self.config['vcd']['org_name']
def test_create_org(self): sys_admin = self.client.get_admin() system = System(self.client, admin_resource=sys_admin) org_name = "orgName".join(random.sample(string.ascii_lowercase, 4)) org = system.create_org(org_name, "orgFullName") assert org.get('name') == org_name
def test_01_create_org(self): sys_admin = self.client.get_admin() system = System(self.client, admin_resource=sys_admin) org = system.create_org(self.config['vcd']['org_name'], self.config['vcd']['org_full_name']) assert org.get('name') == self.config['vcd']['org_name']
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
log_bodies=True) client.set_credentials(BasicLoginCredentials(cfg.vcd_admin_user, "System", cfg.vcd_admin_password)) # Ensure the org exists. print("Fetching org...") try: # This call gets a record that we can turn into an Org class. org_record = client.get_org_by_name(cfg.org) org = Org(client, href=org_record.get('href')) print("Org already exists: {0}".format(org.get_name())) except Exception: print("Org does not exist, creating: {0}".format(cfg.org)) sys_admin_resource = client.get_admin() system = System(client, admin_resource=sys_admin_resource) admin_org_resource = system.create_org(cfg.org, "Test Org", True) org_record = client.get_org_by_name(cfg.org) org = Org(client, href=org_record.get('href')) print("Org now exists: {0}".format(org.get_name())) # Ensure user exists on the org. try: user_resource = org.get_user(cfg.user['name']) print("User already exists: {0}".format(cfg.user['name'])) except Exception: print("User does not exist, creating: {0}".format(cfg.user['name'])) role_record = org.get_role_record(cfg.user['role']) user_resource = org.create_user(user_name=cfg.user['name'], password=cfg.user['password'], role_href=role_record.get('href')) print("User now exists: {0}".format(user_resource.get('name')))
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