From 906ab9d6522b3559b4ad36d40dec3af20397f223 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Thu, 16 Apr 2015 07:09:34 +0800 Subject: [PATCH] Update rpc version aliases for kilo Update all of the rpc client API classes to include a version alias for the latest version implemented in Kilo. This alias is needed when doing rolling upgrades from Kilo to Liberty. With this in place, you can ensure all services only send messages that both Kilo and Liberty will understand. Closes-Bug: #1444745 Conflicts: nova/conductor/rpcapi.py NOTE(alex_xu): The conflict is due to there are some logs already added into the master. Change-Id: I2952aec9aae747639aa519af55fb5fa25b8f3ab4 (cherry picked from commit 78a8b5802ca148dcf37c5651f75f2126d261266e) --- nova/cells/rpcapi.py | 5 +++++ nova/cert/rpcapi.py | 7 ++++--- nova/conductor/rpcapi.py | 6 ++++++ nova/console/rpcapi.py | 7 ++++--- nova/consoleauth/rpcapi.py | 5 +++++ nova/network/rpcapi.py | 3 ++- nova/scheduler/rpcapi.py | 5 ++++- 7 files changed, 30 insertions(+), 8 deletions(-) diff --git a/nova/cells/rpcapi.py b/nova/cells/rpcapi.py index aa5654d8363b..13f4a0feeb6d 100644 --- a/nova/cells/rpcapi.py +++ b/nova/cells/rpcapi.py @@ -108,6 +108,10 @@ class CellsAPI(object): * 1.33 - Add clean_shutdown to resize_instance() * 1.34 - build_instances uses BlockDeviceMapping objects, drops legacy_bdm argument + + ... Kilo supports message version 1.34. So, any changes to + existing methods in 1.x after that point should be done such that they + can handle the version_cap being set to 1.34. ''' VERSION_ALIASES = { @@ -115,6 +119,7 @@ class CellsAPI(object): 'havana': '1.24', 'icehouse': '1.27', 'juno': '1.29', + 'kilo': '1.34', } def __init__(self): diff --git a/nova/cert/rpcapi.py b/nova/cert/rpcapi.py index 570707add85e..aeda163559b4 100644 --- a/nova/cert/rpcapi.py +++ b/nova/cert/rpcapi.py @@ -49,9 +49,9 @@ class CertAPI(object): 2.0 - Major API rev for Icehouse - ... Icehouse and Juno support message version 2.0. So, any changes to - existing methods in 2.x after that point should be done such that they - can handle the version_cap being set to 2.0. + ... Icehouse, Juno and Kilo support message version 2.0. So, any + changes to existing methods in 2.x after that point should be done such + that they can handle the version_cap being set to 2.0. ''' VERSION_ALIASES = { @@ -59,6 +59,7 @@ class CertAPI(object): 'havana': '1.1', 'icehouse': '2.0', 'juno': '2.0', + 'kilo': '2.0', } def __init__(self): diff --git a/nova/conductor/rpcapi.py b/nova/conductor/rpcapi.py index c5ed7137c116..b4a7adaf537a 100644 --- a/nova/conductor/rpcapi.py +++ b/nova/conductor/rpcapi.py @@ -159,6 +159,11 @@ class ConductorAPI(object): * 2.1 - Make notify_usage_exists() take an instance object * Remove bw_usage_update() * Remove notify_usage_exists() + + ... Kilo supports message version 2.1. So, any changes to + existing methods in 2.x after that point should be done such + that they can handle the version_cap being set to 2.1. + """ VERSION_ALIASES = { @@ -166,6 +171,7 @@ class ConductorAPI(object): 'havana': '1.58', 'icehouse': '2.0', 'juno': '2.0', + 'kilo': '2.1', } def __init__(self): diff --git a/nova/console/rpcapi.py b/nova/console/rpcapi.py index 5632e77a1938..c3b08c236d62 100644 --- a/nova/console/rpcapi.py +++ b/nova/console/rpcapi.py @@ -49,9 +49,9 @@ class ConsoleAPI(object): 2.0 - Major API rev for Icehouse - ... Icehouse and Juno support message version 2.0. So, any changes to - existing methods in 2.x after that point should be done such that they - can handle the version_cap being set to 2.0. + ... Icehouse, Juno and Kilo support message version 2.0. So, any + changes to existing methods in 2.x after that point should be done such + that they can handle the version_cap being set to 2.0. ''' VERSION_ALIASES = { @@ -59,6 +59,7 @@ class ConsoleAPI(object): 'havana': '1.1', 'icehouse': '2.0', 'juno': '2.0', + 'kilo': '2.0', } def __init__(self, topic=None, server=None): diff --git a/nova/consoleauth/rpcapi.py b/nova/consoleauth/rpcapi.py index c005c8b633ed..4be808e74986 100644 --- a/nova/consoleauth/rpcapi.py +++ b/nova/consoleauth/rpcapi.py @@ -49,6 +49,10 @@ class ConsoleAuthAPI(object): can handle the version_cap being set to 2.0. * 2.1 - Added access_url to authorize_console + + ... Kilo support message version 2.1. So, any changes to existing + methods in 2.x after that point should be done such that they can + handle the version_cap being set to 2.1. ''' VERSION_ALIASES = { @@ -56,6 +60,7 @@ class ConsoleAuthAPI(object): 'havana': '1.2', 'icehouse': '2.0', 'juno': '2.0', + 'kilo': '2.1', } def __init__(self): diff --git a/nova/network/rpcapi.py b/nova/network/rpcapi.py index a878df4d7969..b87e42036720 100644 --- a/nova/network/rpcapi.py +++ b/nova/network/rpcapi.py @@ -84,7 +84,7 @@ class NetworkAPI(object): * 1.13 - Convert allocate_for_instance() to use NetworkRequestList objects - ... Juno supports message version 1.13. So, any changes to + ... Juno and Kilo supports message version 1.13. So, any changes to existing methods in 1.x after that point should be done such that they can handle the version_cap being set to 1.13. @@ -110,6 +110,7 @@ class NetworkAPI(object): 'havana': '1.10', 'icehouse': '1.12', 'juno': '1.13', + 'kilo': '1.13', } def __init__(self, topic=None): diff --git a/nova/scheduler/rpcapi.py b/nova/scheduler/rpcapi.py index 6cf4c026683e..c8eb901464c0 100644 --- a/nova/scheduler/rpcapi.py +++ b/nova/scheduler/rpcapi.py @@ -91,6 +91,9 @@ class SchedulerAPI(object): * 4.2 - Added update_instance_info(), delete_instance_info(), and sync_instance_info() methods + ... Kilo support message version 4.2. So, any changes to existing + methods in 4.x after that point should be done such that they can + handle the version_cap being set to 4.2. ''' @@ -99,7 +102,7 @@ class SchedulerAPI(object): 'havana': '2.9', 'icehouse': '3.0', 'juno': '3.0', - 'kilo': '4.0', + 'kilo': '4.2', } def __init__(self):