[chef] Re: Re: Hosted Chef API - client resource discrepancies


Chronological Thread 
  • From: Jamie Winsor < >
  • To:
  • Subject: [chef] Re: Re: Hosted Chef API - client resource discrepancies
  • Date: Tue, 14 Aug 2012 16:51:34 -0700

Hey Noah,

Thanks for your quick response. I verified that I'm sending the 'orgname', 'validator', 'client name', and 'certificate' attributes with my request and ditching the FOSS specific attributes but am still receiving the same error. Have you tested the Python client lately against the current installation of Hosted Chef?

Request Body
{\"chef_type\":\"client\",\"json_class\":\"Chef::ApiClient\",\"clientname\":\"ridley-test\",\"validator\":false,\"certificate\":null,\"orgname\":\"vialstudios\"}"


Response Body
"{\"error\":[null,\"Clientname must not be blank\",\"Clientname has an invalid format\"]}"

-- 
Jamie Winsor
@resetexistence
https://github.com/reset

On Tuesday, August 14, 2012 at 2:59 PM, Noah Kantrowitz wrote:

Check out https://github.com/coderanger/pychef/blob/master/chef/client.py. The implementation is a bit different between the FOSS server and the Hosted/Private server.

--Noah

On Aug 15, 2012, at 5:57 AM, Jamie Winsor wrote:

I'm working on a thread safe Chef API client with async capabilities for dispatching parallel requests to a Chef Server. Through writing my acceptance tests I've noticed that the client resource has a few discrepancies with creation and retrieval of clients than what is outlined in the official documentation: http://wiki.opscode.com/display/chef/Server+API. It's worth noting that this documentation reflects the behavior of the Open Source Server correctly.

Retrieving a client: GET /clients/[NAME]

1. client response does not contain an 'admin' field or value
2. client response contains an additional 'orgname' attribute
3. client response contains an additional 'validator' attribute
4. client response contains an additional field 'clientname' which is identical to 'name'
5. client response contains an additional field 'certificate' which appears to be a private key?

See the raw response below:

{
"orgname": "vialstudios",
"validator": false,
"clientname": "asdf",
"name": "asdf",
"certificate": "-----BEGIN CERTIFICATE-----\\nMIIDOjCCAqOgAwIBAgIE85XemDANBgkqhkiG9w0BAQUFADCBnjELMAkGA1UEBhMC\\nVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFjAUBgNV\\nBAoMDU9wc2NvZGUsIEluYy4xHDAaBgNVBAsME0NlcnRpZmljYXRlIFNlcnZpY2Ux\\nMjAwBgNVBAMMKW9wc2NvZGUuY29tL2VtYWlsQWRkcmVzcz1hdXRoQG9wc2NvZGUu\\nY29tMCAXDTEyMDgxNDE5NDQyN1oYDzIxMDEwODI0MTk0NDI3WjCBnTEQMA4GA1UE\\nBxMHU2VhdHRsZTETMBEGA1UECBMKV2FzaGluZ3RvbjELMAkGA1UEBhMCVVMxHDAa\\nBgNVBAsTE0NlcnRpZmljYXRlIFNlcnZpY2UxFjAUBgNVBAoTDU9wc2NvZGUsIElu\\nYy4xMTAvBgNVBAMUKFVSSTpodHRwOi8vb3BzY29kZS5jb20vR1VJRFMvY2xpZW50\\nX2d1aWQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzvS0Z+gVic+Rn\\ncxN/P3D1lDq0St+hAtp9U+4FgInjoSWZFP9LWKoWIebRxH8axZCX2eVGwOsK2Pju\\n8zmG78n1J41ymxSIJBGeL7QjDuAXdHA7YAlBbhslK74KGdEqOqpxghVJG6doJf3/\\nYBQYQD3tonkuoyG43M79288l9MhvjglhKY8C9MZcj9rLebuySuhANRuBrdtF2CEg\\nX5/zNSr2WKnOFurBXnaKEefSpkUEAFkqiMCxcWSG05de1TRkqXuWs+8lRwl8OLo7\\n4lCFNwQEbJwdoS/R/yHMOO1fy3UbyRBZXW3FkvyoD4vxZkMWcbZohPd0TAA4StI8\\nhjUcCmsJAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAOG2RQRTePGB3bTYfZB/+HXnx\\nBuQexVfofaE3zh8iXBZA2Jl25iMAB6lkm7C6Ku7etviCytQCl6dLR6g3k1ApCy7y\\nTZKUYn/TPTViC9FmyFq5s2TeJzusmN7LBEi094MoiGwpr92nuvh79SKQI4KXgqK0\\n38zQYaVAylQPNfIe/7M=\\n-----END CERTIFICATE-----\\n"
}

Creating a client: POST /clients
1. creating a client with a JSON body containing a 'name' and 'admin' field with a proper string and boolean value results in the error:

400 - Bad Request
{
"error": [
null,
"Clientname must not be blank",
"Clientname has an invalid format"
]
}

2. even by specifying an additional 'clientname' field with a value the same error is returned.


Are there any updated docs regarding the client creation API or dealing with client permissions via the API in Private/Hosted Chef?

--
Jamie Winsor
@resetexistence




Archive powered by MHonArc 2.6.16.

§