diff --git a/attributes/default.rb b/attributes/default.rb index e8210be..733e4cc 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -69,7 +69,8 @@ when 'suse' # :pragma-foodcritic: ~FC024 - won't fix this 'api_service' => 'openstack-ceilometer-api', 'client_packages' => ['python-ceilometerclient'], 'collector_packages' => ['openstack-ceilometer-collector'], - 'collector_service' => 'openstack-ceilometer-collector' + 'collector_service' => 'openstack-ceilometer-collector', + 'package_overrides' => '' } when 'fedora', 'redhat', 'centos' @@ -92,7 +93,8 @@ when 'fedora', 'redhat', 'centos' 'api_service' => 'openstack-ceilometer-api', 'client_packages' => ['python-ceilometerclient'], 'collector_packages' => ['openstack-ceilometer-collector'], - 'collector_service' => 'openstack-ceilometer-collector' + 'collector_service' => 'openstack-ceilometer-collector', + 'package_overrides' => '' } when 'ubuntu' @@ -114,6 +116,7 @@ when 'ubuntu' 'api_service' => 'ceilometer-api', 'client_packages' => ['python-ceilometerclient'], 'collector_packages' => ['ceilometer-collector', 'python-mysqldb'], - 'collector_service' => 'ceilometer-collector' + 'collector_service' => 'ceilometer-collector', + 'package_overrides' => "-o Dpkg::Options::='--force-confold' -o Dpkg::Options::='--force-confdef'" } end diff --git a/recipes/agent-central.rb b/recipes/agent-central.rb index fc8b659..0c0d467 100644 --- a/recipes/agent-central.rb +++ b/recipes/agent-central.rb @@ -23,9 +23,15 @@ include_recipe 'openstack-telemetry::common' platform = node['openstack']['telemetry']['platform'] platform['agent_central_packages'].each do |pkg| - package pkg + package pkg do + options platform['package_overrides'] + end end -service platform['agent_central_service'] do - action :start +service 'ceilometer-agent-central' do + service_name platform['agent_central_service'] + supports status: true, restart: true + subscribes :restart, "template[#{node['openstack']['telemetry']['conf']}]" + + action [:enable, :start] end diff --git a/recipes/agent-compute.rb b/recipes/agent-compute.rb index e7f510d..de43ef3 100644 --- a/recipes/agent-compute.rb +++ b/recipes/agent-compute.rb @@ -23,7 +23,9 @@ include_recipe 'openstack-telemetry::common' platform = node['openstack']['telemetry']['platform'] platform['agent_compute_packages'].each do |pkg| - package pkg + package pkg do + options platform['package_overrides'] + end end # temp fix for compute-agent init not installing properly ubuntu @@ -36,6 +38,10 @@ if node['platform'] == 'ubuntu' end end -service platform['agent_compute_service'] do - action :start +service 'ceilometer-agent-compute' do + service_name platform['agent_compute_service'] + supports status: true, restart: true + subscribes :restart, "template[#{node['openstack']['telemetry']['conf']}]" + + action [:enable, :start] end diff --git a/recipes/agent-notification.rb b/recipes/agent-notification.rb index 19e3c0a..0bda5fd 100644 --- a/recipes/agent-notification.rb +++ b/recipes/agent-notification.rb @@ -22,10 +22,15 @@ include_recipe 'openstack-telemetry::common' platform = node['openstack']['telemetry']['platform'] platform['agent_notification_packages'].each do |pkg| - package pkg + package pkg do + options platform['package_overrides'] + end end -service platform['agent_notification_service'] do +service 'ceilometer-agent-notification' do + service_name platform['agent_notification_service'] supports status: true, restart: true - action :start + subscribes :restart, "template[#{node['openstack']['telemetry']['conf']}]" + + action [:enable, :start] end diff --git a/recipes/alarm-evaluator.rb b/recipes/alarm-evaluator.rb index aa40394..a57741e 100644 --- a/recipes/alarm-evaluator.rb +++ b/recipes/alarm-evaluator.rb @@ -22,10 +22,15 @@ include_recipe 'openstack-telemetry::common' platform = node['openstack']['telemetry']['platform'] platform['alarm_evaluator_packages'].each do |pkg| - package pkg + package pkg do + options platform['package_overrides'] + end end -service platform['alarm_evaluator_service'] do +service 'ceilometer-agent-evaluator' do + service_name platform['alarm_evaluator_service'] supports status: true, restart: true - action :start + subscribes :restart, "template[#{node['openstack']['telemetry']['conf']}]" + + action [:enable, :start] end diff --git a/recipes/alarm-notifier.rb b/recipes/alarm-notifier.rb index 7b0644d..e839b45 100644 --- a/recipes/alarm-notifier.rb +++ b/recipes/alarm-notifier.rb @@ -22,10 +22,15 @@ include_recipe 'openstack-telemetry::common' platform = node['openstack']['telemetry']['platform'] platform['alarm_notifier_packages'].each do |pkg| - package pkg + package pkg do + options platform['package_overrides'] + end end -service platform['alarm_notifier_service'] do +service 'ceilometer-alarm-notifier' do + service_name platform['alarm_notifier_service'] supports status: true, restart: true - action :start + subscribes :restart, "template[#{node['openstack']['telemetry']['conf']}]" + + action [:enable, :start] end diff --git a/recipes/api.rb b/recipes/api.rb index 798b470..d8fcc45 100644 --- a/recipes/api.rb +++ b/recipes/api.rb @@ -30,9 +30,15 @@ end platform = node['openstack']['telemetry']['platform'] platform['api_packages'].each do |pkg| - package pkg + package pkg do + options platform['package_overrides'] + end end -service platform['api_service'] do - action :start +service 'ceilometer-api' do + service_name platform['api_service'] + supports status: true, restart: true + subscribes :restart, "template[#{node['openstack']['telemetry']['conf']}]" + + action [:enable, :start] end diff --git a/recipes/client.rb b/recipes/client.rb index dc91fec..9c6dce7 100644 --- a/recipes/client.rb +++ b/recipes/client.rb @@ -22,10 +22,10 @@ class ::Chef::Recipe # rubocop:disable Documentation include ::Openstack end -platform_options = node['openstack']['telemetry']['platform'] -platform_options['client_packages'].each do |pkg| +platform = node['openstack']['telemetry']['platform'] +platform['client_packages'].each do |pkg| package pkg do - options platform_options['package_overrides'] + options platform['package_overrides'] action :upgrade end diff --git a/recipes/collector.rb b/recipes/collector.rb index 4f7635f..e5adcb4 100644 --- a/recipes/collector.rb +++ b/recipes/collector.rb @@ -32,7 +32,9 @@ end platform = node['openstack']['telemetry']['platform'] platform['collector_packages'].each do |pkg| - package pkg + package pkg do + options platform['package_overrides'] + end end # temp fix for collector init not installing properly ubuntu @@ -45,6 +47,10 @@ if node['platform'] == 'ubuntu' end end -service platform['collector_service'] do - action :start +service 'ceilometer-collector' do + service_name platform['collector_service'] + supports status: true, restart: true + subscribes :restart, "template[#{node['openstack']['telemetry']['conf']}]" + + action [:enable, :start] end diff --git a/recipes/common.rb b/recipes/common.rb index bc27d21..fa4ff7e 100644 --- a/recipes/common.rb +++ b/recipes/common.rb @@ -38,7 +38,9 @@ platform["#{db_type}_python_packages"].each do |pkg| end platform['common_packages'].each do |pkg| - package pkg + package pkg do + options platform['package_overrides'] + end end mq_service_type = node['openstack']['mq']['telemetry']['service_type'] diff --git a/spec/agent-central_spec.rb b/spec/agent-central_spec.rb index 3b6fbd7..e028e1b 100644 --- a/spec/agent-central_spec.rb +++ b/spec/agent-central_spec.rb @@ -15,8 +15,15 @@ describe 'openstack-telemetry::agent-central' do expect(chef_run).to install_package 'ceilometer-agent-central' end - it 'starts agent-central service' do + it 'starts and enables the agent-central service' do + expect(chef_run).to enable_service('ceilometer-agent-central') expect(chef_run).to start_service('ceilometer-agent-central') end + + describe 'ceilometer-agent-central' do + it 'subscribes to its config file' do + expect(chef_run.service('ceilometer-agent-central')).to subscribe_to('template[/etc/ceilometer/ceilometer.conf]').delayed + end + end end end diff --git a/spec/agent-compute_spec.rb b/spec/agent-compute_spec.rb index d5f638c..5d3593e 100644 --- a/spec/agent-compute_spec.rb +++ b/spec/agent-compute_spec.rb @@ -15,8 +15,15 @@ describe 'openstack-telemetry::agent-compute' do expect(chef_run).to install_package 'ceilometer-agent-compute' end - it 'starts ceilometer-agent-compute service' do + it 'enables and starts the ceilometer-agent-compute service' do + expect(chef_run).to enable_service('ceilometer-agent-compute') expect(chef_run).to start_service('ceilometer-agent-compute') end + + describe 'ceilometer-agent-compute' do + it 'subscribes to its config file' do + expect(chef_run.service('ceilometer-agent-compute')).to subscribe_to('template[/etc/ceilometer/ceilometer.conf]').delayed + end + end end end diff --git a/spec/agent-notification_spec.rb b/spec/agent-notification_spec.rb index fa94933..8e8d7b2 100644 --- a/spec/agent-notification_spec.rb +++ b/spec/agent-notification_spec.rb @@ -15,8 +15,15 @@ describe 'openstack-telemetry::agent-notification' do expect(chef_run).to install_package 'ceilometer-agent-notification' end - it 'starts ceilometer-agent-notification service' do + it 'enables and starts ceilometer-agent-notification service' do + expect(chef_run).to enable_service('ceilometer-agent-notification') expect(chef_run).to start_service('ceilometer-agent-notification') end + + describe 'ceilometer-agent-notification' do + it 'subscribes to its config file' do + expect(chef_run.service('ceilometer-agent-notification')).to subscribe_to('template[/etc/ceilometer/ceilometer.conf]').delayed + end + end end end diff --git a/spec/alarm-evaluator_spec.rb b/spec/alarm-evaluator_spec.rb index 36a5b9b..3aac374 100644 --- a/spec/alarm-evaluator_spec.rb +++ b/spec/alarm-evaluator_spec.rb @@ -15,8 +15,15 @@ describe 'openstack-telemetry::alarm-evaluator' do expect(chef_run).to install_package 'ceilometer-alarm-evaluator' end - it 'starts alarm-evaluator service' do + it 'starts and enables the alarm-evaluator service' do + expect(chef_run).to enable_service('ceilometer-alarm-evaluator') expect(chef_run).to start_service('ceilometer-alarm-evaluator') end + + describe 'ceilometer-alarm-evaluator' do + it 'subscribes to its config file' do + expect(chef_run.service('ceilometer-alarm-evaluator')).to subscribe_to('template[/etc/ceilometer/ceilometer.conf]').delayed + end + end end end diff --git a/spec/alarm-notifier_spec.rb b/spec/alarm-notifier_spec.rb index 3ba19a8..9d5d4ee 100644 --- a/spec/alarm-notifier_spec.rb +++ b/spec/alarm-notifier_spec.rb @@ -15,8 +15,15 @@ describe 'openstack-telemetry::alarm-notifier' do expect(chef_run).to install_package 'ceilometer-alarm-notifier' end - it 'starts alarm-notifier service' do + it 'starts and enables the alarm-notifier service' do + expect(chef_run).to enable_service('ceilometer-alarm-notifier') expect(chef_run).to start_service('ceilometer-alarm-notifier') end + + describe 'ceilometer-alarm-notifier' do + it 'subscribes to its config file' do + expect(chef_run.service('ceilometer-alarm-notifier')).to subscribe_to('template[/etc/ceilometer/ceilometer.conf]').delayed + end + end end end diff --git a/spec/api_spec.rb b/spec/api_spec.rb index 60a9d14..0366eb4 100644 --- a/spec/api_spec.rb +++ b/spec/api_spec.rb @@ -19,12 +19,19 @@ describe 'openstack-telemetry::api' do ) end - it 'starts api service' do + it 'installs the api package' do + expect(chef_run).to install_package 'ceilometer-api' + end + + it 'enables and starts the api service' do + expect(chef_run).to enable_service('ceilometer-api') expect(chef_run).to start_service('ceilometer-api') end - it 'starts api service' do - expect(chef_run).to start_service('ceilometer-api') + describe 'ceilometer-api' do + it 'subscribes to its config file' do + expect(chef_run.service('ceilometer-api')).to subscribe_to('template[/etc/ceilometer/ceilometer.conf]').delayed + end end end end diff --git a/spec/collector_spec.rb b/spec/collector_spec.rb index ec639bd..0582949 100644 --- a/spec/collector_spec.rb +++ b/spec/collector_spec.rb @@ -11,6 +11,10 @@ describe 'openstack-telemetry::collector' do include_context 'telemetry-stubs' include_examples 'expect-runs-common-recipe' + it 'installs the collector package' do + expect(chef_run).to install_package 'ceilometer-collector' + end + it 'executes ceilometer dbsync' do command = 'ceilometer-dbsync --config-file /etc/ceilometer/ceilometer.conf' expect(chef_run).to run_execute command @@ -26,8 +30,15 @@ describe 'openstack-telemetry::collector' do expect(chef_run).to install_package('python-mysqldb') end - it 'starts collector service' do + it 'starts and enables the collector service' do + expect(chef_run).to enable_service('ceilometer-collector') expect(chef_run).to start_service('ceilometer-collector') end + + describe 'ceilometer-collector' do + it 'subscribes to its config file' do + expect(chef_run.service('ceilometer-collector')).to subscribe_to('template[/etc/ceilometer/ceilometer.conf]').delayed + end + end end end