Upgrade to Chef 11: Unsupported `json_class` type 'Chef::WebUIUser'


#1

Hi,

I’ve been again trying to upgrade our Chef server to 11.

knife upload fails with

ERROR: JSON::ParserError: Unsupported json_class type ‘Chef::WebUIUser’

When I remove all the .json files from user/, the upload succeeds.

knife user list also shows them to me, but I can’t login to the web
interface using the old password.

After resetting my password through the API, I’m able to login.
We don’t have that many users, so it might be possible that everybody
does this, however it feels not very convenient and the way to go.

Anybody with an idea, what the error might mean?

Thanks
Steffen

My users/*.json look like this:

{
“name”: “sgebert”,
“admin”: true,
“salt”: “Fri Oct 28 02:04:18 +0400 2011ynFd1JvDHPpqcws75wpUrmaqvGjVQM”,
“password”: “76ac14fc1724d99d3XXXXXXXXX94e38df2e51c5”,
"_rev": “2-698379d8ab300744dad1811111111b07”,
"_id": “2ab2aef5-3220-472f-bd3b-85555550ec0f”
}


#2

you have to update the chef-client , theres a json related bug which is
causing this (something related to gem dependencies ). we have reported
bugs against this in tickets.opscode.com (search that site and u’ll get
more info on the fixes).

On Tue, Oct 29, 2013 at 10:31 AM, Steffen Gebert st+gmane@st-g.de wrote:

Hi,

I’ve been again trying to upgrade our Chef server to 11.

knife upload fails with

ERROR: JSON::ParserError: Unsupported json_class type ‘Chef::WebUIUser’

When I remove all the .json files from user/, the upload succeeds.

knife user list also shows them to me, but I can’t login to the web
interface using the old password.

After resetting my password through the API, I’m able to login.
We don’t have that many users, so it might be possible that everybody
does this, however it feels not very convenient and the way to go.

Anybody with an idea, what the error might mean?

Thanks
Steffen

My users/*.json look like this:

{
“name”: “sgebert”,
“admin”: true,
“salt”: “Fri Oct 28 02:04:18 +0400 2011ynFd1JvDHPpqcws75wpUrmaqvGjVQM”,
“password”: “76ac14fc1724d99d3XXXXXXXXX94e38df2e51c5”,
"_rev": “2-698379d8ab300744dad1811111111b07”,
"_id": “2ab2aef5-3220-472f-bd3b-85555550ec0f”
}


#3

Hi there,

st+gmane@st-g.de writes:

I’ve been again trying to upgrade our Chef server to 11.

knife upload fails with

ERROR: JSON::ParserError: Unsupported json_class type ‘Chef::WebUIUser’

When I remove all the .json files from user/, the upload succeeds.

What version of knife are you running? As a start, I’d recommend making
sure you are either on the latest patch release of Chef 10.x or (if
possible) upgrade to Chef 11.x for your workstation.

knife user list also shows them to me, but I can’t login to the web
interface using the old password.

That part is expected. User (hashed) passwords are not transfered via
the knife download/upload upgrade path.

  • seth


Seth Falcon | Development Lead | Opscode | @sfalcon


#4

Thanks for your quick reply, Ranjib!

$ knife -v
Chef: 11.6.2

you have to update the chef-client , theres a json related bug which is
causing this (something related to gem dependencies ). we have reported
bugs against this in tickets.opscode.com (search that site and u’ll get
more info on the fixes).

https://tickets.opscode.com/browse/CHEF-4515 ? Sounds different, but
valid for my case. I probably didn’t understand all the implications of
the already existing admin user in [1].
Still wondering why google didn’t show this to me.

Seems like upload is working now :slight_smile:

Thanks
Steffen

[1] http://www.opscode.com/blog/2013/03/12/5106/

On 29/10/13 18:37, Ranjib Dey wrote:

you have to update the chef-client , theres a json related bug which is
causing this (something related to gem dependencies ). we have reported
bugs against this in tickets.opscode.com (search that site and u’ll get
more info on the fixes).

On Tue, Oct 29, 2013 at 10:31 AM, Steffen Gebert st+gmane@st-g.de wrote:

Hi,

I’ve been again trying to upgrade our Chef server to 11.

knife upload fails with

ERROR: JSON::ParserError: Unsupported json_class type ‘Chef::WebUIUser’

When I remove all the .json files from user/, the upload succeeds.

knife user list also shows them to me, but I can’t login to the web
interface using the old password.

After resetting my password through the API, I’m able to login.
We don’t have that many users, so it might be possible that everybody
does this, however it feels not very convenient and the way to go.

Anybody with an idea, what the error might mean?

Thanks
Steffen

My users/*.json look like this:

{
“name”: “sgebert”,
“admin”: true,
“salt”: “Fri Oct 28 02:04:18 +0400 2011ynFd1JvDHPpqcws75wpUrmaqvGjVQM”,
“password”: “76ac14fc1724d99d3XXXXXXXXX94e38df2e51c5”,
"_rev": “2-698379d8ab300744dad1811111111b07”,
"_id": “2ab2aef5-3220-472f-bd3b-85555550ec0f”
}

T


#5

Hi Seth,

thanks for your quick reply.

I’m running 11.6.2.

knife user list also shows them to me, but I can’t login to the web
interface using the old password.

That part is expected. User (hashed) passwords are not transferred via
the knife download/upload upgrade path.

That’s very interesting information. So unimportant that it’s not
mentioned in the guide?

I should then ask everyone of our users to do a knife user edit <myself> and add the “password”: “mypass” line?

Thanks
Steffen

On 29/10/13 18:39, Seth Falcon wrote:

Hi there,

st+gmane@st-g.de writes:

I’ve been again trying to upgrade our Chef server to 11.

knife upload fails with

ERROR: JSON::ParserError: Unsupported json_class type ‘Chef::WebUIUser’

When I remove all the .json files from user/, the upload succeeds.

What version of knife are you running? As a start, I’d recommend making
sure you are either on the latest patch release of Chef 10.x or (if
possible) upgrade to Chef 11.x for your workstation.

knife user list also shows them to me, but I can’t login to the web
interface using the old password.

That part is expected. User (hashed) passwords are not transfered via
the knife download/upload upgrade path.

  • seth