You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ch...@apache.org on 2013/03/22 18:41:48 UTC
[1/2] git commit: refs/heads/4.1 - CLOUDSTACK-1666: Fix NetworkUsage
for VPC on KVM
Updated Branches:
refs/heads/4.1 ea86ce232 -> 7f10e1f5d
CLOUDSTACK-1666: Fix NetworkUsage for VPC on KVM
The collection of network usage from VPC virtual router on KVM does not work,
because there is no corresponding procedure to deal with VPC virtual router
(cmd.isForVpc() = true).
Reviewed-by: Kishan Kavala <ki...@apache.org>
Reported-by: Wei Zhou <w....@leaseweb.com>
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f4f78311
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f4f78311
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f4f78311
Branch: refs/heads/4.1
Commit: f4f78311b3b5ef5c404a4d06b6832cb3b1c2c4c4
Parents: fc121c2
Author: Wei Zhou <w....@leaseweb.com>
Authored: Fri Mar 22 10:26:59 2013 +0530
Committer: Chip Childers <ch...@gmail.com>
Committed: Fri Mar 22 16:58:40 2013 +0000
----------------------------------------------------------------------
.../kvm/resource/LibvirtComputingResource.java | 73 +++++++++++++--
1 files changed, 65 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f4f78311/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index 58abdc5..90e533d 100755
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -2717,17 +2717,74 @@ ServerResource {
return stats;
}
+ protected String VPCNetworkUsage(final String privateIpAddress, final String publicIp,
+ final String option, final String vpcCIDR) {
+ Script getUsage = new Script(_routerProxyPath, s_logger);
+ getUsage.add("vpc_netusage.sh");
+ getUsage.add(privateIpAddress);
+ getUsage.add("-l", publicIp);
+
+ if (option.equals("get")) {
+ getUsage.add("-g");
+ } else if (option.equals("create")) {
+ getUsage.add("-c");
+ getUsage.add("-v", vpcCIDR);
+ } else if (option.equals("reset")) {
+ getUsage.add("-r");
+ } else if (option.equals("vpn")) {
+ getUsage.add("-n");
+ } else if (option.equals("remove")) {
+ getUsage.add("-d");
+ }
+
+ final OutputInterpreter.OneLineParser usageParser = new OutputInterpreter.OneLineParser();
+ String result = getUsage.execute(usageParser);
+ if (result != null) {
+ s_logger.debug("Failed to execute VPCNetworkUsage:" + result);
+ return null;
+ }
+ return usageParser.getLine();
+ }
+
+ protected long[] getVPCNetworkStats(String privateIP, String publicIp, String option) {
+ String result = VPCNetworkUsage(privateIP, publicIp, option, null);
+ long[] stats = new long[2];
+ if (result != null) {
+ String[] splitResult = result.split(":");
+ int i = 0;
+ while (i < splitResult.length - 1) {
+ stats[0] += (new Long(splitResult[i++])).longValue();
+ stats[1] += (new Long(splitResult[i++])).longValue();
+ }
+ }
+ return stats;
+ }
+
private Answer execute(NetworkUsageCommand cmd) {
- if (cmd.getOption() != null && cmd.getOption().equals("create")) {
- String result = networkUsage(cmd.getPrivateIP(), "create", null);
- NetworkUsageAnswer answer = new NetworkUsageAnswer(cmd, result, 0L,
- 0L);
+ if (cmd.isForVpc()) {
+ if (cmd.getOption() != null && cmd.getOption().equals("create")) {
+ String result = VPCNetworkUsage(cmd.getPrivateIP(),cmd.getGatewayIP(), "create", cmd.getVpcCIDR());
+ NetworkUsageAnswer answer = new NetworkUsageAnswer(cmd, result, 0L, 0L);
+ return answer;
+ } else if (cmd.getOption() != null && (cmd.getOption().equals("get") || cmd.getOption().equals("vpn"))) {
+ long[] stats = getVPCNetworkStats(cmd.getPrivateIP(), cmd.getGatewayIP(), cmd.getOption());
+ NetworkUsageAnswer answer = new NetworkUsageAnswer(cmd, "", stats[0], stats[1]);
+ return answer;
+ } else {
+ String result = VPCNetworkUsage(cmd.getPrivateIP(),cmd.getGatewayIP(), cmd.getOption(), cmd.getVpcCIDR());
+ NetworkUsageAnswer answer = new NetworkUsageAnswer(cmd, result, 0L, 0L);
+ return answer;
+ }
+ } else {
+ if (cmd.getOption() != null && cmd.getOption().equals("create")) {
+ String result = networkUsage(cmd.getPrivateIP(), "create", null);
+ NetworkUsageAnswer answer = new NetworkUsageAnswer(cmd, result, 0L, 0L);
+ return answer;
+ }
+ long[] stats = getNetworkStats(cmd.getPrivateIP());
+ NetworkUsageAnswer answer = new NetworkUsageAnswer(cmd, "", stats[0], stats[1]);
return answer;
}
- long[] stats = getNetworkStats(cmd.getPrivateIP());
- NetworkUsageAnswer answer = new NetworkUsageAnswer(cmd, "", stats[0],
- stats[1]);
- return answer;
}
private Answer execute(RebootCommand cmd) {
[2/2] git commit: refs/heads/4.1 - Merge branch '4.1' of
https://git-wip-us.apache.org/repos/asf/cloudstack into 4.1
Posted by ch...@apache.org.
Merge branch '4.1' of https://git-wip-us.apache.org/repos/asf/cloudstack into 4.1
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7f10e1f5
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7f10e1f5
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7f10e1f5
Branch: refs/heads/4.1
Commit: 7f10e1f5d87b489da3b6604663c28524de3f7a9e
Parents: f4f7831 ea86ce2
Author: Chip Childers <ch...@gmail.com>
Authored: Fri Mar 22 17:41:37 2013 +0000
Committer: Chip Childers <ch...@gmail.com>
Committed: Fri Mar 22 17:41:37 2013 +0000
----------------------------------------------------------------------
.../classes/resources/messages_es.properties | 1488 ++------
.../classes/resources/messages_ja.properties | 2914 +++++++--------
.../classes/resources/messages_zh_CN.properties | 2912 +++++++--------
3 files changed, 3191 insertions(+), 4123 deletions(-)
----------------------------------------------------------------------