diff options
-rw-r--r-- | ansible/nsb_setup.yml | 2 | ||||
-rw-r--r-- | docker/Dockerfile | 2 | ||||
-rw-r--r-- | docker/Dockerfile.aarch64.patch | 23 | ||||
-rwxr-xr-x | nsb_setup.sh | 8 | ||||
-rw-r--r-- | samples/test_suite.yaml | 3 | ||||
-rw-r--r-- | yardstick/tests/unit/common/test_packages.py | 88 |
6 files changed, 111 insertions, 15 deletions
diff --git a/ansible/nsb_setup.yml b/ansible/nsb_setup.yml index 0149054ae..fcde1d1b2 100644 --- a/ansible/nsb_setup.yml +++ b/ansible/nsb_setup.yml @@ -37,7 +37,7 @@ name: yardstick pull: yes recreate: yes - image: opnfv/yardstick:latest + image: "{{ yardstick_docker_image|default('opnfv/yardstick:latest') }}" state: started restart_policy: always privileged: yes diff --git a/docker/Dockerfile b/docker/Dockerfile index 5813f0245..62ea0d037 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -51,7 +51,7 @@ EXPOSE 5000 5672 ADD http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img ${IMAGE_DIR} ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img ${IMAGE_DIR} -COPY ./docker/exec_tests.sh /usr/local/bin/ +COPY ./exec_tests.sh /usr/local/bin/ ENV NSB_DIR="/opt/nsb_bin" ENV PYTHONPATH="${PYTHONPATH}:${NSB_DIR}/trex_client:${NSB_DIR}/trex_client/stl" diff --git a/docker/Dockerfile.aarch64.patch b/docker/Dockerfile.aarch64.patch index 720a39970..6c7381284 100644 --- a/docker/Dockerfile.aarch64.patch +++ b/docker/Dockerfile.aarch64.patch @@ -1,15 +1,14 @@ -From: Cristina Pauna <cristina.pauna@enea.com> -Date: Mon, 30 Apr 2018 14:09:00 +0300 -Subject: [PATCH] [PATCH] Patch for Yardstick AARCH64 Docker file +From: ting wu <ting.wu@enea.com> +Date: Tue, 8 May 2018 14:02:52 +0200 +Subject: [PATCH][PATCH] Patch for Yardstick AARCH64 Docker file -Signed-off-by: Cristina Pauna <cristina.pauna@enea.com> -Signed-off-by: Alexandru Nemes <alexandru.nemes@enea.com> +Signed-off-by: ting wu <ting.wu@enea.com> --- - docker/Dockerfile | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) + docker/Dockerfile | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile -index fed9f9bd..9654b5dc 100644 +index 62ea0d0..f2f41771 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -7,9 +7,9 @@ @@ -24,18 +23,17 @@ index fed9f9bd..9654b5dc 100644 ARG BRANCH=master -@@ -24,7 +24,9 @@ ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick/" \ +@@ -24,7 +24,8 @@ ENV YARDSTICK_REPO_DIR="${REPOS_DIR}/yardstick/" \ RELENG_REPO_DIR="${REPOS_DIR}/releng" \ STORPERF_REPO_DIR="${REPOS_DIR}/storperf" -RUN apt-get update && apt-get install -y git python python-setuptools python-pip && apt-get -y autoremove && apt-get clean +RUN apt-get update && apt-get install -y git python python-setuptools python-pip && apt-get -y autoremove && \ + apt-get install -y libssl-dev && apt-get -y install libffi-dev && apt-get clean -+ RUN easy_install -U setuptools==30.0.0 RUN pip install appdirs==1.4.0 pyopenssl==17.5.0 python-openstackclient==3.11.0 python-heatclient==1.11.0 ansible==2.4.2 -@@ -45,8 +47,8 @@ RUN echo "daemon off;" >> /etc/nginx/nginx.conf +@@ -48,8 +49,8 @@ RUN echo "daemon off;" >> /etc/nginx/nginx.conf # nginx=5000, rabbitmq=5672 EXPOSE 5000 5672 @@ -44,5 +42,6 @@ index fed9f9bd..9654b5dc 100644 +ADD http://download.cirros-cloud.net/daily/20161201/cirros-d161201-aarch64-disk.img ${IMAGE_DIR} +ADD http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-arm64-disk1.img ${IMAGE_DIR} - COPY ./docker/exec_tests.sh /usr/local/bin/ + COPY ./exec_tests.sh /usr/local/bin/ + diff --git a/nsb_setup.sh b/nsb_setup.sh index 50fc017d1..86796c4d4 100755 --- a/nsb_setup.sh +++ b/nsb_setup.sh @@ -67,8 +67,16 @@ pip install ansible==2.4.2 shade==1.22.2 docker-py==1.10.6 ANSIBLE_SCRIPTS="ansible" +if [[ -n ${1} ]]; then + yardstick_docker_image="-e yardstick_docker_image=${1}" +else + yardstick_docker_image="" +fi + +# no quotes for yardstick_docker_image so when empty it is removed as whitespace cd ${ANSIBLE_SCRIPTS} &&\ ansible-playbook \ -e img_property="nsb" \ + ${yardstick_docker_image} \ -e YARD_IMG_ARCH='amd64' ${extra_args}\ -i yardstick-install-inventory.ini nsb_setup.yml diff --git a/samples/test_suite.yaml b/samples/test_suite.yaml index 9a766b06a..6f5f53b46 100644 --- a/samples/test_suite.yaml +++ b/samples/test_suite.yaml @@ -20,7 +20,8 @@ test_cases: file_name: ping.yaml - file_name: ping-template.yaml - task_args: '{"packetsize": "200"}' + task_args: + default: '{"packetsize": "200"}' - file_name: ping-template.yaml task_args_file: "/tmp/test-args-file.json" diff --git a/yardstick/tests/unit/common/test_packages.py b/yardstick/tests/unit/common/test_packages.py new file mode 100644 index 000000000..ba59a3015 --- /dev/null +++ b/yardstick/tests/unit/common/test_packages.py @@ -0,0 +1,88 @@ +# Copyright (c) 2018 Intel Corporation +# +# 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. + +import mock +from pip import exceptions as pip_exceptions +from pip.operations import freeze +import unittest + +from yardstick.common import packages + + +class PipExecuteActionTestCase(unittest.TestCase): + + def setUp(self): + self._mock_pip_main = mock.patch.object(packages, '_pip_main') + self.mock_pip_main = self._mock_pip_main.start() + self.mock_pip_main.return_value = 0 + self._mock_freeze = mock.patch.object(freeze, 'freeze') + self.mock_freeze = self._mock_freeze.start() + self.addCleanup(self._cleanup) + + def _cleanup(self): + self._mock_pip_main.stop() + self._mock_freeze.stop() + + def test_pip_execute_action(self): + self.assertEqual(0, packages._pip_execute_action('test_package')) + + def test_remove(self): + self.assertEqual(0, packages._pip_execute_action('test_package', + action='uninstall')) + + def test_install(self): + self.assertEqual(0, packages._pip_execute_action( + 'test_package', action='install', target='temp_dir')) + + def test_pip_execute_action_error(self): + self.mock_pip_main.return_value = 1 + self.assertEqual(1, packages._pip_execute_action('test_package')) + + def test_pip_execute_action_exception(self): + self.mock_pip_main.side_effect = pip_exceptions.PipError + self.assertEqual(1, packages._pip_execute_action('test_package')) + + def test_pip_list(self): + pkg_input = [ + 'XStatic-Rickshaw==1.5.0.0', + 'xvfbwrapper==0.2.9', + '-e git+https://git.opnfv.org/yardstick@50773a24afc02c9652b662ecca' + '2fc5621ea6097a#egg=yardstick', + 'zope.interface==4.4.3' + ] + pkg_dict = { + 'XStatic-Rickshaw': '1.5.0.0', + 'xvfbwrapper': '0.2.9', + 'yardstick': '50773a24afc02c9652b662ecca2fc5621ea6097a', + 'zope.interface': '4.4.3' + } + self.mock_freeze.return_value = pkg_input + + pkg_output = packages.pip_list() + for pkg_name, pkg_version in pkg_output.items(): + self.assertEqual(pkg_dict.get(pkg_name), pkg_version) + + def test_pip_list_single_package(self): + pkg_input = [ + 'XStatic-Rickshaw==1.5.0.0', + 'xvfbwrapper==0.2.9', + '-e git+https://git.opnfv.org/yardstick@50773a24afc02c9652b662ecca' + '2fc5621ea6097a#egg=yardstick', + 'zope.interface==4.4.3' + ] + self.mock_freeze.return_value = pkg_input + + pkg_output = packages.pip_list(pkg_name='xvfbwrapper') + self.assertEqual(1, len(pkg_output)) + self.assertEqual(pkg_output.get('xvfbwrapper'), '0.2.9') |