| 158 | self.conf.search(sline, line) |
| 159 | |
| 160 | def delete_leases(self): |
| 161 | macs_dhcphosts = [] |
| 162 | try: |
| 163 | logging.info("Attempting to delete entries from dnsmasq.leases file for VMs which are not on dhcphosts file") |
| 164 | for host in open(DHCP_HOSTS): |
| 165 | macs_dhcphosts.append(host.split(',')[0]) |
| 166 | |
| 167 | removed = 0 |
| 168 | for leaseline in open(LEASES): |
| 169 | lease = leaseline.split(' ') |
| 170 | mac = lease[1] |
| 171 | ip = lease[2] |
| 172 | if mac not in macs_dhcphosts: |
| 173 | cmd = "dhcp_release $(ip route get %s | grep eth | head -1 | awk '{print $3}') %s %s" % (ip, ip, mac) |
| 174 | logging.info(cmd) |
| 175 | CsHelper.execute(cmd) |
| 176 | removed = removed + 1 |
| 177 | self.del_host(ip) |
| 178 | logging.info("Deleted %s entries from dnsmasq.leases file" % str(removed)) |
| 179 | except Exception as e: |
| 180 | logging.error("Caught error while trying to delete entries from dnsmasq.leases file: %s" % e) |
| 181 | |
| 182 | def preseed(self): |
| 183 | self.add_host("127.0.0.1", "localhost") |