Skip to content

Commit

Permalink
1. Pass auth header in post_query request
Browse files Browse the repository at this point in the history
    Fix for test_verify_object_logs
    Needed to pass auth header in post_query request
    Pass expect : 202 in query header to get qid

Partial-Bug: #1599654
(cherry picked from commit 1eb5678)

Change-Id: Ieb39bdfea09a22160b2b148842434214b0a09152
  • Loading branch information
Ankitja authored and Megh Bhatt committed Aug 10, 2016
1 parent 0f80974 commit 90396c7
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 16 deletions.
2 changes: 1 addition & 1 deletion common/connections.py
Expand Up @@ -39,7 +39,7 @@ def __init__(self, inputs=None, logger=None, project_name=None,
self.agent_inspect = custom_dict(self.get_vrouter_agent_inspect_handle,
'agent_inspect')
self.ops_inspects = custom_dict(self.get_opserver_inspect_handle,
'ops_inspect')
'ops_inspect:'+self.project_name+':'+self.username)
self.cn_inspect = custom_dict(self.get_control_node_inspect_handle,
'cn_inspect')
self.ds_inspect = custom_dict(self.get_discovery_service_inspect_handle,
Expand Down
19 changes: 13 additions & 6 deletions tcutils/collector/opserver_introspect_utils.py
Expand Up @@ -291,6 +291,8 @@ def post_query(self, table, start_time=None, end_time=None,
where_clause='',
sort_fields=None, sort=None, limit=None, filter=None, dir=None):
res = None
self._drv._auth()
headers = self._drv._headers
try:
flows_url = OpServerUtils.opserver_query_url(
self._ip, str(self._port))
Expand All @@ -304,14 +306,19 @@ def post_query(self, table, start_time=None, end_time=None,
print json.dumps(query_dict)
res = []
resp = OpServerUtils.post_url_http(
flows_url, json.dumps(query_dict))
flows_url, json.dumps(query_dict), headers)
if resp is not None:
resp = json.loads(resp)
qid = resp['href'].rsplit('/', 1)[1]
result = OpServerUtils.get_query_result(
self._ip, str(self._port), qid)
for item in result:
res.append(item)
try:
qid = resp['href'].rsplit('/', 1)[1]
result = OpServerUtils.get_query_result(
self._ip, str(self._port), qid, headers)
for item in result:
res.append(item)
except Exception as e:
if 'value' in resp:
for item in resp['value']:
res.append(item)
except Exception as e:
print str(e)
finally:
Expand Down
21 changes: 12 additions & 9 deletions tcutils/collector/opserver_util.py
Expand Up @@ -59,17 +59,20 @@ def get_start_end_time(start_time, end_time):
# end get_start_end_time

@staticmethod
def post_url_http(url, params):
def post_url_http(url, params, token):
DEFAULT_HEADERS = {'Content-type': 'application/json; charset="UTF-8"','Expect': '202-accepted'}
headers = DEFAULT_HEADERS.copy()
headers['X-AUTH-TOKEN'] = token['X-AUTH-TOKEN']
try:
print 'request version : %s'%(pkg_resources.get_distribution("requests").version[0])
if int(pkg_resources.get_distribution("requests").version[0]) >= 1:
response = requests.post(url, stream=True,
data=params,
headers=OpServerUtils.POST_HEADERS)
headers=headers)
else:
response = requests.post(url, prefetch=False,
data=params,
headers=OpServerUtils.POST_HEADERS)
headers=headers)
except requests.exceptions.ConnectionError, e:
print "Connection to %s failed" % url
return None
Expand All @@ -81,13 +84,13 @@ def post_url_http(url, params):
# end post_url_http

@staticmethod
def get_url_http(url):
def get_url_http(url, headers=None):
data = {}
try:
if int(pkg_resources.get_distribution("requests").version[0]) >= 1:
data = requests.get(url, stream=True)
data = requests.get(url, stream=True, headers=headers)
else:
data = requests.get(url, prefetch=False)
data = requests.get(url, prefetch=False, headers=headers)
except requests.exceptions.ConnectionError, e:
print "Connection to %s failed" % url

Expand Down Expand Up @@ -121,11 +124,11 @@ def parse_query_result(result):
# end parse_query_result

@staticmethod
def get_query_result(opserver_ip, opserver_port, qid):
def get_query_result(opserver_ip, opserver_port, qid, headers):
while True:
url = OpServerUtils.opserver_query_url(
opserver_ip, opserver_port) + '/' + qid
resp = OpServerUtils.get_url_http(url)
resp = OpServerUtils.get_url_http(url, headers=headers)
if resp.status_code != 200:
yield {}
return
Expand All @@ -137,7 +140,7 @@ def get_query_result(opserver_ip, opserver_port, qid):
for chunk in status['chunks']:
url = OpServerUtils.opserver_url(
opserver_ip, opserver_port) + chunk['href']
resp = OpServerUtils.get_url_http(url)
resp = OpServerUtils.get_url_http(url, headers=headers)
if resp.status_code != 200:
yield {}
else:
Expand Down

0 comments on commit 90396c7

Please sign in to comment.