From 7eefa05a4430c33ed035cc8534a840ac4fbedf0e Mon Sep 17 00:00:00 2001 From: uu59 Date: Fri, 23 May 2014 15:16:49 +0900 Subject: [PATCH] Add specs --- app/models/fluentd/agent/fluentd.rb | 45 ++++++++++++++++------- app/models/fluentd/agent/td_agent.rb | 1 + spec/models/fluentd/agent_spec.rb | 54 ++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 13 deletions(-) diff --git a/app/models/fluentd/agent/fluentd.rb b/app/models/fluentd/agent/fluentd.rb index 660df49..7d0d9bf 100644 --- a/app/models/fluentd/agent/fluentd.rb +++ b/app/models/fluentd/agent/fluentd.rb @@ -2,6 +2,7 @@ class Fluentd class Agent class Fluentd include Common + def self.default_options { :pid_file => "/var/run/fluent.pid", @@ -21,7 +22,38 @@ class Fluentd def start return true if running? + actual_start + end + + def stop + return true unless running? + actual_stop + end + + def restart + return false unless running? + actual_restart + end + + private + + def actual_start spawn("bundle exec fluentd #{options_to_argv}") + wait_starting + end + + def actual_stop + if Process.kill(:TERM, pid) + File.unlink(pid_file) + true + end + end + + def actual_restart + Process.kill(:HUP, pid) + end + + def wait_starting begin timeout(wait_process_starting_seconds) do loop do @@ -34,19 +66,6 @@ class Fluentd false end end - - def stop - return true unless running? - if Process.kill(:TERM, pid) - File.unlink(pid_file) - true - end - end - - def restart - return false unless running? - Process.kill(:HUP, pid) - end end end end diff --git a/app/models/fluentd/agent/td_agent.rb b/app/models/fluentd/agent/td_agent.rb index 870e713..7f2bbbf 100644 --- a/app/models/fluentd/agent/td_agent.rb +++ b/app/models/fluentd/agent/td_agent.rb @@ -2,6 +2,7 @@ class Fluentd class Agent class TdAgent include Common + def self.default_options { :pid_file => "/var/run/td-agent/td-agent.pid", diff --git a/spec/models/fluentd/agent_spec.rb b/spec/models/fluentd/agent_spec.rb index 6ca743a..3498405 100644 --- a/spec/models/fluentd/agent_spec.rb +++ b/spec/models/fluentd/agent_spec.rb @@ -44,6 +44,60 @@ describe Fluentd::Agent do it { should include("-o #{instance.log_file}") } it { should include("--use-v1-config") } end + + describe "#start" do + before { instance.stub(:running?).and_return { running } } + + context "running" do + let(:running) { true } + after { instance.start } + + it { instance.should_not_receive(:actual_start) } + end + + context "not running" do + let(:running) { false } + after { instance.start } + + it { instance.should_receive(:actual_start) } + end + end + + describe "#stop" do + before { instance.stub(:running?).and_return { running } } + + context "running" do + let(:running) { true } + after { instance.stop } + + it { instance.should_receive(:actual_stop) } + end + + context "not running" do + let(:running) { false } + after { instance.stop } + + it { instance.should_not_receive(:actual_stop) } + end + end + + describe "#restart" do + before { instance.stub(:running?).and_return { running } } + + context "running" do + let(:running) { true } + after { instance.restart } + + it { instance.should_receive(:actual_restart) } + end + + context "not running" do + let(:running) { false } + after { instance.restart } + + it { instance.should_not_receive(:actual_restart) } + end + end end describe "TdAgent" do