Skip to content

Commit f9e7094

Browse files
bvbharatAbhinandan Prateek
authored andcommitted
Cloudstack-2644 [Multiple_IP_Ranges] user data service on VR does not work in case of multiple subnets Cloudstack-2953 [Multiple_IP_Ranges] VM does not get the public key from VR incase of multiple subnets per vlan Also removed some unused code and fixed the an error in the dnsmasq config function
Signed-off-by: Abhinandan Prateek <aprateek@apache.org>
1 parent 7b6b8d7 commit f9e7094

5 files changed

Lines changed: 14 additions & 40 deletions

File tree

patches/systemvm/debian/config/etc/init.d/cloud-early-config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,8 @@ setup_dnsmasq() {
540540
NS6=${NS6%?}
541541
[ $ETH0_IP ] && echo "dhcp-option=6,$NS" >> /etc/dnsmasq.conf
542542
[ $ETH0_IP6 ] && echo "dhcp-option=option6:dns-server,$NS6" >> /etc/dnsmasq.conf
543+
#adding the name data-server to the /etc/hosts for allowing the access to user-data service and ssh-key reset in every subnet.
544+
echo "$ETH0_IP data-server" >> /etc/hosts
543545
}
544546

545547
setup_sshd(){

server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3430,7 +3430,7 @@ private void createDhcpEntryCommand(VirtualRouter router, UserVm vm, NicVO nic,
34303430

34313431
private void configDnsMasq(VirtualRouter router, Network network, Commands cmds) {
34323432
DataCenterVO dcVo = _dcDao.findById(router.getDataCenterId());
3433-
List<NicIpAliasVO> ipAliasVOList = _nicIpAliasDao.getAliasIpForVm(router.getId());
3433+
List<NicIpAliasVO> ipAliasVOList = _nicIpAliasDao.listByNetworkIdAndState(network.getId(), NicIpAlias.state.active);
34343434
List<DnsmasqTO> ipList = new ArrayList<DnsmasqTO>();
34353435

34363436
NicVO router_guest_nic = _nicDao.findByNtwkIdAndInstanceId(network.getId(), router.getId());
@@ -3444,6 +3444,7 @@ private void configDnsMasq(VirtualRouter router, Network network, Commands cmds)
34443444
for (NicIpAliasVO ipAliasVO : ipAliasVOList) {
34453445
DnsmasqTO dnsmasqTO = new DnsmasqTO(ipAliasVO.getIp4Address(), ipAliasVO.getGateway(), ipAliasVO.getNetmask(), ipAliasVO.getStartIpOfSubnet());
34463446
ipList.add(dnsmasqTO);
3447+
ipAliasVO.setVmId(router.getId());
34473448
}
34483449
DataCenterVO dcvo = _dcDao.findById(router.getDataCenterId());
34493450
DnsMasqConfigCommand dnsMasqConfigCmd = new DnsMasqConfigCommand(network.getNetworkDomain(),ipList, dcvo.getDns1(), dcvo.getDns2(), dcvo.getInternalDns1(), dcvo.getInternalDns2());

server/src/com/cloud/vm/dao/NicIpAliasDao.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,4 @@ NicIpAliasVO findByIp4AddressAndNetworkIdAndInstanceId(long networkId,
5757

5858
List<NicIpAliasVO> listByNetworkIdAndState(long networkId, NicIpAlias.state state);
5959

60-
List<NicIpAliasVO> listByNetworkIdAndAliasIpAndState(long networkId, String aliasIpOfSubnet, NicIpAlias.state state);
6160
}

server/src/com/cloud/vm/dao/NicIpAliasDaoImpl.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,6 @@ public List<NicIpAliasVO> listByNetworkIdAndState(long networkId, NicIpAlias.sta
9191
return listBy(sc);
9292
}
9393

94-
@Override
95-
public List<NicIpAliasVO> listByNetworkIdAndAliasIpAndState(long networkId, String aliasIpOfSubnet, NicIpAlias.state state) {
96-
SearchCriteria<NicIpAliasVO> sc = AllFieldsSearch.create();
97-
sc.setParameters("network", networkId);
98-
sc.setParameters("address", aliasIpOfSubnet);
99-
sc.setParameters("state", state);
100-
return listBy(sc);
101-
}
102-
10394
@Override
10495
public List<NicIpAliasVO> listByNicIdAndVmid(long nicId, long vmId) {
10596
SearchCriteria<NicIpAliasVO> sc = AllFieldsSearch.create();

setup/bindir/cloud-set-guest-sshkey.in

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,37 +26,18 @@
2626
# Modify this line to specify the user (default is root)
2727
user=root
2828

29+
SSHKEY_SERVER_IP=$(nslookup data-server | grep Server | awk '{print $2}')
30+
logger -t "cloud" "Sending request to ssh key server at $SSHKEY_SERVER_IP"
2931

32+
publickey=$(wget -t 3 -T 20 -O - http://data-server/latest/public-keys 2>/dev/null)
3033

31-
# Add your DHCP lease folders here
32-
DHCP_FOLDERS="/var/lib/dhclient/* /var/lib/dhcp3/*"
33-
keys_received=0
34-
file_count=0
35-
36-
for DHCP_FILE in $DHCP_FOLDERS
37-
do
38-
if [ -f $DHCP_FILE ]
39-
then
40-
file_count=$((file_count+1))
41-
SSHKEY_SERVER_IP=$(grep dhcp-server-identifier $DHCP_FILE | tail -1 | awk '{print $NF}' | tr -d '\;')
42-
43-
if [ -n "$SSHKEY_SERVER_IP" ]
44-
then
45-
logger -t "cloud" "Sending request to ssh key server at $SSHKEY_SERVER_IP"
46-
47-
publickey=$(wget -t 3 -T 20 -O - http://$SSHKEY_SERVER_IP/latest/public-keys 2>/dev/null)
48-
49-
if [ $? -eq 0 ]
50-
then
51-
logger -t "cloud" "Got response from server at $SSHKEY_SERVER_IP"
52-
keys_received=1
53-
break
54-
fi
55-
else
56-
logger -t "cloud" "Could not find ssh key server IP in $DHCP_FILE"
57-
fi
58-
fi
59-
done
34+
if [ $? -eq 0 ]
35+
then
36+
logger -t "cloud" "Got response from server at $SSHKEY_SERVER_IP"
37+
keys_received=1
38+
else
39+
logger -t "cloud" "Could not find ssh key server IP in $DHCP_FILE"
40+
fi
6041

6142
# did we find the keys anywhere?
6243
if [ "$keys_received" == "0" ]

0 commit comments

Comments
 (0)