You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by an...@apache.org on 2012/07/28 01:04:17 UTC

[7/16] git commit: VPC : basic network usage per guest network

VPC : basic network usage per guest network


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/952da87e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/952da87e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/952da87e

Branch: refs/heads/vpc
Commit: 952da87e19318245589dbc732e59d2fadca19ffa
Parents: 744bfdc
Author: anthony <an...@cloud.com>
Authored: Thu Jul 26 14:14:03 2012 -0700
Committer: anthony <an...@cloud.com>
Committed: Fri Jul 27 15:04:41 2012 -0700

----------------------------------------------------------------------
 .../debian/config/opt/cloud/bin/vpc_netusage.sh    |  107 +++++++++++++++
 1 files changed, 107 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/952da87e/patches/systemvm/debian/config/opt/cloud/bin/vpc_netusage.sh
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/opt/cloud/bin/vpc_netusage.sh b/patches/systemvm/debian/config/opt/cloud/bin/vpc_netusage.sh
new file mode 100755
index 0000000..54c6b55
--- /dev/null
+++ b/patches/systemvm/debian/config/opt/cloud/bin/vpc_netusage.sh
@@ -0,0 +1,107 @@
+#!/usr/bin/env bash
+# Copyright 2012 Citrix Systems, Inc. Licensed under the
+# Apache License, Version 2.0 (the "License"); you may not use this
+# file except in compliance with the License.  Citrix Systems, Inc.
+# reserves all rights not expressly granted by the License.
+# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# 
+# Automatically generated by addcopyright.py at 04/03/2012
+
+source /root/func.sh
+source /opt/cloud/bin/vpc_func.sh
+
+lock="biglock"
+locked=$(getLockFile $lock)
+if [ "$locked" != "1" ]
+then
+    exit 1
+fi
+
+usage() {
+  printf "Usage: %s -[c|g|r] [-[a|d] <public interface>]\n" $(basename $0)  >&2
+}
+
+create_usage_rules () {
+  iptables-save|grep "NETWORK_STATS_$guestIp -i $ethDev" > /dev/null
+  if [ $? -gt 0 ]
+  then 
+    iptables -A NETWORK_STATS_$guestIp -i $ethDev -s ! zcidr > /dev/null
+  fi
+  iptables-save|grep "NETWORK_STATS_$guestIp -o $ethDev" > /dev/null
+  if [ $? -gt 0 ]
+  then 
+    iptables -A NETWORK_STATS_$guestIp -o $ethDev -d ! zcidr > /dev/null
+  fi
+  return $?
+}
+
+get_usage () {
+  iptables -t mangle -L NETWORK_STATS_$ethDev -n -v -x | awk '$1 ~ /^[0-9]+$/ { printf "%s:", $2}'; > /dev/null
+  if [ $? -gt 0 ]
+  then
+     printf $?
+     return 1
+  fi
+}
+
+reset_usage () {
+  iptables -t mangle -Z NETWORK_STATS_$ethDev > /dev/null
+  if [ $? -gt 0  -a $? -ne 2 ]
+  then
+     return 1
+  fi
+}
+
+#set -x
+
+cflag=
+gflag=
+rflag=
+lflag=
+
+
+while getopts 'cgrl:' OPTION
+do
+  case $OPTION in
+  c)	cflag=1
+	;;
+  g)	gflag=1
+	;;
+  r)	rflag=1
+	;;
+  l)    lflag=1
+        guestIp="$OPTARG"
+        ;;
+  i)    #Do nothing, since it's parameter for host script
+        ;;
+  ?)	usage
+        unlock_exit 2 $lock $locked
+	;;
+  esac
+done
+
+if [ "$cflag" == "1" ] 
+then
+  unlock_exit 0 $lock $locked
+fi
+
+ethDev=$(getEthByIp $guestIp)
+if [ "$gflag" == "1" ] 
+then
+  get_usage 
+  unlock_exit $? $lock $locked
+fi
+
+if [ "$rflag" == "1" ] 
+then
+  reset_usage  
+  unlock_exit $? $lock $locked
+fi
+
+
+unlock_exit 0 $lock $locked