6c976e5077
The tasks to configure cinder backends require that the API be available. Since the API service should be installed after the volume service, run these tasks against an API host instead of a volume host. Change-Id: I6f39b4da6d4d8a3768f157c73970fe0177885ff3
64 lines
2.6 KiB
YAML
64 lines
2.6 KiB
YAML
---
|
|
# Copyright 2014, Rackspace US, Inc.
|
|
#
|
|
# 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: Ensure cinder api is available
|
|
uri:
|
|
url: "{{ cinder_service_internaluri }}"
|
|
status_code: 200,300
|
|
validate_certs: "{{ cinder_service_internaluri_insecure | bool }}"
|
|
register: api_status
|
|
until: api_status | success
|
|
retries: 10
|
|
delay: 10
|
|
|
|
- name: Create singular cinder_backends variable for all hosts
|
|
set_fact:
|
|
_cinder_backends: "{{ (_cinder_backends | default(cinder_backends | default({}))) | combine(hostvars[item]['cinder_backends'] | default({})) }}"
|
|
with_items: "{{ groups[cinder_services['cinder-volume']['group']] }}"
|
|
|
|
- name: Add in cinder devices types
|
|
shell: |
|
|
. {{ ansible_env.HOME }}/openrc
|
|
CLI_OPTIONS="{{ ((keystone_service_adminuri_insecure | bool) or (cinder_service_internaluri_insecure | bool)) | ternary('--insecure','') }}"
|
|
if ! {{ cinder_bin }}/cinder ${CLI_OPTIONS} type-list | grep " {{ item.key }} "; then
|
|
{{ cinder_bin }}/cinder ${CLI_OPTIONS} type-create "{{ item.key }}"
|
|
{{ cinder_bin }}/cinder ${CLI_OPTIONS} type-key "{{ item.key }}" set volume_backend_name="{{ item.value.volume_backend_name }}"
|
|
fi
|
|
args:
|
|
executable: /bin/bash
|
|
with_dict: "{{ _cinder_backends|default({}) }}"
|
|
changed_when: false
|
|
|
|
- name: Add extra cinder volume types
|
|
shell: |
|
|
. {{ ansible_env.HOME }}/openrc
|
|
CLI_OPTIONS="{{ ((keystone_service_adminuri_insecure | bool) or (cinder_service_internaluri_insecure | bool)) | ternary('--insecure','') }}"
|
|
{% for evtype in item.value.extra_volume_types %}
|
|
if ! {{ cinder_bin }}/cinder ${CLI_OPTIONS} type-list | grep " {{ evtype }} "; then
|
|
{{ cinder_bin }}/cinder ${CLI_OPTIONS} type-create "{{ evtype }}"
|
|
{{ cinder_bin }}/cinder ${CLI_OPTIONS} type-key "{{ evtype }}" set volume_backend_name="{{ item.value.volume_backend_name }}"
|
|
fi
|
|
{% endfor %}
|
|
args:
|
|
executable: /bin/bash
|
|
with_dict: "{{ _cinder_backends|default({}) }}"
|
|
when: item.value.extra_volume_types is defined
|
|
|
|
- include: cinder_qos.yml
|
|
static: no
|
|
when: cinder_qos_specs is defined
|
|
tags:
|
|
- cinder-qos
|