예제 #1
0
    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)
예제 #2
0
    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()
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
 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)
예제 #12
0
 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)
예제 #13
0
 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)
예제 #14
0
 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)
예제 #15
0
    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)
예제 #16
0
 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)
예제 #17
0
    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)
예제 #18
0
    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)
예제 #19
0
    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))
예제 #20
0
    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)
예제 #21
0
    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))
예제 #22
0
    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)
예제 #23
0
    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))
예제 #24
0
    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)
예제 #25
0
    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()))
예제 #26
0
 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)
예제 #27
0
    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)
예제 #28
0
    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))
예제 #29
0
    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)
예제 #30
0
    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()))
예제 #31
0
 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)
예제 #32
0
    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)
예제 #33
0
    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)
예제 #34
0
    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)
예제 #35
0
 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)
예제 #36
0
 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)
예제 #37
0
    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)
예제 #38
0
    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)
예제 #39
0
    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()
예제 #40
0
    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()
예제 #41
0
 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)
예제 #42
0
 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)
예제 #43
0
    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))
예제 #44
0
    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()
예제 #45
0
    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()
예제 #46
0
    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()
예제 #47
0
    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'))
예제 #48
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)
예제 #49
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)
예제 #50
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)
예제 #51
0
    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'))