Skip to content

Commit 750c4eb

Browse files
authored
Fix #774: Add checks for NetBox version before pulling site groups (#781)
* Add checks for NetBox version before pulling site groups
1 parent 346072e commit 750c4eb

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

CHANGELOG.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ v3.7.1
1111
Bugfixes
1212
--------
1313

14+
- nb_inventory - Ensure inventory works on NetBox versions without the site group model [#781](https://github.com/netbox-community/ansible_modules/pull/781)
1415
- nb_inventory - Fix netbox_inventory site_group group_by @ryanmerolle in [#780](https://github.com/netbox-community/ansible_modules/pull/780)
1516

1617
v3.7.0

changelogs/changelog.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,4 +693,5 @@ releases:
693693
changes:
694694
bugfixes:
695695
- nb_inventory - Fix netbox_inventory site_group group_by @ryanmerolle in [#780](https://github.com/netbox-community/ansible_modules/pull/780)
696+
- nb_inventory - Ensure inventory works on NetBox versions without the site group model [#781](https://github.com/netbox-community/ansible_modules/pull/781)
696697
release_date: '2022-04-26'

plugins/inventory/nb_inventory.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,6 @@ def group_extractors(self):
470470
"local_context_data": self.extract_local_context_data,
471471
"custom_fields": self.extract_custom_fields,
472472
"region": self.extract_regions,
473-
"site_group": self.extract_site_groups,
474473
"cluster": self.extract_cluster,
475474
"cluster_group": self.extract_cluster_group,
476475
"cluster_type": self.extract_cluster_type,
@@ -484,6 +483,12 @@ def group_extractors(self):
484483
self._pluralize_group_by("manufacturer"): self.extract_manufacturer,
485484
}
486485

486+
if self.api_version >= version.parse("2.11"):
487+
extractors.update(
488+
{
489+
"site_group": self.extract_site_groups,
490+
}
491+
)
487492
if self.racks:
488493
extractors.update(
489494
{
@@ -979,6 +984,9 @@ def get_region_parent(region):
979984
)
980985

981986
def refresh_site_groups_lookup(self):
987+
if self.api_version < version.parse("2.11"):
988+
return
989+
982990
url = self.api_endpoint + "/api/dcim/site-groups/?limit=0"
983991
site_groups = self.get_resource_list(api_url=url)
984992
self.site_groups_lookup = dict(
@@ -1790,7 +1798,7 @@ def main(self):
17901798
self._add_region_groups()
17911799

17921800
# Create groups for site_groups, containing the site groups
1793-
if "site_group" in self.group_by:
1801+
if "site_group" in self.group_by and self.api_version >= version.parse("2.11"):
17941802
self._add_site_group_groups()
17951803

17961804
for host in chain(self.devices_list, self.vms_list):

0 commit comments

Comments
 (0)