summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2019-09-20 16:14:19 +0200
committerDmitry Tantsur <dtantsur@protonmail.com>2019-09-23 09:10:07 +0000
commit5a0706ddbdc12acebc7480cf8a6db79d8d0bdf22 (patch)
treeb5633072b4c1e27df8f3989a57b22c65b94f402a
parentfa471c680c6918e93627df334b5cbde8c591345c (diff)
downloadironic-5a0706ddbdc12acebc7480cf8a6db79d8d0bdf22.tar.gz
devstack: wait for conductor to start and register itself
Change-Id: I5e026754ed5aa6fb0ffaff086cda0bfa0aca2211 (cherry picked from commit 3f3508f0d02eef0487cd898744213ab240e45dee)
-rw-r--r--devstack/lib/ironic18
1 files changed, 17 insertions, 1 deletions
diff --git a/devstack/lib/ironic b/devstack/lib/ironic
index 643c2f749..95ce8137e 100644
--- a/devstack/lib/ironic
+++ b/devstack/lib/ironic
@@ -1449,7 +1449,23 @@ function start_ironic_api {
# Starts Ironic conductor.
function start_ironic_conductor {
run_process ir-cond "$IRONIC_BIN_DIR/ironic-conductor --config-file=$IRONIC_CONF_FILE"
- # TODO(romcheg): Find a way to check whether the conductor has started.
+
+ # Wait up to 30 seconds for ironic-conductor to start and register itself
+ local attempt
+ local max_attempts=7
+ for attempt in $(seq 1 $max_attempts); do
+ if openstack baremetal driver list | grep -q $IRONIC_DEPLOY_DRIVER; then
+ break
+ fi
+
+ if [ $attempt -eq $max_attempts ]; then
+ die $LINENO "Driver $IRONIC_DEPLOY_DRIVER did not appear in the driver list"
+ fi
+
+ echo "Still waiting for ironic-conductor to start, current state:"
+ openstack baremetal driver list
+ sleep 5
+ done
}
# Starts VirtualPDU