Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@enostask(new=True)
def up(config, config_file=None, env=None, **kwargs):
logging.debug('phase[up]: args=%s' % kwargs)
# Calls the provider and initialise resources
provider_conf = config['provider']
provider = make_provider(provider_conf)
# Applying default configuration
config = load_config(config,
provider.default_config())
env['config'] = config
env['config_file'] = config_file
logging.debug("Loaded config: %s", config)
rsc, networks = \
provider.init(env['config'], kwargs['--force-deploy'])
@enostask()
@check_env
def bench(env=None, **kwargs):
def cartesian(d):
"""returns the cartesian product of the args."""
logging.debug(d)
f = []
for k, v in d.items():
if isinstance(v, list):
f.extend([[[k, vv] for vv in v]])
else:
f.append([[k, v]])
logging.debug(f)
product = []
for e in itertools.product(*f):
product.append(dict(e))
return product
@enostask()
def new(env=None, **kwargs):
logging.debug('phase[new]: args=%s' % kwargs)
with open(os.path.join(TEMPLATE_DIR, 'reservation.yaml.sample'),
mode='r') as content:
print(content.read())
@enostask()
@check_env
def destroy(env=None, **kwargs):
hard = kwargs['--hard']
if hard:
logging.info('Destroying all the resources')
provider_conf = env['config']['provider']
provider = make_provider(provider_conf)
provider.destroy(env)
else:
command = ['destroy', '--yes-i-really-really-mean-it']
if kwargs['--include-images']:
command.append('--include-images')
kolla_kwargs = {'--': True,
'--env': kwargs['--env'],
'-v': kwargs['-v'],
'': command,
@enostask()
@check_env
def tc(env=None, network_constraints=None, extra_vars=None, **kwargs):
"""
Usage: enos tc [-e ENV|--env=ENV] [--test] [-s|--silent|-vv]
Enforce network constraints
Options:
-e ENV --env=ENV Path to the environment directory. You should
use this option when you want to link a specific
experiment.
-h --help Show this help message.
-s --silent Quiet mode.
--test Test the rules by generating various reports.
-vv Verbose mode.
"""
roles = env["rsc"]
@enostask()
@check_env
def backup(env=None, **kwargs):
backup_dir = kwargs['--backup_dir'] \
or kwargs['--env'] \
or SYMLINK_NAME
backup_dir = os.path.abspath(backup_dir)
# create if necessary
if not os.path.isdir(backup_dir):
os.mkdir(backup_dir)
# update the env
env['config']['backup_dir'] = backup_dir
options = {}
options.update(env['config'])
options.update({'enos_action': 'backup'})
@enostask()
@check_env
def install_os(env=None, **kwargs):
logging.debug('phase[os]: args=%s' % kwargs)
kolla_path = get_and_bootstrap_kolla(env, force=True)
# Construct kolla-ansible command...
kolla_cmd = [os.path.join(kolla_path, "tools", "kolla-ansible")]
if kwargs.get('--reconfigure'):
kolla_cmd.append('reconfigure')
elif kwargs.get('--pull'):
kolla_cmd.append('pull')
else:
kolla_cmd.append('deploy')
kolla_cmd.extend(["-i", "%s/multinode" % env['resultdir'],
@enostask()
@check_env
def init_os(env=None, **kwargs):
logging.debug('phase[init]: args=%s' % kwargs)
playbook_values = mk_enos_values(env)
playbook_path = os.path.join(ANSIBLE_DIR, 'init_os.yml')
inventory_path = os.path.join(
env['resultdir'], 'multinode')
# Yes, if the external network isn't found we take the external ip in the
# pool used for OpenStack services (like the apis) This mimic what was done
# before the enoslib integration. An alternative solution would be to
# provision a external pool of ip regardless the number of nic available
# (in g5k this would be a kavlan) but in this case we'll need to know
# whether the network is physicaly attached (or no) to the physical nics
provider_net = lookup_network(
env['networks'],
@enostask()
def info(env=None, **kwargs):
if not kwargs['--out']:
pprint.pprint(env)
elif kwargs['--out'] == 'json':
print(json.dumps(env, default=operator.attrgetter('__dict__')))
elif kwargs['--out'] == 'pickle':
print(pickle.dumps(env))
elif kwargs['--out'] == 'yaml':
print(yaml.dump(env))
else:
print("--out doesn't suppport %s output format" % kwargs['--out'])
print(info.__doc__)
@enostask()
@check_env
def kolla(env=None, **kwargs):
_kolla(env=env, **kwargs)