Do not resume environment after revert

Change-Id: I3615b75195e97f74c2e8f660a6602e7b2211c1f3
This commit is contained in:
Artem Panchenko 2017-06-15 17:14:57 +03:00
parent 3cb41214b5
commit d8067269ba
2 changed files with 32 additions and 15 deletions

View File

@ -95,7 +95,7 @@ class Shell(object):
self.env.resume()
def do_revert(self):
self.env.revert(self.params.snapshot_name, flag=False)
self.env.revert(self.params.snapshot_name, flag=False, resume=False)
def do_snapshot(self):
self.env.snapshot(self.params.snapshot_name)
@ -190,9 +190,8 @@ class Shell(object):
print("New time on '{0}' = {1}".format(name, new_time[name]))
def do_revert_resume(self):
self.env.revert(self.params.snapshot_name, flag=False)
self.env.resume()
if not self.params.no_timesync:
self.env.revert(self.params.snapshot_name, flag=False, resume=True)
if self.params.timesync:
print('Time synchronization is starting')
self.do_time_sync()
@ -310,11 +309,11 @@ class Shell(object):
node_name_parser.add_argument('--node-name', '-N',
help='node name',
default=None)
no_timesync_parser = argparse.ArgumentParser(add_help=False)
no_timesync_parser.add_argument('--no-timesync', dest='no_timesync',
action='store_const', const=True,
help='revert without timesync',
default=False)
timesync_parser = argparse.ArgumentParser(add_help=False)
timesync_parser.add_argument('--timesync', dest='timesync',
action='store_const', const=True,
help='revert with timesync',
default=False)
list_ips_parser = argparse.ArgumentParser(add_help=False)
list_ips_parser.add_argument('--ips', dest='list_ips',
@ -493,11 +492,13 @@ class Shell(object):
"admin")
subparsers.add_parser('revert-resume',
parents=[name_parser, snapshot_name_parser,
node_name_parser, no_timesync_parser],
node_name_parser, timesync_parser],
help="Revert, resume, sync time on VMs",
description="Revert and resume VMs in selected"
"environment, then"
" sync time on VMs")
"environment, then optionally sync "
"time on VMs (by default time is "
"not synced, additional '--timesync'"
" flag is required)")
subparsers.add_parser('version',
help="Show devops version")
subparsers.add_parser('create',

View File

@ -307,7 +307,7 @@ class TestShell(unittest.TestCase):
self.client_inst.get_env.assert_called_once_with('env1')
self.env_mocks['env1'].revert.assert_called_once_with(
'snap1', flag=False)
'snap1', flag=False, resume=False)
def test_snapshot(self):
sh = shell.Shell(['snapshot', 'env1', 'snap1'])
@ -466,8 +466,24 @@ class TestShell(unittest.TestCase):
self.client_inst.get_env.assert_called_once_with('env1')
self.env_mocks['env1'].revert.assert_called_once_with(
'snap1', flag=False)
self.env_mocks['env1'].resume.assert_called_once_with()
'snap1', flag=False, resume=True)
def test_revert_resume_with_time_sync(self):
self.env_mocks['env1'].get_curr_time.return_value = {
'node1': 'Thu May 12 18:26:34 MSK 2016',
'node2': 'Thu May 12 18:13:44 MSK 2016',
}
self.env_mocks['env1'].sync_time.return_value = {
'node1': 'Thu May 12 19:00:00 MSK 2016',
'node2': 'Thu May 12 19:00:00 MSK 2016',
}
sh = shell.Shell(['revert-resume', '--timesync', 'env1', 'snap1'])
sh.execute()
self.client_inst.get_env.assert_called_once_with('env1')
self.env_mocks['env1'].revert.assert_called_once_with(
'snap1', flag=False, resume=True)
self.env_mocks['env1'].get_curr_time.assert_called_once_with(None)
self.env_mocks['env1'].sync_time.assert_called_once_with(None)