---
# 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 ip/port are responsive
  wait_for: >
    port={{ cinder_service_port }}
    delay=10
    host="{{ internal_vip_address }}"

- name: check cinder api service is available
  uri: >
    url=http://"{{ internal_vip_address }}":"{{ cinder_service_port }}"
    method=GET
    return_content=true
  register: cinder_get
  failed_when: "'CURRENT' not in cinder_get.content"

- name: Add in cinder devices types
  shell: |
    . ~/openrc
    cinder type-create "{{ item.0 }}"
    cinder type-key "{{ item.0 }}" set volume_backend_name="{{ cinder_backends[item.0]['volume_backend_name'] }}"
  with_items: cinder_backends|dictsort
  when: cinder_backends is defined

---
# 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 ip/port are responsive
  wait_for: >
    port={{ cinder_service_port }}
    delay=10
    host="{{ internal_vip_address }}"

- name: check cinder api service is available
  uri: >
    url=http://"{{ internal_vip_address }}":"{{ cinder_service_port }}"
    method=GET
    return_content=true
  register: cinder_get
  failed_when: "'CURRENT' not in cinder_get.content"
  until: cinder_get|success
  retries: 20
  delay: 2

- name: Add in cinder devices types
  shell: |
    . ~/openrc
    cinder type-create "{{ item.0 }}"
    cinder type-key "{{ item.0 }}" set volume_backend_name="{{ cinder_backends[item.0]['volume_backend_name'] }}"
  with_items: cinder_backends|dictsort
  when: cinder_backends is defined

Add retries for cinder get test
Add retries for cinder get test

This fails as the volume service takes >10 seconds to start.
Adding retries is better than increasing the delay as it prevents
unnecesary waiting.

Closes #353
