diff options
-rw-r--r-- | Rakefile | 4 | ||||
-rw-r--r-- | cucumber.yml | 1 | ||||
-rw-r--r-- | features/chef-client/run_interval.feature | 2 | ||||
-rw-r--r-- | features/steps/run_client_steps.rb | 8 |
4 files changed, 10 insertions, 5 deletions
@@ -154,6 +154,10 @@ namespace :features do Cucumber::Rake::Task.new(:roles) do |t| t.profile = "client_roles" end + + Cucumber::Rake::Task.new(:run_interval) do |t| + t.profile = "client_run_interval" + end end Cucumber::Rake::Task.new(:search) do |t| diff --git a/cucumber.yml b/cucumber.yml index b99208b1f2..f3e96eff1b 100644 --- a/cucumber.yml +++ b/cucumber.yml @@ -14,6 +14,7 @@ api_nodes_show: --tags nodes_show --format pretty -r features/steps -r features/ api_nodes_update: --tags nodes_update --format pretty -r features/steps -r features/support features client: --tags client --format pretty -r features/steps -r features/support features client_roles: --tags client_roles --format pretty -r features/steps -r features/support features +client_run_interval: --tags client_run_interval --format pretty -r features/steps -r features/support features search: --tags search --format pretty -r features/steps -r features/support features language: --tags language --format pretty -r features/steps -r features/support features recipe_inclusion: --tags recipe_inclusion --format pretty -r features/steps -r features/support features diff --git a/features/chef-client/run_interval.feature b/features/chef-client/run_interval.feature index 89257cc4b3..dd8ef3e158 100644 --- a/features/chef-client/run_interval.feature +++ b/features/chef-client/run_interval.feature @@ -1,4 +1,4 @@ -@client +@client @client_run_interval Feature: Run chef-client at periodic intervals In order to ensure a system is always correctly configured As an Administrator diff --git a/features/steps/run_client_steps.rb b/features/steps/run_client_steps.rb index 4bb7b53346..c2169b942c 100644 --- a/features/steps/run_client_steps.rb +++ b/features/steps/run_client_steps.rb @@ -46,13 +46,13 @@ When /^I run the chef\-client with '(.+)' for '(.+)' seconds$/ do |args, run_for end When /^I run the chef\-client for '(.+)' seconds$/ do |run_for| - cid = fork { + cid = Process.fork { sleep run_for.to_i - client_pid = `ps ax | grep chef-client | grep -v grep | grep -v rake | grep -v cucumber | awk '{ print $1 }'` - Process.kill("INT", client_pid.to_i) + Process.kill("INT", /^(.+chef\-client.+\-i.*)$/.match(`ps -ef`).to_s.split[1].to_i) + exit } When 'I run the chef-client' - Process.waitpid2(cid) + Process.wait2(cid) end When /^I run the chef\-client at log level '(.+)'$/ do |log_level| |