From bb4c192a5706d0da655bbc3a135ec8abbb8d417c Mon Sep 17 00:00:00 2001 From: yujun Date: Wed, 13 Dec 2023 01:35:41 +0800 Subject: [PATCH] [improvement](doris compose) show all cluster (#28288) --- docker/runtime/doris-compose/Readme.md | 6 ++---- docker/runtime/doris-compose/cluster.py | 13 +++++++++++++ docker/runtime/doris-compose/command.py | 24 +++++++----------------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/docker/runtime/doris-compose/Readme.md b/docker/runtime/doris-compose/Readme.md index 13f543d4e7..7e7173e7d2 100644 --- a/docker/runtime/doris-compose/Readme.md +++ b/docker/runtime/doris-compose/Readme.md @@ -83,14 +83,12 @@ python docker/runtime/doris-compose/doris-compose.py restart -- ### List doris cluster ``` -python docker/runtime/doris-compose/doris-compose.py ls <-a> +python docker/runtime/doris-compose/doris-compose.py ls ``` if specific cluster names, it will list all the cluster's nodes. -Otherwise it will just list summary of each clusters. If not specific -a, it will list only active clusters. - -If specific `-a`, it will list the unactive clusters too. +Otherwise it will just list summary of each clusters. There are more options about doris-compose. Just try diff --git a/docker/runtime/doris-compose/cluster.py b/docker/runtime/doris-compose/cluster.py index 51b98617e0..0f6afb906a 100644 --- a/docker/runtime/doris-compose/cluster.py +++ b/docker/runtime/doris-compose/cluster.py @@ -78,6 +78,19 @@ def gen_subnet_prefix16(): raise Exception("Failed to gen subnet") +def get_master_fe_endpoint(cluster_name): + master_fe_ip_file = get_cluster_path(cluster_name) + "/status/master_fe_ip" + if os.path.exists(master_fe_ip_file): + with open(master_fe_ip_file, "r") as f: + return "{}:{}".format(f.read().strip(), FE_QUERY_PORT) + try: + cluster = Cluster.load(cluster_name) + return "{}:{}".format( + cluster.get_node(Node.TYPE_FE, 1).get_ip(), FE_QUERY_PORT) + except: + return "" + + class NodeMeta(object): def __init__(self, image): diff --git a/docker/runtime/doris-compose/command.py b/docker/runtime/doris-compose/command.py index 1c17cc1a00..cfc3f137e1 100644 --- a/docker/runtime/doris-compose/command.py +++ b/docker/runtime/doris-compose/command.py @@ -269,14 +269,10 @@ class UpCommand(Command): utils.exec_docker_compose_command(cluster.get_compose_file(), "up", options, related_nodes) - master_fe_ip_file = cluster.get_path() + "/status/master_fe_ip" - master_fe_ip = "" - if os.path.exists(master_fe_ip_file): - master_fe_ip = open(master_fe_ip_file, "r").read().strip() - else: - master_fe_ip = cluster.get_node(CLUSTER.Node.TYPE_FE, 1).get_ip() - LOG.info("Master fe query address: " + utils.render_green( - "{}:{}".format(master_fe_ip, CLUSTER.FE_QUERY_PORT)) + "\n") + LOG.info( + "Master fe query address: " + + utils.render_green(CLUSTER.get_master_fe_endpoint(cluster.name)) + + "\n") if not args.start: LOG.info( @@ -491,12 +487,6 @@ class ListCommand(Command): "Specify multiple clusters, if specific, show all their containers." ) self._add_parser_output_json(parser) - parser.add_argument( - "-a", - "--all", - default=False, - action=self._get_parser_bool_action(True), - help="Show all clusters, include stopped or bad clusters.") parser.add_argument("--detail", default=False, action=self._get_parser_bool_action(True), @@ -576,7 +566,8 @@ class ListCommand(Command): TYPE_COMPOSESERVICE = type(ComposeService("", "", "")) if not args.NAME: - header = ("CLUSTER", "OWNER", "STATUS", "CONFIG FILES") + header = ("CLUSTER", "OWNER", "STATUS", "MASTER FE", + "CONFIG FILES") rows = [] for name in sorted(clusters.keys()): cluster_info = clusters[name] @@ -590,11 +581,10 @@ class ListCommand(Command): "{}({})".format(status, count) for status, count in service_statuses.items() ]) - if not args.all and service_statuses.get("running", 0) == 0: - continue owner = utils.get_path_owner(CLUSTER.get_cluster_path(name)) compose_file = CLUSTER.get_compose_file(name) rows.append((name, owner, show_status, + CLUSTER.get_master_fe_endpoint(name), "{}{}".format(compose_file, cluster_info["status"]))) return self._handle_data(header, rows)