From 36dfba0794523a00eff42992382066203ec678ff Mon Sep 17 00:00:00 2001 From: Ludovic Ortega Date: Wed, 25 May 2022 17:58:39 +0200 Subject: [PATCH 1/4] [Fix] InterfaceDict model (speed) --- napalm/base/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/napalm/base/models.py b/napalm/base/models.py index a724ff050..345266419 100644 --- a/napalm/base/models.py +++ b/napalm/base/models.py @@ -30,7 +30,7 @@ "description": str, "last_flapped": float, "mtu": int, - "speed": float, + "speed": int, "mac_address": str, }, ) From f00a48d4ecba303dc6c155a4d848bc1183ead521 Mon Sep 17 00:00:00 2001 From: Ludovic Ortega Date: Wed, 25 May 2022 21:13:04 +0200 Subject: [PATCH 2/4] [Fix] FactsDict model (uptime) --- napalm/base/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/napalm/base/models.py b/napalm/base/models.py index 345266419..cad87c0ff 100644 --- a/napalm/base/models.py +++ b/napalm/base/models.py @@ -12,7 +12,7 @@ "FactsDict", { "os_version": str, - "uptime": int, + "uptime": float, "interface_list": List, "vendor": str, "serial_number": str, From b465f1eef2bce89b88260c961fe30bd2c2e218b9 Mon Sep 17 00:00:00 2001 From: Ludovic Ortega Date: Mon, 30 May 2022 22:45:48 +0200 Subject: [PATCH 3/4] [Fix] Changed speed to float --- napalm/base/base.py | 14 +++++++------- napalm/base/models.py | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/napalm/base/base.py b/napalm/base/base.py index f93927293..6676a151e 100644 --- a/napalm/base/base.py +++ b/napalm/base/base.py @@ -343,7 +343,7 @@ def get_interfaces(self) -> Dict[str, models.InterfaceDict]: * is_enabled (True/False) * description (string) * last_flapped (float in seconds) - * speed (int in Mbit) + * speed (float in Mbit) * MTU (in Bytes) * mac_address (string) @@ -356,7 +356,7 @@ def get_interfaces(self) -> Dict[str, models.InterfaceDict]: 'is_enabled': False, 'description': '', 'last_flapped': -1.0, - 'speed': 1000, + 'speed': 1000.0, 'mtu': 1500, 'mac_address': 'FA:16:3E:57:33:61', }, @@ -366,7 +366,7 @@ def get_interfaces(self) -> Dict[str, models.InterfaceDict]: 'is_enabled': True, 'description': 'foo', 'last_flapped': 1429978575.1554043, - 'speed': 1000, + 'speed': 1000.0, 'mtu': 1500, 'mac_address': 'FA:16:3E:57:33:62', }, @@ -376,7 +376,7 @@ def get_interfaces(self) -> Dict[str, models.InterfaceDict]: 'is_enabled': True, 'description': 'bla', 'last_flapped': 1429978575.1555667, - 'speed': 1000, + 'speed': 1000.0, 'mtu': 1500, 'mac_address': 'FA:16:3E:57:33:63', }, @@ -386,7 +386,7 @@ def get_interfaces(self) -> Dict[str, models.InterfaceDict]: 'is_enabled': True, 'description': 'bar', 'last_flapped': -1.0, - 'speed': 1000, + 'speed': 1000.0, 'mtu': 1500, 'mac_address': 'FA:16:3E:57:33:64', } @@ -1383,7 +1383,7 @@ def ping( OR { - 'error': 'unknown host 8.8.8.8.8' + 'error': 'unknown host 8.8.8.8' } """ @@ -1503,7 +1503,7 @@ def traceroute( OR { - 'error': 'unknown host 8.8.8.8.8' + 'error': 'unknown host 8.8.8.8' } """ raise NotImplementedError diff --git a/napalm/base/models.py b/napalm/base/models.py index cad87c0ff..9d26e6c71 100644 --- a/napalm/base/models.py +++ b/napalm/base/models.py @@ -30,7 +30,7 @@ "description": str, "last_flapped": float, "mtu": int, - "speed": int, + "speed": float, "mac_address": str, }, ) From 1fe4cd117e72ff60a9d9b1e2ad349e6256a7d287 Mon Sep 17 00:00:00 2001 From: Ludovic Ortega Date: Mon, 30 May 2022 22:54:29 +0200 Subject: [PATCH 4/4] [Fix] Napalm drivers (speed float) --- napalm/eos/eos.py | 2 +- napalm/ios/ios.py | 2 +- napalm/iosxr/iosxr.py | 4 ++-- napalm/iosxr_netconf/iosxr_netconf.py | 6 +++--- napalm/junos/junos.py | 2 +- napalm/nxos/nxos.py | 2 +- napalm/nxos_ssh/nxos_ssh.py | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/napalm/eos/eos.py b/napalm/eos/eos.py index 44baad3e2..7250252ec 100644 --- a/napalm/eos/eos.py +++ b/napalm/eos/eos.py @@ -544,7 +544,7 @@ def get_facts(self): "model": version["modelName"], "serial_number": version["serialNumber"], "os_version": version["internalVersion"], - "uptime": int(uptime), + "uptime": float(uptime), "interface_list": interfaces, } diff --git a/napalm/ios/ios.py b/napalm/ios/ios.py index 70b5d871a..bd0edcd2b 100644 --- a/napalm/ios/ios.py +++ b/napalm/ios/ios.py @@ -1043,7 +1043,7 @@ def get_facts(self): interface_list.append(interface) return { - "uptime": uptime, + "uptime": float(uptime), "vendor": vendor, "os_version": str(os_version), "serial_number": str(serial_number), diff --git a/napalm/iosxr/iosxr.py b/napalm/iosxr/iosxr.py index bcad6d6bb..8036151ee 100644 --- a/napalm/iosxr/iosxr.py +++ b/napalm/iosxr/iosxr.py @@ -158,7 +158,7 @@ def get_facts(self): "vendor": "Cisco", "os_version": "", "hostname": "", - "uptime": -1, + "uptime": -1.0, "serial_number": "", "fqdn": "", "model": "", @@ -185,7 +185,7 @@ def get_facts(self): str, napalm.base.helpers.find_txt(system_time_tree, "Hostname") ) uptime = napalm.base.helpers.convert( - int, napalm.base.helpers.find_txt(system_time_tree, "Uptime"), -1 + float, napalm.base.helpers.find_txt(system_time_tree, "Uptime"), -1.0 ) serial = napalm.base.helpers.convert( str, napalm.base.helpers.find_txt(platform_attr_tree, "SerialNumber") diff --git a/napalm/iosxr_netconf/iosxr_netconf.py b/napalm/iosxr_netconf/iosxr_netconf.py index 8f64151ac..639445094 100644 --- a/napalm/iosxr_netconf/iosxr_netconf.py +++ b/napalm/iosxr_netconf/iosxr_netconf.py @@ -338,7 +338,7 @@ def get_facts(self): "vendor": "Cisco", "os_version": "", "hostname": "", - "uptime": -1, + "uptime": -1.0, "serial_number": "", "fqdn": "", "model": "", @@ -365,7 +365,7 @@ def get_facts(self): # Retrieves uptime uptime = napalm.base.helpers.convert( - int, + float, self._find_txt( facts_rpc_reply_etree, ".//suo:system-time/\ @@ -373,7 +373,7 @@ def get_facts(self): default="", namespaces=C.NS, ), - -1, + -1.0, ) # Retrieves interfaces name diff --git a/napalm/junos/junos.py b/napalm/junos/junos.py index bc2fbf09d..cebf46f7b 100644 --- a/napalm/junos/junos.py +++ b/napalm/junos/junos.py @@ -412,7 +412,7 @@ def get_facts(self): "os_version": str(output["version"]), "hostname": str(output["hostname"]), "fqdn": str(output["fqdn"]), - "uptime": uptime, + "uptime": float(uptime), "interface_list": interface_list, } diff --git a/napalm/nxos/nxos.py b/napalm/nxos/nxos.py index 5ab7f8134..775868b9a 100644 --- a/napalm/nxos/nxos.py +++ b/napalm/nxos/nxos.py @@ -966,7 +966,7 @@ def get_facts(self) -> models.FactsDict: uptime += uptime_mins * 60 uptime += uptime_secs - facts["uptime"] = uptime + facts["uptime"] = float(uptime) iface_cmd = "show interface" interfaces_out = self._send_command(iface_cmd) diff --git a/napalm/nxos_ssh/nxos_ssh.py b/napalm/nxos_ssh/nxos_ssh.py index d050553a5..61ee35a08 100644 --- a/napalm/nxos_ssh/nxos_ssh.py +++ b/napalm/nxos_ssh/nxos_ssh.py @@ -662,7 +662,7 @@ def get_facts(self): interface_list.append(helpers.canonical_interface_name(interface)) return { - "uptime": int(uptime), + "uptime": float(uptime), "vendor": vendor, "os_version": str(os_version), "serial_number": str(serial_number),