Description
What's the issue?
The 'info' command is good, however, it's difficult to extend because:
1) We're likely to break backwards compatibility
2) We've already run out of horizontal space
Furthermore, I don't think we're structuring it as best that it could be. For example, all information is grouped at one level (i.e. backup/bucket/scope/collection).
What's the fix?
I think we should take a look at the output of 'info' and see if it can be improved. As a possible example.
Before |
Backup | Size | Type | Source | Cluster UUID | Range | Events | Aliases | Query UDFs | Complete |
|
2021-07-19T12_34_10.838070557+01_00 | 235.45MiB | FULL | localhost:9000 | deb42d9459a17f8faad49388f4d45f50 | N/A | 0 | 0 | 1 | true |
|
|
- Bucket | Size | Items | Mutations | Tombstones | Views | FTS | Indexes | CBAS | Query UDFs |
|
- travel-sample | 235.45MiB | 63288 | 63288 | 0 | 0 | 0 | 23 | 0 | 0 |
|
After |
| Backup
|
| ------
|
| Name | Type | Size | Complete |
|
| 2021-07-19T12_34_10.838070557+01_00 | FULL | 235.45MiB | true |
|
|
|
| Range
|
| -----
|
| Start | End |
|
| 2021-07-19T12_34_10.838070557+01_00 | 2021-07-19T12_34_10.838070557+01_00 |
|
|
|
| Cluster
|
| -------
|
| Hostname | UUID |
|
| localhost:9000 | deb42d9459a17f8faad49388f4d45f50 |
|
|
|
| Services
|
| --------
|
|
|
| Eventing
|
| --------
|
| Functions | Size |
|
| 0 | 1KiB |
|
|
|
| FTS
|
| ---
|
| Aliases | Size |
|
| 0 | 1KiB |
|
|
|
| Query
|
| -----
|
| UDFs | Size |
|
| 1 | 1KiB |
|
|
|
| Buckets
|
| -------
|
|
|
| Name | Size |
|
| travel-sample | 235.45MiB |
|
|
|
| Services
|
| --------
|
|
|
| Data
|
| ----
|
| Mutations | Deletions | Size |
|
| 63288 | 0 | 235.45MiB |
|
|
|
| Views
|
| -----
|
| Definitions | Size |
|
| 0 | 1KiB |
|
Pros
1) Easier to extend when we begin backing up more data for more services
2) Easier to extend when we add new services in the future (we're using vertical space instead)
3) Much clearer which data belongs to which service
4) Clearly displays the hierarchy for cluster/bucket level services
Cons
1) Breaking change
2) We'd probably have to support output versioning (where we maintain the ability to output the previous version)