You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ed...@apache.org on 2013/05/16 04:42:20 UTC
[07/18] git commit: updated refs/heads/object_store to c476d78
CLOUDSTACK:685 Fix user stat collection in PrepareStop part of VirtualNetworkApplianceImpl
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1f5ae4ba
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1f5ae4ba
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1f5ae4ba
Branch: refs/heads/object_store
Commit: 1f5ae4bae38d0e13d564f0c1f072404152568940
Parents: ca0d2ef
Author: Wei Zhou <w....@leaseweb.com>
Authored: Wed May 15 15:53:36 2013 +0530
Committer: Edison Su <su...@gmail.com>
Committed: Wed May 15 19:41:48 2013 -0700
----------------------------------------------------------------------
.../router/VirtualNetworkApplianceManagerImpl.java | 33 ++++++++-------
1 files changed, 18 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f5ae4ba/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 7bbdba6..5de2388 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -3889,26 +3889,29 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
String privateIP = router.getPrivateIpAddress();
if (privateIP != null) {
+ boolean forVpc = router.getVpcId() != null;
List<? extends Nic> routerNics = _nicDao.listByVmId(router.getId());
for (Nic routerNic : routerNics) {
Network network = _networkModel.getNetwork(routerNic.getNetworkId());
- if (network.getTrafficType() == TrafficType.Public) {
- boolean forVpc = router.getVpcId() != null;
+ //Send network usage command for public nic in VPC VR
+ //Send network usage command for isolated guest nic of non VPC VR
+ if ((forVpc && network.getTrafficType() == TrafficType.Public) || (!forVpc && network.getTrafficType() == TrafficType.Guest && network.getGuestType() == Network.GuestType.Isolated)) {
final NetworkUsageCommand usageCmd = new NetworkUsageCommand(privateIP, router.getHostName(),
forVpc, routerNic.getIp4Address());
+ String routerType = router.getType().toString();
UserStatisticsVO previousStats = _userStatsDao.findBy(router.getAccountId(),
- router.getDataCenterId(), network.getId(), null, router.getId(), router.getType().toString());
+ router.getDataCenterId(), network.getId(), (forVpc ? routerNic.getIp4Address() : null), router.getId(), routerType);
NetworkUsageAnswer answer = null;
try {
answer = (NetworkUsageAnswer) _agentMgr.easySend(router.getHostId(), usageCmd);
} catch (Exception e) {
- s_logger.warn("Error while collecting network stats from router: "+router.getInstanceName()+" from host: "+router.getHostId(), e);
+ s_logger.warn("Error while collecting network stats from router: " + router.getInstanceName() + " from host: " + router.getHostId(), e);
continue;
}
if (answer != null) {
if (!answer.getResult()) {
- s_logger.warn("Error while collecting network stats from router: "+router.getInstanceName()+" from host: "+router.getHostId() + "; details: " + answer.getDetails());
+ s_logger.warn("Error while collecting network stats from router: " + router.getInstanceName() + " from host: " + router.getHostId() + "; details: " + answer.getDetails());
continue;
}
Transaction txn = Transaction.open(Transaction.CLOUD_DB);
@@ -3919,26 +3922,26 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
txn.start();
UserStatisticsVO stats = _userStatsDao.lock(router.getAccountId(),
- router.getDataCenterId(), network.getId(), null, router.getId(), router.getType().toString());
+ router.getDataCenterId(), network.getId(), (forVpc ? routerNic.getIp4Address() : null), router.getId(), routerType);
if (stats == null) {
s_logger.warn("unable to find stats for account: " + router.getAccountId());
continue;
}
- if(previousStats != null
- && ((previousStats.getCurrentBytesReceived() != stats.getCurrentBytesReceived())
- || (previousStats.getCurrentBytesSent() != stats.getCurrentBytesSent()))){
+ if (previousStats != null
+ && ((previousStats.getCurrentBytesReceived() != stats.getCurrentBytesReceived())
+ || (previousStats.getCurrentBytesSent() != stats.getCurrentBytesSent()))){
s_logger.debug("Router stats changed from the time NetworkUsageCommand was sent. " +
- "Ignoring current answer. Router: "+answer.getRouterName()+" Rcvd: " +
- answer.getBytesReceived()+ "Sent: " +answer.getBytesSent());
+ "Ignoring current answer. Router: " + answer.getRouterName() + " Rcvd: " +
+ answer.getBytesReceived() + "Sent: " + answer.getBytesSent());
continue;
}
if (stats.getCurrentBytesReceived() > answer.getBytesReceived()) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Received # of bytes that's less than the last one. " +
- "Assuming something went wrong and persisting it. Router: " +
- answer.getRouterName()+" Reported: " + answer.getBytesReceived()
+ "Assuming something went wrong and persisting it. Router: " +
+ answer.getRouterName() + " Reported: " + answer.getBytesReceived()
+ " Stored: " + stats.getCurrentBytesReceived());
}
stats.setNetBytesReceived(stats.getNetBytesReceived() + stats.getCurrentBytesReceived());
@@ -3947,8 +3950,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
if (stats.getCurrentBytesSent() > answer.getBytesSent()) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Received # of bytes that's less than the last one. " +
- "Assuming something went wrong and persisting it. Router: " +
- answer.getRouterName()+" Reported: " + answer.getBytesSent()
+ "Assuming something went wrong and persisting it. Router: " +
+ answer.getRouterName() + " Reported: " + answer.getBytesSent()
+ " Stored: " + stats.getCurrentBytesSent());
}
stats.setNetBytesSent(stats.getNetBytesSent() + stats.getCurrentBytesSent());