Revision 72fd0486
Added by Dmitri Dolguikh over 7 years ago
modules/dhcp_libvirt/dhcp_libvirt_main.rb | ||
---|---|---|
doc = REXML::Document.new xml = libvirt_network.dump_xml
|
||
REXML::XPath.each(doc, "//network/ip[not(@family) or @family='ipv4']/dhcp/host") do |e|
|
||
to_ret << Proxy::DHCP::Reservation.new(
|
||
:subnet => subnet,
|
||
:ip => e.attributes["ip"],
|
||
:mac => e.attributes["mac"],
|
||
:hostname => e.attributes["name"])
|
||
e.attributes["name"],
|
||
e.attributes["ip"],
|
||
e.attributes["mac"],
|
||
subnet,
|
||
:hostname => e.attributes["name"])
|
||
end
|
||
to_ret
|
||
rescue Exception => e
|
||
... | ... | |
leases = libvirt_network.dhcp_leases
|
||
leases.each do |element|
|
||
lease = Proxy::DHCP::Lease.new(
|
||
:subnet => subnet,
|
||
:ip => element['ipaddr'],
|
||
:mac => element['mac'],
|
||
:starts => Time.now.utc,
|
||
:ends => Time.at(element['expirytime'] || 0).utc,
|
||
:state => 'active'
|
||
nil,
|
||
element['ipaddr'],
|
||
element['mac'],
|
||
subnet,
|
||
Time.now.utc,
|
||
Time.at(element['expirytime'] || 0).utc,
|
||
'active'
|
||
)
|
||
service.add_lease(lease.subnet_address, lease)
|
||
end
|
Also available in: Unified diff
Fixes #18070 - add_record() checks for conflicts with leases now.