aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docker/Dockerfile6
-rw-r--r--requirements.txt123
-rw-r--r--setup.cfg43
-rw-r--r--[-rwxr-xr-x]setup.py87
-rw-r--r--test-requirements.txt28
-rw-r--r--tox.ini3
-rw-r--r--upper-constraints.txt18
-rw-r--r--yardstick/common/packages.py6
-rw-r--r--yardstick/tests/functional/common/test_packages.py11
-rw-r--r--yardstick/tests/unit/common/test_packages.py4
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
diff --git a/tox.ini b/tox.ini
index 016228458..34fe9eb18 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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