VPC : many debug fix
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/edbf4a0b Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/edbf4a0b Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/edbf4a0b Branch: refs/heads/vpc Commit: edbf4a0ba7b33a1adefdb66962bbdf234bfad54f Parents: fb72b7e Author: anthony <[email protected]> Authored: Thu Jun 7 17:53:12 2012 -0700 Committer: Alena Prokharchyk <[email protected]> Committed: Fri Jun 15 14:26:41 2012 -0700 ---------------------------------------------------------------------- .../cloud/agent/api/SetupGuestNetworkCommand.java | 4 + .../xen/resource/CitrixResourceBase.java | 12 +++- patches/systemvm/debian/config/etc/dnsmasq.conf | 4 +- .../debian/config/etc/init.d/cloud-early-config | 50 ++------------- .../debian/config/opt/cloud/bin/guestnw.sh | 35 +++++++---- wscript | 2 +- 6 files changed, 44 insertions(+), 63 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/edbf4a0b/api/src/com/cloud/agent/api/SetupGuestNetworkCommand.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/agent/api/SetupGuestNetworkCommand.java b/api/src/com/cloud/agent/api/SetupGuestNetworkCommand.java index e36ca28..f5f57c8 100644 --- a/api/src/com/cloud/agent/api/SetupGuestNetworkCommand.java +++ b/api/src/com/cloud/agent/api/SetupGuestNetworkCommand.java @@ -32,6 +32,10 @@ public class SetupGuestNetworkCommand extends NetworkElementCommand{ return nic; } + public String getNetworkDomain() { + return networkDomain; + } + @Override public boolean executeInSequence() { return true; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/edbf4a0b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java ---------------------------------------------------------------------- diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index a5359ce..07daa4a 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -7036,6 +7036,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe String domrGIP = cmd.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP); String domrName = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME); String gw = cmd.getAccessDetail(NetworkElementCommand.GUEST_NETWORK_GATEWAY); + String cidr = Long.toString(NetUtils.getCidrSize(nic.getNetmask()));; + String domainName = cmd.getNetworkDomain(); + String dns = nic.getDns1(); try { Set<VM> vms = VM.getByNameLabel(conn, domrName); if ( vms == null || vms.isEmpty() ) { @@ -7060,8 +7063,13 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe args += " -d " + dev; args += " -i " + domrGIP; args += " -g " + gw; - args += " -m " + Long.toString(NetUtils.getCidrSize(nic.getNetmask())); - args += " -s " + nic.getDns1(); + args += " -m " + cidr; + if ( dns != null && !dns.isEmpty() ) { + args += " -s " + dns; + } + if ( domainName != null && !domainName.isEmpty() ) { + args += " -e " + domainName; + } String result = callHostPlugin(conn, "vmops", "routerProxy", "args", args); if (result == null || result.isEmpty()) { return new SetupGuestNetworkAnswer(cmd, false, "creating guest network failed due to " + ((result == null)? "null":result)); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/edbf4a0b/patches/systemvm/debian/config/etc/dnsmasq.conf ---------------------------------------------------------------------- diff --git a/patches/systemvm/debian/config/etc/dnsmasq.conf b/patches/systemvm/debian/config/etc/dnsmasq.conf index f997004..ca32869 100644 --- a/patches/systemvm/debian/config/etc/dnsmasq.conf +++ b/patches/systemvm/debian/config/etc/dnsmasq.conf @@ -110,14 +110,14 @@ expand-hosts # 2) Sets the "domain" DHCP option thereby potentially setting the # domain of all systems configured by DHCP # 3) Provides the domain part for "expand-hosts" -domain=2.vmops-test.vmops.com +#domain=2.vmops-test.vmops.com # Uncomment this to enable the integrated DHCP server, you need # to supply the range of addresses available for lease and optionally # a lease time. If you have more than one network, you will need to # repeat this for each network on which you want to supply DHCP # service. -dhcp-range=10.1.1.1,static +#dhcp-range=10.1.1.1,static #dhcp-range=10.0.0.1,10.255.255.255 dhcp-hostsfile=/etc/dhcphosts.txt http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/edbf4a0b/patches/systemvm/debian/config/etc/init.d/cloud-early-config ---------------------------------------------------------------------- diff --git a/patches/systemvm/debian/config/etc/init.d/cloud-early-config b/patches/systemvm/debian/config/etc/init.d/cloud-early-config index 5f59cde..aba817a 100755 --- a/patches/systemvm/debian/config/etc/init.d/cloud-early-config +++ b/patches/systemvm/debian/config/etc/init.d/cloud-early-config @@ -286,10 +286,13 @@ disable_hvc() { setup_common() { init_interfaces $1 $2 $3 setup_interface "0" $ETH0_IP $ETH0_MASK - setup_interface "1" $ETH1_IP $ETH1_MASK + if [ -n "$ETH1_IP" ] + then + setup_interface "1" $ETH1_IP $ETH1_MASK + fi if [ -n "$ETH2_IP" ] then - setup_interface "2" $ETH2_IP $ETH2_MASK + setup_interface "2" $ETH2_IP $ETH2_MASK fi echo $NAME > /etc/hostname @@ -349,46 +352,6 @@ setup_common() { fi } -setup_dnsmasq() { - log_it "Setting up dnsmasq" - [ -z $DHCP_RANGE ] && DHCP_RANGE=$ETH0_IP - [ -z $DOMAIN ] && DOMAIN="cloudnine.internal" - - if [ -n "$DOMAIN" ] - then - #send domain name to dhcp clients - sed -i s/[#]*dhcp-option=15.*$/dhcp-option=15,\"$DOMAIN\"/ /etc/dnsmasq.conf - #DNS server will append $DOMAIN to local queries - sed -r -i s/^[#]?domain=.*$/domain=$DOMAIN/ /etc/dnsmasq.conf - #answer all local domain queries - sed -i -e "s/^[#]*local=.*$/local=\/$DOMAIN\//" /etc/dnsmasq.conf - - fi - - if [ -n "$DNS_SEARCH_ORDER" ] - then - sed -i -e "/^[#]*dhcp-option.*=119.*$/d" /etc/dnsmasq.conf - echo "dhcp-option-force=119,$DNS_SEARCH_ORDER" >> /etc/dnsmasq.conf - # set the domain search order as a space seprated list for option 15 - DNS_SEARCH_ORDER=$(echo $DNS_SEARCH_ORDER | sed 's/,/ /g') - #send domain name to dhcp clients - sed -i s/[#]*dhcp-option=15.*$/dhcp-option=15,\""$DNS_SEARCH_ORDER"\"/ /etc/dnsmasq.conf - fi - - - sed -i -e "s/^dhcp-range=.*$/dhcp-range=$DHCP_RANGE,static/" /etc/dnsmasq.conf - sed -i -e "s/^[#]*listen-address=.*$/listen-address=$ETH0_IP/" /etc/dnsmasq.conf - - if [ "$RROUTER" == "1" ] - then - sed -i -e "/^[#]*dhcp-option=option:router.*$/d" /etc/dnsmasq.conf - echo "dhcp-option=option:router,$GUEST_GW" >> /etc/dnsmasq.conf - sed -i -e "/^[#]*dhcp-option=6.*$/d" /etc/dnsmasq.conf - echo "dhcp-option=6,$GUEST_GW" >> /etc/dnsmasq.conf - fi - -} - setup_sshd(){ local ip=$1 [ -f /etc/ssh/sshd_config ] && sed -i -e "s/^[#]*ListenAddress.*$/ListenAddress $ip/" /etc/ssh/sshd_config @@ -520,9 +483,6 @@ setup_router() { setup_redundant_router fi - setup_dnsmasq - setup_apache2 $ETH0_IP - sed -i /gateway/d /etc/hosts echo "$ETH0_IP $NAME" >> /etc/hosts http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/edbf4a0b/patches/systemvm/debian/config/opt/cloud/bin/guestnw.sh ---------------------------------------------------------------------- diff --git a/patches/systemvm/debian/config/opt/cloud/bin/guestnw.sh b/patches/systemvm/debian/config/opt/cloud/bin/guestnw.sh index d15f8a4..c90ef76 100755 --- a/patches/systemvm/debian/config/opt/cloud/bin/guestnw.sh +++ b/patches/systemvm/debian/config/opt/cloud/bin/guestnw.sh @@ -32,20 +32,26 @@ usage() { setup_dnsmasq() { loger -t cloud "Setting up dnsmasq for network $ip/$mask " - + # setup static sed -i -e "/^[#]*dhcp-range=interface:$dev/d" /etc/dnsmasq.d/cloud.conf - - echo "dhcp-range=interface:$dev,set:interface-$dev,$ip,static/" >> /etc/dnsmasq.d/cloud.conf - + echo "dhcp-range=interface:$dev,set:interface-$dev,$ip,static" >> /etc/dnsmasq.d/cloud.conf + # setup gateway sed -i -e "/^[#]*dhcp-option=tag:interface-$dev,option:router.*$/d" /etc/dnsmasq.d/cloud.conf if [ -n "$gw" ] then echo "dhcp-option=tag:interface-$dev,option:router,$gw" >> /etc/dnsmasq.d/cloud.conf fi + # setup DNS sed -i -e "/^[#]*dhcp-option=tag:interface-$dev,6.*$/d" /etc/dnsmasq.d/cloud.conf - if [ -n "$NS" ] + if [ -n "$DNS" ] then - echo "dhcp-option=tag:interface-$dev,6,$NS" >> /etc/dnsmasq.d/cloud.conf + echo "dhcp-option=tag:interface-$dev,6,$DNS" >> /etc/dnsmasq.d/cloud.conf + fi + # setup DOMAIN + sed -i -e "/^[#]*dhcp-option=tag:interface-$dev,15.*$/d" /etc/dnsmasq.d/cloud.conf + if [ -n "$DOMAIN" ] + then + echo "dhcp-option=tag:interface-$dev,15,$DOMAIN" >> /etc/dnsmasq.d/cloud.conf fi service dnsmasq restart sleep 1 @@ -72,14 +78,14 @@ create_guest_network() { then logger -t cloud "$(basename $0): create VPC inbound acl chain for network $ip/$mask" # policy drop - sudo iptables -A ACL_INBOUND_$ip DROP >/dev/null + sudo iptables -A ACL_INBOUND_$ip -j DROP >/dev/null sudo iptables -A FORWARD -o $dev -d $ip/$mask -j ACL_INBOUND_$ip fi # create outbound acl chain if sudo iptables -N ACL_OUTBOUND_$ip 2>/dev/null then logger -t cloud "$(basename $0): create VPC outbound acl chain for network $ip/$mask" - sudo iptables -A ACL_OUTBOUND_$ip DROP >/dev/null + sudo iptables -A ACL_OUTBOUND_$ip -j DROP >/dev/null sudo iptables -A FORWARD -i $dev -s $ip/$mask -j ACL_OUTBOUND_$ip fi @@ -111,7 +117,7 @@ Dflag= op="" -while getopts 'CDg:n:m:c:v' OPTION +while getopts 'CDn:m:d:i:g:s:e:' OPTION do case $OPTION in C) Cflag=1 @@ -123,13 +129,13 @@ do n) nflag=1 network="$OPTAGR" ;; - c) mflag=1 + m) mflag=1 mask="$OPTARG" ;; d) dflag=1 dev="$OPTARG" ;; - v) iflag=1 + i) iflag=1 ip="$OPTARG" ;; g) gflag=1 @@ -137,6 +143,9 @@ do ;; s) sflag=1 DNS="$OPTARG" + ;; + e) eflag=1 + DOMAIN="$OPTARG" ;; ?) usage unlock_exit 2 $lock $locked @@ -145,13 +154,13 @@ do done -if [ "$Cflag$Dflag$cflag" != "11" ] +if [ "$Cflag$Dflag$dflag" != "11" ] then usage unlock_exit 2 $lock $locked fi -if [ "$Cflag" == "1" ] && ["$dflag$iflag$gflag$mflag" != "1111" ] +if [ "$Cflag" == "1" ] && ["$iflag$gflag$mflag" != "111" ] then usage unlock_exit 2 $lock $locked http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/edbf4a0b/wscript ---------------------------------------------------------------------- diff --git a/wscript b/wscript index d9b5488..720e7b9 100644 --- a/wscript +++ b/wscript @@ -4,7 +4,7 @@ # the following two variables are used by the target "waf dist" # if you change 'em here, you need to change it also in cloud.spec, add a %changelog entry there, and add an entry in debian/changelog -VERSION = '3.0.3.2012-06-07T00:21:40Z' +VERSION = '3.0.3.2012-06-08T00:42:03Z' APPNAME = 'cloud' import shutil,os
