From 963d603ede6a76a37d4195f3771ba254b3c680b3 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Wed, 21 Oct 2020 22:45:34 +0530 Subject: [PATCH 1/3] Fix usage record count (#4193) Co-authored-by: Pearl Dsilva --- .../api/command/admin/usage/ListUsageRecordsCmd.java | 2 +- server/src/main/java/com/cloud/api/ApiResponseHelper.java | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListUsageRecordsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListUsageRecordsCmd.java index a5199ece944..748b9d7b8bb 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListUsageRecordsCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/usage/ListUsageRecordsCmd.java @@ -181,7 +181,7 @@ public class ListUsageRecordsCmd extends BaseListCmd { } } - response.setResponses(usageResponses, usageResponses.size()); + response.setResponses(usageResponses, usageRecords.second()); } response.setResponseName(getCommandName()); diff --git a/server/src/main/java/com/cloud/api/ApiResponseHelper.java b/server/src/main/java/com/cloud/api/ApiResponseHelper.java index 229b31159b1..2f4ee9f58fd 100644 --- a/server/src/main/java/com/cloud/api/ApiResponseHelper.java +++ b/server/src/main/java/com/cloud/api/ApiResponseHelper.java @@ -3412,11 +3412,6 @@ public class ApiResponseHelper implements ResponseGenerator { if (networkId == null) { networkId = ip.getSourceNetworkId(); } - NetworkDetailVO networkDetail = networkDetailsDao.findDetail(networkId, Network.hideIpAddressUsage); - if (networkDetail != null && networkDetail.getValue() != null && networkDetail.getValue().equals("true")) { - // Don't export network usage when admin wants it hidden - return null; - } resourceType = ResourceObjectType.PublicIpAddress; resourceId = ip.getId(); usageRecResponse.setUsageId(ip.getUuid()); From 4cd9886a89a82e099235fd0c5d2bf210d125ada9 Mon Sep 17 00:00:00 2001 From: Rakesh Date: Thu, 29 Oct 2020 11:50:28 +0100 Subject: [PATCH 2/3] FIX s2svpn connection stuck on Pending state (#4429) When we try to reset the site 2 site vpn connection while the VR's are being restarted, the connection enters the PENDING state and we cant reset the connection. So change the state from PENDING to disconnected. Steps to reproduce the issue 1.create a VPC with a tier (vpc-001-001 in vpc-001), create a vm 2.create a VPC with a tier (vpc-002-001 in vpc-002) with different cidr, create a vm 3.create custom gateway for both vpn 4.enable site-to-site vpn on both vpn, and add vpn connection to each other. both should be "Connected" 5.restart vpc-001 with cleanup and monitor it 6.when the first router is destroyed, go to site-to-site vpn page and reset vpn connection. 7.we will get an error "Resource [DataCenter:1] is unreachable: Unable to apply site 2 site VPN configuration, virtual router is not in the right state" and vpn connection is stuck at Pending 8.When vpc is restarted, go to site-to-site vpn page and reset vpn connection. Co-authored-by: Rakesh Venkatesh --- .../java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index aebc8717485..7fd3473a85f 100644 --- a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -562,9 +562,9 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn _accountMgr.checkAccess(caller, null, false, conn); if (conn.getState() == State.Pending) { - throw new InvalidParameterValueException("VPN connection " + id + " cannot be reseted when state is Pending!"); + conn.setState(State.Disconnected); } - if (conn.getState() == State.Connected || conn.getState() == State.Error) { + if (conn.getState() == State.Connected || conn.getState() == State.Error || conn.getState() == State.Disconnected) { stopVpnConnection(id); } startVpnConnection(id); From dfd59321b16474048b43224f2bfe1133d080249d Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 30 Oct 2020 09:38:59 +0100 Subject: [PATCH 3/3] server: fix format error with memorywithoverprovisioning in list hosts response (#4435) --- .../java/com/cloud/api/query/dao/HostJoinDaoImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java index 597cc1ca446..8b4220c8838 100644 --- a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java @@ -171,7 +171,7 @@ public class HostJoinDaoImpl extends GenericDaoBase implements hostResponse.setMemoryTotal(host.getTotalMemory()); Float totalMemorywithOverprovisioning = host.getTotalMemory() * ApiDBUtils.getMemOverprovisioningFactor(host.getClusterId()); - hostResponse.setMemWithOverprovisioning(totalMemorywithOverprovisioning.toString()); + hostResponse.setMemWithOverprovisioning(decimalFormat.format(totalMemorywithOverprovisioning)); hostResponse.setMemoryAllocated(mem); String hostTags = host.getTag(); @@ -192,7 +192,7 @@ public class HostJoinDaoImpl extends GenericDaoBase implements float cpuWithOverprovisioning = host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId()); hostResponse.setCpuAllocated(calculateResourceAllocatedPercentage(cpu, cpuWithOverprovisioning)); - hostResponse.setCpuWithOverprovisioning(Float.toString(cpuWithOverprovisioning)); + hostResponse.setCpuWithOverprovisioning(decimalFormat.format(cpuWithOverprovisioning)); } if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) { @@ -320,7 +320,7 @@ public class HostJoinDaoImpl extends GenericDaoBase implements hostResponse.setMemoryTotal(host.getTotalMemory()); Float memWithOverprovisioning = host.getTotalMemory() * ApiDBUtils.getMemOverprovisioningFactor(host.getClusterId()); - hostResponse.setMemWithOverprovisioning(memWithOverprovisioning.toString()); + hostResponse.setMemWithOverprovisioning(decimalFormat.format(memWithOverprovisioning)); hostResponse.setMemoryAllocated(decimalFormat.format((float) mem / memWithOverprovisioning * 100.0f) +"%"); String hostTags = host.getTag(); @@ -341,7 +341,7 @@ public class HostJoinDaoImpl extends GenericDaoBase implements float cpuWithOverprovisioning = host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId()); hostResponse.setCpuAllocated(calculateResourceAllocatedPercentage(cpu, cpuWithOverprovisioning)); - hostResponse.setCpuWithOverprovisioning(Float.toString(cpuWithOverprovisioning)); + hostResponse.setCpuWithOverprovisioning(decimalFormat.format(cpuWithOverprovisioning)); } if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) {