def reuse_vms_stage(cfg, ctx): vms_patterns = cfg.get('clouds', {}).get('openstack', {}).get('vms', []) private_key_path = get_vm_keypair(cfg)['keypair_file_private'] for creds in vms_patterns: user_name, vm_name_pattern = creds.split("@", 1) msg = "Vm like {0} lookup failed".format(vm_name_pattern) with utils.log_error(msg): msg = "Looking for vm with name like {0}".format(vm_name_pattern) logger.debug(msg) if not start_vms.is_connected(): os_creds = get_OS_credentials(cfg, ctx) else: os_creds = None conn = start_vms.nova_connect(os_creds) for ip, vm_id in start_vms.find_vms(conn, vm_name_pattern): conn_url = "ssh://{user}@{ip}::{key}".format(user=user_name, ip=ip, key=private_key_path) node = Node(conn_url, ['testnode']) node.os_vm_id = vm_id ctx.nodes.append(node)
def create_vms_ctx(ctx, cfg, config, already_has_count=0): if config['count'].startswith('='): count = int(config['count'][1:]) if count <= already_has_count: logger.debug("Not need new vms") yield [] return params = cfg.vm_configs[config['cfg_name']].copy() os_nodes_ids = [] if not start_vms.is_connected(): os_creds = get_OS_credentials(cfg, ctx) else: os_creds = None nova = start_vms.nova_connect(os_creds) params.update(config) params.update(get_vm_keypair(cfg)) params['group_name'] = cfg.run_uuid params['keypair_name'] = cfg.vm_configs['keypair_name'] if not config.get('skip_preparation', False): logger.info("Preparing openstack") start_vms.prepare_os_subpr(nova, params, os_creds) new_nodes = [] old_nodes = ctx.nodes[:] try: for new_node, node_id in start_vms.launch_vms(nova, params, already_has_count): new_node.roles.append('testnode') ctx.nodes.append(new_node) os_nodes_ids.append(node_id) new_nodes.append(new_node) store_nodes_in_log(cfg, os_nodes_ids) ctx.openstack_nodes_ids = os_nodes_ids yield new_nodes finally: if not cfg.keep_vm: shut_down_vms_stage(cfg, ctx) ctx.nodes = old_nodes
def reuse_vms_stage(cfg, ctx): vms_patterns = cfg.get('clouds', {}).get('openstack', {}).get('vms', []) private_key_path = get_vm_keypair(cfg)['keypair_file_private'] for creds in vms_patterns: user_name, vm_name_pattern = creds.split("@", 1) msg = "Vm like {0} lookup failed".format(vm_name_pattern) with utils.log_error(msg): msg = "Looking for vm with name like {0}".format(vm_name_pattern) logger.debug(msg) if not start_vms.is_connected(): os_creds = get_OS_credentials(cfg, ctx) else: os_creds = None conn = start_vms.nova_connect(os_creds) for ip, vm_id in start_vms.find_vms(conn, vm_name_pattern): conn_url = "ssh://{user}@{ip}::{key}".format( user=user_name, ip=ip, key=private_key_path) node = Node(conn_url, ['testnode']) node.os_vm_id = vm_id ctx.nodes.append(node)