diff options
| author | Tim Bielawa <tbielawa@redhat.com> | 2016-08-26 08:53:45 -0700 | 
|---|---|---|
| committer | Tim Bielawa <tbielawa@redhat.com> | 2016-08-26 09:07:27 -0700 | 
| commit | c959f9dcf9f4bc0c3dfeb4e68c082c79d479de35 (patch) | |
| tree | 22b2113c38ca597f7658d7a30e7873d37916a207 | |
| parent | 577195e3eefe19b95e39f0f52834cd3dc8f77cdf (diff) | |
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/.gitignore | 1 | ||||
| -rw-r--r-- | utils/Makefile | 12 | ||||
| -rw-r--r-- | utils/src/ooinstall/cli_installer.py | 32 | ||||
| -rw-r--r-- | utils/src/ooinstall/oo_config.py | 7 | ||||
| -rw-r--r-- | utils/src/ooinstall/openshift_ansible.py | 5 | 
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  | 
