summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Wrock <matt@mattwrock.com>2016-06-23 15:10:55 -0700
committerMatt Wrock <matt@mattwrock.com>2016-06-23 15:10:55 -0700
commitfbd47fb65265ebbe0cc536cc8ab087a5775b08b3 (patch)
tree47dfd8974560f4617478e5670e2190a659e3d4e6
parent72ac27e97e8d2b3540a637f2833a902e6cb4ef37 (diff)
downloadchef-fbd47fb65265ebbe0cc536cc8ab087a5775b08b3.tar.gz
turn off fips with an empty environment var
-rw-r--r--chef-config/lib/chef-config/config.rb11
-rw-r--r--chef-config/spec/unit/config_spec.rb10
2 files changed, 20 insertions, 1 deletions
diff --git a/chef-config/lib/chef-config/config.rb b/chef-config/lib/chef-config/config.rb
index 568467456f..094c8641a3 100644
--- a/chef-config/lib/chef-config/config.rb
+++ b/chef-config/lib/chef-config/config.rb
@@ -519,7 +519,16 @@ module ChefConfig
# Set to true if Chef is to set OpenSSL to run in FIPS mode
default(:fips) do
- !ENV["CHEF_FIPS"].nil? || ChefConfig.fips?
+ # CHEF_FIPS is used in testing to override checking for system level
+ # enablement. There are 3 possible values that this variable may have:
+ # nil - no override and the system will be checked
+ # empty - FIPS is NOT enabled
+ # a non empty value - FIPS is enabled
+ if ENV["CHEF_FIPS"] == ""
+ false
+ else
+ !ENV["CHEF_FIPS"].nil? || ChefConfig.fips?
+ end
end
# Initialize openssl
diff --git a/chef-config/spec/unit/config_spec.rb b/chef-config/spec/unit/config_spec.rb
index f09dbb517a..0ddb56cf0d 100644
--- a/chef-config/spec/unit/config_spec.rb
+++ b/chef-config/spec/unit/config_spec.rb
@@ -186,6 +186,16 @@ RSpec.describe ChefConfig::Config do
expect(ChefConfig::Config[:fips]).to eq(false)
end
+ context "when ENV['CHEF_FIPS'] is empty" do
+ before do
+ ENV["CHEF_FIPS"] = ""
+ end
+
+ it "returns false" do
+ expect(ChefConfig::Config[:fips]).to eq(false)
+ end
+ end
+
context "when ENV['CHEF_FIPS'] is set" do
before do
ENV["CHEF_FIPS"] = "1"