Story #17573
closedUser interface for exposing / changing storage classes on a collection
100%
Description
Will iterate over the list of volumes (from the exported config) to determine which storage classes are available, and put that in a dropdown list for the user to add/change/remove storage classes on a collection.
Files
Updated by Peter Amstutz over 3 years ago
- Related to Story #16107: Storage classes added
Updated by Peter Amstutz over 3 years ago
- Target version set to 2021-07-07 sprint
Updated by Peter Amstutz over 3 years ago
- Target version changed from 2021-07-07 sprint to 2021-07-21 sprint
Updated by Lucas Di Pentima over 3 years ago
- Status changed from New to In Progress
Updated by Lucas Di Pentima over 3 years ago
- File Storage classes display.png Storage classes display.png added
- File Storage classes edit.png Storage classes edit.png added
UI Proposal:
Take advantage of the "Collection Edit" dialog to show a list of checkboxes with every storage class available.
The dialog should not allow zero classes to be selected.
The storage_classes_desired
list will be displayed on the properties attribute panel as shown on the mockup. It will also appear on the collapsible "Info panel".
I think this should be enough as the storage classes aren't something that might be edited frequently so it doesn't need a more agile UI.
Updated by Peter Amstutz over 3 years ago
Lucas Di Pentima wrote:
UI Proposal:
Take advantage of the "Collection Edit" dialog to show a list of checkboxes with every storage class available.
The dialog should not allow zero classes to be selected.The
storage_classes_desired
list will be displayed on the properties attribute panel as shown on the mockup. It will also appear on the collapsible "Info panel".I think this should be enough as the storage classes aren't something that might be edited frequently so it doesn't need a more agile UI.
This is good. My only suggestion is that it should enforce that at least one storage class has to be checked, so you can't uncheck the last one.
Updated by Lucas Di Pentima over 3 years ago
- eb83305eb - branch
17573-export-storage-classes
(arvados repo) - arvados-workbench2|8df73e82 - branch
17573-edit-storage-classes
(wb2 repo)
Test run: developer-tests-workbench2: #448
Arvados repo updates¶
- Exports
Volumes.*.StorageClasses.*
configs. - Adds
default
,foo
andbar
storage classes toarvados-server
's test mode: it was generating 'Volumes.*.StorageClasses = null
' configs.
Workbench2 repo updates¶
- Loads
Volumes.*.StorageClasses.*
exported configs into the store and provides a function that returns a list of all the available classes in the cluster. - Displays collection's
storage_classes_desired
array on the collection main & details panels. - Adds generic redux-form compatible "multi checkbox field" component.
- Uses the above-mentioned component in the "Edit Collection" dialog, enforcing at least 1 storage class to be always selected.
- Adds integration tests
To be discussed¶
- I first tried to add custom
Volumes.*.StorageClasses
configurations to thearvados_config.yml
file that we have on wb2's repo for this purpose, butarvados-server
doesn't seem to be loading them, so that's why I also added them onarvados-server
's code. (I left them on the YAML file just in case there's a bug on the config loading code) - RailsAPI currently allows a collection to have a storage class that doesn't exist on the cluster's configuration. I guess this is needed for those cases where a storage class is decommissioned or renamed. Currently, workbench2 doesn't render those classes as checkboxes on the "Edit Collection" dialog, so it isn't possible to remove them unless the user/admin uses the CLI tools. If this is not the appropriate UX behavior, we should come up with something that makes more sense.
Updated by Peter Amstutz over 3 years ago
Lucas Di Pentima wrote:
Updates at:
- eb83305eb - branch
17573-export-storage-classes
(arvados repo)- arvados-workbench2|8df73e82 - branch
17573-edit-storage-classes
(wb2 repo)
To be discussed¶
- I first tried to add custom
Volumes.*.StorageClasses
configurations to thearvados_config.yml
file that we have on wb2's repo for this purpose, butarvados-server
doesn't seem to be loading them, so that's why I also added them onarvados-server
's code. (I left them on the YAML file just in case there's a bug on the config loading code)
Hmm, it is a little surprising that workbench2/tools/arvados_config.yml doesn't work. Possibly the test server just overwrites and ignores the volumes section?
- RailsAPI currently allows a collection to have a storage class that doesn't exist on the cluster's configuration. I guess this is needed for those cases where a storage class is decommissioned or renamed. Currently, workbench2 doesn't render those classes as checkboxes on the "Edit Collection" dialog, so it isn't possible to remove them unless the user/admin uses the CLI tools. If this is not the appropriate UX behavior, we should come up with something that makes more sense.
I think that's fine. In the migration case the admin would need to do bulk migration anyway. I don't think people will manually change storage classes on individual collections very often.
One comment, rest LGTM:
The getStorageClasses() method should always add "default" to the list.
Updated by Lucas Di Pentima over 3 years ago
- Status changed from In Progress to Resolved
Applied in changeset arvados-workbench2|20063f6f7bb9ad7c6a9a0b49b3c5ba4b0abc532e.