Deprecate `personality` for `OS::Nova::Server`

This patch deprecate personality property for `OS::Nova::Server`.
Since that property is deprecated by nova since version 2.57,
we should plan to Hidden that property soon.
please use ``user_data`` or ``metadata`` instead. If that
property really required, use config ``max_nova_api_microversion``
to set the maximum nova API microversion <2.57 for nova client
plugin to support personality property.

Add config option ``max_nova_api_microversion`` to set the maximum
nova API microversion for nova client plugin.

Story: #2004188
Task: #29979

Change-Id: I1852739e818ec67ac5a821e436e243eaa72f0938
This commit is contained in:
ricolin 2019-03-12 16:43:12 +08:00 committed by Rabi Mishra
parent 16e35cfbb0
commit 680d7a0ecf
4 changed files with 31 additions and 1 deletions

View File

@ -152,6 +152,11 @@ engine_opts = [
default=10,
help=_('Number of times to check whether an interface has '
'been attached or detached.')),
cfg.FloatOpt('max_nova_api_microversion',
help=_('Maximum nova API version for client plugin. With '
'this limitation, any nova feature supported with '
'microversion number above max_nova_api_microversion '
'will not be available.')),
cfg.IntOpt('event_purge_batch_size',
min=1,
default=200,

View File

@ -63,7 +63,7 @@ class NovaClientPlugin(microversion_mixin.MicroversionMixin,
NOVA_API_VERSION = '2.1'
max_microversion = None
max_microversion = cfg.CONF.max_nova_api_microversion
service_types = [COMPUTE] = ['compute']

View File

@ -579,6 +579,17 @@ class Server(server_base.BaseServer, sh.SchedulerHintsMixin,
properties.Schema.MAP,
_('A map of files to create/overwrite on the server upon boot. '
'Keys are file names and values are the file contents.'),
support_status=support.SupportStatus(
status=support.DEPRECATED,
version='12.0.0',
message=_('This is not supported with nova api '
'microversion 2.57 and above. '
'OS::Nova::Server resource will not support '
'it in the future. Please use user_data or metadata '
'instead. However, you can set heat config option '
'max_nova_api_microversion < 2.57 to use '
'this property in the meantime.')
),
default={}
),
ADMIN_PASS: properties.Schema(

View File

@ -0,0 +1,14 @@
---
upgrade:
- |
New config ``max_nova_api_microversion`` to set the maximum nova
API microversion for nova client plugin. If``max_nova_api_microversion``
is set, any nova features supported with microversion number above
max_nova_api_microversion will not be available.
deprecations:
- |
``personality`` property of ``OS::Nova::Server`` is now deprecated, please
use ``user_data`` or ``metadata`` instead. If that property really
required, use config ``max_nova_api_microversion`` to set the maximum nova
API microversion <2.57 for nova client plugin to support personality
property.