From 37e6ded80cf92a1353a9f754235d76d827bf9777 Mon Sep 17 00:00:00 2001 From: anthony Date: Wed, 25 May 2011 17:37:25 -0700 Subject: [PATCH] bug 10023: only set ip route for internal DNS status 10023: resolved fixed --- .../consoleproxy/ConsoleProxyResource.java | 26 ++++++++--------- .../resource/NfsSecondaryStorageResource.java | 29 +++++++++---------- .../config/etc/init.d/cloud-early-config | 21 ++++++++++++-- .../consoleproxy/ConsoleProxyManagerImpl.java | 15 ++++++---- .../SecondaryStorageManagerImpl.java | 9 ++++-- 5 files changed, 62 insertions(+), 38 deletions(-) diff --git a/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java b/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java index 68c1bdce57a..54739feb106 100644 --- a/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java +++ b/agent/src/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java @@ -243,20 +243,20 @@ public class ConsoleProxyResource extends ServerResourceBase implements ServerRe _proxyVmId = NumbersUtil.parseLong(value, 0); if (_localgw != null) { - String internalDns1 = (String)params.get("dns1"); - String internalDns2 = (String)params.get("dns2"); + String mgmtHost = (String) params.get("host"); + addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, mgmtHost); - if (internalDns1 == null) { - s_logger.warn("No DNS entry found during configuration of NfsSecondaryStorage"); - } else { - addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, internalDns1); - } - - String mgmtHost = (String)params.get("host"); - addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, mgmtHost); - if (internalDns2 != null) { - addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, internalDns2); - } + String internalDns1 = (String) params.get("internaldns1"); + if (internalDns1 == null) { + s_logger.warn("No DNS entry found during configuration of NfsSecondaryStorage"); + } else { + addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, internalDns1); + } + + String internalDns2 = (String) params.get("internaldns2"); + if (internalDns2 != null) { + addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, internalDns2); + } } _pubIp = (String)params.get("public.ip"); diff --git a/core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java b/core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java index 605cd027d23..6f554d94553 100755 --- a/core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java +++ b/core/src/com/cloud/storage/resource/NfsSecondaryStorageResource.java @@ -433,6 +433,7 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S @Override public boolean configure(String name, Map params) throws ConfigurationException { _eth1ip = (String)params.get("eth1ip"); + _eth1mask = (String)params.get("eth1mask"); if (_eth1ip != null) { //can only happen inside service vm params.put("private.network.device", "eth1"); } else { @@ -505,23 +506,21 @@ public class NfsSecondaryStorageResource extends ServerResourceBase implements S if (inSystemVM == null || "true".equalsIgnoreCase(inSystemVM)) { _inSystemVM = true; _localgw = (String)params.get("localgw"); - if (_localgw != null) { //can only happen inside service vm - _eth1mask = (String)params.get("eth1mask"); - String internalDns1 = (String)params.get("dns1"); - String internalDns2 = (String)params.get("dns2"); + if (_localgw != null) { // can only happen inside service vm + String mgmtHost = (String) params.get("host"); + addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, mgmtHost); - if (internalDns1 == null) { - s_logger.warn("No DNS entry found during configuration of NfsSecondaryStorage"); - } else { - addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, internalDns1); - } - - String mgmtHost = (String)params.get("host"); + String internalDns1 = (String) params.get("internaldns1"); + if (internalDns1 == null) { + s_logger.warn("No DNS entry found during configuration of NfsSecondaryStorage"); + } else { + addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, internalDns1); + } - addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, mgmtHost); - if (internalDns2 != null) { - addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, internalDns2); - } + String internalDns2 = (String) params.get("internaldns2"); + if (internalDns2 != null) { + addRouteToInternalIpOrCidr(_localgw, _eth1ip, _eth1mask, internalDns2); + } } String useSsl = (String)params.get("sslcopy"); 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 982b9e807c8..40ad1d4f690 100755 --- a/patches/systemvm/debian/config/etc/init.d/cloud-early-config +++ b/patches/systemvm/debian/config/etc/init.d/cloud-early-config @@ -203,10 +203,21 @@ setup_common() { hostname $NAME #Nameserver + if [ -n "$internalNS1" ] + then + echo "nameserver $internalNS1" > /etc/dnsmasq-resolv.conf + echo "nameserver $internalNS1" > /etc/resolv.conf + fi + + if [ -n "$internalNS2" ] + then + echo "nameserver $internalNS2" >> /etc/dnsmasq-resolv.conf + echo "nameserver $internalNS2" >> /etc/resolv.conf + fi if [ -n "$NS1" ] then - echo "nameserver $NS1" > /etc/dnsmasq-resolv.conf - echo "nameserver $NS1" > /etc/resolv.conf + echo "nameserver $NS1" >> /etc/dnsmasq-resolv.conf + echo "nameserver $NS1" >> /etc/resolv.conf fi if [ -n "$NS2" ] @@ -453,6 +464,12 @@ for i in $CMDLINE eth2mask) ETH2_MASK=$VALUE ;; + internaldns1) + internalNS1=$VALUE + ;; + internaldns2) + internalNS2=$VALUE + ;; dns1) NS1=$VALUE ;; diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java index 1d0fbf57c6c..f08dfd8e006 100644 --- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java +++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java @@ -1310,10 +1310,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx if (nic.isDefaultNic()) { buf.append(" gateway=").append(nic.getGateway()); - buf.append(" dns1=").append(nic.getDns1()); - if (nic.getDns2() != null) { - buf.append(" dns2=").append(nic.getDns2()); - } } if (nic.getTrafficType() == TrafficType.Management) { @@ -1329,7 +1325,16 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx if (externalDhcp) { buf.append(" bootproto=dhcp"); } - + DataCenterVO dc = _dcDao.findById(profile.getVirtualMachine().getDataCenterId()); + buf.append(" internaldns1=").append(dc.getInternalDns1()); + if (dc.getInternalDns2() != null) { + buf.append(" internaldns2=").append(dc.getInternalDns2()); + } + buf.append(" dns1=").append(dc.getDns1()); + if (dc.getDns2() != null) { + buf.append(" dns2=").append(dc.getDns2()); + } + String bootArgs = buf.toString(); if (s_logger.isDebugEnabled()) { s_logger.debug("Boot Args for " + profile + ": " + bootArgs); diff --git a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java index fad19f75d5c..e7caa4ca1db 100644 --- a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java +++ b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java @@ -959,7 +959,6 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V if (NetUtils.isValidCIDR(mgmt_cidr)) { buf.append(" mgmtcidr=").append(mgmt_cidr); } - buf.append(" localgw=").append(dest.getPod().getGateway()); buf.append(" private.network.device=").append("eth").append(deviceId); } else if (nic.getTrafficType() == TrafficType.Public) { @@ -973,9 +972,13 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V } DataCenterVO dc = _dcDao.findById(profile.getVirtualMachine().getDataCenterId()); - buf.append(" dns1=").append(dc.getInternalDns1()); + buf.append(" internaldns1=").append(dc.getInternalDns1()); if (dc.getInternalDns2() != null) { - buf.append(" dns2=").append(dc.getInternalDns2()); + buf.append(" internaldns2=").append(dc.getInternalDns2()); + } + buf.append(" dns1=").append(dc.getDns1()); + if (dc.getDns2() != null) { + buf.append(" dns2=").append(dc.getDns2()); } String bootArgs = buf.toString();