From d82fee7e9e19b410edd13f8d9474fe5a85478e90 Mon Sep 17 00:00:00 2001 From: Dmitriy Kruglov Date: Mon, 25 Apr 2016 09:17:18 +0000 Subject: [PATCH] Add tests for tasks ensurability Change-Id: I102ff02542ede7ebf7de86b22aa8964b50a9eb60 Implements: blueprint test-granular-task-ensurability --- doc/base_tests.rst | 5 + fuelweb_test/models/fuel_web_client.py | 44 ++ fuelweb_test/models/nailgun_client.py | 19 +- fuelweb_test/tests/tests_lcm/base_lcm_test.py | 276 +++++++++-- .../1_ctrl_1_cmp_1_cinder/cinder.yaml | 4 +- .../1_ctrl_1_cmp_1_cinder/compute.yaml | 4 +- .../1_ctrl_1_cmp_1_cinder/controller.yaml | 4 +- .../ensurability/cinder.yaml | 63 +++ .../ensurability/cluster_settings.yaml | 427 ++++++++++++++++++ .../ensurability/compute.yaml | 89 ++++ .../ensurability/controller.yaml | 326 +++++++++++++ .../ensurability/nodes_settings.yaml | 51 +++ .../1_ctrl_1_cmp_1_mongo/compute.yaml | 4 +- .../1_ctrl_1_cmp_1_mongo/controller.yaml | 4 +- .../ensurability/cluster_settings.yaml | 427 ++++++++++++++++++ .../ensurability/compute.yaml | 89 ++++ .../ensurability/controller.yaml | 336 ++++++++++++++ .../ensurability/mongo.yaml | 60 +++ .../ensurability/nodes_settings.yaml | 51 +++ .../fixtures/1_ctrl_1_cmp_1_mongo/mongo.yaml | 4 +- .../1_ctrl_1_cmp_3_ceph/ceph-osd.yaml | 4 +- .../fixtures/1_ctrl_1_cmp_3_ceph/compute.yaml | 4 +- .../1_ctrl_1_cmp_3_ceph/controller.yaml | 4 +- .../ensurability/ceph-osd.yaml | 62 +++ .../ensurability/cluster_settings.yaml | 427 ++++++++++++++++++ .../ensurability/compute.yaml | 89 ++++ .../ensurability/controller.yaml | 410 +++++++++++++++++ .../ensurability/nodes_settings.yaml | 51 +++ .../tests/tests_lcm/test_ensurability.py | 324 +++++++++++++ .../tests/tests_lcm/test_idempotency.py | 3 +- 30 files changed, 3600 insertions(+), 65 deletions(-) create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/cinder.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/cluster_settings.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/compute.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/controller.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/nodes_settings.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/cluster_settings.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/compute.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/controller.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/mongo.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/nodes_settings.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/ceph-osd.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/cluster_settings.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/compute.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/controller.yaml create mode 100644 fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/nodes_settings.yaml create mode 100644 fuelweb_test/tests/tests_lcm/test_ensurability.py diff --git a/doc/base_tests.rst b/doc/base_tests.rst index fadd324b2..ebe6c113c 100644 --- a/doc/base_tests.rst +++ b/doc/base_tests.rst @@ -361,6 +361,11 @@ Test task idempotency .. automodule:: fuelweb_test.tests.tests_lcm.test_idempotency :members: +Test task ensurability +---------------------- +.. automodule:: fuelweb_test.tests.tests_lcm.test_ensurability + :members: + Gating tests ============ diff --git a/fuelweb_test/models/fuel_web_client.py b/fuelweb_test/models/fuel_web_client.py index 2ffb20b29..356693b7e 100644 --- a/fuelweb_test/models/fuel_web_client.py +++ b/fuelweb_test/models/fuel_web_client.py @@ -2777,6 +2777,50 @@ class FuelWebClient29(object): self.assert_task_success(latest_task, interval=interval, timeout=timeout) + def deploy_cluster_changes_wait( + self, cluster_id, data=None, + timeout=help_data.DEPLOYMENT_TIMEOUT, + interval=30): + """Redeploy cluster to apply changes in its settings + + :param cluster_id: int, env ID to apply changes for + :param data: dict, changed env settings + :param timeout: int, time (in seconds) to wait for deployment end + :param interval: int, time (in seconds) between deployment + status queries + :return: + """ + logger.info('Re-deploy cluster {} to apply the changed ' + 'settings'.format(cluster_id)) + if data is None: + data = {} + task = self.client.redeploy_cluster_changes(cluster_id, data) + self.assert_task_success(task, interval=interval, timeout=timeout) + + def execute_task_on_node(self, task_name, node_id, + cluster_id, force_exc=False): + """Execute deployment task against the corresponding node + + :param task_name: str, name of a task to execute + :param node_id: int, node ID to execute task on + :param cluster_id: int, cluster ID + :param force_exc: bool, indication whether exceptions on task + execution are ignored + :return: None + """ + try: + logger.info("Trying to execute {!r} task on node {!r}" + .format(task_name, node_id)) + task = self.client.put_deployment_tasks_for_cluster( + cluster_id=cluster_id, + data=[task_name], + node_id=node_id) + self.assert_task_success(task, timeout=30 * 60) + except (AssertionError, TimeoutError): + logger.exception("Failed to run task {!r}".format(task_name)) + if force_exc: + raise + class FuelWebClient30(FuelWebClient29): """FuelWebClient that works with fuel-devops 3.0 diff --git a/fuelweb_test/models/nailgun_client.py b/fuelweb_test/models/nailgun_client.py index e435e7bd8..b2529c23e 100644 --- a/fuelweb_test/models/nailgun_client.py +++ b/fuelweb_test/models/nailgun_client.py @@ -675,7 +675,7 @@ class NailgunClient(object): :param node_id: an integer number of node id. :return: a decoded JSON response. """ - url = '/api/v1/nodes/{}/attributes/'.format(node_id) + url = '/api/nodes/{}/attributes/'.format(node_id) return self.client.put(url, data=attributes) @logwrap @@ -686,7 +686,7 @@ class NailgunClient(object): :param node_id: an integer number of node id. :return: a decoded JSON response. """ - url = '/api/v1/nodes/{}/attributes/'.format(node_id) + url = '/api/nodes/{}/attributes/'.format(node_id) return self.client.get(url) @logwrap @@ -701,3 +701,18 @@ class NailgunClient(object): url = '/api/transactions/{task_id}/deployment_history'.format( task_id=task_id) return self.client.get(url) + + @logwrap + @json_parse + def redeploy_cluster_changes(self, cluster_id, data=None): + """Deploy the changes of cluster settings + + :param cluster_id: int, target cluster ID + :param data: dict, updated cluster attributes (if empty, the already + uploaded attributes will be (re)applied) + :return: a decoded JSON response + """ + if data is None: + data = {} + return self.client.put( + "/api/clusters/{}/changes/redeploy".format(cluster_id), data) diff --git a/fuelweb_test/tests/tests_lcm/base_lcm_test.py b/fuelweb_test/tests/tests_lcm/base_lcm_test.py index 2a0dccae4..87b400c54 100644 --- a/fuelweb_test/tests/tests_lcm/base_lcm_test.py +++ b/fuelweb_test/tests/tests_lcm/base_lcm_test.py @@ -15,7 +15,6 @@ import fileinput import os -from devops.helpers.helpers import TimeoutError from proboscis import asserts from proboscis import test import yaml @@ -45,13 +44,18 @@ TASKS_BLACKLIST = [ "reboot_provisioned_nodes", "hiera", "configure_default_route", - "netconfig"] + "netconfig", + "upload_provision_data"] + +SETTINGS_SKIPLIST = ( + "dns_list", + "ntp_list", + "repo_setup" +) class DeprecatedFixture(Exception): - def __init__(self): - msg = ('Please update fixtires in the fuel-qa repo with ' - 'according to generated fixtures') + def __init__(self, msg): super(DeprecatedFixture, self).__init__(msg) @@ -63,6 +67,15 @@ class LCMTestBasic(TestBasic): yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object) yaml.add_constructor(u"!ruby/sym", construct_ruby_sym) + @staticmethod + def node_roles(node): + """Compose a string that represents all roles assigned to given node + + :param node: dict, node data + :return: str + """ + return "_".join(sorted(node["roles"])) + # FIXME: after implementation of the main functional of PROD-2510 @staticmethod def get_nodes_tasks(node_id): @@ -129,16 +142,19 @@ class LCMTestBasic(TestBasic): return data @staticmethod - def load_fixture(deployment_type, role): + def load_fixture(deployment_type, role, idmp=True): """Load fixture for corresponding kind of deployment :param deployment_type: a string, name of the deployment kind :param role: a string, node role + :param idmp: bool, indicates whether idempotency or ensurability + fixture is loaded :return: a dictionary with loaded fixture data """ + subdir = "" if idmp else "ensurability" fixture_path = os.path.join( os.path.dirname(__file__), "fixtures", - deployment_type, "{}.yaml".format(role)) + deployment_type, subdir, "{}.yaml".format(role)) with open(fixture_path) as f: fixture = yaml.load(f) @@ -194,12 +210,14 @@ class LCMTestBasic(TestBasic): return extra_actual_tasks, extra_fixture_tasks, wrong_types - def check_extra_tasks(self, slave_nodes, deployment): + def check_extra_tasks(self, slave_nodes, deployment, idmp=True): """Check existing extra tasks regarding to fixture and actual task or tasks with a wrong type :param slave_nodes: a list of nailgun nodes :param deployment: a string, name of the deployment kind + :param idmp: bool, indicates whether idempotency or ensurability + fixture is checked :return: a list with nodes for which extra tasks regarding to fixture and actual task or tasks with a wrong type were found """ @@ -208,9 +226,9 @@ class LCMTestBasic(TestBasic): 'wrong_types': {}, 'failed_tasks': {}} for node in slave_nodes: - node_roles = "_".join(sorted(node["roles"])) + node_roles = self.node_roles(node) node_ref = "{}_{}".format(node["id"], node_roles) - fixture = self.load_fixture(deployment, node_roles) + fixture = self.load_fixture(deployment, node_roles, idmp) node_tasks = self.get_nodes_tasks(node["id"]) extra_actual_tasks, extra_fixture_tasks, wrong_types = \ self.get_fixture_relevance(node_tasks, fixture) @@ -230,26 +248,6 @@ class LCMTestBasic(TestBasic): if failed_tasks] return failed_nodes - def execute_task_on_node(self, task, node, cluster_id): - """Execute deployment task against the corresponding node - - :param task: a string of task name - :param node: a dictionary with node description - :param cluster_id: an integer, number of cluster id - :return: None - """ - try: - logger.info("Trying to execute {!r} task on node {!r}" - .format(task, node['id'])) - tsk = self.fuel_web.client.put_deployment_tasks_for_cluster( - cluster_id=cluster_id, - data=[task], - node_id=node['id']) - self.fuel_web.assert_task_success(tsk, timeout=30 * 60) - except (AssertionError, TimeoutError) as e: - logger.exception("Failed to run task {!r}\n" - "Exception:\n{}".format(task, e)) - def generate_fixture(self, node_refs, cluster_id, slave_nodes): """Generate fixture with description of task idempotency @@ -260,7 +258,7 @@ class LCMTestBasic(TestBasic): """ result = {} for node in slave_nodes: - node_roles = "_".join(sorted(node["roles"])) + node_roles = self.node_roles(node) node_ref = "{}_{}".format(node["id"], node_roles) if node_ref not in node_refs: logger.debug('Node {!r} was skipped because the current ' @@ -279,7 +277,8 @@ class LCMTestBasic(TestBasic): tasks.append({task: {"type": task_type}}) continue - self.execute_task_on_node(task, node, cluster_id) + self.fuel_web.execute_task_on_node(task, node["id"], + cluster_id) try: report = self.get_puppet_report(node) @@ -327,6 +326,207 @@ class LCMTestBasic(TestBasic): logger.info("Generated fixture:\n{}" .format(yaml.dump(result, default_flow_style=False))) + @staticmethod + def _parse_settings(settings): + """Select only values and their types from settings + + :param settings: dict, (env or node) settings + :return: dict, settings in short format + """ + parsed = {} + for group in settings: + if group in SETTINGS_SKIPLIST: + continue + parsed[group] = {} + for attr, params in settings[group].items(): + if attr in SETTINGS_SKIPLIST: + continue + try: + parsed[group][attr] = { + 'value': params['value'], + 'type': params['type'] + } + except KeyError: + logger.debug("Do not include {} setting as it doesn't " + "have value".format(params['label'])) + if not parsed[group]: + logger.debug("Do not include {} group as it doesn't have " + "settings with values".format(group)) + del parsed[group] + return parsed + + @staticmethod + def _get_settings_difference(settings1, settings2): + """Select values and/or groups of set1 that are not present in set2 + + :param settings1: dict, group of dicts + :param settings2: dict, group of dicts + :return: dict, set1 items not present in set2 + """ + diff = {} + new_groups = set(settings1) - set(settings2) + if new_groups: + diff.update([(g, settings1[g]) for g in new_groups]) + for group in settings1: + if group in new_groups: + continue + new_params = set(settings1[group]) - set(settings2[group]) + if new_params: + diff[group] = {} + diff[group].update( + [(s, settings1[group][s]) for s in new_params]) + return diff + + def _cmp_settings(self, settings, fixtures): + """Compare current and stored settings + + Return values and/or groups of settings that are new, comparing to + what is stored in fixtures. + Return values and/or groups of settings in fixtures that are outdated, + comparing to what is available in the cluster under test. + + :param settings: dict, current settings in short format + :param fixtures: dict, stored settings in short format + :return: tuple, (new settings, outdated settings) pair + """ + new_s = self._get_settings_difference(settings, fixtures) + outdated_f = self._get_settings_difference(fixtures, settings) + return new_s, outdated_f + + def get_cluster_settings(self, cluster_id): + """Get cluster settings and return them in short format + + :param cluster_id: int, ID of the cluster under test + :return: dict, cluster settings in short format + """ + settings = self.fuel_web.client.get_cluster_attributes( + cluster_id)['editable'] + return self._parse_settings(settings) + + def get_nodes_settings(self, cluster_id): + """Get node settings and return them in short format + + :param cluster_id: int, ID of the cluster under test + :return: dict, node settings in short format + """ + nodes = self.fuel_web.client.list_cluster_nodes(cluster_id) + + node_settings = {} + for node in nodes: + node_attrs = self.fuel_web.client.get_node_attributes(node['id']) + roles = self.node_roles(node) + node_settings[roles] = self._parse_settings(node_attrs) + return node_settings + + @staticmethod + def load_settings_fixtures(deployment): + """Load stored settings for the given cluster configuration + + :param deployment: str, name of cluster configuration + (e.g. 1_ctrl_1_cmp_1_cinder) + :return: tuple, (cluster, nodes) pair of stored settings + """ + f_path = os.path.join(os.path.dirname(__file__), "fixtures", + deployment, "ensurability", "{}") + + with open(f_path.format("cluster_settings.yaml")) as f: + cluster_fixture = yaml.load(f) + with open(f_path.format("nodes_settings.yaml")) as f: + nodes_fixture = yaml.load(f) + + return cluster_fixture, nodes_fixture + + def check_cluster_settings_consistency(self, settings, fixtures): + """Check if stored cluster settings require update + + :param settings: dict, settings of the cluster under test + :param fixtures: dict, stored cluster settings + :return: tuple, (new settings, outdated settings) pair; this indicates + whether fixtures require update + """ + return self._cmp_settings(settings, fixtures) + + def check_nodes_settings_consistency(self, settings, fixtures): + """Check if stored node settings require update + + :param settings: dict, node settings of the cluster under test + :param fixtures: dict, stored node settings + :return: tuple, (new settings, outdated settings) pair; this indicates + whether fixtures require update + """ + new_settings = {} + outdated_fixtures = {} + for node in fixtures: + new_s, outdated_f = self._cmp_settings( + settings[node], fixtures[node]) + if new_s: + new_settings[node] = new_s + if outdated_f: + outdated_fixtures[node] = outdated_f + return new_settings, outdated_fixtures + + def check_settings_consistency(self, deployment, cluster_id): + """Check if settings fixtures are up to date. + + :param cluster_id: int, env under test + :param deployment: str, name of env configuration under test + :return: None + """ + cluster_f, nodes_f = self.load_settings_fixtures(deployment) + cluster_s = self.get_cluster_settings(cluster_id) + nodes_s = self.get_nodes_settings(cluster_id) + + consistency = {} + new_cluster_s, old_cluster_f = \ + self.check_cluster_settings_consistency(cluster_s, cluster_f) + new_nodes_s, old_nodes_f = \ + self.check_nodes_settings_consistency(nodes_s, nodes_f) + + consistency["fixtures"] = { + 'old_cluster_fixtures': old_cluster_f, + 'old_nodes_fixtures': old_nodes_f + } + consistency["settings"] = { + 'new_cluster_settings': new_cluster_s, + 'new_nodes_settings': new_nodes_s + } + + nonconsistent = False + if new_cluster_s or new_nodes_s.values(): + logger.info( + "Settings fixtures require update as new options are " + "available now for configuring an environment\n{}".format( + yaml.safe_dump(consistency["settings"], + default_flow_style=False)) + ) + nonconsistent = True + if old_cluster_f or old_nodes_f.values(): + logger.info( + "Settings fixtures require update as some options are no " + "longer available for configuring an environment\n{}".format( + yaml.safe_dump(consistency["fixtures"], + default_flow_style=False)) + ) + nonconsistent = True + if nonconsistent: + self.generate_settings_fixture(cluster_id) + msg = ('Please update setting fixtures in the repo ' + 'according to generated data') + raise DeprecatedFixture(msg) + + def generate_settings_fixture(self, cluster_id): + """Get environment and nodes settings, and print them to console. + + :return: None + """ + cluster_s = self.get_cluster_settings(cluster_id) + nodes_s = self.get_nodes_settings(cluster_id) + + logger.info("Generated environment settings fixture:\n{}".format( + yaml.safe_dump(cluster_s, default_flow_style=False))) + logger.info("Generated nodes settings fixture:\n{}".format( + yaml.safe_dump(nodes_s, default_flow_style=False))) + @test(groups=['deploy_lcm_environment']) class SetupLCMEnvironment(LCMTestBasic): @@ -384,7 +584,9 @@ class SetupLCMEnvironment(LCMTestBasic): if node_refs: self.show_step(8) self.generate_fixture(node_refs, cluster_id, slave_nodes) - raise DeprecatedFixture + msg = ('Please update idempotency fixtures in the repo ' + 'according to generated fixtures') + raise DeprecatedFixture(msg) self.env.make_snapshot(snapshotname, is_make=True) @test(depends_on=[SetupEnvironment.prepare_slaves_3], @@ -442,7 +644,9 @@ class SetupLCMEnvironment(LCMTestBasic): if node_refs: self.show_step(8) self.generate_fixture(node_refs, cluster_id, slave_nodes) - raise DeprecatedFixture + msg = ('Please update idempotency fixtures in the repo ' + 'according to generated fixtures') + raise DeprecatedFixture(msg) self.env.make_snapshot(snapshotname, is_make=True) @test(depends_on=[SetupEnvironment.prepare_slaves_5], @@ -505,5 +709,7 @@ class SetupLCMEnvironment(LCMTestBasic): if node_refs: self.show_step(8) self.generate_fixture(node_refs, cluster_id, slave_nodes) - raise DeprecatedFixture + msg = ('Please update idempotency fixtures in the repo ' + 'according to generated fixtures') + raise DeprecatedFixture(msg) self.env.make_snapshot(snapshotname, is_make=True) diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/cinder.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/cinder.yaml index 0b2df0f9c..e2cdfeb92 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/cinder.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/cinder.yaml @@ -3,7 +3,7 @@ roles: tasks: - update_hosts: null - clear_nodes_info: - type: shell + type: skipped - copy_keys_ceph: type: copy_files - globals: null @@ -22,8 +22,6 @@ tasks: - dns-client: null - allocate_hugepages: null - plugins_setup_repositories: null - - upload_provision_data: - type: false - ssl-keys-saving: null - upload_configuration: type: upload_file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/compute.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/compute.yaml index 8ea99f52d..e715e90a0 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/compute.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/compute.yaml @@ -6,7 +6,7 @@ tasks: type: skipped - openstack-network-common-config: null - clear_nodes_info: - type: shell + type: skipped - openstack-network-agents-sriov: null - copy_keys_ceph: type: copy_files @@ -29,8 +29,6 @@ tasks: - openstack-network-plugins-l2: null - allocate_hugepages: null - plugins_setup_repositories: null - - upload_provision_data: - type: false - ceph-compute: no_puppet_run: true - ssl-keys-saving: null diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/controller.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/controller.yaml index 699eef7b2..ed396b18a 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/controller.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/controller.yaml @@ -137,7 +137,7 @@ tasks: - openstack-network-start: type: skipped - clear_nodes_info: - type: shell + type: skipped - murano-db: no_puppet_run: true - copy_keys_ceph: @@ -157,8 +157,6 @@ tasks: - enable_quorum: type: shell - openstack-haproxy-nova: null - - upload_provision_data: - type: false - openstack-network-server-config: null - primary-database: skip: diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/cinder.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/cinder.yaml new file mode 100644 index 000000000..962e8b95d --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/cinder.yaml @@ -0,0 +1,63 @@ +tasks: +- update_hosts: + resources: [] +- clear_nodes_info: + type: skipped +- copy_keys_ceph: + type: copy_files +- globals: + resources: [] +- fuel_pkgs: + resources: [] +- tools: + resources: [] +- enable_cinder_volume_service: + resources: [] +- rsync_core_puppet: + type: sync +- cgroups: + resources: [] +- upload_nodes_info: + type: skipped +- copy_keys: + type: copy_files +- override_configuration: + resources: [] +- setup_repositories: + resources: [] +- dns-client: + resources: [] +- allocate_hugepages: + resources: [] +- plugins_setup_repositories: + no_puppet_run: true +- ssl-keys-saving: + no_puppet_run: true +- upload_configuration: + type: upload_file +- firewall: + resources: [] +- top-role-cinder: + resources: + - Service[cinder-volume] +- logging: + resources: [] +- sync_time: + type: shell +- plugins_rsync: + resources: + - Exec[sync_time_shell] +- connectivity_tests: + resources: [] +- configuration_symlink: + type: shell +- hosts: + resources: [] +- copy_haproxy_keys: + type: copy_files +- ntp-client: + resources: [] +- ssl-add-trust-chain: + no_puppet_run: true +- reserved_ports: + resources: [] \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/cluster_settings.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/cluster_settings.yaml new file mode 100644 index 000000000..9ee7735a7 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/cluster_settings.yaml @@ -0,0 +1,427 @@ +access: + email: + type: text + value: admin_upd@localhost + password: + type: password + value: admin + tenant: + type: text + value: admin + user: + type: text + value: admin +additional_components: + ceilometer: + type: checkbox + value: false + heat: + type: hidden + value: false + ironic: + type: checkbox + value: false + mongo: + type: checkbox + value: false + murano: + type: checkbox + value: false + murano-cfapi: + type: checkbox + value: false + murano_glance_artifacts_plugin: + type: checkbox + value: false + sahara: + type: checkbox + value: false +common: + auth_key: + type: hidden + value: '' + auto_assign_floating_ip: + type: checkbox + value: true + debug: + type: checkbox + value: false + libvirt_type: + type: radio + value: qemu + nova_quota: + type: checkbox + value: true + propagate_task_deploy: + type: hidden + value: false + puppet_debug: + type: checkbox + value: false + resume_guests_state_on_host_boot: + type: checkbox + value: false + task_deploy: + type: hidden + value: true + use_cow_images: + type: checkbox + value: true + use_vcenter: + type: hidden + value: false +corosync: + group: + type: text + value: 226.94.1.1 + port: + type: text + value: '12000' + verified: + type: checkbox + value: false +external_mongo: + hosts_ip: + type: text + value: '' + mongo_db_name: + type: text + value: ceilometer + mongo_password: + type: password + value: ceilometer + mongo_replset: + type: text + value: '' + mongo_user: + type: text + value: ceilometer +kernel_params: + kernel: + type: text + value: console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90 nomodeset +murano_settings: + murano_repo_url: + type: text + value: http://storage.apps.openstack.org/ +neutron_advanced_configuration: + neutron_dvr: + type: checkbox + value: false + neutron_l2_pop: + type: checkbox + value: false + neutron_l3_ha: + type: checkbox + value: false + neutron_qos: + type: checkbox + value: false +operator_user: + authkeys: + type: textarea + value: '' + homedir: + type: text + value: /home/fueladmin + name: + type: text + value: fueladmin + password: + type: password + value: xalFdhQSGrB7xgdPrPiM3vZm + sudo: + type: textarea + value: 'ALL=(ALL) NOPASSWD: ALL' +provision: + method: + type: hidden + value: image + packages: + type: textarea + value: 'acl + + anacron + + bash-completion + + bridge-utils + + bsdmainutils + + build-essential + + cloud-init + + curl + + daemonize + + debconf-utils + + gdisk + + grub-pc + + hpsa-dkms + + hwloc + + i40e-dkms + + linux-firmware + + linux-firmware-nonfree + + linux-headers-generic-lts-trusty + + linux-image-generic-lts-trusty + + lvm2 + + mcollective + + mdadm + + multipath-tools + + multipath-tools-boot + + nailgun-agent + + nailgun-mcagents + + network-checker + + ntp + + openssh-client + + openssh-server + + puppet + + python-amqp + + ruby-augeas + + ruby-ipaddress + + ruby-json + + ruby-netaddr + + ruby-openstack + + ruby-shadow + + ruby-stomp + + telnet + + ubuntu-minimal + + ubuntu-standard + + uuid-runtime + + vim + + virt-what + + vlan + + ' +public_network_assignment: + assign_to_all_nodes: + type: checkbox + value: false +public_ssl: + cert_data: + type: file + value: + content: '-----BEGIN CERTIFICATE----- + + MIIC7TCCAdUCAgPoMA0GCSqGSIb3DQEBBQUAMDwxHjAcBgNVBAsMFU1pcmFudGlz + + IEZ1ZWwtUUEgVGVhbTEaMBgGA1UEAwwRcHVibGljLmZ1ZWwubG9jYWwwHhcNMTYw + + NDE5MTkxMTU1WhcNMjYwNDE3MTkxMTU1WjA8MR4wHAYDVQQLDBVNaXJhbnRpcyBG + + dWVsLVFBIFRlYW0xGjAYBgNVBAMMEXB1YmxpYy5mdWVsLmxvY2FsMIIBIjANBgkq + + hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZBouZH+0S1jPYy+FxvNAkdGxsNVzsOI + + g7OybWx+DIskdRvONwrCFFtvP2InKJowPCebGcCqDqGF2zgFLmA9yQN/05A9f8bX + + hFrtjfNb/YYJxDE4itSYNgSzSfnitii7AJme9UBw94s0p3749irGTB++ZhcPzwdg + + Nx0Ymk2uFFNU18YxSx8PAk2w73a36t61E0P++MT6sYIM1GAx+9pm9Ddrj5r0b/M7 + + ikHGIUuB7M6t3mNHUveld+ZyXjaONMHZI5WQ16AMZwtHunUu/42k+o6RSS4h+zT8 + + ZiWW5cxZVLn6xqJkDkXMDdsS7PrveSuODq3LuaG4fwRpf1u2hqvyuwIDAQABMA0G + + CSqGSIb3DQEBBQUAA4IBAQBfAjtVxKItKMFAQl/EufHjk4rBpRiaHGLH2CIJHWJ1 + + i+z7gI5XazzwMCprOxsCUrJUpr8ChobenyebNPJSnDI0R0z8ZTX6kTNk7A2ZFVrp + + lL5TlpwhdtUjWxF3Coi+w694MbyLmJ4pA6QZTYVqSilZZ1cncLNA+Fc97STfLukK + + wqjwCYovRVjUn4jLRjy2kcw89060xxZopVpkY9cPfg0P+PICo/eS4EunQ5rd/EDV + + 7DBfCbzthArBjF8/72J8PYhqwEc+i5PDkn2CNIXoT0coxC9YAHJ+zFHgxHnKa0/q + + TPlvi+wJKrrSnXb5Oc34tVOxDF/WQjNuve8vHg7hvaIM + + -----END CERTIFICATE----- + + -----BEGIN PRIVATE KEY----- + + MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChkGi5kf7RLWM9 + + jL4XG80CR0bGw1XOw4iDs7JtbH4MiyR1G843CsIUW28/YicomjA8J5sZwKoOoYXb + + OAUuYD3JA3/TkD1/xteEWu2N81v9hgnEMTiK1Jg2BLNJ+eK2KLsAmZ71QHD3izSn + + fvj2KsZMH75mFw/PB2A3HRiaTa4UU1TXxjFLHw8CTbDvdrfq3rUTQ/74xPqxggzU + + YDH72mb0N2uPmvRv8zuKQcYhS4Hszq3eY0dS96V35nJeNo40wdkjlZDXoAxnC0e6 + + dS7/jaT6jpFJLiH7NPxmJZblzFlUufrGomQORcwN2xLs+u95K44Orcu5obh/BGl/ + + W7aGq/K7AgMBAAECggEAI6RyFg5JQuhabmewP/TYI1qKGKtbMMQeR7/K6yz2GdpQ + + bq11rtrmugr53efPb7ukTIEITIQegB/OIfCX5AVDXCczef7mMlwxi3dr1NcNQj7h + + xLB/ItGHytL6oqVICJuvtZAuaziOM244bYMrdVM2b/DI1kjcKfYcmcwHc3MTplPq + + Nh+L5u2ue6bYvT+XRF4KrwuKmKuyJghyMeoiLI9JupkKw79ZB/l0Mh8vmxKMPj8g + + MNxoJbwoTkjQxuJELmet+ysBg2KT+gJEirfRmZiouDxx8Zukd8O6YvnlsOiRFokX + + 05r33fna1z5IBpGnwe+rn6pQaeXflSd6dqotoBp4QQKBgQDLrhAdsZnDXDpYuOv+ + + ITMpc33J4NW7yE+26ebzWkLYRUW5i7YDCtJdFi5pHCeA3+QD3RlYiinQlzcy3i3R + + 4Uv4riuKyDbgaw9sYOhmgluhPKDuznEWXomloEVu8jFrHg3TKY2v/GCcv99N5grQ + + Jg9rScFpZXkTj23KzqHf23uTEQKBgQDLENH7QzoNsBv6eS7kElBx3BQWNa0dhXab + + kRXo62/++tIDGMkzaq38hsjcAZi8uZDZY0QJTmBMdZN3LLBln5C2g8Y6Eym5ITvf + + pxkMUK0++MygbK/Vwmp+xu7XMiPNMG/E8NqQkca3F/6Ld08PAauZ8gpgoAsnjlNg + + pPUdWRCRCwKBgEiEB17bDXidjHRsGjFXVqTKZp2Ke+4oaiEgc8Zue2AOgb2GvV2l + + 67GSpSFtEa9zhvXNMSnxvuNyAwgMTFnuEaNPN1do4wjRdSNL+VIN1Vu5fz6mp2Kk + + c/NQ9YeDmQ6fG6Lzp2thum/0bCeK4IytEE5NaxwAMbRCG3/aQ4200fFRAoGAMwg5 + + HSIZ9tKpVVsbE6oemV6rlaFLrj2aPyJJFU4FyViTar/R4KAQtYPR+qhUECm6Y0d1 + + E7mkrdJmiu6qLf/ZyGR5bqLeO25Es8I0o0mrIEY6dp6Z2eiQBuhLob0yDiD8FcxJ + + wUdBX0YibD5Bmg3baEbRoNLXussj3QfXqdZ2OV0CgYEAyovcXc1ibwrwNO59yw99 + + 7zCoMFjXzZgtxn5JQDwMsdt9UKd/4nOPbbiRPL3ynr5zboDZzRxihXB5zzKjrYlE + + o4QZIWV0VgGS2eQSni3CGOsG4VhE4/9EFF7UqeA0hYkGAZMS+EKSdPpIujStD/ck + + sQ/BZiYxMSE8+synlzp3gss= + + -----END PRIVATE KEY----- + + ' + name: ca.pem + cert_source: + type: radio + value: user_uploaded + horizon: + type: checkbox + value: false + hostname: + type: text + value: public.fuel.local + services: + type: checkbox + value: false +service_user: + homedir: + type: hidden + value: /var/lib/fuel + name: + type: hidden + value: fuel + password: + type: hidden + value: WEwz5aKA0hYDrcERjX7irQzS + root_password: + type: hidden + value: r00tme + sudo: + type: hidden + value: 'ALL=(ALL) NOPASSWD: ALL' +storage: + admin_key: + type: hidden + value: AQDzghZXAAAAABAA7obspvgNjPa/HBWSOUzI1w== + bootstrap_osd_key: + type: hidden + value: AQDzghZXAAAAABAAWaiWslWwse+hsaKLzbtQFw== + ephemeral_ceph: + type: checkbox + value: false + fsid: + type: hidden + value: 4b0ab6f5-b82b-44e4-ac3a-15c76f960b82 + images_ceph: + type: checkbox + value: false + images_vcenter: + type: checkbox + value: false + mon_key: + type: hidden + value: AQDzghZXAAAAABAAVi1udBHvkQbZbDgNnT7gXA== + objects_ceph: + type: checkbox + value: false + osd_pool_size: + type: text + value: '3' + radosgw_key: + type: hidden + value: AQDzghZXAAAAABAA8jY8KftsCK4l726rNdu/Zg== + volumes_block_device: + type: checkbox + value: true + volumes_ceph: + type: checkbox + value: false + volumes_lvm: + type: checkbox + value: false +syslog: + syslog_port: + type: text + value: '514' + syslog_server: + type: text + value: '' + syslog_transport: + type: radio + value: tcp +workloads_collector: + enabled: + type: hidden + value: false + password: + type: password + value: 8qtWdXhhY84wFoxwBbZcpq3P + tenant: + type: text + value: services + user: + type: text + value: fuel_stats_user diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/compute.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/compute.yaml new file mode 100644 index 000000000..b29497f24 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/compute.yaml @@ -0,0 +1,89 @@ +tasks: +- update_hosts: + resources: [] +- openstack-network-start: + type: skipped +- openstack-network-common-config: + resources: [] +- clear_nodes_info: + type: skipped +- openstack-network-agents-sriov: + resources: [] +- copy_keys_ceph: + type: copy_files +- globals: + resources: [] +- fuel_pkgs: + resources: [] +- openstack-network-agents-l3: + resources: [] +- openstack-network-agents-metadata: + resources: [] +- tools: + resources: [] +- rsync_core_puppet: + type: sync +- enable_nova_compute_service: + resources: [] +- cgroups: + resources: [] +- upload_nodes_info: + type: skipped +- copy_keys: + type: copy_files +- override_configuration: + resources: [] +- setup_repositories: + resources: [] +- dns-client: + resources: [] +- openstack-network-plugins-l2: + resources: [] +- allocate_hugepages: + resources: [] +- plugins_setup_repositories: + no_puppet_run: true +- ceph-compute: + no_puppet_run: true +- ssl-keys-saving: + no_puppet_run: true +- sriov_iommu_check: + resources: + - Exec[sriov_iommu_check] +- openstack-network-end: + type: skipped +- ceilometer-compute: + no_puppet_run: true +- upload_configuration: + type: upload_file +- firewall: + resources: [] +- logging: + resources: [] +- top-role-compute: + resources: + - Notify[Module openstack_tasks cannot notify service nova-compute on packages + update] + - Nova_config[DEFAULT/resume_guests_state_on_host_boot] + - Nova_config[vnc/novncproxy_base_url] + - Service[nova-compute] +- sync_time: + type: shell +- openstack-network-compute-nova: + resources: [] +- plugins_rsync: + no_puppet_run: true +- connectivity_tests: + resources: [] +- configuration_symlink: + type: shell +- hosts: + resources: [] +- copy_haproxy_keys: + type: copy_files +- ntp-client: + resources: [] +- ssl-add-trust-chain: + no_puppet_run: true +- reserved_ports: + resources: [] \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/controller.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/controller.yaml new file mode 100644 index 000000000..4767f00c2 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/controller.yaml @@ -0,0 +1,326 @@ +tasks: +- ironic_post_swift_key: + type: shell +- openstack-haproxy-mysqld: + resources: [] +- cinder-db: + resources: [] +- dump_rabbitmq_definitions: + resources: [] +- rsync_core_puppet: + type: sync +- ssl-dns-setup: + resources: + - Exec[rsync_core_puppet_shell] +- ceilometer-controller: + no_puppet_run: true +- override_configuration: + resources: [] +- ceilometer-keystone: + no_puppet_run: true +- nova-db: + resources: [] +- workloads_collector_add: + resources: [] +- primary-openstack-network-plugins-l2: + resources: [] +- radosgw-keystone: + resources: [] +- virtual_ips: + resources: [] +- primary-dns-server: + resources: [] +- openstack-haproxy-murano: + resources: [] +- openstack-network-end: + type: skipped +- openstack-haproxy-radosgw: + resources: [] +- openstack-haproxy-swift: + resources: [] +- heat-db: + resources: [] +- openstack-haproxy-neutron: + resources: [] +- updatedb: + no_puppet_run: true +- ironic-db: + no_puppet_run: true +- plugins_rsync: + no_puppet_run: true +- ceilometer-radosgw-user: + no_puppet_run: true +- openstack-haproxy-keystone: + resources: [] +- hosts: + resources: [] +- primary-rabbitmq: + resources: [] +- primary-cluster-haproxy: + resources: [] +- openstack-network-routers: + resources: [] +- reserved_ports: + resources: [] +- controller_remaining_tasks: + resources: [] +- glance-keystone: + resources: [] +- openstack-haproxy-aodh: + resources: [] +- murano-cfapi: + no_puppet_run: true +- vmware-vcenter: + no_puppet_run: true +- ironic-compute: + no_puppet_run: true +- primary-openstack-network-agents-metadata: + resources: [] +- cinder-keystone: + resources: [] +- copy_keys: + type: copy_files +- enable_rados: + no_puppet_run: true +- ntp-check: + resources: [] +- aodh-db: + no_puppet_run: true +- disable_keystone_service_token: + resources: [] +- umm: + resources: [] +- memcached: + resources: [] +- allocate_hugepages: + resources: [] +- openrc-delete: + resources: + - File[/root/openrc] +- plugins_setup_repositories: + no_puppet_run: true +- sahara-keystone: + no_puppet_run: true +- openstack-haproxy-sahara: + resources: [] +- ssl-keys-saving: + no_puppet_run: true +- primary-cluster: + resources: [] +- upload_cirros: + type: shell +- primary-keystone: + resources: + - File[/root/openrc] +- primary-openstack-network-agents-l3: + resources: [] +- upload_configuration: + type: upload_file +- create-cinder-types: + resources: [] +- neutron-keystone: + resources: + - Keystone_endpoint[RegionOne/neutron::network] +- logging: + resources: [] +- nova-keystone: + resources: + - Keystone_endpoint[RegionOne/nova::compute] + - Keystone_endpoint[RegionOne/novav3::computev3] +- update_hosts: + resources: [] +- ironic-keystone: + no_puppet_run: true +- connectivity_tests: + resources: [] +- swift-storage: + resources: [] +- primary-heat: + resources: + - Heat_config[keystone_authtoken/auth_uri] +- conntrackd: + resources: [] +- sahara-db: + no_puppet_run: true +- horizon: + resources: + - File[/var/lib/puppet/concat/_etc_openstack-dashboard_local_settings.py/fragments/50_local_settings.py] + - File[/etc/openstack-dashboard/local_settings.py] + - Exec[concat_/etc/openstack-dashboard/local_settings.py] +- openstack-haproxy-ceilometer: + resources: [] +- openstack-network-common-config: + resources: [] +- firewall: + resources: [] +- apache: + resources: [] +- globals: + resources: + - File[/etc/hiera/globals.yaml] +- aodh-keystone: + no_puppet_run: true +- glance: + resources: + - Glance_glare_config[DEFAULT/default_log_levels] + - Glance_registry_config[DEFAULT/default_log_levels] + - Glance_api_config[DEFAULT/default_log_levels] + - Glance_cache_config[DEFAULT/debug] + - Glance_api_config[DEFAULT/debug] + - Glance_glare_config[DEFAULT/debug] + - Glance_registry_config[DEFAULT/debug] +- tools: + resources: [] +- openstack-haproxy: + resources: [] +- cgroups: + resources: [] +- murano-cfapi-keystone: + no_puppet_run: true +- aodh: + no_puppet_run: true +- ceph_create_pools: + no_puppet_run: true +- openstack-haproxy-ironic: + no_puppet_run: true +- setup_repositories: + resources: [] +- openstack-network-routers-ha: + no_puppet_run: true +- glance-db: + resources: [] +- neutron-db: + resources: [] +- ironic_upload_images: + type: shell +- swift-rebalance-cron: + resources: [] +- primary-ceph-mon: + resources: [] +- openstack-haproxy-stats: + resources: [] +- ironic-api: + no_puppet_run: true +- primary-ceph-radosgw: + resources: [] +- dns-client: + resources: [] +- cluster-vrouter: + resources: [] +- murano-rabbitmq: + no_puppet_run: true +- api-proxy: + resources: [] +- cluster_health: + resources: [] +- heat-keystone: + resources: + - Keystone_endpoint[RegionOne/heat-cfn::cloudformation] + - Keystone_endpoint[RegionOne/heat::orchestration] +- openstack-haproxy-horizon: + resources: + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/00_horizon_listen_block] + - File[/etc/haproxy/conf.d/015-horizon.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/01-horizon_horizon_balancermember_horizon] + - Exec[concat_/etc/haproxy/conf.d/015-horizon.cfg] +- openstack-network-start: + type: skipped +- clear_nodes_info: + type: skipped +- murano-db: + resources: + - Exec[clear_nodes_info_shell] +- copy_keys_ceph: + type: copy_files +- sahara: + no_puppet_run: true +- fuel_pkgs: + resources: [] +- swift-keystone: + resources: + - Keystone_endpoint[RegionOne/swift::object-store] + - Keystone_endpoint[RegionOne/swift_s3::s3] +- public_vip_ping: + resources: [] +- upload_nodes_info: + type: skipped +- openstack-haproxy-glance: + resources: + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_080-glance-api.cfg/fragments/00_glance-api_listen_block] + - Exec[concat_/etc/haproxy/conf.d/080-glance-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_081-glance-glare.cfg/fragments/00_glance-glare_listen_block] + - File[/etc/haproxy/conf.d/080-glance-api.cfg] + - Exec[concat_/etc/haproxy/conf.d/081-glance-glare.cfg] + - File[/etc/haproxy/conf.d/081-glance-glare.cfg] +- murano: + no_puppet_run: true +- ceph_ready_check: + type: shell +- enable_quorum: + type: shell +- openstack-haproxy-nova: + resources: + - File[/etc/haproxy/conf.d/040-nova-api.cfg] + - File[/etc/haproxy/conf.d/170-nova-novncproxy.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_040-nova-api.cfg/fragments/00_nova-api_listen_block] + - Exec[concat_/etc/haproxy/conf.d/040-nova-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_170-nova-novncproxy.cfg/fragments/00_nova-novncproxy_listen_block] + - Exec[concat_/etc/haproxy/conf.d/170-nova-novncproxy.cfg] +- openstack-network-server-config: + resources: [] +- primary-database: + resources: + - File[/root/.my.cnf] +- vcenter_compute_zones_create: + type: shell +- openstack-haproxy-cinder: + resources: + - File[/etc/haproxy/conf.d/070-cinder-api.cfg] + - Exec[concat_/etc/haproxy/conf.d/070-cinder-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_070-cinder-api.cfg/fragments/00_cinder-api_listen_block] +- ntp-server: + resources: [] +- murano-keystone: + no_puppet_run: true +- primary-openstack-network-agents-dhcp: + resources: + - Neutron_dhcp_agent_config[DEFAULT/debug] +- openstack-haproxy-heat: + resources: [] +- primary-openstack-controller: + resources: + - Nova_config[DEFAULT/quota_driver] + - Nova_config[DEFAULT/debug] + - Nova_config[DEFAULT/default_log_levels] +- openstack-cinder: + resources: + - Cinder_config[DEFAULT/scheduler_default_filters] + - Cinder_config[DEFAULT/default_log_levels] + - Cinder_config[DEFAULT/debug] +- keystone-db: + resources: + - File[/root/.my.cnf] +- sync_time: + type: shell +- configuration_symlink: + type: shell +- openstack-network-server-nova: + resources: [] +- copy_haproxy_keys: + type: copy_files +- primary-swift-proxy: + resources: + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_account_frag-account] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/00_swift_proxy] + - File[/etc/swift/proxy-server.conf] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_object_frag-object] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_server_frag-swift_server] + - Exec[concat_/etc/swift/proxy-server.conf] + - Exec[concat_/etc/rsyncd.conf] + - File[/etc/rsyncd.conf] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_container_frag-container] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_backups_frag-swift_backups] +- openstack-network-networks: + resources: [] +- ssl-add-trust-chain: + no_puppet_run: true \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/nodes_settings.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/nodes_settings.yaml new file mode 100644 index 000000000..12acfee81 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_cinder/ensurability/nodes_settings.yaml @@ -0,0 +1,51 @@ +controller: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 +cinder: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 +compute: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/compute.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/compute.yaml index bdc8fdb61..b528d9438 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/compute.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/compute.yaml @@ -6,7 +6,7 @@ tasks: type: skipped - openstack-network-common-config: null - clear_nodes_info: - type: shell + type: skipped - openstack-network-agents-sriov: null - copy_keys_ceph: type: copy_files @@ -30,8 +30,6 @@ tasks: - allocate_hugepages: null - plugins_setup_repositories: no_puppet_run: true - - upload_provision_data: - type: false - ceph-compute: no_puppet_run: true - ssl-keys-saving: null diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/controller.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/controller.yaml index b9a1955f2..22ef829d0 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/controller.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/controller.yaml @@ -132,7 +132,7 @@ tasks: - openstack-network-start: type: skipped - clear_nodes_info: - type: shell + type: skipped - murano-db: no_puppet_run: true - copy_keys_ceph: @@ -152,8 +152,6 @@ tasks: - enable_quorum: type: shell - openstack-haproxy-nova: null - - upload_provision_data: - type: false - openstack-network-server-config: null - primary-database: skip: diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/cluster_settings.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/cluster_settings.yaml new file mode 100644 index 000000000..9ee7735a7 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/cluster_settings.yaml @@ -0,0 +1,427 @@ +access: + email: + type: text + value: admin_upd@localhost + password: + type: password + value: admin + tenant: + type: text + value: admin + user: + type: text + value: admin +additional_components: + ceilometer: + type: checkbox + value: false + heat: + type: hidden + value: false + ironic: + type: checkbox + value: false + mongo: + type: checkbox + value: false + murano: + type: checkbox + value: false + murano-cfapi: + type: checkbox + value: false + murano_glance_artifacts_plugin: + type: checkbox + value: false + sahara: + type: checkbox + value: false +common: + auth_key: + type: hidden + value: '' + auto_assign_floating_ip: + type: checkbox + value: true + debug: + type: checkbox + value: false + libvirt_type: + type: radio + value: qemu + nova_quota: + type: checkbox + value: true + propagate_task_deploy: + type: hidden + value: false + puppet_debug: + type: checkbox + value: false + resume_guests_state_on_host_boot: + type: checkbox + value: false + task_deploy: + type: hidden + value: true + use_cow_images: + type: checkbox + value: true + use_vcenter: + type: hidden + value: false +corosync: + group: + type: text + value: 226.94.1.1 + port: + type: text + value: '12000' + verified: + type: checkbox + value: false +external_mongo: + hosts_ip: + type: text + value: '' + mongo_db_name: + type: text + value: ceilometer + mongo_password: + type: password + value: ceilometer + mongo_replset: + type: text + value: '' + mongo_user: + type: text + value: ceilometer +kernel_params: + kernel: + type: text + value: console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90 nomodeset +murano_settings: + murano_repo_url: + type: text + value: http://storage.apps.openstack.org/ +neutron_advanced_configuration: + neutron_dvr: + type: checkbox + value: false + neutron_l2_pop: + type: checkbox + value: false + neutron_l3_ha: + type: checkbox + value: false + neutron_qos: + type: checkbox + value: false +operator_user: + authkeys: + type: textarea + value: '' + homedir: + type: text + value: /home/fueladmin + name: + type: text + value: fueladmin + password: + type: password + value: xalFdhQSGrB7xgdPrPiM3vZm + sudo: + type: textarea + value: 'ALL=(ALL) NOPASSWD: ALL' +provision: + method: + type: hidden + value: image + packages: + type: textarea + value: 'acl + + anacron + + bash-completion + + bridge-utils + + bsdmainutils + + build-essential + + cloud-init + + curl + + daemonize + + debconf-utils + + gdisk + + grub-pc + + hpsa-dkms + + hwloc + + i40e-dkms + + linux-firmware + + linux-firmware-nonfree + + linux-headers-generic-lts-trusty + + linux-image-generic-lts-trusty + + lvm2 + + mcollective + + mdadm + + multipath-tools + + multipath-tools-boot + + nailgun-agent + + nailgun-mcagents + + network-checker + + ntp + + openssh-client + + openssh-server + + puppet + + python-amqp + + ruby-augeas + + ruby-ipaddress + + ruby-json + + ruby-netaddr + + ruby-openstack + + ruby-shadow + + ruby-stomp + + telnet + + ubuntu-minimal + + ubuntu-standard + + uuid-runtime + + vim + + virt-what + + vlan + + ' +public_network_assignment: + assign_to_all_nodes: + type: checkbox + value: false +public_ssl: + cert_data: + type: file + value: + content: '-----BEGIN CERTIFICATE----- + + MIIC7TCCAdUCAgPoMA0GCSqGSIb3DQEBBQUAMDwxHjAcBgNVBAsMFU1pcmFudGlz + + IEZ1ZWwtUUEgVGVhbTEaMBgGA1UEAwwRcHVibGljLmZ1ZWwubG9jYWwwHhcNMTYw + + NDE5MTkxMTU1WhcNMjYwNDE3MTkxMTU1WjA8MR4wHAYDVQQLDBVNaXJhbnRpcyBG + + dWVsLVFBIFRlYW0xGjAYBgNVBAMMEXB1YmxpYy5mdWVsLmxvY2FsMIIBIjANBgkq + + hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZBouZH+0S1jPYy+FxvNAkdGxsNVzsOI + + g7OybWx+DIskdRvONwrCFFtvP2InKJowPCebGcCqDqGF2zgFLmA9yQN/05A9f8bX + + hFrtjfNb/YYJxDE4itSYNgSzSfnitii7AJme9UBw94s0p3749irGTB++ZhcPzwdg + + Nx0Ymk2uFFNU18YxSx8PAk2w73a36t61E0P++MT6sYIM1GAx+9pm9Ddrj5r0b/M7 + + ikHGIUuB7M6t3mNHUveld+ZyXjaONMHZI5WQ16AMZwtHunUu/42k+o6RSS4h+zT8 + + ZiWW5cxZVLn6xqJkDkXMDdsS7PrveSuODq3LuaG4fwRpf1u2hqvyuwIDAQABMA0G + + CSqGSIb3DQEBBQUAA4IBAQBfAjtVxKItKMFAQl/EufHjk4rBpRiaHGLH2CIJHWJ1 + + i+z7gI5XazzwMCprOxsCUrJUpr8ChobenyebNPJSnDI0R0z8ZTX6kTNk7A2ZFVrp + + lL5TlpwhdtUjWxF3Coi+w694MbyLmJ4pA6QZTYVqSilZZ1cncLNA+Fc97STfLukK + + wqjwCYovRVjUn4jLRjy2kcw89060xxZopVpkY9cPfg0P+PICo/eS4EunQ5rd/EDV + + 7DBfCbzthArBjF8/72J8PYhqwEc+i5PDkn2CNIXoT0coxC9YAHJ+zFHgxHnKa0/q + + TPlvi+wJKrrSnXb5Oc34tVOxDF/WQjNuve8vHg7hvaIM + + -----END CERTIFICATE----- + + -----BEGIN PRIVATE KEY----- + + MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChkGi5kf7RLWM9 + + jL4XG80CR0bGw1XOw4iDs7JtbH4MiyR1G843CsIUW28/YicomjA8J5sZwKoOoYXb + + OAUuYD3JA3/TkD1/xteEWu2N81v9hgnEMTiK1Jg2BLNJ+eK2KLsAmZ71QHD3izSn + + fvj2KsZMH75mFw/PB2A3HRiaTa4UU1TXxjFLHw8CTbDvdrfq3rUTQ/74xPqxggzU + + YDH72mb0N2uPmvRv8zuKQcYhS4Hszq3eY0dS96V35nJeNo40wdkjlZDXoAxnC0e6 + + dS7/jaT6jpFJLiH7NPxmJZblzFlUufrGomQORcwN2xLs+u95K44Orcu5obh/BGl/ + + W7aGq/K7AgMBAAECggEAI6RyFg5JQuhabmewP/TYI1qKGKtbMMQeR7/K6yz2GdpQ + + bq11rtrmugr53efPb7ukTIEITIQegB/OIfCX5AVDXCczef7mMlwxi3dr1NcNQj7h + + xLB/ItGHytL6oqVICJuvtZAuaziOM244bYMrdVM2b/DI1kjcKfYcmcwHc3MTplPq + + Nh+L5u2ue6bYvT+XRF4KrwuKmKuyJghyMeoiLI9JupkKw79ZB/l0Mh8vmxKMPj8g + + MNxoJbwoTkjQxuJELmet+ysBg2KT+gJEirfRmZiouDxx8Zukd8O6YvnlsOiRFokX + + 05r33fna1z5IBpGnwe+rn6pQaeXflSd6dqotoBp4QQKBgQDLrhAdsZnDXDpYuOv+ + + ITMpc33J4NW7yE+26ebzWkLYRUW5i7YDCtJdFi5pHCeA3+QD3RlYiinQlzcy3i3R + + 4Uv4riuKyDbgaw9sYOhmgluhPKDuznEWXomloEVu8jFrHg3TKY2v/GCcv99N5grQ + + Jg9rScFpZXkTj23KzqHf23uTEQKBgQDLENH7QzoNsBv6eS7kElBx3BQWNa0dhXab + + kRXo62/++tIDGMkzaq38hsjcAZi8uZDZY0QJTmBMdZN3LLBln5C2g8Y6Eym5ITvf + + pxkMUK0++MygbK/Vwmp+xu7XMiPNMG/E8NqQkca3F/6Ld08PAauZ8gpgoAsnjlNg + + pPUdWRCRCwKBgEiEB17bDXidjHRsGjFXVqTKZp2Ke+4oaiEgc8Zue2AOgb2GvV2l + + 67GSpSFtEa9zhvXNMSnxvuNyAwgMTFnuEaNPN1do4wjRdSNL+VIN1Vu5fz6mp2Kk + + c/NQ9YeDmQ6fG6Lzp2thum/0bCeK4IytEE5NaxwAMbRCG3/aQ4200fFRAoGAMwg5 + + HSIZ9tKpVVsbE6oemV6rlaFLrj2aPyJJFU4FyViTar/R4KAQtYPR+qhUECm6Y0d1 + + E7mkrdJmiu6qLf/ZyGR5bqLeO25Es8I0o0mrIEY6dp6Z2eiQBuhLob0yDiD8FcxJ + + wUdBX0YibD5Bmg3baEbRoNLXussj3QfXqdZ2OV0CgYEAyovcXc1ibwrwNO59yw99 + + 7zCoMFjXzZgtxn5JQDwMsdt9UKd/4nOPbbiRPL3ynr5zboDZzRxihXB5zzKjrYlE + + o4QZIWV0VgGS2eQSni3CGOsG4VhE4/9EFF7UqeA0hYkGAZMS+EKSdPpIujStD/ck + + sQ/BZiYxMSE8+synlzp3gss= + + -----END PRIVATE KEY----- + + ' + name: ca.pem + cert_source: + type: radio + value: user_uploaded + horizon: + type: checkbox + value: false + hostname: + type: text + value: public.fuel.local + services: + type: checkbox + value: false +service_user: + homedir: + type: hidden + value: /var/lib/fuel + name: + type: hidden + value: fuel + password: + type: hidden + value: WEwz5aKA0hYDrcERjX7irQzS + root_password: + type: hidden + value: r00tme + sudo: + type: hidden + value: 'ALL=(ALL) NOPASSWD: ALL' +storage: + admin_key: + type: hidden + value: AQDzghZXAAAAABAA7obspvgNjPa/HBWSOUzI1w== + bootstrap_osd_key: + type: hidden + value: AQDzghZXAAAAABAAWaiWslWwse+hsaKLzbtQFw== + ephemeral_ceph: + type: checkbox + value: false + fsid: + type: hidden + value: 4b0ab6f5-b82b-44e4-ac3a-15c76f960b82 + images_ceph: + type: checkbox + value: false + images_vcenter: + type: checkbox + value: false + mon_key: + type: hidden + value: AQDzghZXAAAAABAAVi1udBHvkQbZbDgNnT7gXA== + objects_ceph: + type: checkbox + value: false + osd_pool_size: + type: text + value: '3' + radosgw_key: + type: hidden + value: AQDzghZXAAAAABAA8jY8KftsCK4l726rNdu/Zg== + volumes_block_device: + type: checkbox + value: true + volumes_ceph: + type: checkbox + value: false + volumes_lvm: + type: checkbox + value: false +syslog: + syslog_port: + type: text + value: '514' + syslog_server: + type: text + value: '' + syslog_transport: + type: radio + value: tcp +workloads_collector: + enabled: + type: hidden + value: false + password: + type: password + value: 8qtWdXhhY84wFoxwBbZcpq3P + tenant: + type: text + value: services + user: + type: text + value: fuel_stats_user diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/compute.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/compute.yaml new file mode 100644 index 000000000..b29497f24 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/compute.yaml @@ -0,0 +1,89 @@ +tasks: +- update_hosts: + resources: [] +- openstack-network-start: + type: skipped +- openstack-network-common-config: + resources: [] +- clear_nodes_info: + type: skipped +- openstack-network-agents-sriov: + resources: [] +- copy_keys_ceph: + type: copy_files +- globals: + resources: [] +- fuel_pkgs: + resources: [] +- openstack-network-agents-l3: + resources: [] +- openstack-network-agents-metadata: + resources: [] +- tools: + resources: [] +- rsync_core_puppet: + type: sync +- enable_nova_compute_service: + resources: [] +- cgroups: + resources: [] +- upload_nodes_info: + type: skipped +- copy_keys: + type: copy_files +- override_configuration: + resources: [] +- setup_repositories: + resources: [] +- dns-client: + resources: [] +- openstack-network-plugins-l2: + resources: [] +- allocate_hugepages: + resources: [] +- plugins_setup_repositories: + no_puppet_run: true +- ceph-compute: + no_puppet_run: true +- ssl-keys-saving: + no_puppet_run: true +- sriov_iommu_check: + resources: + - Exec[sriov_iommu_check] +- openstack-network-end: + type: skipped +- ceilometer-compute: + no_puppet_run: true +- upload_configuration: + type: upload_file +- firewall: + resources: [] +- logging: + resources: [] +- top-role-compute: + resources: + - Notify[Module openstack_tasks cannot notify service nova-compute on packages + update] + - Nova_config[DEFAULT/resume_guests_state_on_host_boot] + - Nova_config[vnc/novncproxy_base_url] + - Service[nova-compute] +- sync_time: + type: shell +- openstack-network-compute-nova: + resources: [] +- plugins_rsync: + no_puppet_run: true +- connectivity_tests: + resources: [] +- configuration_symlink: + type: shell +- hosts: + resources: [] +- copy_haproxy_keys: + type: copy_files +- ntp-client: + resources: [] +- ssl-add-trust-chain: + no_puppet_run: true +- reserved_ports: + resources: [] \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/controller.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/controller.yaml new file mode 100644 index 000000000..887dddf5f --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/controller.yaml @@ -0,0 +1,336 @@ +tasks: +- ironic_post_swift_key: + type: shell +- openstack-haproxy-mysqld: + resources: [] +- cinder-db: + resources: [] +- dump_rabbitmq_definitions: + resources: [] +- rsync_core_puppet: + type: sync +- ssl-dns-setup: + resources: + - Exec[rsync_core_puppet_shell] +- ceilometer-controller: + no_puppet_run: true +- override_configuration: + resources: [] +- ceilometer-keystone: + no_puppet_run: true +- nova-db: + resources: [] +- workloads_collector_add: + resources: [] +- primary-openstack-network-plugins-l2: + resources: [] +- radosgw-keystone: + resources: [] +- virtual_ips: + resources: [] +- primary-dns-server: + resources: [] +- openstack-haproxy-murano: + resources: [] +- openstack-network-end: + type: skipped +- openstack-haproxy-radosgw: + resources: [] +- openstack-haproxy-swift: + resources: [] +- heat-db: + resources: [] +- openstack-haproxy-neutron: + resources: [] +- updatedb: + no_puppet_run: true +- ironic-db: + no_puppet_run: true +- plugins_rsync: + no_puppet_run: true +- ceilometer-radosgw-user: + no_puppet_run: true +- openstack-haproxy-keystone: + resources: [] +- hosts: + resources: [] +- primary-rabbitmq: + resources: [] +- primary-cluster-haproxy: + resources: [] +- openstack-network-routers: + resources: [] +- reserved_ports: + resources: [] +- controller_remaining_tasks: + resources: [] +- glance-keystone: + resources: [] +- openstack-haproxy-aodh: + resources: [] +- murano-cfapi: + no_puppet_run: true +- vmware-vcenter: + no_puppet_run: true +- ironic-compute: + no_puppet_run: true +- primary-openstack-network-agents-metadata: + resources: [] +- cinder-keystone: + resources: [] +- copy_keys: + type: copy_files +- enable_rados: + no_puppet_run: true +- ntp-check: + resources: [] +- aodh-db: + no_puppet_run: true +- disable_keystone_service_token: + resources: [] +- umm: + resources: [] +- memcached: + resources: [] +- allocate_hugepages: + resources: [] +- openrc-delete: + resources: + - File[/root/openrc] +- plugins_setup_repositories: + no_puppet_run: true +- sahara-keystone: + no_puppet_run: true +- openstack-haproxy-sahara: + resources: [] +- ssl-keys-saving: + no_puppet_run: true +- primary-cluster: + resources: [] +- upload_cirros: + type: shell +- primary-keystone: + resources: + - File[/root/openrc] +- primary-openstack-network-agents-l3: + resources: [] +- upload_configuration: + type: upload_file +- create-cinder-types: + resources: [] +- neutron-keystone: + resources: + - Keystone_endpoint[RegionOne/neutron::network] +- logging: + resources: [] +- nova-keystone: + resources: + - Keystone_endpoint[RegionOne/nova::compute] + - Keystone_endpoint[RegionOne/novav3::computev3] +- update_hosts: + resources: [] +- ironic-keystone: + no_puppet_run: true +- connectivity_tests: + resources: [] +- swift-storage: + resources: [] +- primary-heat: + resources: + - Heat_config[keystone_authtoken/auth_uri] +- conntrackd: + resources: [] +- sahara-db: + no_puppet_run: true +- horizon: + resources: + - File[/var/lib/puppet/concat/_etc_openstack-dashboard_local_settings.py/fragments/50_local_settings.py] + - File[/etc/openstack-dashboard/local_settings.py] + - Exec[concat_/etc/openstack-dashboard/local_settings.py] +- openstack-haproxy-ceilometer: + resources: + - Exec[concat_/etc/haproxy/conf.d/140-ceilometer.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_140-ceilometer.cfg/fragments/00_ceilometer_listen_block] + - File[/etc/haproxy/conf.d/140-ceilometer.cfg] +- openstack-network-common-config: + resources: + - Neutron_config[DEFAULT/service_plugins] +- firewall: + resources: [] +- apache: + resources: [] +- globals: + resources: + - File[/etc/hiera/globals.yaml] +- aodh-keystone: + no_puppet_run: true +- glance: + resources: + - Glance_glare_config[DEFAULT/default_log_levels] + - Glance_registry_config[DEFAULT/default_log_levels] + - Glance_api_config[DEFAULT/notification_driver] + - Glance_api_config[DEFAULT/default_log_levels] + - Glance_cache_config[DEFAULT/debug] + - Glance_api_config[DEFAULT/debug] + - Glance_glare_config[DEFAULT/debug] + - Glance_registry_config[DEFAULT/debug] +- tools: + resources: [] +- openstack-haproxy: + resources: [] +- cgroups: + resources: [] +- murano-cfapi-keystone: + no_puppet_run: true +- aodh: + no_puppet_run: true +- ceph_create_pools: + no_puppet_run: true +- openstack-haproxy-ironic: + no_puppet_run: true +- setup_repositories: + resources: [] +- openstack-network-routers-ha: + no_puppet_run: true +- glance-db: + resources: [] +- neutron-db: + resources: [] +- ironic_upload_images: + type: shell +- swift-rebalance-cron: + resources: [] +- primary-ceph-mon: + resources: [] +- openstack-haproxy-stats: + resources: [] +- ironic-api: + no_puppet_run: true +- primary-ceph-radosgw: + resources: [] +- dns-client: + resources: [] +- cluster-vrouter: + resources: [] +- murano-rabbitmq: + no_puppet_run: true +- api-proxy: + resources: [] +- cluster_health: + resources: [] +- heat-keystone: + resources: + - Keystone_endpoint[RegionOne/heat-cfn::cloudformation] + - Keystone_endpoint[RegionOne/heat::orchestration] +- openstack-haproxy-horizon: + resources: + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/00_horizon_listen_block] + - File[/etc/haproxy/conf.d/015-horizon.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/01-horizon_horizon_balancermember_horizon] + - Exec[concat_/etc/haproxy/conf.d/015-horizon.cfg] +- openstack-network-start: + type: skipped +- clear_nodes_info: + type: skipped +- murano-db: + resources: + - Exec[clear_nodes_info_shell] +- copy_keys_ceph: + type: copy_files +- sahara: + no_puppet_run: true +- fuel_pkgs: + resources: [] +- swift-keystone: + resources: + - Keystone_endpoint[RegionOne/swift::object-store] + - Keystone_endpoint[RegionOne/swift_s3::s3] +- public_vip_ping: + resources: [] +- upload_nodes_info: + type: skipped +- openstack-haproxy-glance: + resources: + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_080-glance-api.cfg/fragments/00_glance-api_listen_block] + - Exec[concat_/etc/haproxy/conf.d/080-glance-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_081-glance-glare.cfg/fragments/00_glance-glare_listen_block] + - File[/etc/haproxy/conf.d/080-glance-api.cfg] + - Exec[concat_/etc/haproxy/conf.d/081-glance-glare.cfg] + - File[/etc/haproxy/conf.d/081-glance-glare.cfg] +- murano: + no_puppet_run: true +- ceph_ready_check: + type: shell +- enable_quorum: + type: shell +- openstack-haproxy-nova: + resources: + - File[/etc/haproxy/conf.d/040-nova-api.cfg] + - File[/etc/haproxy/conf.d/170-nova-novncproxy.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_040-nova-api.cfg/fragments/00_nova-api_listen_block] + - Exec[concat_/etc/haproxy/conf.d/040-nova-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_170-nova-novncproxy.cfg/fragments/00_nova-novncproxy_listen_block] + - Exec[concat_/etc/haproxy/conf.d/170-nova-novncproxy.cfg] +- openstack-network-server-config: + resources: + - Neutron_config[DEFAULT/router_distributed] + - Neutron_config[qos/notification_drivers] + - Neutron_plugin_ml2[ml2/mechanism_drivers] + - Neutron_plugin_ml2[ml2/extension_drivers] +- primary-database: + resources: + - File[/root/.my.cnf] +- vcenter_compute_zones_create: + type: shell +- openstack-haproxy-cinder: + resources: + - File[/etc/haproxy/conf.d/070-cinder-api.cfg] + - Exec[concat_/etc/haproxy/conf.d/070-cinder-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_070-cinder-api.cfg/fragments/00_cinder-api_listen_block] +- ntp-server: + resources: [] +- murano-keystone: + no_puppet_run: true +- primary-openstack-network-agents-dhcp: + resources: + - Neutron_dhcp_agent_config[DEFAULT/debug] +- openstack-haproxy-heat: + resources: [] +- primary-openstack-controller: + resources: + - Nova_config[DEFAULT/quota_driver] + - Nova_config[DEFAULT/debug] + - Nova_config[DEFAULT/default_log_levels] +- openstack-cinder: + resources: + - Cinder_config[DEFAULT/scheduler_default_filters] + - Cinder_config[DEFAULT/default_log_levels] + - Cinder_config[DEFAULT/debug] +- keystone-db: + resources: + - File[/root/.my.cnf] +- sync_time: + type: shell +- configuration_symlink: + type: shell +- openstack-network-server-nova: + resources: [] +- copy_haproxy_keys: + type: copy_files +- primary-swift-proxy: + resources: + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_account_frag-account] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/00_swift_proxy] + - File[/etc/swift/proxy-server.conf] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_object_frag-object] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_server_frag-swift_server] + - Exec[concat_/etc/swift/proxy-server.conf] + - Exec[concat_/etc/rsyncd.conf] + - File[/etc/rsyncd.conf] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_container_frag-container] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_backups_frag-swift_backups] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/33_swift_ceilometer] +- openstack-network-networks: + resources: [] +- ssl-add-trust-chain: + no_puppet_run: true \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/mongo.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/mongo.yaml new file mode 100644 index 000000000..1a0bf27c8 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/mongo.yaml @@ -0,0 +1,60 @@ +tasks: +- update_hosts: + resources: [] +- clear_nodes_info: + type: skipped +- top-role-primary-mongo: + resources: [] +- copy_keys_ceph: + type: copy_files +- globals: + resources: [] +- fuel_pkgs: + resources: [] +- tools: + resources: [] +- rsync_core_puppet: + type: sync +- cgroups: + resources: [] +- upload_nodes_info: + type: skipped +- copy_keys: + type: copy_files +- override_configuration: + resources: [] +- setup_repositories: + resources: [] +- dns-client: + resources: [] +- allocate_hugepages: + resources: [] +- plugins_setup_repositories: + no_puppet_run: true +- ssl-keys-saving: + no_puppet_run: true +- upload_configuration: + type: upload_file +- firewall: + resources: [] +- logging: + resources: [] +- sync_time: + type: shell +- plugins_rsync: + resources: + - Exec[sync_time_shell] +- connectivity_tests: + resources: [] +- configuration_symlink: + type: shell +- hosts: + resources: [] +- copy_haproxy_keys: + type: copy_files +- ntp-client: + resources: [] +- ssl-add-trust-chain: + no_puppet_run: true +- reserved_ports: + resources: [] \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/nodes_settings.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/nodes_settings.yaml new file mode 100644 index 000000000..faacea06a --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/ensurability/nodes_settings.yaml @@ -0,0 +1,51 @@ +controller: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 +mongo: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 +compute: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/mongo.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/mongo.yaml index 04ca303ef..c40ecc738 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/mongo.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_1_mongo/mongo.yaml @@ -3,7 +3,7 @@ roles: tasks: - update_hosts: null - clear_nodes_info: - type: shell + type: skipped - top-role-primary-mongo: null - copy_keys_ceph: type: copy_files @@ -22,8 +22,6 @@ tasks: - dns-client: null - allocate_hugepages: null - plugins_setup_repositories: null - - upload_provision_data: - type: false - ssl-keys-saving: null - upload_configuration: type: upload_file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ceph-osd.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ceph-osd.yaml index 0688c51de..96d4374e3 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ceph-osd.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ceph-osd.yaml @@ -3,7 +3,7 @@ roles: tasks: - update_hosts: null - clear_nodes_info: - type: shell + type: skipped - copy_keys_ceph: type: copy_files - globals: null @@ -21,8 +21,6 @@ tasks: - dns-client: null - allocate_hugepages: null - plugins_setup_repositories: null - - upload_provision_data: - type: false - ssl-keys-saving: null - upload_configuration: type: upload_file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/compute.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/compute.yaml index d6a440126..94e4346eb 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/compute.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/compute.yaml @@ -6,7 +6,7 @@ tasks: type: skipped - openstack-network-common-config: null - clear_nodes_info: - type: shell + type: skipped - openstack-network-agents-sriov: null - copy_keys_ceph: type: copy_files @@ -29,8 +29,6 @@ tasks: - openstack-network-plugins-l2: null - allocate_hugepages: null - plugins_setup_repositories: null - - upload_provision_data: - type: false - ceph-compute: null - ssl-keys-saving: null - sriov_iommu_check: null diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/controller.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/controller.yaml index e0dec12df..25bc7f1c8 100644 --- a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/controller.yaml +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/controller.yaml @@ -136,7 +136,7 @@ tasks: - openstack-network-start: type: skipped - clear_nodes_info: - type: shell + type: skipped - murano-db: no_puppet_run: true - copy_keys_ceph: @@ -157,8 +157,6 @@ tasks: - enable_quorum: type: shell - openstack-haproxy-nova: null - - upload_provision_data: - type: false - openstack-network-server-config: null - primary-database: skip: diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/ceph-osd.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/ceph-osd.yaml new file mode 100644 index 000000000..8b9cb1659 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/ceph-osd.yaml @@ -0,0 +1,62 @@ +tasks: + - update_hosts: + resources: [] + - clear_nodes_info: + type: skipped + - copy_keys_ceph: + type: copy_files + - globals: + resources: [] + - fuel_pkgs: + resources: [] + - tools: + resources: [] + - rsync_core_puppet: + type: sync + - cgroups: + resources: [] + - upload_nodes_info: + type: skipped + - copy_keys: + type: copy_files + - override_configuration: + resources: [] + - setup_repositories: + resources: [] + - dns-client: + resources: [] + - allocate_hugepages: + resources: [] + - plugins_setup_repositories: + no_puppet_run: true + - ssl-keys-saving: + no_puppet_run: true + - upload_configuration: + type: upload_file + - firewall: + resources: [] + - top-role-ceph-osd: + resources: [] + - logging: + resources: [] + - updatedb: + no_puppet_run: true + - sync_time: + type: shell + - plugins_rsync: + resources: + - Exec[sync_time_shell] + - connectivity_tests: + resources: [] + - configuration_symlink: + type: shell + - hosts: + resources: [] + - copy_haproxy_keys: + type: copy_files + - ntp-client: + resources: [] + - ssl-add-trust-chain: + no_puppet_run: true + - reserved_ports: + resources: [] \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/cluster_settings.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/cluster_settings.yaml new file mode 100644 index 000000000..10eeda0c6 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/cluster_settings.yaml @@ -0,0 +1,427 @@ +access: + email: + type: text + value: admin_upd@localhost + password: + type: password + value: admin + tenant: + type: text + value: admin + user: + type: text + value: admin +additional_components: + ceilometer: + type: checkbox + value: false + heat: + type: hidden + value: false + ironic: + type: checkbox + value: false + mongo: + type: checkbox + value: false + murano: + type: checkbox + value: false + murano-cfapi: + type: checkbox + value: false + murano_glance_artifacts_plugin: + type: checkbox + value: false + sahara: + type: checkbox + value: false +common: + auth_key: + type: hidden + value: '' + auto_assign_floating_ip: + type: checkbox + value: true + debug: + type: checkbox + value: false + libvirt_type: + type: radio + value: qemu + nova_quota: + type: checkbox + value: true + propagate_task_deploy: + type: hidden + value: false + puppet_debug: + type: checkbox + value: false + resume_guests_state_on_host_boot: + type: checkbox + value: false + task_deploy: + type: hidden + value: true + use_cow_images: + type: checkbox + value: true + use_vcenter: + type: hidden + value: false +corosync: + group: + type: text + value: 226.94.1.1 + port: + type: text + value: '12000' + verified: + type: checkbox + value: false +external_mongo: + hosts_ip: + type: text + value: '' + mongo_db_name: + type: text + value: ceilometer + mongo_password: + type: password + value: ceilometer + mongo_replset: + type: text + value: '' + mongo_user: + type: text + value: ceilometer +kernel_params: + kernel: + type: text + value: console=tty0 net.ifnames=0 biosdevname=0 rootdelay=90 nomodeset +murano_settings: + murano_repo_url: + type: text + value: http://storage.apps.openstack.org/ +neutron_advanced_configuration: + neutron_dvr: + type: checkbox + value: false + neutron_l2_pop: + type: checkbox + value: false + neutron_l3_ha: + type: checkbox + value: false + neutron_qos: + type: checkbox + value: false +operator_user: + authkeys: + type: textarea + value: '' + homedir: + type: text + value: /home/fueladmin + name: + type: text + value: fueladmin + password: + type: password + value: xalFdhQSGrB7xgdPrPiM3vZm + sudo: + type: textarea + value: 'ALL=(ALL) NOPASSWD: ALL' +provision: + method: + type: hidden + value: image + packages: + type: textarea + value: 'acl + + anacron + + bash-completion + + bridge-utils + + bsdmainutils + + build-essential + + cloud-init + + curl + + daemonize + + debconf-utils + + gdisk + + grub-pc + + hpsa-dkms + + hwloc + + i40e-dkms + + linux-firmware + + linux-firmware-nonfree + + linux-headers-generic-lts-trusty + + linux-image-generic-lts-trusty + + lvm2 + + mcollective + + mdadm + + multipath-tools + + multipath-tools-boot + + nailgun-agent + + nailgun-mcagents + + network-checker + + ntp + + openssh-client + + openssh-server + + puppet + + python-amqp + + ruby-augeas + + ruby-ipaddress + + ruby-json + + ruby-netaddr + + ruby-openstack + + ruby-shadow + + ruby-stomp + + telnet + + ubuntu-minimal + + ubuntu-standard + + uuid-runtime + + vim + + virt-what + + vlan + + ' +public_network_assignment: + assign_to_all_nodes: + type: checkbox + value: false +public_ssl: + cert_data: + type: file + value: + content: '-----BEGIN CERTIFICATE----- + + MIIC7TCCAdUCAgPoMA0GCSqGSIb3DQEBBQUAMDwxHjAcBgNVBAsMFU1pcmFudGlz + + IEZ1ZWwtUUEgVGVhbTEaMBgGA1UEAwwRcHVibGljLmZ1ZWwubG9jYWwwHhcNMTYw + + NDE5MTkxMTU1WhcNMjYwNDE3MTkxMTU1WjA8MR4wHAYDVQQLDBVNaXJhbnRpcyBG + + dWVsLVFBIFRlYW0xGjAYBgNVBAMMEXB1YmxpYy5mdWVsLmxvY2FsMIIBIjANBgkq + + hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoZBouZH+0S1jPYy+FxvNAkdGxsNVzsOI + + g7OybWx+DIskdRvONwrCFFtvP2InKJowPCebGcCqDqGF2zgFLmA9yQN/05A9f8bX + + hFrtjfNb/YYJxDE4itSYNgSzSfnitii7AJme9UBw94s0p3749irGTB++ZhcPzwdg + + Nx0Ymk2uFFNU18YxSx8PAk2w73a36t61E0P++MT6sYIM1GAx+9pm9Ddrj5r0b/M7 + + ikHGIUuB7M6t3mNHUveld+ZyXjaONMHZI5WQ16AMZwtHunUu/42k+o6RSS4h+zT8 + + ZiWW5cxZVLn6xqJkDkXMDdsS7PrveSuODq3LuaG4fwRpf1u2hqvyuwIDAQABMA0G + + CSqGSIb3DQEBBQUAA4IBAQBfAjtVxKItKMFAQl/EufHjk4rBpRiaHGLH2CIJHWJ1 + + i+z7gI5XazzwMCprOxsCUrJUpr8ChobenyebNPJSnDI0R0z8ZTX6kTNk7A2ZFVrp + + lL5TlpwhdtUjWxF3Coi+w694MbyLmJ4pA6QZTYVqSilZZ1cncLNA+Fc97STfLukK + + wqjwCYovRVjUn4jLRjy2kcw89060xxZopVpkY9cPfg0P+PICo/eS4EunQ5rd/EDV + + 7DBfCbzthArBjF8/72J8PYhqwEc+i5PDkn2CNIXoT0coxC9YAHJ+zFHgxHnKa0/q + + TPlvi+wJKrrSnXb5Oc34tVOxDF/WQjNuve8vHg7hvaIM + + -----END CERTIFICATE----- + + -----BEGIN PRIVATE KEY----- + + MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChkGi5kf7RLWM9 + + jL4XG80CR0bGw1XOw4iDs7JtbH4MiyR1G843CsIUW28/YicomjA8J5sZwKoOoYXb + + OAUuYD3JA3/TkD1/xteEWu2N81v9hgnEMTiK1Jg2BLNJ+eK2KLsAmZ71QHD3izSn + + fvj2KsZMH75mFw/PB2A3HRiaTa4UU1TXxjFLHw8CTbDvdrfq3rUTQ/74xPqxggzU + + YDH72mb0N2uPmvRv8zuKQcYhS4Hszq3eY0dS96V35nJeNo40wdkjlZDXoAxnC0e6 + + dS7/jaT6jpFJLiH7NPxmJZblzFlUufrGomQORcwN2xLs+u95K44Orcu5obh/BGl/ + + W7aGq/K7AgMBAAECggEAI6RyFg5JQuhabmewP/TYI1qKGKtbMMQeR7/K6yz2GdpQ + + bq11rtrmugr53efPb7ukTIEITIQegB/OIfCX5AVDXCczef7mMlwxi3dr1NcNQj7h + + xLB/ItGHytL6oqVICJuvtZAuaziOM244bYMrdVM2b/DI1kjcKfYcmcwHc3MTplPq + + Nh+L5u2ue6bYvT+XRF4KrwuKmKuyJghyMeoiLI9JupkKw79ZB/l0Mh8vmxKMPj8g + + MNxoJbwoTkjQxuJELmet+ysBg2KT+gJEirfRmZiouDxx8Zukd8O6YvnlsOiRFokX + + 05r33fna1z5IBpGnwe+rn6pQaeXflSd6dqotoBp4QQKBgQDLrhAdsZnDXDpYuOv+ + + ITMpc33J4NW7yE+26ebzWkLYRUW5i7YDCtJdFi5pHCeA3+QD3RlYiinQlzcy3i3R + + 4Uv4riuKyDbgaw9sYOhmgluhPKDuznEWXomloEVu8jFrHg3TKY2v/GCcv99N5grQ + + Jg9rScFpZXkTj23KzqHf23uTEQKBgQDLENH7QzoNsBv6eS7kElBx3BQWNa0dhXab + + kRXo62/++tIDGMkzaq38hsjcAZi8uZDZY0QJTmBMdZN3LLBln5C2g8Y6Eym5ITvf + + pxkMUK0++MygbK/Vwmp+xu7XMiPNMG/E8NqQkca3F/6Ld08PAauZ8gpgoAsnjlNg + + pPUdWRCRCwKBgEiEB17bDXidjHRsGjFXVqTKZp2Ke+4oaiEgc8Zue2AOgb2GvV2l + + 67GSpSFtEa9zhvXNMSnxvuNyAwgMTFnuEaNPN1do4wjRdSNL+VIN1Vu5fz6mp2Kk + + c/NQ9YeDmQ6fG6Lzp2thum/0bCeK4IytEE5NaxwAMbRCG3/aQ4200fFRAoGAMwg5 + + HSIZ9tKpVVsbE6oemV6rlaFLrj2aPyJJFU4FyViTar/R4KAQtYPR+qhUECm6Y0d1 + + E7mkrdJmiu6qLf/ZyGR5bqLeO25Es8I0o0mrIEY6dp6Z2eiQBuhLob0yDiD8FcxJ + + wUdBX0YibD5Bmg3baEbRoNLXussj3QfXqdZ2OV0CgYEAyovcXc1ibwrwNO59yw99 + + 7zCoMFjXzZgtxn5JQDwMsdt9UKd/4nOPbbiRPL3ynr5zboDZzRxihXB5zzKjrYlE + + o4QZIWV0VgGS2eQSni3CGOsG4VhE4/9EFF7UqeA0hYkGAZMS+EKSdPpIujStD/ck + + sQ/BZiYxMSE8+synlzp3gss= + + -----END PRIVATE KEY----- + + ' + name: ca.pem + cert_source: + type: radio + value: user_uploaded + horizon: + type: checkbox + value: false + hostname: + type: text + value: public.fuel.local + services: + type: checkbox + value: false +service_user: + homedir: + type: hidden + value: /var/lib/fuel + name: + type: hidden + value: fuel + password: + type: hidden + value: WEwz5aKA0hYDrcERjX7irQzS + root_password: + type: hidden + value: r00tme + sudo: + type: hidden + value: 'ALL=(ALL) NOPASSWD: ALL' +storage: + admin_key: + type: hidden + value: AQDzghZXAAAAABAA7obspvgNjPa/HBWSOUzI1w== + bootstrap_osd_key: + type: hidden + value: AQDzghZXAAAAABAAWaiWslWwse+hsaKLzbtQFw== + ephemeral_ceph: + type: checkbox + value: false + fsid: + type: hidden + value: 4b0ab6f5-b82b-44e4-ac3a-15c76f960b82 + images_ceph: + type: checkbox + value: false + images_vcenter: + type: checkbox + value: false + mon_key: + type: hidden + value: AQDzghZXAAAAABAAVi1udBHvkQbZbDgNnT7gXA== + objects_ceph: + type: checkbox + value: false + osd_pool_size: + type: text + value: '3' + radosgw_key: + type: hidden + value: AQDzghZXAAAAABAA8jY8KftsCK4l726rNdu/Zg== + volumes_block_device: + type: checkbox + value: true + volumes_ceph: + type: checkbox + value: false + volumes_lvm: + type: checkbox + value: true +syslog: + syslog_port: + type: text + value: '514' + syslog_server: + type: text + value: '' + syslog_transport: + type: radio + value: tcp +workloads_collector: + enabled: + type: hidden + value: false + password: + type: password + value: 8qtWdXhhY84wFoxwBbZcpq3P + tenant: + type: text + value: services + user: + type: text + value: fuel_stats_user diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/compute.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/compute.yaml new file mode 100644 index 000000000..1b088197f --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/compute.yaml @@ -0,0 +1,89 @@ +tasks: + - update_hosts: + resources: [] + - openstack-network-start: + type: skipped + - openstack-network-common-config: + resources: [] + - clear_nodes_info: + type: skipped + - openstack-network-agents-sriov: + resources: [] + - copy_keys_ceph: + type: copy_files + - globals: + resources: [] + - fuel_pkgs: + resources: [] + - openstack-network-agents-l3: + resources: [] + - openstack-network-agents-metadata: + resources: [] + - tools: + resources: [] + - rsync_core_puppet: + type: sync + - enable_nova_compute_service: + resources: [] + - cgroups: + resources: [] + - upload_nodes_info: + type: skipped + - copy_keys: + type: copy_files + - override_configuration: + resources: [] + - setup_repositories: + resources: [] + - dns-client: + resources: [] + - openstack-network-plugins-l2: + resources: [] + - allocate_hugepages: + resources: [] + - plugins_setup_repositories: + no_puppet_run: true + - ceph-compute: + no_puppet_run: true + - ssl-keys-saving: + no_puppet_run: true + - sriov_iommu_check: + resources: + - Exec[sriov_iommu_check] + - openstack-network-end: + type: skipped + - ceilometer-compute: + no_puppet_run: true + - upload_configuration: + type: upload_file + - firewall: + resources: [] + - logging: + resources: [] + - top-role-compute: + resources: + - Notify[Module openstack_tasks cannot notify service nova-compute on packages + update] + - Nova_config[DEFAULT/resume_guests_state_on_host_boot] + - Nova_config[vnc/novncproxy_base_url] + - Service[nova-compute] + - sync_time: + type: shell + - openstack-network-compute-nova: + resources: [] + - plugins_rsync: + no_puppet_run: true + - connectivity_tests: + resources: [] + - configuration_symlink: + type: shell + - hosts: + resources: [] + - copy_haproxy_keys: + type: copy_files + - ntp-client: + resources: [] + - ssl-add-trust-chain: + no_puppet_run: true + - reserved_ports: + resources: [] \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/controller.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/controller.yaml new file mode 100644 index 000000000..0b6118137 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/controller.yaml @@ -0,0 +1,410 @@ +tasks: + - ironic_post_swift_key: + type: shell + - openstack-haproxy-mysqld: + resources: [] + - cinder-db: + resources: [] + - dump_rabbitmq_definitions: + resources: + - Dump_rabbitmq_definitions[/etc/rabbitmq/definitions.full] + - rsync_core_puppet: + type: sync + - ssl-dns-setup: + resources: + - Exec[rsync_core_puppet_shell] + - ceilometer-controller: + no_puppet_run: true + - override_configuration: + resources: [] + - ceilometer-keystone: + no_puppet_run: true + - nova-db: + resources: [] + - workloads_collector_add: + resources: [] + - primary-openstack-network-plugins-l2: + resources: [] + - radosgw-keystone: + resources: [] + - virtual_ips: + resources: [] + - primary-dns-server: + resources: [] + - openstack-haproxy-murano: + resources: [] + - openstack-network-end: + type: skipped + - openstack-haproxy-radosgw: + resources: [] + - openstack-haproxy-swift: + resources: [] + - heat-db: + resources: [] + - openstack-haproxy-neutron: + resources: [] + - updatedb: + no_puppet_run: true + - ironic-db: + no_puppet_run: true + - plugins_rsync: + no_puppet_run: true + - ceilometer-radosgw-user: + no_puppet_run: true + - openstack-haproxy-keystone: + resources: [] + - hosts: + resources: [] + - primary-rabbitmq: + resources: [] + - primary-cluster-haproxy: + resources: [] + - openstack-network-routers: + resources: [] + - reserved_ports: + resources: [] + - controller_remaining_tasks: + resources: [] + - glance-keystone: + resources: [] + - openstack-haproxy-aodh: + resources: [] + - murano-cfapi: + no_puppet_run: true + - vmware-vcenter: + no_puppet_run: true + - ironic-compute: + no_puppet_run: true + - primary-openstack-network-agents-metadata: + resources: [] + - cinder-keystone: + resources: [] + - copy_keys: + type: copy_files + - enable_rados: + no_puppet_run: true + - ntp-check: + resources: [] + - aodh-db: + no_puppet_run: true + - disable_keystone_service_token: + resources: [] + - umm: + resources: [] + - memcached: + resources: [] + - allocate_hugepages: + resources: [] + - openrc-delete: + resources: + - File[/root/openrc] + - plugins_setup_repositories: + no_puppet_run: true + - sahara-keystone: + no_puppet_run: true + - openstack-haproxy-sahara: + resources: [] + - ssl-keys-saving: + no_puppet_run: true + - primary-cluster: + resources: [] + - upload_cirros: + type: shell + - primary-keystone: + resources: + - File[/root/openrc] + - primary-openstack-network-agents-l3: + resources: [] + - upload_configuration: + type: upload_file + - create-cinder-types: + resources: [] + - neutron-keystone: + resources: + - Keystone_endpoint[RegionOne/neutron::network] + - logging: + resources: [] + - nova-keystone: + resources: + - Keystone_endpoint[RegionOne/nova::compute] + - Keystone_endpoint[RegionOne/novav3::computev3] + - update_hosts: + resources: [] + - ironic-keystone: + no_puppet_run: true + - connectivity_tests: + resources: [] + - swift-storage: + resources: [] + - primary-heat: + resources: + - Heat_config[keystone_authtoken/auth_uri] + - conntrackd: + resources: [] + - sahara-db: + no_puppet_run: true + - horizon: + resources: + - File[/var/lib/puppet/concat/_etc_openstack-dashboard_local_settings.py/fragments/50_local_settings.py] + - File[/etc/openstack-dashboard/local_settings.py] + - Exec[concat_/etc/openstack-dashboard/local_settings.py] + - openstack-haproxy-ceilometer: + resources: [] + - openstack-network-common-config: + resources: [] + - firewall: + resources: [] + - apache: + resources: [] + - globals: + resources: + - File[/etc/hiera/globals.yaml] + - aodh-keystone: + no_puppet_run: true + - glance: + resources: + - Glance_swift_config[ref1/user] + - Glance_glare_config[glance_store/swift_store_create_container_on_put] + - Glance_glare_config[glance_store/swift_store_config_file] + - Package[swift] + - Glance_api_config[glance_store/default_store] + - Glance_api_config[glance_store/swift_store_create_container_on_put] + - Glance_swift_config[ref1/auth_address] + - Glance_api_config[glance_store/swift_store_endpoint_type] + - Glance_glare_config[DEFAULT/default_log_levels] + - Glance_api_config[glance_store/stores] + - Glance_cache_config[DEFAULT/image_cache_max_size] + - Glance_glare_config[glance_store/default_store] + - Glance_registry_config[DEFAULT/default_log_levels] + - Glance_api_config[DEFAULT/default_log_levels] + - Glance_glare_config[glance_store/swift_store_region] + - Glance_cache_config[DEFAULT/debug] + - Glance_glare_config[glance_store/swift_store_endpoint_type] + - Glance_api_config[DEFAULT/debug] + - Glance_glare_config[DEFAULT/debug] + - Glance_api_config[glance_store/swift_store_config_file] + - Glance_api_config[DEFAULT/show_image_direct_url] + - Glance_glare_config[glance_store/stores] + - Glance_api_config[glance_store/default_swift_reference] + - Glance_glare_config[glance_store/swift_store_large_object_size] + - Glance_registry_config[DEFAULT/debug] + - Glance_api_config[glance_store/swift_store_large_object_size] + - Glance_glare_config[glance_store/default_swift_reference] + - Glance_swift_config[ref1/key] + - Glance_glare_config[glance_store/swift_store_container] + - Glance_api_config[glance_store/swift_store_container] + - Glance_api_config[glance_store/swift_store_region] + - tools: + resources: [] + - openstack-haproxy: + resources: [] + - cgroups: + resources: [] + - murano-cfapi-keystone: + no_puppet_run: true + - aodh: + no_puppet_run: true + - ceph_create_pools: + no_puppet_run: true + - openstack-haproxy-ironic: + no_puppet_run: true + - setup_repositories: + resources: [] + - openstack-network-routers-ha: + no_puppet_run: true + - glance-db: + resources: [] + - neutron-db: + resources: [] + - ironic_upload_images: + type: shell + - swift-rebalance-cron: + resources: + - File[/usr/local/bin/swift-rings-rebalance.sh] + - Cron[swift-rings-rebalance] + - primary-ceph-mon: + resources: [] + - openstack-haproxy-stats: + resources: [] + - ironic-api: + no_puppet_run: true + - primary-ceph-radosgw: + resources: [] + - dns-client: + resources: [] + - cluster-vrouter: + resources: [] + - murano-rabbitmq: + no_puppet_run: true + - api-proxy: + resources: [] + - cluster_health: + resources: [] + - heat-keystone: + resources: + - Keystone_endpoint[RegionOne/heat-cfn::cloudformation] + - Keystone_endpoint[RegionOne/heat::orchestration] + - openstack-haproxy-horizon: + resources: + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/00_horizon_listen_block] + - File[/etc/haproxy/conf.d/015-horizon.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_015-horizon.cfg/fragments/01-horizon_horizon_balancermember_horizon] + - Exec[concat_/etc/haproxy/conf.d/015-horizon.cfg] + - openstack-network-start: + type: skipped + - clear_nodes_info: + type: skipped + - murano-db: + resources: + - Exec[clear_nodes_info_shell] + - copy_keys_ceph: + type: copy_files + - sahara: + no_puppet_run: true + - fuel_pkgs: + resources: [] + - swift-keystone: + resources: + - Keystone_role[SwiftOperator] + - Keystone_user[swift] + - Keystone_endpoint[RegionOne/swift::object-store] + - Keystone_user_role[swift@services] + - Keystone_service[swift_s3::s3] + - Keystone_endpoint[RegionOne/swift_s3::s3] + - public_vip_ping: + resources: [] + - upload_nodes_info: + type: skipped + - openstack-haproxy-glance: + resources: + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_080-glance-api.cfg/fragments/00_glance-api_listen_block] + - Exec[concat_/etc/haproxy/conf.d/080-glance-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_081-glance-glare.cfg/fragments/00_glance-glare_listen_block] + - File[/etc/haproxy/conf.d/080-glance-api.cfg] + - Exec[concat_/etc/haproxy/conf.d/081-glance-glare.cfg] + - File[/etc/haproxy/conf.d/081-glance-glare.cfg] + - murano: + no_puppet_run: true + - ceph_ready_check: + type: shell + - enable_quorum: + type: shell + - openstack-haproxy-nova: + resources: + - File[/etc/haproxy/conf.d/040-nova-api.cfg] + - File[/etc/haproxy/conf.d/170-nova-novncproxy.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_040-nova-api.cfg/fragments/00_nova-api_listen_block] + - Exec[concat_/etc/haproxy/conf.d/040-nova-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_170-nova-novncproxy.cfg/fragments/00_nova-novncproxy_listen_block] + - Exec[concat_/etc/haproxy/conf.d/170-nova-novncproxy.cfg] + - openstack-network-server-config: + resources: [] + - primary-database: + resources: + - File[/root/.my.cnf] + - vcenter_compute_zones_create: + type: shell + - openstack-haproxy-cinder: + resources: + - File[/etc/haproxy/conf.d/070-cinder-api.cfg] + - Exec[concat_/etc/haproxy/conf.d/070-cinder-api.cfg] + - File[/var/lib/puppet/concat/_etc_haproxy_conf.d_070-cinder-api.cfg/fragments/00_cinder-api_listen_block] + - ntp-server: + resources: [] + - murano-keystone: + no_puppet_run: true + - primary-openstack-network-agents-dhcp: + resources: + - Neutron_dhcp_agent_config[DEFAULT/debug] + - openstack-haproxy-heat: + resources: [] + - primary-openstack-controller: + resources: + - Nova_config[DEFAULT/quota_driver] + - Nova_config[DEFAULT/debug] + - Nova_config[DEFAULT/default_log_levels] + - openstack-cinder: + resources: + - Cinder_config[DEFAULT/scheduler_default_filters] + - Cinder_config[DEFAULT/default_log_levels] + - Cinder_config[DEFAULT/debug] + - keystone-db: + resources: + - File[/root/.my.cnf] + - sync_time: + type: shell + - configuration_symlink: + type: shell + - openstack-network-server-nova: + resources: [] + - copy_haproxy_keys: + type: copy_files + - primary-swift-proxy: + resources: + - Swift_dispersion_config[dispersion/dispersion_coverage] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/81_swift_container_quotas] + - Ring_account_device[10.109.2.2:6002/1] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf] + - File[/etc/swift/dispersion.conf] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/31_swift-proxy-formpost] + - Package[swift-proxy] + - Exec[create_account] + - Swift_dispersion_config[dispersion/auth_url] + - Swift_dispersion_config[dispersion/dump_json] + - Ring_container_device[10.109.2.2:6001/2] + - File[/var/lib/swift] + - File[/etc/xinetd.d/rsync] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/00_swift_proxy] + - Swift_dispersion_config[dispersion/concurrency] + - File[/etc/swift/swift.conf] + - Swift_config[swift-hash/swift_hash_path_suffix] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/25_swift_healthcheck] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/80_swift_account_quotas] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/35_swift_slo] + - Swift_dispersion_config[dispersion/retries] + - File[/var/cache/swift] + - File[/etc/swift/proxy-server.conf] + - Package[swift-plugin-s3] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_server_frag-swift_server] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/24_swift_catch_errors] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/28_swift_s3token] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/35_swift_crossdomain] + - File[/var/run/swift] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments.concat] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/29_swift-proxy-tempurl] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/26_swift_ratelimit] + - Swift_dispersion_config[dispersion/auth_user] + - Swift_dispersion_config[dispersion/endpoint_type] + - Exec[create_object] + - Ring_object_device[10.109.2.2:6000/1] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf] + - Swift_dispersion_config[dispersion/auth_key] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments.concat.out] + - Exec[create_container] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/23_swift_cache] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/32_swift-proxy-staticweb] + - Swift_dispersion_config[dispersion/auth_version] + - Exec[concat_/etc/swift/proxy-server.conf] + - Ring_object_device[10.109.2.2:6000/2] + - Exec[concat_/etc/rsyncd.conf] + - Service[swift-proxy-server] + - Swift_dispersion_config[dispersion/swift_dir] + - File[/etc/rsyncd.conf] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/79_swift_keystone] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/00_header_rsyncd_conf_header] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/27_swift_swift3] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments.concat] + - Ring_account_device[10.109.2.2:6002/2] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/22_swift_authtoken] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments] + - Ring_container_device[10.109.2.2:6001/1] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments/10_swift_backups_frag-swift_backups] + - Swift_config[swift-constraints/max_header_size] + - File[/var/lib/puppet/concat/_etc_rsyncd.conf/fragments.concat.out] + - File[/etc/swift] + - File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/21_swift_bulk] + - openstack-network-networks: + resources: [] + - ssl-add-trust-chain: + no_puppet_run: true \ No newline at end of file diff --git a/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/nodes_settings.yaml b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/nodes_settings.yaml new file mode 100644 index 000000000..e1d8e93e9 --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/fixtures/1_ctrl_1_cmp_3_ceph/ensurability/nodes_settings.yaml @@ -0,0 +1,51 @@ +controller: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 +ceph-osd: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 +compute: + cpu_pinning: + dpdk: + type: number + value: 1 + nova: + type: number + value: 1 + hugepages: + dpdk: + type: number + value: 128 + nova: + type: custom_hugepages + value: + '1048576': 1 + '2048': 550 diff --git a/fuelweb_test/tests/tests_lcm/test_ensurability.py b/fuelweb_test/tests/tests_lcm/test_ensurability.py new file mode 100644 index 000000000..82b30cd2c --- /dev/null +++ b/fuelweb_test/tests/tests_lcm/test_ensurability.py @@ -0,0 +1,324 @@ +# Copyright 2016 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import yaml + +from proboscis.asserts import assert_true +from proboscis import test + +from fuelweb_test.helpers.decorators import log_snapshot_after_test +from fuelweb_test.helpers.ssh_manager import SSHManager +from fuelweb_test import logger +from fuelweb_test.tests.tests_lcm.base_lcm_test import DeprecatedFixture +from fuelweb_test.tests.tests_lcm.base_lcm_test import LCMTestBasic +from fuelweb_test.tests.tests_lcm.base_lcm_test import SetupLCMEnvironment + + +@test(groups=['test_ensurability']) +class TaskEnsurability(LCMTestBasic): + """Test suite for verification of deployment tasks ensurability.""" + + @staticmethod + def delete_astute_log(): + """Delete astute.log file(s) on master node. + + This is to ensure that no unwanted tasks are used by tests (e.g. from + previous deployments). + + :return: None + """ + ssh = SSHManager() + ssh.execute_on_remote(ssh.admin_ip, "rm /var/log/astute/astute*") + ssh.execute_on_remote(ssh.admin_ip, "systemctl restart astute.service") + + def deploy_fixtures(self, deployment, cluster_id, slave_nodes): + """Apply stored settings and deploy the changes + + :param deployment: str, name of cluster configuration under test + :param cluster_id: int, cluster ID + :param slave_nodes: list, cluster nodes data + :return: None + """ + self.delete_astute_log() + cluster_f, nodes_f = self.load_settings_fixtures(deployment) + + self.fuel_web.client.update_cluster_attributes( + cluster_id, {'editable': cluster_f}) + for node in slave_nodes: + self.fuel_web.client.upload_node_attributes( + nodes_f[self.node_roles(node)], node["id"]) + + self.fuel_web.deploy_cluster_changes_wait(cluster_id) + + def generate_tasks_fixture(self, deployment, cluster_id, slave_nodes): + """Collect per-node fixtures for tasks executed on deploying changes + + :param deployment: str, name of env configuration under test + :param cluster_id: int, cluster ID + :param slave_nodes: list, cluster nodes data + :return: None + """ + # For each node get list of tasks executed during end-to-end redeploy + tasks = {} + for node in slave_nodes: + tasks[self.node_roles(node)] = self.get_nodes_tasks(node["id"]) + + # Revert snapshot and collect fixtures for the executed tasks + # by running each one separately + self.env.revert_snapshot('lcm_deploy_{}'.format(deployment)) + + cluster_f, _ = self.load_settings_fixtures(deployment) + self.fuel_web.client.update_cluster_attributes( + cluster_id, {'editable': cluster_f}) + + result = {} + tasks_description = self.env.admin_actions.get_tasks_description() + for node in slave_nodes: + task_fixture = [] + node_ref = self.node_roles(node) + + for task in tasks[node_ref]: + self.fuel_web.execute_task_on_node( + task, node['id'], cluster_id) + + task_type = self.get_task_type(tasks_description, task) + if task_type != "puppet": + logger.info( + "Executed non-puppet {0} task on node {1}; skip " + "collecting fixture for it".format(task, node['id'])) + task_fixture.append({task: {"type": task_type}}) + continue + + try: + report = self.get_puppet_report(node) + except AssertionError: + task_fixture.append({task: {"no_puppet_run": True}}) + logger.info("Unexpected no_puppet_run for task: " + "{}".format(task)) + continue + + # Remember resources that were changed by the task + task_resources = [] + for res_name, res_stats in report['resource_statuses'].items(): + if res_stats['changed']: + logger.info("Task {} changed resource(s): " + "{}".format(task, res_name)) + task_resources.append(res_name) + task_fixture.append({task: {"resources": task_resources}}) + logger.info("Task {} on node {} was executed " + "successfully".format(task, node['id'])) + + result.update({ + node_ref: { + "tasks": task_fixture + } + }) + + logger.info("Generated tasks fixture:\n{}".format( + yaml.safe_dump(result, default_flow_style=False))) + + def check_ensurability(self, deployment, cluster_id, slave_nodes): + """Check ensurability of tasks for the given env configuration. + + :param deployment: str, name of env configuration under test + :param cluster_id: int, cluster ID + :param slave_nodes: list, cluster nodes data + :return: None + """ + # Revert snapshot to run each task separately + self.env.revert_snapshot('lcm_deploy_{}'.format(deployment)) + + # Apply the stored settings + cluster_f, nodes_f = self.load_settings_fixtures(deployment) + for node in slave_nodes: + self.fuel_web.client.upload_node_attributes( + nodes_f[self.node_roles(node)], node["id"]) + self.fuel_web.client.update_cluster_attributes( + cluster_id, {'editable': cluster_f}) + + result = {} + ensurable = True + for node in slave_nodes: + fixture = self.load_fixture( + deployment, self.node_roles(node), idmp=False) + nonensurable_tasks = {} + + for task in fixture["tasks"]: + task_name, task_data = task.items()[0] + self.fuel_web.execute_task_on_node( + task_name, node['id'], cluster_id) + + if task_data["type"] != "puppet": + logger.info( + "Executed non-puppet {0} task on node {1}; skip " + "checks for it".format(task_name, node['id'])) + continue + + try: + report = self.get_puppet_report(node) + except AssertionError: + if not task_data.get("no_puppet_run"): + logger.info("Unexpected no_puppet_run for task: " + "{}".format(task_name)) + continue + + task_resources = [] + for res_name, res_stats in report['resource_statuses'].items(): + if res_stats['changed']: + logger.info("Task {} changed resource: " + "{}".format(task_name, res_name)) + task_resources.append(res_name) + + expected_resources = task_data["resources"] + if sorted(task_resources) != sorted(expected_resources): + ensurable = False + logger.info("Task {} was executed on node {} and is not " + "ensurable".format(task_name, node['id'])) + nonensurable_tasks.update({ + task_name: { + "actual": task_resources, + "expected": expected_resources + } + }) + else: + logger.info("Task {} on node {} was executed " + "successfully".format(task_name, node['id'])) + result[self.node_roles(node)] = nonensurable_tasks + + logger.info('Non-ensurable tasks:\n{}'.format( + yaml.safe_dump(result, default_flow_style=False))) + return ensurable + + @test(depends_on=[SetupLCMEnvironment.lcm_deploy_1_ctrl_1_cmp_1_cinder], + groups=['ensurability_1_ctrl_1_cmp_1_cinder']) + @log_snapshot_after_test + def ensurability_1_ctrl_1_cmp_1_cinder(self): + """Test ensurability for cluster with cinder + + Scenario: + 1. Revert the snapshot 'lcm_deploy_1_ctrl_1_cmp_1_cinder' + 2. Check that stored setting fixtures are up to date + 3. Check that stored task fixtures are up to date + 4. Check ensurability of the tasks + + Snapshot: "ensurability_1_ctrl_1_cmp_1_cinder" + """ + self.show_step(1) + deployment = "1_ctrl_1_cmp_1_cinder" + self.env.revert_snapshot('lcm_deploy_{}'.format(deployment)) + + cluster_id = self.fuel_web.get_last_created_cluster() + slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id) + + self.show_step(2) + self.check_settings_consistency(deployment, cluster_id) + + self.show_step(3) + self.deploy_fixtures(deployment, cluster_id, slave_nodes) + node_refs = self.check_extra_tasks(slave_nodes, deployment, idmp=False) + if node_refs: + self.generate_tasks_fixture(deployment, cluster_id, slave_nodes) + msg = ('Please update ensurability fixtures in the repo ' + 'according to generated fixtures') + raise DeprecatedFixture(msg) + + self.show_step(4) + assert_true( + self.check_ensurability(deployment, cluster_id, slave_nodes), + "There are not ensurable tasks. " + "Please take a look at the output above!") + + self.env.make_snapshot('ensurability_{}'.format(deployment)) + + @test(depends_on=[SetupLCMEnvironment.lcm_deploy_1_ctrl_1_cmp_1_mongo], + groups=['ensurability_1_ctrl_1_cmp_1_mongo']) + @log_snapshot_after_test + def ensurability_1_ctrl_1_cmp_1_mongo(self): + """Test ensurability for cluster with mongo + + Scenario: + 1. Revert the snapshot 'lcm_deploy_1_ctrl_1_cmp_1_mongo' + 2. Check that stored setting fixtures are up to date + 3. Check that stored task fixtures are up to date + 4. Check ensurability of the tasks + + Snapshot: "ensurability_1_ctrl_1_cmp_1_mongo" + """ + self.show_step(1) + deployment = "1_ctrl_1_cmp_1_mongo" + self.env.revert_snapshot('lcm_deploy_{}'.format(deployment)) + + cluster_id = self.fuel_web.get_last_created_cluster() + slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id) + + self.show_step(2) + self.check_settings_consistency(deployment, cluster_id) + + self.show_step(3) + self.deploy_fixtures(deployment, cluster_id, slave_nodes) + node_refs = self.check_extra_tasks(slave_nodes, deployment, idmp=False) + if node_refs: + self.generate_tasks_fixture(deployment, cluster_id, slave_nodes) + msg = ('Please update ensurability fixtures in the repo ' + 'according to generated fixtures') + raise DeprecatedFixture(msg) + + self.show_step(4) + assert_true( + self.check_ensurability(deployment, cluster_id, slave_nodes), + "There are not ensurable tasks. " + "Please take a look at the output above!") + + self.env.make_snapshot('ensurability_{}'.format(deployment)) + + @test(depends_on=[SetupLCMEnvironment.lcm_deploy_1_ctrl_1_cmp_3_ceph], + groups=['ensurability_1_ctrl_1_cmp_3_ceph']) + @log_snapshot_after_test + def ensurability_1_ctrl_1_cmp_3_ceph(self): + """Test ensurability for cluster with ceph + + Scenario: + 1. Revert the snapshot 'lcm_deploy_1_ctrl_1_cmp_3_ceph' + 2. Check that stored setting fixtures are up to date + 3. Check that stored task fixtures are up to date + 4. Check ensurability of the tasks + + Snapshot: "ensurability_1_ctrl_1_cmp_3_ceph" + """ + self.show_step(1) + deployment = "1_ctrl_1_cmp_3_ceph" + self.env.revert_snapshot('lcm_deploy_{}'.format(deployment)) + + cluster_id = self.fuel_web.get_last_created_cluster() + slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id) + + self.show_step(2) + self.check_settings_consistency(deployment, cluster_id) + + self.show_step(3) + self.deploy_fixtures(deployment, cluster_id, slave_nodes) + node_refs = self.check_extra_tasks(slave_nodes, deployment, idmp=False) + if node_refs: + self.generate_tasks_fixture(deployment, cluster_id, slave_nodes) + msg = ('Please update ensurability fixtures in the repo ' + 'according to generated fixtures') + raise DeprecatedFixture(msg) + + self.show_step(4) + assert_true( + self.check_ensurability(deployment, cluster_id, slave_nodes), + "There are not ensurable tasks. " + "Please take a look at the output above!") + + self.env.make_snapshot('ensurability_{}'.format(deployment)) diff --git a/fuelweb_test/tests/tests_lcm/test_idempotency.py b/fuelweb_test/tests/tests_lcm/test_idempotency.py index 7bd2928d4..f26b9e255 100644 --- a/fuelweb_test/tests/tests_lcm/test_idempotency.py +++ b/fuelweb_test/tests/tests_lcm/test_idempotency.py @@ -56,7 +56,8 @@ class TaskIdempotency(LCMTestBasic): .format(task_name)) continue - self.execute_task_on_node(task_name, node, cluster_id) + self.fuel_web.execute_task_on_node(task_name, node["id"], + cluster_id) try: report = self.get_puppet_report(node)