class Chef::Provider::Ifconfig::Debian
Constants
- INTERFACES_DOT_D_DIR
- INTERFACES_FILE
Public Class Methods
new(new_resource, run_context)
click to toggle source
Calls superclass method
Chef::Provider::Ifconfig.new
# File lib/chef/provider/ifconfig/debian.rb, line 32 def initialize(new_resource, run_context) super(new_resource, run_context) @config_template = %{ <% if new_resource.device %> <% if new_resource.onboot == "yes" %>auto <%= new_resource.device %><% end %> <% case new_resource.bootproto when "dhcp" %> iface <%= new_resource.device %> <%= new_resource.family %> dhcp <% when "bootp" %> iface <%= new_resource.device %> <%= new_resource.family %> bootp <% else %> iface <%= new_resource.device %> <%= new_resource.family %> static <% if new_resource.target %>address <%= new_resource.target %><% end %> <% if new_resource.mask %>netmask <%= new_resource.mask %><% end %> <% if new_resource.network %>network <%= new_resource.network %><% end %> <% if new_resource.bcast %>broadcast <%= new_resource.bcast %><% end %> <% if new_resource.metric %>metric <%= new_resource.metric %><% end %> <% if new_resource.hwaddr %>hwaddress <%= new_resource.hwaddr %><% end %> <% if new_resource.mtu %>mtu <%= new_resource.mtu %><% end %> <% end %> <% end %> } @config_path = "#{INTERFACES_DOT_D_DIR}/ifcfg-#{new_resource.device}" end
Public Instance Methods
generate_config()
click to toggle source
Calls superclass method
Chef::Provider::Ifconfig#generate_config
# File lib/chef/provider/ifconfig/debian.rb, line 57 def generate_config enforce_interfaces_dot_d_sanity super end
Protected Instance Methods
enforce_interfaces_dot_d_sanity()
click to toggle source
# File lib/chef/provider/ifconfig/debian.rb, line 64 def enforce_interfaces_dot_d_sanity # create /etc/network/interfaces.d via dir resource (to get reporting, etc) dir = Chef::Resource::Directory.new(INTERFACES_DOT_D_DIR, run_context) dir.run_action(:create) new_resource.updated_by_last_action(true) if dir.updated_by_last_action? # roll our own file_edit resource, this will not get reported until we have a file_edit resource interfaces_dot_d_for_regexp = INTERFACES_DOT_D_DIR.gsub(/\./, '\.') # escape dots for the regexp regexp = %r{^\s*source\s+#{interfaces_dot_d_for_regexp}/\*\s*$} return if ::File.exist?(INTERFACES_FILE) && regexp.match(IO.read(INTERFACES_FILE)) converge_by("modifying #{INTERFACES_FILE} to source #{INTERFACES_DOT_D_DIR}") do conf = Chef::Util::FileEdit.new(INTERFACES_FILE) conf.insert_line_if_no_match(regexp, "source #{INTERFACES_DOT_D_DIR}/*") conf.write_file end end