From a4cce70e28494b9b667a6f5a27e41cbcc1acfb0f Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Wed, 14 May 2025 13:55:11 +0530 Subject: [PATCH] List usage records for network offering (usage type 13) when offering id is specified in usage id (#10852) --- .../main/java/com/cloud/usage/UsageServiceImpl.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/usage/UsageServiceImpl.java b/server/src/main/java/com/cloud/usage/UsageServiceImpl.java index e9264554ec5..806a3f58c28 100644 --- a/server/src/main/java/com/cloud/usage/UsageServiceImpl.java +++ b/server/src/main/java/com/cloud/usage/UsageServiceImpl.java @@ -27,6 +27,8 @@ import javax.inject.Inject; import javax.naming.ConfigurationException; import com.cloud.domain.Domain; +import com.cloud.offerings.NetworkOfferingVO; +import com.cloud.offerings.dao.NetworkOfferingDao; import org.apache.cloudstack.api.command.admin.usage.GenerateUsageRecordsCmd; import org.apache.cloudstack.api.command.admin.usage.ListUsageRecordsCmd; import org.apache.cloudstack.api.command.admin.usage.RemoveRawUsageRecordsCmd; @@ -122,6 +124,8 @@ public class UsageServiceImpl extends ManagerBase implements UsageService, Manag private IPAddressDao _ipDao; @Inject private HostDao _hostDao; + @Inject + private NetworkOfferingDao _networkOfferingDao; public UsageServiceImpl() { } @@ -253,6 +257,7 @@ public class UsageServiceImpl extends ManagerBase implements UsageService, Manag } Long usageDbId = null; + boolean offeringExistsForNetworkOfferingType = false; switch (usageType.intValue()) { case UsageTypes.NETWORK_BYTES_RECEIVED: @@ -326,13 +331,19 @@ public class UsageServiceImpl extends ManagerBase implements UsageService, Manag usageDbId = ip.getId(); } break; + case UsageTypes.NETWORK_OFFERING: + NetworkOfferingVO networkOffering = _networkOfferingDao.findByUuidIncludingRemoved(usageId); + if (networkOffering != null) { + offeringExistsForNetworkOfferingType = true; + sc.addAnd("offeringId", SearchCriteria.Op.EQ, networkOffering.getId()); + } default: break; } if (usageDbId != null) { sc.addAnd("usageId", SearchCriteria.Op.EQ, usageDbId); - } else { + } else if (!offeringExistsForNetworkOfferingType) { // return an empty list if usageId was not found return new Pair, Integer>(new ArrayList(), new Integer(0)); }