Hi,
as a next step for the cockpit-machines, I plan to implement the "Create VM" functionality. Before doing that, I would like to collect ideas, agreement on scope and preferably on design.
The long term vision is support for (almost) all features as virt-manager has. Definitely, path to this goal has to be splited into smaller steps, starting with something generic enough but providing just the minimum and useful functionality.
The component will be reusable for both "New VM" and "Edit VM" flows. Will be implemented as a wizard, user can navigate back and forth, maybe even "jump" into a step of his choice. Wizard can be canceled in every step.
All write operations are postponed until final "submit".
Optional "external provider" will be able to extend the wizard dialogs and will handle the "Submit".
Initial implementation: Wizard dialog 1: Basic props - VM name - vcpus - memory - qemu connection (whether session or system) Wizard dialog 2: Disks - single disk's params Wizard dialog 3: Boot order - cdrom iso file - from an associated disk Wizard dialog 4: Consoles - select none or any combination from - SPICE - VNC - address and port can be specified, defaults provided Wizard dialog 5: Summary - All entered details are listed (tree-list component?) - User can navigate back, cancel or submit
High-priority follow-ups: - User can select multiple existing disks and/or create multiple new ones - "Networks" wizard dialog plus PXE boot - "submit and run" functionality - "Edit VM" - cdrom iso from network source (URL)
Later on, new wizard dialogs can be added or existing ones extended.
So far I considered but rejected these other concepts: - single complex dialog (no wizard, sort of "functionality grouping" would be still required) - "Edit" functionality mixed with the recent presentation components (nightmare for more complex configuration)
I'm looking for feedback - e.g. UX, extensibility, scope or whatever to be taken for consideration.
Thanks, Marek
On 05/11/2017 02:36 AM, Marek Libra wrote:
Hi,
as a next step for the cockpit-machines, I plan to implement the "Create VM" functionality. Before doing that, I would like to collect ideas, agreement on scope and preferably on design.
The long term vision is support for (almost) all features as virt-manager has. Definitely, path to this goal has to be splited into smaller steps, starting with something generic enough but providing just the minimum and useful functionality.
The component will be reusable for both "New VM" and "Edit VM" flows. Will be implemented as a wizard, user can navigate back and forth, maybe even "jump" into a step of his choice. Wizard can be canceled in every step.
All write operations are postponed until final "submit".
Optional "external provider" will be able to extend the wizard dialogs and will handle the "Submit".
Initial implementation: Wizard dialog 1: Basic props
- VM name
- vcpus
- memory
- qemu connection (whether session or system)
Wizard dialog 2: Disks
- single disk's params
Wizard dialog 3: Boot order
- cdrom iso file
- from an associated disk
Wizard dialog 4: Consoles
- select none or any combination from
- SPICE
- VNC
- address and port can be specified, defaults provided
Wizard dialog 5: Summary
- All entered details are listed (tree-list component?)
- User can navigate back, cancel or submit
High-priority follow-ups:
- User can select multiple existing disks and/or create multiple new ones
- "Networks" wizard dialog plus PXE boot
- "submit and run" functionality
- "Edit VM"
- cdrom iso from network source (URL)
Later on, new wizard dialogs can be added or existing ones extended.
So far I considered but rejected these other concepts:
- single complex dialog (no wizard, sort of "functionality grouping"
would be still required)
- "Edit" functionality mixed with the recent presentation components
(nightmare for more complex configuration)
I'm looking for feedback - e.g. UX, extensibility, scope or whatever to be taken for consideration.
Thanks, Marek
We want to work on the create / edit VM functionality in the cockpit hackfest coming up at the end of June.
Something that is a little tricky here is that generally in cockpit we try to avoid wizards as a sort of anti-pattern. However we need to figure out how to best handle the create VM flow as there are a lot of settings that really need to be set at the beginning before much else is done. I don't have a really suggestion yet of what concretely that should look like. But I think we should approach this by listing out the features that we want in the initial creation.
Name CPUs Memory Arch OS qemu connection Install iso or base on image boot order networking mode (limit to existing for now) Attach disks (limit to existing for now) Console Selection
Is a good starting point? If so we'll start figuring out how to best present this to the user.
cockpit-devel@lists.fedorahosted.org