From 0fcec69a2346474ba033a435b1f82d1a833bad7c Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Thu, 3 Mar 2016 10:07:46 -0500 Subject: [PATCH] deprecate manager class options We should deprecate the manager classes used for all of our services. This is not a thing we actually expect or want to support people replacing. If we want modular plug points at any of these all the options should be in tree and specified by constants to switch between. Change-Id: Id25bd4870c6e2fda08dc0177b7ed61a8a6091838 --- nova/conf/cells.py | 6 +++-- nova/service.py | 25 ++++++++++++++----- ...e_pluggable_managers-ca0224bcd779454c.yaml | 19 ++++++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 releasenotes/notes/deprecate_pluggable_managers-ca0224bcd779454c.yaml diff --git a/nova/conf/cells.py b/nova/conf/cells.py index ca1ecd62db0e..41ace3105036 100644 --- a/nova/conf/cells.py +++ b/nova/conf/cells.py @@ -75,7 +75,7 @@ Related options: cfg.StrOpt('manager', default='nova.cells.manager.CellsManager', help=""" -Manager for cells +DEPRECATED: Manager for cells The nova-cells manager class. This class defines RPC methods that the local cell may call. This class is NOT used for messages coming @@ -102,7 +102,9 @@ Services which consume this: Related options: * None -"""), +""", + deprecated_for_removal=True + ), cfg.StrOpt('name', default='nova', help=""" diff --git a/nova/service.py b/nova/service.py index 070afcedfdb2..e019c0300910 100644 --- a/nova/service.py +++ b/nova/service.py @@ -76,7 +76,8 @@ service_opts = [ 'will be the number of CPUs available.'), cfg.StrOpt('metadata_manager', default='nova.api.manager.MetadataManager', - help='OpenStack metadata service manager'), + help='DEPRECATED: OpenStack metadata service manager', + deprecated_for_removal=True), cfg.StrOpt('metadata_listen', default="0.0.0.0", help='The IP address on which the metadata API will listen.'), @@ -88,24 +89,36 @@ service_opts = [ cfg.IntOpt('metadata_workers', help='Number of workers for metadata service. The default will ' 'be the number of CPUs available.'), + # NOTE(sdague): Ironic is still using this facility for their HA + # manager. Ensure they are sorted before removing this. cfg.StrOpt('compute_manager', default='nova.compute.manager.ComputeManager', - help='Full class name for the Manager for compute'), + help='DEPRECATED: Full class name for the Manager for compute', + deprecated_for_removal=True), cfg.StrOpt('console_manager', default='nova.console.manager.ConsoleProxyManager', - help='Full class name for the Manager for console proxy'), + help='DEPRECATED: Full class name for the Manager for ' + 'console proxy', + deprecated_for_removal=True), cfg.StrOpt('consoleauth_manager', default='nova.consoleauth.manager.ConsoleAuthManager', - help='Manager for console auth'), + help='DEPRECATED: Manager for console auth', + deprecated_for_removal=True), cfg.StrOpt('cert_manager', default='nova.cert.manager.CertManager', - help='Full class name for the Manager for cert'), + help='DEPRECATED: Full class name for the Manager for cert', + deprecated_for_removal=True), + # NOTE(sdague): the network_manager has a bunch of different in + # tree classes that are still legit options. In Newton we should + # turn this into a selector. cfg.StrOpt('network_manager', default='nova.network.manager.VlanManager', help='Full class name for the Manager for network'), cfg.StrOpt('scheduler_manager', default='nova.scheduler.manager.SchedulerManager', - help='Full class name for the Manager for scheduler'), + help='DEPRECATED: Full class name for the Manager for ' + 'scheduler', + deprecated_for_removal=True), cfg.IntOpt('service_down_time', default=60, help='Maximum time since last check-in for up service'), diff --git a/releasenotes/notes/deprecate_pluggable_managers-ca0224bcd779454c.yaml b/releasenotes/notes/deprecate_pluggable_managers-ca0224bcd779454c.yaml new file mode 100644 index 000000000000..44ded487f4a4 --- /dev/null +++ b/releasenotes/notes/deprecate_pluggable_managers-ca0224bcd779454c.yaml @@ -0,0 +1,19 @@ +--- +deprecations: + + - Nove used to support the concept that ``service managers`` were + replaceable components. There are many config options where you can + replace a manager by specifying a new class. This concept is + deprecated in Mitaka as are the following config options. + + * [cells] manager + * metadata_manager + * compute_manager + * console_manager + * consoleauth_manager + * cert_manager + * scheduler_manager + + Many of these will be removed in Newton. Users of these options + are encouraged to work with Nova upstream on any features missing + in the default implementations that are needed.