Project

General

Profile

Actions

Idea #17573

closed

User interface for exposing / changing storage classes on a collection

Added by Peter Amstutz about 3 years ago. Updated over 2 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Workbench2
Target version:
Start date:
07/15/2021
Due date:
Story points:
-
Release relationship:
Auto

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

Storage classes display.png (439 KB) Storage classes display.png Lucas Di Pentima, 07/08/2021 03:19 PM
Storage classes edit.png (427 KB) Storage classes edit.png Lucas Di Pentima, 07/08/2021 03:19 PM

Subtasks 1 (0 open1 closed)

Task #17837: Review 17573-export-storage-classes (arvados repo) & 17573-edit-storage-classes (wb2 repo)ResolvedLucas Di Pentima07/15/2021Actions

Related issues

Related to Arvados Epics - Idea #16107: Storage classesResolved03/01/202109/30/2021Actions
Actions #1

Updated by Peter Amstutz about 3 years ago

Actions #2

Updated by Peter Amstutz about 3 years ago

  • Description updated (diff)
Actions #3

Updated by Peter Amstutz about 3 years ago

  • Description updated (diff)
Actions #4

Updated by Peter Amstutz almost 3 years ago

  • Target version set to 2021-07-07 sprint
Actions #5

Updated by Peter Amstutz almost 3 years ago

  • Assigned To set to Lucas Di Pentima
Actions #6

Updated by Peter Amstutz almost 3 years ago

  • Target version changed from 2021-07-07 sprint to 2021-07-21 sprint
Actions #7

Updated by Lucas Di Pentima almost 3 years ago

  • Status changed from New to In Progress
Actions #8

Updated by Lucas Di Pentima almost 3 years ago

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.

Actions #9

Updated by Peter Amstutz almost 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.

Actions #10

Updated by Lucas Di Pentima almost 3 years ago

Updates at:

Arvados repo updates

  • Exports Volumes.*.StorageClasses.* configs.
  • Adds default, foo and bar storage classes to arvados-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 the arvados_config.yml file that we have on wb2's repo for this purpose, but arvados-server doesn't seem to be loading them, so that's why I also added them on arvados-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.
Actions #11

Updated by Peter Amstutz almost 3 years ago

Lucas Di Pentima wrote:

Updates at:

To be discussed

  • I first tried to add custom Volumes.*.StorageClasses configurations to the arvados_config.yml file that we have on wb2's repo for this purpose, but arvados-server doesn't seem to be loading them, so that's why I also added them on arvados-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.

Actions #12

Updated by Lucas Di Pentima almost 3 years ago

  • Status changed from In Progress to Resolved
Actions #13

Updated by Lucas Di Pentima over 2 years ago

  • Release set to 41
Actions #14

Updated by Peter Amstutz over 2 years ago

  • Release changed from 41 to 42
Actions

Also available in: Atom PDF