Fix addon tag/version parsing

When doing rolling upgrade, the addon tag/version will be parsed
to make sure there is no downgrade. But if there is tag/version
is not well-formated, it can't be parsed by pbr.version.SemanticVersion.
This patch adds a catch to avoid throwing error and just skip
this case.

Task: 36186
Story: 2002210

Change-Id: I846cd0fd40a6607c36fff8992d98d8a55c49b3fa
This commit is contained in:
Feilong Wang 2019-08-09 10:30:18 +12:00
parent 04fd0470ad
commit b3a183dc50

View File

@ -56,9 +56,15 @@ class Driver(driver.KubernetesDriver):
if ((label.endswith('_tag') or
label.endswith('_version')) and label in heat_params):
current_addons[label] = heat_params[label]
if (SV.from_pip_string(new_addons[label]) <
SV.from_pip_string(current_addons[label])):
raise exception.InvalidVersion(tag=label)
try:
if (SV.from_pip_string(new_addons[label]) <
SV.from_pip_string(current_addons[label])):
raise exception.InvalidVersion(tag=label)
except Exception as e:
# NOTE(flwang): Different cloud providers may use different
# tag/version format which maybe not able to parse by
# SemanticVersion. For this case, let's just skip it.
LOG.debug("Failed to parse tag/version %s", str(e))
heat_params["server_image"] = cluster_template.image_id
heat_params["master_image"] = cluster_template.image_id