def _get_service_ip(self, cluster_id, node='vp0'): """ :param cluster_id: The name of the cluster :param host: On which host to search the cluster :param node: name of the cluster node :return: service IP or "" """ host_id = self.get_by_id(cluster_id).get("host_id") host = self.host_handler.get_by_id(host_id) if not host: logger.warning("No host found with cluster {}".format(cluster_id)) return "" daemon_url, host_type = host.get('daemon_url'), host.get('type') if host_type not in HOST_TYPES: logger.warning("Found invalid host_type=%s".format(host_type)) return "" # we should diff with simple host and swarm host here if host_type == HOST_TYPES[0]: # single segs = daemon_url.split(":") # tcp://x.x.x.x:2375 if len(segs) != 3: logger.error("Invalid daemon url = ", daemon_url) return "" host_ip = segs[1][2:] logger.debug("single host, ip = {}".format(host_ip)) elif host_type == HOST_TYPES[1]: # swarm host_ip = get_swarm_node_ip(daemon_url, "{}_{}".format(cluster_id, node)) logger.debug("swarm host, ip = {}".format(host_ip)) else: logger.error("Unknown host type = {}".format(host_type)) host_ip = "" return host_ip
def _get_service_ip(self, cluster_id, node='vp0'): """ :param cluster_id: The name of the cluster :param host: On which host to search the cluster :param node: name of the cluster node :return: service IP or "" """ host_id = self.get_by_id(cluster_id).get("host_id") host = self.host_handler.get_by_id(host_id) if not host: logger.warning("No host found with cluster {}".format(cluster_id)) return "" daemon_url, host_type = host.get('daemon_url'), host.get('type') if host_type not in HOST_TYPES: logger.warning("Found invalid host_type=%s".format(host_type)) return "" # we should diff with simple host and swarm host here if host_type == HOST_TYPES[0]: # single segs = daemon_url.split(":") # tcp://x.x.x.x:2375 if len(segs) != 3: logger.error("Invalid daemon url = ", daemon_url) return "" host_ip = segs[1][2:] logger.debug("single host, ip = {}".format(host_ip)) elif host_type == HOST_TYPES[1]: # swarm host_ip = get_swarm_node_ip(daemon_url, "{}_{}".format( cluster_id, node)) logger.debug("swarm host, ip = {}".format(host_ip)) else: logger.error("Unknown host type = {}".format(host_type)) host_ip = "" return host_ip
def _get_service_ip(self, cluster_id, node='vp0'): """ :param cluster_id: The name of the cluster :param host: On which host to search the cluster :param node: name of the cluster node :return: service IP or "" """ host_id = self.get_by_id(cluster_id).get("host_id") host = self.host_handler.get_by_id(host_id) if not host: logger.warning("No host found with cluster {}".format(cluster_id)) return "" worker_api, host_type = host.get('worker_api'), host.get('type') if host_type not in WORKER_TYPES: logger.warning("Found invalid host_type=%s".format(host_type)) return "" # we should diff with simple host and swarm host here if host_type == WORKER_TYPE_DOCKER: # single segs = worker_api.split(":") # tcp://x.x.x.x:2375 if len(segs) != 3: logger.error("Invalid daemon url = ", worker_api) return "" host_ip = segs[1][2:] logger.debug("single host, ip = {}".format(host_ip)) elif host_type == WORKER_TYPE_SWARM: # swarm host_ip = get_swarm_node_ip(worker_api, "{}_{}".format(cluster_id, node)) logger.debug("swarm host, ip = {}".format(host_ip)) elif host_type == WORKER_TYPE_VSPHERE: vm_params = self.host_handler.get_vm_params_by_id(host_id) host_ip = vm_params.get(VMIP) logger.debug(" host, ip = {}".format(host_ip)) else: logger.error("Unknown host type = {}".format(host_type)) host_ip = "" return host_ip