From c578686b6b4bc37b9a2fd524ac105a303638b068 Mon Sep 17 00:00:00 2001 From: Andy Botting Date: Wed, 20 Mar 2024 14:00:57 +1100 Subject: [PATCH] Fix networks validation for Trove When creating Trove instances with a specific network configuration, some validation logic would fail if the network/port resources did not already exist. For example, if a network and a trove instance were to be created as part of the same stack, the network ID would not exist yet and result in the ID being an empty string. This commit fixes that logic to specifically test whether the value is None, rather than the truthy test of None or '' Story: 2011075 Task: 49772 Change-Id: I12c98828271be05d1d98d653eeb2ae21ede058f7 --- heat/engine/resources/openstack/trove/cluster.py | 3 +-- heat/engine/resources/openstack/trove/instance.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/heat/engine/resources/openstack/trove/cluster.py b/heat/engine/resources/openstack/trove/cluster.py index 8705cb6984..93f316a853 100644 --- a/heat/engine/resources/openstack/trove/cluster.py +++ b/heat/engine/resources/openstack/trove/cluster.py @@ -365,8 +365,7 @@ class TroveCluster(resource.Resource): % self.PORT) raise exception.StackValidationFailed(message=msg) - if (bool(nic.get(self.NET) is not None) == - bool(nic.get(self.PORT) is not None)): + if (nic.get(self.NET) is None) == (nic.get(self.PORT) is None): msg = (_("Either %(net)s or %(port)s must be provided.") % {'net': self.NET, 'port': self.PORT}) raise exception.StackValidationFailed(message=msg) diff --git a/heat/engine/resources/openstack/trove/instance.py b/heat/engine/resources/openstack/trove/instance.py index fd143aff4d..e3b4c7963d 100644 --- a/heat/engine/resources/openstack/trove/instance.py +++ b/heat/engine/resources/openstack/trove/instance.py @@ -685,7 +685,7 @@ class Instance(resource.Resource): msg = _("Can not use %s property on Nova-network.") % self.PORT raise exception.StackValidationFailed(message=msg) - if bool(nic.get(self.NET)) == bool(nic.get(self.PORT)): + if (nic.get(self.NET) is None) == (nic.get(self.PORT) is None): msg = _("Either %(net)s or %(port)s must be provided.") % { 'net': self.NET, 'port': self.PORT} raise exception.StackValidationFailed(message=msg)