diff --git a/mpcdf_common.py b/mpcdf_common.py index 065f615ba9b09a19e45a1fe5f1f9fe7450af86ca..66243e885f8df1a5fe1eea4bfb906536abd5df85 100644 --- a/mpcdf_common.py +++ b/mpcdf_common.py @@ -147,7 +147,7 @@ def mpcdf_enable_repositories(api_url, project, package, verbose=False): return True -def mpcdf_setup_repos(api_url, project, distribution, parent=None, packages=None, dry_run=False): +def mpcdf_setup_repos(api_url, project, distribution=None, parent=None, packages=None, dry_run=False): if parent: for attribute in ["MPCDF:compiler_modules", "MPCDF:mpi_modules", "MPCDF:cuda_modules"]: try: @@ -160,6 +160,12 @@ def mpcdf_setup_repos(api_url, project, distribution, parent=None, packages=None mpis = list(get_attribute_values(api_url, project, None, "MPCDF:mpi_modules")) cudas = list(get_attribute_values(api_url, project, None, "MPCDF:cuda_modules")) + if distribution is None: + # Get existing value from project meta + distribution = project_meta(api_url, project if parent is None else parent).find( + "./repository[@name='System']/path[@project='distributions']").get("repository") + print("Using '{0}' as base distribution".format(distribution)) + distributions = project_meta(api_url, "distributions") dist_repo = distributions.find('./repository[@name="{0}"]'.format(distribution)) if dist_repo is None: diff --git a/mpcdf_setup_repos.py b/mpcdf_setup_repos.py index e8169697602a283c6493af586486a53dbc86d0ad..490bb18e861ea8173d7e6291e2530ce549a2c9b2 100644 --- a/mpcdf_setup_repos.py +++ b/mpcdf_setup_repos.py @@ -9,16 +9,12 @@ import osc.conf import osc.core import osc.cmdln -default_distribution = "SLE_12_SP1" - - @osc.cmdln.option('-n', '--dry-run', action="store_true", help="Do not actually run anything but output the resulting XML configuration") @osc.cmdln.option('--parent', metavar="PARENT", help="Setup the repositories to be based on the upstream project PARENT (e.g. for home: projects)") @osc.cmdln.option('--distribution', - default=default_distribution, - help="Base distribution [default: %default]") + help="Base distribution, necessary argument unless set previously for this project") def do_mpcdf_setup_repos(self, subcmd, opts, *args): """${cmd_name}: Create all repository combinations for an MPCDF project