Class: Chef::Knife::DataBagEdit
Instance Attribute Summary
Attributes inherited from Chef::Knife
#name_args, #ui
Instance Method Summary
collapse
Methods inherited from Chef::Knife
#api_key, #apply_computed_config, category, common_name, #config_file_settings, #configure_chef, #create_object, #delete_object, deps, #format_rest_error, guess_category, #highlight_config_error, #humanize_exception, #humanize_http_exception, inherited, #initialize, list_commands, load_commands, load_deps, #locate_config_file, #merge_configs, msg, #noauth_rest, #parse_options, #read_config_file, reset_subcommands!, #rest, run, #run_with_pretty_exceptions, #server_url, #show_usage, snake_case_name, subcommand_category, subcommand_class_from, subcommand_loader, subcommands, subcommands_by_category, ui, unnamed?, use_separate_defaults?, #username
#convert_to_class_name, #convert_to_snake_case, #filename_to_qualified_string, #snake_case_basename
#enforce_path_sanity
Constructor Details
This class inherits a constructor from Chef::Knife
Instance Method Details
#edit_item(item) ⇒ Object
68
69
70
71
72
73
74
75
|
# File 'lib/chef/knife/data_bag_edit.rb', line 68
def edit_item(item)
output = edit_data(item)
if use_encryption
Chef::EncryptedDataBagItem.encrypt_data_bag_item(output, read_secret)
else
output
end
end
|
#load_item(bag, item_name) ⇒ Object
59
60
61
62
63
64
65
66
|
# File 'lib/chef/knife/data_bag_edit.rb', line 59
def load_item(bag, item_name)
item = Chef::DataBagItem.load(bag, item_name)
if use_encryption
Chef::EncryptedDataBagItem.new(item, read_secret).to_hash
else
item
end
end
|
#read_secret ⇒ Object
43
44
45
46
47
48
49
|
# File 'lib/chef/knife/data_bag_edit.rb', line 43
def read_secret
if config[:secret]
config[:secret]
else
Chef::EncryptedDataBagItem.load_secret(config[:secret_file])
end
end
|
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/chef/knife/data_bag_edit.rb', line 77
def run
if @name_args.length != 2
stdout.puts "You must supply the data bag and an item to edit!"
stdout.puts opt_parser
exit 1
end
item = load_item(@name_args[0], @name_args[1])
output = edit_item(item)
rest.put_rest("data/#{@name_args[0]}/#{@name_args[1]}", output)
stdout.puts("Saved data_bag_item[#{@name_args[1]}]")
ui.output(output) if config[:print_after]
end
|
#use_encryption ⇒ Object
51
52
53
54
55
56
57
|
# File 'lib/chef/knife/data_bag_edit.rb', line 51
def use_encryption
if config[:secret] && config[:secret_file]
stdout.puts "please specify only one of --secret, --secret-file"
exit(1)
end
config[:secret] || config[:secret_file]
end
|