aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorGiulio Fidente <gfidente@redhat.com>2017-02-28 18:55:55 +0100
committerGiulio Fidente <gfidente@redhat.com>2017-03-15 17:46:40 +0100
commit126e207ca7fa917a4cca71ccdd10704fe533a591 (patch)
treee45fce932a0afadc432a868765d3126001030084 /tools
parentcb55a9c282f1ec7e8bdf19053d320b02b8fe6be9 (diff)
Align hyperconverged-ceph.yaml environment and adds some validation
Until bug #1635409 is fixed we'll have to keep the default list of services deployed by hyperconverged-ceph.yaml in sync with the ServicesDefault list provided in roles_data.yaml This change adds some logic in the templates validation script to ensure that is preserved with future updates. NOTE: the cherry-pick is not clean because two of the services which are available in the master branch are not available in the ocata branch, specifically: - OS::TripleO::Services::Vpp - OS::TripleO::Services::MySQLClient Change-Id: Ib767f9a24c3541b16f96bd6b6455cf797113fbd8 (cherry picked from commit 6ff979aa75bc202fe571d0b2885daa4d7c56d655)
Diffstat (limited to 'tools')
-rwxr-xr-xtools/yaml-validate.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py
index 1d0dba0..32987cb 100755
--- a/tools/yaml-validate.py
+++ b/tools/yaml-validate.py
@@ -54,6 +54,21 @@ def validate_endpoint_map(base_map, env_map):
return sorted(base_map.keys()) == sorted(env_map.keys())
+def validate_hci_compute_services_default(env_filename, env_tpl):
+ env_services_list = env_tpl['parameter_defaults']['ComputeServices']
+ env_services_list.remove('OS::TripleO::Services::CephOSD')
+ roles_filename = os.path.join(os.path.dirname(env_filename),
+ '../roles_data.yaml')
+ roles_tpl = yaml.load(open(roles_filename).read())
+ for role in roles_tpl:
+ if role['name'] == 'Compute':
+ roles_services_list = role['ServicesDefault']
+ if sorted(env_services_list) != sorted(roles_services_list):
+ print('ERROR: ComputeServices in %s is different '
+ 'from ServicesDefault in roles_data.yaml' % env_filename)
+ return 1
+ return 0
+
def validate_mysql_connection(settings):
no_op = lambda *args: False
error_status = [0]
@@ -143,6 +158,9 @@ def validate(filename):
filename != './puppet/services/services.yaml'):
retval = validate_service(filename, tpl)
+ if filename.endswith('hyperconverged-ceph.yaml'):
+ retval = validate_hci_compute_services_default(filename, tpl)
+
except Exception:
print(traceback.format_exc())
return 1