-
Notifications
You must be signed in to change notification settings - Fork 1.2k
UI support for deploy a VM from volume/snapshot #11164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
ui support to deploy a virtual machine with existing volume or a disk snapshot
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #11164 +/- ##
============================================
- Coverage 16.57% 16.57% -0.01%
Complexity 13988 13988
============================================
Files 5745 5745
Lines 510847 510984 +137
Branches 62140 62169 +29
============================================
Hits 84696 84696
- Misses 416677 416814 +137
Partials 9474 9474
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
@blueorangutan package |
@sureshanaparti a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 14162 |
@blueorangutan package |
@sureshanaparti a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
@sureshanaparti a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds UI functionality to deploy virtual machines from existing volumes and disk snapshots, expanding beyond the existing template and ISO options.
Key changes:
- Added volume and snapshot radio button options in the image selection UI
- Implemented volume and snapshot fetching logic with filtering for unattached volumes and root snapshots
- Added form handling and validation for volume and snapshot deployment parameters
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
File | Description |
---|---|
ui/src/views/compute/wizard/OsBasedImageSelection.vue | Added radio buttons for volume and snapshot selection options |
ui/src/views/compute/DeployVM.vue | Core implementation including form fields, data fetching, validation, and deployment logic for volumes and snapshots |
ui/public/locales/en.json | Added localization strings for volume and snapshot descriptions |
@@ -1381,6 +1391,12 @@ export default { | |||
queryArchId () { | |||
return this.$route.query.arch || null | |||
}, | |||
querySnapshotId () { | |||
return this.$route.query.snapshotid | null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The bitwise OR operator '|' should be the logical OR operator '||' to match the pattern used in other query methods.
return this.$route.query.snapshotid | null | |
return this.$route.query.snapshotid || null |
Copilot uses AI. Check for mistakes.
this.imageSearchFilters = params | ||
const volumeFilters = this.getImageFilters(params) | ||
volumeFilters.forEach((filter) => { | ||
volumes[filter] = { count: 0, iso: [] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The property name should be 'volume' instead of 'iso' to match the volume context and be consistent with the response structure.
volumes[filter] = { count: 0, iso: [] } | |
volumes[filter] = { count: 0, volume: [] } |
Copilot uses AI. Check for mistakes.
this.imageSearchFilters = params | ||
const snapshotFilters = this.getImageFilters(params) | ||
snapshotFilters.forEach((filter) => { | ||
snapshots[filter] = { count: 0, iso: [] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The property name should be 'snapshot' instead of 'iso' to match the snapshot context and be consistent with the response structure.
snapshots[filter] = { count: 0, iso: [] } | |
snapshots[filter] = { count: 0, snapshot: [] } |
Copilot uses AI. Check for mistakes.
@slavkap can you check the Copilot comments, are they relevant? |
UI build: ✔️ |
Packaging result [SF]: ✖️ el8 ✖️ el9 ✔️ debian ✖️ suse15. SL-JID 14389 |
@blueorangutan package |
@sureshanaparti a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 14396 |
Description
This PR adds a UI option to deploy a virtual machine with an existing volume or a disk snapshot
These changes depend on #10503
Types of changes
Feature/Enhancement Scale
Screenshots (if appropriate):
The users will have the option to choose how to deploy a new virtual machine - Template/ISO/Volume/Snapshot


How Has This Been Tested?
manual tests