diff options
Diffstat (limited to 'filter_plugins')
-rw-r--r-- | filter_plugins/oo_filters.py | 17 | ||||
-rw-r--r-- | filter_plugins/openshift_master.py | 13 |
2 files changed, 23 insertions, 7 deletions
diff --git a/filter_plugins/oo_filters.py b/filter_plugins/oo_filters.py index 3dc3f2fe9..cd67b69a5 100644 --- a/filter_plugins/oo_filters.py +++ b/filter_plugins/oo_filters.py @@ -710,6 +710,22 @@ class FilterModule(object): return retval + @staticmethod + def oo_image_tag_to_rpm_version(version): + """ Convert an image tag string to an RPM version if necessary + Empty strings and strings that are already in rpm version format + are ignored. + + Ex. v3.2.0.10 -> -3.2.0.10 + """ + if not isinstance(version, basestring): + raise errors.AnsibleFilterError("|failed expects a string or unicode") + + if version.startswith("v"): + version = "-" + version.replace("v", "") + + return version + def filters(self): """ returns a mapping of filters to methods """ return { @@ -738,4 +754,5 @@ class FilterModule(object): "oo_31_rpm_rename_conversion": self.oo_31_rpm_rename_conversion, "oo_pods_match_component": self.oo_pods_match_component, "oo_get_hosts_from_hostvars": self.oo_get_hosts_from_hostvars, + "oo_image_tag_to_rpm_version": self.oo_image_tag_to_rpm_version, } diff --git a/filter_plugins/openshift_master.py b/filter_plugins/openshift_master.py index 3a1d77f53..d0fb98ec3 100644 --- a/filter_plugins/openshift_master.py +++ b/filter_plugins/openshift_master.py @@ -372,13 +372,12 @@ class OpenIDIdentityProvider(IdentityProviderOauthBase): raise errors.AnsibleFilterError("|failed claims for provider {0} " "must be a dictionary".format(self.__class__.__name__)) - if 'extraScopes' not in self.provider['extraScopes'] and not isinstance(self.provider['extraScopes'], list): - raise errors.AnsibleFilterError("|failed extraScopes for provider " - "{0} must be a list".format(self.__class__.__name__)) - if ('extraAuthorizeParameters' not in self.provider['extraAuthorizeParameters'] - and not isinstance(self.provider['extraAuthorizeParameters'], dict)): - raise errors.AnsibleFilterError("|failed extraAuthorizeParameters " - "for provider {0} must be a dictionary".format(self.__class__.__name__)) + for var, var_type in (('extraScopes', list), ('extraAuthorizeParameters', dict)): + if var in self.provider and not isinstance(self.provider[var], var_type): + raise errors.AnsibleFilterError("|failed {1} for provider " + "{0} must be a {2}".format(self.__class__.__name__, + var, + var_type.__class__.__name__)) required_claims = ['id'] optional_claims = ['email', 'name', 'preferredUsername'] |