Skip to content

Commit b0ea34c

Browse files
committed
Fix for check_config and prefix.
1 parent d097d7c commit b0ea34c

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

src/cisco_gnmi/client.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
from . import util
3232

3333

34+
logger = logging.getLogger(__name__)
35+
36+
3437
class Client(object):
3538
"""gNMI gRPC wrapper client to ease usage of gNMI.
3639
@@ -163,6 +166,9 @@ def get(
163166
request.use_models = use_models
164167
if extension:
165168
request.extension = extension
169+
170+
logger.debug(str(request))
171+
166172
get_response = self.service.Get(request)
167173
return get_response
168174

@@ -190,7 +196,7 @@ def set(
190196
"""
191197
request = proto.gnmi_pb2.SetRequest()
192198
if prefix:
193-
request.prefix = prefix
199+
request.prefix.CopyFrom(prefix)
194200
test_list = [updates, replaces, deletes]
195201
if not any(test_list):
196202
raise Exception("At least update, replace, or delete must be specified!")
@@ -207,6 +213,9 @@ def set(
207213
request.delete.extend(deletes)
208214
if extensions:
209215
request.extension.extend(extensions)
216+
217+
logger.debug(str(request))
218+
210219
response = self.service.Set(request)
211220
return response
212221

@@ -244,6 +253,9 @@ def validate_request(request):
244253
)
245254
if extensions:
246255
subscribe_request.extensions.extend(extensions)
256+
257+
logger.debug(str(subscribe_request))
258+
247259
return subscribe_request
248260

249261
response_stream = self.service.Subscribe(

src/cisco_gnmi/xe.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
from .client import Client, proto, util
3131

3232

33+
logger = logging.getLogger(__name__)
34+
35+
3336
class XEClient(Client):
3437
"""IOS XE-specific wrapper for gNMI functionality.
3538
Assumes IOS XE 16.12+
@@ -108,7 +111,7 @@ def delete_xpaths(self, xpaths, prefix=None):
108111
paths.append(self.parse_xpath_to_gnmi_path(xpath))
109112
return self.set(deletes=paths)
110113

111-
def set_json(self, update_json_configs=None, replace_json_configs=None, ietf=True):
114+
def set_json(self, update_json_configs=None, replace_json_configs=None, ietf=True, prefix=None):
112115
"""A convenience wrapper for set() which assumes JSON payloads and constructs desired messages.
113116
All parameters are optional, but at least one must be present.
114117
@@ -132,15 +135,15 @@ def set_json(self, update_json_configs=None, replace_json_configs=None, ietf=Tru
132135
raise Exception("Must supply at least one set of configurations to method!")
133136

134137
def check_configs(name, configs):
135-
if isinstance(name, string_types):
136-
logging.debug("Handling %s as JSON string.", name)
138+
if isinstance(configs, string_types):
139+
logger.debug("Handling %s as JSON string.", name)
137140
try:
138141
configs = json.loads(configs)
139142
except:
140143
raise Exception("{name} is invalid JSON!".format(name=name))
141144
configs = [configs]
142-
elif isinstance(name, dict):
143-
logging.debug("Handling %s as already serialized JSON object.", name)
145+
elif isinstance(configs, dict):
146+
logger.debug("Handling %s as already serialized JSON object.", name)
144147
configs = [configs]
145148
elif not isinstance(configs, (list, set)):
146149
raise Exception(
@@ -171,7 +174,7 @@ def create_updates(name, configs):
171174

172175
updates = create_updates("update_json_configs", update_json_configs)
173176
replaces = create_updates("replace_json_configs", replace_json_configs)
174-
return self.set(updates=updates, replaces=replaces)
177+
return self.set(prefix=prefix, updates=updates, replaces=replaces)
175178

176179
def get_xpaths(self, xpaths, data_type="ALL", encoding="JSON_IETF"):
177180
"""A convenience wrapper for get() which forms proto.gnmi_pb2.Path from supplied xpaths.

0 commit comments

Comments
 (0)