Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions lib/facter/util/linux/dhcp.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,26 @@ def dhcp(interface_name, interface_index, logger)
dhcp ||= search_dhclient_leases(interface_name)
dhcp ||= search_internal_leases(interface_name)
dhcp ||= search_with_dhcpcd_command(interface_name)
dhcp ||= search_wicked_leases(interface_name)
dhcp
end

private

def search_wicked_leases(interface_name)
path_candidate = "/var/lib/wicked/lease-#{interface_name}-dhcp-ipv4.xml"

return unless File.exist? path_candidate

@log.debug("Attempt to get DHCP for interface #{interface_name}, from #{path_candidate}")

require 'rexml/document'

xmlstring = File.open(path_candidate).read.gsub('ipv4:dhcp', 'ipv4_dhcp')
rex = REXML::Document.new xmlstring
rex.root.elements['/lease/ipv4_dhcp/server-id/'].text
end

def search_systemd_netif_leases(index, interface_name)
return if index.nil?

Expand Down
Loading