Browse Source

Add "--force" option to "volume qos delete" command

Add ``--force`` option to ``volume qos delete`` command in volume
v1 and v2 to allow users to delete in-use QoS specification(s).

Change-Id: I46036e5f55ced8b8a1be54c521f2a5c242b89160
Closes-Bug: #1596821
tags/3.0.0
Huanxuan Ao 3 years ago
parent
commit
4e46c04f92
6 changed files with 60 additions and 5 deletions
  1. +5
    -0
      doc/source/command-objects/volume-qos.rst
  2. +18
    -2
      openstackclient/tests/volume/v1/test_qos_specs.py
  3. +17
    -1
      openstackclient/tests/volume/v2/test_qos_specs.py
  4. +7
    -1
      openstackclient/volume/v1/qos_specs.py
  5. +7
    -1
      openstackclient/volume/v2/qos_specs.py
  6. +6
    -0
      releasenotes/notes/bug-1596821-a07599eb4beb6342.yaml

+ 5
- 0
doc/source/command-objects/volume-qos.rst View File

@@ -58,8 +58,13 @@ Delete QoS specification
.. code:: bash

os volume qos delete
[--force]
<qos-spec> [<qos-spec> ...]

.. option:: --force

Allow to delete in-use QoS specification(s)

.. describe:: <qos-spec>

QoS specification(s) to delete (name or ID)

+ 18
- 2
openstackclient/tests/volume/v1/test_qos_specs.py View File

@@ -211,7 +211,7 @@ class TestQosDelete(TestQos):

result = self.cmd.take_action(parsed_args)

self.qos_mock.delete.assert_called_with(volume_fakes.qos_id)
self.qos_mock.delete.assert_called_with(volume_fakes.qos_id, False)
self.assertIsNone(result)

def test_qos_delete_with_name(self):
@@ -225,7 +225,23 @@ class TestQosDelete(TestQos):

result = self.cmd.take_action(parsed_args)

self.qos_mock.delete.assert_called_with(volume_fakes.qos_id)
self.qos_mock.delete.assert_called_with(volume_fakes.qos_id, False)
self.assertIsNone(result)

def test_qos_delete_with_force(self):
arglist = [
'--force',
volume_fakes.qos_id
]
verifylist = [
('force', True),
('qos_specs', [volume_fakes.qos_id])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)

result = self.cmd.take_action(parsed_args)

self.qos_mock.delete.assert_called_with(volume_fakes.qos_id, True)
self.assertIsNone(result)



+ 17
- 1
openstackclient/tests/volume/v2/test_qos_specs.py View File

@@ -175,7 +175,23 @@ class TestQosDelete(TestQos):

result = self.cmd.take_action(parsed_args)

self.qos_mock.delete.assert_called_with(self.qos_spec.id)
self.qos_mock.delete.assert_called_with(self.qos_spec.id, False)
self.assertIsNone(result)

def test_qos_delete_with_force(self):
arglist = [
'--force',
self.qos_spec.id
]
verifylist = [
('force', True),
('qos_specs', [self.qos_spec.id])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)

result = self.cmd.take_action(parsed_args)

self.qos_mock.delete.assert_called_with(self.qos_spec.id, True)
self.assertIsNone(result)



+ 7
- 1
openstackclient/volume/v1/qos_specs.py View File

@@ -103,13 +103,19 @@ class DeleteQos(command.Command):
nargs="+",
help=_('QoS specification(s) to delete (name or ID)'),
)
parser.add_argument(
'--force',
action='store_true',
default=False,
help=_("Allow to delete in-use QoS specification(s)")
)
return parser

def take_action(self, parsed_args):
volume_client = self.app.client_manager.volume
for qos in parsed_args.qos_specs:
qos_spec = utils.find_resource(volume_client.qos_specs, qos)
volume_client.qos_specs.delete(qos_spec.id)
volume_client.qos_specs.delete(qos_spec.id, parsed_args.force)


class DisassociateQos(command.Command):

+ 7
- 1
openstackclient/volume/v2/qos_specs.py View File

@@ -103,13 +103,19 @@ class DeleteQos(command.Command):
nargs="+",
help=_('QoS specification(s) to delete (name or ID)'),
)
parser.add_argument(
'--force',
action='store_true',
default=False,
help=_("Allow to delete in-use QoS specification(s)")
)
return parser

def take_action(self, parsed_args):
volume_client = self.app.client_manager.volume
for qos in parsed_args.qos_specs:
qos_spec = utils.find_resource(volume_client.qos_specs, qos)
volume_client.qos_specs.delete(qos_spec.id)
volume_client.qos_specs.delete(qos_spec.id, parsed_args.force)


class DisassociateQos(command.Command):

+ 6
- 0
releasenotes/notes/bug-1596821-a07599eb4beb6342.yaml View File

@@ -0,0 +1,6 @@
---
features:
- |
Add ``--force`` option to ``volume qos delete`` command to allow users to
delete in-use QoS specification(s).
[Bug `1596821 <https://bugs.launchpad.net/bugs/1596821>`_]

Loading…
Cancel
Save