Merge "Adding multiple server support to nova reset-state"

This commit is contained in:
Jenkins 2014-07-10 23:07:02 +00:00 committed by Gerrit Code Review
commit 580c0aa611
4 changed files with 47 additions and 4 deletions

View File

@ -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
#

View File

@ -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',

View File

@ -2865,14 +2865,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.'))

View File

@ -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.')