Fix logging and check responce code when get url
This patch fixes formating issues with log messages.
Also check status code after getting requirements file.
Change-Id: I25a27fe1ed1b732e94699ff0814d0fa132966eb1
diff --git a/_modules/runtest/__init__.py b/_modules/runtest/__init__.py
index f95e556..3e1fb50 100644
--- a/_modules/runtest/__init__.py
+++ b/_modules/runtest/__init__.py
@@ -72,12 +72,17 @@
def check_global_requirements(openstack_version=None, url=None):
"""Check if our installed requirements are satisfied with upstream.
"""
+
if openstack_version is None:
openstack_version = __salt__['pillar.get']('runtest:openstack_version')
if url is None:
url = '%s/%s/global-requirements.txt' % (REQUIREMENTS_LINK, openstack_version)
- requirements_content = requests.get(url).text
+ resp = requests.get(url)
+ if resp.ok:
+ requirements_content = resp.text
+ else:
+ resp.raise_for_status()
pkgs = requirements.get_installed_distributions()
req_deps = {}
@@ -87,14 +92,14 @@
if re.match(r'^%s[ ><!=]' % pkg.project_name, line):
req_cond = line.split('#')[0].strip()
try:
- log.info("Checking requirement %(req_name)s, requirement"
- " %(req)s".format(req_name=pkg.project_name,
+ log.info("Checking requirement {req_name}s, requirement"
+ " {req}s".format(req_name=pkg.project_name,
req=req_cond))
pkg_resources.working_set.require(req_cond)
except pkg_resources.VersionConflict as ve:
- log.warning("Requirement %(req_name)s not satisfied. Required "
- "version %(req_cond)s. Installed version "
- "%(inst_version)s. Exception %(exc)s".format(
+ log.warning("Requirement {req_name}s not satisfied. Required "
+ "version {req_cond}s. Installed version "
+ "{inst_version}s. Exception {exc}s".format(
req_name=pkg.project_name, req_cond=line,
inst_version=pkg.version, exc=ve))
freq[pkg.project_name] = {'installed_version': pkg.version,
@@ -109,33 +114,39 @@
"""
if openstack_version is None:
openstack_version = __salt__['pillar.get']('runtest:openstack_version')
+
if url is None:
url = '%s/%s/upper-constraints.txt' % (REQUIREMENTS_LINK, openstack_version)
- constraints_content = requests.get(url).text
+ resp = requests.get(url)
+ if resp.ok:
+ constraints_content = resp.text
+ else:
+ resp.raise_for_status()
pkgs = requirements.get_installed_distributions()
req_deps = {}
freq = {}
for pkg in pkgs:
for line in constraints_content.splitlines():
- if re.match(r'^%s[ ><!=]' % pkg.project_name, line):
+ if re.match(r'^%s[ ><!=]' % pkg.project_name, line, re.IGNORECASE):
req_cond = line.split('#')[0].strip()
try:
- log.info("Checking requirement %(req_name)s, requirement"
- " %(req)s".format(req_name=pkg.project_name,
+ log.info("Checking requirement {req_name}s, requirement"
+ " {req}s".format(req_name=pkg.project_name,
req=req_cond))
pkg_resources.working_set.require(req_cond)
except pkg_resources.VersionConflict as ve:
- log.warning("Requirement %(req_name)s not satisfied. Required "
- "version %(req_cond)s. Installed version "
- "%(inst_version)s. Exception %(exc)s".format(
+ log.warning("Requirement {req_name}s not satisfied. Required "
+ "version {req_cond}s. Installed version "
+ "{inst_version}s. Exception {exc}s".format(
req_name=pkg.project_name, req_cond=line,
inst_version=pkg.version, exc=ve))
freq[pkg.project_name] = {'installed_version': pkg.version,
'requirement': line,
- 'error': 've'}
- except Exception as ex: {'error': ex,
- 'requirement': line,
- 'installed_version': pkg.version}
+ 'error': str(ve)}
+ except Exception as ex:
+ freq[pkg.project_name] = {'error': str(ex),
+ 'requirement': line,
+ 'installed_version': pkg.version}
return freq