diff --git a/mpcdf_info.py b/mpcdf_info.py index c8ff7cf41f14a4f7b941e2e620a048e73ed7ff1b..1c7a7b9b00f9e7918a48bc6502f001ecf7f2e314 100644 --- a/mpcdf_info.py +++ b/mpcdf_info.py @@ -39,13 +39,8 @@ def do_mpcdf_info(self, subcmd, opts, *args): api_url = self.get_api_url() def print_attribute(description, attribute): - try: + if mpcdf_common.has_attribute(api_url, project, None, attribute): values = list(sorted(mpcdf_common.get_attribute_values(api_url, project, None, attribute))) - except Exception: - print("This project unmanaged, i.e. it does not have the required MPCDF: attributes set") - raise SystemExit(0) - - if values: print(" {0}:\n ".format(description) + "\n ".join(values)) print() @@ -60,22 +55,27 @@ def do_mpcdf_info(self, subcmd, opts, *args): pkg_name_width = reduce(max, (len(p) for p in packages)) pkg_name_width = max(pkg_name_width, len("Package")) - r = osc.core.http_request("GET", api_url + "/attribute/MPCDF/enable_repositories/_meta") - root = ElementTree.parse(r).getroot() - kinds = list(value.text for value in root.findall("./allowed/value")) - pkg_name_fmt = "{{:{0}}}".format(pkg_name_width) print(" " + pkg_name_fmt.format("Package"), "Enabled repositories") print(" " + "-" * (pkg_name_width), "-" * len("Enabled repositories")) for package in packages: - try: + if mpcdf_common.has_attribute(api_url, project, package, "MPCDF:enable_repositories"): enabled_repos = mpcdf_common.get_attribute_values(api_url, project, package, "MPCDF:enable_repositories") - except Exception: + else: unmanaged.append(package) continue - print(" " + pkg_name_fmt.format(package), ", ".join(filter(lambda q: q in enabled_repos, kinds))) + + def subset(description, attribute): + if mpcdf_common.has_attribute(api_url, project, package, attribute): + return " ({0}: {1})".format(description, ", ".join(mpcdf_common.get_attribute_values(api_url, project, package, attribute))) + return "" + + print(" " + pkg_name_fmt.format(package), ", ".join(enabled_repos), + subset("compiler subset", "MPCDF:compiler_modules") + + subset("MPI subset", "MPCDF:mpi_modules") + + subset("CUDA subet", "MPCDF:cuda_modules")) print() if unmanaged: