sandialabs / sceptre-phenix

phenix is an orchestration tool and GUI for Sandia's minimega platform
https://sandialabs.github.io/sceptre-docs/
GNU General Public License v3.0
17 stars 23 forks source link

[UI Feature] Change optical disc from VM modal #155

Closed eric-c-wood closed 11 months ago

eric-c-wood commented 11 months ago

Removed the unused record screenshots button from the experiment modal in the RunningExperiments view and replaced it with an insert optical disc function. While inserting a disc in the drive of a running VM is fairly straightforward using the minimega command line, being able to insert a disc from the UI is a bit easier and convenient.

The screenshots below show the placement of the insert optical disc function/button.

Insert Optical Disc button replaces record screenshots button

expModal_change_iso

Only ISOs appear in the dropdown

expModal_change_iso_dropdown

activeshadow commented 11 months ago

@eric-c-wood I haven't had a chance to compile and test this yet... just peaked at the code changes. Is there a way to disconnect a connected ISO from a VM? Also, what do you think about supporting the upload of an ISO if it's not already on the server?

eric-c-wood commented 11 months ago

@activeshadow I have a few questions/comments related to your questions.

1) Is there a way to disconnect a connected ISO from a VM? - I did not currently implement this in the UI. This can be implemented fairly easily. Would you like to see an eject button adjacent to the "insert disc" button when an ISO is inserted into the VM? For reference, when inserting an ISO, the current ISO/disc is ejected before the new ISO is inserted. On an odd note, an ISO can be ejected from within the VM but that state is not accurately reflected in minimega's vm info command. Minimega's vm info command will still show the ISO inserted when the ISO has been ejected from within the VM. Ejecting the ISO via minimega will be accurately reflected in minimega's vm info command.

2) Also, what do you think about supporting the upload of an ISO if it's not already on the server? - I am not sure that I have an appreciation for what you mean by 'server'. Is 'server' a server hosting the VMs? Are you looking for a mechanism from the UI to upload an ISO into the minimega files directory such that it would appear in the optical disc dropdown listbox? I am assuming that you are not referring to uploading an ISO from a server hosting a VM to the VM as that functionality is already implemented to some degree.

activeshadow commented 11 months ago
1. Is there a way to disconnect a connected ISO from a VM?  - I did not currently implement this in the UI.  This can be implemented fairly easily.  Would you like to see an eject button adjacent to the "insert disc" button when an ISO is inserted into the VM?  For reference, when inserting an ISO, the current ISO/disc is ejected before the new ISO is inserted.  On an odd note, an ISO can be ejected from within the VM but that state is not accurately reflected in minimega's vm info command.  Minimega's vm info command will still show the ISO inserted when the ISO has been ejected from within the VM.  Ejecting the ISO via minimega will be accurately reflected in minimega's vm info command.

Would it be possible to just replace the insert disc button with an eject disc button when an ISO is connected?

2. Also, what do you think about supporting the upload of an ISO if it's not already on the server? - I am not sure that I have an appreciation for what you mean by 'server'.   Is 'server' a server hosting the VMs?  Are you looking for a mechanism from the UI to upload an ISO into the minimega files directory such that it would appear in the optical disc dropdown listbox?  I am assuming that you are not referring to uploading an ISO from a server hosting a VM to the VM as that functionality is already implemented to some degree.

By server I mean the minimega/phēnix head node server. Yeah, I'm looking for an easy way for users to add ISOs to the head node if they need to.

eric-c-wood commented 11 months ago

@activeshadow I added an option to eject an ISO when inserted/connected. The label will say 1 of 3 things:

1) eject optical disc - an existing ISO is inserted/connected 2) insert optical disc - no ISO is inserted/connected 3) change optical disc - selecting a new ISO when an existing ISO is connected

With regards to an easy way to upload ISOs to the head node, do you think a new component geared towards large file uploads would be appropriate? The large file upload component would handle files such as base/backing images as well as any other large files required for experimentation. The component should probably include drag/drop, resume on failure, a progress bar for each file, warnings if overwriting an existing base/backing image, disk space checks prior to upload, etc.

activeshadow commented 11 months ago

@activeshadow I added an option to eject an ISO when inserted/connected. The label will say 1 of 3 things:

  1. eject optical disc - an existing ISO is inserted/connected
  2. insert optical disc - no ISO is inserted/connected
  3. change optical disc - selecting a new ISO when an existing ISO is connected

This sounds good. I'll pull and test ASAP. Thanks @eric-c-wood!

With regards to an easy way to upload ISOs to the head node, do you think a new component geared towards large file uploads would be appropriate? The large file upload component would handle files such as base/backing images as well as any other large files required for experimentation. The component should probably include drag/drop, resume on failure, a progress bar for each file, warnings if overwriting an existing base/backing image, disk space checks prior to upload, etc.

This all sounds useful, but a larger effort. Probably better as a separate PR.

activeshadow commented 11 months ago

@eric-c-wood I did some testing locally and it all looks good.

I made a few changes to HTTP endpoint names and RBAC resource names. Can you take a quick look at the changes I made in the commit I just pushed as a sanity check please? Once you've had a chance to do that I'll merge this PR.

eric-c-wood commented 11 months ago

@activeshadow I tested all of your changes and everything works as expected. Thanks for the super fast look at this PR.