diff options
author | Giulio Fidente <gfidente@redhat.com> | 2017-02-28 18:55:55 +0100 |
---|---|---|
committer | Giulio Fidente <gfidente@redhat.com> | 2017-02-28 18:55:55 +0100 |
commit | 6ff979aa75bc202fe571d0b2885daa4d7c56d655 (patch) | |
tree | a7be43bb510739970051815a0101476c0e783739 | |
parent | 86fe8bf7e697233fecaff91d2f8669e059ff37c9 (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.
Change-Id: Ib767f9a24c3541b16f96bd6b6455cf797113fbd8
-rw-r--r-- | environments/hyperconverged-ceph.yaml | 2 | ||||
-rwxr-xr-x | tools/yaml-validate.py | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/environments/hyperconverged-ceph.yaml b/environments/hyperconverged-ceph.yaml index 3738072c..f59b0414 100644 --- a/environments/hyperconverged-ceph.yaml +++ b/environments/hyperconverged-ceph.yaml @@ -29,3 +29,5 @@ parameter_defaults: - OS::TripleO::Services::AuditD - OS::TripleO::Services::Collectd - OS::TripleO::Services::CephOSD + - OS::TripleO::Services::Vpp + - OS::TripleO::Services::MySQLClient diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py index 1d0dba02..32987cb2 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 |