AnalyticsTestSanityWithResource.test_verify_flow_tables test case failed due to this issue.
OpServerUtils.get_query_result(Async query) not returning the result.
In the following code, OpServerUtils.get_query_result is not returning anything:
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)
AnalyticsTestSa nityWithResourc e.test_ verify_ flow_tables test case failed due to this issue.
OpServerUtils. get_query_ result( Async query) not returning the result.
In the following code, OpServerUtils. get_query_ result is not returning anything:
The following was the query:
http:// 10.204. 217.172: 8081/analytics/ query/9ed98ea8- 0d55-11e7- 9b75-00000accd9 ac/chunk- final/0
and the query did not return anything as opposed to the script expectation.
Looks like an issue with the where clause when async query is done.
In this case, src vn and dst were specified as shown below.. When
Query: domain: ctest-Analytics TestSanityWithR esource- 27927104: ctest-vn1- 74822829' , 'op': 1}, {'value2': None, 'name': 'destvn', 'value': 'default- domain: ctest-Analytics TestSanityWithR esource- 27927104: ctest-vn2- 71443793' , 'op': 1}]], 'end_time': 1490004657344320, 'select_fields': ['sourcevn', 'sourceip', 'destvn', 'destip', 'setup_time', 'teardown_time', 'agg-packets']}
(Pdb) query_dict
{'table': 'FlowRecordTable', 'start_time': 1490024059000000, 'where': [[{'value2': None, 'name': 'sourcevn', 'value': 'default-
Logs:
> /root/contrail- test-ci/ tcutils/ collector/ opserver_ introspect_ utils.py( 297)post_ query()
-> flows_url = OpServerUtils. opserver_ query_url( self._ip, str(self._port)) 10.204. 217.172: 8081/analytics/ query'
flows_url
'http://
-> query_dict = OpServerUtils. get_query_ dict(table, start_time, end_time, select_ fields, where_clause, sort_fields, sort, limit, filter, dir) domain: ctest-Analytics TestSanityWithR esource- 27927104: ctest-vn1- 74822829' , 'op': 1}, {'value2': None, 'name': 'destvn', 'value': 'default- domain: ctest-Analytics TestSanityWithR esource- 27927104: ctest-vn2- 71443793' , 'op': 1}]], 'end_time': 1490004657344320, 'select_fields': ['sourcevn', 'sourceip', 'destvn', 'destip', 'setup_time', 'teardown_time', 'agg-packets']}
(Pdb) query_dict
{'table': 'FlowRecordTable', 'start_time': 1490024059000000, 'where': [[{'value2': None, 'name': 'sourcevn', 'value': 'default-
-> resp = OpServerUtils. post_url_ http(flows_ url, json.dumps( query_dict) , headers)
resp query/9ed98ea8- 0d55-11e7- 9b75-00000accd9 ac"}'
u'{"href": "/analytics/
-> qid = resp['href' ].rsplit( '/', 1)[1]
> /root/contrail- test-ci/ tcutils/ collector/ opserver_ introspect_ utils.py( 315)post_ query() get_query_ result( self._ip, str(self._port), qid, headers)
-> result = OpServerUtils.
-> print resp.__dict__
{'cookies': <<class 'requests. cookies. RequestsCookieJ ar'>[]> , '_content': False, 'headers': CaseInsensitive Dict({' date': 'Mon, 20 Mar 2017 10:12:16 GMT', 'transfer- encoding' : 'chunked', 'content-type': 'application/ json'}) , 'url': u'http:// 10.204. 217.172: 8081/analytics/ query/9ed98ea8- 0d55-11e7- 9b75-00000accd9 ac/chunk- final/0', 'status_code': 200, '_content_ consumed' : False, 'encoding': None, 'request': <PreparedRequest [GET]>, 'connection': <requests. adapters. HTTPAdapter object at 0x7ff9946d1d50>, 'elapsed': datetime. timedelta( 0, 0, 6647), 'raw': <urllib3. response. HTTPResponse object at 0x7ff994702310>, 'reason': 'OK', 'history': []}
> /root/contrail- test-ci/ tcutils/ collector/ opserver_ util.py( 140)get_ query_result( ) 000', u'lines': 0, u'href': u'/analytics/ query/9ed98ea8- 0d55-11e7- 9b75-00000accd9 ac/chunk- final/0' , u'end_time': u'1490004657344 320', u'ttl': 271, u'progress': 100}]
-> for chunk in status['chunks']:
status['chunks']
[{u'count': 0, u'start_time': u'1490024059000
http:// 10.204. 217.172: 8081/analytics/ query/9ed98ea8- 0d55-11e7- 9b75-00000accd9 ac/chunk- final/0
{
value: [ ]
}
root/contrail- test-ci/ serial_ scripts/ analytics/ test_analytics_ resource. py(874) test_verify_ flow_tables( ) info("Query output: %s" % (self.res2))
-> self.logger.
(Pdb) n
2017-03-20 10:31:00,726 - INFO - Query output: []
Discussed with Nikhil.