diff options
author | Brenton Leanhardt <bleanhar@redhat.com> | 2016-01-13 10:07:35 -0500 |
---|---|---|
committer | Brenton Leanhardt <bleanhar@redhat.com> | 2016-01-13 10:07:35 -0500 |
commit | 965c614859a0318c956b4a9ab312c7c856facaa1 (patch) | |
tree | 389a40f3d2a5cbbd1591a83ab210f149f0abc06d /filter_plugins | |
parent | 607d45f426c7e86a256edc7fd442eb126867c243 (diff) | |
parent | 97be5890e2a34036a22d2d1e2586c83009ae6064 (diff) | |
download | openshift-965c614859a0318c956b4a9ab312c7c856facaa1.tar.gz openshift-965c614859a0318c956b4a9ab312c7c856facaa1.tar.bz2 openshift-965c614859a0318c956b4a9ab312c7c856facaa1.tar.xz openshift-965c614859a0318c956b4a9ab312c7c856facaa1.zip |
Merge pull request #1121 from abutcher/rolling-restarts-pacemaker
Rolling restart playbook for masters
Diffstat (limited to 'filter_plugins')
-rw-r--r-- | filter_plugins/openshift_master.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/filter_plugins/openshift_master.py b/filter_plugins/openshift_master.py index 8d7c62ad1..7ababc51a 100644 --- a/filter_plugins/openshift_master.py +++ b/filter_plugins/openshift_master.py @@ -463,6 +463,32 @@ class FilterModule(object): IdentityProviderBase.validate_idp_list(idp_list) return yaml.safe_dump([idp.to_dict() for idp in idp_list], default_flow_style=False) + @staticmethod + def validate_pcs_cluster(data, masters=None): + ''' Validates output from "pcs status", ensuring that each master + provided is online. + Ex: data = ('...', + 'PCSD Status:', + 'master1.example.com: Online', + 'master2.example.com: Online', + 'master3.example.com: Online', + '...') + masters = ['master1.example.com', + 'master2.example.com', + 'master3.example.com'] + returns True + ''' + if not issubclass(type(data), str): + raise errors.AnsibleFilterError("|failed expects data is a string") + if not issubclass(type(masters), list): + raise errors.AnsibleFilterError("|failed expects masters is a list") + valid = True + for master in masters: + if "{0}: Online".format(master) not in data: + valid = False + return valid + def filters(self): ''' returns a mapping of filters to methods ''' - return {"translate_idps": self.translate_idps} + return {"translate_idps": self.translate_idps, + "validate_pcs_cluster": self.validate_pcs_cluster} |