Skip to content

Commit 1afaafd

Browse files
committed
add _version_less_than to netbox_utils
- allow compare even 3 digit versions or more - sanitize inputs - full_version can sometimes be 4.2.9-Docker-3.2.1 just use only 4.2.9
1 parent 3601458 commit 1afaafd

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

plugins/module_utils/netbox_utils.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -811,6 +811,27 @@ def _version_check_greater(
811811

812812
return t_net > t_def if not greater_or_equal else t_net >= t_def
813813

814+
def _version_less_than(self, ver_net: str, ver_def: str) -> bool:
815+
"""Determine if first argument is smaller than second argument.
816+
817+
Args:
818+
ver_net (str): decimal string
819+
ver_def (str): decimal string
820+
"""
821+
t_net = tuple(
822+
int(x) for x in re.match(r"^([\d.]+)", ver_net).group(1).split(".")
823+
)
824+
t_def = tuple(
825+
int(x) for x in re.match(r"^([\d.]+)", ver_def).group(1).split(".")
826+
)
827+
828+
# Pad shorter tuple with zeros
829+
max_len = max(len(t_net), len(t_def))
830+
t_net += (0,) * (max_len - len(t_net))
831+
t_def += (0,) * (max_len - len(t_def))
832+
833+
return t_net < t_def
834+
814835
def _connect_netbox_api(self, url, token, ssl_verify, cert, headers=None):
815836
try:
816837
session = requests.Session()

0 commit comments

Comments
 (0)