Merge "Domain start command accepts multiple domain names"

This commit is contained in:
Zuul 2018-06-20 10:59:59 +00:00 committed by Gerrit Code Review
commit a800f72812
3 changed files with 8 additions and 7 deletions

View File

@ -224,8 +224,8 @@ class StartCommand(Command):
def get_parser(self, prog_name):
parser = super(StartCommand, self).get_parser(prog_name)
parser.add_argument('domain_name',
help='The name of the virtual machine')
parser.add_argument('domain_names', nargs='+',
help='A list of virtual machine names')
return parser

View File

@ -141,14 +141,15 @@ def command_dispatcher(vbmc_manager, data_in):
elif command == 'delete':
data_out = [vbmc_manager.delete(domain_name)
for domain_name in data_in['domain_names']]
for domain_name in set(data_in['domain_names'])]
return {
'rc': max([rc for rc, msg in data_out]),
'msg': [msg for rc, msg in data_out if msg],
}
elif command == 'start':
data_out = [vbmc_manager.start(data_in['domain_name'])]
data_out = [vbmc_manager.start(domain_name)
for domain_name in set(data_in['domain_names'])]
return {
'rc': max([rc for rc, msg in data_out]),
'msg': [msg for rc, msg in data_out if msg],
@ -156,7 +157,7 @@ def command_dispatcher(vbmc_manager, data_in):
elif command == 'stop':
data_out = [vbmc_manager.stop(domain_name)
for domain_name in data_in['domain_names']]
for domain_name in set(data_in['domain_names'])]
return {
'rc': max([rc for rc, msg in data_out]),
'msg': [msg for rc, msg in data_out if msg],

View File

@ -146,13 +146,13 @@ class VBMCTestCase(base.TestCase):
with mock.patch.object(sys, 'stdout', six.StringIO()) as output:
rc = vbmc.main(['start', 'foo'])
rc = vbmc.main(['start', 'foo', 'bar'])
query = json.loads(mock_zmq_socket.send.call_args[0][0].decode())
expected_query = {
'command': 'start',
'domain_name': 'foo'
'domain_names': ['foo', 'bar']
}
self.assertEqual(expected_query, query)