|
34 | 34 | import inspect |
35 | 35 |
|
36 | 36 | from datetime import timedelta, datetime |
37 | | -from distutils.version import LooseVersion |
| 37 | +from packaging.version import Version |
38 | 38 | from ipaddress import IPv4Network |
39 | 39 |
|
40 | 40 | from pyeapi.client import Node as EapiNode |
@@ -92,7 +92,7 @@ def __init__(self, hostname, username, password, timeout=60, optional_args=None) |
92 | 92 | self._current_config = None |
93 | 93 | self._replace_config = False |
94 | 94 | self._ssh = None |
95 | | - self._version = LooseVersion("0") |
| 95 | + self._version = Version("0") |
96 | 96 |
|
97 | 97 | self.platform = "mos" |
98 | 98 |
|
@@ -126,7 +126,7 @@ def _run_translated_commands(self, commands, **kwargs): |
126 | 126 | In 0.22.0+ some commands had their syntax change. This function translates those command |
127 | 127 | syntaxs to their post 0.22.0 version |
128 | 128 | """ |
129 | | - if self._version >= LooseVersion("0.22.0"): |
| 129 | + if self._version >= Version("0.22.0"): |
130 | 130 | # Map of translate command syntax to 0.23.0+ syntax |
131 | 131 | translations = { |
132 | 132 | "show snmp chassis-id": "show snmp v2-mib chassis-id", |
@@ -155,11 +155,11 @@ def open(self): |
155 | 155 | sw_version = self.device.run_commands(["show version"])[0].get( |
156 | 156 | "softwareImageVersion", "0.0.0" |
157 | 157 | ) |
158 | | - if LooseVersion(sw_version) < LooseVersion("0.17.9"): |
| 158 | + if Version(sw_version) < Version("0.17.9"): |
159 | 159 | raise NotImplementedError( |
160 | 160 | "MOS Software Version 0.17.9 or better required" |
161 | 161 | ) |
162 | | - self._version = LooseVersion(sw_version) |
| 162 | + self._version = Version(sw_version) |
163 | 163 | except ConnectionError as ce: |
164 | 164 | raise ConnectionException(ce.message) |
165 | 165 |
|
@@ -264,7 +264,7 @@ def _load_config(self, filename=None, config=None, replace=False): |
264 | 264 | self._candidate.append("end") |
265 | 265 | if any( |
266 | 266 | "source mac" in line for line in self._candidate |
267 | | - ) and self._version < LooseVersion("0.19.2"): |
| 267 | + ) and self._version < Version("0.19.2"): |
268 | 268 | # Waiting for fixed release |
269 | 269 | raise CommandErrorException( |
270 | 270 | "Cannot set source mac in MOS versions prior to 0.19.2" |
|
0 commit comments