Remove deprecated novaclient.v2.contrib modules
All modules of novaclient.v2.contrib have been removed. The 'only_contrib' parameter for the 'novaclient.client.discover_extensions' method is no longer valid. Change-Id: I6da83057dda1f27afe98a2412bc0815f100f34a4
This commit is contained in:
parent
85e9b58e9b
commit
8eb7d1c5cc
@ -26,8 +26,7 @@ extensions = [
|
|||||||
apidoc_module_dir = '../../novaclient'
|
apidoc_module_dir = '../../novaclient'
|
||||||
apidoc_output_dir = 'reference/api'
|
apidoc_output_dir = 'reference/api'
|
||||||
apidoc_excluded_paths = [
|
apidoc_excluded_paths = [
|
||||||
'tests/*',
|
'tests/*']
|
||||||
'v2/contrib/*']
|
|
||||||
apidoc_separate_modules = True
|
apidoc_separate_modules = True
|
||||||
|
|
||||||
# The content that will be inserted into the main body of an autoclass
|
# The content that will be inserted into the main body of an autoclass
|
||||||
|
@ -40,11 +40,6 @@ from novaclient import utils
|
|||||||
osprofiler_profiler = importutils.try_import("osprofiler.profiler")
|
osprofiler_profiler = importutils.try_import("osprofiler.profiler")
|
||||||
osprofiler_web = importutils.try_import("osprofiler.web")
|
osprofiler_web = importutils.try_import("osprofiler.web")
|
||||||
|
|
||||||
# TODO(jichenjc): when an extension in contrib is moved to core extension,
|
|
||||||
# Add the name into the following list, then after last patch merged,
|
|
||||||
# remove the whole function
|
|
||||||
extensions_ignored_name = ["__init__"]
|
|
||||||
|
|
||||||
|
|
||||||
class SessionClient(adapter.LegacyJsonAdapter):
|
class SessionClient(adapter.LegacyJsonAdapter):
|
||||||
|
|
||||||
@ -178,14 +173,6 @@ def discover_extensions(*args, **kwargs):
|
|||||||
"""Returns the list of extensions, which can be discovered by python path
|
"""Returns the list of extensions, which can be discovered by python path
|
||||||
and by entry-point 'novaclient.extension'.
|
and by entry-point 'novaclient.extension'.
|
||||||
"""
|
"""
|
||||||
# TODO(mriedem): Remove support for 'only_contrib' in Queens.
|
|
||||||
if 'only_contrib' in kwargs and kwargs['only_contrib']:
|
|
||||||
warnings.warn(_('Discovering extensions only by contrib path is no '
|
|
||||||
'longer supported since all contrib extensions '
|
|
||||||
'have either been made required or removed. The '
|
|
||||||
'only_contrib argument is deprecated and will be '
|
|
||||||
'removed in a future release.'))
|
|
||||||
return []
|
|
||||||
chain = itertools.chain(_discover_via_python_path(),
|
chain = itertools.chain(_discover_via_python_path(),
|
||||||
_discover_via_entry_points())
|
_discover_via_entry_points())
|
||||||
return [ext.Extension(name, module) for name, module in chain]
|
return [ext.Extension(name, module) for name, module in chain]
|
||||||
|
@ -109,23 +109,6 @@ class ClientsUtilsTest(utils.TestCase):
|
|||||||
mock_discover_via_entry_points.assert_called_once_with()
|
mock_discover_via_entry_points.assert_called_once_with()
|
||||||
self.assertEqual([mock_extension()] * 4, result)
|
self.assertEqual([mock_extension()] * 4, result)
|
||||||
|
|
||||||
@mock.patch('novaclient.client.warnings')
|
|
||||||
@mock.patch("novaclient.client._discover_via_entry_points")
|
|
||||||
@mock.patch("novaclient.client._discover_via_python_path")
|
|
||||||
@mock.patch("novaclient.extension.Extension")
|
|
||||||
def test_discover_extensions_only_contrib(
|
|
||||||
self, mock_extension, mock_discover_via_python_path,
|
|
||||||
mock_discover_via_entry_points, mock_warnings):
|
|
||||||
|
|
||||||
version = novaclient.api_versions.APIVersion("2.0")
|
|
||||||
|
|
||||||
self.assertEqual([], novaclient.client.discover_extensions(
|
|
||||||
version, only_contrib=True))
|
|
||||||
self.assertFalse(mock_discover_via_python_path.called)
|
|
||||||
self.assertFalse(mock_discover_via_entry_points.called)
|
|
||||||
self.assertFalse(mock_extension.called)
|
|
||||||
self.assertTrue(mock_warnings.warn.called)
|
|
||||||
|
|
||||||
@mock.patch("novaclient.client.warnings")
|
@mock.patch("novaclient.client.warnings")
|
||||||
def test__check_arguments(self, mock_warnings):
|
def test__check_arguments(self, mock_warnings):
|
||||||
release = "Coolest"
|
release = "Coolest"
|
||||||
|
@ -23,7 +23,6 @@ from novaclient.v2 import aggregates
|
|||||||
from novaclient.v2 import assisted_volume_snapshots
|
from novaclient.v2 import assisted_volume_snapshots
|
||||||
from novaclient.v2 import availability_zones
|
from novaclient.v2 import availability_zones
|
||||||
from novaclient.v2 import cells
|
from novaclient.v2 import cells
|
||||||
from novaclient.v2 import contrib
|
|
||||||
from novaclient.v2 import flavor_access
|
from novaclient.v2 import flavor_access
|
||||||
from novaclient.v2 import flavors
|
from novaclient.v2 import flavors
|
||||||
from novaclient.v2 import hypervisors
|
from novaclient.v2 import hypervisors
|
||||||
@ -182,15 +181,6 @@ class Client(object):
|
|||||||
# Add in any extensions...
|
# Add in any extensions...
|
||||||
if extensions:
|
if extensions:
|
||||||
for extension in extensions:
|
for extension in extensions:
|
||||||
# do not import extensions from contrib directory twice.
|
|
||||||
if extension.name in contrib.V2_0_EXTENSIONS:
|
|
||||||
# NOTE(andreykurilin): this message looks more like
|
|
||||||
# warning or note, but it is not critical, so let's do
|
|
||||||
# not flood "warning" logging level and use just debug..
|
|
||||||
self.logger.debug("Nova 2.0 extenstion '%s' is auto-loaded"
|
|
||||||
" by default. You do not need to specify"
|
|
||||||
" it manually.", extension.name)
|
|
||||||
continue
|
|
||||||
if extension.manager_class:
|
if extension.manager_class:
|
||||||
setattr(self, extension.name,
|
setattr(self, extension.name,
|
||||||
extension.manager_class(self))
|
extension.manager_class(self))
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
import inspect
|
|
||||||
import warnings
|
|
||||||
|
|
||||||
from novaclient.i18n import _
|
|
||||||
|
|
||||||
# NOTE(andreykurilin): "tenant_networks" extension excluded
|
|
||||||
# here deliberately. It was deprecated separately from deprecation
|
|
||||||
# extension mechanism and I prefer to not auto-load it by default
|
|
||||||
# (V2_0_EXTENSIONS is designed for such behaviour).
|
|
||||||
V2_0_EXTENSIONS = {
|
|
||||||
'assisted_volume_snapshots':
|
|
||||||
'novaclient.v2.assisted_volume_snapshots',
|
|
||||||
'cells': 'novaclient.v2.cells',
|
|
||||||
'instance_action': 'novaclient.v2.instance_action',
|
|
||||||
'list_extensions': 'novaclient.v2.list_extensions',
|
|
||||||
'migrations': 'novaclient.v2.migrations',
|
|
||||||
'server_external_events': 'novaclient.v2.server_external_events',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def warn(alternative=True):
|
|
||||||
"""Prints warning msg for contrib modules."""
|
|
||||||
frm = inspect.stack()[1]
|
|
||||||
module_name = inspect.getmodule(frm[0]).__name__
|
|
||||||
if module_name.startswith("novaclient.v2.contrib."):
|
|
||||||
if alternative:
|
|
||||||
new_module_name = module_name.replace("contrib.", "")
|
|
||||||
msg = _("Module `%(module)s` is deprecated as of OpenStack "
|
|
||||||
"Ocata in favor of `%(new_module)s` and will be "
|
|
||||||
"removed after OpenStack Pike.") % {
|
|
||||||
"module": module_name, "new_module": new_module_name}
|
|
||||||
|
|
||||||
if not alternative:
|
|
||||||
msg = _("Module `%s` is deprecated as of OpenStack Ocata "
|
|
||||||
"All shell commands were moved to "
|
|
||||||
"`novaclient.v2.shell` and will be automatically "
|
|
||||||
"loaded.") % module_name
|
|
||||||
|
|
||||||
warnings.warn(msg)
|
|
@ -1,29 +0,0 @@
|
|||||||
# Copyright (C) 2013, Red Hat, Inc.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
"""
|
|
||||||
Assisted volume snapshots - to be used by Cinder and not end users.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from novaclient.v2 import assisted_volume_snapshots
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
|
|
||||||
|
|
||||||
AssistedSnapshotManager = assisted_volume_snapshots.AssistedSnapshotManager
|
|
||||||
Snapshot = assisted_volume_snapshots.Snapshot
|
|
||||||
|
|
||||||
manager_class = AssistedSnapshotManager
|
|
||||||
name = 'assisted_volume_snapshots'
|
|
||||||
|
|
||||||
contrib.warn()
|
|
@ -1,23 +0,0 @@
|
|||||||
# Copyright 2013 Rackspace Hosting
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
from novaclient.v2 import cells
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
|
|
||||||
|
|
||||||
Cell = cells.Cell
|
|
||||||
CellsManager = cells.CellsManager
|
|
||||||
|
|
||||||
contrib.warn()
|
|
@ -1,17 +0,0 @@
|
|||||||
# Copyright 2013 OpenStack Foundation
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
|
|
||||||
contrib.warn(alternative=False)
|
|
@ -1,22 +0,0 @@
|
|||||||
# Copyright 2013 Rackspace Hosting
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
from novaclient.v2 import shell
|
|
||||||
|
|
||||||
|
|
||||||
EvacuateHostResponse = shell.EvacuateHostResponse
|
|
||||||
|
|
||||||
contrib.warn(alternative=False)
|
|
@ -1,18 +0,0 @@
|
|||||||
# Copyright 2014 OpenStack Foundation
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
|
|
||||||
contrib.warn(alternative=False)
|
|
@ -1,22 +0,0 @@
|
|||||||
# Copyright 2013 Rackspace Hosting
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
from novaclient.v2 import shell
|
|
||||||
|
|
||||||
|
|
||||||
HostServersMigrateResponse = shell.HostServersMigrateResponse
|
|
||||||
|
|
||||||
contrib.warn(alternative=False)
|
|
@ -1,22 +0,0 @@
|
|||||||
# Copyright 2013 Rackspace Hosting
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
from novaclient.v2 import instance_action
|
|
||||||
|
|
||||||
|
|
||||||
InstanceActionManager = instance_action.InstanceActionManager
|
|
||||||
|
|
||||||
contrib.warn()
|
|
@ -1,23 +0,0 @@
|
|||||||
# Copyright 2011 OpenStack Foundation
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
from novaclient.v2 import list_extensions
|
|
||||||
|
|
||||||
|
|
||||||
ListExtResource = list_extensions.ListExtResource
|
|
||||||
ListExtManager = list_extensions.ListExtManager
|
|
||||||
|
|
||||||
contrib.warn()
|
|
@ -1,19 +0,0 @@
|
|||||||
# Copyright 2013 Rackspace Hosting
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
|
|
||||||
|
|
||||||
contrib.warn(alternative=False)
|
|
@ -1,24 +0,0 @@
|
|||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
"""
|
|
||||||
migration interface
|
|
||||||
"""
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
from novaclient.v2 import migrations
|
|
||||||
|
|
||||||
|
|
||||||
Migration = migrations.Migration
|
|
||||||
MigrationManager = migrations.MigrationManager
|
|
||||||
|
|
||||||
contrib.warn()
|
|
@ -1,29 +0,0 @@
|
|||||||
# Copyright (C) 2014, Red Hat, Inc.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
"""
|
|
||||||
External event triggering for servers, not to be used by users.
|
|
||||||
"""
|
|
||||||
|
|
||||||
from novaclient.v2 import contrib
|
|
||||||
from novaclient.v2 import server_external_events
|
|
||||||
|
|
||||||
|
|
||||||
Event = server_external_events.Event
|
|
||||||
ServerExternalEventManager = server_external_events.ServerExternalEventManager
|
|
||||||
|
|
||||||
manager_class = ServerExternalEventManager
|
|
||||||
name = 'server_external_events'
|
|
||||||
|
|
||||||
contrib.warn()
|
|
5
releasenotes/notes/remove-contrib-8b5e35ac8dddbab3.yaml
Normal file
5
releasenotes/notes/remove-contrib-8b5e35ac8dddbab3.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- All modules of ``novaclient.v2.contrib`` have been removed.
|
||||||
|
- The ``only_contrib`` parameter for the
|
||||||
|
``novaclient.client.discover_extensions`` method is no longer valid.
|
Loading…
x
Reference in New Issue
Block a user