diff options
author | Brenton Leanhardt <bleanhar@redhat.com> | 2016-03-30 14:36:14 -0400 |
---|---|---|
committer | Brenton Leanhardt <bleanhar@redhat.com> | 2016-03-30 15:08:46 -0400 |
commit | 5c8e3c5efc9c7cf13923e6fe234fc17c9042419a (patch) | |
tree | 90a88c156432bee3b494967d382bbfa4ecfecd11 | |
parent | d4d0e1dc928adfd70e9ee297f214bd12e802c0c3 (diff) | |
download | openshift-5c8e3c5efc9c7cf13923e6fe234fc17c9042419a.tar.gz openshift-5c8e3c5efc9c7cf13923e6fe234fc17c9042419a.tar.bz2 openshift-5c8e3c5efc9c7cf13923e6fe234fc17c9042419a.tar.xz openshift-5c8e3c5efc9c7cf13923e6fe234fc17c9042419a.zip |
Bug 1322335 - The package name is wrong for rpm upgrade
-rw-r--r-- | filter_plugins/oo_filters.py | 17 | ||||
-rw-r--r-- | roles/openshift_common/tasks/main.yml | 6 |
2 files changed, 22 insertions, 1 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/roles/openshift_common/tasks/main.yml b/roles/openshift_common/tasks/main.yml index 541efe27a..b6074ff64 100644 --- a/roles/openshift_common/tasks/main.yml +++ b/roles/openshift_common/tasks/main.yml @@ -28,8 +28,12 @@ use_manageiq: "{{ openshift_use_manageiq | default(None) }}" data_dir: "{{ openshift_data_dir | default(None) }}" +# Using oo_image_tag_to_rpm_version here is a workaround for how +# openshift_version is set. That value is computed based on either RPM +# versions or image tags. openshift_common's usage requires that it be a RPM +# version and openshift_cli expects it to be an image tag. - name: Install the base package for versioning - action: "{{ ansible_pkg_mgr }} name={{ openshift.common.service_type }}{{ openshift_version | default('') }} state=present" + action: "{{ ansible_pkg_mgr }} name={{ openshift.common.service_type }}{{ openshift_version | default('') | oo_image_tag_to_rpm_version }} state=present" when: not openshift.common.is_containerized | bool # This invocation also updates the version facts which are necessary |