情景描述:
在一台openstack的控制节点上执行nova get-vnc-console UUID novnc命令,无法输出带有token的NoVNC url地址,添加debug选项再次运行该命令时,提示“504 Gateway Time-out”:
# nova --debug get-vnc-console 930egk8f-ea94-40df-a4cd-c2540221ce9c novnc .... send: u'POST /v1.1/ee6f4449201b4e48b329bea27974f2e7/servers/930egk8f-ea94-40df-a4cd-c2540221ce9c/action HTTP/1.1\r\nHost: *.*.*.*:58774\r\nContent-Length: 39\r\nx-auth-project-id: ****\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nx-auth-token: dd318058a3424ce18be2821c764dfc88\r\nuser-agent: python-novaclient\r\ncontent-type: application/json\r\n\r\n' send: '{"os-getVNCConsole": {"type": "novnc"}}' reply: '' connect: (*.*.*.*, 58774) ************ send: u'POST /v1.1/ee6f4449201b4e48b329bea27974f2e7/servers/930egk8f-ea94-40df-a4cd-c2540221ce9c/action HTTP/1.1\r\nHost: *.*.*.*:58774\r\nContent-Length: 39\r\nx-auth-project-id: ****\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nx-auth-token: dd318058a3424ce18be2821c764dfc88\r\nuser-agent: python-novaclient\r\ncontent-type: application/json\r\n\r\n' send: '{"os-getVNCConsole": {"type": "novnc"}}' reply: 'HTTP/1.0 504 Gateway Time-out\r\n' header: Cache-Control: no-cache header: Connection: close header: Content-Type: text/html DEBUG (shell:416) string indices must be integers, not str Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/novaclient/shell.py", line 413, in main OpenStackComputeShell().main(sys.argv[1:]) File "/usr/lib/python2.6/site-packages/novaclient/shell.py", line 364, in main args.func(self.cs, args) File "/usr/lib/python2.6/site-packages/novaclient/v1_1/shell.py", line 1038, in do_get_vnc_console utils.print_list([VNCConsole(data['console'])], ['Type', 'Url']) TypeError: string indices must be integers, not str ERROR: string indices must be integers, not str
查询了相关的日志(messages.log,nova的api.log,nova的compute.log),发现如下相关记录:
messages.log:
Feb 16 09:46:56 upnode2 2016-02-16 09:46:56 ERROR nova.rpc.common [req-5865192b-5fd9-44a7-ad11-12f0adadadaf 381b738171bd4c30bb34bb982f78d943 ee6f4449201b4e48b329bea27974f2e7] Timed out waiting for RPC response: timed out#0122016-02-16 09:46:56 TRACE nova.rpc.common Traceback (most recent call last):#0122016-02-16 09:46:56 TRACE nova.rpc.common File "/usr/lib/python2.6/site-packages/nova/rpc/impl_kombu.py", line 490, in ensure#0122016-02-16 09:46:56 TRACE nova.rpc.common return method(*args, **kwargs)#0122016-02-16 09:46:56 TRACE nova.rpc.common File "/usr/lib/python2.6/site-packages/nova/rpc/impl_kombu.py", line 567, in _consume#0122016-02-16 09:46:56 TRACE nova.rpc.common return self.connection.drain_events(timeout=timeout)#0122016-02-16 09:46:56 TRACE nova.rpc.common File "/usr/lib/python2.6/site-packages/kombu/connection.py", line 139, in drain_events#0122016-02-16 09:46:56 TRACE nova.rpc.common return self.transport.drain_events(self.connection, **kwargs)#0122016-02-16 09:46:56 TRACE nova.rpc.common File "/usr/lib/python2.6/site-packages/kombu/transport/pyamqplib.py", line 223, in drain_events#0122016-02-16 09:46:56 TRACE nova.rpc.common return connection.drain_events(**kwargs)#0122016-02-16 09:46:56 TRACE nova.rpc.common File "/usr/lib/python2.6/site-packages/kombu/transport/pyamqplib.py", line 56, in drain_events#0122016-02-16 09:46:56 TRACE nova.rpc.common return self.wait_multi(self.channels.values(), timeout=timeout)#0122016-02-16 09:46:56 TRACE nova.rpc.common File "/usr/lib/python2.6/site-packages/kombu/transport/pyamqplib.py", line 62, in wait_multi#0122016-02-16 09:46:56 TRACE nova.rpc.common chanmap.keys(), allowed_methods, timeout=timeout)#0122016-02-16 09:46:56 TRACE nova.