Class: Chef::Knife::Bootstrap::ChefVaultHandler
- Inherits:
-
Object
- Object
- Chef::Knife::Bootstrap::ChefVaultHandler
- Defined in:
- lib/chef/knife/bootstrap/chef_vault_handler.rb
Instance Attribute Summary collapse
-
#knife_config ⇒ Hash
Knife merged config, typically @config.
-
#node_name ⇒ String
readonly
Name of the node (technically name of the client).
-
#ui ⇒ Chef::Knife::UI
Ui object for output.
Instance Method Summary collapse
-
#doing_chef_vault? ⇒ Boolean
If we’ve got chef vault options to act on or not.
-
#initialize(knife_config: {}, ui: nil) ⇒ ChefVaultHandler
constructor
A new instance of ChefVaultHandler.
-
#load_chef_bootstrap_vault_item(vault, item) ⇒ Object
Hook to stub out ChefVault.
-
#run(node_name: nil) ⇒ Object
Updates the chef vault items for the newly created node.
-
#update_bootstrap_vault_json! ⇒ Object
Iterate through all the vault items to update.
Constructor Details
#initialize(knife_config: {}, ui: nil) ⇒ ChefVaultHandler
Returns a new instance of ChefVaultHandler.
35 36 37 38 |
# File 'lib/chef/knife/bootstrap/chef_vault_handler.rb', line 35 def initialize(knife_config: {}, ui: nil) @knife_config = knife_config @ui = ui end |
Instance Attribute Details
#knife_config ⇒ Hash
Returns knife merged config, typically @config.
25 26 27 |
# File 'lib/chef/knife/bootstrap/chef_vault_handler.rb', line 25 def knife_config @knife_config end |
#node_name ⇒ String (readonly)
Returns name of the node (technically name of the client).
31 32 33 |
# File 'lib/chef/knife/bootstrap/chef_vault_handler.rb', line 31 def node_name @node_name end |
#ui ⇒ Chef::Knife::UI
Returns ui object for output.
28 29 30 |
# File 'lib/chef/knife/bootstrap/chef_vault_handler.rb', line 28 def ui @ui end |
Instance Method Details
#doing_chef_vault? ⇒ Boolean
Returns if we’ve got chef vault options to act on or not.
73 74 75 |
# File 'lib/chef/knife/bootstrap/chef_vault_handler.rb', line 73 def doing_chef_vault? !!(bootstrap_vault_json || bootstrap_vault_file || bootstrap_vault_item) end |
#load_chef_bootstrap_vault_item(vault, item) ⇒ Object
Hook to stub out ChefVault
137 138 139 |
# File 'lib/chef/knife/bootstrap/chef_vault_handler.rb', line 137 def load_chef_bootstrap_vault_item(vault, item) ChefVault::Item.load(vault, item) end |
#run(node_name: nil) ⇒ Object
Updates the chef vault items for the newly created node.
@todo: node_name should be mandatory (ruby 2.0 compat)
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/chef/knife/bootstrap/chef_vault_handler.rb', line 44 def run(node_name: nil) return unless doing_chef_vault? sanity_check @node_name = node_name ui.info("Updating Chef Vault, waiting for client to be searchable..") while wait_for_client update_bootstrap_vault_json! end |
#update_bootstrap_vault_json! ⇒ Object
Iterate through all the vault items to update. Items may be either a String or an Array of Strings:
"vault1": "item",
"vault2": [ "item1", "item2", "item2" ]
64 65 66 67 68 69 70 |
# File 'lib/chef/knife/bootstrap/chef_vault_handler.rb', line 64 def update_bootstrap_vault_json! vault_json.each do |vault, items| [ items ].flatten.each do |item| update_vault(vault, item) end end end |