tree bc92c18072ac2b31ac252ea26b8dcb76a3293b46
parent 95f8a84e4a3a1c608c15a965450e2dc0a82d29e7
author kedeng <kdeng.ke@gmail.com> 1660199060 +0800
committer Alexey Serbin <alexey@apache.org> 1662581163 +0000

[tool] Add output format for 'table list' CLI tool.

The output format could be one of 'json', 'json_compact' or 'pretty'.
The default format is 'pretty'. With this patch, we can get the table
info more convenient for automatic processing in case of large-scale cluster.

The command with 'list_table_output' looks like:
 `kudu table list <master_addresses> [-tables=<tables>] [-list_tablets] [-show_table_info] [-negotiation_timeout_ms=<ms>] [-timeout_ms=<ms>] [-list_table_output_format=<pretty|json|json_compact>]`

The 'pretty' format output looks like:
`
TestTableListPartition num_tablets:4 num_replicas:1 live_row_count:0
  T 390c65375d13434393d7152690e80082 : HASH (key_hash0) PARTITION 0, RANGE (key_range) PARTITION 0 <= VALUES < 1
    L 7b12b3459e2943a981d22aa70b915637 tserver1:7050
  T 7cff0635ec7446f883b6b2ed9c4bf7be : HASH (key_hash0) PARTITION 0, RANGE (key_range) PARTITION 2 <= VALUES < 3
    L 7b12b3459e2943a981d22aa70b915637 tserver1:7050
  T 45c347f165a945bd9f54f60758bb8953 : HASH (key_hash0) PARTITION 1, RANGE (key_range) PARTITION 0 <= VALUES < 1
    L 7b12b3459e2943a981d22aa70b915637 tserver1:7050
  T 3eed6166dcfa4e1d94e4c1ceb3f4f6eb : HASH (key_hash0) PARTITION 1, RANGE (key_range) PARTITION 2 <= VALUES < 3
    L 7b12b3459e2943a981d22aa70b915637 tserver1:7050

`

The 'json' format output looks like:
`
{
    "tables": [
        {
            "name": "TestTableListPartition",
            "num_tablets": 4,
            "num_replicas": 1,
            "live_row_count": 0,
            "tablet_with_partition": [
                {
                    "tablet_id": "9db571acf0ca42baac6a70664b787556",
                    "partition_info": "HASH (key_hash0) PARTITION 0, RANGE (key_range) PARTITION 0 <= VALUES < 1",
                    "replica_info": [
                        {
                            "role": "L",
                            "uuid": "f103342fc91245b18f098d34b4f422ac",
                            "host_port": "tserver1:7050"
                        }
                    ]
                },
                {
                    "tablet_id": "131aef39a8624ff5a6c47799e0556b52",
                    "partition_info": "HASH (key_hash0) PARTITION 0, RANGE (key_range) PARTITION 2 <= VALUES < 3",
                    "replica_info": [
                        {
                            "role": "L",
                            "uuid": "f103342fc91245b18f098d34b4f422ac",
                            "host_port": "tserver1:7050"
                        }
                    ]
                },
                {
                    "tablet_id": "dbaef222684040f5bec60e5cc36df7d6",
                    "partition_info": "HASH (key_hash0) PARTITION 1, RANGE (key_range) PARTITION 0 <= VALUES < 1",
                    "replica_info": [
                        {
                            "role": "L",
                            "uuid": "f103342fc91245b18f098d34b4f422ac",
                            "host_port": "tserver1:7050"
                        }
                    ]
                },
                {
                    "tablet_id": "f09ca0749c2641e988c02e8436e655d3",
                    "partition_info": "HASH (key_hash0) PARTITION 1, RANGE (key_range) PARTITION 2 <= VALUES < 3",
                    "replica_info": [
                        {
                            "role": "L",
                            "uuid": "f103342fc91245b18f098d34b4f422ac",
                            "host_port": "tserver1:7050"
                        }
                    ]
                }
            ]
        }
    ]
}
`

The 'json_compact' format output looks like:
`
{"tables":[{"name":"TestTableListPartition","num_tablets":4,"num_replicas":1,"live_row_count":0,"tablet_with_partition":[{"tablet_id":"5fc45322b2ec4cd0be050ea1814349e6","partition_info": "HASH (key_hash0) PARTITION 0, RANGE (key_range) PARTITION 0 <= VALUES < 1","replica_info":[{"role":"L","uuid":"e714a8155d5649a98a30af3ec3a6f0e5","host_port":"tserver1:7050"}]},{"tablet_id":"c4279b3929084c0697e2922d351ab369","partition_info": "HASH (key_hash0) PARTITION 0, RANGE (key_range) PARTITION 2 <= VALUES < 3","replica_info":[{"role":"L","uuid":"e714a8155d5649a98a30af3ec3a6f0e5","host_port":"tserver1:7050"}]},{"tablet_id":"b2603ff3eaad45dcb7f4906355183ba5","partition_info": "HASH (key_hash0) PARTITION 1, RANGE (key_range) PARTITION 0 <= VALUES < 1","replica_info":[{"role":"L","uuid":"e714a8155d5649a98a30af3ec3a6f0e5","host_port":"tserver1:7050"}]},{"tablet_id":"88c8e5bcd4f24ae2a8ac87a6ba9d9ec3","partition_info": "HASH (key_hash0) PARTITION 1, RANGE (key_range) PARTITION 2 <= VALUES < 3","replica_info":[{"role":"L","uuid":"e714a8155d5649a98a30af3ec3a6f0e5","host_port":"tserver1:7050"}]}]}]}
`

Change-Id: I3aaec73e18872fc93646e9c0ea675b578b0702f0
Reviewed-on: http://gerrit.cloudera.org:8080/18834
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <alexey@apache.org>
