You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
StorageGroup.io_class: should check whether the io_class is supported and warn (but still allow)
StorageGroup.io_config: needs JSON support. Would be good to have the client vet the JSON and tell the user if required keys are missing and/or unknown keys are present for the io_class given.
the last part would require a way for the client to interrogate the I/O modules for the config metadata.
StorageNode
StorageNode.io_class See StorageGroup, above
StorageNode.io_config: See StorageGroup, above
StorageNode.auto_verify: a non-negative integer
ArchiveFileCopy
ArchiveFileCopy.ready: generally the server should be able to figure this out by itself, but I don't see a problem with having a way of manually manipulating this in the rare case it's needed
Also, now:
StorageTransferAction
all of it
The text was updated successfully, but these errors were encountered:
Here's a start on getting the client working, which I've done to try to
gauge how much work it will entail. This PR updates and re-implements
command in the `group` command group, which manipulates StorageGroups.
(I think this is the easiest command group to do.)
## Test suite
This PR also re-engineers how the client is run in the test-suite.
There's now a `client` fixture that runs the client via
`click.testing.CliRunner` and performs rudimentary checks on the result.
This abstracts a lot of the routine rigamarole of running the CLI via
pytest, meaning the tests themselves can be relatively simple.
This system uses the same kind of persistent in-memory Sqlite database
that I used for the server end-to-end test to make it possible for the
client process and the test suite itself to access the same ephemeral
database.
## Client
Common command options (of which there are many) are being collected in
`client.options` along with common code to process them.
### Commands
(per the list in #202):
* `create` lets you set I/O class and I/O config. There is no vetting of
the I/O config data based on what the I/O class needs (see discussion in
#165). I think it's best to punt that downfield and worry about it in
the future.
* `list` is pretty simple. Shows I/O class but not I/O config, because I
don't think it fits very well in the tabular format, but I could be
convinced otherwise.
* `modify` has the same comments about I/O config vetting as `create`.
It can also fix broken JSON in the database.
* `rename` trivial
* `show` definitely willing to take suggestions on formatting here, as
well as what StorageNode columns should be presented with
`--node-details`. `--node-stats` is for showing counts/sizes of files
(see the `node stats` command in #202) and will be implemented when
`node stats` is implemented.
## Also
Fixed `common.logger.echo` which was broken from the start.
The following parameters were added as part of the server rewrite and need to have support added to the client:
StorageGroup
Implementation: #204
StorageGroup.io_class
: should check whether the io_class is supported and warn (but still allow)StorageGroup.io_config
: needs JSON support. Would be good to have the client vet the JSON and tell the user if required keys are missing and/or unknown keys are present for theio_class
given.StorageNode
StorageNode.io_class
See StorageGroup, aboveStorageNode.io_config
: See StorageGroup, aboveStorageNode.auto_verify
: a non-negative integerArchiveFileCopy
ArchiveFileCopy.ready
: generally the server should be able to figure this out by itself, but I don't see a problem with having a way of manually manipulating this in the rare case it's neededAlso, now:
StorageTransferAction
The text was updated successfully, but these errors were encountered: