Merge "[OSC] Fix share deletion when using share group id"

This commit is contained in:
Zuul 2022-09-02 11:17:22 +00:00 committed by Gerrit Code Review
commit 19a99b9de3
2 changed files with 34 additions and 3 deletions

View File

@ -310,7 +310,7 @@ class DeleteShare(command.Command):
"--share-group",
metavar="<share-group>",
default=None,
help=_("Optional share group (name or ID)"
help=_("Optional share group (name or ID) "
"which contains the share")
)
parser.add_argument(
@ -343,8 +343,11 @@ class DeleteShare(command.Command):
share_obj = apiutils.find_resource(
share_client.shares, share
)
share_group_id = (share_group_id if parsed_args.share_group
else None)
share_group_id = None
if parsed_args.share_group:
share_group_id = apiutils.find_resource(
share_client.share_groups, parsed_args.share_group).id
if parsed_args.force:
share_client.shares.force_delete(share_obj)
if parsed_args.soft:

View File

@ -70,6 +70,14 @@ class TestShare(manila_fakes.TestShare):
0)
return shares
def setup_share_groups_mock(self):
self.share_group_mock = self.app.client_manager.share.share_groups
self.share_group_mock.reset_mock()
share_group = manila_fakes.FakeShareGroup.create_one_share_group()
self.share_group_mock.get = mock.Mock(return_value=share_group)
return share_group
@ddt.ddt
class TestShareCreate(TestShare):
@ -434,6 +442,26 @@ class TestShareDelete(TestShare):
self.shares_mock.delete.assert_has_calls(calls)
self.assertIsNone(result)
def test_share_delete_with_share_group(self):
shares = self.setup_shares_mock(count=1)
share_group = self.setup_share_groups_mock()
arglist = [
shares[0].name,
'--share-group', share_group['id']
]
verifylist = [
("share_group", share_group['id']),
('shares', [shares[0].name])
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
self.shares_mock.delete.assert_called_with(
shares[0], share_group['id'])
self.assertIsNone(result)
def test_share_delete_with_force(self):
shares = self.setup_shares_mock(count=1)