Dmitry Tantsur c80a7b7d0c Wait for cleaning to be over when enrolling
Currently we're relying on the baremetal_node module to create a node in
the available state. This will soon imply cleaning, but the module is
not ready to deal with it: it does not wait by default and there is no
wait option. Just loop until it's done.

Change-Id: Ia4b290e3c7e2041e249b947248123d9fb52dae08
2022-07-13 13:56:12 +02:00

49 lines
1.9 KiB
YAML

# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
#
# 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: "Collect facts"
setup:
gather_timeout: "{{ fact_gather_timeout }}"
- import_role:
name: bifrost-cloud-config
- name: "Dynamic enrollment"
openstack.cloud.baremetal_node:
cloud: "{{ cloud_name | default(omit) }}"
auth_type: "{{ auth_type | default(omit) }}"
auth: "{{ auth | default(omit) }}"
ca_cert: "{{ tls_certificate_path | default(omit) }}"
driver: "{{ driver }}"
uuid: "{{ uuid | default() }}"
name: "{{ name | default() }}"
state: present
nics: "{{ nics }}"
properties: "{{ properties | default({}) }}"
driver_info: "{{ driver_info | default(omit) }}"
# FIXME(dtantsur): the baremetal_node module should do it or at least provide
# a wait argument. Work around until then
- name: "Wait for the node to finish cleaning"
openstack.cloud.baremetal_node_info:
cloud: "{{ cloud_name | default(omit) }}"
auth_type: "{{ auth_type | default(omit) }}"
auth: "{{ auth | default(omit) }}"
ca_cert: "{{ tls_certificate_path | default(omit) }}"
node: "{{ name | default(uuid) }}"
register: enrolled_node_info
until: enrolled_node_info.baremetal_nodes[0].provision_state == "available"
retries: "{{ available_state_wait_retries | default(45) }}"
delay: "{{ provision_state_retry_interval | default(20) }}"