diff --git a/resources/libraries/ips_services.rb b/resources/libraries/ips_services.rb index 01d5e81..4e741f7 100644 --- a/resources/libraries/ips_services.rb +++ b/resources/libraries/ips_services.rb @@ -19,6 +19,21 @@ def ips_services end end + begin + file_services = JSON.parse(File.read('/etc/redborder/services.json')) + rescue Errno::ENOENT, JSON::ParserError => e + Chef::Log.warn("Error loading services from file: #{e.message}") + file_services = {} + end + + systemd_services = node.attributes['redborder']['systemdservices'] + systemd_services.each do |service_name, systemd_name| + sys_name = systemd_name.join(',') + if file_services.key?(sys_name) + ips_services[service_name] = file_services[sys_name] + end + end + ips_services end end diff --git a/resources/recipes/configure.rb b/resources/recipes/configure.rb index bca8fc4..1a2cdd5 100644 --- a/resources/recipes/configure.rb +++ b/resources/recipes/configure.rb @@ -240,7 +240,7 @@ if ips_services['snmp'] action :add else - actopm :remove + action :remove end end @@ -338,7 +338,7 @@ if ips_services['redborder-monitor'] && sensor_id > 0 action :add else - actio :remove + action :remove end end diff --git a/resources/recipes/prepare_system.rb b/resources/recipes/prepare_system.rb index cf04851..cbe3ff9 100644 --- a/resources/recipes/prepare_system.rb +++ b/resources/recipes/prepare_system.rb @@ -65,13 +65,15 @@ memory_services(sysmem_total) # Build service list for rbcli -services = node['redborder']['services'] || [] -systemd_services = node['redborder']['systemdservices'] || [] -service_enablement = {} +unless File.exist?('/etc/redborder/services.json') + services = node['redborder']['services'] || [] + systemd_services = node['redborder']['systemdservices'] || [] + service_enablement = {} -systemd_services.each do |service_name, systemd_name| - service_enablement[systemd_name.first] = services[service_name] -end + systemd_services.each do |service_name, systemd_name| + service_enablement[systemd_name.first] = services[service_name] + end -Chef::Log.info('Saving services enablement into /etc/redborder/services.json') -File.write('/etc/redborder/services.json', JSON.pretty_generate(service_enablement)) + Chef::Log.info('Saving services enablement into /etc/redborder/services.json') + File.write('/etc/redborder/services.json', JSON.pretty_generate(service_enablement)) +end