From 64d169df4de9e9a2479ca5a35cb1d62967631252 Mon Sep 17 00:00:00 2001 From: vamahaja Date: Fri, 8 May 2020 12:07:42 +0530 Subject: [LibFix] Fix library 'get_openshift_storage_version' Fix consists of - Add regular expression to get Openshift Storage Version based on environment variable 'ocsVersion' set in Dockerfile Change-Id: Iefed53a7af5b2867b68a4a8b72861047edcf1e4d Signed-off-by: vamahaja --- .../openshift_storage_version.py | 30 ++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'openshift-storage-libs/openshiftstoragelibs') diff --git a/openshift-storage-libs/openshiftstoragelibs/openshift_storage_version.py b/openshift-storage-libs/openshiftstoragelibs/openshift_storage_version.py index e798e8b9..0ddef4e6 100644 --- a/openshift-storage-libs/openshiftstoragelibs/openshift_storage_version.py +++ b/openshift-storage-libs/openshiftstoragelibs/openshift_storage_version.py @@ -33,7 +33,8 @@ from openshiftstoragelibs import exceptions OPENSHIFT_STORAGE_VERSION_RE = r"(?:v?)(\d+)(?:\.)(\d+)(?:\.(\d+))?.*" -BUILDS_LABEL_TAG_REGEX = r"^LABEL.(ocs|cns)\.tags=\"v(.*),v(.*)\"$" +BUILDS_LABEL_TAG_REGEX_1 = r"^LABEL.(ocs|cns)\.tags=\"v(.*),v(.*)\"$" +BUILDS_LABEL_TAG_REGEX_2 = r"^ENV ocsVersion=\"(.*)\"$" OPENSHIFT_STORAGE_VERSION = None @@ -60,18 +61,27 @@ def _get_openshift_storage_version_str(hostname=None): "oc rsh %s " "find . -name \"Dockerfile-rhgs3-rhgs-server-rhel7*\" " r"-exec awk '/%s/{print $0}' {} \; " - "| tail -1" % - (gluster_pod, BUILDS_LABEL_TAG_REGEX)) - out = command.cmd_run(buildinfo_cmd, hostname) - - build_tag_match = re.search(BUILDS_LABEL_TAG_REGEX, out) - if not build_tag_match: - error_msg = "Unexpected BUILD LABEL tag expression: '%s'" % out + "| tail -1") + + # Get ocs/cns tag LABEL and check if 'ocsVersion' is present in tag + out = command.cmd_run( + buildinfo_cmd % (gluster_pod, BUILDS_LABEL_TAG_REGEX_1), hostname) + build_tag_match = re.search(BUILDS_LABEL_TAG_REGEX_1, out) + if build_tag_match and "${ocsVersion}" not in build_tag_match.group(2): + return (build_tag_match.group(2)).strip() + + # Get 'ocsVersion' environment variable + out = command.cmd_run( + buildinfo_cmd % (gluster_pod, BUILDS_LABEL_TAG_REGEX_2), hostname) + build_tag_match = re.search(BUILDS_LABEL_TAG_REGEX_2, out) + if build_tag_match: + return (build_tag_match.group(1)).strip() + else: + error_msg = ( + "Unexpected BUILD LABEL or OcsVersion tag expression: '%s'" % out) g.log.error(error_msg) raise exceptions.ExecutionError(error_msg) - return (build_tag_match.group(2)).strip() - def _parse_openshift_storage_version(openshift_storage_version_str): """Parses OpenShift Storage version str into tuple of 3 values. -- cgit