Dogface2k opened a new pull request, #13813: URL: https://github.com/apache/cloudstack/pull/13813
Description This PR fixes the hypervisor label and effective UI state shown by the VM deployment form when a zone contains multiple hypervisor types. DeployVM.vue initializes its hypervisor form state from the first value returned for the selected zone. Both the modern and legacy image selectors previously propagated only the selected template ID, so selecting a XenServer or VMware template could leave the original KVM value in the deployment review card and in hypervisor-gated UI state. The change: resolves the selected template from the grouped image results and propagates its own hypervisor metadata through the selectors' existing field-update event; applies the same behaviour to both the modern and legacy image-selection interfaces; re-evaluates a preselected template when its asynchronously loaded metadata becomes available; preserves the existing fallback when a template cannot be resolved or has no hypervisor metadata; does not override ISO, volume, or snapshot selection, so ISO hypervisor selection remains explicit. Template deployment request behaviour is unchanged. The existing deployment path continues to omit the separate hypervisor parameter for template deployments, while ISO deployments continue using the explicitly selected hypervisor. There are no backend, API, database, configuration, or workflow changes. Fixes: #13786 Types of changes Breaking change (fix or feature that would cause existing functionality to change) New feature (non-breaking change which adds functionality) Bug fix (non-breaking change which fixes an issue) Enhancement (improves existing feature and functionality) Cleanup (Code refactoring and cleanup, that may add test cases) Build/CI Test (unit or integration test code) Feature/Enhancement Scale or Bug Severity Feature/Enhancement Scale Major Minor Bug Severity BLOCKER Critical Major Minor Trivial Screenshots (if appropriate): The incorrect KVM label is shown in the screenshots attached to #13786. How Has This Been Tested? Focused regression coverage was added in ImageSelectionHypervisor.spec.js for the actual modern and legacy selector methods and metadata watchers. It covers: KVM, XenServer, VMware, and External template metadata; both modern and legacy image-selection interfaces; templates selected after their metadata is available; query/prefill-style selections whose metadata arrives asynchronously; unresolved templates and templates without hypervisor metadata; ISO selection remaining independent from template hypervisor propagation. A dependency-free Node runtime harness exercised the same resolver, selector methods, event ordering, and delayed-metadata paths successfully. The final branch was also audited against the exact current 4.22 head (532852824a9729ff9f073e3678d9d0bd8afeb059): it is one commit ahead and contains only the four intended UI/test files. The complete repository UI test suite was not available in the local environment, so no full Jest, lint, build, or repository CI result is claimed here. How did you try to break this feature and the system with this change? Kept KVM as a control to verify its existing label remains KVM. Selected XenServer and VMware templates from a mixed-hypervisor image set. Selected an External template from a different image-result group. Exercised a preselected template before its image metadata was loaded. Exercised missing and incomplete template metadata to verify the existing fallback is preserved. Exercised ISO selection to verify the template-specific propagation does not replace the explicit ISO hypervisor path. Audited the final diff for unrelated files; no workflow, API, backend, schema, or deployment-request changes are included. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
