From 24c77f3c2e05914f6ec4f09a2933a6f78ba61a07 Mon Sep 17 00:00:00 2001 From: Ganesh B Nalawade Date: Fri, 28 Jun 2019 16:24:59 +0530 Subject: [PATCH] Remove empty values after param validation After the populated config is validated with module argspec remove the empty values for rendered facts --- .../module_utils/network/myos/facts/interfaces/interfaces.py | 4 +++- .../module_utils/network_os/facts/resource/resource.py.j2 | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/rmb_tests/roles/my_role/module_utils/network/myos/facts/interfaces/interfaces.py b/rmb_tests/roles/my_role/module_utils/network/myos/facts/interfaces/interfaces.py index e804ea5..76f7833 100644 --- a/rmb_tests/roles/my_role/module_utils/network/myos/facts/interfaces/interfaces.py +++ b/rmb_tests/roles/my_role/module_utils/network/myos/facts/interfaces/interfaces.py @@ -73,8 +73,10 @@ def populate_facts(self, connection, ansible_facts, data=None): objs.append(obj) facts = {} if objs: + facts['interfaces'] = [] params = utils.validate_config(self.argument_spec, {'config': objs}) - facts['interfaces'] = params['config'] + for cfg in params['config']: + facts['interfaces'].append(utils.remove_empties(cfg)) ansible_facts['ansible_network_resources'].update(facts) return ansible_facts diff --git a/roles/scaffold_rm_facts/templates/module_utils/network_os/facts/resource/resource.py.j2 b/roles/scaffold_rm_facts/templates/module_utils/network_os/facts/resource/resource.py.j2 index af8790c..d758d30 100644 --- a/roles/scaffold_rm_facts/templates/module_utils/network_os/facts/resource/resource.py.j2 +++ b/roles/scaffold_rm_facts/templates/module_utils/network_os/facts/resource/resource.py.j2 @@ -73,8 +73,10 @@ class {{ resource|capitalize }}Facts(object): objs.append(obj) facts = {} if objs: + facts['{{ resource }}'] = [] params = utils.validate_config(self.argument_spec, {'config': objs}) - facts['{{ resource }}'] = params['config'] + for cfg in params['config']: + facts['{{ resource }}'].append(utils.remove_empties(cfg)) ansible_facts['ansible_network_resources'].update(facts) return ansible_facts