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 0dcd5710664..b215271bfef 100755 --- a/patches/systemvm/debian/config/etc/init.d/cloud-early-config +++ b/patches/systemvm/debian/config/etc/init.d/cloud-early-config @@ -540,6 +540,8 @@ setup_dnsmasq() { NS6=${NS6%?} [ $ETH0_IP ] && echo "dhcp-option=6,$NS" >> /etc/dnsmasq.conf [ $ETH0_IP6 ] && echo "dhcp-option=option6:dns-server,$NS6" >> /etc/dnsmasq.conf +#adding the name data-server to the /etc/hosts for allowing the access to user-data service and ssh-key reset in every subnet. + echo "$ETH0_IP data-server" >> /etc/hosts } setup_sshd(){ diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 2e75277ab72..c9dee9c933e 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -3430,7 +3430,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V private void configDnsMasq(VirtualRouter router, Network network, Commands cmds) { DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId()); - List ipAliasVOList = _nicIpAliasDao.getAliasIpForVm(router.getId()); + List ipAliasVOList = _nicIpAliasDao.listByNetworkIdAndState(network.getId(), NicIpAlias.state.active); List ipList = new ArrayList(); NicVO router_guest_nic = _nicDao.findByNtwkIdAndInstanceId(network.getId(), router.getId()); @@ -3444,6 +3444,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V for (NicIpAliasVO ipAliasVO : ipAliasVOList) { DnsmasqTO dnsmasqTO = new DnsmasqTO(ipAliasVO.getIp4Address(), ipAliasVO.getGateway(), ipAliasVO.getNetmask(), ipAliasVO.getStartIpOfSubnet()); ipList.add(dnsmasqTO); + ipAliasVO.setVmId(router.getId()); } DataCenterVO dcvo = _dcDao.findById(router.getDataCenterId()); DnsMasqConfigCommand dnsMasqConfigCmd = new DnsMasqConfigCommand(network.getNetworkDomain(),ipList, dcvo.getDns1(), dcvo.getDns2(), dcvo.getInternalDns1(), dcvo.getInternalDns2()); diff --git a/server/src/com/cloud/vm/dao/NicIpAliasDao.java b/server/src/com/cloud/vm/dao/NicIpAliasDao.java index f1e4b8ed66e..2a0da9221c7 100644 --- a/server/src/com/cloud/vm/dao/NicIpAliasDao.java +++ b/server/src/com/cloud/vm/dao/NicIpAliasDao.java @@ -57,5 +57,4 @@ public interface NicIpAliasDao extends GenericDao { List listByNetworkIdAndState(long networkId, NicIpAlias.state state); - List listByNetworkIdAndAliasIpAndState(long networkId, String aliasIpOfSubnet, NicIpAlias.state state); } \ No newline at end of file diff --git a/server/src/com/cloud/vm/dao/NicIpAliasDaoImpl.java b/server/src/com/cloud/vm/dao/NicIpAliasDaoImpl.java index e6c52a2ca24..2cd8a2f3aa7 100644 --- a/server/src/com/cloud/vm/dao/NicIpAliasDaoImpl.java +++ b/server/src/com/cloud/vm/dao/NicIpAliasDaoImpl.java @@ -91,15 +91,6 @@ public class NicIpAliasDaoImpl extends GenericDaoBase implem return listBy(sc); } - @Override - public List listByNetworkIdAndAliasIpAndState(long networkId, String aliasIpOfSubnet, NicIpAlias.state state) { - SearchCriteria sc = AllFieldsSearch.create(); - sc.setParameters("network", networkId); - sc.setParameters("address", aliasIpOfSubnet); - sc.setParameters("state", state); - return listBy(sc); - } - @Override public List listByNicIdAndVmid(long nicId, long vmId) { SearchCriteria sc = AllFieldsSearch.create(); diff --git a/setup/bindir/cloud-set-guest-sshkey.in b/setup/bindir/cloud-set-guest-sshkey.in index f3f02b15fb0..9436b03eabd 100755 --- a/setup/bindir/cloud-set-guest-sshkey.in +++ b/setup/bindir/cloud-set-guest-sshkey.in @@ -26,37 +26,18 @@ # Modify this line to specify the user (default is root) user=root +SSHKEY_SERVER_IP=$(nslookup data-server | grep Server | awk '{print $2}') +logger -t "cloud" "Sending request to ssh key server at $SSHKEY_SERVER_IP" +publickey=$(wget -t 3 -T 20 -O - http://data-server/latest/public-keys 2>/dev/null) -# Add your DHCP lease folders here -DHCP_FOLDERS="/var/lib/dhclient/* /var/lib/dhcp3/*" -keys_received=0 -file_count=0 - -for DHCP_FILE in $DHCP_FOLDERS -do - if [ -f $DHCP_FILE ] - then - file_count=$((file_count+1)) - SSHKEY_SERVER_IP=$(grep dhcp-server-identifier $DHCP_FILE | tail -1 | awk '{print $NF}' | tr -d '\;') - - if [ -n "$SSHKEY_SERVER_IP" ] - then - logger -t "cloud" "Sending request to ssh key server at $SSHKEY_SERVER_IP" - - publickey=$(wget -t 3 -T 20 -O - http://$SSHKEY_SERVER_IP/latest/public-keys 2>/dev/null) - - if [ $? -eq 0 ] - then - logger -t "cloud" "Got response from server at $SSHKEY_SERVER_IP" - keys_received=1 - break - fi - else - logger -t "cloud" "Could not find ssh key server IP in $DHCP_FILE" - fi - fi -done +if [ $? -eq 0 ] +then + logger -t "cloud" "Got response from server at $SSHKEY_SERVER_IP" + keys_received=1 +else + logger -t "cloud" "Could not find ssh key server IP in $DHCP_FILE" +fi # did we find the keys anywhere? if [ "$keys_received" == "0" ]