class PoiseService::Resources::PoiseServiceTest::Provider
Provider
for `poise_service_test`.
@see Resource
@provides poise_service_test
Constants
- SERVICE_SCRIPT
Public Instance Methods
action_run()
click to toggle source
`run` action for `poise_service_test`. Create all test services.
@return [void]
# File lib/poise_service/resources/poise_service_test.rb, line 88 def action_run notifying_block do create_script create_noterm_script create_user create_tests end end
Private Instance Methods
create_noterm_script()
click to toggle source
# File lib/poise_service/resources/poise_service_test.rb, line 121 def create_noterm_script file '/usr/bin/poise_test_noterm' do owner 'root' group 'root' mode '755' content <<-EOH #!/opt/chef/embedded/bin/ruby trap('HUP', 'IGNORE') trap('TERM', 'IGNORE') #{SERVICE_SCRIPT} while true begin server.start rescue Exception rescue StandardError end end EOH end end
create_script()
click to toggle source
# File lib/poise_service/resources/poise_service_test.rb, line 99 def create_script file '/usr/bin/poise_test' do owner 'root' group 'root' mode '755' content <<-EOH #!/opt/chef/embedded/bin/ruby #{SERVICE_SCRIPT} def load_file FILE_DATA.replace(IO.read(ARGV[1])) end if ARGV[1] load_file trap('HUP') do load_file end end server.start EOH end end
create_tests()
click to toggle source
# File lib/poise_service/resources/poise_service_test.rb, line 148 def create_tests poise_service "poise_test_#{new_resource.name}" do if new_resource.service_provider provider new_resource.service_provider options new_resource.service_provider, new_resource.service_options if new_resource.service_options end command "/usr/bin/poise_test #{new_resource.base_port}" end poise_service "poise_test_#{new_resource.name}_params" do if new_resource.service_provider provider new_resource.service_provider options new_resource.service_provider, new_resource.service_options if new_resource.service_options end command "/usr/bin/poise_test #{new_resource.base_port + 1}" environment POISE_ENV: new_resource.name user 'poise' end poise_service "poise_test_#{new_resource.name}_noterm" do if new_resource.service_provider provider new_resource.service_provider options new_resource.service_provider, new_resource.service_options if new_resource.service_options end action [:enable, :disable] command "/usr/bin/poise_test_noterm #{new_resource.base_port + 2}" stop_signal 'kill' end {'restart' => 3, 'reload' => 4}.each do |action, port| # Stop it before writing the file so we always start with first. poise_service "poise_test_#{new_resource.name}_#{action} stop" do if new_resource.service_provider provider new_resource.service_provider options new_resource.service_provider, new_resource.service_options if new_resource.service_options end action(:disable) service_name "poise_test_#{new_resource.name}_#{action}" end # Write the content to the read on service launch. file "/etc/poise_test_#{new_resource.name}_#{action}" do content 'first' end # Launch the service, reading in first. poise_service "poise_test_#{new_resource.name}_#{action}" do if new_resource.service_provider provider new_resource.service_provider options new_resource.service_provider, new_resource.service_options if new_resource.service_options end command "/usr/bin/poise_test #{new_resource.base_port + port} /etc/poise_test_#{new_resource.name}_#{action}" end # Rewrite the file to second, restart/reload to trigger an update. file "/etc/poise_test_#{new_resource.name}_#{action} again" do path "/etc/poise_test_#{new_resource.name}_#{action}" content 'second' notifies action.to_sym, "poise_service[poise_test_#{new_resource.name}_#{action}]" end end # Test the #pid accessor. ruby_block "/tmp/poise_test_#{new_resource.name}_pid" do block do pid = resources("poise_service[poise_test_#{new_resource.name}]").pid IO.write("/tmp/poise_test_#{new_resource.name}_pid", pid.to_s) end end # Test changing the service definition itself. poise_service "poise_test_#{new_resource.name}_change" do if new_resource.service_provider provider new_resource.service_provider options new_resource.service_provider, new_resource.service_options if new_resource.service_options end command "/usr/bin/poise_test #{new_resource.base_port + 5}" end poise_service "poise_test_#{new_resource.name}_change_second" do service_name "poise_test_#{new_resource.name}_change" if new_resource.service_provider provider new_resource.service_provider options new_resource.service_provider, new_resource.service_options if new_resource.service_options end command "/usr/bin/poise_test #{new_resource.base_port + 6}" end end
create_user()
click to toggle source
# File lib/poise_service/resources/poise_service_test.rb, line 142 def create_user poise_service_user 'poise' do home '/tmp' end end