From 18f583b1fe683842a7ce500085fec98b9e4e6d55 Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Thu, 23 Aug 2018 08:43:13 -0700 Subject: [PATCH] Add openstacksdk to installed packages In order to continue CI testing of openstacksdk and related interactions with shade while functionality is transitioned from shade to openstacksdk, we must install openstacksdk first. Co-Authored-By: Dmitry Tantsur Change-Id: Id5561132c6b07d5b33eeb4abf493010b805ab529 --- playbooks/legacy/bifrost-integration-dhcp/run.yaml | 1 + .../legacy/bifrost-integration-dibipa-debian/run.yaml | 1 + playbooks/legacy/bifrost-integration-tinyipa/run.yaml | 1 + playbooks/roles/bifrost-ironic-install/README.md | 4 ++-- .../roles/bifrost-ironic-install/defaults/main.yml | 3 +++ .../roles/bifrost-ironic-install/tasks/install.yml | 11 +++++++++++ .../roles/bifrost-prep-for-install/defaults/main.yml | 7 +++++++ playbooks/test-bifrost.yaml | 1 + .../notes/openstacksdk-addition-efec3878ef988295.yaml | 8 ++++++++ 9 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/openstacksdk-addition-efec3878ef988295.yaml diff --git a/playbooks/legacy/bifrost-integration-dhcp/run.yaml b/playbooks/legacy/bifrost-integration-dhcp/run.yaml index dac0d83c5..c3cd28efe 100644 --- a/playbooks/legacy/bifrost-integration-dhcp/run.yaml +++ b/playbooks/legacy/bifrost-integration-dhcp/run.yaml @@ -60,6 +60,7 @@ openstack/ironic \ openstack/python-ironicclient \ openstack-infra/shade \ + openstack/openstacksdk \ openstack/ironic-inspector \ openstack/python-ironic-inspector-client \ openstack/requirements diff --git a/playbooks/legacy/bifrost-integration-dibipa-debian/run.yaml b/playbooks/legacy/bifrost-integration-dibipa-debian/run.yaml index d94ec7d5e..9dcc6271b 100644 --- a/playbooks/legacy/bifrost-integration-dibipa-debian/run.yaml +++ b/playbooks/legacy/bifrost-integration-dibipa-debian/run.yaml @@ -60,6 +60,7 @@ openstack/ironic \ openstack/python-ironicclient \ openstack-infra/shade \ + openstack/openstacksdk \ openstack/ironic-inspector \ openstack/python-ironic-inspector-client \ openstack/requirements diff --git a/playbooks/legacy/bifrost-integration-tinyipa/run.yaml b/playbooks/legacy/bifrost-integration-tinyipa/run.yaml index 232895332..81c560b5d 100644 --- a/playbooks/legacy/bifrost-integration-tinyipa/run.yaml +++ b/playbooks/legacy/bifrost-integration-tinyipa/run.yaml @@ -59,6 +59,7 @@ openstack/ironic \ openstack/python-ironicclient \ openstack-infra/shade \ + openstack/openstacksdk \ openstack/ironic-inspector \ openstack/python-ironic-inspector-client \ openstack/requirements diff --git a/playbooks/roles/bifrost-ironic-install/README.md b/playbooks/roles/bifrost-ironic-install/README.md index 17ea5204c..dda2fc211 100644 --- a/playbooks/roles/bifrost-ironic-install/README.md +++ b/playbooks/roles/bifrost-ironic-install/README.md @@ -39,8 +39,8 @@ The ironic python client and shade libraries can be installed directly from Git. The default is to utilize pip to install the current versions in pypi, however testing may require master branch or custom patches. -ironicclient_source_install: false -shade_source_install: false +openstacksdk_source_install: true +shade_source_install: true Bifrost requires access to the network where nodes are located, in order to provision the nodes. By default, this setting is set to a value for local diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index a99eda5c3..35b666457 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -7,6 +7,7 @@ ironic_tftp_master_path: /var/lib/ironic/master_images staging_drivers_include: false file_url_port: "8080" ironicclient_source_install: false +openstacksdk_source_install: true shade_source_install: true ironicinspector_source_install: true ironicinspectorclient_source_install: false @@ -67,6 +68,7 @@ include_dhcp_server: true # *_git_url can be overridden by local clones for offline installs dib_git_url: https://git.openstack.org/openstack/diskimage-builder ironicclient_git_url: https://git.openstack.org/openstack/python-ironicclient +openstacksdk_git_url: https://git.openstack.org/openstack/openstacksdk 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 @@ -81,6 +83,7 @@ ironic_db_password: aSecretPassword473z disable_dnsmasq_dns: False ironic_git_folder: /opt/stack/ironic ironicclient_git_folder: /opt/stack/python-ironicclient +openstacksdk_git_folder: /opt/stack/openstacksdk shade_git_folder: /opt/stack/shade dib_git_folder: /opt/stack/diskimage-builder reqs_git_folder: /opt/stack/requirements diff --git a/playbooks/roles/bifrost-ironic-install/tasks/install.yml b/playbooks/roles/bifrost-ironic-install/tasks/install.yml index 2962ca466..626d531b0 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/install.yml @@ -57,6 +57,17 @@ action: "{{ ansible_pkg_mgr }} name={{ iscsi_client_package }} state=present" when: skip_install is not defined +# NOTE(TheJulia): Install openstacksdk since shade wraps to openstacksdk and the +# logic is largely going into openstacksdk as time goes on. +- block: + - name: install openstacksdk from PyPI + command: "{{ hostvars[inventory_hostname].ansible_python.executable }} -m pip install openstacksdk" + when: not (openstacksdk_source_install | default(false) | bool) + - name: install openstacksdk from source + command: "{{ hostvars[inventory_hostname].ansible_python.executable }} -m pip install {{ openstacksdk_git_folder }}" + when: openstacksdk_source_install | default(false) | bool + when: skip_install is not defined + # NOTE(pas-ha) even when install into virtualenv is requested, # we need to install shade into system for enroll-dynamic to succeed - block: diff --git a/playbooks/roles/bifrost-prep-for-install/defaults/main.yml b/playbooks/roles/bifrost-prep-for-install/defaults/main.yml index e068a6f64..26d089da2 100644 --- a/playbooks/roles/bifrost-prep-for-install/defaults/main.yml +++ b/playbooks/roles/bifrost-prep-for-install/defaults/main.yml @@ -4,6 +4,7 @@ git_root: "/opt/stack" # *_git_url can be overridden by local clones for offline installs dib_git_url: https://git.openstack.org/openstack/diskimage-builder ironicclient_git_url: https://git.openstack.org/openstack/python-ironicclient +openstacksdk_git_url: https://git.openstack.org/openstack/openstacksdk 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 @@ -16,6 +17,7 @@ ironicclient_git_folder: "{{ git_root}}/python-ironicclient" ironic_git_folder: "{{ git_root}}/ironic" ironicinspector_git_folder: "{{ git_root}}/ironic-inspector" ironicinspectorclient_git_folder: "{{ git_root}}/python-ironic-inspector-client" +openstacksdk_git_folder: "{{ git_root}}/openstacksdk" shade_git_folder: "{{ git_root}}/shade" dib_git_folder: "{{ git_root }}/diskimage-builder" reqs_git_folder: "{{ git_root }}/requirements" @@ -25,6 +27,7 @@ keystone_git_folder: "{{ git_root}}/keystone" # *_git_branch can be overridden for stable branch testing ironicclient_git_branch: master ironic_git_branch: master +openstacksdk_git_branch: master shade_git_branch: master dib_git_branch: master ironicinspector_git_branch: master @@ -46,6 +49,10 @@ bifrost_install_sources: git_url: "{{ ironicclient_git_url }}" git_branch: "{{ ironicclient_git_branch }}" name: ironicclient + - git_folder: "{{ openstacksdk_git_folder }}" + git_url: "{{ openstacksdk_git_url }}" + git_branch: "{{ openstacksdk_git_branch }}" + name: openstacksdk - git_folder: "{{ shade_git_folder }}" git_url: "{{ shade_git_url }}" git_branch: "{{ shade_git_branch }}" diff --git a/playbooks/test-bifrost.yaml b/playbooks/test-bifrost.yaml index 3ea2d91e5..8dd8f56ce 100644 --- a/playbooks/test-bifrost.yaml +++ b/playbooks/test-bifrost.yaml @@ -31,6 +31,7 @@ ci_testing_zuul: true ironic_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic" ironicclient_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/python-ironicclient" + openstacksdk_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/openstacksdk" shade_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack-infra/shade" dib_git_url: "/opt/git/openstack/diskimage-builder" ironicinspector_git_url: "{{ lookup('env', 'WORKSPACE') }}/openstack/ironic-inspector" diff --git a/releasenotes/notes/openstacksdk-addition-efec3878ef988295.yaml b/releasenotes/notes/openstacksdk-addition-efec3878ef988295.yaml new file mode 100644 index 000000000..cf3da3f5c --- /dev/null +++ b/releasenotes/notes/openstacksdk-addition-efec3878ef988295.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + Adds the use of the ``openstacksdk`` library which is superceeding the + ``shade`` library for communicating with OpenStack services using the + Ansible modules. By default this this will attempted to be installed + from source. Set the ``openstacksdk_source_install`` option to false + in order to install from PyPI.