diff --git a/changelogs/fragments/1293-added-primary-ip4-netmask-to-output.yml b/changelogs/fragments/1293-added-primary-ip4-netmask-to-output.yml new file mode 100755 index 000000000..97db13277 --- /dev/null +++ b/changelogs/fragments/1293-added-primary-ip4-netmask-to-output.yml @@ -0,0 +1,2 @@ +minor_changes: + - Adds the ability to return ``primary_ip4_netmask`` for virtual machines in nb_inventory plugin. diff --git a/plugins/inventory/nb_inventory.py b/plugins/inventory/nb_inventory.py index 03444b6b4..b4a29ab7f 100644 --- a/plugins/inventory/nb_inventory.py +++ b/plugins/inventory/nb_inventory.py @@ -840,6 +840,13 @@ def extract_primary_ip4(self, host): except Exception: return + def extract_primary_ip4_netmask(self, host): + try: + address = host["primary_ip4"]["address"] + return str(ip_interface(address).netmask) + except Exception: + return + def extract_primary_ip6(self, host): try: address = host["primary_ip6"]["address"] @@ -1938,6 +1945,12 @@ def _fill_host_variables(self, host, hostname): if extracted_primary_ip4: self._set_variable(hostname, "primary_ip4", extracted_primary_ip4) + extracted_primary_ip4_netmask = self.extract_primary_ip4_netmask(host=host) + if extracted_primary_ip4_netmask: + self._set_variable( + hostname, "primary_ip4_netmask", extracted_primary_ip4_netmask + ) + extracted_primary_ip6 = self.extract_primary_ip6(host=host) if extracted_primary_ip6: self._set_variable(hostname, "primary_ip6", extracted_primary_ip6)