def given_server_in_cloud(step, mbeh): n = getattr(world, 'cloud_server', None) if n: n.destroy() cloud = Cloud() LOG.info('Create node in cloud') if mbeh == 'mbeh1': image = images(CONF.main.platform).filter({'dist': get_scalr_dist_name(CONF.main.dist), 'behavior':'mysql2'}).first() elif mbeh == 'mbeh2': image = images(CONF.main.platform).filter({'dist': get_scalr_dist_name(CONF.main.dist), 'behavior':'www'}).first() LOG.debug('Use image: %s' % image) node = cloud.create_node(image=image.keys()[0], userdata='scm-branch=%s' % CONF.main.branch) setattr(world, 'cloud_server', node)
def run_server_in_cloud(cloud: Cloud, user_data: bool = False) -> ExtendedNode: LOG.info(f'Create node in cloud. User_data: {user_data}') # Convert dict to formatted str platform = CONF.feature.platform if user_data: dict_to_str = lambda d: ';'.join(['='.join([key, value]) if value else key for key, value in d.iteritems()]) user_data = dict_to_str(USER_DATA[platform.cloud_family]) if platform.is_gce: user_data = {'scalr': user_data} else: user_data = None # Create node image = None if CONF.feature.dist.is_windows or CONF.feature.dist.id == 'coreos': table = tables('images-clean') search_cond = dict( dist=CONF.feature.dist.id, platform=platform.name) image = table.filter(search_cond).first().keys()[0].encode('ascii', 'ignore') node = cloud.create_node(userdata=user_data, image=image) LOG.info(f'Cloud server successfully created with name: "{node.name}"') # if platform.is_cloudstack: # # Run command # out = node.run('wget -qO- ifconfig.me/ip') # if not out.std_err: # ip_address = out[0].rstrip("\n") # LOG.info('Received external ip address of the node. IP:%s' % ip_address) # setattr(world, 'ip', ip_address) # else: # raise AssertionError("Can't get node external ip address. Original error: %s" % out.std_err) # # Open port, set firewall rule # new_port = world.cloud.open_port(node, 8013, ip=ip_address) # setattr(world, 'forwarded_port', new_port) # if not new_port == 8013: # raise AssertionError('Import will failed, because opened port is not 8013, ' # 'an installed port is: %s' % new_port) return node