def class_host_ud(
     self,
     azurermclient,
     session_puppet_enabled_sat,
     module_azurerm_cloudimg_puppet,
     module_puppet_loc,
     module_puppet_org,
     session_puppet_default_os,
     azurerm_hostgroup,
 ):
     """
     Provisions the host on AzureRM using UserData template
     Later in tests this host will be used to perform assertions
     """
     with session_puppet_enabled_sat.hammer_api_timeout():
         with session_puppet_enabled_sat.skip_yum_update_during_provisioning(
             template='Kickstart default user data'
         ):
             host = session_puppet_enabled_sat.cli.Host.create(
                 {
                     'name': self.hostname,
                     'compute-attributes': self.compute_attrs,
                     'interface': self.interfaces_attributes,
                     'image': module_azurerm_cloudimg_puppet.name,
                     'hostgroup': azurerm_hostgroup.name,
                     'location': module_puppet_loc.name,
                     'organization': module_puppet_org.name,
                     'operatingsystem-id': session_puppet_default_os.id,
                 },
                 timeout=1800000,
             )
             yield host
             with satellite_setting('destroy_vm_on_host_delete=True'):
                 Host.delete({'name': self.fullhostname}, timeout=1800000)
    def class_host_gallery_ft(
        self,
        session_puppet_enabled_sat,
        azurermclient,
        module_azurerm_gallery_finishimg_puppet,
        module_azurerm_cr_puppet,
        session_puppet_default_architecture,
        module_puppet_domain,
        module_puppet_loc,
        module_puppet_org,
        session_puppet_default_os,
        session_puppet_enabled_proxy,
        module_puppet_environment,
    ):
        """
        Provisions the host on AzureRM using Finish template
        Later in tests this host will be used to perform assertions
        """

        with session_puppet_enabled_sat.skip_yum_update_during_provisioning(
                template='Kickstart default finish'):
            host = session_puppet_enabled_sat.api.Host(
                architecture=session_puppet_default_architecture,
                build=True,
                compute_resource=module_azurerm_cr_puppet,
                compute_attributes=self.compute_attrs,
                interfaces_attributes=self.interfaces_attributes,
                domain=module_puppet_domain,
                organization=module_puppet_org,
                operatingsystem=session_puppet_default_os,
                location=module_puppet_loc,
                name=self.hostname,
                provision_method='image',
                image=module_azurerm_gallery_finishimg_puppet,
                root_pass=gen_string('alphanumeric'),
                environment=module_puppet_environment,
                puppet_proxy=session_puppet_enabled_proxy,
                puppet_ca_proxy=session_puppet_enabled_proxy,
            ).create()
            yield host
            with satellite_setting('destroy_vm_on_host_delete=True'):
                host.delete()
Beispiel #3
0
 def class_byos_ft_host(
     self,
     default_sat,
     azurermclient,
     module_azurerm_byos_finishimg,
     module_azurerm_cr,
     default_architecture,
     module_domain,
     module_location,
     module_org,
     default_os,
     default_smart_proxy,
     module_puppet_environment,
 ):
     """
     Provisions the host on AzureRM with BYOS Image
     Later in tests this host will be used to perform assertions
     """
     with default_sat.hammer_api_timeout():
         with default_sat.skip_yum_update_during_provisioning(
                 template='Kickstart default finish'):
             host = Host.create(
                 {
                     'name': self.hostname,
                     'compute-resource': module_azurerm_cr.name,
                     'compute-attributes': self.compute_attrs,
                     'interface': self.interfaces_attributes,
                     'location-id': module_location.id,
                     'organization-id': module_org.id,
                     'domain-id': module_domain.id,
                     'architecture-id': default_architecture.id,
                     'operatingsystem-id': default_os.id,
                     'root-password': gen_string('alpha'),
                     'image': module_azurerm_byos_finishimg.name,
                     'volume': "disk_size_gb=5",
                 },
                 timeout=1800000,
             )
             yield host
             with satellite_setting('destroy_vm_on_host_delete=True'):
                 Host.delete({'name': self.fullhostname}, timeout=1800)
 def class_host_ft(
     self,
     azurermclient,
     session_puppet_enabled_sat,
     module_azurerm_finishimg_puppet,
     module_azurerm_cr_puppet,
     session_puppet_default_architecture,
     module_puppet_domain,
     module_puppet_loc,
     module_puppet_org,
     session_puppet_default_os,
 ):
     """
     Provisions the host on AzureRM using Finish template
     Later in tests this host will be used to perform assertions
     """
     with session_puppet_enabled_sat.hammer_api_timeout():
         with session_puppet_enabled_sat.skip_yum_update_during_provisioning(
             template='Kickstart default finish'
         ):
             host = session_puppet_enabled_sat.cli.Host.create(
                 {
                     'name': self.hostname,
                     'compute-resource': module_azurerm_cr_puppet.name,
                     'compute-attributes': self.compute_attrs,
                     'interface': self.interfaces_attributes,
                     'location-id': module_puppet_loc.id,
                     'organization-id': module_puppet_org.id,
                     'domain-id': module_puppet_domain.id,
                     'domain': module_puppet_domain.name,
                     'architecture-id': session_puppet_default_architecture.id,
                     'operatingsystem-id': session_puppet_default_os.id,
                     'root-password': gen_string('alpha'),
                     'image': module_azurerm_finishimg_puppet.name,
                 },
                 timeout=1800000,
             )
             yield host
             with satellite_setting('destroy_vm_on_host_delete=True'):
                 Host.delete({'name': self.fullhostname}, timeout=1800000)
def test_positive_end_to_end_azurerm_ft_host_provision(
    session,
    session_puppet_enabled_sat,
    azurermclient,
    module_azurerm_finishimg_puppet,
    module_azurerm_cr_puppet,
    module_puppet_domain,
    module_puppet_org,
    module_puppet_loc,
    module_azure_hg,
):
    """Provision Host with hostgroup and Compute-profile using
    finish template on AzureRm compute resource

    :id: d64d249d-70a2-4329-bff4-3b50b8596c44

    :expectedresults:
            1. Host is provisioned.
            2. Host is deleted Successfully.

    :CaseLevel: System

    :BZ: 1850934
    """
    hostname = f'test-{gen_string("alpha")}'
    fqdn = f'{hostname}.{module_puppet_domain.name}'.lower()
    finishimg_image = module_azurerm_finishimg_puppet.name

    with session_puppet_enabled_sat.ui_session as session:
        session.organization.select(org_name=module_puppet_org.name)
        session.location.select(loc_name=module_puppet_loc.name)

        # Provision Host
        try:
            with session_puppet_enabled_sat.skip_yum_update_during_provisioning(
                    template='Kickstart default finish'):
                session.host.create({
                    'host.name':
                    hostname,
                    'host.hostgroup':
                    module_azure_hg.name,
                    'provider_content.operating_system.root_password':
                    gen_string('alpha'),
                    'provider_content.operating_system.image':
                    finishimg_image,
                })

                host_info = session.host.get_details(fqdn)
                assert 'Installed' in host_info['properties'][
                    'properties_table']['Build']
                assert (host_info['properties']['properties_table']
                        ['Host group'] == module_azure_hg.name)

                # AzureRm Cloud assertion
                azurecloud_vm = azurermclient.get_vm(name=hostname.lower())
                assert azurecloud_vm
                assert azurecloud_vm.is_running
                assert azurecloud_vm.name == hostname.lower()
                assert azurecloud_vm.ip == host_info['properties'][
                    'properties_table']['IP Address']
                assert azurecloud_vm.type == AZURERM_VM_SIZE_DEFAULT

                # Host Delete
                with satellite_setting('destroy_vm_on_host_delete=True'):
                    session.host.delete(fqdn)
                assert not session.host.search(fqdn)

                # AzureRm Cloud assertion
                assert not azurecloud_vm.exists

        except Exception as error:
            azure_vm = session_puppet_enabled_sat.api.Host().search(
                query={'search': f'name={fqdn}'})
            if azure_vm:
                azure_vm[0].delete(synchronous=False)
            azurecloud_vm = azurermclient.get_vm(name=hostname.lower())
            if azurecloud_vm.exists:
                azurecloud_vm.delete()
            raise error
def test_positive_azurerm_host_provision_ud(
    session,
    session_puppet_enabled_sat,
    azurermclient,
    module_azurerm_cloudimg_puppet,
    module_azurerm_cr_puppet,
    module_puppet_domain,
    session_puppet_default_os,
    module_puppet_org,
    module_puppet_loc,
    module_azure_hg,
):
    """Provision a Host with hostgroup and Compute-profile using
    cloud-init image on AzureRm compute resource

    :id: 2dc6c494-0e80-4845-af8f-43d37f69a093

    :expectedresults: Host is provisioned successfully.

    :CaseImportance: Critical

    :CaseLevel: System

    :BZ: 1850934
    """

    hostname = f'test-{gen_string("alpha")}'
    fqdn = f'{hostname}.{module_puppet_domain.name}'.lower()
    cloudimg_image = module_azurerm_cloudimg_puppet.name

    with session_puppet_enabled_sat.ui_session as session:
        session.organization.select(org_name=module_puppet_org.name)
        session.location.select(loc_name=module_puppet_loc.name)
        # Provision Host
        try:
            with session_puppet_enabled_sat.skip_yum_update_during_provisioning(
                    template='Kickstart default user data'):
                session.host.create({
                    'host.name':
                    hostname,
                    'host.hostgroup':
                    module_azure_hg.name,
                    'provider_content.operating_system.root_password':
                    gen_string('alpha'),
                    'provider_content.operating_system.image':
                    cloudimg_image,
                })

                host_info = session.host.get_details(fqdn)
                assert (
                    'Pending installation'
                    in host_info['properties']['properties_table']['Build'])
                assert (host_info['properties']['properties_table']
                        ['Host group'] == module_azure_hg.name)

                # AzureRm Cloud assertion
                azurecloud_vm = azurermclient.get_vm(name=hostname.lower())
                assert azurecloud_vm
                assert azurecloud_vm.is_running
                assert azurecloud_vm.name == hostname.lower()
                assert azurecloud_vm.ip == host_info['properties'][
                    'properties_table']['IP Address']
                assert azurecloud_vm.type == AZURERM_VM_SIZE_DEFAULT

        finally:
            azure_vm = session_puppet_enabled_sat.api.Host().search(
                query={'search': f'name={fqdn}'})
            if azure_vm:
                with satellite_setting('destroy_vm_on_host_delete=True'):
                    azure_vm[0].delete(synchronous=False)