class K8sService(K8sObject): def __init__(self, config=None, name=None): K8sObject.__init__(self, config=config, obj_type='Service', name=name) self.model = Service(name=name, namespace=self.config.namespace) # ------------------------------------------------------------------------------------- add def add_annotation(self, k=None, v=None): self.model.add_annotation(k=k, v=v) return self def add_label(self, k=None, v=None): self.model.add_label(k=k, v=v) return self def add_port(self, name=None, port=None, target_port=None, protocol=None, node_port=None): self.model.add_port(name=name, port=port, target_port=target_port, protocol=protocol, node_port=node_port) return self def add_selector(self, selector=None): self.model.add_selector(selector=selector) return self # ------------------------------------------------------------------------------------- del def del_meta_creation_timestamp(self): return self.model.del_meta_creation_timestamp() def del_meta_generation(self): return self.model.del_meta_generation() def del_meta_resource_version(self): return self.model.del_meta_resource_version() def del_meta_self_link(self): return self.model.del_meta_self_link() def del_meta_uid(self): return self.model.del_meta_uid() def del_server_generated_meta_attr(self): return self.model.del_server_generated_meta_attr() # ------------------------------------------------------------------------------------- get def get(self): self.model = Service(model=self.get_model()) return self def get_annotation(self, k=None): return self.model.get_annotation(k=k) def get_annotations(self): return self.model.get_annotations() def get_cluster_ip(self): return self.model.get_cluster_ip() def get_external_ips(self): return self.model.get_external_ips() def get_label(self, k=None): return self.model.get_label(k=k) def get_labels(self): return self.model.get_labels() def get_meta_creation_timestamp(self): return self.model.get_meta_creation_timestamp() def get_meta_generation(self): return self.model.get_meta_generation() def get_meta_resource_version(self): return self.model.get_meta_resource_version() def get_meta_self_link(self): return self.model.get_meta_self_link() def get_meta_uid(self): return self.model.get_meta_uid() # ------------------------------------------------------------------------------------- set def set_annotations(self, dico=None): self.model.set_annotations(dico=dico) return self def set_cluster_ip(self, ip=None): self.model.set_cluster_ip(ip=ip) return self def set_external_ips(self, ips=None): self.model.set_external_ips(ips=ips) return self def set_labels(self, dico=None): self.model.set_labels(dico=dico) return self def set_load_balancer_ip(self, ip=None): self.model.set_load_balancer_ip(ip=ip) return self def set_namespace(self, name=None): self.model.set_namespace(name=name) return self def set_meta_creation_timestamp(self, ts=None): return self.model.set_meta_creation_timestamp(ts=ts) def set_meta_generation(self, gen=None): return self.model.set_meta_generation(gen=gen) def set_meta_resource_version(self, ver=None): return self.model.set_meta_resource_version(ver=ver) def set_meta_self_link(self, link=None): return self.model.set_meta_self_link(link=link) def set_meta_uid(self, uid=None): return self.model.set_meta_uid(uid=uid) def set_session_affinity(self, affinity_type=None): self.model.set_session_affinity(affinity_type=affinity_type) return self def set_service_type(self, service_type=None): self.model.set_service_type(service_type=service_type) return self # ------------------------------------------------------------------------------------- filter @staticmethod def get_by_name(config=None, name=None): try: service_list = list() data = dict(labelSelector="name={svc_name}".format(svc_name=name)) services = K8sService(config=config, name=name).get_with_params(data=data) for svc in services: try: service_name = Service(model=svc).get_name() service_list.append(K8sService(config=config, name=service_name).get()) except NotFoundException: pass except Exception as e: message = "Got an exception of type {my_type} with message {my_msg}"\ .format(my_type=type(e), my_msg=e.message) raise Exception(message) return service_list