Adding multiple server support to nova reset-state
Adding support specifying multiple servers to nova reset-state in a single invocation. Change-Id: I7add0c26b0e59b31751de7a60ebdde3f568b3354 Closes-Bug: #1314217
This commit is contained in:
parent
39d1d0156b
commit
3b8f009700
|
@ -641,6 +641,9 @@ class FakeHTTPClient(base_client.HTTPClient):
|
|||
raise AssertionError("Unexpected server action: %s" % action)
|
||||
return (resp, _headers, _body)
|
||||
|
||||
def post_servers_5678_action(self, body, **kw):
|
||||
return self.post_servers_1234_action(body, **kw)
|
||||
|
||||
#
|
||||
# Cloudpipe
|
||||
#
|
||||
|
|
|
@ -1366,6 +1366,20 @@ class ShellTest(utils.TestCase):
|
|||
self.assert_called('POST', '/servers/1234/action',
|
||||
{'os-resetState': {'state': 'active'}})
|
||||
|
||||
def test_reset_state_multiple(self):
|
||||
self.run_command('reset-state sample-server sample-server2')
|
||||
self.assert_called('POST', '/servers/1234/action',
|
||||
{'os-resetState': {'state': 'error'}}, pos=-4)
|
||||
self.assert_called('POST', '/servers/5678/action',
|
||||
{'os-resetState': {'state': 'error'}}, pos=-1)
|
||||
|
||||
def test_reset_state_active_multiple(self):
|
||||
self.run_command('reset-state --active sample-server sample-server2')
|
||||
self.assert_called('POST', '/servers/1234/action',
|
||||
{'os-resetState': {'state': 'active'}}, pos=-4)
|
||||
self.assert_called('POST', '/servers/5678/action',
|
||||
{'os-resetState': {'state': 'active'}}, pos=-1)
|
||||
|
||||
def test_reset_network(self):
|
||||
self.run_command('reset-network sample-server')
|
||||
self.assert_called('POST', '/servers/1234/action',
|
||||
|
|
|
@ -2856,14 +2856,27 @@ def do_live_migration(cs, args):
|
|||
args.disk_over_commit)
|
||||
|
||||
|
||||
@utils.arg('server', metavar='<server>', help=_('Name or ID of server.'))
|
||||
@utils.arg('server', metavar='<server>', nargs='+',
|
||||
help=_('Name or ID of server(s).'))
|
||||
@utils.arg('--active', action='store_const', dest='state',
|
||||
default='error', const='active',
|
||||
help=_('Request the server be reset to "active" state instead '
|
||||
'of "error" state (the default).'))
|
||||
def do_reset_state(cs, args):
|
||||
"""Reset the state of a server."""
|
||||
_find_server(cs, args.server).reset_state(args.state)
|
||||
failure_flag = False
|
||||
|
||||
for server in args.server:
|
||||
try:
|
||||
_find_server(cs, server).reset_state(args.state)
|
||||
except Exception as e:
|
||||
failure_flag = True
|
||||
msg = "Reset state for server %s failed: %s" % (server, e)
|
||||
print(msg)
|
||||
|
||||
if failure_flag:
|
||||
msg = "Unable to reset the state for the specified server(s)."
|
||||
raise exceptions.CommandError(msg)
|
||||
|
||||
|
||||
@utils.arg('server', metavar='<server>', help=_('Name or ID of server.'))
|
||||
|
|
|
@ -2382,14 +2382,27 @@ def do_live_migration(cs, args):
|
|||
args.disk_over_commit)
|
||||
|
||||
|
||||
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
|
||||
@utils.arg('server', metavar='<server>', nargs='+',
|
||||
help='Name or ID of server(s).')
|
||||
@utils.arg('--active', action='store_const', dest='state',
|
||||
default='error', const='active',
|
||||
help='Request the server be reset to "active" state instead '
|
||||
'of "error" state (the default).')
|
||||
def do_reset_state(cs, args):
|
||||
"""Reset the state of a server."""
|
||||
_find_server(cs, args.server).reset_state(args.state)
|
||||
failure_flag = False
|
||||
|
||||
for server in args.server:
|
||||
try:
|
||||
_find_server(cs, server).reset_state(args.state)
|
||||
except Exception as e:
|
||||
failure_flag = True
|
||||
msg = "Reset state for server %s failed: %s" % (server, e)
|
||||
print(msg)
|
||||
|
||||
if failure_flag:
|
||||
msg = "Unable to reset the state for the specified server(s)."
|
||||
raise exceptions.CommandError(msg)
|
||||
|
||||
|
||||
@utils.arg('server', metavar='<server>', help='Name or ID of server.')
|
||||
|
|
Loading…
Reference in New Issue