diff --git a/defaults/main.yml b/defaults/main.yml index 2c85eb44..9cfe2529 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -23,8 +23,6 @@ cinder_git_install_branch: master cinder_developer_mode: false cinder_developer_constraints: - "git+{{ cinder_git_repo }}@{{ cinder_git_install_branch }}#egg=cinder" -cinder_developer_mode_packages: - - git # Name of the virtual env to deploy into cinder_venv_tag: untagged diff --git a/tasks/cinder_install.yml b/tasks/cinder_install.yml index 3b8c9713..5d09d591 100644 --- a/tasks/cinder_install.yml +++ b/tasks/cinder_install.yml @@ -15,57 +15,14 @@ - name: Install distro packages package: - name: "{{ item }}" + name: "{{ cinder_package_list }}" state: "{{ cinder_package_state }}" update_cache: "{{ (ansible_pkg_mgr == 'apt') | ternary('yes', omit) }}" cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}" register: install_packages - until: install_packages|success + until: install_packages | success retries: 5 delay: 2 - with_items: "{{ cinder_distro_packages }}" - -- name: Install distro packages common between different backends - package: - name: "{{ item }}" - state: "{{ cinder_package_state }}" - update_cache: "{{ (ansible_pkg_mgr == 'apt') | ternary('yes', omit) }}" - cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}" - register: install_packages - until: install_packages|success - retries: 5 - delay: 2 - with_items: "{{ cinder_volume_distro_packages }}" - when: - - inventory_hostname in groups['cinder_volume'] - -- name: Install distro packages for LVM backend - package: - name: "{{ item }}" - state: "{{ cinder_package_state }}" - update_cache: "{{ (ansible_pkg_mgr == 'apt') | ternary('yes', omit) }}" - cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}" - register: install_packages - until: install_packages|success - retries: 5 - delay: 2 - with_items: "{{ cinder_lvm_volume_distro_packages }}" - when: - - inventory_hostname in groups['cinder_volume'] - - cinder_backend_lvm_inuse | bool - -- name: Install distro packages for developer_mode installs - package: - name: "{{ item }}" - state: "{{ cinder_package_state }}" - update_cache: "{{ (ansible_pkg_mgr == 'apt') | ternary('yes', omit) }}" - cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}" - register: install_packages - until: install_packages|success - retries: 5 - delay: 2 - with_items: "{{ cinder_developer_mode_packages }}" - when: cinder_developer_mode | bool - name: Create developer mode constraint file copy: diff --git a/vars/main.yml b/vars/main.yml index 90b58f1d..725317b7 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -13,6 +13,28 @@ # See the License for the specific language governing permissions and # limitations under the License. +# +# Compile a list of the distro packages to install based on +# whether the host is in the host group and the service is +# enabled. +# +cinder_package_list: |- + {% set packages = cinder_distro_packages %} + {% if cinder_services['cinder-volume']['group'] in group_names %} + {% set _ = packages.extend(cinder_volume_distro_packages) %} + {% if cinder_backend_lvm_inuse | bool %} + {% set _ = packages.extend(cinder_lvm_volume_distro_packages) %} + {% endif %} + {% endif %} + {% if cinder_developer_mode | bool %} + {% set _ = packages.extend(cinder_developer_mode_distro_packages) %} + {% endif %} + {{ packages }} + +# +# Compile a list of the services on a host based on whether +# the host is in the host group and the service is enabled. +# filtered_cinder_services: > {%- set services = cinder_services.copy() %} {%- for key,value in cinder_services.items() %} diff --git a/vars/redhat-7.yml b/vars/redhat-7.yml index 03f9b005..dffd264b 100644 --- a/vars/redhat-7.yml +++ b/vars/redhat-7.yml @@ -28,6 +28,9 @@ cinder_distro_packages: - which - iscsi-initiator-utils +cinder_developer_mode_distro_packages: + - git + cinder_volume_distro_packages: - qemu-img-ev diff --git a/vars/ubuntu-16.04.yml b/vars/ubuntu-16.04.yml index 0671feef..b9b588e6 100644 --- a/vars/ubuntu-16.04.yml +++ b/vars/ubuntu-16.04.yml @@ -35,6 +35,9 @@ cinder_distro_packages: - libssl-dev - open-iscsi +cinder_developer_mode_distro_packages: + - git-core + cinder_volume_distro_packages: - qemu-utils