SEBA-726 suppress not-useful duplicate k8s synchronizer messages
Change-Id: I8435677345ea18bb11ae5241e4dacb70778c6afd
diff --git a/xos/synchronizer/pull_steps/pull_pods.py b/xos/synchronizer/pull_steps/pull_pods.py
index 0a92581..140ed94 100644
--- a/xos/synchronizer/pull_steps/pull_pods.py
+++ b/xos/synchronizer/pull_steps/pull_pods.py
@@ -27,6 +27,7 @@
from xosconfig import Config
from multistructlog import create_logger
from xoskafka import XOSKafkaProducer
+from helpers import debug_once
log = create_logger(Config().get('logging'))
@@ -74,7 +75,7 @@
resource = None
return resource
- def get_controller_from_obj(self, obj, trust_domain, depth=0):
+ def get_controller_from_obj(self, pod_name, obj, trust_domain, depth=0):
""" Given an object, Search for its controller. Strategy is to walk backward until we find some object that
is marked as a controller, but does not have any owners.
@@ -96,19 +97,19 @@
if not owner:
# Failed to fetch the owner, probably because the owner's kind is something we do not understand. An
# example is the etcd-cluser pod, which is owned by a deployment of kind "EtcdCluster".
- log.debug("failed to fetch owner", owner_reference=owner_reference)
+ debug_once("Pod %s: Failed to fetch owner" % pod_name, owner_reference=owner_reference)
continue
- controller = self.get_controller_from_obj(owner, trust_domain, depth+1)
+ controller = self.get_controller_from_obj(pod_name, owner, trust_domain, depth+1)
if controller:
return controller
return None
- def get_slice_from_pod(self, pod, trust_domain, principal):
+ def get_slice_from_pod(self, pod_name, pod, trust_domain, principal):
""" Given a pod, determine which XOS Slice goes with it
If the Slice doesn't exist, create it.
"""
- controller = self.get_controller_from_obj(pod, trust_domain)
+ controller = self.get_controller_from_obj(pod_name, pod, trust_domain)
if not controller:
return None
@@ -242,7 +243,7 @@
kubernetes_service = kubernetes_services[0]
# For each k8s pod, see if there is an xos pod. If there is not, then create the xos pod.
- for (k,pod) in k8s_pods_by_name.items():
+ for (k, pod) in k8s_pods_by_name.items():
try:
if not k in xos_pods_by_name:
trust_domain = self.get_trustdomain_from_pod(pod, owner_service=kubernetes_service)
@@ -253,14 +254,14 @@
continue
principal = self.get_principal_from_pod(pod, trust_domain)
- slice = self.get_slice_from_pod(pod, trust_domain=trust_domain, principal=principal)
+ slice = self.get_slice_from_pod(k, pod, trust_domain=trust_domain, principal=principal)
image = self.get_image_from_pod(pod)
if not slice:
# We could get here if the pod doesn't have a controller, or if the controller is of a kind
# that we don't understand (such as the Etcd controller). If so, the pod is not something we
# are interested in.
- log.debug("Unable to determine slice for pod %s. Ignoring." % k)
+ debug_once("Pod %s: Unable to determine slice. Ignoring." % k)
continue
xos_pod = KubernetesServiceInstance(name=k,