MCPcopy Create free account
hub / github.com/apache/cloudstack / configure_server

Method configure_server

systemvm/debian/opt/cloud/bin/cs/CsDhcp.py:84–158  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

82 CsHelper.service("dnsmasq", "reload")
83
84 def configure_server(self):
85 self.conf.add("bind-interfaces", 0)
86 idx = 0
87 listen_address = ["127.0.0.1"]
88 for i in self.devinfo:
89 if not i['dnsmasq']:
90 continue
91 device = i['dev']
92 ip = i['ip'].split('/')[0]
93 gn = CsGuestNetwork(device, self.config)
94 # Gateway
95 gateway = ''
96 if self.config.is_vpc():
97 gateway = gn.get_gateway()
98 else:
99 gateway = i['gateway']
100 sline = "dhcp-range=set:interface-%s-%s" % (device, idx)
101 if self.cl.is_redundant():
102 line = "dhcp-range=set:interface-%s-%s,%s,static" % (device, idx, gateway)
103 else:
104 line = "dhcp-range=set:interface-%s-%s,%s,static" % (device, idx, ip)
105 self.conf.search(sline, line)
106 sline = "dhcp-option=tag:interface-%s-%s,15" % (device, idx)
107 line = "dhcp-option=tag:interface-%s-%s,15,%s" % (device, idx, gn.get_domain())
108 self.conf.search(sline, line)
109 # DNS search order
110 if gn.get_dns() and device:
111 sline = "dhcp-option=tag:interface-%s-%s,6" % (device, idx)
112 dns_list = [x for x in gn.get_dns() if x]
113 if self.config.is_vpc() and not gn.is_vr_guest_gateway():
114 if gateway in dns_list:
115 dns_list.remove(gateway)
116 if gn.data['router_guest_ip'] != ip:
117 dns_list.insert(0, ip)
118 elif self.config.is_dhcp() and not self.config.use_extdns():
119 guest_ip = self.config.address().get_guest_ip()
120 if guest_ip and guest_ip in dns_list and ip not in dns_list:
121 # Replace the default guest IP in VR with the ip in additional IP ranges, if shared network has multiple IP ranges.
122 dns_list.remove(guest_ip)
123 dns_list.insert(0, ip)
124 line = "dhcp-option=tag:interface-%s-%s,6,%s" % (device, idx, ','.join(dns_list))
125 self.conf.search(sline, line)
126 if gateway != '0.0.0.0':
127 sline = "dhcp-option=tag:interface-%s-%s,3," % (device, idx)
128 line = "dhcp-option=tag:interface-%s-%s,3,%s" % (device, idx, gateway)
129 self.conf.search(sline, line)
130
131 sline = "dhcp-option=%s,26" % device
132 line = "dhcp-option=%s,26,%s" % (device, i['mtu'])
133 self.conf.search(sline, line)
134
135 # Netmask
136 netmask = ''
137 if self.config.is_vpc():
138 netmask = gn.get_netmask()
139 else:
140 netmask = str(i['network'].netmask)
141 sline = "dhcp-option=tag:interface-%s-%s,1," % (device, idx)

Callers 1

processMethod · 0.95

Calls 15

get_gatewayMethod · 0.95
get_domainMethod · 0.95
get_dnsMethod · 0.95
is_vr_guest_gatewayMethod · 0.95
get_netmaskMethod · 0.95
add_hostMethod · 0.95
CsGuestNetworkClass · 0.90
is_vpcMethod · 0.80
is_redundantMethod · 0.80
is_dhcpMethod · 0.80
use_extdnsMethod · 0.80
get_guest_ipMethod · 0.80

Tested by

no test coverage detected