X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;ds=inline;f=ci%2FgenBundle.py;h=3aa5bceeed193c461fa228220dccd4ca0eb40d6f;hb=157b0b2fc55920773a02146660ca5b7eb78a910f;hp=ffa1119d1ff50ff1f7a8c96e2434c68c7c4ee4f2;hpb=ecfd70bde101afc0c6b96730ad2a2e1be64c5650;p=joid.git diff --git a/ci/genBundle.py b/ci/genBundle.py index ffa1119d..3aa5bcee 100644 --- a/ci/genBundle.py +++ b/ci/genBundle.py @@ -12,7 +12,9 @@ Parameters: from optparse import OptionParser from jinja2 import Environment, FileSystemLoader +from distutils.version import LooseVersion, StrictVersion import os +import subprocess import random import yaml import sys @@ -34,7 +36,12 @@ labconfig_file = options.lab scenarioconfig_file = 'default_deployment_config.yaml' # Capture our current directory -TPL_DIR = os.path.dirname(os.path.abspath(__file__))+'/bundle_tpl' +jujuver = subprocess.check_output(["juju", "--version"]) + +if LooseVersion(jujuver) >= LooseVersion('2'): + TPL_DIR = os.path.dirname(os.path.abspath(__file__))+'/config_tpl/juju2/bundle_tpl' +else: + TPL_DIR = os.path.dirname(os.path.abspath(__file__))+'/config_tpl/bundle_tpl' # # Prepare variables @@ -76,8 +83,14 @@ def unit_ceph_qty(): if config['os']['ha']['mode'] == 'ha': return config['os']['ha']['cluster_size'] else: - return 2 + if config['opnfv']['units'] >= 3: + return config['os']['ha']['cluster_size'] + else: + return 2 +def unit_scaleio_qty(): + """Return size of the scaleio cluster""" + return 3 def to_select(qty=False): """Return a random list of machines numbers to deploy""" @@ -85,10 +98,10 @@ def to_select(qty=False): if not qty: qty = config['os']['ha']['cluster_size'] if \ config['os']['ha']['mode'] == 'ha' else 1 - if config['os']['ha']['mode'] == 'ha': + if config['os']['hyperconverged']: return random.sample(range(0, config['opnfv']['units']), qty) else: - return random.sample(range(0, 2), qty) + return random.sample(range(0, qty), qty) def get_password(key, length=16, special=False): @@ -173,6 +186,8 @@ if 'bgpvpn' in features: config['os']['network']['bgpvpn'] = True if 'odll3' in features: config['os']['network']['odll3'] = True +if 'dishypcon' in features: + config['os']['hyperconverged'] = False # Set beta option from extra if 'publicapi' in extra: @@ -185,8 +200,12 @@ if 'trusty' in extra: config['ubuntu']['release'] = 'trusty' if 'liberty' in extra: config['os']['release'] = 'liberty' - -# pp(config) +if 'xenial' in extra: + config['ubuntu']['release'] = 'xenial' + if 'newton' in extra: + config['os']['release'] = 'newton' +if 'dishypcon' in extra: + config['os']['hyperconverged'] = False # # Transform template to bundle.yaml according to config @@ -201,7 +220,17 @@ template = env.get_template('bundle.yaml') env.globals.update(get_password=get_password) env.globals.update(unit_qty=unit_qty) env.globals.update(unit_ceph_qty=unit_ceph_qty) +env.globals.update(unit_scaleio_qty=unit_scaleio_qty) env.globals.update(to_select=to_select) # Render the template -print(template.render(**config)) +output = template.render(**config) + +# Check output syntax +try: + yaml.load(output) +except yaml.YAMLError as exc: + print(exc) + +# print output +print(output)