From ce8af95f76adcdf743ff6ec31dbc49a28400819a Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Wed, 15 Aug 2018 12:40:17 +0200 Subject: [PATCH] Output info about all modules in an environment --- pp_lib/check_puppet_env_app.py | 66 ++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/pp_lib/check_puppet_env_app.py b/pp_lib/check_puppet_env_app.py index 52a0fdd..05aeab2 100644 --- a/pp_lib/check_puppet_env_app.py +++ b/pp_lib/check_puppet_env_app.py @@ -265,6 +265,68 @@ class CheckPuppetEnvApp(PpApplication): """ self.collect_modules() + self.print_modules() + + # ------------------------------------------------------------------------- + def print_modules(self): + + title_base = 'Modul' + title_name = 'Name komplett' + title_vendor = 'Vendor' + title_version = 'Version' + + len_base = len(title_base) + len_name = len(title_name) + len_vendor = len(title_vendor) + len_version = len(title_version) + + for b_name in self.modules.keys(): + module_info = self.modules[b_name] + base_name = str(b_name) + if len(base_name) > len_base: + len_base = len(base_name) + if module_info['name']: + if len(module_info['name']) > len_name: + len_name = len(module_info['name']) + if module_info['vendor']: + if len(module_info['vendor']) > len_vendor: + len_vendor = len(module_info['vendor']) + if module_info['version']: + if len(module_info['version']) > len_version: + len_version = len(module_info['version']) + + template = ( + '{{base:<{lb}}} {{name:<{ln}}} {{vendor:<{lven}}} {{version:<{lver}}}'.format( + lb=len_base, ln=len_name, lven=len_vendor, lver=len_version)) + len_total = len_base + len_name + len_vendor + len_version + 10 + if self.verbose > 1: + LOG.debug("Module line template: {!r}".format(template)) + print() + print(template.format( + base=title_base, name=title_name, vendor=title_vendor, version=title_version)) + print('=' * len_total) + + for b_name in sorted(self.modules.keys(), key=str.lower): + + module_info = self.modules[b_name] + base_name = str(b_name) + + mod_name = '~' + if module_info['name']: + mod_name = module_info['name'] + + vendor_name = '~' + if module_info['vendor']: + vendor_name = module_info['vendor'] + + version = '~' + if module_info['version']: + version = module_info['version'] + + print(template.format( + base=base_name, name=mod_name, vendor=vendor_name, version=version)) + + print() # ------------------------------------------------------------------------- def collect_modules(self): @@ -334,6 +396,7 @@ class CheckPuppetEnvApp(PpApplication): module_info['name'] = None module_info['vendor'] = None + module_info['version'] = None module_info['dependencies'] = {} if 'name'in meta_info: module_info['name'] = meta_info['name'] @@ -342,6 +405,9 @@ class CheckPuppetEnvApp(PpApplication): if match: module_info['vendor'] = match.group(1) + if 'version' in meta_info: + module_info['version'] = meta_info['version'] + if 'dependencies' in meta_info: for dep in meta_info['dependencies']: if 'name' in dep: -- 2.39.5