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
--
Marek Libra
senior software engineer
Red Hat Czech
<
https://www.redhat.com>