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.