From 087ae12049b0a459ce3050b86834e09ecbec78eb Mon Sep 17 00:00:00 2001 From: Amrith Kumar Date: Fri, 21 Nov 2014 09:07:27 -0500 Subject: [PATCH] Switch Trove to use OSLO Messaging. This is a blueprint being submitted for the existing change to switch Trove to use OSLO messaging. Change-Id: If78ed011e7ef146428f2d380bb8831d8da3ab7d5 co-authored-by: Flavio Percoco co-authored-by: Sergey Gotliv Implements: blueprint rpc-versioning --- specs/kilo/switch-to-oslo-messaging.rst | 126 ++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 specs/kilo/switch-to-oslo-messaging.rst diff --git a/specs/kilo/switch-to-oslo-messaging.rst b/specs/kilo/switch-to-oslo-messaging.rst new file mode 100644 index 0000000..2433927 --- /dev/null +++ b/specs/kilo/switch-to-oslo-messaging.rst @@ -0,0 +1,126 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + + Sections of this template were taken directly from the Nova spec + template at: + https://github.com/openstack/nova-specs/blob/master/specs/template.rst +.. + +======================== +Switch to OSLO Messaging +======================== + +Include the URL of your launchpad blueprint: + +https://wiki.openstack.org/wiki/Trove-rpc-versioning + +This blueprint is to document the project to switch trove to use OSLO +Messaging. + +Problem description +=================== + +Get Trove on the same page w/ other projects + oslo. This will require +refactoring the rpc layer + +Prevent backward incompatibility between Trove components + +* The rpc client can send an older version of a message/call to a newer message handler without issue. +* The rpc client can send a newer version of a message/call to an older message handler without killing it (need to confirm this). +* The rpc client can check to see if it can send a newer version of a message/call. + +* Reduce the need for downtime during deployments. + +** Effectively allows for a mix of versions between the control plane and guest agents (in most cases). There may still be updates that will require down time. + +Proposed change +=============== + +* Remove rpc common components from oslo incubator? +* Use oslo messaging library + +** The minimum version will be picked from global-requirements. At the time of this writing, it's >= 1.4.0 + +* Keep track of a "version history" in comments in the code + +* Update trove calls to the openstack.common.rpc client to include a version cap param. (This is already supported in the client) + +** Trove API --> Task Manager +** Trove API --> Guest Agent +** Guest Agent --> Conductor +** Task Manager --> Conductor +** Document the use cases and examples of how to add/modify API calls + + +Configuration +------------- + +oslo.messaging has been designed to be backwards compatible config-wise. All the config compatibilities will be kept until all the projects have been migrated to oslo.messaging. + +Database +-------- + +NA + +Public API +---------- + +NA + +Internal API +------------ + +NA + +Guest Agent +----------- + +NA + + +Alternatives +------------ + +None + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + sgotliv + +Milestones +---------- + +Kilo-1 + +Work Items +---------- + +* see above. + +Dependencies +============ + +None + +Testing +======= + +Additional tests will be proposed if required, existing tests amended. + +Documentation Impact +==================== + +Yes + +References +========== + +See https://review.openstack.org/#/c/94484/