Fix issue with snapshot name on error
In patching tests, when error happens identical snapshot names was used in case of error, so we can not revert all errored envs. Change-Id: I0d8bde7989f4bacaec728759b060bd53f9f17cf7
This commit is contained in:
parent
6b05280621
commit
342796c683
|
@ -53,16 +53,22 @@ def log_snapshot_on_error(func):
|
||||||
except SkipTest:
|
except SkipTest:
|
||||||
pass
|
pass
|
||||||
except Exception:
|
except Exception:
|
||||||
name = 'error_%s' % func.__name__
|
logger.info("args is {0}".format(args[0].snapshot))
|
||||||
description = "Failed in method '%s'." % func.__name__
|
if args and args[0].snapshot:
|
||||||
|
name = 'error_%s' % args[0].snapshot
|
||||||
|
description = "Failed in method '%s'." % args[0].snapshot
|
||||||
|
else:
|
||||||
|
name = 'error_%s' % func.__name__
|
||||||
|
description = "Failed in method '%s'." % func.__name__
|
||||||
if args[0].env is not None:
|
if args[0].env is not None:
|
||||||
try:
|
try:
|
||||||
create_diagnostic_snapshot(args[0].env,
|
create_diagnostic_snapshot(args[0].env,
|
||||||
"fail", func.__name__)
|
"fail", name)
|
||||||
except Exception:
|
except:
|
||||||
logger.error(traceback.format_exc())
|
logger.error(traceback.format_exc())
|
||||||
raise
|
raise
|
||||||
finally:
|
finally:
|
||||||
|
logger.debug(args)
|
||||||
args[0].env.make_snapshot(snapshot_name=name[-50:],
|
args[0].env.make_snapshot(snapshot_name=name[-50:],
|
||||||
description=description,
|
description=description,
|
||||||
is_make=True)
|
is_make=True)
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
update_templ = """Update os on {0}
|
||||||
|
|
||||||
|
Scenario:
|
||||||
|
1. Revert environment {1}
|
||||||
|
2. Upload tarball
|
||||||
|
3. Check that it uploaded
|
||||||
|
4. Extract data
|
||||||
|
5. Get available releases
|
||||||
|
6. Run update script
|
||||||
|
7. Check that new release appears
|
||||||
|
8. Put new release into cluster
|
||||||
|
9. Run cluster update
|
||||||
|
10. Run OSTF
|
||||||
|
11. Create snapshot
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
rollback_templ = """Rollback os on {0}
|
||||||
|
|
||||||
|
Scenario:
|
||||||
|
1. Revert patched environment {1}
|
||||||
|
2. Get release ids
|
||||||
|
2. Identify release id for rollback
|
||||||
|
3. Run rollback
|
||||||
|
4. Check that rollback was successful
|
||||||
|
5. Run OSTF
|
||||||
|
6. Create snapshot
|
||||||
|
|
||||||
|
"""
|
|
@ -1,5 +1,5 @@
|
||||||
def run_tests():
|
def run_tests():
|
||||||
from proboscis import TestProgram
|
from proboscis import TestProgram # noqa
|
||||||
|
|
||||||
from tests import test_admin_node # noqa
|
from tests import test_admin_node # noqa
|
||||||
from tests import test_ceph # noqa
|
from tests import test_ceph # noqa
|
||||||
|
@ -23,5 +23,6 @@ def run_tests():
|
||||||
# Run Proboscis and exit.
|
# Run Proboscis and exit.
|
||||||
TestProgram().run_and_exit()
|
TestProgram().run_and_exit()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
run_tests()
|
run_tests()
|
||||||
|
|
|
@ -30,15 +30,11 @@ class TestPatch(TestBasic):
|
||||||
def __init__(self, snapshot):
|
def __init__(self, snapshot):
|
||||||
super(TestPatch, self).__init__()
|
super(TestPatch, self).__init__()
|
||||||
self.snapshot = snapshot
|
self.snapshot = snapshot
|
||||||
self.deploy_and_patch.__func__.func_name = "{0}_and_patch".format(
|
|
||||||
self.snapshot)
|
|
||||||
self.deploy_and_rollback.__func__.func_name = "{0}_rollback".format(
|
|
||||||
self.snapshot)
|
|
||||||
|
|
||||||
@test
|
@test
|
||||||
@log_snapshot_on_error
|
@log_snapshot_on_error
|
||||||
def deploy_and_patch(self):
|
def deploy_and_patch(self):
|
||||||
"""Update os on reverted cluster
|
"""Update OS on reverted env
|
||||||
|
|
||||||
Scenario:
|
Scenario:
|
||||||
1. Revert environment
|
1. Revert environment
|
||||||
|
@ -46,7 +42,7 @@ class TestPatch(TestBasic):
|
||||||
3. Check that it uploaded
|
3. Check that it uploaded
|
||||||
4. Extract data
|
4. Extract data
|
||||||
5. Get available releases
|
5. Get available releases
|
||||||
6. Run update script
|
6. Run upgrade script
|
||||||
7. Check that new release appears
|
7. Check that new release appears
|
||||||
8. Put new release into cluster
|
8. Put new release into cluster
|
||||||
9. Run cluster update
|
9. Run cluster update
|
||||||
|
@ -54,9 +50,11 @@ class TestPatch(TestBasic):
|
||||||
11. Create snapshot
|
11. Create snapshot
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
logger.info("snapshot name is {0}".format(self.snapshot))
|
||||||
|
|
||||||
if not self.env.get_virtual_environment().has_snapshot(self.snapshot):
|
if not self.env.get_virtual_environment().has_snapshot(self.snapshot):
|
||||||
raise SkipTest()
|
logger.error('There is no shaphot found {0}'.format(self.snapshot))
|
||||||
|
raise SkipTest('Can not find snapshot {0}'.format(self.snapshot))
|
||||||
|
|
||||||
self.env.revert_snapshot(self.snapshot)
|
self.env.revert_snapshot(self.snapshot)
|
||||||
|
|
||||||
|
@ -167,22 +165,23 @@ class TestPatch(TestBasic):
|
||||||
@test(depends_on=[deploy_and_patch])
|
@test(depends_on=[deploy_and_patch])
|
||||||
@log_snapshot_on_error
|
@log_snapshot_on_error
|
||||||
def deploy_and_rollback(self):
|
def deploy_and_rollback(self):
|
||||||
"""Rollback os on reverted cluster
|
"""Rollback/Downgrade os on reverted env
|
||||||
|
|
||||||
Scenario:
|
Scenario:
|
||||||
1. Revert patched environment
|
1. Revert patched environment
|
||||||
2. Get release ids
|
2. Get release ids
|
||||||
2. Identify release id for rollback
|
2. Identify release id for rollback/downgrade
|
||||||
3. Run rollback
|
3. Run rollback/downgrade
|
||||||
4. Check that rollback was successful
|
4. Check that operation was successful
|
||||||
5. Run OSTF
|
5. Run OSTF
|
||||||
6. Create snapshot
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
logger.info("snapshot name is {0}".format(self.snapshot))
|
||||||
|
|
||||||
if not self.env.get_virtual_environment().has_snapshot(
|
if not self.env.get_virtual_environment().has_snapshot(
|
||||||
'{0}_and_patch'.format(self.snapshot)):
|
'{0}_and_patch'.format(self.snapshot)):
|
||||||
raise SkipTest()
|
raise SkipTest('Can not find snapshot {0}'.format(self.snapshot))
|
||||||
|
|
||||||
self.env.revert_snapshot('{0}_and_patch'.format(self.snapshot))
|
self.env.revert_snapshot('{0}_and_patch'.format(self.snapshot))
|
||||||
|
|
||||||
|
@ -243,8 +242,7 @@ class TestPatch(TestBasic):
|
||||||
|
|
||||||
self.fuel_web.run_ostf(cluster_id=cluster_id,)
|
self.fuel_web.run_ostf(cluster_id=cluster_id,)
|
||||||
|
|
||||||
self.env.make_snapshot('{0}_and_rollback'.format(self.snapshot),
|
self.env.make_snapshot('{0}_and_rollback'.format(self.snapshot))
|
||||||
is_make=True)
|
|
||||||
|
|
||||||
|
|
||||||
@factory
|
@factory
|
||||||
|
|
Loading…
Reference in New Issue