From 0ebaafd4f11c4266f1124f413c2c83e8531fc888 Mon Sep 17 00:00:00 2001 From: Remington Campbell Date: Wed, 17 Jun 2020 15:12:22 -0700 Subject: [PATCH 1/2] Make parse_xpath_to_gnmi_path a classmethod --- src/cisco_gnmi/client.py | 3 ++- src/cisco_gnmi/nx.py | 5 +++-- src/cisco_gnmi/xe.py | 5 +++-- src/cisco_gnmi/xr.py | 8 +++++--- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/cisco_gnmi/client.py b/src/cisco_gnmi/client.py index 11df9ca..c1c870b 100755 --- a/src/cisco_gnmi/client.py +++ b/src/cisco_gnmi/client.py @@ -402,7 +402,8 @@ def subscribe_xpaths( subscription_list.subscription.extend(subscriptions) return self.subscribe([subscription_list]) - def parse_xpath_to_gnmi_path(self, xpath, origin=None): + @classmethod + def parse_xpath_to_gnmi_path(cls, xpath, origin=None): """Parses an XPath to proto.gnmi_pb2.Path. This function should be overridden by any child classes for origin logic. diff --git a/src/cisco_gnmi/nx.py b/src/cisco_gnmi/nx.py index ae6f729..6d28510 100644 --- a/src/cisco_gnmi/nx.py +++ b/src/cisco_gnmi/nx.py @@ -152,7 +152,8 @@ def subscribe_xpaths( heartbeat_interval, ) - def parse_xpath_to_gnmi_path(self, xpath, origin=None): + @classmethod + def parse_xpath_to_gnmi_path(cls, xpath, origin=None): """Attempts to determine whether origin should be YANG (device) or DME. Errors on OpenConfig until support is present. """ @@ -169,4 +170,4 @@ def parse_xpath_to_gnmi_path(self, xpath, origin=None): xpath = xpath.split(":", 1)[1] else: origin = "DME" - return super(NXClient, self).parse_xpath_to_gnmi_path(xpath, origin) + return super(NXClient, cls).parse_xpath_to_gnmi_path(xpath, origin) diff --git a/src/cisco_gnmi/xe.py b/src/cisco_gnmi/xe.py index ebd469e..1728002 100644 --- a/src/cisco_gnmi/xe.py +++ b/src/cisco_gnmi/xe.py @@ -307,7 +307,8 @@ def subscribe_xpaths( heartbeat_interval, ) - def parse_xpath_to_gnmi_path(self, xpath, origin=None): + @classmethod + def parse_xpath_to_gnmi_path(cls, xpath, origin=None): """Naively tries to intelligently (non-sequitur!) origin Otherwise assume rfc7951 legacy is not considered @@ -318,4 +319,4 @@ def parse_xpath_to_gnmi_path(self, xpath, origin=None): origin = "openconfig" else: origin = "rfc7951" - return super(XEClient, self).parse_xpath_to_gnmi_path(xpath, origin) + return super(XEClient, cls).parse_xpath_to_gnmi_path(xpath, origin) diff --git a/src/cisco_gnmi/xr.py b/src/cisco_gnmi/xr.py index e7cfb4d..c55d6e4 100644 --- a/src/cisco_gnmi/xr.py +++ b/src/cisco_gnmi/xr.py @@ -338,7 +338,8 @@ def subscribe_xpaths( heartbeat_interval, ) - def parse_xpath_to_gnmi_path(self, xpath, origin=None): + @classmethod + def parse_xpath_to_gnmi_path(cls, xpath, origin=None): """No origin specified implies openconfig Otherwise origin is expected to be the module name """ @@ -351,9 +352,10 @@ def parse_xpath_to_gnmi_path(self, xpath, origin=None): # module name origin, xpath = xpath.split(":", 1) origin = origin.strip("/") - return super(XRClient, self).parse_xpath_to_gnmi_path(xpath, origin) + return super(XRClient, cls).parse_xpath_to_gnmi_path(xpath, origin) - def parse_cli_to_gnmi_path(self, command): + @classmethod + def parse_cli_to_gnmi_path(cls, command): """Parses a CLI command to proto.gnmi_pb2.Path. IOS XR appears to be the only OS with this functionality. From 5c2ed9c6b25a16d8083f6e2bb05a2733ed7b94db Mon Sep 17 00:00:00 2001 From: Remington Campbell Date: Wed, 17 Jun 2020 15:12:49 -0700 Subject: [PATCH 2/2] Bump version to v1.0.11 --- src/cisco_gnmi/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cisco_gnmi/__init__.py b/src/cisco_gnmi/__init__.py index 16a73b6..e0105ed 100644 --- a/src/cisco_gnmi/__init__.py +++ b/src/cisco_gnmi/__init__.py @@ -30,4 +30,4 @@ from .xe import XEClient from .builder import ClientBuilder -__version__ = "1.0.10" +__version__ = "1.0.11"