diff --git a/module_utils/network_lsr/nm/provider.py b/module_utils/network_lsr/nm/provider.py index 9d3d491b4..2f73b0a1d 100644 --- a/module_utils/network_lsr/nm/provider.py +++ b/module_utils/network_lsr/nm/provider.py @@ -65,6 +65,22 @@ def get_client_version(self): nm_client = client.get_client() return nm_client.get_version() + def nm_support_version_cmp(self, nm_support_version): + v = self.get_client_version().split(".") + major = int(v[0]) + minor = int(v[1]) + micro = int(v[2]) + nm_support_v = nm_support_version.split(".") + nm_major = int(nm_support_v[0]) + nm_minor = int(nm_support_v[1]) + nm_micro = int(nm_support_v[2]) + # emulate the behavior of `nm_client_get_version_info()` to encode NM daemon + # version as "(major << 16 | minor << 8 | micro)", but + # `nm_client_get_version_info()` is only supported to use since NM 1.42 + return (major << 16 | minor << 8 | micro) >= ( + nm_major << 16 | nm_minor << 8 | nm_micro + ) + def reload_configuration(self): timeout = 10 nm_client = client.get_client()