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

Reply via email to