From 0c53e91c61c358ae43371aba92eccd1dde5829e6 Mon Sep 17 00:00:00 2001
From: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
Date: Thu, 21 Jun 2018 11:18:37 +0100
Subject: Bump ansible version to 2.5.5

Increase ansible version to 2.5.5.

There is a closed bug present in version 2.4.2 which affects to some ansible
scripts. When calling recursively different roles, the maximum recursion
depth can be exceeded [1]. This bug is fixed in proposed version.

[1] https://github.com/ansible/ansible/issues/23609

JIRA: YARDSTICK-1249

Change-Id: Ia45b6a2ab44203e39c52357eb3cfee1e0c77eed3
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
---
 docker/Dockerfile               | 2 +-
 docker/Dockerfile.aarch64.patch | 2 +-
 nsb_setup.sh                    | 2 +-
 requirements.txt                | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/docker/Dockerfile b/docker/Dockerfile
index 7f85cbd7f..68698217a 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -26,7 +26,7 @@ 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 python-openstackclient==3.11.0 python-heatclient==1.11.0 ansible==2.4.2
+RUN pip install appdirs==1.4.0 pyopenssl==17.5.0 python-openstackclient==3.11.0 python-heatclient==1.11.0 ansible==2.5.5
 
 RUN mkdir -p ${REPOS_DIR}
 
diff --git a/docker/Dockerfile.aarch64.patch b/docker/Dockerfile.aarch64.patch
index 21095cbe3..712718426 100644
--- a/docker/Dockerfile.aarch64.patch
+++ b/docker/Dockerfile.aarch64.patch
@@ -31,7 +31,7 @@ index 62ea0d0..f2f41771 100644
 +RUN apt-get update && apt-get install -y git python python-setuptools python-pip iputils-ping && 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
+ RUN pip install appdirs==1.4.0 pyopenssl==17.5.0 python-openstackclient==3.11.0 python-heatclient==1.11.0 ansible==2.5.5
 
 @@ -48,8 +49,8 @@ RUN echo "daemon off;" >> /etc/nginx/nginx.conf
  # nginx=5000, rabbitmq=5672
diff --git a/nsb_setup.sh b/nsb_setup.sh
index 3396b82d1..1f5344980 100755
--- a/nsb_setup.sh
+++ b/nsb_setup.sh
@@ -63,7 +63,7 @@ for i in "${pkg[@]}"; do
     fi
 done
 
-pip install ansible==2.4.2 shade==1.22.2 docker-py==1.10.6
+pip install ansible==2.5.5 shade==1.22.2 docker-py==1.10.6
 
 ANSIBLE_SCRIPTS="ansible"
 
diff --git a/requirements.txt b/requirements.txt
index 60014d75e..a7a7e68b1 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -11,7 +11,7 @@ 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.4.2          # GPLv3; OSI Approved  GNU General Public License v3 or later (GPLv3+)
+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
-- 
cgit 


From 6cc6b8a477fc3f7a32a11af4f6a6dc76b5fac83f Mon Sep 17 00:00:00 2001
From: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
Date: Thu, 21 Jun 2018 12:42:55 +0100
Subject: Fix pip install issues in install.yaml script

For long executing commands, ansible should use async jobs. For example,
when installing the project requirements.

There is a problem in ansible pip module when using a "editable installs".
This command should be called with "editable" flag.

JIRA: YARDSTICK-1250

Change-Id: I6d29bab2f388373e252d065ff5aa0c459a8f265a
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
---
 ansible/roles/install_yardstick/tasks/main.yml     | 37 +++++++++++++++++++---
 .../install_yardstick/tasks/regular_install.yml    | 23 --------------
 .../install_yardstick/tasks/virtual_install.yml    | 25 ---------------
 3 files changed, 33 insertions(+), 52 deletions(-)
 delete mode 100644 ansible/roles/install_yardstick/tasks/regular_install.yml
 delete mode 100644 ansible/roles/install_yardstick/tasks/virtual_install.yml

diff --git a/ansible/roles/install_yardstick/tasks/main.yml b/ansible/roles/install_yardstick/tasks/main.yml
index ee1b83756..973b2b027 100644
--- a/ansible/roles/install_yardstick/tasks/main.yml
+++ b/ansible/roles/install_yardstick/tasks/main.yml
@@ -37,10 +37,39 @@
 #    name: pip
 #    state: latest
 
-- name: install yardstick without virtual environment
-  include_tasks: regular_install.yml
+- name: Install Yardstick requirements (venv)
+  pip:
+    requirements: "{{ yardstick_dir }}/requirements.txt"
+    virtualenv: "{{ yardstick_dir }}/virtualenv"
+  async: 300
+  poll: 0
+  register: pip_installer
+  when: virtual_environment == True
+
+- name: Install Yardstick requirements
+  pip:
+    requirements: "{{ yardstick_dir }}/requirements.txt"
+  async: 300
+  poll: 0
+  register: pip_installer
   when: virtual_environment == False
 
-- name: install yardstick with virtual environment
-  include_tasks: virtual_install.yml
+- name: Check install Yardstick requirements
+  async_status:
+    jid: "{{ pip_installer.ansible_job_id }}"
+  register: job_result
+  until: job_result.finished
+  retries: 100
+
+- name: Install Yardstick code (venv)
+  pip:
+    name: "{{ yardstick_dir }}/"
+    editable: True
+    virtualenv: "{{ yardstick_dir }}/virtualenv"
   when: virtual_environment == True
+
+- name: Install Yardstick code
+  pip:
+    name: "{{ yardstick_dir }}/"
+    editable: True
+  when: virtual_environment == False
diff --git a/ansible/roles/install_yardstick/tasks/regular_install.yml b/ansible/roles/install_yardstick/tasks/regular_install.yml
deleted file mode 100644
index cd0e86fb9..000000000
--- a/ansible/roles/install_yardstick/tasks/regular_install.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# 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.
----
-- name: Install Yardstick requirements
-  pip:
-    requirements: "{{ yardstick_dir }}/requirements.txt"
-
-- name: Install Yardstick code
-  pip:
-    name: "."
-    extra_args: -e
-    chdir: "{{ yardstick_dir }}/"
diff --git a/ansible/roles/install_yardstick/tasks/virtual_install.yml b/ansible/roles/install_yardstick/tasks/virtual_install.yml
deleted file mode 100644
index 8545acbcb..000000000
--- a/ansible/roles/install_yardstick/tasks/virtual_install.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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.
----
-- name: Install Yardstick requirements
-  pip:
-    requirements: "{{ yardstick_dir }}/requirements.txt"
-    virtualenv: "{{ yardstick_dir }}/virtualenv"
-
-- name: Install Yardstick code
-  pip:
-    name: "{{ yardstick_dir }}/."
-    extra_args: -e
-    virtualenv: "{{ yardstick_dir }}/virtualenv"
-
-- 
cgit