package 'dnsmasq'

%w(dnsmasq resolvconf systemd-resolved).each do |s|
  service s do
    action :nothing
  end
end

case run_command('grep VERSION_ID /etc/os-release | awk -F\" \'{print $2}\'').stdout.chomp
when "24.04"
  execute "change link to /etc/resolv.conf" do
    command "ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf"
  end

  directory "/etc/systemd/resolved.conf.d/" do
    mode  "0755"
    owner "root"
    group "root"
  end

  template '/etc/systemd/resolved.conf.d/partial.conf' do
    owner 'root'
    group 'root'
    mode '644'

    source 'templates/etc/systemd/resolved.conf.d/partial.conf.erb'
    variables(dns: node['consul']['dns'])

    notifies :restart, 'service[systemd-resolved]', :immediately
  end

  remote_file "/etc/default/dnsmasq" do
    mode   "0644"
    owner  "root"
    group  "root"
  end

  remote_file '/etc/dnsmasq.conf' do
    owner 'root'
    group 'root'
    mode '644'

    notifies :restart, 'service[dnsmasq]', :immediately
  end

when "22.04"
  template '/etc/systemd/resolved.conf' do
    owner 'root'
    group 'root'
    mode '644'

    source 'templates/etc/systemd/resolved.conf.2204.erb'
    variables(dns: node['consul']['dns'])

    notifies :restart, 'service[systemd-resolved]', :immediately
  end

  remote_file '/etc/dnsmasq.conf' do
    owner 'root'
    group 'root'
    mode '644'

    source 'files/etc/dnsmasq.conf.2204'

    notifies :restart, 'service[dnsmasq]', :immediately
  end

when "20.04"
  template '/etc/systemd/resolved.conf' do
    owner 'root'
    group 'root'
    mode '644'

    variables(dns: node['consul']['dns'])

    notifies :restart, 'service[systemd-resolved]', :immediately
  end

  remote_file '/etc/dnsmasq.conf' do
    owner 'root'
    group 'root'
    mode '644'

    source 'files/etc/dnsmasq.conf.2004'

    notifies :restart, 'service[dnsmasq]', :immediately
  end

when "18.04"
  remote_file '/etc/systemd/resolved.conf' do
    owner 'root'
    group 'root'
    mode '644'

    notifies :restart, 'service[systemd-resolved]'
  end

  remote_file '/etc/dnsmasq.conf' do
    owner 'root'
    group 'root'
    mode '644'

    source 'files/etc/dnsmasq.conf.1804'

    notifies :reload, 'service[dnsmasq]'
  end

when '16.04'
  remote_file '/etc/resolvconf/resolv.conf.d/head' do
    owner 'root'
    group 'root'
    mode '644'

    notifies :restart, 'service[resolvconf]'
  end

  remote_file '/etc/dnsmasq.conf' do
    owner 'root'
    group 'root'
    mode '644'

    source 'files/etc/dnsmasq.conf.1804'

    notifies :reload, 'service[dnsmasq]'
  end
end