Sent http://10.204.217.53:8081/analytics/uves/control-nodes With X-Auth-Token: d7f9656966bd426789a5509f52fdca81 X_API_ROLE: admin With same token and role, API Server(http://10.204.217.53:8082/virtual-networks) sends correct response, but analytics throws error, > /usr/lib/python2.7/dist-packages/opserver/opserver.py(409)_impl() -> user_token = bottle.request.headers.get('X-Auth-Token') (Pdb) (Pdb) (Pdb) (Pdb) (Pdb) list 404 @wraps(func) 405 def _impl(self, *f_args, **f_kwargs): 406 if self._args.auth_conf_info.get('cloud_admin_access_only') and \ 407 bottle.request.app == bottle.app(): 408 import pdb; pdb.set_trace() 409 -> user_token = bottle.request.headers.get('X-Auth-Token') 410 if not user_token or not \ 411 self._vnc_api_client.is_role_cloud_admin(user_token): 412 raise bottle.HTTPResponse(status = 401, 413 body = 'Authentication required', 414 headers = self._reject_auth_headers()) (Pdb) p bottle.request.headers.__dict__ {'environ': {'SERVER_SOFTWARE': 'gevent/1.0 Python/2.7', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/analytics/uves/control-nodes', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'bottle.app': , 'REMOTE_ADDR': '172.29.235.139', 'HTTP_X_AUTH_TOKEN': 'd7f9656966bd426789a5509f52fdca81', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36', 'HTTP_CONNECTION': 'keep-alive', 'SERVER_NAME': 'localhost', 'REMOTE_PORT': '51182', 'wsgi.url_scheme': 'http', 'bottle.request': , 'SERVER_PORT': '8081', 'bottle.request.headers': , 'route.handle': ' >, 'bottle.request.urlparts': SplitResult(scheme='http', netloc='10.204.217.53:8081', path='/analytics/uves/control-nodes', query='', fragment=''), 'route.url_args': {'tables': 'control-nodes'}, 'wsgi.input': , 'HTTP_HOST': '10.204.217.53:8081', 'wsgi.multithread': False, 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_ACCEPT': '*/*', 'bottle.raw_path': '/analytics/uves/control-nodes', 'wsgi.version': (1, 0), 'bottle.route': ' >, 'GATEWAY_INTERFACE': 'CGI/1.1', 'wsgi.run_once': False, 'wsgi.errors': ', mode 'w' at 0x7f270e4281e0>, 'wsgi.multiprocess': False, 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8', 'HTTP_X_API_ROLE': 'admin', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, sdch'}} (Pdb) n > /usr/lib/python2.7/dist-packages/opserver/opserver.py(410)_impl() -> if not user_token or not \ (Pdb) p user_token 'd7f9656966bd426789a5509f52fdca81' (Pdb) n > /usr/lib/python2.7/dist-packages/opserver/opserver.py(411)_impl() -> self._vnc_api_client.is_role_cloud_admin(user_token): (Pdb) p user_token 'd7f9656966bd426789a5509f52fdca81' (Pdb) n > /usr/lib/python2.7/dist-packages/opserver/opserver.py(409)_impl() -> user_token = bottle.request.headers.get('X-Auth-Token') (Pdb) p user_token *** NameError: NameError("name 'user_token' is not defined",) (Pdb) p bottle.request.headers.__dict__ {'environ': {'SERVER_SOFTWARE': 'gevent/1.0 Python/2.7', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/analytics/uves/vrouter/*', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': 'cfilt=NodeStatus:process_status', 'bottle.app': , 'REMOTE_ADDR': '10.204.217.53', 'HTTP_X_AUTH_TOKEN': '05e330065a5a482eb4d83089c3315172', 'HTTP_USER_AGENT': 'python-requests/2.9.1', 'HTTP_CONNECTION': 'keep-alive', 'SERVER_NAME': 'localhost', 'REMOTE_PORT': '35696', 'wsgi.url_scheme': 'http', 'bottle.request': , 'SERVER_PORT': '8081', 'bottle.request.headers': , 'route.handle': /' >, 'bottle.request.urlparts': SplitResult(scheme='http', netloc='10.204.217.53:8081', path='/analytics/uves/vrouter/%2A', query='cfilt=NodeStatus:process_status', fragment=''), 'route.url_args': {'table': 'vrouter', 'name': '*'}, 'wsgi.input': , 'HTTP_HOST': '10.204.217.53:8081', 'wsgi.multithread': False, 'HTTP_ACCEPT': 'application/json', 'bottle.raw_path': '/analytics/uves/vrouter/*', 'wsgi.version': (1, 0), 'bottle.route': /' >, 'GATEWAY_INTERFACE': 'CGI/1.1', 'wsgi.run_once': False, 'wsgi.errors': ', mode 'w' at 0x7f270e4281e0>, 'wsgi.multiprocess': False, 'HTTP_ACCEPT_ENCODING': 'gzip, deflate'}} (Pdb) n > /usr/lib/python2.7/dist-packages/opserver/opserver.py(410)_impl() -> if not user_token or not \ (Pdb) p user_token '05e330065a5a482eb4d83089c3315172' <<<<< Changed and PATH is also different (Pdb) n > /usr/lib/python2.7/dist-packages/opserver/opserver.py(411)_impl() -> self._vnc_api_client.is_role_cloud_admin(user_token): (Pdb) c Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/bottle.py", line 856, in _handle return route.call(**args) File "/usr/lib/python2.7/dist-packages/bottle.py", line 1721, in wrapper rv = callback(*a, **ka) File "/usr/lib/python2.7/dist-packages/opserver/opserver.py", line 411, in _impl self._vnc_api_client.is_role_cloud_admin(user_token): File "/usr/lib/python2.7/dist-packages/opserver/vnc_cfg_api_client.py", line 64, in is_role_cloud_admin result = self._get_user_token_info(user_token) File "/usr/lib/python2.7/dist-packages/opserver/vnc_cfg_api_client.py", line 30, in _get_user_token_info return self._vnc_api_client.obj_perms(user_token) File "/usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py", line 1155, in obj_perms rv = self._request_server(rest.OP_GET, "/obj-perms", data=query) File "/usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py", line 706, in _request_server retry_count=retry_count) File "/usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py", line 769, in _request raise HttpError(status, content) HttpError: HTTP Status: 500 Content: Internal Server Error 172.29.235.139 - - [2016-07-20 16:53:33] "GET /analytics/uves/control-nodes HTTP/1.1" 500 156 80.870364 127.0.0.1 - - [2016-07-20 16:53:33] "GET /analytics/uves HTTP/1.1" 200 971 0.010565 127.0.0.1 - - [2016-07-20 16:53:33] "GET /analytics/uves/vrouters HTTP/1.1" 200 287 0.015656 127.0.0.1 - - [2016-07-20 16:53:33] "GET /analytics/uves/vrouter/nodeh3?cfilt=VrouterAgent:phy_if HTTP/1.1" 200 211 0.002409 127.0.0.1 - - [2016-07-20 16:53:33] "GET /analytics/uves/vrouter/nodeh3?cfilt=VrouterAgent:self_ip_list HTTP/1.1" 200 181 0.001315 127.0.0.1 - - [2016-07-20 16:53:33] "GET /analytics/uves/vrouter/nodea21?cfilt=VrouterAgent:phy_if HTTP/1.1" 200 211 0.001351 Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/bottle.py", line 856, in _handle return route.call(**args) File "/usr/lib/python2.7/dist-packages/bottle.py", line 1721, in wrapper rv = callback(*a, **ka) File "/usr/lib/python2.7/dist-packages/opserver/opserver.py", line 411, in _impl self._vnc_api_client.is_role_cloud_admin(user_token): File "/usr/lib/python2.7/dist-packages/opserver/vnc_cfg_api_client.py", line 64, in is_role_cloud_admin result = self._get_user_token_info(user_token) File "/usr/lib/python2.7/dist-packages/opserver/vnc_cfg_api_client.py", line 30, in _get_user_token_info return self._vnc_api_client.obj_perms(user_token) File "/usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py", line 1155, in obj_perms rv = self._request_server(rest.OP_GET, "/obj-perms", data=query) File "/usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py", line 706, in _request_server retry_count=retry_count) File "/usr/lib/python2.7/dist-packages/vnc_api/vnc_api.py", line 769, in _request raise HttpError(status, content) HttpError: HTTP Status: 500 Content: Internal Server Error 10.204.217.53 - - [2016-07-20 16:53:33] "GET /analytics/uves/vrouter/*?cfilt=NodeStatus:process_status HTTP/1.1" 500 156 44.378022 > /usr/lib/python2.7/dist-packages/opserver/opserver.py(409)_impl() -> user_token = bottle.request.headers.get('X-Auth-Token') (Pdb)