The raw_json property of the chef_data_bag_item resource is not used/respected when creating a data bag item
Chef Version
v16.11.7
Platform Version
Ubuntu-20.04
Replication Case
The following recipe can be used to replicate the issue.
my_data_bag_item = {}
my_data_bag_item['id'] = 'adam'
my_data_bag_item['real_name'] = 'Adam Brent Jacob'
chef_data_bag_item 'my_data_bag/adam' do
raw_json my_data_bag_item
action :create
compile_time true
end
example = data_bag_item('my_data_bag', 'adam')
log example.inspect
Client Output
As you can see, the data bag only contains an id which itself is computed from the name of the resource. Nothing provided via raw_json gets added to the data bag.
-----> Starting Test Kitchen (v2.10.0)
-----> Converging <default-ubuntu-2004>...
Preparing files for transfer
Installing cookbooks for Policyfile /Users/gschofield/Workspace/progress/web_server/Policyfile.rb using `chef install`
Installing cookbooks from lock
Installing web_server 0.1.3
Preparing dna.json
Exporting cookbook dependencies from Policyfile /var/folders/s5/1w2wn2cs3v12x1pjv09gky8h0000gn/T/default-ubuntu-2004-sandbox-20210406-59850-mjt40t...
Exported policy 'web_server' to /var/folders/s5/1w2wn2cs3v12x1pjv09gky8h0000gn/T/default-ubuntu-2004-sandbox-20210406-59850-mjt40t
To converge this system with the exported policy, run:
cd /var/folders/s5/1w2wn2cs3v12x1pjv09gky8h0000gn/T/default-ubuntu-2004-sandbox-20210406-59850-mjt40t
chef-client -z
Removing non-cookbook files before transfer
Preparing data_bags
Preparing validation.pem
Preparing client.rb
chef installation detected
install_strategy set to 'once'
Nothing to install
Transferring files to <default-ubuntu-2004>
Starting Chef Infra Client, version 16.11.7
Patents: https://www.chef.io/patents
Using policy 'web_server' at revision 'c66cf3e426227ae1bb20fef2f4dba2ab656d52aa2f0fa8d992c688120dc2df2c'
resolving cookbooks for run list: ["web_server::default@0.1.3 (58cfa44)"]
Synchronizing Cookbooks:
- web_server (0.1.3)
Installing Cookbook Gems:
Compiling Cookbooks...
Recipe: web_server::default
* chef_data_bag_item[my_data_bag/adam] action create
- create data bag item adam at chefzero://localhost:1
Converging 2 resources
* chef_data_bag_item[my_data_bag/adam] action nothing (skipped due to action :nothing)
* log[data_bag_item["my_data_bag", "adam", {"id"=>"adam"}]] action write
Running handlers:
Running handlers complete
Chef Infra Client finished, 1/3 resources updated in 01 seconds
Downloading files from <default-ubuntu-2004>
Finished converging <default-ubuntu-2004> (0m5.76s).
Description
The
raw_json
property of thechef_data_bag_item
resource is not used/respected when creating a data bag itemChef Version
v16.11.7
Platform Version
Ubuntu-20.04
Replication Case
The following recipe can be used to replicate the issue.
Client Output
As you can see, the data bag only contains an
id
which itself is computed from the name of the resource. Nothing provided viaraw_json
gets added to the data bag.