From 8b092951cbd10880ca2bf33c8feedadd580d5268 Mon Sep 17 00:00:00 2001 From: Phsm Qwerty Date: Fri, 7 Mar 2025 06:26:43 +0100 Subject: [PATCH 1/5] prometheus: don't poll the same tag multiple times (#10450) --- .../org/apache/cloudstack/metrics/PrometheusExporterImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/integrations/prometheus/src/main/java/org/apache/cloudstack/metrics/PrometheusExporterImpl.java b/plugins/integrations/prometheus/src/main/java/org/apache/cloudstack/metrics/PrometheusExporterImpl.java index e5dc0b29171..32ec2f53211 100644 --- a/plugins/integrations/prometheus/src/main/java/org/apache/cloudstack/metrics/PrometheusExporterImpl.java +++ b/plugins/integrations/prometheus/src/main/java/org/apache/cloudstack/metrics/PrometheusExporterImpl.java @@ -19,6 +19,7 @@ package org.apache.cloudstack.metrics; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -302,7 +303,7 @@ public class PrometheusExporterImpl extends ManagerBase implements PrometheusExp .flatMap( h -> _hostTagsDao.getHostTags(h).stream()) .distinct() .collect(Collectors.toList()); - List allHostTags = new ArrayList<>(); + HashSet allHostTags = new HashSet<>(); allHostTagVOS.forEach(hostTagVO -> allHostTags.add(hostTagVO.getTag())); for (final State state : State.values()) { From b8359e8f62e23910e11548740e54aeb99a69ee93 Mon Sep 17 00:00:00 2001 From: Vishesh Date: Fri, 7 Mar 2025 11:18:24 +0530 Subject: [PATCH 2/5] UI: Allow custom footer in password reset page (#10461) * Allow custom footer in password reset page * fixup --- ui/public/config.json | 1 + ui/src/layouts/UserLayout.vue | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/public/config.json b/ui/public/config.json index 774e414af0a..38d1fd9bbe7 100644 --- a/ui/public/config.json +++ b/ui/public/config.json @@ -13,6 +13,7 @@ "loginTitle": "CloudStack", "loginFavicon": "assets/logo.svg", "loginFooter": "", + "resetPasswordFooter": "", "logo": "assets/logo.svg", "minilogo": "assets/mini-logo.svg", "banner": "assets/banner.svg", diff --git a/ui/src/layouts/UserLayout.vue b/ui/src/layouts/UserLayout.vue index 6c81c858bd2..52fe94c7f5d 100644 --- a/ui/src/layouts/UserLayout.vue +++ b/ui/src/layouts/UserLayout.vue @@ -37,8 +37,9 @@ - From 1f0ffee8583e1476ef9799a726e17a8aab686860 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 7 Mar 2025 15:04:14 +0100 Subject: [PATCH 3/5] VPC: fix private mtu of vpc tier (#10257) --- .../src/main/java/com/cloud/network/NetworkServiceImpl.java | 6 +++--- .../test/java/com/cloud/network/NetworkServiceImplTest.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index d4279c29112..bdb928ae919 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -1640,7 +1640,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C } Pair interfaceMTUs = validateMtuConfig(publicMtu, privateMtu, zone.getId()); - mtuCheckForVpcNetwork(vpcId, interfaceMTUs, publicMtu, privateMtu); + mtuCheckForVpcNetwork(vpcId, interfaceMTUs, publicMtu); Network associatedNetwork = null; if (associatedNetworkId != null) { @@ -1899,7 +1899,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C return ntwkOff; } - protected void mtuCheckForVpcNetwork(Long vpcId, Pair interfaceMTUs, Integer publicMtu, Integer privateMtu) { + protected void mtuCheckForVpcNetwork(Long vpcId, Pair interfaceMTUs, Integer publicMtu) { if (vpcId != null && publicMtu != null) { VpcVO vpc = _vpcDao.findById(vpcId); if (vpc == null) { @@ -1907,7 +1907,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService, C } s_logger.warn(String.format("VPC public MTU already set at VPC creation phase to: %s. Ignoring public MTU " + "passed during VPC network tier creation ", vpc.getPublicMtu())); - interfaceMTUs.set(vpc.getPublicMtu(), privateMtu); + interfaceMTUs.set(vpc.getPublicMtu(), interfaceMTUs.second()); } } diff --git a/server/src/test/java/com/cloud/network/NetworkServiceImplTest.java b/server/src/test/java/com/cloud/network/NetworkServiceImplTest.java index c1e95874d73..234b3b359e6 100644 --- a/server/src/test/java/com/cloud/network/NetworkServiceImplTest.java +++ b/server/src/test/java/com/cloud/network/NetworkServiceImplTest.java @@ -539,7 +539,7 @@ public class NetworkServiceImplTest { Mockito.when(vpcVO.getPublicMtu()).thenReturn(vpcMtu); Pair updatedMtus = service.validateMtuConfig(publicMtu, privateMtu, zoneId); - service.mtuCheckForVpcNetwork(vpcId, updatedMtus, publicMtu, privateMtu); + service.mtuCheckForVpcNetwork(vpcId, updatedMtus, publicMtu); Assert.assertEquals(vpcMtu, updatedMtus.first()); Assert.assertEquals(privateMtu, updatedMtus.second()); } From cd6d1a23a2b7fdb653d873655c44d59e20f835f3 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 10 Mar 2025 09:06:15 +0100 Subject: [PATCH 4/5] KVM: return null state instead of Disconnected when investigate a host without NFS (#10515) --- .../kvm/src/main/java/com/cloud/ha/KVMInvestigator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/ha/KVMInvestigator.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/ha/KVMInvestigator.java index 022501524f7..c77757a4b88 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/ha/KVMInvestigator.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/ha/KVMInvestigator.java @@ -92,7 +92,7 @@ public class KVMInvestigator extends AdapterBase implements Investigator { if (!storageSupportHA) { s_logger.warn( "Agent investigation was requested on host " + agent + ", but host does not support investigation because it has no NFS storage. Skipping investigation."); - return Status.Disconnected; + return null; } Status hostStatus = null; From 8ce34ad791e9dedc8521a84259e300f01677c6b7 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 10 Mar 2025 14:27:38 +0100 Subject: [PATCH 5/5] kvm: find cluster-wide pools only in Up state when investigate a host (#10516) --- .../kvm/src/main/java/com/cloud/ha/KVMInvestigator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/ha/KVMInvestigator.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/ha/KVMInvestigator.java index c77757a4b88..72878f439ee 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/ha/KVMInvestigator.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/ha/KVMInvestigator.java @@ -39,6 +39,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; import org.apache.log4j.Logger; import javax.inject.Inject; +import java.util.Arrays; import java.util.List; public class KVMInvestigator extends AdapterBase implements Investigator { @@ -83,7 +84,7 @@ public class KVMInvestigator extends AdapterBase implements Investigator { return haManager.getHostStatus(agent); } - List clusterPools = _storagePoolDao.listPoolsByCluster(agent.getClusterId()); + List clusterPools = _storagePoolDao.findPoolsInClusters(Arrays.asList(agent.getClusterId()), null); boolean storageSupportHA = storageSupportHa(clusterPools); if (!storageSupportHA) { List zonePools = _storagePoolDao.findZoneWideStoragePoolsByHypervisor(agent.getDataCenterId(), agent.getHypervisorType());