def test_0060_vapp_network_connection(self): """Test vapp.connect/disconnect_org_vdc_network(). This test passes if the connect and disconnect to orgvdc network operations are successful. """ logger = Environment.get_default_logger() network_name = Environment.get_default_orgvdc_network_name() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=vapp_name) logger.debug('Connecting vApp ' + vapp_name + ' to orgvdc network ' + network_name) task = vapp.connect_org_vdc_network(network_name) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Disconnecting vApp ' + vapp_name + ' to orgvdc network ' + network_name) vapp.reload() task = vapp.disconnect_org_vdc_network(network_name) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0057_vapp_network_disconnect(self): """Test vapp.disconnect_org_vdc_network(). This test passes if the connect and disconnect to orgvdc network operations are successful. """ try: logger = Environment.get_default_logger() client = Environment.get_client_in_default_org( CommonRoles.ORGANIZATION_ADMINISTRATOR) network_name = Environment.get_default_orgvdc_network_name() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=client, vapp_name=vapp_name) logger.debug('Disconnecting vApp ' + vapp_name + ' to orgvdc network ' + network_name) vapp.reload() task = vapp.disconnect_org_vdc_network(network_name) result = client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) finally: client.logout()
def test_0160_move_to(self): org = Environment.get_test_org(TestVApp._client) target_vdc = org.get_vdc(TestVApp._ovdc_name) logger = Environment.get_default_logger() vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=TestVApp._customized_vapp_name) logger.debug('Move vApp ' + TestVApp._customized_vapp_name) task = vapp.move_to(target_vdc.get('href')) result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) target_vdc = org.get_vdc(TestVApp._ovdc_name) target_vdc_obj = VDC(TestVApp._sys_admin_client, href=target_vdc.get('href')) vapp_resource = target_vdc_obj.get_vapp(TestVApp._customized_vapp_name) vapp = VApp(TestVApp._sys_admin_client, resource=vapp_resource) target_vdc = Environment.get_test_vdc(TestVApp._client) logger.debug('Move back vApp ' + TestVApp._customized_vapp_name) task = vapp.move_to(target_vdc.href) result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0040_vapp_power_options(self): """Test the method related to power operations in vapp.py. This test passes if all the power operations are successful. """ logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=vapp_name) # make sure the vApp is powered on before running tests self._power_on_vapp_if_possible(TestVApp._client, vapp) logger.debug('Un-deploying vApp ' + vapp_name) vapp.reload() task = vapp.undeploy() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Deploying vApp ' + vapp_name) vapp.reload() task = vapp.deploy(power_on=False) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Powering on vApp ' + vapp_name) vapp.reload() task = vapp.power_on() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Reseting (power) vApp ' + vapp_name) vapp.reload() task = vapp.power_reset() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Powering off vApp ' + vapp_name) vapp.reload() task = vapp.power_off() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Powering back on vApp ' + vapp_name) vapp.reload() task = vapp.power_on() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Rebooting (power) vApp ' + vapp_name) vapp.reload() task = vapp.reboot() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Shutting down vApp ' + vapp_name) vapp.reload() task = vapp.shutdown() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0110_create_vapp_network(self): """Test the method vapp.create_vapp_network(). This test passes if the vApp network creation is successful. """ logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=vapp_name) logger.debug('Creating a vApp network in ' + TestVApp._customized_vapp_name) task = vapp.create_vapp_network( TestVApp._vapp_network_name, TestVApp._vapp_network_cidr, TestVApp._vapp_network_description, TestVApp._vapp_network_dns1, TestVApp._vapp_network_dns2, TestVApp._vapp_network_dns_suffix, [TestVApp._vapp_network_ip_range]) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) # Verification vapp.reload() vapp_resource = vapp.get_resource() is_network_found = False for network_config in vapp_resource.NetworkConfigSection.NetworkConfig: if (network_config.get('networkName') == TestVApp._vapp_network_name): is_network_found = True self.assertTrue(is_network_found)
def test_0060_vapp_network_connection(self): """Test vapp.connect/disconnect_org_vdc_network(). This test passes if the connect and disconnect to orgvdc network operations are successful. """ logger = Environment.get_default_logger() network_name = Environment.get_default_orgvdc_network_name() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) logger.debug('Connecting vApp ' + vapp_name + ' to orgvdc network ' + network_name) task = vapp.connect_org_vdc_network(network_name) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Disconnecting vApp ' + vapp_name + ' to orgvdc network ' + network_name) vapp.reload() task = vapp.disconnect_org_vdc_network(network_name) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0127_dns_detail_of_vapp_network(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) result = vapp.dns_detail_of_vapp_network(TestVApp._vapp_network_name) self.assertEqual(result['Dns1'], TestVApp._vapp_network_dns1) self.assertEqual(result['Dns2'], TestVApp._vapp_network_dns2) self.assertEqual(result['DnsSuffix'], TestVApp._vapp_network_dns_suffix)
def test_0055_exit_maintenance_mode(self): logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=vapp_name) logger.debug('Exiting maintenance mode of vApp ' + vapp_name) vapp.reload() result = vapp.exit_maintenance_mode() self.assertEqual(result, None)
def test_0055_exit_maintenance_mode(self): logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=vapp_name) logger.debug('Exiting maintenance mode of vApp ' + vapp_name) vapp.reload() result = vapp.exit_maintenance_mode() self.assertEqual(result, None)
def test_0081_get_lease(self): vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=vapp_name) result = vapp.get_lease() self.assertEqual(result['DeploymentLeaseInSeconds'], TestVApp._empty_vapp_runtime_lease) self.assertEqual(result['StorageLeaseInSeconds'], TestVApp._empty_vapp_storage_lease)
def test_0053_discard_suspended_state_vapp(self): logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=vapp_name) logger.debug('Discarding suspended state of vApp ' + vapp_name) vapp.reload() task = vapp.discard_suspended_state_vapp() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0053_discard_suspended_state_vapp(self): logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=vapp_name) logger.debug('Discarding suspended state of vApp ' + vapp_name) vapp.reload() task = vapp.discard_suspended_state_vapp() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0124_delete_ip_range(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) task = vapp.delete_ip_range(TestVApp._vapp_network_name, TestVApp._start_ip_vapp_network, TestVApp._end_ip_vapp_network) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() network_conf = self._network_present(vapp, TestVApp._vapp_network_name) ip_ranges = network_conf.Configuration.IpScopes.IpScope.IpRanges self.assertEqual(len(ip_ranges), 1)
def test_0124_delete_ip_range(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) task = vapp.delete_ip_range(TestVApp._vapp_network_name, TestVApp._start_ip_vapp_network, TestVApp._end_ip_vapp_network) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() network_conf = self._network_present(vapp, TestVApp._vapp_network_name) ip_ranges = network_conf.Configuration.IpScopes.IpScope.IpRanges self.assertEqual(len(ip_ranges), 1)
def test_0030_add_delete_vm(self): """Test the method vapp.add_vms() and vapp.delete_vms(). This test passes if the supplied vm is sucessfully added to the vApp and then successfully removed from the vApp. """ logger = Environment.get_default_logger() vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) source_vapp_name = TestVApp._customized_vapp_name source_vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=source_vapp_name) source_vapp_resource = source_vapp.get_resource() source_vm_name = TestVApp._customized_vapp_vm_name target_vm_name = TestVApp._additional_vm_name spec = { 'vapp': source_vapp_resource, 'source_vm_name': source_vm_name, 'target_vm_name': target_vm_name } logger.debug('Adding vm ' + target_vm_name + ' to vApp ' + vapp_name) # deploy and power_on are false to make sure that the subsequent # deletion of vm doesn't require additional power operations task = vapp.add_vms([spec], deploy=False, power_on=False, all_eulas_accepted=True) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Removing vm ' + target_vm_name + ' from vApp ' + vapp_name) vapp.reload() task = vapp.delete_vms([target_vm_name]) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0201_enable_fence_mode(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=TestVApp._customized_vapp_name) task = vapp.enable_fence_mode() result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) vapp.reload() task = vapp.delete_vapp_network(TestVApp._ovdc_network_name) result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0030_add_delete_vm(self): """Test the method vapp.add_vms() and vapp.delete_vms(). This test passes if the supplied vm is sucessfully added to the vApp and then successfully removed from the vApp. """ logger = Environment.get_default_logger() vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=vapp_name) source_vapp_name = TestVApp._customized_vapp_name source_vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=source_vapp_name) source_vapp_resource = source_vapp.get_resource() source_vm_name = TestVApp._customized_vapp_vm_name target_vm_name = TestVApp._additional_vm_name spec = { 'vapp': source_vapp_resource, 'source_vm_name': source_vm_name, 'target_vm_name': target_vm_name } logger.debug('Adding vm ' + target_vm_name + ' to vApp ' + vapp_name) # deploy and power_on are false to make sure that the subsequent # deletion of vm doesn't require additional power operations task = vapp.add_vms([spec], deploy=False, power_on=False, all_eulas_accepted=True) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Removing vm ' + target_vm_name + ' from vApp ' + vapp_name) vapp.reload() task = vapp.delete_vms([target_vm_name]) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0100_vapp_metadata(self): """Test the methods related to metadata manipulation in vapp.py. This test passes if all the metadata operations are successful. """ logger = Environment.get_default_logger() vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) # add new metadata logger.debug(f'Adding metadata [key={TestVApp._metadata_key},' 'value={TestVApp._metadata_value}]) to vApp:' '{vapp_name}') task = vapp.set_metadata( domain=MetadataDomain.GENERAL.value, visibility=MetadataVisibility.READ_WRITE, key=TestVApp._metadata_key, value=TestVApp._metadata_value) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) # retrieve metadata logger.debug(f'Retriving metadata with key=' '{TestVApp._metadata_key} from vApp:{vapp_name}.') entries = metadata_to_dict(vapp.get_metadata()) self.assertTrue( TestVApp._metadata_key in entries, f'Should have ' 'been able to retrieve metadata entry with ' 'key={TestVApp._metadata_key}.') # update metadata value as org admin logger.debug(f'Updtaing metadata on vApp:{vapp_name} with key=' '{TestVApp._metadata_key} to value=' '{TestVApp._metadata_new_value}.') task = vapp.set_metadata( domain=MetadataDomain.GENERAL.value, visibility=MetadataVisibility.READ_WRITE, key=TestVApp._metadata_key, value=TestVApp._metadata_new_value) TestVApp._client.get_task_monitor().wait_for_success(task) entries = metadata_to_dict(vapp.get_metadata()) self.assertEqual(TestVApp._metadata_new_value, entries[TestVApp._metadata_key]) # remove metadata entry logger.debug(f'Removing metadata with ' 'key={TestVApp._metadata_key} from vApp:{vapp_name}.') task = vapp.remove_metadata(key=TestVApp._metadata_key) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0030_customized_vapp(self): """Test the correctness of the customization of vdc.instantiate_vapp(). This test passes if the customized vApp is retrieved successfully and it's verified that the vApp is correctly customized as per the config in this file. """ vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=vapp_name) vapp_resource = vapp.get_resource() # TODO(https://github.com/vmware/vcd-cli/issues/220) : Bug in # vdc.vapp_instantiate() doesn't take description as parameter. # self.assertEqual(vapp_resource.Description.text, # TestVApp._customized_vapp_description) vms = vapp_resource.xpath('//vcloud:VApp/vcloud:Children/vcloud:Vm', namespaces=NSMAP) self.assertTrue(len(vms) >= 1) first_vm = vms[0] self.assertEqual(first_vm.get('name'), TestVApp._customized_vapp_vm_name) self.assertEqual(first_vm.GuestCustomizationSection.ComputerName.text, TestVApp._customized_vapp_vm_hostname) items = first_vm.xpath('//ovf:VirtualHardwareSection/ovf:Item', namespaces={'ovf': NSMAP['ovf']}) self.assertTrue(len(items) > 0) cpu_size = None memory_size = None disk_size = None for item in items: if item['{' + NSMAP['rasd'] + '}ResourceType'] == 3: cpu_size = item['{' + NSMAP['rasd'] + '}VirtualQuantity'] elif item['{' + NSMAP['rasd'] + '}ResourceType'] == 4: memory_size = item['{' + NSMAP['rasd'] + '}VirtualQuantity'] elif item['{' + NSMAP['rasd'] + '}ResourceType'] == 17: disk_size = item['{' + NSMAP['rasd'] + '}VirtualQuantity'] self.assertIsNotNone(cpu_size) self.assertEqual(cpu_size, TestVApp._customized_vapp_num_cpu) self.assertIsNotNone(memory_size) self.assertEqual(memory_size, TestVApp._customized_vapp_memory_size) self.assertIsNotNone(disk_size) self.assertEqual(disk_size, (TestVApp._customized_vapp_disk_size * 1024 * 1024))
def test_0100_vapp_metadata(self): """Test the methods related to metadata manipulation in vapp.py. This test passes if all the metadata operations are successful. """ logger = Environment.get_default_logger() vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) # add new metadata logger.debug(f'Adding metadata [key={TestVApp._metadata_key},' 'value={TestVApp._metadata_value}]) to vApp:' '{vapp_name}') task = vapp.set_metadata( domain=MetadataDomain.GENERAL.value, visibility=MetadataVisibility.READ_WRITE, key=TestVApp._metadata_key, value=TestVApp._metadata_value) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) # retrieve metadata logger.debug(f'Retriving metadata with key=' '{TestVApp._metadata_key} from vApp:{vapp_name}.') entries = metadata_to_dict(vapp.get_metadata()) self.assertTrue( TestVApp._metadata_key in entries, f'Should have ' 'been able to retrieve metadata entry with ' 'key={TestVApp._metadata_key}.') # update metadata value as org admin logger.debug(f'Updtaing metadata on vApp:{vapp_name} with key=' '{TestVApp._metadata_key} to value=' '{TestVApp._metadata_new_value}.') task = vapp.set_metadata( domain=MetadataDomain.GENERAL.value, visibility=MetadataVisibility.READ_WRITE, key=TestVApp._metadata_key, value=TestVApp._metadata_new_value) TestVApp._client.get_task_monitor().wait_for_success(task) entries = metadata_to_dict(vapp.get_metadata()) self.assertEqual(TestVApp._metadata_new_value, entries[TestVApp._metadata_key]) # remove metadata entry logger.debug(f'Removing metadata with ' 'key={TestVApp._metadata_key} from vApp:{vapp_name}.') task = vapp.remove_metadata(key=TestVApp._metadata_key) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0040_customized_vapp(self): """Test the correctness of the customization of vdc.instantiate_vapp(). This test passes if the customized vApp is retrieved successfully and it's verified that the vApp is correctly customized as per the config in this file. """ vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) vapp_resource = vapp.get_resource() self.assertEqual(vapp_resource.Description.text, TestVApp._customized_vapp_description) vms = vapp_resource.xpath( '//vcloud:VApp/vcloud:Children/vcloud:Vm', namespaces=NSMAP) self.assertTrue(len(vms) >= 1) first_vm = vms[0] self.assertEqual( first_vm.get('name'), TestVApp._customized_vapp_vm_name) self.assertEqual(first_vm.GuestCustomizationSection.ComputerName.text, TestVApp._customized_vapp_vm_hostname) items = first_vm.xpath( '//ovf:VirtualHardwareSection/ovf:Item', namespaces={'ovf': NSMAP['ovf']}) self.assertTrue(len(items) > 0) cpu_size = None memory_size = None disk_size = None for item in items: if item['{' + NSMAP['rasd'] + '}ResourceType'] == 3: cpu_size = item['{' + NSMAP['rasd'] + '}VirtualQuantity'] elif item['{' + NSMAP['rasd'] + '}ResourceType'] == 4: memory_size = item['{' + NSMAP['rasd'] + '}VirtualQuantity'] elif item['{' + NSMAP['rasd'] + '}ResourceType'] == 17: disk_size = item['{' + NSMAP['rasd'] + '}VirtualQuantity'] self.assertIsNotNone(cpu_size) self.assertEqual(cpu_size, TestVApp._customized_vapp_num_cpu) self.assertIsNotNone(memory_size) self.assertEqual(memory_size, TestVApp._customized_vapp_memory_size) self.assertIsNotNone(disk_size) self.assertEqual(disk_size, (TestVApp._customized_vapp_disk_size * 1024 * 1024))
def test_0011_edit_vapp_name_desc(self): """Test the method vapp.edit_name_and_description(). This test passes if the name and desc of the vapp is changed. """ vapp_resource = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) self.assertIsNotNone(vapp_resource) self._update_vapp_name_desc(vapp_resource, 'testname1289', 'testdesc') # reset vapp to old name self._update_vapp_name_desc(vapp_resource, TestVApp._customized_vapp_name, TestVApp._customized_vapp_description)
def test_0130_delete_vapp_network(self): """Test the method vapp.delete_vapp_network(). This test passes if delete network is successful. """ vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) task = vapp.delete_vapp_network(TestVApp._vapp_network_name) TestVApp._client.get_task_monitor().wait_for_success(task=task) # Verification vapp.reload() self.assertFalse( self._is_network_present(vapp, TestVApp._vapp_network_name))
def test_0080_vapp_lease(self): """Test the method vapp.set_lease(). This test passes if the lease setting operation completes successfully. """ vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) task = vapp.set_lease( deployment_lease=TestVApp._empty_vapp_runtime_lease, storage_lease=TestVApp._empty_vapp_storage_lease) result = TestVApp._client.get_task_monitor().\ wait_for_success(task=task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0140_upgrade_virtual_hardware(self): logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=vapp_name) logger.debug('Un-deploying vApp ' + vapp_name) task = vapp.undeploy() result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Upgrading virtual hardware of vApp ' + vapp_name) no_of_vm_upgraded = vapp.upgrade_virtual_hardware() self.assertEqual(no_of_vm_upgraded, len(vapp.get_all_vms()))
def test_0200_create_vapp_network_from_ovdc_network(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=TestVApp._customized_vapp_name) task = vapp.create_vapp_network_from_ovdc_network( TestVApp._ovdc_network_name) result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) vapp.reload() vapp_network_href = find_link(resource=vapp.resource, rel=RelationType.DOWN, media_type=EntityType.vApp_Network.value, name=TestVApp._ovdc_network_name).href self.assertIsNotNone(vapp_network_href)
def test_0080_vapp_lease(self): """Test the method vapp.set_lease(). This test passes if the lease setting operation completes successfully. """ vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=vapp_name) task = vapp.set_lease( deployment_lease=TestVApp._empty_vapp_runtime_lease, storage_lease=TestVApp._empty_vapp_storage_lease) result = TestVApp._client.get_task_monitor().\ wait_for_success(task=task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0130_delete_vapp_network(self): """Test the method vapp.delete_vapp_network(). This test passes if delete network is successful. """ vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) task = vapp.delete_vapp_network(TestVApp._vapp_network_name) TestVApp._client.get_task_monitor().wait_for_success(task=task) # Verification vapp.reload() self.assertFalse( self._is_network_present(vapp, TestVApp._vapp_network_name))
def test_0011_edit_vapp_name_desc(self): """Test the method vapp.edit_name_and_description(). This test passes if the name and desc of the vapp is changed. """ vapp_resource = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) self.assertIsNotNone(vapp_resource) self._update_vapp_name_desc(vapp_resource, 'testname1289', 'testdesc') # reset vapp to old name self._update_vapp_name_desc(vapp_resource, TestVApp._customized_vapp_name, TestVApp._customized_vapp_description)
def test_0140_upgrade_virtual_hardware(self): logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=vapp_name) logger.debug('Un-deploying vApp ' + vapp_name) task = vapp.undeploy() result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Upgrading virtual hardware of vApp ' + vapp_name) no_of_vm_upgraded = vapp.upgrade_virtual_hardware() self.assertEqual(no_of_vm_upgraded, len(vapp.get_all_vms()))
def test_0150_copy_to(self): logger = Environment.get_default_logger() vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=TestVApp._customized_vapp_name) vdc = Environment.get_test_vdc(TestVApp._client) logger.debug('Copy vApp ' + TestVApp._customized_vapp_name) task = vapp.copy_to(vdc.href, TestVApp._vapp_copy_name, None) result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) vdc = Environment.get_test_vdc(TestVApp._sys_admin_client) task = vdc.delete_vapp(name=TestVApp._vapp_copy_name, force=True) result = TestVApp._sys_admin_client.get_task_monitor( ).wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0111_connect_vapp_network_to_ovdc_network(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=TestVApp._customized_vapp_name) # connect vapp network to org vdc network task = vapp.connect_vapp_network_to_ovdc_network( TestVApp._vapp_network_name, TestVApp._ovdc_network_name) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) vapp_network_href = find_link(resource=vapp.resource, rel=RelationType.DOWN, media_type=EntityType.vApp_Network.value, name=TestVApp._vapp_network_name).href vapp_net_res = TestVApp._client.get_resource(vapp_network_href) self.assertEqual(vapp_net_res.Configuration.ParentNetwork.get('name'), TestVApp._ovdc_network_name)
def test_0056_download_ova(self): logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=vapp_name) logger.debug('Un-deploying vApp ' + vapp_name) task = vapp.undeploy() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Downloading a vApp ' + vapp_name) vapp.reload() bytes_written = vapp.download_ova(TestVApp._ova_file_name) self.assertNotEqual(bytes_written, 0) logger.debug('Remove downloaded ' + TestVApp._ova_file_name) os.remove(TestVApp._ova_file_name)
def test_0056_download_ova(self): logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._sys_admin_client, vapp_name=vapp_name) logger.debug('Un-deploying vApp ' + vapp_name) task = vapp.undeploy() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Downloading a vApp ' + vapp_name) vapp.reload() bytes_written = vapp.download_ova(TestVApp._ova_file_name) self.assertNotEqual(bytes_written, 0) logger.debug('Remove downloaded ' + TestVApp._ova_file_name) os.remove(TestVApp._ova_file_name)
def test_0125_update_dns_vapp_network(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) task = vapp.update_dns_vapp_network( TestVApp._vapp_network_name, TestVApp._new_vapp_network_dns1, TestVApp._new_vapp_network_dns2, TestVApp._new_vapp_network_dns_suffix) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() network_conf = self._network_present(vapp, TestVApp._vapp_network_name) IpScope = network_conf.Configuration.IpScopes.IpScope self.assertEqual(IpScope.Dns1, TestVApp._new_vapp_network_dns1) self.assertEqual(IpScope.Dns2, TestVApp._new_vapp_network_dns2) self.assertEqual(IpScope.DnsSuffix, TestVApp._new_vapp_network_dns_suffix) task = vapp.update_dns_vapp_network( TestVApp._vapp_network_name, TestVApp._vapp_network_dns1, TestVApp._vapp_network_dns2, TestVApp._vapp_network_dns_suffix) TestVApp._client.get_task_monitor().wait_for_success(task=task)
def test_0125_update_dns_vapp_network(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) task = vapp.update_dns_vapp_network( TestVApp._vapp_network_name, TestVApp._new_vapp_network_dns1, TestVApp._new_vapp_network_dns2, TestVApp._new_vapp_network_dns_suffix) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() network_conf = self._network_present(vapp, TestVApp._vapp_network_name) IpScope = network_conf.Configuration.IpScopes.IpScope self.assertEqual(IpScope.Dns1, TestVApp._new_vapp_network_dns1) self.assertEqual(IpScope.Dns2, TestVApp._new_vapp_network_dns2) self.assertEqual(IpScope.DnsSuffix, TestVApp._new_vapp_network_dns_suffix) task = vapp.update_dns_vapp_network( TestVApp._vapp_network_name, TestVApp._vapp_network_dns1, TestVApp._vapp_network_dns2, TestVApp._vapp_network_dns_suffix) TestVApp._client.get_task_monitor().wait_for_success(task=task)
def test_0121_update_vapp_network(self): """Test the method update_vapp_network(). This test passes if update network is successful. """ vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) new_name = 'new _name' new_description = 'new_description' task = vapp.update_vapp_network(TestVApp._vapp_network_name, new_name, new_description) TestVApp._client.get_task_monitor().wait_for_success(task=task) # Verification vapp.reload() self.assertFalse( self._is_network_present(vapp, TestVApp._vapp_network_name)) task = vapp.update_vapp_network(new_name, TestVApp._vapp_network_name, None) TestVApp._client.get_task_monitor().wait_for_success(task=task)
def test_0121_update_vapp_network(self): """Test the method update_vapp_network(). This test passes if update network is successful. """ vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) new_name = 'new _name' new_description = 'new_description' task = vapp.update_vapp_network(TestVApp._vapp_network_name, new_name, new_description) TestVApp._client.get_task_monitor().wait_for_success(task=task) # Verification vapp.reload() self.assertFalse( self._is_network_present(vapp, TestVApp._vapp_network_name)) task = vapp.update_vapp_network(new_name, TestVApp._vapp_network_name, None) TestVApp._client.get_task_monitor().wait_for_success(task=task)
def test_0120_reset_vapp_network(self): """Test the method vapp.reset_vapp_network(). This test passes if reset network is successful. """ vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) # make sure the vApp is powered on before resetting task = vapp.undeploy() TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() task = vapp.deploy(power_on=True) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() self.assertTrue(vapp.is_powered_on()) task = vapp.reset_vapp_network(TestVApp._vapp_network_name) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload()
def test_0120_reset_vapp_network(self): """Test the method vapp.reset_vapp_network(). This test passes if reset network is successful. """ vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) # make sure the vApp is powered on before resetting task = vapp.undeploy() TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() task = vapp.deploy(power_on=True) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() self.assertTrue(vapp.is_powered_on()) task = vapp.reset_vapp_network(TestVApp._vapp_network_name) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload()
def test_0122_add_ip_range(self): try: vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) task = vapp.add_ip_range(TestVApp._vapp_network_name, TestVApp._start_ip_vapp_network, TestVApp._end_ip_vapp_network) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() network_conf = self._network_present(vapp, TestVApp._vapp_network_name) ip_range = network_conf.Configuration.IpScopes.IpScope.IpRanges self.assertTrue(hasattr(ip_range, 'IpRange')) self.assertEqual(ip_range.IpRange[0].StartAddress, TestVApp._start_ip_vapp_network) self.assertEqual(ip_range.IpRange[0].EndAddress, TestVApp._end_ip_vapp_network) except Exception: TestVApp._add_ip_range_success = False self.assertTrue(False)
def test_0122_add_ip_range(self): try: vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) task = vapp.add_ip_range(TestVApp._vapp_network_name, TestVApp._start_ip_vapp_network, TestVApp._end_ip_vapp_network) TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() network_conf = self._network_present(vapp, TestVApp._vapp_network_name) ip_range = network_conf.Configuration.IpScopes.IpScope.IpRanges self.assertTrue(hasattr(ip_range, 'IpRange')) self.assertEqual(ip_range.IpRange[0].StartAddress, TestVApp._start_ip_vapp_network) self.assertEqual(ip_range.IpRange[0].EndAddress, TestVApp._end_ip_vapp_network) except Exception: TestVApp._add_ip_range_success = False self.assertTrue(False)
def test_0110_create_vapp_network(self): """Test the method vapp.create_vapp_network(). This test passes if the vApp network creation is successful. """ logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) logger.debug('Creating a vApp network in ' + TestVApp._customized_vapp_name) task = vapp.create_vapp_network( TestVApp._vapp_network_name, TestVApp._vapp_network_cidr, TestVApp._vapp_network_description, TestVApp._vapp_network_dns1, TestVApp._vapp_network_dns2, TestVApp._vapp_network_dns_suffix, [TestVApp._vapp_network_ip_range]) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) # Verification vapp.reload() self.assertTrue( self._is_network_present(vapp, TestVApp._vapp_network_name))
def test_0055_attach_network_to_vm(self): try: client = Environment.get_client_in_default_org(CommonRoles.ORGANIZATION_ADMINISTRATOR) vdc = Environment.get_test_vdc(TestVApp._client) vapp_resource = vdc.get_vapp(TestVApp._customized_vapp_name) vms = vapp_resource.xpath( '//vcloud:VApp/vcloud:Children/vcloud:Vm', namespaces=NSMAP) self.assertTrue(len(vms) >= 1) first_vm = vms[0] vm_name = first_vm.get('name') self.assertEqual(vm_name, TestVApp._customized_vapp_vm_name) vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) network_name = Environment.get_default_orgvdc_network_name() task = vapp.attach_network_to_vm(vm_name, network_name, 0) result = client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) finally: client.logout()
def test_0090_change_vapp_owner(self): """Test the method vapp.change_owner(). This test passes if the owner of the vApp is successfuly changed to the desired user. """ try: logger = Environment.get_default_logger() org_admin_client = Environment.get_client_in_default_org( CommonRoles.ORGANIZATION_ADMINISTRATOR) vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=org_admin_client, vapp_name=vapp_name) vapp_user_name = Environment.get_username_for_role_in_test_org( CommonRoles.VAPP_USER) vapp_user_href = Environment.get_user_href_in_test_org( vapp_user_name) logger.debug('Changing owner of vApp ' + vapp_name + ' to ' + vapp_user_name) vapp.change_owner(vapp_user_href) vapp.reload() self.assertEqual(vapp.get_resource().Owner.User.get('name'), vapp_user_name) logger.debug('Changing owner of vApp ' + vapp_name + ' back to ' + TestVApp._empty_vapp_owner_name) original_owner_href = Environment.get_user_href_in_test_org( TestVApp._empty_vapp_owner_name) vapp.change_owner(original_owner_href) vapp.reload() self.assertEqual(vapp.get_resource().Owner.User.get('name'), TestVApp._empty_vapp_owner_name) finally: org_admin_client.logout()
def test_0090_change_vapp_owner(self): """Test the method vapp.change_owner(). This test passes if the owner of the vApp is successfuly changed to the desired user. """ try: logger = Environment.get_default_logger() org_admin_client = Environment.get_client_in_default_org( CommonRoles.ORGANIZATION_ADMINISTRATOR) vapp_name = TestVApp._empty_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=org_admin_client, vapp_name=vapp_name) vapp_user_name = Environment.get_username_for_role_in_test_org( CommonRoles.VAPP_USER) vapp_user_href = Environment.get_user_href_in_test_org( vapp_user_name) logger.debug('Changing owner of vApp ' + vapp_name + ' to ' + vapp_user_name) vapp.change_owner(vapp_user_href) vapp.reload() self.assertEqual(vapp.get_resource().Owner.User.get('name'), vapp_user_name) logger.debug('Changing owner of vApp ' + vapp_name + ' back to ' + TestVApp._empty_vapp_owner_name) original_owner_href = Environment.get_user_href_in_test_org( TestVApp._empty_vapp_owner_name) vapp.change_owner(original_owner_href) vapp.reload() self.assertEqual(vapp.get_resource().Owner.User.get('name'), TestVApp._empty_vapp_owner_name) finally: org_admin_client.logout()
def test_0070_vapp_acl(self): """Test the method related to access control list in vapp.py. This test passes if all the acl operations are successful. """ logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) vapp_user_name = Environment.get_username_for_role_in_test_org( CommonRoles.VAPP_USER) console_user_name = Environment.get_username_for_role_in_test_org( CommonRoles.CONSOLE_ACCESS_ONLY) # remove all logger.debug('Removing all access control from vApp ' + vapp_name) control_access = vapp.remove_access_settings(remove_all=True) self.assertFalse(hasattr(control_access, 'AccessSettings')) # add logger.debug('Adding 2 access control rule to vApp ' + vapp_name) vapp.reload() access_settings_list = [{ 'name': console_user_name, 'type': 'user' }, { 'name': vapp_user_name, 'type': 'user', 'access_level': 'Change' }] control_access = vapp.add_access_settings(access_settings_list) self.assertEqual(len(control_access.AccessSettings.AccessSetting), 2) # get logger.debug('Fetching access control rules for vApp ' + vapp_name) vapp.reload() control_access = vapp.get_access_settings() self.assertEqual(len(control_access.AccessSettings.AccessSetting), 2) # remove logger.debug('Removing 1 access control rule for vApp ' + vapp_name) vapp.reload() control_access = vapp.remove_access_settings( access_settings_list=[{ 'name': vapp_user_name, 'type': 'user' }]) self.assertEqual(len(control_access.AccessSettings.AccessSetting), 1) # share logger.debug('Sharing vApp ' + vapp_name + ' with everyone in the org') vapp.reload() control_access = vapp.share_with_org_members( everyone_access_level='ReadOnly') self.assertEqual(control_access.IsSharedToEveryone.text, 'true') self.assertEqual(control_access.EveryoneAccessLevel.text, 'ReadOnly') # unshare logger.debug('Un-sharing vApp ' + vapp_name + ' from everyone in the org') vapp.reload() control_access = vapp.unshare_from_org_members() self.assertEqual(control_access.IsSharedToEveryone.text, 'false') # remove all access control rules again logger.debug('Removing all access control from vApp ' + vapp_name) control_access = vapp.remove_access_settings(remove_all=True) self.assertFalse(hasattr(control_access, 'AccessSettings'))
def test_0126_list_ip_allocations(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) self._allocate_vm_ip(vapp) list_ip_address = vapp.list_ip_allocations(TestVApp._vapp_network_name) self.assertTrue(len(list_ip_address) > 0)
def test_0126_list_ip_allocations(self): vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=TestVApp._customized_vapp_name) self._allocate_vm_ip(vapp) list_ip_address = vapp.list_ip_allocations(TestVApp._vapp_network_name) self.assertTrue(len(list_ip_address) > 0)
def test_0050_vapp_power_options(self): """Test the method related to power operations in vapp.py. This test passes if all the power operations are successful. """ logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc( client=TestVApp._client, vapp_name=vapp_name) # make sure the vApp is powered on before running tests logger.debug('Making sure vApp ' + vapp_name + ' is powered on.') if vapp.is_suspended(): task = vapp.deploy() TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() if not vapp.is_powered_on(): task = vapp.power_on() TestVApp._client.get_task_monitor().wait_for_success(task=task) vapp.reload() logger.debug('Un-deploying vApp ' + vapp_name) task = vapp.undeploy() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Deploying vApp ' + vapp_name) vapp.reload() task = vapp.deploy(power_on=False) result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Powering on vApp ' + vapp_name) vapp.reload() task = vapp.power_on() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Reseting (power) vApp ' + vapp_name) vapp.reload() task = vapp.power_reset() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Powering off vApp ' + vapp_name) vapp.reload() task = vapp.power_off() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Powering back on vApp ' + vapp_name) vapp.reload() task = vapp.power_on() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Rebooting (power) vApp ' + vapp_name) vapp.reload() task = vapp.reboot() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value) logger.debug('Shutting down vApp ' + vapp_name) vapp.reload() task = vapp.shutdown() result = TestVApp._client.get_task_monitor().wait_for_success(task) self.assertEqual(result.get('status'), TaskStatus.SUCCESS.value)
def test_0070_vapp_acl(self): """Test the method related to access control list in vapp.py. This test passes if all the acl operations are successful. """ logger = Environment.get_default_logger() vapp_name = TestVApp._customized_vapp_name vapp = Environment.get_vapp_in_test_vdc(client=TestVApp._client, vapp_name=vapp_name) vapp_user_name = Environment.get_username_for_role_in_test_org( CommonRoles.VAPP_USER) console_user_name = Environment.get_username_for_role_in_test_org( CommonRoles.CONSOLE_ACCESS_ONLY) # remove all logger.debug('Removing all access control from vApp ' + vapp_name) control_access = vapp.remove_access_settings(remove_all=True) self.assertFalse(hasattr(control_access, 'AccessSettings')) # add logger.debug('Adding 2 access control rule to vApp ' + vapp_name) vapp.reload() access_settings_list = [{ 'name': console_user_name, 'type': 'user' }, { 'name': vapp_user_name, 'type': 'user', 'access_level': 'Change' }] control_access = vapp.add_access_settings(access_settings_list) self.assertEqual(len(control_access.AccessSettings.AccessSetting), 2) # get logger.debug('Fetching access control rules for vApp ' + vapp_name) vapp.reload() control_access = vapp.get_access_settings() self.assertEqual(len(control_access.AccessSettings.AccessSetting), 2) # remove logger.debug('Removing 1 access control rule for vApp ' + vapp_name) vapp.reload() control_access = vapp.remove_access_settings( access_settings_list=[{ 'name': vapp_user_name, 'type': 'user' }]) self.assertEqual(len(control_access.AccessSettings.AccessSetting), 1) # share logger.debug('Sharing vApp ' + vapp_name + ' with everyone in the org') vapp.reload() control_access = vapp.share_with_org_members( everyone_access_level='ReadOnly') self.assertEqual(control_access.IsSharedToEveryone.text, 'true') self.assertEqual(control_access.EveryoneAccessLevel.text, 'ReadOnly') # unshare logger.debug('Un-sharing vApp ' + vapp_name + ' from everyone in the org') vapp.reload() control_access = vapp.unshare_from_org_members() self.assertEqual(control_access.IsSharedToEveryone.text, 'false') # remove all access control rules again logger.debug('Removing all access control from vApp ' + vapp_name) control_access = vapp.remove_access_settings(remove_all=True) self.assertFalse(hasattr(control_access, 'AccessSettings'))