From 4d2beea7773d739e7946d75472e4ccfc57a05d69 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Wed, 30 Jul 2025 14:50:41 +0530 Subject: [PATCH 1/4] logger fix --- .../java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java index 2c4aafd4c8c..0602fd6322f 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java @@ -255,7 +255,7 @@ public class BridgeVifDriver extends VifDriverBase { protocol = Networks.BroadcastDomainType.Vlan.scheme(); } if (isValidProtocolAndVnetId(vNetId, protocol)) { - s_logger.debug(String.format("creating a vNet dev and bridge for %s traffic per traffic label %s", + logger.debug(String.format("creating a vNet dev and bridge for %s traffic per traffic label %s", Networks.TrafficType.Storage.name(), trafficLabel)); storageBrName = createVnetBr(vNetId, storageBrName, protocol); } From 2d025bd0749026afc4a7f71b161383a17fc59a8b Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 30 Jul 2025 17:03:10 +0530 Subject: [PATCH 2/4] kvm: fix regression 5a52ca78ae5e165211c618525613c3d62cfd1b28 (#11342) Somehow the commit 5a52ca78ae5e165211c618525613c3d62cfd1b28 was reverted so cloud-init templates don't work on arm64 anymore :( Signed-off-by: Rohit Yadav --- .../java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java index 93ad084b437..1383190933d 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java @@ -249,9 +249,7 @@ public class LibvirtVMDef { guestDef.append("\n"); } } - if (_arch == null || !_arch.equals("aarch64")) { - guestDef.append("\n"); - } + guestDef.append("\n"); guestDef.append("\n"); if (iothreads) { guestDef.append(String.format("%s", NUMBER_OF_IOTHREADS)); From 294aef5ecff1356976eff819cc3028f3439faa24 Mon Sep 17 00:00:00 2001 From: Abhisar Sinha <63767682+abh1sar@users.noreply.github.com> Date: Wed, 30 Jul 2025 17:35:03 +0530 Subject: [PATCH 3/4] Fix listCapacity sort by usage (#11316) --- .../api/command/admin/resource/ListCapacityCmd.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListCapacityCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListCapacityCmd.java index 253677616f0..fdc1087377f 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListCapacityCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/resource/ListCapacityCmd.java @@ -127,14 +127,16 @@ public class ListCapacityCmd extends BaseListCmd { Collections.sort(capacityResponses, new Comparator() { public int compare(CapacityResponse resp1, CapacityResponse resp2) { int res = resp1.getZoneName().compareTo(resp2.getZoneName()); + // Group by zone if (res != 0) { return res; - } else { - return resp1.getCapacityType().compareTo(resp2.getCapacityType()); } + // Sort by capacity type only if not already sorted by usage + return (getSortBy() != null) ? 0 : resp1.getCapacityType().compareTo(resp2.getCapacityType()); } }); + response.setResponses(capacityResponses); response.setResponseName(getCommandName()); this.setResponseObject(response); From 1dc134a3ecf645b743334213aeb35530b8e9c2de Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Wed, 30 Jul 2025 08:11:13 -0400 Subject: [PATCH 4/4] UI: Display NSX Provider only when NSX is the selected Isolation method (#11142) --- .../com/cloud/network/NetworkServiceImpl.java | 1 - ui/src/views/infra/zone/ZoneWizardLaunchZone.vue | 16 ++++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index ccafc2da258..254c03c9317 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -5658,7 +5658,6 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C } addProviderToPhysicalNetwork(physicalNetworkId, Provider.Nsx.getName(), null, null); - enableProvider(Provider.Nsx.getName()); } return null; } diff --git a/ui/src/views/infra/zone/ZoneWizardLaunchZone.vue b/ui/src/views/infra/zone/ZoneWizardLaunchZone.vue index e479246777f..31e3fadc9f6 100644 --- a/ui/src/views/infra/zone/ZoneWizardLaunchZone.vue +++ b/ui/src/views/infra/zone/ZoneWizardLaunchZone.vue @@ -487,7 +487,6 @@ export default { if (physicalNetwork.isolationMethod === 'NSX' && physicalNetwork.traffics.findIndex(traffic => traffic.type === 'public' || traffic.type === 'guest') > -1) { this.stepData.isNsxZone = true - this.stepData.tungstenPhysicalNetworkId = physicalNetworkReturned.id } } else { this.stepData.physicalNetworkReturned = this.stepData.physicalNetworkItem['createPhysicalNetwork' + index] @@ -980,7 +979,7 @@ export default { return } - if (idx === 0) { + if (idx === 0 && this.stepData.isNsxZone) { await this.stepConfigurePublicTraffic('message.configuring.nsx.public.traffic', 'nsxPublicTraffic', 1) } else { if (this.stepData.isTungstenZone) { @@ -1080,6 +1079,7 @@ export default { providerParams.transportzone = this.prefillContent?.transportZone || '' await this.addNsxController(providerParams) + await this.updateNsxServiceProviderStatus() this.stepData.stepMove.push('addNsxController') } this.stepData.stepMove.push('nsx') @@ -1090,6 +1090,18 @@ export default { this.setStepStatus(STATUS_FAILED) } }, + async updateNsxServiceProviderStatus () { + const listParams = {} + listParams.name = 'Nsx' + const nsxPhysicalNetwork = this.stepData.physicalNetworksReturned.find(net => net.isolationmethods.trim().toUpperCase() === 'NSX') + const nsxPhysicalNetworkId = nsxPhysicalNetwork?.id || null + listParams.physicalNetworkId = nsxPhysicalNetworkId + const nsxProviderId = await this.listNetworkServiceProviders(listParams, 'nsxProvider') + console.log(nsxProviderId) + if (nsxProviderId !== null) { + await this.updateNetworkServiceProvider(nsxProviderId) + } + }, async stepConfigureStorageTraffic () { let targetNetwork = false this.prefillContent.physicalNetworks.forEach(physicalNetwork => {