summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-02-11 19:19:19 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2015-02-11 19:19:19 -0800
commitee8e333ad7c23aa3b84d510c3804cf840620924a (patch)
treea93d1858b2496072aac6563980fbf99bd9c229ee
parent1aa9b128d22a21a39e6d7b7a833538ae3e15929d (diff)
downloadchef-lcg/1923.tar.gz
prepend bootstrap_ to all CLI argslcg/1923
also rename vault_item to bootstrap_vault_json
-rw-r--r--lib/chef/knife/bootstrap.rb18
-rw-r--r--lib/chef/knife/bootstrap/chef_vault_handler.rb38
-rw-r--r--spec/unit/knife/bootstrap/chef_vault_handler_spec.rb76
-rw-r--r--spec/unit/knife/bootstrap_spec.rb4
4 files changed, 68 insertions, 68 deletions
diff --git a/lib/chef/knife/bootstrap.rb b/lib/chef/knife/bootstrap.rb
index 79d9db0e97..dde1037a66 100644
--- a/lib/chef/knife/bootstrap.rb
+++ b/lib/chef/knife/bootstrap.rb
@@ -199,22 +199,22 @@ class Chef
:description => "Verify the SSL cert for HTTPS requests to the Chef server API.",
:boolean => true
- option :vault_file,
- :long => '--vault-file VAULT_FILE',
+ option :bootstrap_vault_file,
+ :long => '--bootstrap-vault-file VAULT_FILE',
:description => 'A JSON file with a list of vault(s) and item(s) to be updated'
- option :vault_list,
- :long => '--vault-list VAULT_LIST',
+ option :bootstrap_vault_json,
+ :long => '--bootstrap-vault-json VAULT_JSON',
:description => 'A JSON string with the vault(s) and item(s) to be updated'
- option :vault_item,
- :long => '--vault-item VAULT_ITEM',
+ option :bootstrap_vault_item,
+ :long => '--bootstrap-vault-item VAULT_ITEM',
:description => 'A single vault and item to update as "vault:item"',
:proc => Proc.new { |i|
(vault, item) = i.split(/:/)
- vault_item ||= {}
- vault_item[vault] ||= []
- vault_item[vault].push(item)
+ bootstrap_vault_item ||= {}
+ bootstrap_vault_item[vault] ||= []
+ bootstrap_vault_item[vault].push(item)
}
def initialize(argv=[])
diff --git a/lib/chef/knife/bootstrap/chef_vault_handler.rb b/lib/chef/knife/bootstrap/chef_vault_handler.rb
index c421d2cb15..749f61e6da 100644
--- a/lib/chef/knife/bootstrap/chef_vault_handler.rb
+++ b/lib/chef/knife/bootstrap/chef_vault_handler.rb
@@ -50,7 +50,7 @@ class Chef
ui.info("Updating Chef Vault, waiting for client to be searchable..") while wait_for_client
- update_vault_list!
+ update_bootstrap_vault_json!
end
# Iterate through all the vault items to update. Items may be either a String
@@ -61,7 +61,7 @@ class Chef
# "vault2": [ "item1", "item2", "item2" ]
# }
#
- def update_vault_list!
+ def update_bootstrap_vault_json!
vault_json.each do |vault, items|
[ items ].flatten.each do |item|
update_vault(vault, item)
@@ -71,35 +71,35 @@ class Chef
# @return [Boolean] if we've got chef vault options to act on or not
def doing_chef_vault?
- !!(vault_list || vault_file || vault_item)
+ !!(bootstrap_vault_json || bootstrap_vault_file || bootstrap_vault_item)
end
private
# warn if the user has given mutual conflicting options
def sanity_check
- if vault_item && (vault_list || vault_file)
+ if bootstrap_vault_item && (bootstrap_vault_json || bootstrap_vault_file)
ui.warn "--vault-item given with --vault-list or --vault-file, ignoring the latter"
end
- if vault_list && vault_file
+ if bootstrap_vault_json && bootstrap_vault_file
ui.warn "--vault-list given with --vault-file, ignoring the latter"
end
end
# @return [String] string with serialized JSON representing the chef vault items
- def vault_list
- knife_config[:vault_list]
+ def bootstrap_vault_json
+ knife_config[:bootstrap_vault_json]
end
# @return [String] JSON text in a file representing the chef vault items
- def vault_file
- knife_config[:vault_file]
+ def bootstrap_vault_file
+ knife_config[:bootstrap_vault_file]
end
# @return [Hash] Ruby object representing the chef vault items to create
- def vault_item
- knife_config[:vault_item]
+ def bootstrap_vault_item
+ knife_config[:bootstrap_vault_item]
end
# Helper to return a ruby object represeting all the data bags and items
@@ -109,10 +109,10 @@ class Chef
def vault_json
@vault_json ||=
begin
- if vault_item
- vault_item
+ if bootstrap_vault_item
+ bootstrap_vault_item
else
- json = vault_list ? vault_list : File.read(vault_file)
+ json = bootstrap_vault_json ? bootstrap_vault_json : File.read(bootstrap_vault_file)
Chef::JSONCompat.from_json(json)
end
end
@@ -124,9 +124,9 @@ class Chef
# @param item [String] name of the chef-vault encrypted item
def update_vault(vault, item)
require_chef_vault!
- vault_item = load_chef_vault_item(vault, item)
- vault_item.clients("name:#{node_name}")
- vault_item.save
+ bootstrap_vault_item = load_chef_bootstrap_vault_item(vault, item)
+ bootstrap_vault_item.clients("name:#{node_name}")
+ bootstrap_vault_item.save
end
# Hook to stub out ChefVault
@@ -134,11 +134,11 @@ class Chef
# @param vault [String] name of the chef-vault encrypted data bag
# @param item [String] name of the chef-vault encrypted item
# @returns [ChefVault::Item] ChefVault::Item object
- def load_chef_vault_item(vault, item)
+ def load_chef_bootstrap_vault_item(vault, item)
ChefVault::Item.load(vault, item)
end
- public :load_chef_vault_item # for stubbing
+ public :load_chef_bootstrap_vault_item # for stubbing
# Helper used to spin waiting for the client to appear in search.
#
diff --git a/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb b/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb
index 5d0c1c900c..d8f84265b7 100644
--- a/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb
+++ b/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb
@@ -41,111 +41,111 @@ describe Chef::Knife::Bootstrap::ChefVaultHandler do
it "shouldn't do anything" do
expect(chef_vault_handler).to_not receive(:sanity_check)
- expect(chef_vault_handler).to_not receive(:update_vault_list!)
+ expect(chef_vault_handler).to_not receive(:update_bootstrap_vault_json!)
chef_vault_handler
end
end
context "when setting chef vault items" do
- let(:vault_item) { double("ChefVault::Item") }
+ let(:bootstrap_vault_item) { double("ChefVault::Item") }
before do
expect(chef_vault_handler).to receive(:wait_for_client).and_return(false)
expect(chef_vault_handler).to receive(:require_chef_vault!).at_least(:once)
- expect(vault_item).to receive(:clients).with("name:#{node_name}").at_least(:once)
- expect(vault_item).to receive(:save).at_least(:once)
+ expect(bootstrap_vault_item).to receive(:clients).with("name:#{node_name}").at_least(:once)
+ expect(bootstrap_vault_item).to receive(:save).at_least(:once)
end
- context "from knife_config[:vault_item]" do
+ context "from knife_config[:bootstrap_vault_item]" do
it "sets a single item as a scalar" do
- knife_config[:vault_item] = { 'vault' => 'item1' }
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
+ knife_config[:bootstrap_vault_item] = { 'vault' => 'item1' }
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets a single item as an array" do
- knife_config[:vault_item] = { 'vault' => [ 'item1' ] }
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
+ knife_config[:bootstrap_vault_item] = { 'vault' => [ 'item1' ] }
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets two items as an array" do
- knife_config[:vault_item] = { 'vault' => [ 'item1', 'item2' ] }
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item2').and_return(vault_item)
+ knife_config[:bootstrap_vault_item] = { 'vault' => [ 'item1', 'item2' ] }
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item2').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets two vaults from different hash keys" do
- knife_config[:vault_item] = { 'vault' => [ 'item1', 'item2' ], 'vault2' => [ 'item3' ] }
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item2').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault2', 'item3').and_return(vault_item)
+ knife_config[:bootstrap_vault_item] = { 'vault' => [ 'item1', 'item2' ], 'vault2' => [ 'item3' ] }
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item2').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault2', 'item3').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
end
- context "from knife_config[:vault_list]" do
+ context "from knife_config[:bootstrap_vault_json]" do
it "sets a single item as a scalar" do
- knife_config[:vault_list] = '{ "vault": "item1" }'
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
+ knife_config[:bootstrap_vault_json] = '{ "vault": "item1" }'
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets a single item as an array" do
- knife_config[:vault_list] = '{ "vault": [ "item1" ] }'
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
+ knife_config[:bootstrap_vault_json] = '{ "vault": [ "item1" ] }'
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets two items as an array" do
- knife_config[:vault_list] = '{ "vault": [ "item1", "item2" ] }'
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item2').and_return(vault_item)
+ knife_config[:bootstrap_vault_json] = '{ "vault": [ "item1", "item2" ] }'
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item2').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets two vaults from different hash keys" do
- knife_config[:vault_list] = '{ "vault": [ "item1", "item2" ], "vault2": [ "item3" ] }'
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item2').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault2', 'item3').and_return(vault_item)
+ knife_config[:bootstrap_vault_json] = '{ "vault": [ "item1", "item2" ], "vault2": [ "item3" ] }'
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item2').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault2', 'item3').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
end
- context "from knife_config[:vault_file]" do
+ context "from knife_config[:bootstrap_vault_file]" do
def setup_file_contents(json)
stringio = StringIO.new(json)
- knife_config[:vault_file] = "/foo/bar/baz"
- expect(File).to receive(:read).with(knife_config[:vault_file]).and_return(stringio)
+ knife_config[:bootstrap_vault_file] = "/foo/bar/baz"
+ expect(File).to receive(:read).with(knife_config[:bootstrap_vault_file]).and_return(stringio)
end
it "sets a single item as a scalar" do
setup_file_contents('{ "vault": "item1" }')
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets a single item as an array" do
setup_file_contents('{ "vault": [ "item1" ] }')
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets two items as an array" do
setup_file_contents('{ "vault": [ "item1", "item2" ] }')
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item2').and_return(vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item2').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
it "sets two vaults from different hash keys" do
setup_file_contents('{ "vault": [ "item1", "item2" ], "vault2": [ "item3" ] }')
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item1').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault', 'item2').and_return(vault_item)
- expect(chef_vault_handler).to receive(:load_chef_vault_item).with('vault2', 'item3').and_return(vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item1').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault', 'item2').and_return(bootstrap_vault_item)
+ expect(chef_vault_handler).to receive(:load_chef_bootstrap_vault_item).with('vault2', 'item3').and_return(bootstrap_vault_item)
chef_vault_handler.run(node_name: node_name)
end
end
diff --git a/spec/unit/knife/bootstrap_spec.rb b/spec/unit/knife/bootstrap_spec.rb
index 4743ea315e..b7c66321c0 100644
--- a/spec/unit/knife/bootstrap_spec.rb
+++ b/spec/unit/knife/bootstrap_spec.rb
@@ -549,7 +549,7 @@ describe Chef::Knife::Bootstrap do
end
it "creates the client and adds chef-vault items if vault_list is set" do
- knife.config[:vault_file] = "/not/our/responsibility/to/check/if/this/exists"
+ knife.config[:bootstrap_vault_file] = "/not/our/responsibility/to/check/if/this/exists"
expect(knife_ssh).to receive(:run)
expect(knife.client_builder).to receive(:run)
expect(knife.chef_vault_handler).to receive(:run).with(node_name: knife.config[:chef_node_name])
@@ -557,7 +557,7 @@ describe Chef::Knife::Bootstrap do
end
it "creates the client and adds chef-vault items if vault_items is set" do
- knife.config[:vault_list] = '{ "vault" => "item" }'
+ knife.config[:bootstrap_vault_json] = '{ "vault" => "item" }'
expect(knife_ssh).to receive(:run)
expect(knife.client_builder).to receive(:run)
expect(knife.chef_vault_handler).to receive(:run).with(node_name: knife.config[:chef_node_name])