summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2020-04-13 10:15:51 -0700
committerGitHub <noreply@github.com>2020-04-13 10:15:51 -0700
commit3ece2fc010f46f3c9feb3be3d12b75175a83974f (patch)
treefb25cab5b8216e836a91d579d625ffd5037484cc
parentc08a282b8227e64256b53da06f52dff465451a76 (diff)
parent107a81b1e3fe779cc0fcb08d173e3ef3aa055f97 (diff)
downloadchef-3ece2fc010f46f3c9feb3be3d12b75175a83974f.tar.gz
Merge pull request #9650 from chef/bootstrap_version_fix
Fix knife bootstrap_version CLI option overriding config option
-rw-r--r--lib/chef/knife/bootstrap.rb5
-rw-r--r--lib/chef/knife/core/bootstrap_context.rb6
-rw-r--r--spec/unit/knife/core/bootstrap_context_spec.rb4
3 files changed, 8 insertions, 7 deletions
diff --git a/lib/chef/knife/bootstrap.rb b/lib/chef/knife/bootstrap.rb
index 1fa7c41d1c..3b49dd915b 100644
--- a/lib/chef/knife/bootstrap.rb
+++ b/lib/chef/knife/bootstrap.rb
@@ -1,6 +1,6 @@
#
# Author:: Adam Jacob (<adam@chef.io>)
-# Copyright:: Copyright 2010-2019, Chef Software Inc.
+# Copyright:: Copyright 2010-2020, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -149,8 +149,7 @@ class Chef
# client.rb content via chef-full/bootstrap_context
option :bootstrap_version,
long: "--bootstrap-version VERSION",
- description: "The version of #{Chef::Dist::PRODUCT} to install.",
- proc: lambda { |v| Chef::Config[:knife][:bootstrap_version] = v }
+ description: "The version of #{Chef::Dist::PRODUCT} to install."
option :channel,
long: "--channel CHANNEL",
diff --git a/lib/chef/knife/core/bootstrap_context.rb b/lib/chef/knife/core/bootstrap_context.rb
index 2b5887a7cf..10f432b868 100644
--- a/lib/chef/knife/core/bootstrap_context.rb
+++ b/lib/chef/knife/core/bootstrap_context.rb
@@ -1,6 +1,6 @@
#
# Author:: Daniel DeLeo (<dan@chef.io>)
-# Copyright:: Copyright 2011-2016, Chef Software, Inc.
+# Copyright:: Copyright 2011-2020, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -186,6 +186,8 @@ class Chef
s
end
+ # XXX: this reads values only out of the config file and is NOT merged with the CLI options, and it is most likely
+ # a bug to be using this accessor and we should be using config and not knife_config.
def knife_config
@chef_config.key?(:knife) ? @chef_config[:knife] : {}
end
@@ -195,7 +197,7 @@ class Chef
#
# @return [String] download version string
def version_to_install
- return knife_config[:bootstrap_version] if knife_config[:bootstrap_version]
+ return @config[:bootstrap_version] if @config[:bootstrap_version]
if @config[:channel] == "stable"
Chef::VERSION.split(".").first
diff --git a/spec/unit/knife/core/bootstrap_context_spec.rb b/spec/unit/knife/core/bootstrap_context_spec.rb
index 029dd90875..5533649f64 100644
--- a/spec/unit/knife/core/bootstrap_context_spec.rb
+++ b/spec/unit/knife/core/bootstrap_context_spec.rb
@@ -1,6 +1,6 @@
#
# Author:: Daniel DeLeo (<dan@chef.io>)
-# Copyright:: Copyright 2011-2016, Chef Software Inc.
+# Copyright:: Copyright 2011-2020, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -283,7 +283,7 @@ describe Chef::Knife::Core::BootstrapContext do
describe "#version_to_install" do
context "when bootstrap_version is provided" do
- let(:chef_config) { { knife: { bootstrap_version: "awesome" } } }
+ let(:config) { { bootstrap_version: "awesome" } }
it "returns bootstrap_version" do
expect(bootstrap_context.version_to_install).to eq "awesome"