Fix Cross zone templates registration for Edge Zones#12874
Fix Cross zone templates registration for Edge Zones#12874vishesh92 wants to merge 4 commits intoapache:4.22from
Conversation
|
@blueorangutan package |
|
@vishesh92 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 17221 |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## 4.22 #12874 +/- ##
============================================
- Coverage 17.61% 17.60% -0.01%
- Complexity 15661 15674 +13
============================================
Files 5917 5917
Lines 531430 531633 +203
Branches 64973 64994 +21
============================================
+ Hits 93586 93607 +21
- Misses 427288 427468 +180
- Partials 10556 10558 +2
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:
|
server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java
Outdated
Show resolved
Hide resolved
|
@blueorangutan package |
|
@vishesh92 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 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 17222 |
|
@blueorangutan test keepEnv |
|
@vishesh92 a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
|
[SF] Trillian Build Failed (tid-15725) |
engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
Show resolved
Hide resolved
|
[SF] Trillian test result (tid-15728)
|
|
@blueorangutan package |
|
@vishesh92 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 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 17281 |
There was a problem hiding this comment.
Pull request overview
Fixes cross-zone VM template registration for Edge Zones by ensuring associations are created at zone creation time (since Edge Zones lack SSVM triggers) and centralizes cross-zone template retrieval via a new DAO method to avoid repeated in-memory filtering.
Changes:
- Added
VMTemplateDao.listAllCrossZoneTemplates()and updated DAO search criteria to DB-filter cross-zone templates. - Refactored multiple call sites to use
TemplateService.associateCrossZoneTemplatesToZone(...)and updated method naming for consistency. - Ensured Edge Zones associate cross-zone templates during zone creation in
ConfigurationManagerImpl.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| services/secondary-storage/server/src/main/java/org/apache/cloudstack/storage/resource/SecondaryStorageDiscoverer.java | Uses TemplateService to associate cross-zone templates per unique zone after discovery. |
| plugins/hypervisors/simulator/src/main/java/com/cloud/resource/SimulatorDiscoverer.java | Switches discovery-time association to TemplateService (but currently leaves unused imports). |
| engine/api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/TemplateService.java | Renames API method to associateCrossZoneTemplatesToZone. |
| engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateServiceImpl.java | Implements renamed method and uses DAO DB-filtered cross-zone template listing. |
| engine/schema/src/main/java/com/cloud/storage/dao/VMTemplateDao.java | Adds listAllCrossZoneTemplates() to the DAO interface. |
| engine/schema/src/main/java/com/cloud/storage/dao/VMTemplateDaoImpl.java | Implements listAllCrossZoneTemplates() and adds crossZone criterion to AllFieldsSearch. |
| server/src/main/java/com/cloud/storage/download/DownloadListener.java | Updates call to renamed associateCrossZoneTemplatesToZone. |
| server/src/main/java/com/cloud/storage/StorageManagerImpl.java | Delegates cross-zone association to TemplateService (leaves an unused local variable and legacy helper naming). |
| server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java | Associates cross-zone templates during Edge Zone creation. |
| server/src/test/java/com/cloud/configuration/ConfigurationManagerTest.java | Adds a TemplateService mock to satisfy new injection in ConfigurationManagerImpl. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
plugins/hypervisors/simulator/src/main/java/com/cloud/resource/SimulatorDiscoverer.java
Outdated
Show resolved
Hide resolved
plugins/hypervisors/simulator/src/main/java/com/cloud/resource/SimulatorDiscoverer.java
Outdated
Show resolved
Hide resolved
.../server/src/main/java/org/apache/cloudstack/storage/resource/SecondaryStorageDiscoverer.java
Outdated
Show resolved
Hide resolved
6a5b9b6 to
f0b7336
Compare
|
@blueorangutan package |
|
@DaanHoogland 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 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 17287 |
Description
This PR fixes the registration of existing Cross Zone templates for Edge Zone.
This PR also offloads the filtering of cross zones to the database.
Details
This pull request refactors how cross-zone VM templates are handled and associated with zones. The main improvement is the introduction of a new DAO method,
listAllCrossZoneTemplates(), which streamlines and centralizes the retrieval of cross-zone templates. This change eliminates repeated filtering logic across the codebase and makes the association process more efficient and maintainable. Additionally, the pull request updates the logic for associating these templates with zones, particularly in scenarios involving Edge Zones.DAO and Data Access Improvements:
listAllCrossZoneTemplates()method to theVMTemplateDaointerface and its implementation, allowing efficient retrieval of only cross-zone templates without manual filtering. [1] [2] [3]crossZoneproperty for filtering templates.Refactoring Template Association Logic:
TemplateServiceImpl,SimulatorDiscoverer,SecondaryStorageDiscoverer, andStorageManagerImpl) with calls to the newlistAllCrossZoneTemplates()method, simplifying and unifying the logic. [1] [2] [3] [4] [5]Edge Zone Handling:
ConfigurationManagerImplto associate cross-zone templates with Edge Zones immediately upon creation, since Edge Zones do not have SSVMs to trigger this association later.Dependency Injection and Imports:
TemplateServiceintoConfigurationManagerImplto support the new association logic and added the necessary import. [1] [2]Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
How did you try to break this feature and the system with this change?