9
9
import requests
10
10
from requests .auth import HTTPBasicAuth
11
11
from requests .exceptions import ConnectionError
12
+ from requests .packages .urllib3 .exceptions import InsecureRequestWarning
12
13
import json
13
14
14
15
from lxml import etree
@@ -60,6 +61,9 @@ def _send_request(self, commands, method):
60
61
payload = self ._build_payload (commands , method )
61
62
62
63
try :
64
+ if not self .verify :
65
+ requests .packages .urllib3 .disable_warnings (InsecureRequestWarning )
66
+
63
67
response = requests .post (
64
68
self .url ,
65
69
timeout = self .timeout ,
@@ -78,15 +82,7 @@ def _send_request(self, commands, method):
78
82
)
79
83
raise NXAPIAuthError (msg )
80
84
81
- if response .status_code not in [200 ]:
82
- msg = """Invalid status code returned on NX-API POST
83
- commands: {}
84
- status_code: {}""" .format (
85
- commands , response .status_code
86
- )
87
- raise NXAPIPostError (msg )
88
-
89
- return response .text
85
+ return response
90
86
91
87
92
88
class RPCClient (RPCBase ):
@@ -139,7 +135,7 @@ def _process_api_response(self, response, commands, raw_text=False):
139
135
structured data.
140
136
"""
141
137
142
- response_list = json .loads (response )
138
+ response_list = json .loads (response . text )
143
139
if isinstance (response_list , dict ):
144
140
response_list = [response_list ]
145
141
@@ -150,7 +146,7 @@ def _process_api_response(self, response, commands, raw_text=False):
150
146
new_response = []
151
147
for response in response_list :
152
148
153
- # Dectect errors
149
+ # Detect errors
154
150
self ._error_check (response )
155
151
156
152
# Some commands like "show run" can have a None result
@@ -235,7 +231,15 @@ def _build_payload(self, commands, method, xml_version="1.0", version="1.0"):
235
231
return payload
236
232
237
233
def _process_api_response (self , response , commands , raw_text = False ):
238
- xml_root = etree .fromstring (response )
234
+ if response .status_code not in [200 ]:
235
+ msg = """Invalid status code returned on NX-API POST
236
+ commands: {}
237
+ status_code: {}""" .format (
238
+ commands , response .status_code
239
+ )
240
+ raise NXAPIPostError (msg )
241
+
242
+ xml_root = etree .fromstring (response .text )
239
243
response_list = xml_root .xpath ("outputs/output" )
240
244
if len (commands ) != len (response_list ):
241
245
raise NXAPIXMLError (
0 commit comments