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

Class CsDhcp

systemvm/debian/opt/cloud/bin/cs/CsDhcp.py:34–244  ·  view source on GitHub ↗

Manage dhcp entries

Source from the content-addressed store, hash-verified

32
33
34class CsDhcp(CsDataBag):
35 """ Manage dhcp entries """
36
37 def process(self):
38 self.hosts = {}
39 self.changed = []
40 self.devinfo = CsHelper.get_device_info()
41 self.preseed()
42 self.dhcp_hosts = CsFile(DHCP_HOSTS)
43 self.dhcp_opts = CsFile(DHCP_OPTS)
44 self.conf = CsFile(CLOUD_CONF)
45 self.dhcp_leases = CsFile(LEASES)
46
47 self.dhcp_hosts.repopulate()
48 self.dhcp_opts.repopulate()
49
50 for item in self.dbag:
51 if item == "id":
52 continue
53 if not self.dbag[item]['remove']:
54 self.add(self.dbag[item])
55
56 self.configure_server()
57
58 restart_dnsmasq = False
59 need_delete_leases = False
60
61 if self.conf.commit():
62 restart_dnsmasq = True
63 need_delete_leases = True
64
65 if self.dhcp_hosts.commit():
66 need_delete_leases = True
67
68 if self.dhcp_leases.commit():
69 need_delete_leases = True
70
71 self.dhcp_opts.commit()
72
73 if need_delete_leases:
74 self.delete_leases()
75 self.write_hosts()
76
77 if not self.cl.is_redundant() or self.cl.is_primary():
78 if restart_dnsmasq:
79 CsHelper.service("dnsmasq", "restart")
80 else:
81 CsHelper.start_if_stopped("dnsmasq")
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']

Callers 2

mainFunction · 0.90
test_initMethod · 0.90

Calls

no outgoing calls

Tested by 1

test_initMethod · 0.72