mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
VR: fix dnmasq misconfiguration if there are multiple IP ranges in a shared network (#8741)
This commit is contained in:
parent
5f6acca049
commit
3b0e6ac90c
@ -127,7 +127,7 @@ class CsDhcp(CsDataBag):
|
||||
line = "dhcp-option=%s,26,%s" % (device, i['mtu'])
|
||||
self.conf.search(sline, line)
|
||||
|
||||
# Netmask
|
||||
# Netmask
|
||||
netmask = ''
|
||||
if self.config.is_vpc():
|
||||
netmask = gn.get_netmask()
|
||||
|
||||
@ -113,22 +113,20 @@ def bool_to_yn(val):
|
||||
def get_device_info():
|
||||
""" Returns all devices on system with their ipv4 ip netmask """
|
||||
list = []
|
||||
mtu = None
|
||||
for i in execute("ip addr show |grep -v secondary"):
|
||||
vals = i.strip().lstrip().rstrip().split()
|
||||
if re.search('[0-9]:',vals[0]):
|
||||
to={}
|
||||
to['mtu'] = vals[4]
|
||||
list.append(to)
|
||||
if re.search('[0-9]:', vals[0]):
|
||||
mtu = vals[4]
|
||||
|
||||
if vals[0] == "inet":
|
||||
if len(list) > 0:
|
||||
to = list.pop(len(list)-1)
|
||||
else:
|
||||
to={}
|
||||
to = {}
|
||||
to['ip'] = vals[1]
|
||||
to['dev'] = vals[-1]
|
||||
to['network'] = IPNetwork(to['ip'])
|
||||
to['dnsmasq'] = False
|
||||
if mtu:
|
||||
to['mtu'] = mtu
|
||||
list.append(to)
|
||||
return list
|
||||
|
||||
|
||||
@ -241,7 +241,7 @@ export default {
|
||||
return Promise.resolve()
|
||||
} else if (!this.ipV4Regex.test(value)) {
|
||||
return Promise.reject(this.$t('message.error.ipv4.address'))
|
||||
} else if (rule.networkType !== 'L2' && !this.isIp4InCidr(value, rule.cidr)) {
|
||||
} else if (rule.networkType === 'Isolated' && !this.isIp4InCidr(value, rule.cidr)) {
|
||||
const rangeIps = this.calculateCidrRange(rule.cidr)
|
||||
const message = `${this.$t('message.error.ip.range')} ${this.$t('label.from')} ${rangeIps[0]} ${this.$t('label.to')} ${rangeIps[1]}`
|
||||
return Promise.reject(message)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user