Class: Chef::Knife::SecureBagCreate
- Inherits:
-
Knife::DataBagCreate
- Object
- Knife::DataBagCreate
- Chef::Knife::SecureBagCreate
show all
- Includes:
- SecureBagBase
- Defined in:
- lib/chef/knife/secure_bag_create.rb
Instance Method Summary
collapse
#encode_fields_to_array, #encoded_fields_for, included, #require_secret, #use_encryption, #use_secure_databag
Instance Method Details
#create_databag ⇒ Object
13
14
15
16
17
18
19
20
21
|
# File 'lib/chef/knife/secure_bag_create.rb', line 13
def create_databag
begin
rest.post_rest("data", { name: @data_bag_name })
ui.info("Created data_bag[#{@data_bag_name}]")
rescue Net::HTTPServerException => e
raise unless e.to_s =~ /^409/
ui.info("Data bag #{@data_bag_name} already exists")
end
end
|
#create_databag_item ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/chef/knife/secure_bag_create.rb', line 23
def create_databag_item
create_object({ id: @data_bag_item_name },
"data_bag_item[#{@data_bag_item_name}]") do |output|
@raw_data = output
item = if use_encryption
item = Chef::EncryptedDataBagItem.
encrypt_data_bag_item(output,read_secret)
else
output
end
item = SecureDataBag::Item.from_hash(item, read_secret)
item.encode_fields encoded_fields_for(item)
item.data_bag(@data_bag_name)
rest.post_rest("data/#{@data_bag_name}", item.to_hash)
end
end
|
#run ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/chef/knife/secure_bag_create.rb', line 44
def run
@data_bag_name, @data_bag_item_name = @name_args
if @data_bag_name.nil?
show_usage
ui.fatal("You must specify a data bag name")
exit 1
end
require_secret
begin
Chef::DataBag.validate_name!(@data_bag_name)
rescue Chef::Exceptions::InvalidDataBagName => e
ui.fatal(e.message)
exit(1)
end
create_databag
if @data_bag_item_name
create_databag_item
end
end
|