From 27cf09fa19af42d51891c9d09d4632647e22e486 Mon Sep 17 00:00:00 2001 From: gryf Date: Wed, 30 Jun 2021 15:25:22 +0200 Subject: [PATCH] Don't change aliveness for certain exceptions. Change-Id: Ia6e18b2266be2bb4f050f19c94fc2d905d59e932 --- kuryr_kubernetes/handlers/retry.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/kuryr_kubernetes/handlers/retry.py b/kuryr_kubernetes/handlers/retry.py index 1116137ad..664c2d78e 100644 --- a/kuryr_kubernetes/handlers/retry.py +++ b/kuryr_kubernetes/handlers/retry.py @@ -23,6 +23,7 @@ from oslo_log import log as logging from oslo_utils import excutils from kuryr_kubernetes import clients +from kuryr_kubernetes.controller.managers import prometheus_exporter from kuryr_kubernetes import exceptions from kuryr_kubernetes.handlers import base from kuryr_kubernetes import utils @@ -83,6 +84,20 @@ class Retry(base.EventHandler): } self._handler(event, *args, retry_info=info, **kwargs) break + except (exceptions.LoadBalancerNotReady, + exceptions.PortNotReady) as exc: + cls_map = {'LoadBalancerNotReady': 'record_lb_failure', + 'PortNotReady': 'record_port_failure'} + with excutils.save_and_reraise_exception() as ex: + if self._sleep(deadline, attempt, ex.value): + ex.reraise = False + else: + exporter = (prometheus_exporter + .ControllerPrometheusExporter + .get_instance()) + method = getattr(exporter, cls_map[type(exc).__name__]) + method() + except os_exc.ConflictException as ex: if ex.details.startswith('Quota exceeded for resources'): with excutils.save_and_reraise_exception() as ex: