diff options
-rw-r--r-- | docker/Dockerfile | 6 | ||||
-rw-r--r-- | requirements.txt | 123 | ||||
-rw-r--r-- | setup.cfg | 43 | ||||
-rw-r--r--[-rwxr-xr-x] | setup.py | 87 | ||||
-rw-r--r-- | test-requirements.txt | 28 | ||||
-rw-r--r-- | tox.ini | 3 | ||||
-rw-r--r-- | upper-constraints.txt | 18 | ||||
-rw-r--r-- | yardstick/common/packages.py | 6 | ||||
-rw-r--r-- | yardstick/tests/functional/common/test_packages.py | 11 | ||||
-rw-r--r-- | yardstick/tests/unit/common/test_packages.py | 4 |
10 files changed, 183 insertions, 146 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile index 31f7d5dfc..c46d2ce72 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,6 +12,7 @@ FROM ubuntu:16.04 LABEL image=opnfv/yardstick ARG BRANCH=master +ARG OPENSTACK_TAG=stable/stein # GIT repo directory ENV REPOS_DIR="/home/opnfv/repos" \ @@ -26,7 +27,10 @@ ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick/" \ RUN apt-get update && apt-get install -y git python python-setuptools python-pip iputils-ping && apt-get -y autoremove && apt-get clean RUN easy_install -U setuptools==30.0.0 -RUN pip install appdirs==1.4.0 pyopenssl==17.5.0 openstacksdk==0.11.3 python-openstackclient==3.14.2 python-heatclient==1.14.0 ansible==2.5.5 +RUN pip install \ + -chttps://opendev.org/openstack/requirements/raw/branch/$OPENSTACK_TAG/upper-constraints.txt \ + -chttps://git.opnfv.org/yardstick/plain/upper-constraints.txt?h=$BRANCH \ + appdirs==1.4.0 pyopenssl==17.5.0 openstacksdk==0.11.3 python-heatclient==1.14.0 RUN mkdir -p ${REPOS_DIR} diff --git a/requirements.txt b/requirements.txt index cb2a99a26..c441900e7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,6 @@ +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. ############################################################################## # Copyright (c) 2015 Ericsson AB and others. # @@ -7,63 +10,63 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -Babel==2.3.4 # BSD; OSI Approved BSD License -Jinja2==2.9.6 # BSD; OSI Approved BSD License -SQLAlchemy==1.1.12 # MIT License; OSI Approved MIT License -PTable==0.9.2 # BSD (3 clause); OSI Approved BSD License -ansible==2.5.5 # GPLv3; OSI Approved GNU General Public License v3 or later (GPLv3+) -backport-ipaddress==0.1; python_version <= "2.7" # OSI Approved Python Software Foundation License -chainmap==1.0.2 # Python Software Foundation License; OSI Approved Python Software Foundation License -cmd2==0.8.6 # MIT License; OSI Approved MIT License -docker-py==1.10.6 # OSI Approved Apache Software License -extras==1.0.0 # OSI Approved MIT License -flasgger==0.5.13 # MIT -flask-restful-swagger==0.19 # MIT -flask-restful==0.3.5 # BSD; OSI Approved BSD License -flask==0.11.1 # BSD; OSI Approved BSD License -functools32==3.2.3.post2; python_version <= "2.7" # PSF license -futures==3.1.1;python_version=='2.7' # BSD; OSI Approved BSD License -influxdb==4.1.1 # MIT License; OSI Approved MIT License -IxNetwork==8.40.1124.9 # MIT License; OSI Approved MIT License -jinja2schema==0.1.4 # OSI Approved BSD License -keystoneauth1==3.3.0 # OSI Approved Apache Software License -kubernetes==6.0.0 # OSI Approved Apache Software License -mock==2.0.0 # OSI Approved BSD License; `BSD License`_; http://github.com/testing-cabal/mock/blob/master/LICENSE.txt -msgpack-python==0.4.8 # OSI Approved Apache Software License -netaddr==0.7.19 # BSD License; OSI Approved BSD License; OSI Approved MIT License -netifaces==0.10.6 # MIT License; OSI Approved MIT License -os-client-config==1.28.0 # OSI Approved Apache Software License -osc-lib==1.8.0 # OSI Approved Apache Software License -oslo.log==3.41.0 # OSI Approved Apache Software License -oslo.config==5.1.0 # OSI Approved Apache Software License -oslo.i18n==3.17.0 # OSI Approved Apache Software License -oslo.messaging==5.36.0 # OSI Approved Apache Software License -oslo.privsep==1.23.0 # OSI Approved Apache Software License -oslo.serialization==2.20.1 # OSI Approved Apache Software License -oslo.utils==3.33.0 # OSI Approved Apache Software License -paramiko==2.2.1 # LGPL; OSI Approved GNU Library or Lesser General Public License (LGPL) -pbr==3.1.1 # OSI Approved Apache Software License; Apache License, Version 2.0 -pika==0.10.0 # BSD; OSI Approved BSD License -pip==9.0.1 # MIT -positional==1.1.2 # OSI Approved Apache Software License -pycrypto==2.6.1 # Public Domain -pyparsing==2.2.0 # MIT License; OSI Approved MIT License -pyroute2==0.4.21 # dual license GPLv2+ and Apache v2; OSI Approved GNU General Public License v2 or later (GPLv2+); OSI Approved Apache Software License -pyrsistent==0.14.1 # LICENSE.mit; OSI Approved MIT License -python-cinderclient==3.3.0 # OSI Approved Apache Software License -python-glanceclient==2.8.0 # OSI Approved Apache Software License -python-keystoneclient==3.13.0 # OSI Approved Apache Software License -python-neutronclient==6.5.0 # OSI Approved Apache Software License -python-novaclient==9.1.1 # OSI Approved Apache Software License -python-openstackclient==3.18.0 # Apache Software License -pyzmq==16.0.2 # LGPL+BSD; OSI Approved GNU Library or Lesser General Public License (LGPL); OSI Approved BSD License -requests==2.14.2 # Apache 2.0; OSI Approved Apache Software License -requestsexceptions==1.3.0 # OSI Approved Apache Software License -scp==0.10.2 # LGPL -shade==1.22.2 # OSI Approved Apache Software License -simplejson==3.13.2 # MIT License; OSI Approved MIT License; OSI Approved Academic Free License (AFL) -six==1.10.0 # MIT; OSI Approved MIT License -stevedore==1.25.0 # OSI Approved Apache Software License -traceback2==1.4.0 # OSI Approved Python Software Foundation License -unicodecsv==0.14.1 # BSD License; OSI Approved BSD License -wrapt==1.10.10 # BSD +Babel!=2.4.0 # BSD +Jinja2 # BSD License (3 clause) +SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8 # MIT +PTable # BSD (3 clause); OSI Approved BSD License +ansible # GPLv3; OSI Approved GNU General Public License v3 or later (GPLv3+) +backport-ipaddress;python_version <= "2.7" # OSI Approved Python Software Foundation License +chainmap # Python Software Foundation License; OSI Approved Python Software Foundation License +cmd2!=0.8.3,<0.9.0 # MIT +docker-py # OSI Approved Apache Software License +extras # MIT +flasgger # MIT +flask-restful-swagger # MIT +Flask-RESTful # BSD +Flask!=0.11 # BSD +functools32;python_version <= "2.7" # PSF license +futures!=0.17.0;python_version=='2.7' or python_version=='2.6' # PSF +influxdb!=5.2.0,!=5.2.1 # MIT +IxNetwork # MIT License; OSI Approved MIT License +jinja2schema # OSI Approved BSD License +keystoneauth1 # Apache-2.0 +kubernetes # Apache-2.0 +mock # BSD +msgpack-python # OSI Approved Apache Software License +netaddr # BSD +netifaces!=0.10.0,!=0.10.1 # MIT +os-client-config # Apache-2.0 +osc-lib # Apache-2.0 +oslo.log # Apache-2.0 +oslo.config!=4.3.0,!=4.4.0 # Apache-2.0 +oslo.i18n # Apache-2.0 +oslo.messaging!=9.0.0 # Apache-2.0 +oslo.privsep # Apache-2.0 +oslo.serialization!=2.19.1 # Apache-2.0 +oslo.utils!=3.39.1,!=3.40.0,!=3.40.1 # Apache-2.0 +paramiko # LGPLv2.1+ +pbr!=2.1.0 # Apache-2.0 +pika # BSD +pip # MIT +positional # OSI Approved Apache Software License +pycrypto # Public Domain +pyparsing # MIT +pyroute2;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) +pyrsistent # LICENSE.mit; OSI Approved MIT License +python-cinderclient!=4.0.0 # Apache-2.0 +python-glanceclient # Apache-2.0 +python-keystoneclient!=2.1.0 # Apache-2.0 +python-neutronclient # Apache-2.0 +python-novaclient # Apache-2.0 +python-openstackclient # Apache-2.0 +pyzmq # LGPL+BSD +requests!=2.20.0 # Apache-2.0 +requestsexceptions # Apache-2.0 +scp # LGPL +shade # Apache-2.0 +simplejson # MIT +six # MIT +stevedore # Apache-2.0 +traceback2 # OSI Approved Python Software Foundation License +unicodecsv;python_version<'3.0' # BSD +wrapt # BSD License diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000000000..b82819d2c --- /dev/null +++ b/setup.cfg @@ -0,0 +1,43 @@ +[metadata] +name = yardstick +home-page = https://www.opnfv.org +version = 0.1.dev0 + +[files] +packages = yardstick +scripts = + tools/yardstick-img-modify + tools/yardstick-img-lxd-modify + tools/yardstick-img-dpdk-modify +package-data = + yardstick = + benchmark/scenarios/availability/*.yaml + benchmark/scenarios/availability/attacker/*.yaml + benchmark/scenarios/availability/ha_tools/*.bash + benchmark/scenarios/availability/ha_tools/*/*.bash + benchmark/scenarios/availability/attacker/scripts/*.bash + benchmark/scenarios/availability/monitor/*.yaml + benchmark/scenarios/availability/monitor/script_tools/*.bash + benchmark/scenarios/compute/*.bash + benchmark/scenarios/networking/*.bash + benchmark/scenarios/networking/*.txt + benchmark/scenarios/parser/*.sh + benchmark/scenarios/storage/*.bash + network_services/nfvi/collectd.conf + network_services/nfvi/collectd.sh + resources/files/* + resources/scripts/install/*.bash + resources/scripts/remove/*.bash + resources/templates/*.vat + etc = + yardstick/nodes/*/*.yaml + yardstick/*.sample + tests = + opnfv/*/*.yaml + ci/*.sh + +[entry_points] +console_scripts = + yardstick=yardstick.main:main + yardstick-plot=yardstick.plot.plotter:main [plot] +yardstick.scenario = diff --git a/setup.py b/setup.py index cbf8b15c6..7fcba2b50 100755..100644 --- a/setup.py +++ b/setup.py @@ -1,64 +1,29 @@ -############################################################################## -# Copyright (c) 2017 Ericsson AB and others. +# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. # -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -from __future__ import absolute_import -from setuptools import setup, find_packages +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT +import setuptools +# In python < 2.7.4, a lazy loading of package `pbr` will break +# setuptools if some other modules registered functions in `atexit`. +# solution from: http://bugs.python.org/issue15881#msg170215 +try: + import multiprocessing # noqa # pylint:disable=unused-import +except ImportError: + pass -setup( - name="yardstick", - version="0.1.dev0", - packages=find_packages(), - include_package_data=True, - package_data={ - 'yardstick': [ - 'benchmark/scenarios/availability/*.yaml', - 'benchmark/scenarios/availability/attacker/*.yaml', - 'benchmark/scenarios/availability/ha_tools/*.bash', - 'benchmark/scenarios/availability/ha_tools/*/*.bash', - 'benchmark/scenarios/availability/attacker/scripts/*.bash', - 'benchmark/scenarios/availability/monitor/*.yaml', - 'benchmark/scenarios/availability/monitor/script_tools/*.bash', - 'benchmark/scenarios/compute/*.bash', - 'benchmark/scenarios/networking/*.bash', - 'benchmark/scenarios/networking/*.txt', - 'benchmark/scenarios/parser/*.sh', - 'benchmark/scenarios/storage/*.bash', - 'network_services/nfvi/collectd.conf', - 'network_services/nfvi/collectd.sh', - 'resources/files/*', - 'resources/scripts/install/*.bash', - 'resources/scripts/remove/*.bash', - 'resources/templates/*.vat' - ], - 'etc': [ - 'yardstick/nodes/*/*.yaml', - 'yardstick/*.sample' - ], - 'tests': [ - 'opnfv/*/*.yaml', - 'ci/*.sh' - ] - }, - url="https://www.opnfv.org", - extras_require={ - 'plot': ["matplotlib>=1.4.2"] - }, - entry_points={ - 'console_scripts': [ - 'yardstick=yardstick.main:main', - 'yardstick-plot=yardstick.plot.plotter:main [plot]' - ], - 'yardstick.scenario': [] - }, - scripts=[ - 'tools/yardstick-img-modify', - 'tools/yardstick-img-lxd-modify', - 'tools/yardstick-img-dpdk-modify' - ] -) +setuptools.setup( + setup_requires=['pbr>=2.0.0'], + pbr=True) diff --git a/test-requirements.txt b/test-requirements.txt index 7825cc5d2..1500541a9 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -2,20 +2,20 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -coverage==4.4.2 # Apache 2.0; OSI Approved Apache Software License; http://www.apache.org/licenses/LICENSE-2.0; http://www.apache.org/licenses/LICENSE-2.0 -fixtures==3.0.0 # OSI Approved BSD License; OSI Approved Apache Software License -oslotest===2.17.1 # OSI Approved Apache Software License -packaging==16.8.0 # BSD or Apache License, Version 2.0 -pyflakes==1.0.0 # MIT; OSI Approved MIT License -pylint==1.8.1 # GPLv2 -python-subunit==1.2.0 # OSI Approved Apache Software License; OSI Approved BSD License -testrepository==0.0.20 # OSI Approved BSD License; OSI Approved Apache Software License -testtools==2.3.0 # OSI Approved MIT License -unittest2==1.1.0 # OSI Approved BSD License +coverage!=4.4 # Apache-2.0 +fixtures # Apache-2.0/BSD +oslotest # Apache-2.0 +packaging # Apache-2.0 +pyflakes # MIT; OSI Approved MIT License +pylint # GPLv2 +python-subunit # Apache-2.0/BSD +testrepository # Apache-2.0/BSD +testtools # MIT +unittest2 # BSD # NOTE(ralonsoh): to be removed, only for coverage support -python-heatclient==1.11.0 # OSI Approved Apache Software License +python-heatclient # Apache-2.0 + +# Yardstick I release <-> OpenStack Stein release +-e git+https://github.com/openstack/requirements.git@stable/stein#egg=os_requirements -# Yardstick G release <-> OpenStack Queens release -openstack_requirements==1.2.0 # OSI Approved Apache Software License --e git+https://github.com/openstack/requirements.git@stable/queens#egg=os_requirements @@ -9,8 +9,11 @@ passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY BRANCH setenv = VIRTUAL_ENV={envdir} deps = + -chttps://opendev.org/openstack/requirements/raw/branch/stable/stein/upper-constraints.txt + -c{toxinidir}/upper-constraints.txt -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt + whitelist_externals = /bin/bash [testenv:py27] diff --git a/upper-constraints.txt b/upper-constraints.txt new file mode 100644 index 000000000..bbde3c734 --- /dev/null +++ b/upper-constraints.txt @@ -0,0 +1,18 @@ +PTable===0.9.2 +ansible===2.5.5 +backport-ipaddress===0.1 +chainmap===1.0.2 +docker-py===1.10.6 +flasgger===0.5.13 +flask-restful-swagger===0.20.1 +functools32===3.2.3.post2 +IxNetwork===8.40.1124.9 +jinja2schema===0.1.4 +msgpack-python===0.4.8 +positional===1.1.2 +pycrypto===2.6.1 +pyrsistent===0.14.1 +scp===0.10.2 +traceback2===1.4.0 +pyflakes===1.0.0 +pylint===1.8.1 diff --git a/yardstick/common/packages.py b/yardstick/common/packages.py index f20217fdc..a128b7428 100644 --- a/yardstick/common/packages.py +++ b/yardstick/common/packages.py @@ -16,8 +16,8 @@ import logging import re import pip -from pip import exceptions as pip_exceptions -from pip.operations import freeze +from pip._internal import exceptions as pip_exceptions +from pip._internal.operations import freeze from yardstick.common import privsep @@ -36,7 +36,7 @@ def _pip_main(package, action, target=None): cmd = [action, package, '--upgrade'] if target: cmd.append('--target=%s' % target) - return pip.main(cmd) + return pip._internal.main(cmd) def _pip_execute_action(package, action=ACTION_INSTALL, target=None): diff --git a/yardstick/tests/functional/common/test_packages.py b/yardstick/tests/functional/common/test_packages.py index 14de46bcf..e15f72898 100644 --- a/yardstick/tests/functional/common/test_packages.py +++ b/yardstick/tests/functional/common/test_packages.py @@ -15,6 +15,7 @@ import os from os import path import re +import unittest from yardstick.common import packages from yardstick.common import utils @@ -69,6 +70,7 @@ class PipPackagesTestCase(base.BaseFunctionalTestCase): self.assertEqual(0, packages.pip_install(package_dir, self.TMP_FOLDER)) self.assertTrue(package_name in self._list_packages()) + @unittest.skip("see https://github.com/pypa/pip/issues/3889") def test_install_from_pip_package(self): dirname = path.dirname(__file__) package_path = (dirname + @@ -89,11 +91,10 @@ class PipPackagesTestCase(base.BaseFunctionalTestCase): # NOTE (ralonsoh): from requirements.txt file. The best way to test # this function is to parse requirements.txt and test-requirements.txt # and check all packages. - pkgs_ref = {'Babel': '2.3.4', - 'SQLAlchemy': '1.1.12', - 'influxdb': '4.1.1', - 'netifaces': '0.10.6', - 'unicodecsv': '0.14.1'} + pkgs_ref = {'Babel': '2.6.0', + 'SQLAlchemy': '1.2.18', + 'influxdb': '5.1.0', + 'netifaces': '0.10.9'} pkgs = packages.pip_list() for name, version in (pkgs_ref.items()): self.assertEqual(version, pkgs[name]) diff --git a/yardstick/tests/unit/common/test_packages.py b/yardstick/tests/unit/common/test_packages.py index ba59a3015..09d76fe44 100644 --- a/yardstick/tests/unit/common/test_packages.py +++ b/yardstick/tests/unit/common/test_packages.py @@ -13,8 +13,8 @@ # limitations under the License. import mock -from pip import exceptions as pip_exceptions -from pip.operations import freeze +from pip._internal import exceptions as pip_exceptions +from pip._internal.operations import freeze import unittest from yardstick.common import packages |