From 73d1ee2707c61dc495030c8cccb0ca60d46a9213 Mon Sep 17 00:00:00 2001 From: David Vallee Delisle Date: Wed, 21 Apr 2021 09:07:24 -0400 Subject: [PATCH] [train-only] Trap empty role data If there's no config_settings for a node during initial deployment, tripleoclient breaks. Related: https://bugzilla.redhat.com/show_bug.cgi?id=1952017 Change-Id: I9953ed63ea58440008ddf7408696cfd0e722341a --- tripleoclient/v1/overcloud_deploy.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tripleoclient/v1/overcloud_deploy.py b/tripleoclient/v1/overcloud_deploy.py index abdb876f0..3a31a103d 100644 --- a/tripleoclient/v1/overcloud_deploy.py +++ b/tripleoclient/v1/overcloud_deploy.py @@ -120,14 +120,18 @@ class DeployOvercloud(command.Command): if roledata: nbd_tls_key = 'nova::compute::libvirt::qemu::nbd_tls' for key in roledata: - if nbd_tls_key in roledata[key]['config_settings']: - nbd_tls = roledata[key][ - 'config_settings'][nbd_tls_key] - self.log.debug("use_tls_for_nbd=%s" % nbd_tls) - parameters['UseTLSTransportForNbd'] = nbd_tls - break - else: - parameters['UseTLSTransportForNbd'] = False + if not roledata[key]: + # Probably an incomplete stack, ignore it. + continue + config_settings = roledata[key].get('config_settings') + if config_settings: + nbd_tls = config_settings.get(nbd_tls_key) + if nbd_tls: + self.log.debug("use_tls_for_nbd=%s" % nbd_tls) + parameters['UseTLSTransportForNbd'] = nbd_tls + break + else: + parameters['UseTLSTransportForNbd'] = False # Update parameters from commandline for param, arg in param_args: