def compliance_vm(request, provider_key, provider_crud): try: ip_addr = re.findall(r'[0-9]+(?:\.[0-9]+){3}', store.base_url)[0] appl_name = provider_crud.get_mgmt_system().get_vm_name_from_ip(ip_addr) appliance = Appliance(provider_key, appl_name) logger.info( "The tested appliance ({}) is already on this provider ({}) so reusing it.".format( appl_name, provider_key)) appliance.configure_fleecing() vm = Vm(appl_name, provider_crud) except VmNotFoundViaIP: logger.info("Provisioning a new appliance on provider {}.".format(provider_key)) appliance = provision_appliance( vm_name_prefix=PREFIX + "host_", version=str(version.current_version()), provider_name=provider_key) request.addfinalizer(lambda: diaper(appliance.destroy)) appliance.configure(setup_fleece=True) vm = Vm(appliance.vm_name, provider_crud) # Do the final touches with appliance.ipapp(browser_steal=True) as appl: appl.set_session_timeout(86400) provider_crud.refresh_provider_relationships() vm.wait_to_appear() vm.load_details() wait_for_ssa_enabled() yield vm
def compliance_vm(request, provider): try: ip_addr = urlparse(store.base_url).hostname appl_name = provider.mgmt.get_vm_name_from_ip(ip_addr) appliance = Appliance(provider.key, appl_name) logger.info( "The tested appliance ({}) is already on this provider ({}) so reusing it." .format(appl_name, provider.key)) try: appliance.configure_fleecing() except (EOFError, ApplianceException) as e: # If something was happening, restart and wait for the UI to reappear to prevent errors appliance.ipapp.reboot() pytest.skip( "Error during appliance configuration. Skipping:\n{}: {}". format(type(e).__name__, str(e))) vm = Vm(appl_name, provider) except VmNotFoundViaIP: logger.info("Provisioning a new appliance on provider {}.".format( provider.key)) appliance = provision_appliance(vm_name_prefix=PREFIX + "host_", version=str(version.current_version()), provider_name=provider.key) request.addfinalizer(lambda: diaper(appliance.destroy)) try: appliance.configure(setup_fleece=True) except (EOFError, ApplianceException) as e: # Add known exceptions as needed. pytest.skip( "Error during appliance configuration. Skipping:\n{}: {}". format(type(e).__name__, str(e))) vm = Vm(appliance.vm_name, provider) if provider.type in {"rhevm"}: request.addfinalizer(appliance.remove_rhev_direct_lun_disk) # Do the final touches with appliance.ipapp(browser_steal=True) as appl: appl.set_session_timeout(86400) provider.refresh_provider_relationships() vm.wait_to_appear() vm.load_details() wait_for_ssa_enabled() yield vm
def compliance_vm(request, provider): try: ip_addr = urlparse(store.base_url).hostname appl_name = provider.mgmt.get_vm_name_from_ip(ip_addr) appliance = Appliance(provider.key, appl_name) logger.info( "The tested appliance (%s) is already on this provider (%s) so reusing it.", appl_name, provider.key) try: appliance.configure_fleecing() except (EOFError, ApplianceException) as e: # If something was happening, restart and wait for the UI to reappear to prevent errors appliance.ipapp.reboot() pytest.skip( "Error during appliance configuration. Skipping:\n{}: {}".format( type(e).__name__, str(e))) vm = VM.factory(appl_name, provider) except exceptions.VMNotFoundViaIP: logger.info("Provisioning a new appliance on provider %s.", provider.key) appliance = provision_appliance( vm_name_prefix=PREFIX + "host_", version=str(version.current_version()), provider_name=provider.key) request.addfinalizer(lambda: diaper(appliance.destroy)) try: appliance.configure(setup_fleece=True) except (EOFError, ApplianceException) as e: # Add known exceptions as needed. pytest.skip( "Error during appliance configuration. Skipping:\n{}: {}".format( type(e).__name__, str(e))) vm = VM.factory(appliance.vm_name, provider) if provider.type in {"rhevm"}: request.addfinalizer(appliance.remove_rhev_direct_lun_disk) # Do the final touches with appliance.ipapp(browser_steal=True) as appl: appl.set_session_timeout(86400) provider.refresh_provider_relationships() vm.wait_to_appear() vm.load_details() wait_for_ssa_enabled() yield vm
def get_appliance(provider): '''Fixture to provision appliance to the provider being tested if necessary''' global appliance_list, main_provider appliance_vm_prefix = "long-test_ssa-appl_" if provider.key not in appliance_list: try: # see if the current appliance is on the needed provider ip_addr = urlparse(store.base_url).hostname appl_name = provider.mgmt.get_vm_name_from_ip(ip_addr) logger.info( "re-using already provisioned appliance on {}...".format( provider.key)) main_provider = provider.key appliance = Appliance(provider.key, appl_name) appliance.configure_fleecing() appliance_list[provider.key] = appliance except Exception as e: logger.exception(e) # provision appliance and configure ver_to_prov = str(version.current_version()) logger.info("provisioning {} appliance on {}...".format( ver_to_prov, provider.key)) appliance = None try: appliance = provision_appliance( vm_name_prefix=appliance_vm_prefix, version=ver_to_prov, provider_name=provider.key) logger.info("appliance IP address: " + str(appliance.address)) appliance.configure(setup_fleece=True) except Exception as e: logger.exception(e) if appliance is not None: appliance.destroy() raise CFMEException( 'Appliance encountered error during initial setup: {}'. format(str(e))) appliance_list[provider.key] = appliance return appliance_list[provider.key]
def get_appliance(provider_crud): '''Fixture to provision appliance to the provider being tested if necessary''' global appliance_list, main_provider appliance_vm_prefix = "test_vm_analysis" if provider_crud.key not in appliance_list: try: # see if the current appliance is on the needed provider ip_addr = re.findall(r'[0-9]+(?:\.[0-9]+){3}', conf.env['base_url'])[0] appl_name = provider_crud.get_mgmt_system().get_vm_name_from_ip(ip_addr) logger.info("re-using already provisioned appliance on {}...".format(provider_crud.key)) main_provider = provider_crud.key appliance = Appliance(provider_crud.key, appl_name) appliance.configure_fleecing() appliance_list[provider_crud.key] = appliance except Exception as e: logger.error("Exception: %s" % str(e)) # provision appliance and configure ver_to_prov = str(version.current_version()) logger.info("provisioning {} appliance on {}...".format(ver_to_prov, provider_crud.key)) appliance = None try: appliance = provision_appliance( vm_name_prefix=appliance_vm_prefix, version=ver_to_prov, provider_name=provider_crud.key) logger.info("appliance IP address: " + str(appliance.address)) appliance.configure(setup_fleece=True) except Exception as e: logger.error("Exception: %s" % str(e)) if appliance is not None: appliance.destroy() raise CFMEException( 'Appliance encountered error during initial setup: {}'.format(str(e))) appliance_list[provider_crud.key] = appliance return appliance_list[provider_crud.key]
def get_appliance(provider): '''Fixture to provision appliance to the provider being tested if necessary''' global appliance_list, main_provider appliance_vm_prefix = "long-test_ssa-appl_" if provider.key not in appliance_list: try: # see if the current appliance is on the needed provider ip_addr = urlparse(store.base_url).hostname appl_name = provider.mgmt.get_vm_name_from_ip(ip_addr) logger.info("re-using already provisioned appliance on {}...".format(provider.key)) main_provider = provider.key appliance = Appliance(provider.key, appl_name) appliance.configure_fleecing() appliance_list[provider.key] = appliance except Exception as e: logger.exception(e) # provision appliance and configure ver_to_prov = str(version.current_version()) logger.info("provisioning {} appliance on {}...".format(ver_to_prov, provider.key)) appliance = None try: appliance = provision_appliance( vm_name_prefix=appliance_vm_prefix, version=ver_to_prov, provider_name=provider.key) logger.info("appliance IP address: " + str(appliance.address)) appliance.configure(setup_fleece=True) except Exception as e: logger.exception(e) if appliance is not None: appliance.destroy() raise CFMEException( 'Appliance encountered error during initial setup: {}'.format(str(e))) appliance_list[provider.key] = appliance return appliance_list[provider.key]