[Openstack] nova.virt.xenapi.driver [-] Got exception: ['XENAPI_MISSING_PLUGIN', 'xenhost']

Afef MDHAFFAR afef.mdhaffar at gmail.com
Thu Nov 15 20:08:01 UTC 2012


Hi all,

I tried to add a third compute node to a running openstack platform
(composed of a head node and a compute node).
I use Ubuntu 12.04 + XCP + folsom (stable release). And, I use devstack to
install the compute node.
The first problem is that the 2nd (new) compute node is not able to see
that the head node nova services are enabled, however it is still able to
detect that nova services of the first compute node are running and
available.
nova-manage service list
2012-11-15 20:02:46 DEBUG nova.utils
[req-44c68f9f-b9f4-498b-a081-c0273e23e05f None None] backend <module
'nova.db.sqlalchemy.api' from '/opt/stack/nova/nova/db/sqlalchemy/api.pyc'>
from (pid=25406) __get_backend /opt/stack/nova/nova/utils.py:502
Binary           Host                                 Zone
Status     State Updated_At
nova-consoleauth DevStackOSDomU                       nova
enabled    XXX   2012-11-15 20:01:37
nova-cert        computeDomU01                        nova
enabled    :-)   2012-11-15 20:02:30
nova-network     computeDomU01                        nova
enabled    :-)   2012-11-15 20:02:33
nova-scheduler   computeDomU01                        nova
enabled    :-)   2012-11-15 20:02:33
nova-compute     computeDomU01                        nova
enabled    :-)   2012-11-15 20:02:30
nova-network     DevStackOSDomU                       nova
enabled    XXX   2012-11-15 20:01:40
nova-scheduler   DevStackOSDomU                       nova
enabled    XXX   2012-11-15 20:01:40
nova-cert        DevStackOSDomU                       nova
enabled    XXX   2012-11-15 20:01:35
nova-compute     DevStackOSDomU                       nova
enabled    XXX   2012-11-15 20:01:40
nova-network     computeDomU02                        nova
enabled    :-)   2012-11-15 20:02:43
nova-compute     computeDomU02                        nova
enabled    XXX   None
nova-scheduler   computeDomU02                        nova
enabled    :-)   2012-11-15 20:02:43
nova-cert        computeDomU02                        nova
enabled    :-)   2012-11-15 20:02:43

The nova-services are of course running on the head node. Actually,
launching "nova-manage service list" on the head node or the first compute
node returns the following output:
nova-manage service list
2012-11-15 20:05:08 DEBUG nova.utils
[req-47839159-dc05-4947-a070-66b9f0db36e7 None None] backend <module
'nova.db.sqlalchemy.api' from '/opt/stack/nova/nova/db/sqlalchemy/api.pyc'>
from (pid=6912) __get_backend /opt/stack/nova/nova/utils.py:502
Binary           Host                                 Zone
Status     State Updated_At
nova-consoleauth DevStackOSDomU                       nova
enabled    :-)   2012-11-15 20:04:10
nova-cert        computeDomU01                        nova
enabled    :-)   2012-11-15 20:05:03
nova-network     computeDomU01                        nova
enabled    :-)   2012-11-15 20:05:07
nova-scheduler   computeDomU01                        nova
enabled    :-)   2012-11-15 20:05:07
nova-compute     computeDomU01                        nova
enabled    :-)   2012-11-15 20:05:03
nova-network     DevStackOSDomU                       nova
enabled    :-)   2012-11-15 20:04:15
nova-scheduler   DevStackOSDomU                       nova
enabled    :-)   2012-11-15 20:04:15
nova-cert        DevStackOSDomU                       nova
enabled    :-)   2012-11-15 20:04:09
nova-compute     DevStackOSDomU                       nova
enabled    :-)   2012-11-15 20:04:15
nova-network     computeDomU02                        nova
enabled    :-)   2012-11-15 20:05:16
nova-compute     computeDomU02                        nova
enabled    XXX   None
nova-scheduler   computeDomU02                        nova
enabled    :-)   2012-11-15 20:05:16
nova-cert        computeDomU02                        nova
enabled    :-)   2012-11-15 20:05:16

And the 2nd problem is the fact that nova-compute does not start on the new
compute node, and returns this error:
2012-11-15 19:57:05 DEBUG nova.virt.xenapi.driver [-] Got exception:
['XENAPI_MISSING_PLUGIN', 'xenhost'] from (pid=25140)
_unwrap_plugin_exceptions /opt/stack/nova/nova/virt/xenapi/driver.py:754
2012-11-15 19:57:05 ERROR nova.virt.xenapi.host [-] The call to host_data
returned an error: ['XENAPI_MISSING_PLUGIN', 'xenhost'].
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/poll.py", line
97, in wait
    readers.get(fileno, noop).cb(fileno)
  File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py",
line 192, in main
    result = function(*args, **kwargs)
  File "/opt/stack/nova/nova/service.py", line 132, in run_server
    server.start()
  File "/opt/stack/nova/nova/service.py", line 410, in start
    self.manager.update_available_resource(ctxt)
  File "/opt/stack/nova/nova/compute/manager.py", line 2785, in
update_available_resource
    self.resource_tracker.update_available_resource(context)
  File "/opt/stack/nova/nova/utils.py", line 760, in inner
    retval = f(*args, **kwargs)
  File "/opt/stack/nova/nova/compute/resource_tracker.py", line 366, in
update_available_resource
    resources = self.driver.get_available_resource()
  File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 411, in
get_available_resource
    host_stats = self.get_host_stats(refresh=True)
  File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 573, in
get_host_stats
    return self.host_state.get_host_stats(refresh=refresh)
  File "/opt/stack/nova/nova/virt/xenapi/driver.py", line 159, in host_state
    self._host_state = host.HostState(self._session)
  File "/opt/stack/nova/nova/virt/xenapi/host.py", line 134, in __init__
    self.update_status()
  File "/opt/stack/nova/nova/virt/xenapi/host.py", line 162, in
update_status
    data["disk_total"] = total
TypeError: 'str' object does not support item assignment
Removing descriptor: 5
2012-11-15 19:57:05 CRITICAL nova [-] 'str' object does not support item
assignment
2012-11-15 19:57:05 TRACE nova Traceback (most recent call last):
2012-11-15 19:57:05 TRACE nova   File "/usr/local/bin/nova-compute", line
7, in <module>
2012-11-15 19:57:05 TRACE nova     execfile(__file__)
2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/bin/nova-compute",
line 48, in <module>
2012-11-15 19:57:05 TRACE nova     service.wait()
2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py",
line 659, in wait
2012-11-15 19:57:05 TRACE nova     _launcher.wait()
2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py",
line 192, in wait
2012-11-15 19:57:05 TRACE nova     super(ServiceLauncher, self).wait()
2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py",
line 162, in wait
2012-11-15 19:57:05 TRACE nova     service.wait()
2012-11-15 19:57:05 TRACE nova   File
"/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 166,
in wait
2012-11-15 19:57:05 TRACE nova     return self._exit_event.wait()
2012-11-15 19:57:05 TRACE nova   File
"/usr/local/lib/python2.7/dist-packages/eventlet/event.py", line 116, in
wait
2012-11-15 19:57:05 TRACE nova     return hubs.get_hub().switch()
2012-11-15 19:57:05 TRACE nova   File
"/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 177, in
switch
2012-11-15 19:57:05 TRACE nova     return self.greenlet.switch()
2012-11-15 19:57:05 TRACE nova   File
"/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 192,
in main
2012-11-15 19:57:05 TRACE nova     result = function(*args, **kwargs)
2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py",
line 132, in run_server
2012-11-15 19:57:05 TRACE nova     server.start()
2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/service.py",
line 410, in start
2012-11-15 19:57:05 TRACE nova
self.manager.update_available_resource(ctxt)
2012-11-15 19:57:05 TRACE nova   File
"/opt/stack/nova/nova/compute/manager.py", line 2785, in
update_available_resource
2012-11-15 19:57:05 TRACE nova
self.resource_tracker.update_available_resource(context)
2012-11-15 19:57:05 TRACE nova   File "/opt/stack/nova/nova/utils.py", line
760, in inner
2012-11-15 19:57:05 TRACE nova     retval = f(*args, **kwargs)
2012-11-15 19:57:05 TRACE nova   File
"/opt/stack/nova/nova/compute/resource_tracker.py", line 366, in
update_available_resource
2012-11-15 19:57:05 TRACE nova     resources =
self.driver.get_available_resource()
2012-11-15 19:57:05 TRACE nova   File
"/opt/stack/nova/nova/virt/xenapi/driver.py", line 411, in
get_available_resource
2012-11-15 19:57:05 TRACE nova     host_stats =
self.get_host_stats(refresh=True)
2012-11-15 19:57:05 TRACE nova   File
"/opt/stack/nova/nova/virt/xenapi/driver.py", line 573, in get_host_stats
2012-11-15 19:57:05 TRACE nova     return
self.host_state.get_host_stats(refresh=refresh)
2012-11-15 19:57:05 TRACE nova   File
"/opt/stack/nova/nova/virt/xenapi/driver.py", line 159, in host_state
2012-11-15 19:57:05 TRACE nova     self._host_state =
host.HostState(self._session)
2012-11-15 19:57:05 TRACE nova   File
"/opt/stack/nova/nova/virt/xenapi/host.py", line 134, in __init__
2012-11-15 19:57:05 TRACE nova     self.update_status()
2012-11-15 19:57:05 TRACE nova   File
"/opt/stack/nova/nova/virt/xenapi/host.py", line 162, in update_status
2012-11-15 19:57:05 TRACE nova     data["disk_total"] = total
2012-11-15 19:57:05 TRACE nova TypeError: 'str' object does not support
item assignment
2012-11-15 19:57:05 TRACE nova


Any ideas how to solve this problem??

Thank you,
Afef
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20121115/9434d3ec/attachment.html>


More information about the Openstack mailing list