Deprecate agent commands and APIs
The os-agents APIs have been removed by the following change. I9512f605dd2b3b0e88c951ed086250d57056303d This patch makes commands related to the APIs deprecated in accordance with the following policy. * https://docs.openstack.org/python-novaclient/latest/contributor/deprecation-policy.html The API bindings related to the APIs remains as they are because python-openstackclient depends on the API bindings. Change-Id: I89d7877e23e8802fe77987a7b24ea247e08d5218 Signed-off-by: Takashi Natsume <takanattie@gmail.com>
This commit is contained in:
parent
e85d845b1a
commit
9b474afdb2
@ -91,11 +91,19 @@ class SimpleReadOnlyNovaClientTest(base.ClientTestBase):
|
|||||||
self.assertIn(
|
self.assertIn(
|
||||||
"This resource is no longer available. "
|
"This resource is no longer available. "
|
||||||
"No forwarding address is given. (HTTP 410)", str(ex))
|
"No forwarding address is given. (HTTP 410)", str(ex))
|
||||||
|
self.assertIn(
|
||||||
|
"This command has been deprecated since 23.0.0 Wallaby Release "
|
||||||
|
"and will be removed in the first major release "
|
||||||
|
"after the Nova server 24.0.0 X release.", str(ex.stderr))
|
||||||
ex = self.assertRaises(exceptions.CommandFailed,
|
ex = self.assertRaises(exceptions.CommandFailed,
|
||||||
self.nova, 'agent-list', flags='--debug')
|
self.nova, 'agent-list', flags='--debug')
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
"This resource is no longer available. "
|
"This resource is no longer available. "
|
||||||
"No forwarding address is given. (HTTP 410)", str(ex))
|
"No forwarding address is given. (HTTP 410)", str(ex))
|
||||||
|
self.assertIn(
|
||||||
|
"This command has been deprecated since 23.0.0 Wallaby Release "
|
||||||
|
"and will be removed in the first major release "
|
||||||
|
"after the Nova server 24.0.0 X release.", str(ex.stderr))
|
||||||
|
|
||||||
def test_migration_list(self):
|
def test_migration_list(self):
|
||||||
self.nova('migration-list')
|
self.nova('migration-list')
|
||||||
|
@ -118,14 +118,18 @@ class ShellTest(utils.TestCase):
|
|||||||
return self.shell.cs.assert_not_called(method, url, body)
|
return self.shell.cs.assert_not_called(method, url, body)
|
||||||
|
|
||||||
def test_agents_list_with_hypervisor(self):
|
def test_agents_list_with_hypervisor(self):
|
||||||
self.run_command('agent-list --hypervisor xen')
|
_, err = self.run_command('agent-list --hypervisor xen')
|
||||||
self.assert_called('GET', '/os-agents?hypervisor=xen')
|
self.assert_called('GET', '/os-agents?hypervisor=xen')
|
||||||
|
self.assertIn(
|
||||||
|
'This command has been deprecated since 23.0.0 Wallaby Release '
|
||||||
|
'and will be removed in the first major release '
|
||||||
|
'after the Nova server 24.0.0 X release.', err)
|
||||||
|
|
||||||
def test_agents_create(self):
|
def test_agents_create(self):
|
||||||
self.run_command('agent-create win x86 7.0 '
|
_, err = self.run_command('agent-create win x86 7.0 '
|
||||||
'/xxx/xxx/xxx '
|
'/xxx/xxx/xxx '
|
||||||
'add6bb58e139be103324d04d82d8f546 '
|
'add6bb58e139be103324d04d82d8f546 '
|
||||||
'kvm')
|
'kvm')
|
||||||
self.assert_called(
|
self.assert_called(
|
||||||
'POST', '/os-agents',
|
'POST', '/os-agents',
|
||||||
{'agent': {
|
{'agent': {
|
||||||
@ -135,19 +139,31 @@ class ShellTest(utils.TestCase):
|
|||||||
'version': '7.0',
|
'version': '7.0',
|
||||||
'url': '/xxx/xxx/xxx',
|
'url': '/xxx/xxx/xxx',
|
||||||
'md5hash': 'add6bb58e139be103324d04d82d8f546'}})
|
'md5hash': 'add6bb58e139be103324d04d82d8f546'}})
|
||||||
|
self.assertIn(
|
||||||
|
'This command has been deprecated since 23.0.0 Wallaby Release '
|
||||||
|
'and will be removed in the first major release '
|
||||||
|
'after the Nova server 24.0.0 X release.', err)
|
||||||
|
|
||||||
def test_agents_delete(self):
|
def test_agents_delete(self):
|
||||||
self.run_command('agent-delete 1')
|
_, err = self.run_command('agent-delete 1')
|
||||||
self.assert_called('DELETE', '/os-agents/1')
|
self.assert_called('DELETE', '/os-agents/1')
|
||||||
|
self.assertIn(
|
||||||
|
'This command has been deprecated since 23.0.0 Wallaby Release '
|
||||||
|
'and will be removed in the first major release '
|
||||||
|
'after the Nova server 24.0.0 X release.', err)
|
||||||
|
|
||||||
def test_agents_modify(self):
|
def test_agents_modify(self):
|
||||||
self.run_command('agent-modify 1 8.0 /yyy/yyyy/yyyy '
|
_, err = self.run_command('agent-modify 1 8.0 /yyy/yyyy/yyyy '
|
||||||
'add6bb58e139be103324d04d82d8f546')
|
'add6bb58e139be103324d04d82d8f546')
|
||||||
self.assert_called('PUT', '/os-agents/1',
|
self.assert_called('PUT', '/os-agents/1',
|
||||||
{"para": {
|
{"para": {
|
||||||
"url": "/yyy/yyyy/yyyy",
|
"url": "/yyy/yyyy/yyyy",
|
||||||
"version": "8.0",
|
"version": "8.0",
|
||||||
"md5hash": "add6bb58e139be103324d04d82d8f546"}})
|
"md5hash": "add6bb58e139be103324d04d82d8f546"}})
|
||||||
|
self.assertIn(
|
||||||
|
'This command has been deprecated since 23.0.0 Wallaby Release '
|
||||||
|
'and will be removed in the first major release '
|
||||||
|
'after the Nova server 24.0.0 X release.', err)
|
||||||
|
|
||||||
def test_boot(self):
|
def test_boot(self):
|
||||||
self.run_command('boot --flavor 1 --image %s '
|
self.run_command('boot --flavor 1 --image %s '
|
||||||
|
@ -19,6 +19,11 @@ agent interface
|
|||||||
|
|
||||||
from novaclient import base
|
from novaclient import base
|
||||||
|
|
||||||
|
# NOTE(takashin): The os-agents APIs have been removed
|
||||||
|
# in https://review.opendev.org/c/openstack/nova/+/749309 .
|
||||||
|
# But the following API bindings remains as ther are
|
||||||
|
# because the python-openstackclient depends on them.
|
||||||
|
|
||||||
|
|
||||||
class Agent(base.Resource):
|
class Agent(base.Resource):
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
@ -55,6 +55,14 @@ def emit_duplicated_image_with_warning(img, image_with):
|
|||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
|
# TODO(takashin): Remove this along with the deprecated commands in the first
|
||||||
|
# major python-novaclient release AFTER the nova server 24.0.0 X release.
|
||||||
|
def _emit_agent_deprecation_warning():
|
||||||
|
print('This command has been deprecated since 23.0.0 Wallaby Release '
|
||||||
|
'and will be removed in the first major release '
|
||||||
|
'after the Nova server 24.0.0 X release.', file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
CLIENT_BDM2_KEYS = {
|
CLIENT_BDM2_KEYS = {
|
||||||
'id': 'uuid',
|
'id': 'uuid',
|
||||||
'source': 'source_type',
|
'source': 'source_type',
|
||||||
@ -3411,7 +3419,8 @@ def do_usage(cs, args):
|
|||||||
default=None,
|
default=None,
|
||||||
help=_('Type of hypervisor.'))
|
help=_('Type of hypervisor.'))
|
||||||
def do_agent_list(cs, args):
|
def do_agent_list(cs, args):
|
||||||
"""List all builds."""
|
"""DEPRECATED List all builds."""
|
||||||
|
_emit_agent_deprecation_warning()
|
||||||
result = cs.agents.list(args.hypervisor)
|
result = cs.agents.list(args.hypervisor)
|
||||||
columns = ["Agent_id", "Hypervisor", "OS", "Architecture", "Version",
|
columns = ["Agent_id", "Hypervisor", "OS", "Architecture", "Version",
|
||||||
'Md5hash', 'Url']
|
'Md5hash', 'Url']
|
||||||
@ -3432,7 +3441,8 @@ def do_agent_list(cs, args):
|
|||||||
default='xen',
|
default='xen',
|
||||||
help=_('Type of hypervisor.'))
|
help=_('Type of hypervisor.'))
|
||||||
def do_agent_create(cs, args):
|
def do_agent_create(cs, args):
|
||||||
"""Create new agent build."""
|
"""DEPRECATED Create new agent build."""
|
||||||
|
_emit_agent_deprecation_warning()
|
||||||
result = cs.agents.create(args.os, args.architecture,
|
result = cs.agents.create(args.os, args.architecture,
|
||||||
args.version, args.url,
|
args.version, args.url,
|
||||||
args.md5hash, args.hypervisor)
|
args.md5hash, args.hypervisor)
|
||||||
@ -3441,7 +3451,8 @@ def do_agent_create(cs, args):
|
|||||||
|
|
||||||
@utils.arg('id', metavar='<id>', help=_('ID of the agent-build.'))
|
@utils.arg('id', metavar='<id>', help=_('ID of the agent-build.'))
|
||||||
def do_agent_delete(cs, args):
|
def do_agent_delete(cs, args):
|
||||||
"""Delete existing agent build."""
|
"""DEPRECATED Delete existing agent build."""
|
||||||
|
_emit_agent_deprecation_warning()
|
||||||
cs.agents.delete(args.id)
|
cs.agents.delete(args.id)
|
||||||
|
|
||||||
|
|
||||||
@ -3450,7 +3461,8 @@ def do_agent_delete(cs, args):
|
|||||||
@utils.arg('url', metavar='<url>', help=_('URL'))
|
@utils.arg('url', metavar='<url>', help=_('URL'))
|
||||||
@utils.arg('md5hash', metavar='<md5hash>', help=_('MD5 hash.'))
|
@utils.arg('md5hash', metavar='<md5hash>', help=_('MD5 hash.'))
|
||||||
def do_agent_modify(cs, args):
|
def do_agent_modify(cs, args):
|
||||||
"""Modify existing agent build."""
|
"""DEPRECATED Modify existing agent build."""
|
||||||
|
_emit_agent_deprecation_warning()
|
||||||
result = cs.agents.update(args.id, args.version,
|
result = cs.agents.update(args.id, args.version,
|
||||||
args.url, args.md5hash)
|
args.url, args.md5hash)
|
||||||
utils.print_dict(result.to_dict())
|
utils.print_dict(result.to_dict())
|
||||||
|
12
releasenotes/notes/deprecate-agent-d0f58718ad1782f6.yaml
Normal file
12
releasenotes/notes/deprecate-agent-d0f58718ad1782f6.yaml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
deprecations:
|
||||||
|
- |
|
||||||
|
The following CLIs are deprecated.
|
||||||
|
|
||||||
|
- ``nova agent-create``
|
||||||
|
- ``nova agent-delete``
|
||||||
|
- ``nova agent-list``
|
||||||
|
- ``nova agent-modify``
|
||||||
|
|
||||||
|
The CLIs will be removed in the first major release after Nova 24.0.0 X
|
||||||
|
is released.
|
Loading…
Reference in New Issue
Block a user