[chef] Re: with brackets: error Data Bag Items must contain a Hash or Mash


Chronological Thread 
  • From: Adam Jacob < >
  • To:
  • Subject: [chef] Re: with brackets: error Data Bag Items must contain a Hash or Mash
  • Date: Thu, 25 Aug 2011 13:32:29 -0700

Because the square brackets mean that it's an array with a single element - 
so the deserialized JSON is an array, rather than a hash or mash.

-- 
Opscode, Inc.
Adam Jacob, Chief Product Officer
T: (206) 619-7151 E: 



On Thursday, August 25, 2011 at 12:46 PM, 

 wrote:

> 
> hello. i was just struggling a big getting a data bag to upload. i
> made a small modification to the json, and now it works, and i'm
> wondering why this is.
> 
> i grabbed the example json from a blog post,
> http://www.themomorohoax.com/2010/07/31/ruby-chef-tutorial
> 
> the json fails for me:
> 
> zahadum:~/sbox/ops/chef-repo$ knife data bag from file users37 
> data_bags/users37/ops.json
> ERROR: Chef::Exceptions::ValidationFailed: Data Bag Items must contain a 
> Hash or Mash!
> 
> zahadum:~/sbox/ops/chef-repo$ cat data_bags/users37/ops.json
> [
>  {
>  "id": "kallen",
>  "groups": [
>  "admin"
>  ],
>  "uid": 666,
>  "local_files": true,
>  "full_name": "kallen",
>  "shell": "/bin/bash",
>  "ssh_key": "ssh-rsa AAAA[snip for brevity]4drMA",
>  "password": "$1$8dootdootdootdoot"
>  } 
> ] 
> 
> 
> i remove the surrounding brackets in that json file for shiggles.
> and then the data bag uploads fine:
> 
> zahadum:~/sbox/ops/chef-repo$ knife data bag from file users37 
> data_bags/users37/ops.json 
> Updated data_bag_item[users37::kallen]
> 
> 
> why is that?
> 
> thanks in advance,
> kallen





Archive powered by MHonArc 2.6.16.

§