diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2018-01-22 12:01:44 -0800 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2018-01-22 12:01:44 -0800 |
commit | dedb5670db29b7f6bedb037888d5a4b3bcd6ff83 (patch) | |
tree | 70f1a35bfb63f06a5eb47d9f009cc0b639e82b1f | |
parent | 1cc8f2db44d6e55591ee8f24fbed740bacf10cef (diff) | |
download | chef-lcg/windows-interval.tar.gz |
fail on interval runs on windowslcg/windows-interval
closes #4824
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r-- | lib/chef/application/client.rb | 12 | ||||
-rw-r--r-- | lib/chef/application/solo.rb | 12 | ||||
-rw-r--r-- | spec/unit/application/client_spec.rb | 6 | ||||
-rw-r--r-- | spec/unit/application/solo_spec.rb | 4 |
4 files changed, 23 insertions, 11 deletions
diff --git a/lib/chef/application/client.rb b/lib/chef/application/client.rb index f4a42ea1b0..f839ef25df 100644 --- a/lib/chef/application/client.rb +++ b/lib/chef/application/client.rb @@ -2,7 +2,7 @@ # Author:: AJ Christensen (<aj@chef.io) # Author:: Christopher Brown (<cb@chef.io>) # Author:: Mark Mzyk (mmzyk@chef.io) -# Copyright:: Copyright 2008-2016, Chef Software, Inc. +# Copyright:: Copyright 2008-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -362,8 +362,7 @@ class Chef::Application::Client < Chef::Application if Chef::Config[:interval] if Chef::Platform.windows? - Chef::Log.warn("Use of chef-client interval runs on Windows is discouraged. " + - "Please install chef-client as a Windows service or scheduled task instead.") + Chef::Application.fatal!(windows_interval_error_message) elsif !Chef::Config[:client_fork] Chef::Application.fatal!(unforked_interval_error_message) end @@ -513,6 +512,13 @@ class Chef::Application::Client < Chef::Application end end + def windows_interval_error_message + "Windows chef-client interval runs are disabled in Chef 14." + + "\nConfiguration settings:" + + "#{"\n interval = #{Chef::Config[:interval]} seconds" if Chef::Config[:interval]}" + + "\nPlease install chef-client as a Windows service or scheduled task instead." + end + def unforked_interval_error_message "Unforked chef-client interval runs are disabled in Chef 12." + "\nConfiguration settings:" + diff --git a/lib/chef/application/solo.rb b/lib/chef/application/solo.rb index 63d90f0e03..b255951e3f 100644 --- a/lib/chef/application/solo.rb +++ b/lib/chef/application/solo.rb @@ -1,7 +1,7 @@ # # Author:: AJ Christensen (<aj@chef.io>) # Author:: Mark Mzyk (mmzyk@chef.io) -# Copyright:: Copyright 2008-2018, Chef Software, Inc. +# Copyright:: Copyright 2008-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -263,8 +263,7 @@ class Chef::Application::Solo < Chef::Application if Chef::Config[:interval] if Chef::Platform.windows? - Chef::Log.warn("Use of chef-solo interval runs on Windows is discouraged. " + - "Please install chef-solo as a Windows service or scheduled task instead.") + Chef::Application.fatal!(windows_interval_error_message) elsif !Chef::Config[:client_fork] Chef::Application.fatal!(unforked_interval_error_message) end @@ -370,6 +369,13 @@ EOH end end + def windows_interval_error_message + "Windows chef-solo interval runs are disabled in Chef 14." + + "\nConfiguration settings:" + + "#{"\n interval = #{Chef::Config[:interval]} seconds" if Chef::Config[:interval]}" + + "\nPlease install chef-solo as a Windows service or scheduled task instead." + end + def unforked_interval_error_message "Unforked chef-solo interval runs are disabled in Chef 12." + "\nConfiguration settings:" + diff --git a/spec/unit/application/client_spec.rb b/spec/unit/application/client_spec.rb index 825a4e7aac..4f1558267e 100644 --- a/spec/unit/application/client_spec.rb +++ b/spec/unit/application/client_spec.rb @@ -1,6 +1,6 @@ # # Author:: AJ Christensen (<aj@junglist.gen.nz>) -# Copyright:: Copyright 2008-2016, Chef Software Inc. +# Copyright:: Copyright 2008-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -209,8 +209,8 @@ Enable chef-client interval runs by setting `:client_fork = true` in your config allow(ChefConfig).to receive(:windows?).and_return(true) end - it "should not terminate" do - expect(Chef::Application).not_to receive(:fatal!) + it "should terminate" do + expect(Chef::Application).to receive(:fatal!) app.reconfigure end end diff --git a/spec/unit/application/solo_spec.rb b/spec/unit/application/solo_spec.rb index 5b9dbeaafd..f613cd956d 100644 --- a/spec/unit/application/solo_spec.rb +++ b/spec/unit/application/solo_spec.rb @@ -69,10 +69,10 @@ describe Chef::Application::Solo do it "should terminate with message" do expect(Chef::Application).to receive(:fatal!).with( - "Unforked chef-client interval runs are disabled in Chef 12. + "Unforked chef-solo interval runs are disabled in Chef 12. Configuration settings: interval = 600 seconds -Enable chef-client interval runs by setting `:client_fork = true` in your config file or adding `--fork` to your command line options." +Enable chef-solo interval runs by setting `:client_fork = true` in your config file or adding `--fork` to your command line options." ) app.reconfigure end |