From e5d16155364c1dae2db238506f236194e2dfb1dc Mon Sep 17 00:00:00 2001 From: Ben Nemec Date: Wed, 13 Sep 2017 16:40:41 +0000 Subject: [PATCH] Add logging to capabilities filter The capabilities filter gets incorrectly blamed for a lot of deployment failures because on a retry of a node deployment the filter has to fail because there is only one node that can match when using predictable placement. However, we don't have any logging to help determine why the filter fails. This adds logging to explain why nodes fell through, which will hopefully help with debugging these problems. Change-Id: I702209e9b5a1e546bf8cb784eec8bdc3c97c63eb Closes-Bug: 1718502 --- tripleo_common/filters/capabilities_filter.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tripleo_common/filters/capabilities_filter.py b/tripleo_common/filters/capabilities_filter.py index df65488c6..ca185b3f0 100644 --- a/tripleo_common/filters/capabilities_filter.py +++ b/tripleo_common/filters/capabilities_filter.py @@ -13,6 +13,10 @@ # under the License. from nova.scheduler import filters +from oslo_log import log as logging + + +LOG = logging.getLogger(__name__) class TripleOCapabilitiesFilter(filters.BaseHostFilter): @@ -31,5 +35,13 @@ class TripleOCapabilitiesFilter(filters.BaseHostFilter): instance_node = spec_obj.scheduler_hints.get('capabilities:node') # The instance didn't request a specific node if not instance_node: + LOG.debug('No specific node requested') return True - return host_node == instance_node[0] + if host_node == instance_node[0]: + LOG.debug('Node tagged %s matches requested node %s', host_node, + instance_node[0]) + return True + else: + LOG.debug('Node tagged %s does not match requested node %s', + host_node, instance_node[0]) + return False