Adding subcommand "pgcat config pools list"
Opened this issue ยท 0 comments
Is your feature request related to a problem? Please describe.
From the @sebastianwebber's work on adding clap and a --help
I saw the opportunity to improve pgcat with some cli commands to eliminate some "toil".
Describe the solution you'd like
I'm working on the PR #547 to add some cli subcommands to pgcat
command line, so it can works as a cli. This could open doors to create stable interfaces and automate things like change pgcat
configuration.
The current code is a work in progress and implements a config
subcommand to pgcat. By now only list pools is implemented, but the goal is to implements all the "CRUD" for configuration, so we can edit config file without open it any editor ๐
The current implementation reads configuration after it is loaded. If you think that this a good idea I'm planning to implement not only the "CRUD" but also refactor the main.rs
a bit, to organize the cli code
and the server code
.
See bellow some pgcat config pools list
output of different files:
โค cargo run -- .circleci/pgcat.toml config pools list
Finished dev [unoptimized + debuginfo] target(s) in 0.07s
Running `target/debug/pgcat .circleci/pgcat.toml config pools list`
2023-08-15T21:59:54.700588Z INFO pgcat: Welcome to PgCat! Meow. (Version 1.1.2-dev)
๐ Pools list
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ name โ mode โ lb mode โ def role โ users โ shards โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ sharded_db โ transaction โ random โ any โ โโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ โ username โ p size โ stmt timeout โ โ โ database โ servers โ โ
โ โ โ โ โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโค โ โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ โ โ โ sharding_user โ 9 โ 0 โ โ โ shard0 โ 127.0.0.1:5432 (Primary) โ โ
โ โ โ โ โ โโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโค โ โ โ localhost:5432 (Replica) โ โ
โ โ โ โ โ โ other_user โ 21 โ 30000 โ โ โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ โ โ โโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโโ โ โ shard1 โ 127.0.0.1:5432 (Primary) โ โ
โ โ โ โ โ โ โ โ localhost:5432 (Replica) โ โ
โ โ โ โ โ โ โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ โ โ โ โ shard2 โ 127.0.0.1:5432 (Primary) โ โ
โ โ โ โ โ โ โ โ localhost:5432 (Replica) โ โ
โ โ โ โ โ โ โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ simple_db โ session โ random โ primary โ โโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ โ username โ p size โ stmt timeout โ โ โ database โ servers โ โ
โ โ โ โ โ โโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโค โ โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ โ โ โ simple_user โ 5 โ 30000 โ โ โ some_db โ 127.0.0.1:5432 (Primary) โ โ
โ โ โ โ โ โโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโโ โ โ โ localhost:5432 (Replica) โ โ
โ โ โ โ โ โ โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โค cargo run -- examples/docker/pgcat.toml config pools list
Finished dev [unoptimized + debuginfo] target(s) in 0.08s
Running `target/debug/pgcat examples/docker/pgcat.toml config pools list`
2023-08-15T23:39:41.207326Z INFO pgcat: Welcome to PgCat! Meow. (Version 1.1.2-dev)
๐ Pools list
โโโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ name โ mode โ lb mode โ def role โ users โ shards โ
โโโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ postgres โ transaction โ random โ any โ โโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโ โ โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ โ username โ p size โ stmt timeout โ โ โ database โ servers โ โ
โ โ โ โ โ โโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโค โ โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ โ โ โ postgres โ 9 โ 0 โ โ โ postgres โ postgres:5432 (Primary) โ โ
โ โ โ โ โ โโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโโ โ โ โ postgres:5432 (Replica) โ โ
โ โ โ โ โ โ โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ โ โ โ โ postgres โ postgres:5432 (Primary) โ โ
โ โ โ โ โ โ โ โ postgres:5432 (Replica) โ โ
โ โ โ โ โ โ โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ โ โ โ โ โ postgres โ postgres:5432 (Primary) โ โ
โ โ โ โ โ โ โ โ postgres:5432 (Replica) โ โ
โ โ โ โ โ โ โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
I appreciate any suggestions to PR #547.