|
101 | 101 | import com.cloud.network.dao.LoadBalancerDao; |
102 | 102 | import com.cloud.network.dao.NetworkAccountDao; |
103 | 103 | import com.cloud.network.dao.NetworkDao; |
| 104 | +import com.cloud.network.dao.NetworkDetailsDao; |
| 105 | +import com.cloud.network.dao.NetworkDetailVO; |
104 | 106 | import com.cloud.network.dao.NetworkDomainDao; |
105 | 107 | import com.cloud.network.dao.NetworkServiceMapDao; |
106 | 108 | import com.cloud.network.dao.PhysicalNetworkDao; |
@@ -212,6 +214,8 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage |
212 | 214 | @Inject |
213 | 215 | NetworkDao _networksDao; |
214 | 216 | @Inject |
| 217 | + NetworkDetailsDao _networkDetailsDao; |
| 218 | + @Inject |
215 | 219 | NicDao _nicDao; |
216 | 220 | @Inject |
217 | 221 | RulesManager _rulesMgr; |
@@ -924,9 +928,10 @@ public void doInTransactionWithoutResult(TransactionStatus status) { |
924 | 928 | VlanVO vlan = _vlanDao.findById(addr.getVlanId()); |
925 | 929 | String guestType = vlan.getVlanType().toString(); |
926 | 930 | if (!isIpDedicated(addr)) { |
| 931 | + final boolean usageHidden = isUsageHidden(addr); |
927 | 932 | UsageEventUtils.publishUsageEvent(EventTypes.EVENT_NET_IP_ASSIGN, owner.getId(), addr.getDataCenterId(), addr.getId(), |
928 | | - addr.getAddress().toString(), |
929 | | - addr.isSourceNat(), guestType, addr.getSystem(), addr.getClass().getName(), addr.getUuid()); |
| 933 | + addr.getAddress().toString(), addr.isSourceNat(), guestType, addr.getSystem(), usageHidden, |
| 934 | + addr.getClass().getName(), addr.getUuid()); |
930 | 935 | } |
931 | 936 | if (updateIpResourceCount(addr)) { |
932 | 937 | _resourceLimitMgr.incrementResourceCount(owner.getId(), ResourceType.public_ip); |
@@ -1277,9 +1282,10 @@ public IPAddressVO doInTransaction(TransactionStatus status) throws Insufficient |
1277 | 1282 | ipaddr.setAllocatedInDomainId(ipOwner.getDomainId()); |
1278 | 1283 | ipaddr.setAllocatedToAccountId(ipOwner.getId()); |
1279 | 1284 | ipaddr = _ipAddressDao.persist(ipaddr); |
| 1285 | + final boolean usageHidden = isUsageHidden(ipaddr); |
1280 | 1286 |
|
1281 | 1287 | UsageEventUtils.publishUsageEvent(EventTypes.EVENT_PORTABLE_IP_ASSIGN, ipaddr.getId(), ipaddr.getDataCenterId(), ipaddr.getId(), |
1282 | | - ipaddr.getAddress().toString(), ipaddr.isSourceNat(), null, ipaddr.getSystem(), ipaddr.getClass().getName(), ipaddr.getUuid()); |
| 1288 | + ipaddr.getAddress().toString(), ipaddr.isSourceNat(), null, ipaddr.getSystem(), usageHidden, ipaddr.getClass().getName(), ipaddr.getUuid()); |
1283 | 1289 |
|
1284 | 1290 | return ipaddr; |
1285 | 1291 | } |
@@ -1829,8 +1835,9 @@ public IPAddressVO doInTransaction(TransactionStatus status) { |
1829 | 1835 | String guestType = vlan.getVlanType().toString(); |
1830 | 1836 | if (!isIpDedicated(ip)) { |
1831 | 1837 | String eventType = ip.isPortable() ? EventTypes.EVENT_PORTABLE_IP_RELEASE : EventTypes.EVENT_NET_IP_RELEASE; |
| 1838 | + final boolean usageHidden = isUsageHidden(ip); |
1832 | 1839 | UsageEventUtils.publishUsageEvent(eventType, ip.getAllocatedToAccountId(), ip.getDataCenterId(), addrId, ip.getAddress().addr(), ip.isSourceNat(), |
1833 | | - guestType, ip.getSystem(), ip.getClass().getName(), ip.getUuid()); |
| 1840 | + guestType, ip.getSystem(), usageHidden, ip.getClass().getName(), ip.getUuid()); |
1834 | 1841 | } |
1835 | 1842 | } |
1836 | 1843 |
|
@@ -2238,4 +2245,17 @@ public boolean isIpEqualsGatewayOrNetworkOfferingsEmpty(Network network, String |
2238 | 2245 | } |
2239 | 2246 | return false; |
2240 | 2247 | } |
| 2248 | + |
| 2249 | + @Override |
| 2250 | + public boolean isUsageHidden(IPAddressVO ip) { |
| 2251 | + Long networkId = ip.getAssociatedWithNetworkId(); |
| 2252 | + if (networkId == null) { |
| 2253 | + networkId = ip.getSourceNetworkId(); |
| 2254 | + } |
| 2255 | + if (networkId == null) { |
| 2256 | + throw new CloudRuntimeException("No network for IP " + ip.getId()); |
| 2257 | + } |
| 2258 | + NetworkDetailVO networkDetail = _networkDetailsDao.findDetail(networkId, Network.hideIpAddressUsage); |
| 2259 | + return networkDetail != null && "true".equals(networkDetail.getValue()); |
| 2260 | + } |
2241 | 2261 | } |
0 commit comments