From fd6045d9b3dd5477cab5123fd00fe8b2a0570ac8 Mon Sep 17 00:00:00 2001 From: Yolanda Robla Mota Date: Mon, 31 Oct 2016 14:24:40 +0100 Subject: [PATCH] Enable upper requirements on bifrost pip install for bifrost shall be installing upper requirements, to go with same versions used by Ironic. Change-Id: Ib5081cabc5c73c11a2088689f2e299cd2eb12338 --- playbooks/roles/bifrost-ironic-install/defaults/main.yml | 1 + playbooks/roles/bifrost-ironic-install/tasks/install.yml | 1 + playbooks/roles/bifrost-ironic-install/tasks/pip_install.yml | 5 +++-- playbooks/roles/bifrost-prep-for-install/defaults/main.yml | 3 +++ .../roles/bifrost-prep-for-install/tasks/git_download.yaml | 5 +++++ .../roles/bifrost-prep-for-install/tasks/local_path.yaml | 5 ++++- playbooks/test-bifrost-dhcp.yaml | 1 + playbooks/test-bifrost-dynamic.yaml | 1 + playbooks/test-bifrost.yaml | 1 + 9 files changed, 20 insertions(+), 3 deletions(-) diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index 0a761f82a..d6c93f19a 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -71,6 +71,7 @@ ironic_git_folder: /opt/stack/ironic ironicclient_git_folder: /opt/stack/python-ironicclient shade_git_folder: /opt/stack/shade dib_git_folder: /opt/stack/diskimage-builder +reqs_git_folder: /opt/stack/requirements ironicinspector_git_folder: /opt/stack/ironic-inspector ironicinspectorclient_git_folder: /opt/stack/python-ironic-inspector-client # Comma-separated list, in the format of a string, of drivers that are enabled diff --git a/playbooks/roles/bifrost-ironic-install/tasks/install.yml b/playbooks/roles/bifrost-ironic-install/tasks/install.yml index 5cdf11eac..b46062390 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/install.yml @@ -91,6 +91,7 @@ state=latest sourcedir={{ ironic_git_folder }} source_install=true + extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ reqs_git_folder }}/upper-constraints.txt" when: skip_install is not defined - name: "Install ironic-inspector to permit use of inspection interface" include: inspector_install.yml diff --git a/playbooks/roles/bifrost-ironic-install/tasks/pip_install.yml b/playbooks/roles/bifrost-ironic-install/tasks/pip_install.yml index e498f3e52..6dcdfb811 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/pip_install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/pip_install.yml @@ -19,11 +19,12 @@ state: "{{ state | default(omit) }}" version: "{{ version | default(omit) }}" virtualenv: "{{ bifrost_venv_dir if enable_venv else omit }}" + extra_args: "{{ extra_args | default(omit) }}" when: source_install is not defined or source_install == false # NOTE (cinerama): We should be able to use the pip module here and # possibly merge these two tasks when # https://github.com/ansible/ansible-modules-core/pull/2600 lands. - name: "Install from {{ sourcedir }} using pip" - command: pip install --upgrade --force-reinstall {{ sourcedir }} + command: pip install {{ sourcedir }} {{ extra_args | default('') }} when: source_install is defined and (source_install | bool == true) - environment: "{{ bifrost_venv_env if enable_venv else '{}' }}" \ No newline at end of file + environment: "{{ bifrost_venv_env if enable_venv else '{}' }}" diff --git a/playbooks/roles/bifrost-prep-for-install/defaults/main.yml b/playbooks/roles/bifrost-prep-for-install/defaults/main.yml index 9e43b9bd8..acd983fd9 100644 --- a/playbooks/roles/bifrost-prep-for-install/defaults/main.yml +++ b/playbooks/roles/bifrost-prep-for-install/defaults/main.yml @@ -8,6 +8,7 @@ shade_git_url: https://git.openstack.org/openstack-infra/shade ironic_git_url: https://git.openstack.org/openstack/ironic ironicinspector_git_url: https://github.com/openstack/ironic-inspector ironicinspectorclient_git_url: https://github.com/openstack/python-ironic-inspector-client +reqs_git_url: https://git.openstack.org/openstack/requirements # *_git_folder can be overridden by local clones for offline installs ironicclient_git_folder: "{{ git_root}}/python-ironicclient" ironic_git_folder: "{{ git_root}}/ironic" @@ -15,6 +16,7 @@ ironicinspector_git_folder: "{{ git_root}}/ironic-inspector" ironicinspectorclient_git_folder: "{{ git_root}}/python-ironic-inspector-client" shade_git_folder: "{{ git_root}}/shade" dib_git_folder: "{{ git_root }}/diskimage-builder" +reqs_git_folder: "{{ git_root }}/requirements" # *_git_branch can be overridden for stable branch testing ironicclient_git_branch: master ironic_git_branch: master @@ -22,6 +24,7 @@ shade_git_branch: master dib_git_branch: master ironicinspector_git_branch: master ironicinspectorclient_git_branch: master +reqs_git_branch: master # Conditional variables utilized based on CI or manual testing options. copy_from_local_path: false diff --git a/playbooks/roles/bifrost-prep-for-install/tasks/git_download.yaml b/playbooks/roles/bifrost-prep-for-install/tasks/git_download.yaml index 397ad0b03..5c199fdb7 100644 --- a/playbooks/roles/bifrost-prep-for-install/tasks/git_download.yaml +++ b/playbooks/roles/bifrost-prep-for-install/tasks/git_download.yaml @@ -42,3 +42,8 @@ git_url="{{ ironicinspectorclient_git_url }}" git_folder="{{ ironicinspectorclient_git_folder }}" git_branch="{{ ironicinspectorclient_git_branch }}" + +- include: git.yml + git_url="{{ reqs_git_url }}" + git_folder="{{ reqs_git_folder }}" + git_branch="{{ reqs_git_branch }}" diff --git a/playbooks/roles/bifrost-prep-for-install/tasks/local_path.yaml b/playbooks/roles/bifrost-prep-for-install/tasks/local_path.yaml index fdc1dc60a..7ab8392e8 100644 --- a/playbooks/roles/bifrost-prep-for-install/tasks/local_path.yaml +++ b/playbooks/roles/bifrost-prep-for-install/tasks/local_path.yaml @@ -29,4 +29,7 @@ command: cp -a {{ ironicinspector_git_url }} {{ ironicinspector_git_folder }} chdir={{ git_root }} creates={{ ironicinspector_git_folder }} - name: "python-ironic-inspector-client - Copy into place" - command: cp -a {{ ironicinspectorclient_git_url }} {{ ironicinspectorclient_git_folder }} chdir={{ git_root }} creates={{ ironicinspectorclient_git_folder }} + command: cp -a {{ ironicinspectorclient_git_url }} {{ ironicinspectorclient_git_folder }} chdir={{ git_root }} creates={{ ironicinspectorclient_git_folder }}i + +- name: "Clone upper requirements" + command: cp -a {{ reqs_git_url }} {{ reqs_git_folder }} chdir={{ git_root }} creates={{ reqs_git_folder }} diff --git a/playbooks/test-bifrost-dhcp.yaml b/playbooks/test-bifrost-dhcp.yaml index ac535335d..ca94a7c29 100644 --- a/playbooks/test-bifrost-dhcp.yaml +++ b/playbooks/test-bifrost-dhcp.yaml @@ -41,6 +41,7 @@ dib_git_url: "/opt/git/openstack/diskimage-builder" ironicinspector_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic-inspector" ironicinspectorclient_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/python-ironic-inspector-client" + reqs_git_url: "/opt/git/openstack/requirements" # TODO(TheJulia) Fix the above paths to be consistent, because the NV job gets the dib # folder cloned, while the gate job does not. Likely need to work out a semi-hybrid # solution. diff --git a/playbooks/test-bifrost-dynamic.yaml b/playbooks/test-bifrost-dynamic.yaml index cb2671ced..b4c39e54b 100644 --- a/playbooks/test-bifrost-dynamic.yaml +++ b/playbooks/test-bifrost-dynamic.yaml @@ -23,6 +23,7 @@ dib_git_url: "/opt/git/openstack/diskimage-builder" ironicinspector_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic-inspector" ironicinspectorclient_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/python-ironic-inspector-client" + reqs_git_url: "/opt/git/openstack/requirements" # TODO(TheJulia) Fix the above paths to be consistent, because the NV job gets the dib # folder cloned, while the gate job does not. Likely need to work out a semi-hybrid # solution. diff --git a/playbooks/test-bifrost.yaml b/playbooks/test-bifrost.yaml index fe6856252..e382a4ae3 100644 --- a/playbooks/test-bifrost.yaml +++ b/playbooks/test-bifrost.yaml @@ -35,6 +35,7 @@ dib_git_url: "/opt/git/openstack/diskimage-builder" ironicinspector_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic-inspector" ironicinspectorclient_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/python-ironic-inspector-client" + reqs_git_url: "/opt/git/openstack/requirements" # TODO(TheJulia) Fix the above paths to be consistent, because the NV job gets the dib # folder cloned, while the gate job does not. Likely need to work out a semi-hybrid # solution.