Fix scenario tests
- Add tests to assert data survives instance actions such as restart, resize and upgrade. - Run configuarion update tests before creating new instance with config group attached. Updating a config group on an instance in BUILD state results in an exception in API because the new values cannot be applied to a building instance. * This is something we may want to handle in Trove itself. It is not entirely clear to me how. Once the config values are in prepare we cannot change them until the instance goes ACTIVE. A similar issue also apperently affects other Trove functions such as modules. Throwing the exception and letting the taskmanager retry is probably the safest way for now. Change-Id: Ib19071af23f99b77eec9613157cfa11f00f53078
This commit is contained in:
parent
8b7e6e6a79
commit
e23928bf7e
|
@ -212,14 +212,8 @@ class ConfigurationInstCreateGroup(TestGroup):
|
|||
"""Ensure deleting attached non-dynamic group fails."""
|
||||
self.test_runner.run_delete_attached_non_dynamic_group()
|
||||
|
||||
@test(runs_after=[list_dynamic_inst_conf_groups_after,
|
||||
list_non_dynamic_inst_conf_groups_after])
|
||||
def create_instance_with_conf(self):
|
||||
"""Test create instance with conf group."""
|
||||
self.test_runner.run_create_instance_with_conf()
|
||||
|
||||
@test(depends_on=[attach_non_dynamic_group],
|
||||
runs_after=[create_instance_with_conf])
|
||||
runs_after=[delete_attached_non_dynamic_group])
|
||||
def update_non_dynamic_group(self):
|
||||
"""Test update non-dynamic group."""
|
||||
self.test_runner.run_update_non_dynamic_group()
|
||||
|
@ -230,6 +224,11 @@ class ConfigurationInstCreateGroup(TestGroup):
|
|||
"""Test detach non-dynamic group."""
|
||||
self.test_runner.run_detach_non_dynamic_group()
|
||||
|
||||
@test(runs_after=[detach_non_dynamic_group])
|
||||
def create_instance_with_conf(self):
|
||||
"""Test create instance with conf group."""
|
||||
self.test_runner.run_create_instance_with_conf()
|
||||
|
||||
|
||||
@test(depends_on_groups=[groups.CFGGRP_INST_CREATE],
|
||||
groups=[GROUP, groups.CFGGRP_INST,
|
||||
|
|
|
@ -41,15 +41,42 @@ class InstanceActionsGroup(TestGroup):
|
|||
InstanceActionsRunnerFactory.instance())
|
||||
|
||||
@test
|
||||
def add_test_data(self):
|
||||
"""Add test data."""
|
||||
self.test_runner.run_add_test_data()
|
||||
|
||||
@test(depends_on=[add_test_data])
|
||||
def verify_test_data(self):
|
||||
"""Verify test data."""
|
||||
self.test_runner.run_verify_test_data()
|
||||
|
||||
@test(runs_after=[verify_test_data])
|
||||
def instance_restart(self):
|
||||
"""Restart an existing instance."""
|
||||
self.test_runner.run_instance_restart()
|
||||
|
||||
@test(depends_on=[instance_restart])
|
||||
@test(depends_on=[verify_test_data, instance_restart])
|
||||
def verify_test_data_after_restart(self):
|
||||
"""Verify test data after restart."""
|
||||
self.test_runner.run_verify_test_data()
|
||||
|
||||
@test(depends_on=[instance_restart],
|
||||
runs_after=[verify_test_data_after_restart])
|
||||
def instance_resize_volume(self):
|
||||
"""Resize attached volume."""
|
||||
self.test_runner.run_instance_resize_volume()
|
||||
|
||||
@test(depends_on=[verify_test_data, instance_resize_volume])
|
||||
def verify_test_data_after_volume_resize(self):
|
||||
"""Verify test data after volume resize."""
|
||||
self.test_runner.run_verify_test_data()
|
||||
|
||||
@test(depends_on=[add_test_data],
|
||||
runs_after=[verify_test_data_after_volume_resize])
|
||||
def remove_test_data(self):
|
||||
"""Remove test data."""
|
||||
self.test_runner.run_remove_test_data()
|
||||
|
||||
|
||||
@test(depends_on_groups=[groups.INST_CREATE_WAIT],
|
||||
groups=[GROUP, groups.INST_ACTIONS_RESIZE],
|
||||
|
@ -67,6 +94,16 @@ class InstanceActionsResizeGroup(TestGroup):
|
|||
InstanceActionsRunnerFactory.instance())
|
||||
|
||||
@test
|
||||
def add_test_data(self):
|
||||
"""Add test data."""
|
||||
self.test_runner.run_add_test_data()
|
||||
|
||||
@test(depends_on=[add_test_data])
|
||||
def verify_test_data(self):
|
||||
"""Verify test data."""
|
||||
self.test_runner.run_verify_test_data()
|
||||
|
||||
@test(runs_after=[verify_test_data])
|
||||
def instance_resize_flavor(self):
|
||||
"""Resize instance flavor."""
|
||||
self.test_runner.run_instance_resize_flavor()
|
||||
|
@ -88,3 +125,13 @@ class InstanceActionsResizeWaitGroup(TestGroup):
|
|||
def wait_for_instance_resize_flavor(self):
|
||||
"""Wait for resize instance flavor to complete."""
|
||||
self.test_runner.run_wait_for_instance_resize_flavor()
|
||||
|
||||
@test(depends_on=[wait_for_instance_resize_flavor])
|
||||
def verify_test_data_after_flavor_resize(self):
|
||||
"""Verify test data after flavor resize."""
|
||||
self.test_runner.run_verify_test_data()
|
||||
|
||||
@test(runs_after=[verify_test_data_after_flavor_resize])
|
||||
def remove_test_data(self):
|
||||
"""Remove test data."""
|
||||
self.test_runner.run_remove_test_data()
|
||||
|
|
|
@ -65,6 +65,16 @@ class InstanceUpgradeGroup(TestGroup):
|
|||
self.user_actions_runner.run_users_create()
|
||||
|
||||
@test(runs_after=[create_users])
|
||||
def add_test_data(self):
|
||||
"""Add test data."""
|
||||
self.test_runner.run_add_test_data()
|
||||
|
||||
@test(depends_on=[add_test_data])
|
||||
def verify_test_data(self):
|
||||
"""Verify test data."""
|
||||
self.test_runner.run_verify_test_data()
|
||||
|
||||
@test(runs_after=[verify_test_data])
|
||||
def instance_upgrade(self):
|
||||
"""Upgrade an existing instance."""
|
||||
self.test_runner.run_instance_upgrade()
|
||||
|
@ -80,6 +90,17 @@ class InstanceUpgradeGroup(TestGroup):
|
|||
"""List the created users."""
|
||||
self.user_actions_runner.run_users_list()
|
||||
|
||||
@test(depends_on=[verify_test_data, instance_upgrade])
|
||||
def verify_test_data_after_upgrade(self):
|
||||
"""Verify test data after upgrade."""
|
||||
self.test_runner.run_verify_test_data()
|
||||
|
||||
@test(depends_on=[add_test_data],
|
||||
runs_after=[verify_test_data_after_upgrade])
|
||||
def remove_test_data(self):
|
||||
"""Remove test data."""
|
||||
self.test_runner.run_remove_test_data()
|
||||
|
||||
@test(depends_on=[create_users],
|
||||
runs_after=[list_users])
|
||||
def delete_user(self):
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
from proboscis import SkipTest
|
||||
|
||||
from trove.tests.config import CONFIG
|
||||
from trove.tests.scenario.helpers.test_helper import DataType
|
||||
from trove.tests.scenario.runners.test_runners import TestRunner
|
||||
|
||||
|
||||
|
@ -36,6 +37,18 @@ class InstanceActionsRunner(TestRunner):
|
|||
|
||||
return self.get_flavor(flavor_name)
|
||||
|
||||
def run_add_test_data(self):
|
||||
host = self.get_instance_host(self.instance_info.id)
|
||||
self.test_helper.add_data(DataType.small, host)
|
||||
|
||||
def run_verify_test_data(self):
|
||||
host = self.get_instance_host(self.instance_info.id)
|
||||
self.test_helper.verify_data(DataType.small, host)
|
||||
|
||||
def run_remove_test_data(self):
|
||||
host = self.get_instance_host(self.instance_info.id)
|
||||
self.test_helper.remove_data(DataType.small, host)
|
||||
|
||||
def run_instance_restart(
|
||||
self, expected_states=['REBOOT', 'ACTIVE'],
|
||||
expected_http_code=202):
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from trove.tests.scenario.helpers.test_helper import DataType
|
||||
from trove.tests.scenario.runners.test_runners import TestRunner
|
||||
|
||||
|
||||
|
@ -21,6 +22,18 @@ class InstanceUpgradeRunner(TestRunner):
|
|||
def __init__(self):
|
||||
super(InstanceUpgradeRunner, self).__init__()
|
||||
|
||||
def run_add_test_data(self):
|
||||
host = self.get_instance_host(self.instance_info.id)
|
||||
self.test_helper.add_data(DataType.small, host)
|
||||
|
||||
def run_verify_test_data(self):
|
||||
host = self.get_instance_host(self.instance_info.id)
|
||||
self.test_helper.verify_data(DataType.small, host)
|
||||
|
||||
def run_remove_test_data(self):
|
||||
host = self.get_instance_host(self.instance_info.id)
|
||||
self.test_helper.remove_data(DataType.small, host)
|
||||
|
||||
def run_instance_upgrade(
|
||||
self, expected_states=['UPGRADE', 'ACTIVE'],
|
||||
expected_http_code=202):
|
||||
|
|
Loading…
Reference in New Issue