From d14cd501d76f3ab95b9d5f6b4290256442f55b4e Mon Sep 17 00:00:00 2001 From: Pavlo Shchelokovskyy Date: Tue, 23 Nov 2021 16:32:01 +0200 Subject: [PATCH] Ignore connection errors when getting ironic ports as a followup to I24b08612c4ffc6aca60ca08f3ff5cc769c7c041d, this solves the case when connectivity between inspector and ironic is broken, which can lead to the same FSM being stuck in uninitialized mode it can't get out of w/o restart. Change-Id: Ie238a2fca7cc5ef4961c0cb0e639ffbbe69556f7 Story: #2008971 Task: #42611 --- ironic_inspector/pxe_filter/dnsmasq.py | 3 ++- ironic_inspector/pxe_filter/iptables.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ironic_inspector/pxe_filter/dnsmasq.py b/ironic_inspector/pxe_filter/dnsmasq.py index b58d79f9..07fde8fa 100644 --- a/ironic_inspector/pxe_filter/dnsmasq.py +++ b/ironic_inspector/pxe_filter/dnsmasq.py @@ -28,6 +28,7 @@ import os import time +from keystoneauth1 import exceptions as ksa_exc from openstack import exceptions as os_exc from oslo_concurrency import processutils from oslo_config import cfg @@ -90,7 +91,7 @@ def _sync(self, ironic): # ironic_macs are all the MACs know to ironic (all ironic ports) ironic_macs = pxe_filter.get_ironic_macs(ironic) - except os_exc.SDKException: + except (os_exc.SDKException, ksa_exc.ConnectFailure): LOG.exception( "Could not list ironic ports, can not sync dnsmasq PXE filter") return diff --git a/ironic_inspector/pxe_filter/iptables.py b/ironic_inspector/pxe_filter/iptables.py index cbe0bf78..53818b91 100644 --- a/ironic_inspector/pxe_filter/iptables.py +++ b/ironic_inspector/pxe_filter/iptables.py @@ -13,6 +13,7 @@ import contextlib +from keystoneauth1 import exceptions as ksa_exc from openstack import exceptions as os_exc from oslo_concurrency import processutils from oslo_config import cfg @@ -118,7 +119,7 @@ def sync(self, ironic): else: to_deny = pxe_filter.get_inactive_macs(ironic) to_allow = None - except os_exc.SDKException: + except (os_exc.SDKException, ksa_exc.ConnectFailure): LOG.exception( "Could not list ironic ports, iptables PXE filter can not " "be synced")