summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Bielawa <tbielawa@redhat.com>2016-08-26 08:53:45 -0700
committerTim Bielawa <tbielawa@redhat.com>2016-08-26 09:07:27 -0700
commitc959f9dcf9f4bc0c3dfeb4e68c082c79d479de35 (patch)
tree22b2113c38ca597f7658d7a30e7873d37916a207
parent577195e3eefe19b95e39f0f52834cd3dc8f77cdf (diff)
downloadopenshift-c959f9dcf9f4bc0c3dfeb4e68c082c79d479de35.tar.gz
openshift-c959f9dcf9f4bc0c3dfeb4e68c082c79d479de35.tar.bz2
openshift-c959f9dcf9f4bc0c3dfeb4e68c082c79d479de35.tar.xz
openshift-c959f9dcf9f4bc0c3dfeb4e68c082c79d479de35.zip
Fix PyLint errors discovered when upgrading to newer version
* Fixes PyLint to run in the virtualenv used for all tests * Replaced 'LooseVersion' with 'parse_version' from setuptools - This is a work around for the issue in https://github.com/PyCQA/pylint/issues/73 in which pylint can not import disutils.version correctly in a virtualenv. * Removed the unused function 'delete_hosts' which was causing a pylint error as well * Removed a deprecated pylint pragma option, 'bad-builtin' * Fixed some import ordering issues it was picky about * Added another disable for a case where the PyLint suggestion would have us altering the container we would be iterating over * Add code-coverage reports to the unittests with the MINIMUM coverage percentage for success set to 70% - Current test coverage is at 76%
-rw-r--r--utils/.gitignore1
-rw-r--r--utils/Makefile12
-rw-r--r--utils/src/ooinstall/cli_installer.py32
-rw-r--r--utils/src/ooinstall/oo_config.py7
-rw-r--r--utils/src/ooinstall/openshift_ansible.py5
5 files changed, 25 insertions, 32 deletions
diff --git a/utils/.gitignore b/utils/.gitignore
index 7e72a43c3..facfeee54 100644
--- a/utils/.gitignore
+++ b/utils/.gitignore
@@ -45,3 +45,4 @@ coverage.xml
docs/_build/
oo-install
oo-installenv
+cover
diff --git a/utils/Makefile b/utils/Makefile
index dd0b5cdd0..7676354b0 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -35,13 +35,17 @@ clean:
@rm -fR build dist rpm-build MANIFEST htmlcov .coverage cover ooinstall.egg-info oo-install
@rm -fR $(NAME)env
+viewcover:
+ xdg-open cover/index.html
+
virtualenv:
@echo "#############################################"
@echo "# Creating a virtualenv"
@echo "#############################################"
virtualenv $(NAME)env
. $(NAME)env/bin/activate && pip install -r requirements.txt
- . $(NAME)env/bin/activate && pip install pep8 nose coverage mock flake8 PyYAML click
+ . $(NAME)env/bin/activate && pip install setuptools --upgrade
+ . $(NAME)env/bin/activate && pip install enum configparser pylint pep8 nose coverage mock flake8 PyYAML click
# If there are any special things to install do it here
# . $(NAME)env/bin/activate && INSTALL STUFF
@@ -50,14 +54,14 @@ ci-unittests:
@echo "#############################################"
@echo "# Running Unit Tests in virtualenv"
@echo "#############################################"
-# . $(NAME)env/bin/activate && nosetests -v --with-cover --cover-html --cover-min-percentage=80 --cover-package=$(TESTPACKAGE) test/
- . $(NAME)env/bin/activate && nosetests -v test/
+ . $(NAME)env/bin/activate && nosetests -v --with-coverage --cover-html --cover-min-percentage=70 --cover-package=$(SHORTNAME) test/
+ @echo "VIEW CODE COVERAGE REPORT WITH 'xdg-open cover/index.html' or run 'make viewcover'"
ci-pylint:
@echo "#############################################"
@echo "# Running PyLint Tests in virtualenv"
@echo "#############################################"
- python -m pylint --rcfile ../git/.pylintrc src/ooinstall/cli_installer.py src/ooinstall/oo_config.py src/ooinstall/openshift_ansible.py src/ooinstall/variants.py
+ . $(NAME)env/bin/activate && python -m pylint --rcfile ../git/.pylintrc src/ooinstall/cli_installer.py src/ooinstall/oo_config.py src/ooinstall/openshift_ansible.py src/ooinstall/variants.py
ci-list-deps:
@echo "#############################################"
diff --git a/utils/src/ooinstall/cli_installer.py b/utils/src/ooinstall/cli_installer.py
index 67f3659ff..9420ec287 100644
--- a/utils/src/ooinstall/cli_installer.py
+++ b/utils/src/ooinstall/cli_installer.py
@@ -5,7 +5,8 @@
import os
import re
import sys
-from distutils.version import LooseVersion
+import logging
+import setuptools.version
import click
from ooinstall import openshift_ansible
from ooinstall.oo_config import OOConfig
@@ -13,7 +14,6 @@ from ooinstall.oo_config import OOConfigInvalidHostError
from ooinstall.oo_config import Host, Role
from ooinstall.variants import find_variant, get_variant_version_combos
-import logging
installer_log = logging.getLogger('installer')
installer_log.setLevel(logging.CRITICAL)
installer_file_handler = logging.FileHandler('/tmp/installer.txt')
@@ -98,27 +98,6 @@ def list_hosts(hosts):
click.echo(' {}: {}'.format(idx, hosts[idx]))
-def delete_hosts(hosts):
- while True:
- list_hosts(hosts)
- del_idx = click.prompt('Select host to delete, y/Y to confirm, '
- 'or n/N to add more hosts', default='n')
- try:
- del_idx = int(del_idx)
- hosts.remove(hosts[del_idx])
- except IndexError:
- click.echo("\"{}\" doesn't match any hosts listed.".format(del_idx))
- except ValueError:
- try:
- response = del_idx.lower()
- if response in ['y', 'n']:
- return hosts, response
- click.echo("\"{}\" doesn't correspond to any valid input.".format(del_idx))
- except AttributeError:
- click.echo("\"{}\" doesn't correspond to any valid input.".format(del_idx))
- return hosts, None
-
-
def collect_hosts(oo_cfg, existing_env=False, masters_set=False, print_summary=True):
"""
Collect host information from user. This will later be filled in using
@@ -652,8 +631,11 @@ https://docs.openshift.com/enterprise/latest/admin_guide/install/prerequisites.h
oo_cfg.deployment.variables['master_routingconfig_subdomain'] = get_master_routingconfig_subdomain()
click.clear()
+ current_version = setuptools.version.pkg_resources.parse_version(
+ oo_cfg.settings.get('variant_version', '0.0'))
+ min_version = setuptools.version.pkg_resources.parse_version('3.2')
if not oo_cfg.settings.get('openshift_http_proxy', None) and \
- LooseVersion(oo_cfg.settings.get('variant_version', '0.0')) >= LooseVersion('3.2'):
+ current_version >= min_version:
http_proxy, https_proxy, proxy_excludes = get_proxy_hostnames_and_excludes()
oo_cfg.deployment.variables['proxy_http'] = http_proxy
oo_cfg.deployment.variables['proxy_https'] = https_proxy
@@ -920,7 +902,7 @@ def uninstall(ctx):
@click.option('--latest-minor', '-l', is_flag=True, default=False)
@click.option('--next-major', '-n', is_flag=True, default=False)
@click.pass_context
-# pylint: disable=bad-builtin,too-many-statements
+# pylint: disable=too-many-statements
def upgrade(ctx, latest_minor, next_major):
oo_cfg = ctx.obj['oo_cfg']
diff --git a/utils/src/ooinstall/oo_config.py b/utils/src/ooinstall/oo_config.py
index b9f0cc65c..409276360 100644
--- a/utils/src/ooinstall/oo_config.py
+++ b/utils/src/ooinstall/oo_config.py
@@ -2,10 +2,11 @@
import os
import sys
+import logging
import yaml
from pkg_resources import resource_filename
-import logging
+
installer_log = logging.getLogger('installer')
CONFIG_PERSIST_SETTINGS = [
@@ -325,6 +326,10 @@ class OOConfig(object):
self.settings['ansible_inventory_path'] = \
'{}/hosts'.format(os.path.dirname(self.config_path))
+ # pylint: disable=consider-iterating-dictionary
+ # Disabled because we shouldn't alter the container we're
+ # iterating over
+ #
# clean up any empty sets
for setting in self.settings.keys():
if not self.settings[setting]:
diff --git a/utils/src/ooinstall/openshift_ansible.py b/utils/src/ooinstall/openshift_ansible.py
index 001c58d73..4113bb126 100644
--- a/utils/src/ooinstall/openshift_ansible.py
+++ b/utils/src/ooinstall/openshift_ansible.py
@@ -4,9 +4,10 @@ import socket
import subprocess
import sys
import os
+import logging
import yaml
from ooinstall.variants import find_variant
-import logging
+
installer_log = logging.getLogger('installer')
CFG = None
@@ -229,7 +230,7 @@ def load_system_facts(inventory_file, os_facts_path, env_vars, verbose=False):
os_facts_path])
installer_log.debug("Going to subprocess out to ansible now with these args: %s", ' '.join(args))
status = subprocess.call(args, env=env_vars, stdout=FNULL)
- if not status == 0:
+ if status != 0:
installer_log.debug("Exit status from subprocess was not 0")
return [], 1