Add --wait flag to the mange share server operation
This patch set adds the --wait flag to the share server manage operation. This will make the CLI to wait for the operation to be completed before returning to the prompt. Updated test_share_server_manage to be test_share_server_ manage_wait and included the waiter flag. Change-Id: I88a0a9e38b176cb5f241a4ac7997f6af92f9f38b
This commit is contained in:
parent
0f9ba9a7d3
commit
13ec1d3f44
@ -838,19 +838,30 @@ class ShellTest(test_utils.TestCase):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
@ddt.unpack
|
@ddt.unpack
|
||||||
def test_share_server_manage(self, driver_args, valid_params,
|
def test_share_server_manage_wait(self, driver_args, valid_params,
|
||||||
version=None, network_id=None,
|
version=None, network_id=None,
|
||||||
subnet_id=None):
|
subnet_id=None):
|
||||||
|
fake_manager = mock.Mock()
|
||||||
subnet_support = (version is None or
|
subnet_support = (version is None or
|
||||||
api_versions.APIVersion(version) >=
|
api_versions.APIVersion(version) >=
|
||||||
api_versions.APIVersion('2.51'))
|
api_versions.APIVersion('2.51'))
|
||||||
|
|
||||||
network_id = '3456' if network_id is None else network_id
|
network_id = '3456' if network_id is None else network_id
|
||||||
fake_share_network = type(
|
fake_share_network = share_networks.ShareNetwork(
|
||||||
'FakeShareNetwork', (object,), {'id': network_id})
|
fake_manager, {'id': network_id, 'uuid': network_id})
|
||||||
self.mock_object(
|
self.mock_object(
|
||||||
shell_v2, '_find_share_network',
|
shell_v2, '_find_share_network',
|
||||||
mock.Mock(return_value=fake_share_network))
|
mock.Mock(return_value=fake_share_network))
|
||||||
|
fake_share_server = share_servers.ShareServer(
|
||||||
|
fake_manager, {'id': 'fake'})
|
||||||
|
self.mock_object(
|
||||||
|
shell_v2, '_find_share_server',
|
||||||
|
mock.Mock(return_value=fake_share_server))
|
||||||
|
|
||||||
|
self.mock_object(
|
||||||
|
shell_v2, '_wait_for_resource_status',
|
||||||
|
mock.Mock()
|
||||||
|
)
|
||||||
command = ('share-server-manage '
|
command = ('share-server-manage '
|
||||||
'%(host)s '
|
'%(host)s '
|
||||||
'%(share_network_id)s '
|
'%(share_network_id)s '
|
||||||
@ -879,6 +890,11 @@ class ShellTest(test_utils.TestCase):
|
|||||||
|
|
||||||
self.assert_called('POST', '/share-servers/manage', body=expected)
|
self.assert_called('POST', '/share-servers/manage', body=expected)
|
||||||
|
|
||||||
|
shell_v2._wait_for_resource_status.assert_has_calls([
|
||||||
|
mock.call(self.shell.cs, fake_share_server,
|
||||||
|
resource_type='share_server', expected_status='active')
|
||||||
|
])
|
||||||
|
|
||||||
@ddt.data(constants.STATUS_ERROR, constants.STATUS_ACTIVE,
|
@ddt.data(constants.STATUS_ERROR, constants.STATUS_ACTIVE,
|
||||||
constants.STATUS_MANAGE_ERROR, constants.STATUS_UNMANAGE_ERROR,
|
constants.STATUS_MANAGE_ERROR, constants.STATUS_UNMANAGE_ERROR,
|
||||||
constants.STATUS_DELETING, constants.STATUS_CREATING)
|
constants.STATUS_DELETING, constants.STATUS_CREATING)
|
||||||
|
@ -1581,6 +1581,11 @@ def do_manage(cs, args):
|
|||||||
"The default subnet will be used if it's not specified. Available "
|
"The default subnet will be used if it's not specified. Available "
|
||||||
"for microversion >= 2.51 (Optional, Default=None).",
|
"for microversion >= 2.51 (Optional, Default=None).",
|
||||||
default=None)
|
default=None)
|
||||||
|
@cliutils.arg(
|
||||||
|
'--wait',
|
||||||
|
action='store_true',
|
||||||
|
default='False',
|
||||||
|
help='Wait for share server to manage')
|
||||||
def do_share_server_manage(cs, args):
|
def do_share_server_manage(cs, args):
|
||||||
"""Manage share server not handled by Manila (Admin only)."""
|
"""Manage share server not handled by Manila (Admin only)."""
|
||||||
driver_options = _extract_key_value_options(args, 'driver_options')
|
driver_options = _extract_key_value_options(args, 'driver_options')
|
||||||
@ -1600,6 +1605,14 @@ def do_share_server_manage(cs, args):
|
|||||||
args.host, args.share_network, args.identifier,
|
args.host, args.share_network, args.identifier,
|
||||||
**manage_kwargs)
|
**manage_kwargs)
|
||||||
|
|
||||||
|
if args.wait:
|
||||||
|
try:
|
||||||
|
_wait_for_resource_status(
|
||||||
|
cs, share_server, resource_type='share_server',
|
||||||
|
expected_status='active')
|
||||||
|
except exceptions.CommandError as e:
|
||||||
|
print(e, file=sys.stderr)
|
||||||
|
|
||||||
cliutils.print_dict(share_server._info)
|
cliutils.print_dict(share_server._info)
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The command "manila share-server-manage" now accepts an optional
|
||||||
|
"--wait" that allows users to let the client poll for the
|
||||||
|
completion of the operation.
|
Loading…
Reference in New Issue
Block a user