def label_matrix(): get = lambda *keys: [request.args.get(k) for k in keys] _type, ns, name = get('matcher_type', 'matcher_ns', 'matcher_name') collection = K8Kat.deps() if _type == 'deployment' else K8Kat.svcs() matcher = collection.ns(ns).find(name) result = ResUtils.label_matrix(matcher) return jsonify(result)
def rs_dep(rs): refs = rs.metadata.owner_references rs_refs = [ref for ref in refs if ref.kind == 'Deployment'] if len(rs_refs) is 1: rs_name = rs_refs[0].name return ResUtils.find_dp(rs.metadata.namespace, rs_name) else: return None
def label_combinations(): broker.check_connected_or_raise() combinations = ResUtils.label_combinations() return jsonify(data=list(set(combinations)))
def namespaces(): broker.check_connected_or_raise() _namespaces = ResUtils.list_namespaces() return jsonify(data=_namespaces)
def read_svc(ns, name) -> V1Service: return ResUtils.find_svc(ns, name)
def read_dep(ns, name) -> V1Deployment: return ResUtils.find_dp(ns, name)
def across_namespaces(): return jsonify(dict(data=ResUtils.dep_by_ns()))
def load_pod_names(self): work = lambda p: p.metadata.name pods = ResUtils.pods_for_dep(self.deployment) return list(map(work, pods))
def assoc_svcs(self, candidates: [KatSvc]) -> None: checker = lambda svc: ResUtils.dep_matches_svc(self.raw, svc) self.assoced_svcs = [KatSvc(svc) for svc in candidates if checker(svc)]
def assoc_pods(self, candidates: List[V1Pod]) -> None: checker = lambda pod: ResUtils.dep_owns_pod(self.raw, pod) self.assoced_pods = [KatPod(pod) for pod in candidates if checker(pod)]
def find_and_assoc_svcs(self): from k8_kat.base.k8_kat import K8Kat candidate_svcs = K8Kat.svcs().ns(self.ns).go() checker = lambda svc: ResUtils.dep_matches_svc(self.raw, svc.raw) self.assoced_svcs = [s for s in candidate_svcs if checker(s)]