From 5f9fe6b9c8336a24a81632ff4f7039dcf559f30d Mon Sep 17 00:00:00 2001 From: nikkytub Date: Tue, 3 Sep 2019 21:23:28 +0200 Subject: [PATCH] Removed additional fetch from config context because it is now available in the host from Netbox v2.6 onwards (#59028) * Removed additional fetch and config context as an option as it is now available in the host from Netbox v2.6 * Added config-context as an option --- lib/ansible/plugins/inventory/netbox.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/ansible/plugins/inventory/netbox.py b/lib/ansible/plugins/inventory/netbox.py index f6d7c4622c3..9120b9d5eb3 100644 --- a/lib/ansible/plugins/inventory/netbox.py +++ b/lib/ansible/plugins/inventory/netbox.py @@ -261,10 +261,7 @@ class InventoryModule(BaseInventoryPlugin, Constructable): def extract_config_context(self, host): try: - if self.config_context: - url = self.api_endpoint + "/api/dcim/devices/" + str(host["id"]) - device_lookup = self._fetch_information(url) - return [device_lookup["config_context"]] + return [host["config_context"]] except Exception: return @@ -378,8 +375,12 @@ class InventoryModule(BaseInventoryPlugin, Constructable): if self.query_filters: query_parameters.extend(filter(lambda x: x, map(self.validate_query_parameters, self.query_filters))) - self.device_url = self.api_endpoint + "/api/dcim/devices/?" + urlencode(query_parameters) - self.virtual_machines_url = self.api_endpoint + "/api/virtualization/virtual-machines/?" + urlencode(query_parameters) + if self.config_context: + self.device_url = self.api_endpoint + "/api/dcim/devices/?" + urlencode(query_parameters) + self.virtual_machines_url = self.api_endpoint + "/api/virtualization/virtual-machines/?" + urlencode(query_parameters) + else: + self.device_url = self.api_endpoint + "/api/dcim/devices/?" + urlencode(query_parameters) + "&exclude=config_context" + self.virtual_machines_url = self.api_endpoint + "/api/virtualization/virtual-machines/?" + urlencode(query_parameters) + "&exclude=config_context" def fetch_hosts(self): return chain(