On 04/16/14 at 05:42pm, Sam Morrison wrote:
I’ve been playing with having an Icehouse API cell and a Havana compute cell to
see how it goes and to plan how we upgrade to Icehouse.
Most things actually work out of the box, booting etc works which I would think
is the hard one.
Unfortunately some of the simple ones fail, after some brief testing reboot,
pause and unpause are affected.
These require the object_backport() method of the conductor rpcapi that only
came in Icehouse.
There were some significant changes to how cells overrides the compute
api at the global level to send messages to a child cell for certain
methods. The affected methods can be found in nova/compute/cells_api.py
in the cells_compatible list in the ComputeRPCAPIRedirect class.
Error you get is below, I’m wondering if this method could be back ported to
Havana to allow this to work?
Anyone else been working in this area?
I'm not aware of anyone else working in this area, and we at Rackspace
haven't been. While there has been significant progress towards running
older computes while upgrading the rest of the system in a non cells
deployment that upgradeability effort hasn't been put into cells yet.
But if backporting that method is all it takes to get things working
well enough I think it's worth putting it up for review and get some
feedback from the stable-maintenance team.
Traceback (most recent call last):
File "/opt/nova/nova/openstack/common/rpc/amqp.py", line 461, in _process_data
**args)
File "/opt/nova/nova/openstack/common/rpc/dispatcher.py", line 172, in dispatch
result = getattr(proxyobj, method)(ctxt, **kwargs)
File "/opt/nova/nova/cells/rpc_driver.py", line 184, in process_message
message = self.msg_runner.message_from_json(message)
File "/opt/nova/nova/cells/messaging.py", line 1553, in message_from_json
message_dict['ctxt'], v)
File "/opt/nova/nova/objects/base.py", line 566, in deserialize_entity
entity = self._process_object(context, entity)
File "/opt/nova/nova/objects/base.py", line 536, in _process_object
e.kwargs['supported'])
File "/opt/nova/nova/conductor/api.py", line 331, in object_backport
return self._manager.object_backport(context, objinst, target_version)
File "/opt/nova/nova/conductor/rpcapi.py", line 502, in object_backport
target_version=target_version)
File "/opt/nova/nova/rpcclient.py", line 85, in call
return self._invoke(self.proxy.call, ctxt, method, **kwargs)
File "/opt/nova/nova/rpcclient.py", line 63, in _invoke
return cast_or_call(ctxt, msg, **self.kwargs)
File "/opt/nova/nova/openstack/common/rpc/proxy.py", line 126, in call
result = rpc.call(context, real_topic, msg, timeout)
File "/opt/nova/nova/openstack/common/rpc/__init__.py", line 139, in call
return _get_impl().call(CONF, context, topic, msg, timeout)
File "/opt/nova/nova/openstack/common/rpc/impl_kombu.py", line 824, in call
rpc_amqp.get_connection_pool(conf, Connection))
File "/opt/nova/nova/openstack/common/rpc/amqp.py", line 574, in call
rv = list(rv)
File "/opt/nova/nova/openstack/common/rpc/amqp.py", line 539, in __iter__
raise result
RemoteError: Remote error: UnsupportedRpcVersion Specified RPC version, 1.62,
not supported by this endpoint.
(also note that this is hard coded to use conductor so if you don’t use
conductor you’ll just get an RPC timeout.)
I think this is a bug but not my first concern.
Thanks,
Sam
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack