def pytest_configure(config): """Configures the parallel session, then fires pytest_parallel_configured.""" reporter = terminalreporter.reporter() if not config.option.appliances: appliances = load_appliances_from_config(conf.env) reporter.write_line('Retrieved these appliances from the conf.env', red=True) else: appliance_config = { 'appliances': [{'base_url': base_url} for base_url in config.option.appliances]} # Grab the possible globals from the conf.env for key, value in ( (key, value) for key, value in conf.env.items() if key in IPAppliance.CONFIG_MAPPING and key not in IPAppliance.CONFIG_NONGLOBAL): appliance_config[key] = value appliances = load_appliances_from_config(appliance_config) reporter.write_line('Retrieved these appliances from the --appliance parameters', red=True) for appliance in appliances: reporter.write_line('* {!r}'.format(appliance), cyan=True) if len(appliances) > 1: session = ParallelSession(config, appliances) config.pluginmanager.register(session, "parallel_session") store.parallelizer_role = 'master' reporter.write_line( 'As a parallelizer master kicking off parallel session for these {} appliances'.format( len(appliances)), green=True) config.hook.pytest_parallel_configured(parallel_session=session) else: reporter.write_line('No parallelization required', green=True) config.hook.pytest_parallel_configured(parallel_session=None)
def pytest_configure(config): if config.getoption('--help'): return reporter = terminalreporter.reporter() if config.getoption('--dummy-appliance'): appliances = [DummyAppliance.from_config(config)] reporter.write_line('Retrieved Dummy Appliance', red=True) elif stack.top: appliances = [stack.top] elif config.option.appliances: appliances = appliances_from_cli(config.option.appliances, config.option.appliance_version) reporter.write_line('Retrieved these appliances from the --appliance parameters', red=True) elif config.getoption('--use-sprout'): from cfme.test_framework.sprout.plugin import mangle_in_sprout_appliances mangle_in_sprout_appliances(config) # TODO : handle direct sprout pass on? appliances = appliances_from_cli(config.option.appliances, None) reporter.write_line('Retrieved these appliances from the --sprout-* parameters', red=True) else: appliances = load_appliances_from_config(conf.env) reporter.write_line('Retrieved these appliances from the conf.env', red=True) if not stack.top: for appliance in appliances: reporter.write_line('* {!r}'.format(appliance), cyan=True) appliance = appliances[0] if not appliance.is_dev: appliance.set_session_timeout(86400) stack.push(appliance) plugin = ApplianceHolderPlugin(appliance, appliances) config.pluginmanager.register(plugin, PLUGIN_KEY)
def pytest_configure(config): reporter = terminalreporter.reporter() if config.getoption('--dummy-appliance'): appliances = [DummyAppliance.from_config(config)] reporter.write_line('Retrieved Dummy Appliance', red=True) elif stack.top: appliances = [stack.top] elif config.option.appliances: appliances = appliances_from_cli(config.option.appliances, config.option.appliance_version) reporter.write_line('Retrieved these appliances from the --appliance parameters', red=True) elif config.getoption('--use-sprout'): from .sprout.plugin import mangle_in_sprout_appliances mangle_in_sprout_appliances(config) # TODO : handle direct sprout pass on? appliances = appliances_from_cli(config.option.appliances, None) reporter.write_line('Retrieved these appliances from the --sprout-* parameters', red=True) else: appliances = load_appliances_from_config(conf.env) reporter.write_line('Retrieved these appliances from the conf.env', red=True) if not stack.top: for appliance in appliances: reporter.write_line('* {!r}'.format(appliance), cyan=True) appliance = appliances[0] if not appliance.is_dev: appliance.set_session_timeout(86400) stack.push(appliance) plugin = ApplianceHolderPlugin(appliance, appliances) config.pluginmanager.register(plugin, PLUGIN_KEY)
def pytest_configure(config): reporter = terminalreporter.reporter() if config.getoption('--dummy-appliance'): appliances = [DummyAppliance.from_config(config)] reporter.write_line('Retrieved Dummy Appliance', red=True) elif stack.top: appliances = [stack.top] elif config.option.appliances: appliances = appliances_from_cli(config.option.appliances) reporter.write_line('Retrieved these appliances from the --appliance parameters', red=True) elif config.getoption('--use-sprout'): from .sprout.plugin import mangle_in_sprout_appliances mangle_in_sprout_appliances(config) appliances = appliances_from_cli(config.option.appliances) reporter.write_line('Retrieved these appliances from the --sprout-* parameters', red=True) else: appliances = load_appliances_from_config(conf.env) reporter.write_line('Retrieved these appliances from the conf.env', red=True) if not stack.top: for appliance in appliances: reporter.write_line('* {!r}'.format(appliance), cyan=True) appliance = appliances[0] appliance.set_session_timeout(86400) stack.push(appliance) plugin = ApplianceHolderPlugin(appliance, appliances) config.pluginmanager.register(plugin, "appliance-holder")
def get_appliance(appliance_ip): """Checks an appliance is not None and if so, loads the appropriate things""" from cfme.utils.appliance import IPAppliance, load_appliances_from_config, stack if not appliance_ip: app = load_appliances_from_config(env)[0] else: app = IPAppliance(hostname=appliance_ip) stack.push(app) # ensure safety from bad code, phase out later return app
def get_appliance(appliance_ip): """Checks an appliance is not None and if so, loads the appropriate things""" from cfme.utils.appliance import IPAppliance, load_appliances_from_config, stack if not appliance_ip: app = load_appliances_from_config(env)[0] else: app = IPAppliance(hostname=appliance_ip) stack.push(app) # ensure safety from bad code, phase out later return app
def appliances_from_cli(cli_appliances): appliance_config = { 'appliances': [{ 'base_url': base_url } for base_url in cli_appliances] } # Grab the possible globals from the conf.env for key, value in ((key, value) for key, value in conf.env.items() if key in IPAppliance.CONFIG_MAPPING and key not in IPAppliance.CONFIG_NONGLOBAL): appliance_config[key] = value return load_appliances_from_config(appliance_config)
def pytest_configure(config): if config.getoption('--help'): return reporter = terminalreporter.reporter() if config.getoption('--dummy-appliance'): appliances = [ DummyAppliance.from_config(config) for _ in range(config.getoption('--num-dummies')) ] if not config.option.collectonly: config.option.collectonly = True reporter.write_line('Retrieved Dummy Appliance', red=True) elif stack.top: appliances = [stack.top] elif config.option.appliances: appliances = appliances_from_cli(config.option.appliances, config.option.appliance_version) reporter.write_line( 'Retrieved these appliances from the --appliance parameters', red=True) elif config.getoption('--use-sprout'): from cfme.test_framework.sprout.plugin import mangle_in_sprout_appliances mangle_in_sprout_appliances(config) # TODO : handle direct sprout pass on? appliances = appliances_from_cli(config.option.appliances, None) reporter.write_line( 'Retrieved these appliances from the --sprout-* parameters', red=True) else: appliances = load_appliances_from_config(conf.env) reporter.write_line('Retrieved these appliances from the conf.env', red=True) if not stack.top: for appliance in appliances: reporter.write_line(f'* {appliance!r}', cyan=True) appliance = appliances[0] stack.push(appliance) plugin = ApplianceHolderPlugin(appliance, appliances) config.pluginmanager.register(plugin, PLUGIN_KEY) if not any((isinstance(appliance, DummyAppliance), appliance.is_dev)): config.hook.pytest_appliance_setup(config=config)
def appliances_from_cli(cli_appliances): appliance_config = dict(appliances=[]) for appliance_url in cli_appliances: parsed_url = urlparse.urlparse(appliance_url) if not parsed_url.hostname: raise ValueError( "Invalid appliance url: {}".format(appliance_url) ) appliance = dict( hostname=parsed_url.hostname, ui_protocol=parsed_url.scheme if parsed_url.scheme else "https", ui_port=parsed_url.port if parsed_url.port else 443, ) appliance_config['appliances'].append(appliance) return load_appliances_from_config(appliance_config)
def appliances_from_cli(cli_appliances, appliance_version): appliance_config = dict(appliances=[]) for appliance_data in cli_appliances: parsed_url = urlparse(appliance_data['hostname']) if not parsed_url.hostname: raise ValueError(f"Invalid appliance url: {appliance_data}") appliance = appliance_data.copy() appliance.update( dict(hostname=parsed_url.hostname, ui_protocol=parsed_url.scheme if parsed_url.scheme else "https", ui_port=parsed_url.port if parsed_url.port else 443, version=appliance_version)) appliance_config['appliances'].append(appliance) return load_appliances_from_config(appliance_config)
def appliances_from_cli(cli_appliances): appliance_config = dict(appliances=[]) for appliance_url in cli_appliances: parsed_url = six.moves.urllib.parse.urlparse(appliance_url) if not parsed_url.hostname: raise ValueError( "Invalid appliance url: {}".format(appliance_url) ) appliance = dict( hostname=parsed_url.hostname, ui_protocol=parsed_url.scheme if parsed_url.scheme else "https", ui_port=parsed_url.port if parsed_url.port else 443, ) appliance_config['appliances'].append(appliance) return load_appliances_from_config(appliance_config)
def appliances_from_cli(cli_appliances): appliance_config = dict(appliances=[]) for appliance_data in cli_appliances: parsed_url = six.moves.urllib.parse.urlparse(appliance_data['hostname']) if not parsed_url.hostname: raise ValueError( "Invalid appliance url: {}".format(appliance_data) ) appliance = appliance_data.copy() appliance.update(dict( hostname=parsed_url.hostname, ui_protocol=parsed_url.scheme if parsed_url.scheme else "https", ui_port=parsed_url.port if parsed_url.port else 443, )) appliance_config['appliances'].append(appliance) return load_appliances_from_config(appliance_config)
def appliances_from_cli(cli_appliances, appliance_version): appliance_config = dict(appliances=[]) for appliance_data in cli_appliances: parsed_url = six.moves.urllib.parse.urlparse(appliance_data['hostname']) if not parsed_url.hostname: raise ValueError( "Invalid appliance url: {}".format(appliance_data) ) appliance = appliance_data.copy() appliance.update(dict( hostname=parsed_url.hostname, ui_protocol=parsed_url.scheme if parsed_url.scheme else "https", ui_port=parsed_url.port if parsed_url.port else 443, version=appliance_version )) appliance_config['appliances'].append(appliance) return load_appliances_from_config(appliance_config)