From 1522106b752b0a5325b8b93d898e1531236e1267 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Thu, 1 Jun 2017 10:10:22 -0700 Subject: [PATCH 1/5] Add reference example for get_bgp_neighbors --- napalm_base/base.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/napalm_base/base.py b/napalm_base/base.py index 25b5a77c..7e854ce5 100644 --- a/napalm_base/base.py +++ b/napalm_base/base.py @@ -345,6 +345,38 @@ def get_bgp_neighbors(self): * received_prefixes (int) * accepted_prefixes (int) * sent_prefixes (int) + + + Example response: + { + "global": { + "router_id": "10.0.1.1", + "peers": { + "10.0.0.2": { + "local_as": 65000, + "remote_as": 65000, + "remote_id": "10.0.1.2", + "is_up": True, + "is_enabled": True, + "description": "internal-2", + "uptime": 4838400, + "address_family": { + "ipv4": { + "sent_prefixes": 637213, + "accepted_prefixes": 3142, + "received_prefixes": 3142 + }, + "ipv6": { + "sent_prefixes": 36714, + "accepted_prefixes": 148, + "received_prefixes": 148 + } + } + } + } + } + } + """ raise NotImplementedError From 66982908dfbc27dc16a7041447e76d32b47d01b9 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Thu, 1 Jun 2017 10:33:17 -0700 Subject: [PATCH 2/5] Adding note about is_up and positive uptime --- napalm_base/base.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/napalm_base/base.py b/napalm_base/base.py index 7e854ce5..bef7cfa1 100644 --- a/napalm_base/base.py +++ b/napalm_base/base.py @@ -346,6 +346,8 @@ def get_bgp_neighbors(self): * accepted_prefixes (int) * sent_prefixes (int) + Note, if is_up is False and uptime has a positive value then this indicates the + uptime of the last active BGP session. Example response: { From be4baaf2a6eda2fb096d723bf3ec99822b2ab0a2 Mon Sep 17 00:00:00 2001 From: Mircea Ulinic Date: Fri, 2 Jun 2017 10:15:03 +0100 Subject: [PATCH 3/5] Fix the as_number helper - confusing variable and function have the same name - fails when the value is already an integer --- napalm_base/helpers.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/napalm_base/helpers.py b/napalm_base/helpers.py index ae3d874c..a5122179 100644 --- a/napalm_base/helpers.py +++ b/napalm_base/helpers.py @@ -248,10 +248,11 @@ def ip(addr, version=None): return py23_compat.text_type(addr_obj) -def as_number(as_number): +def as_number(as_number_val): """Convert AS Number to standardized asplain notation as an integer.""" - if '.' in as_number: - big, little = as_number.split('.') + as_number_str = py23_compat.text_type(as_number_val) + if '.' in as_number_str: + big, little = as_number_str.split('.') return (int(big) << 16) + int(little) else: - return int(as_number) + return int(as_number_str) From 8fa405df7a99d25f612ba4300376f1ca5371e337 Mon Sep 17 00:00:00 2001 From: Mircea Ulinic Date: Fri, 2 Jun 2017 10:59:45 +0100 Subject: [PATCH 4/5] Test when as number is int --- test/unit/TestHelpers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/unit/TestHelpers.py b/test/unit/TestHelpers.py index 0d519d24..d17eeff6 100644 --- a/test/unit/TestHelpers.py +++ b/test/unit/TestHelpers.py @@ -316,6 +316,7 @@ def test_as_number(self): self.assertEqual(napalm_base.helpers.as_number('1.100'), 65636) self.assertEqual(napalm_base.helpers.as_number('1.65535'), 131071) self.assertEqual(napalm_base.helpers.as_number('65535.65535'), 4294967295) + self.assertEqual(napalm_base.helpers.as_number(64001), 64001) def test_convert_uptime_string_seconds(self): """ From 2694f0eb470cefaaa62fedd857f2d1559854263a Mon Sep 17 00:00:00 2001 From: Mircea Ulinic Date: Fri, 2 Jun 2017 12:14:52 +0100 Subject: [PATCH 5/5] Version 0.24.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0d28b04c..83714c2e 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ setup( name="napalm-base", - version='0.24.0', + version='0.24.1', packages=find_packages(), author="David Barroso, Kirk Byers, Mircea Ulinic", author_email="dbarrosop@dravetech.com, ping@mirceaulinic.net, ktbyers@twb-tech.com",