Skip to content

Commit b600fb7

Browse files
authored
Fixes #618 Ensure NetBox site module is idempotent between NetBox versions (#631)
* Change latitude/longitude to float in Netbox Site * Change netbox_site to be idempotent between NetBox versions
1 parent 7d1c4d7 commit b600fb7

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

plugins/module_utils/netbox_utils.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,6 +1144,21 @@ def _update_netbox_object(self, data):
11441144
serialized_nb_obj["tags"] = set(serialized_nb_obj["tags"])
11451145
updated_obj["tags"] = set(data["tags"])
11461146

1147+
# Ensure idempotency for site on version pre-3.0
1148+
version_pre_30 = self._version_check_greater("3.0", self.version)
1149+
if (
1150+
serialized_nb_obj.get("latitude")
1151+
and data.get("latitude")
1152+
and version_pre_30
1153+
):
1154+
updated_obj["latitude"] = str(data["latitude"])
1155+
if (
1156+
serialized_nb_obj.get("longitude")
1157+
and data.get("longitude")
1158+
and version_pre_30
1159+
):
1160+
updated_obj["longitude"] = str(data["longitude"])
1161+
11471162
if serialized_nb_obj == updated_obj:
11481163
return serialized_nb_obj, None
11491164
else:

plugins/modules/netbox_site.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,12 @@
109109
description:
110110
- Latitude in decimal format
111111
required: false
112-
type: str
112+
type: float
113113
longitude:
114114
description:
115115
- Longitude in decimal format
116116
required: false
117-
type: str
117+
type: float
118118
contact_name:
119119
description:
120120
- Name of contact for site
@@ -267,8 +267,8 @@ def main():
267267
description=dict(required=False, type="str"),
268268
physical_address=dict(required=False, type="str"),
269269
shipping_address=dict(required=False, type="str"),
270-
latitude=dict(required=False, type="str"),
271-
longitude=dict(required=False, type="str"),
270+
latitude=dict(required=False, type="float"),
271+
longitude=dict(required=False, type="float"),
272272
contact_name=dict(required=False, type="str"),
273273
contact_phone=dict(required=False, type="str"),
274274
contact_email=dict(required=False, type="str"),

0 commit comments

Comments
 (0)