Пример #1
0
    def test_0010_update(self):
        """Test the method Platform.update_external_network()

        Update name and description of the external network created by setup.
        Verifies name and description after update completes. Reset the name
        and description to original.

        This test passes if name and description are updated successfully.
        """
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        new_name = 'updated_' + TestExtNet._name
        new_description = 'Updated ' + TestExtNet._description

        ext_net = platform.update_external_network(TestExtNet._name, new_name,
                                                   new_description)

        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug('Updated external network ' + TestExtNet._name + '.')

        ext_net = platform.get_external_network(new_name)
        self.assertIsNotNone(ext_net)
        self.assertEqual(new_description,
                         ext_net['{' + NSMAP['vcloud'] + '}Description'].text)

        # Reset the name and description to original
        ext_net = platform.update_external_network(new_name, self._name,
                                                   self._description)
        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
Пример #2
0
    def test_0030_enable_subnet(self):
        """Test the method externalNetwork.enable_subnet()

        Enable subnet of external network

        This test passes if subnet is enabled successfully.
        """
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)

        ext_net = self._get_ext_net(platform).enable_subnet(
            TestExtNet._gateway2, True)

        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug(
            'Enabled subnet of external network ' + TestExtNet._name + '.')

        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        config = ext_net['{' + NSMAP['vcloud'] + '}Configuration']
        ip_scope = config.IpScopes.IpScope
        for scope in ip_scope:
            if scope.Gateway == TestExtNet._gateway2:
                ip_scope = scope
                break
        self.assertIsNotNone(ip_scope)
        self.assertEqual(ip_scope.IsEnabled, True)
Пример #3
0
    def test_0055_delete_ip_range(self):
        """Test the method externalNetwork.delete_ip_range()
       Delete ip range of a subnet in external network
       This test passes if the ip range for a subnet is
       deleted successfully.
       """
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        ext_net = self._get_ext_net(platform).delete_ip_range(
            TestExtNet._gateway2,
            [TestExtNet._ip_range4])

        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug(
            'Deleted ip-range of a subnet in external network'
            + TestExtNet._name + '.')

        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        config = ext_net['{' + NSMAP['vcloud'] + '}Configuration']
        ip_scope = config.IpScopes.IpScope
        for scope in ip_scope:
            if scope.Gateway == TestExtNet._gateway2:
                ip_scope = scope
                break
        self.assertIsNotNone(ip_scope)
        self.assertFalse(self.__validate_ip_range(ip_scope,
                                                  TestExtNet._ip_range4))
Пример #4
0
    def test_0060_attach_port_group(self):
        """Attach a portgroup to an external network
       This test passes if the portgroup from another vCenter is added
       to external network successfully.
       """
        if TestExtNet._vc2_host_ip is None or TestExtNet._vc2_host_ip == '':
            return
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        vc_name = TestExtNet._config['vc2']['vcenter_host_name']
        portgrouphelper = PortgroupHelper(TestExtNet._sys_admin_client)
        pg_name = portgrouphelper.get_available_portgroup_name(
            vc_name, TestExtNet._portgroupType)

        ext_net = self._get_ext_net(platform).attach_port_group(
            vc_name,
            pg_name)
        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug(
            'Attach a portgroup to an external network'
            + TestExtNet._name + '.')
        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        vc_record = platform.get_vcenter(vc_name)
        vc_href = vc_record.get('href')
        vim_port_group_refs = \
            ext_net['{' + NSMAP['vmext'] + '}VimPortGroupRefs']
        vc_href_found = False
        for vim_obj_ref in vim_port_group_refs.VimObjectRef:
            if vim_obj_ref.VimServerRef.get('href') == vc_href:
                vc_href_found = True
                break
        self.assertTrue(vc_href_found)
Пример #5
0
def list_vcenters(ctx):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        stdout(platform.list_vcenters(), ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #6
0
def info(ctx, name):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        stdout(platform.get_vcenter(name=name), ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #7
0
    def test_0000_setup(self):
        """Load configuration and create a click runner to invoke CLI."""
        self._config = Environment.get_config()
        GatewayTest._logger = Environment.get_default_logger()

        GatewayTest._runner = CliRunner()
        default_org = self._config['vcd']['default_org_name']
        self._login()
        GatewayTest._runner.invoke(org, ['use', default_org])
        GatewayTest._api_version = self._config['vcd']['api_version']
        GatewayTest._ext_network_name = self._get_first_external_network()

        self.client = Environment.get_sys_admin_client()
        platform = Platform(self.client)
        ext_net_resource = platform.get_external_network(
            GatewayTest._ext_network_name)

        self.assertTrue(len(ext_net_resource) > 0)

        ip_scopes = ext_net_resource.xpath(
            'vcloud:Configuration/vcloud:IpScopes/vcloud:IpScope',
            namespaces=NSMAP)
        first_ipscope = ip_scopes[0]
        GatewayTest._gateway_ip = first_ipscope.Gateway.text
        prefix_len = netmask_to_cidr_prefix_len(GatewayTest._gateway_ip,
                                                first_ipscope.Netmask.text)
        GatewayTest._subnet_addr = GatewayTest._gateway_ip + '/' + str(
            prefix_len)
Пример #8
0
    def test_0055_delete_ip_range(self):
        """Test the method externalNetwork.delete_ip_range()
       Delete ip range of a subnet in external network
       This test passes if the ip range for a subnet is
       deleted successfully.
       """
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        ext_net = self._get_ext_net(platform).delete_ip_range(
            TestExtNet._gateway2, [TestExtNet._ip_range4])

        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug('Deleted ip-range of a subnet in external network' +
                     TestExtNet._name + '.')

        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        config = ext_net['{' + NSMAP['vcloud'] + '}Configuration']
        ip_scope = config.IpScopes.IpScope
        for scope in ip_scope:
            if scope.Gateway == TestExtNet._gateway2:
                ip_scope = scope
                break
        self.assertIsNotNone(ip_scope)
        self.assertFalse(
            self.__validate_ip_range(ip_scope, TestExtNet._ip_range4))
Пример #9
0
 def test_0003_get_vc_negative(self):
     try:
         platform = Platform(self.client)
         platform.get_vcenter(self.config['vcd']['vcenter_invalid'])
         assert False
     except Exception as e:
         assert 'not found' in str(e).lower()
Пример #10
0
    def test_0010_update(self):
        """Test the method Platform.update_external_network()

        Update name and description of the external network created by setup.
        Verifies name and description after update completes. Reset the name
        and description to original.

        This test passes if name and description are updated successfully.
        """
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        new_name = 'updated_' + TestExtNet._name
        new_description = 'Updated ' + TestExtNet._description

        ext_net = platform.update_external_network(TestExtNet._name, new_name,
                                                   new_description)

        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug('Updated external network ' + TestExtNet._name + '.')

        ext_net = platform.get_external_network(new_name)
        self.assertIsNotNone(ext_net)
        self.assertEqual(new_description,
                         ext_net['{' + NSMAP['vcloud'] + '}Description'].text)

        # Reset the name and description to original
        ext_net = platform.update_external_network(new_name, self._name,
                                                   self._description)
        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
Пример #11
0
    def create_external_network(cls):
        """Creates an external network by the name specified in the config file.

        Skips creating one, if such a network already exists. Also stores the
        href and name of the network as class variables for future use.
        """
        cls._basic_check()
        net_name = cls._config['external_network']['name']

        platform = Platform(cls._sys_admin_client)

        net_refs = platform.list_external_networks()
        if net_name is not '*':
            for net_ref in net_refs:
                if net_ref.get('name').lower() == net_name.lower():
                    cls._logger.debug('Reusing existing ' + net_name)
                    cls._external_network_href = net_ref.get('href')
                    cls._external_network_name = net_name
                    return
            cls._logger.debug('Creating new external network' + net_name)
            ext_nw = cls._create_external_network()
            cls._external_network_href = ext_nw.get('href')
            cls._external_network_name = net_name
            cls._logger.debug('Created external network ' + net_name)
        else:
            if len(net_refs) > 0:
                cls._logger.debug('Defaulting to first network : ' +
                                  net_refs[0].get('name'))
                cls._external_network_href = net_refs[0].get('href')
                cls._external_network_name = net_refs[0].get('name')
            else:
                cls._logger.debug('No usable network found. Aborting test.')
                raise Exception('Test Aborted. No usable external network.')
Пример #12
0
def info(ctx, name):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        stdout(platform.get_vcenter(name), ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #13
0
 def test_0021_list_available_port_group_names(self):
     """Test the method Platform.list_port_group_names, this method fetches
     list of portgroup name for a particular vCenter"""
     platform = Platform(TestVC._client)
     port_group_names = \
         platform.list_available_port_group_names(TestVC._vcenter_host_name)
     self.assertTrue(len(port_group_names) > 0)
Пример #14
0
    def test_0061_detach_port_group(self):
        """Detach a portgroup from an external network
       This test passes if the portgroup from another vCenter is removed
       from external network successfully.
       """
        if TestExtNet._vc2_host_ip is None or TestExtNet._vc2_host_ip == '':
            return
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        vc_name = TestExtNet._config['vc2']['vcenter_host_name']
        port_group_helper = PortgroupHelper(TestExtNet._sys_admin_client)
        pg_name = port_group_helper.get_ext_net_portgroup_name(
            vc_name, self._name)

        ext_net = self._get_ext_net(platform).detach_port_group(
            vc_name, pg_name)
        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug('Detach a portgroup from an external network' +
                     TestExtNet._name)
        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        vc_record = platform.get_vcenter(vc_name)
        vc_href = vc_record.get('href')
        vim_port_group_ref = ext_net.VimPortGroupRef
        vc_href_found = False

        if vim_port_group_ref.VimServerRef.get('href') == vc_href:
            vc_href_found = True
        self.assertFalse(vc_href_found)
Пример #15
0
 def test_0036_get_storage_profiles(self):
     """Get storage profile(s) of a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     _, _, pvdc_ext_res = platform.get_pvdc(TestPVDC._pvdc_name)
     pvdc = PVDC(TestPVDC._sys_admin_client, resource=pvdc_ext_res)
     pvdc_storage_profiles = pvdc.get_storage_profiles()
     self.assertTrue(len(pvdc_storage_profiles) > 0)
Пример #16
0
    def attach_vc(cls):
        """Attaches VC and NSX to vCD as per configuration file.

        If VC is already attached no further action is taken.

        :return: Nothing
        """
        cls._basic_check()
        platform = Platform(cls._sys_admin_client)
        vc_name = cls._config['vc']['vcenter_host_name']
        for record in platform.list_vcenters():
            if record.get('name').lower() == vc_name.lower():
                cls._logger.debug(vc_name + ' is already attached.')
                return
        # Untested code - see VCDA-603
        platform.attach_vcenter(
            vc_server_name=vc_name,
            vc_server_host=cls._config['vc']['vcenter_host_ip'],
            vc_admin_user=cls._config['vc']['vcenter_admin_username'],
            vc_admin_pwd=cls._config['vc']['vcenter_admin_password'],
            nsx_server_name=cls._config['nsx']['nsx_hostname'],
            nsx_host=cls._config['nsx']['nsx_host_ip'],
            nsx_admin_user=cls._config['nsx']['nsx_admin_username'],
            nsx_admin_pwd=cls._config['nsx']['nsx_admin_password'],
            is_enabled=True)
Пример #17
0
    def test_0030_enable_subnet(self):
        """Test the method externalNetwork.enable_subnet()

        Enable subnet of external network

        This test passes if subnet is enabled successfully.
        """
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)

        ext_net = self._get_ext_net(platform).enable_subnet(
            TestExtNet._gateway2, True)

        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug('Enabled subnet of external network ' + TestExtNet._name +
                     '.')

        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        config = ext_net['{' + NSMAP['vcloud'] + '}Configuration']
        ip_scope = config.IpScopes.IpScope
        for scope in ip_scope:
            if scope.Gateway == TestExtNet._gateway2:
                ip_scope = scope
                break
        self.assertIsNotNone(ip_scope)
        self.assertEqual(ip_scope.IsEnabled, True)
Пример #18
0
    def test_0020_add_subnet(self):
        """Test the method externalNetwork.add_subnet()

        Add subnet to the existing external network

        This test passes if subnet is added successfully.
        """
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        ext_net_resource = platform.get_external_network(self._name)
        extnet_obj = ExternalNetwork(TestExtNet._sys_admin_client,
                                     resource=ext_net_resource)

        ext_net = extnet_obj.add_subnet(self._name, TestExtNet._gateway2,
                                        TestExtNet._netmask,
                                        [TestExtNet._ip_range2],
                                        TestExtNet._dns1, TestExtNet._dns2,
                                        TestExtNet._dns_suffix)

        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug('Added subnet to external network ' + TestExtNet._name +
                     '.')

        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        config = ext_net['{' + NSMAP['vcloud'] + '}Configuration']
        new_subnet = config.IpScopes.IpScope[-1]
        self.assertEqual(TestExtNet._gateway2, new_subnet.Gateway.text)
        self.assertEqual(TestExtNet._netmask, new_subnet.Netmask.text)
Пример #19
0
def detach(ctx, name):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        stdout(platform.detach_vcenter(vc_name=name), ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #20
0
    def test_0060_attach_port_group(self):
        """Attach a portgroup to an external network
       This test passes if the portgroup from another vCenter is added
       to external network successfully.
       """
        if TestExtNet._vc2_host_ip is None or TestExtNet._vc2_host_ip == '':
            return
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        vc_name = TestExtNet._config['vc2']['vcenter_host_name']
        portgrouphelper = PortgroupHelper(TestExtNet._sys_admin_client)
        pg_name = portgrouphelper.get_available_portgroup_name(
            vc_name, TestExtNet._portgroupType)

        ext_net = self._get_ext_net(platform).attach_port_group(
            vc_name, pg_name)
        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug('Attach a portgroup to an external network' +
                     TestExtNet._name + '.')
        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        vc_record = platform.get_vcenter(vc_name)
        vc_href = vc_record.get('href')
        vim_port_group_refs = \
            ext_net['{' + NSMAP['vmext'] + '}VimPortGroupRefs']
        vc_href_found = False
        for vim_obj_ref in vim_port_group_refs.VimObjectRef:
            if vim_obj_ref.VimServerRef.get('href') == vc_href:
                vc_href_found = True
                break
        self.assertTrue(vc_href_found)
Пример #21
0
    def test_0020_add_subnet(self):
        """Test the method externalNetwork.add_subnet()

        Add subnet to the existing external network

        This test passes if subnet is added successfully.
        """
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        ext_net_resource = platform.get_external_network(self._name)
        extnet_obj = ExternalNetwork(TestExtNet._sys_admin_client,
                                     resource=ext_net_resource)

        ext_net = extnet_obj.add_subnet(self._name,
                                        TestExtNet._gateway2,
                                        TestExtNet._netmask,
                                        [TestExtNet._ip_range2],
                                        TestExtNet._dns1,
                                        TestExtNet._dns2,
                                        TestExtNet._dns_suffix)

        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug(
            'Added subnet to external network ' + TestExtNet._name + '.')

        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        config = ext_net['{' + NSMAP['vcloud'] + '}Configuration']
        new_subnet = config.IpScopes.IpScope[-1]
        self.assertEqual(TestExtNet._gateway2, new_subnet.Gateway.text)
        self.assertEqual(TestExtNet._netmask, new_subnet.Netmask.text)
Пример #22
0
def list_vcenters(ctx):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        stdout(platform.list_vcenters(), ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #23
0
def detach(ctx, name):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        stdout(platform.detach_vcenter(vc_name=name), ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #24
0
    def test_0061_detach_port_group(self):
        """Detach a portgroup from an external network
       This test passes if the portgroup from another vCenter is removed
       from external network successfully.
       """
        if TestExtNet._vc2_host_ip is None or TestExtNet._vc2_host_ip == '':
            return
        logger = Environment.get_default_logger()
        platform = Platform(TestExtNet._sys_admin_client)
        vc_name = TestExtNet._config['vc2']['vcenter_host_name']
        port_group_helper = PortgroupHelper(TestExtNet._sys_admin_client)
        pg_name = port_group_helper.get_ext_net_portgroup_name(vc_name,
                                                               self._name)

        ext_net = self._get_ext_net(platform).detach_port_group(vc_name,
                                                                pg_name)
        task = ext_net['{' + NSMAP['vcloud'] + '}Tasks'].Task[0]
        TestExtNet._sys_admin_client.get_task_monitor().wait_for_success(
            task=task)
        logger.debug(
            'Detach a portgroup from an external network' + TestExtNet._name)
        ext_net = platform.get_external_network(self._name)
        self.assertIsNotNone(ext_net)
        vc_record = platform.get_vcenter(vc_name)
        vc_href = vc_record.get('href')
        vim_port_group_ref = ext_net.VimPortGroupRef
        vc_href_found = False

        if vim_port_group_ref.VimServerRef.get('href') == vc_href:
            vc_href_found = True
        self.assertFalse(vc_href_found)
Пример #25
0
 def test_0021_list_available_port_group_names(self):
     """Test the method Platform.list_port_group_names, this method fetches
     list of portgroup name for a particular vCenter"""
     platform = Platform(TestVC._client)
     port_group_names = \
         platform.list_available_port_group_names(TestVC._vcenter_host_name)
     self.assertTrue(len(port_group_names) > 0)
Пример #26
0
 def test_0030_attach_resource_pools(self):
     """Attach resource pool(s) to a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.attach_resource_pools_to_provider_vdc(
         TestPVDC._pvdc_name, TestPVDC._resource_pool_names)
     res = TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
     self.assertEqual(res.get('status'), TaskStatus.SUCCESS.value)
Пример #27
0
 def test_0020_get_vc(self):
     """Platform.get_vcenter finds a known vcenter."""
     logger = Environment.get_default_logger()
     platform = Platform(TestVC._client)
     vcenter = platform.get_vcenter(TestVC._vcenter_host_name)
     logger.debug('vCenter: name=%s, url=%s' %
                  (vcenter.get('name'), vcenter.Url.text))
     self.assertIsNotNone(vcenter)
Пример #28
0
 def test_0010_list_vc(self):
     """Platform.list_vcenters prints a list of virtual center servers."""
     logger = Environment.get_default_logger()
     platform = Platform(TestVC._client)
     vcenters = platform.list_vcenters()
     for vcenter in vcenters:
         logger.debug('vCenter found: %s' % vcenter.get('name'))
     self.assertTrue(len(vcenters) > 0)
Пример #29
0
def enable(ctx, name):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        stdout(platform.enable_disable_vcenter(vc_name=name, enable_flag=True),
               ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #30
0
def list_datastores(ctx):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        result = platform.list_datastores()
        stdout(result, ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #31
0
 def test_0055_del_storage_profile(self):
     """Delete storage profile(s) from a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.pvdc_del_storage_profile(TestPVDC._pvdc_name,
                                              TestPVDC._storage_profiles)
     res = TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
     self.assertEqual(res.get('status'), TaskStatus.SUCCESS.value)
Пример #32
0
 def test_0060_detach_resource_pools(self):
     """Disable and delete resource pool(s) from a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.detach_resource_pools_from_provider_vdc(
         TestPVDC._pvdc_name,
         TestPVDC._resource_pool_names)
     TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
Пример #33
0
 def test_0060_detach_resource_pools(self):
     """Disable and delete resource pool(s) from a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.detach_resource_pools_from_provider_vdc(
         TestPVDC._pvdc_name, TestPVDC._resource_pool_names)
     res = TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
     self.assertEqual(res.get('status'), TaskStatus.SUCCESS.value)
Пример #34
0
 def test_0037_get_storage_profile(self):
     """Get a storage profile of a PVDC by name."""
     platform = Platform(TestPVDC._sys_admin_client)
     _, _, pvdc_ext_res = platform.get_pvdc(TestPVDC._pvdc_name)
     pvdc = PVDC(TestPVDC._sys_admin_client, resource=pvdc_ext_res)
     pvdc_storage_profile = pvdc.get_storage_profile(
         TestPVDC._storage_profiles[0])
     self.assertIsNotNone(pvdc_storage_profile)
Пример #35
0
 def test_0030_attach_resource_pools(self):
     """Attach resource pool(s) to a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.attach_resource_pools_to_provider_vdc(
         TestPVDC._pvdc_name,
         TestPVDC._resource_pool_names)
     TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
Пример #36
0
 def test_0015_list_datastores(self):
     """List all datastores
     Invokes the list_datastores of the platform.
     """
     platform = Platform(client=TestDatastore._client)
     datastore_list = platform.list_datastores()
     # Verify
     self.assertTrue(len(datastore_list) > 0)
Пример #37
0
def disable(ctx, name):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        stdout(platform.enable_disable_vcenter(
            vc_name=name, enable_flag=False), ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #38
0
 def test_0020_get_vc(self):
     """Platform.get_vcenter finds a known vcenter."""
     logger = Environment.get_default_logger()
     platform = Platform(TestVC._client)
     vcenter = platform.get_vcenter(TestVC._vcenter_host_name)
     logger.debug('vCenter: name=%s, url=%s' %
                  (vcenter.get('name'), vcenter.Url.text))
     self.assertIsNotNone(vcenter)
Пример #39
0
 def test_0010_list_vc(self):
     """Platform.list_vcenters prints a list of virtual center servers."""
     logger = Environment.get_default_logger()
     platform = Platform(TestVC._client)
     vcenters = platform.list_vcenters()
     for vcenter in vcenters:
         logger.debug('vCenter found: %s' % vcenter.get('name'))
     self.assertTrue(len(vcenters) > 0)
Пример #40
0
 def test_0060_detach_resource_pools(self):
     """Disable and delete resource pool(s) from a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.detach_resource_pools_from_provider_vdc(
         TestPVDC._pvdc_name,
         TestPVDC._resource_pool_names)
     res = TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
     self.assertEqual(res.get('status'), TaskStatus.SUCCESS.value)
Пример #41
0
 def test_0030_get_vc_negative(self):
     """Platform.get_vcenter does not find a non-existent vcenter."""
     try:
         platform = Platform(TestVC._client)
         platform.get_vcenter(TestVC._vcenter_invalid)
         self.fail('Should not be able to find VC that does not exist ' +
                   TestVC._vcenter_invalid)
     except EntityNotFoundException as e:
         return
Пример #42
0
def unregister(ctx, nsxt_name):
    try:
        restore_session(ctx)
        client = ctx.obj['client']
        platform = Platform(client)
        platform.unregister_nsxt_manager(nsxt_manager_name=nsxt_name)
        stdout('NSX-T manager unregistered successfully.', ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #43
0
 def test_0070_list_available_pvdc_with_filter(self):
     """List available provider Vdcs.
     """
     platform = Platform(TestExtNet._sys_admin_client)
     ext_net_resource = platform.get_external_network(
         TestExtNet._common_ext_net_name)
     extnet_obj = ExternalNetwork(TestExtNet._sys_admin_client,
                                  resource=ext_net_resource)
     pvdc_name_list = extnet_obj.list_provider_vdc('name==*')
Пример #44
0
def unregister(ctx, nsxt_name):
    try:
        restore_session(ctx)
        client = ctx.obj['client']
        platform = Platform(client)
        platform.unregister_nsxt_manager(nsxt_manager_name=nsxt_name)
        stdout('NSX-T manager unregistered successfully.', ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #45
0
 def test_0050_migrate_vms_back(self):
     """Migrate VM(s) from one resource pool to another."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.pvdc_migrate_vms(TestPVDC._pvdc_name,
                                      TestPVDC._vms_to_migrate,
                                      TestPVDC._target_resource_pool)
     res = TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
     self.assertEqual(res.get('status'), TaskStatus.SUCCESS.value)
Пример #46
0
 def test_0030_get_vc_negative(self):
     """Platform.get_vcenter does not find a non-existent vcenter."""
     try:
         platform = Platform(TestVC._client)
         platform.get_vcenter(TestVC._vcenter_invalid)
         self.fail('Should not be able to find VC that does not exist ' +
                   TestVC._vcenter_invalid)
     except EntityNotFoundException as e:
         return
Пример #47
0
 def test_0055_del_storage_profile(self):
     """Delete storage profile(s) from a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.pvdc_del_storage_profile(
         TestPVDC._pvdc_name,
         TestPVDC._storage_profiles)
     res = TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
     self.assertEqual(res.get('status'), TaskStatus.SUCCESS.value)
Пример #48
0
 def test_0030_attach_resource_pools(self):
     """Attach resource pool(s) to a PVDC."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.attach_resource_pools_to_provider_vdc(
         TestPVDC._pvdc_name,
         TestPVDC._resource_pool_names)
     res = TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
     self.assertEqual(res.get('status'), TaskStatus.SUCCESS.value)
Пример #49
0
 def test_0070_list_available_pvdc_with_filter(self):
     """List available provider Vdcs.
     """
     platform = Platform(TestExtNet._sys_admin_client)
     ext_net_resource = platform.get_external_network(
         TestExtNet._common_ext_net_name)
     extnet_obj = ExternalNetwork(TestExtNet._sys_admin_client,
                                  resource=ext_net_resource)
     pvdc_name_list = extnet_obj.list_provider_vdc('name==*')
Пример #50
0
 def test_0090_list_allocated_ip_with_gateway_filter(self):
     """List allocated ips.
     """
     platform = Platform(TestExtNet._sys_admin_client)
     ext_net_name = TestExtNet._config['external_network']['name']
     ext_net_resource = platform.get_external_network(ext_net_name)
     extnet_obj = ExternalNetwork(TestExtNet._sys_admin_client,
                                  resource=ext_net_resource)
     allocated_ip_dict = extnet_obj.list_allocated_ip_address('name==*')
     self.assertTrue(len(allocated_ip_dict) > 0)
Пример #51
0
 def test_0080_list_available_gateways_with_filter(self):
     """List available gateways.
     """
     platform = Platform(TestExtNet._sys_admin_client)
     ext_net_name = TestExtNet._config['external_network']['name']
     ext_net_resource = platform.get_external_network(ext_net_name)
     extnet_obj = ExternalNetwork(TestExtNet._sys_admin_client,
                                  resource=ext_net_resource)
     gateway_name_list = extnet_obj.list_extnw_gateways('name==*')
     self.assertTrue(len(gateway_name_list) > 0)
Пример #52
0
 def test_0050_migrate_vms_back(self):
     """Migrate VM(s) from one resource pool to another."""
     platform = Platform(TestPVDC._sys_admin_client)
     task = platform.pvdc_migrate_vms(
         TestPVDC._pvdc_name,
         TestPVDC._vms_to_migrate,
         TestPVDC._target_resource_pool)
     res = TestPVDC._sys_admin_client.get_task_monitor().wait_for_success(
         task=task)
     self.assertEqual(res.get('status'), TaskStatus.SUCCESS.value)
Пример #53
0
def list_available_port_groups(ctx, vc_name):
    try:
        restore_session(ctx)
        platform = Platform(ctx.obj['client'])
        port_groups = platform.list_available_port_group_names(
            vim_server_name=vc_name)
        output = {}
        output['available port-groups'] = port_groups
        stdout(output, ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #54
0
    def attach_port_group(self, vim_server_name, port_group_name):
        """Attach a portgroup to an external network.

        :param str vc_name: name of vc where portgroup is present.
        :param str pg_name: name of the portgroup to be attached to
             external network.

        return: object containing vmext:VMWExternalNetwork XML element that
             representing the external network.
        :rtype: lxml.objectify.ObjectifiedElement
        """
        ext_net = self.get_resource()
        platform = Platform(self.client)

        if not vim_server_name or not port_group_name:
            raise InvalidParameterException(
                "Either vCenter Server name is none or portgroup name is none")

        vc_record = platform.get_vcenter(vim_server_name)
        vc_href = vc_record.get('href')
        pg_moref_types = \
            platform.get_port_group_moref_types(vim_server_name,
                                                port_group_name)

        if hasattr(ext_net, '{' + NSMAP['vmext'] + '}VimPortGroupRef'):
            vim_port_group_refs = E_VMEXT.VimPortGroupRefs()
            vim_object_ref1 = self.__create_vimobj_ref(
                vc_href, pg_moref_types[0], pg_moref_types[1])

            # Create a new VimObjectRef using vc href, portgroup moref and type
            # from existing VimPortGroupRef. Add the VimObjectRef to
            # VimPortGroupRefs and then delete VimPortGroupRef
            # from external network.
            vim_pg_ref = ext_net['{' + NSMAP['vmext'] + '}VimPortGroupRef']
            vc2_href = vim_pg_ref.VimServerRef.get('href')
            vim_object_ref2 = self.__create_vimobj_ref(
                vc2_href, vim_pg_ref.MoRef.text, vim_pg_ref.VimObjectType.text)

            vim_port_group_refs.append(vim_object_ref1)
            vim_port_group_refs.append(vim_object_ref2)
            ext_net.remove(vim_pg_ref)
            ext_net.append(vim_port_group_refs)
        else:
            vim_port_group_refs = \
                ext_net['{' + NSMAP['vmext'] + '}VimPortGroupRefs']
            vim_object_ref1 = self.__create_vimobj_ref(
                vc_href, pg_moref_types[0], pg_moref_types[1])
            vim_port_group_refs.append(vim_object_ref1)

        return self.client. \
            put_linked_resource(ext_net, rel=RelationType.EDIT,
                                media_type=EntityType.
                                EXTERNAL_NETWORK.value,
                                contents=ext_net)
Пример #55
0
 def test_0095_list_sub_allocated_ip(self):
     """List sub allocated ip.
     """
     self.__add_sub_allocate_ip_pool()
     platform = Platform(TestExtNet._sys_admin_client)
     ext_net_name = TestExtNet._config['external_network']['name']
     ext_net_resource = platform.get_external_network(ext_net_name)
     extnet_obj = ExternalNetwork(TestExtNet._sys_admin_client,
                                  resource=ext_net_resource)
     sub_allocated_ip_dict = extnet_obj.list_gateway_ip_suballocation()
     self.assertTrue(len(sub_allocated_ip_dict) > 0)
Пример #56
0
def list_nsxt(ctx):
    try:
        restore_session(ctx)
        client = ctx.obj['client']
        platform = Platform(client)
        query = platform.list_nsxt_managers()
        result = []
        for record in list(query):
            result.append(to_dict(record, exclude=['href']))
        stdout(result, ctx)
    except Exception as e:
        stderr(e, ctx)
Пример #57
0
 def test_0096_list_sub_allocated_ip_with_gateway_filter(self):
     """List sub allocated ips.
     """
     platform = Platform(TestExtNet._sys_admin_client)
     ext_net_name = TestExtNet._config['external_network']['name']
     ext_net_resource = platform.get_external_network(ext_net_name)
     extnet_obj = ExternalNetwork(TestExtNet._sys_admin_client,
                                  resource=ext_net_resource)
     sub_allocated_ip_dict = \
         extnet_obj.list_gateway_ip_suballocation('name==*')
     self.assertTrue(len(sub_allocated_ip_dict) > 0)
     self.__remove_sub_allocate_ip_pool()
Пример #58
0
    def test_0050_enable_vc(self):
        """Platform.enable_vcenter enables a vcenter.

        Wait for async command to complete before checking result.
        """
        platform = Platform(TestVC._client)

        task = platform.enable_disable_vcenter(
            vc_name=TestVC._vcServerName, enable_flag=True)
        TestVC._client.get_task_monitor().wait_for_success(task=task)
        vc = platform.get_vcenter(name=TestVC._vcServerName)
        self.assertTrue(vc.IsEnabled)
Пример #59
0
    def test_create_pvdc(self):
        platform = Platform(self.client)

        pvdc = platform.create_provider_vdc(
            vim_server_name=self.config['vcd']['vimServerName'],
            resource_pool_names=self.config['vcd']['resourcePoolNames'],
            storage_profiles=self.config['vcd']['storageProfiles'],
            pvdc_name=self.config['vcd']['pvdcName'],
            is_enabled=self.config['vcd']['isEnabled'],
            description=self.config['vcd']['description'],
            highest_hw_vers=self.config['vcd']['highestSuppHWVers'],
            nsxt_manager_name=self.config['vcd']['nsxtManager'])
        assert self.config['vcd']['pvdcName'] == pvdc.get('name')