Esempio n. 1
0
    def delete_sddc(self):
        # Get SDDC ID by name
        sddcs = self.vmc_client.orgs.Sddcs.list(self.org_id)
        for sddc in sddcs:
            if sddc.name == self.sddc_name:
                self.sddc_id = sddc.id
                break
        else:
            raise ValueError('Cannot find sddc "{}"'.format(self.sddc_name))

        print('\n# Example: Delete SDDC {} from org {}'.format(
            self.sddc_id, self.org_id))

        try:
            task = self.vmc_client.orgs.Sddcs.delete(org=self.org_id,
                                                     sddc=self.sddc_id)
        except InvalidRequest as e:
            # Convert InvalidRequest to ErrorResponse to get error message
            error_response = e.data.convert_to(ErrorResponse)
            raise Exception(error_response.error_messages)

        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=self.interval_sec)

        print('\n# Example: Remaining SDDCs:')
        sddcs = self.vmc_client.orgs.Sddcs.list(self.org_id)
        self.print_output(sddcs)
Esempio n. 2
0
    def request_public_ip(self):
        print('\n# Example: Request a new IP for SDDC')
        ip_spec = SddcAllocatePublicIpSpec(names=[self.notes], count=1)
        task = self.vmc_client.orgs.sddcs.Publicips.create(org=self.org_id,
                                                           sddc=self.sddc_id,
                                                           spec=ip_spec)

        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=2)

        ips = self.vmc_client.orgs.sddcs.Publicips.list(org=self.org_id,
                                                        sddc=self.sddc_id)

        for ip in ips:
            if ip.name == self.notes:
                self.ip_id = ip.allocation_id
                self.public_ip = ip.public_ip
                print('# Successfully requested public IP {}'.format(
                    ip.public_ip))
                break
        else:
            raise Exception("Can't find public IP with notes {}".format(
                self.notes))
    def create_sddc(self):
        print('\n# Example: Create a SDDC ({}) in org {}:'.format(
            self.sddc_name, self.org_id))

        provider = os.environ.get('VMC_PROVIDER', 'AWS')
        sddc_config = AwsSddcConfig(region='US_WEST_2',
                                    num_hosts=1,
                                    name=self.sddc_name,
                                    provider=provider)

        try:
            task = self.vmc_client.orgs.Sddcs.create(org=self.org_id,
                                                     sddc_config=sddc_config)
        except InvalidRequest as e:
            # Convert InvalidRequest to ErrorResponse to get error message
            error_response = e.data.convert_to(ErrorResponse)
            raise Exception(error_response.error_messages)

        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=self.interval_sec)

        print('\n# Example: SDDC created:')
        self.sddc_id = task.resource_id
        sddc = self.vmc_client.orgs.Sddcs.get(self.org_id, self.sddc_id)
        self.print_output([sddc])
Esempio n. 4
0
 def add_host(self):
     print('\n# Example: Add 1 ESX hosts to SDDC {}:'.format(self.sddc_id))
     esx_config = EsxConfig(1)
     task = self.vmc_client.orgs.sddcs.Esxs.create(org=self.org_id,
                                                   sddc=self.sddc_id,
                                                   esx_config=esx_config)
     wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                   org_id=self.org_id,
                   task_id=task.id,
                   interval_sec=self.interval_sec)
Esempio n. 5
0
 def remove_host(self):
     print('\n# Example: Remove 1 ESX host from SDDC {}:'.
           format(self.sddc_id))
     esx_config = EsxConfig(1)
     task = self.vmc_client.orgs.sddcs.Esxs.create(org=self.org_id,
                                                   sddc=self.sddc_id,
                                                   esx_config=esx_config,
                                                   action='remove')
     wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                   org_id=self.org_id,
                   task_id=task.id,
                   interval_sec=self.interval_sec)
Esempio n. 6
0
    def create_sddc(self):
        print('\n# Example: Create a SDDC ({}) in org {}:'.format(
            self.sddc_name, self.org_id))

        account_linking_config = None

        # Get connected accounts if any
        account_ids = self.vmc_client.orgs.account_link.ConnectedAccounts.get(
            self.org_id)

        if len(account_ids) > 0:
            account_id = account_ids[0].id

            vpc_map = self.vmc_client.orgs.account_link.CompatibleSubnets.get(
                org=self.org_id,
                linked_account_id=account_id,
                region=self.region).vpc_map

            customer_subnet_id = self.get_subnet_id(vpc_map)
            if not customer_subnet_id:
                raise ValueError('No available subnet for region {}'.format(
                    self.region))

            account_linking_config = AccountLinkSddcConfig(
                customer_subnet_ids=[customer_subnet_id],
                connected_account_id=account_id)

        sddc_config = AwsSddcConfig(
            region=self.region,
            name=self.sddc_name,
            account_link_sddc_config=[account_linking_config]
            if account_linking_config else None,
            provider=os.environ.get('VMC_PROVIDER', SddcConfig.PROVIDER_AWS),
            num_hosts=self.num_hosts,
            deployment_type=SddcConfig.DEPLOYMENT_TYPE_SINGLEAZ)

        try:
            task = self.vmc_client.orgs.Sddcs.create(org=self.org_id,
                                                     sddc_config=sddc_config)
        except InvalidRequest as e:
            # Convert InvalidRequest to ErrorResponse to get error message
            error_response = e.data.convert_to(ErrorResponse)
            raise Exception(error_response.error_messages)

        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=self.interval_sec)

        print('\n# Example: SDDC created:')
        self.sddc_id = task.resource_id
        sddc = self.vmc_client.orgs.Sddcs.get(self.org_id, self.sddc_id)
        self.print_output([sddc])
Esempio n. 7
0
    def add_host(self):
        print('\n# Example: Add 1 ESX hosts to SDDC {}:'.format(self.sddc_id))
        esx_config = EsxConfig(num_hosts=1)

        try:
            task = self.vmc_client.orgs.sddcs.Esxs.create(
                org=self.org_id, sddc=self.sddc_id, esx_config=esx_config)
        except InvalidRequest as e:
            # Convert InvalidRequest to ErrorResponse to get error message
            error_response = e.data.convert_to(ErrorResponse)
            raise Exception(error_response.error_messages)

        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=self.interval_sec)
Esempio n. 8
0
    def delete_latest_sddc(self):
        try:
            task = self.vmc_client.orgs.Sddcs.delete(org=self.org_id,
                                                     sddc=self.sddc_id)
        except InvalidRequest as e:
            # Convert InvalidRequest to ErrorResponse to get error message
            error_response = e.data.convert_to(ErrorResponse)
            raise Exception(error_response.error_messages)

        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=self.interval_sec)

        print('\n# Example: Remaining SDDCs:'.format(self.org_id))
        sddcs = self.vmc_client.orgs.Sddcs.list(self.org_id)
        self.print_output(sddcs)
    def delete_sddc(self):
        print('\n# Example: Delete SDDC {} from org {}'.format(
            self.sddc_id, self.org_id))
        task = self.vmc_client.orgs.Sddcs.delete(org=self.org_id,
                                                 sddc=self.sddc_id)
        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=self.interval_sec)

        print('\n# Example: Remaining SDDCs:'.format(self.org_id))
        sddcs_list = self.vmc_client.orgs.Sddcs.list(self.org_id)

        headers = ["ID", "Name"]
        table = []
        for sddc in sddcs_list:
            table.append([sddc.id, sddc.name])
        print(tabulate(table, headers))
    def create_sddc(self):
        print('\n# Example: Create a SDDC ({}) in org {}:'.
              format(self.sddc_name, self.org_id))

        provider = os.environ.get('VMC_PROVIDER', 'AWS')
        sddc_config = AwsSddcConfig(
            region='US_WEST_2', num_hosts=1, name=self.sddc_name,
            provider=provider)
        task = self.vmc_client.orgs.Sddcs.create(org=self.org_id,
                                                 sddc_config=sddc_config)
        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=self.interval_sec)

        print('\n# Example: SDDC created:')
        self.sddc_id = task.resource_id
        sddc = self.vmc_client.orgs.Sddcs.get(self.org_id, self.sddc_id)
        print(tabulate([[sddc.id, sddc.name]], ["ID", "Name"]))
Esempio n. 11
0
    def create_sddc(self, sddc_create_spec):
        """
        Create SDDC

        Parameters
        ----------
        sddc_create_spec : dict

        """

        # account_id = self.vmc_client.orgs.account_link.ConnectedAccounts.get(
        #     self.org_id)[0].id

        account_id = sddc_create_spec['account_id']

        # vpc_map = self.vmc_client.orgs.account_link.CompatibleSubnets.get(
        #     org=self.org_id,
        #     linked_account_id=account_id).vpc_map

        # customer_subnet_id = self.get_subnet_id(vpc_map)
        # if not customer_subnet_id:
        #     raise ValueError('No available subnet for region {}'.format(self.region))

        # sddc_config = AwsSddcConfig(
        #     region=self.region,
        #     name=self.sddc_name,
        #     account_link_sddc_config=[AccountLinkSddcConfig(
        #         customer_subnet_ids=[customer_subnet_id],
        #         connected_account_id=account_id)],
        #     provider=os.environ.get('VMC_PROVIDER', SddcConfig.PROVIDER_AWS),
        #     num_hosts=1,
        #     deployment_type=SddcConfig.DEPLOYMENT_TYPE_SINGLEAZ)

        sddc_config = AwsSddcConfig(
            region=sddc_create_spec['region'],
            name=sddc_create_spec['name'],
            account_link_sddc_config=[
                AccountLinkSddcConfig(
                    customer_subnet_ids=[sddc_create_spec['subnet_id']],
                    connected_account_id=account_id)
            ],
            provider=sddc_create_spec['provider'],
            num_hosts=int(sddc_create_spec['num_hosts']),
            deployment_type=SddcConfig.DEPLOYMENT_TYPE_SINGLEAZ)

        try:
            task = self.vmc_client.orgs.Sddcs.create(org=self.org_id,
                                                     sddc_config=sddc_config)
        except InvalidRequest as e:
            # Convert InvalidRequest to ErrorResponse to get error message
            error_response = e.data.convert_to(ErrorResponse)
            raise Exception(error_response.error_messages)

        wait_for_task(task_client=self.vmc_client.orgs.Tasks,
                      org_id=self.org_id,
                      task_id=task.id,
                      interval_sec=self.interval_sec)

        print('\n# Example: SDDC created:')
        self.sddc_id = task.resource_id
        sddc = self.vmc_client.orgs.Sddcs.get(self.org_id, self.sddc_id)
        self.print_output([sddc])