# frozen_string_literal: true # set region based on the subnet Facter.add('region') do setcode do # use facts['networking']['ip']to find the promary IP address ip = Facter.value(:networking)['ip'] # subnet to region mapping subnet_to_region = { '198.18.17.0/24' => 'drw1' } require 'ipaddr' # Find the region for the IP region = 'lost' # default to 'lost' if no region matches subnet_to_region.each do |subnet, region_name| if IPAddr.new(subnet).include?(IPAddr.new(ip)) region = region_name break end end region end end