You can have a look at python library for working with GoCD 
API: https://github.com/grundic/yagocd.
In recent version I've added a checker for all resources about version 
compatibility, so if you would use it, it might be easier to locate the 
issue ;)
Unfortunately I haven't implemented API changes for 16.10.0, but it's 
coming soon. 

On Wednesday, September 28, 2016 at 2:14:54 PM UTC+2, Carl Reid wrote:
>
> Thank you for the quick reply. My bad on the username/password encoding, 
> too hasty with my post!
>
> I will change it although the server is internal only and we have not 
> provided any DNS details.
>
> I had not realised that there was a new version of GO available until you 
> mentioned it! We are on 16.9 and I stupidly missed the requirement for 
> 16.10 for this API call. 
> The cadence of these releases seems ever increasing, great work.
>
> We will get the version updated and I will test again.
>
> Thanks
>
>
>
>
>
> On Wednesday, 28 September 2016 12:16:56 UTC+1, Carl Reid wrote:
>>
>> Trying to add an existing pipeline to an environment using the new 
>> environment 
>> config API <https://api.go.cd/current/#environment-config>.
>>
>> The method is PATCH.
>>
>> I have tried this in PowerShell and in Curl and the error is the same.
>>
>> 412 PreCondition Failed. 
>>
>> In addition, in Curl you see the following message: "Someone has modified 
>> the configuration for environment 'Commit'. Please update your copy of the 
>> config with the changes."
>>
>> Looking at the source code 
>> <https://github.com/gocd/gocd/blob/832b21a7e563ad0893f94331886482921f1e908c/server/webapp/WEB-INF/rails.new/spec/controllers/api_v1/admin/environments_controller_spec.rb>
>>  
>> (and I am no expert in rails!) it *seems to me* that this message should 
>> only be returned if the method is PUT whereas this is PATCH.
>>
>> Looking at the example <https://api.go.cd/current/#update-an-environment>, 
>> in an environment update call (which uses PUT) there is an additional 
>> header required it seems from the example curl request
>>
>> If-Match: "26b227605daf6f2d7768c8edaf61b861"
>>
>> There is no explanation of what this header is used for and why it needs 
>> to present and it is not there in the PATCH example.
>>
>>
>> Is this a bug or am I doing something silly?
>>
>>
>> My CURL request is:
>>
>>  curl 'https://myserver.com/go/api/admin/environments/Commit'       -u 
>> 'user:passwordI'       -H 'Accept: application/vnd.go.cd.v1+json'       -H 
>> 'Content-Type: application/json'       -X PATCH       -d 
>> '{"pipelines":{"add":["pipeline_to_add"]}}' -verbose
>>
>>
>>
>> The response is:
>>
>> * Connected to myserver.com (10.129.0.9) port 443 (#0)
>> * successfully set certificate verify locations:
>> *   CAfile: none
>>   CApath: /etc/ssl/certs
>> * SSLv3, TLS handshake, Client hello (1):
>> * SSLv3, TLS handshake, Server hello (2):
>> * SSLv3, TLS handshake, CERT (11):
>> * SSLv3, TLS handshake, Server key exchange (12):
>> * SSLv3, TLS handshake, Request CERT (13):
>> * SSLv3, TLS handshake, Server finished (14):
>> * SSLv3, TLS handshake, CERT (11):
>> * SSLv3, TLS handshake, Client key exchange (16):
>> * SSLv3, TLS change cipher, Client hello (1):
>> * SSLv3, TLS handshake, Finished (20):
>> * SSLv3, TLS change cipher, Client hello (1):
>> * SSLv3, TLS handshake, Finished (20):
>> * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA384
>> * Server certificate:
>> *        subject: blabla
>> *        start date: 2015-09-07 12:02:02 GMT
>> *        expire date: 2017-09-06 12:02:02 GMT
>> *        subjectAltName: myserver.com matched
>> *        issuer: blabla
>> *        SSL certificate verify ok.
>> * Server auth using Basic with user 'user'
>> > PATCH /go/api/admin/environments/Commit HTTP/1.1
>> > Authorization: Basic R29BZG1pbjpwViMlKUxNdkRQRTQjZzZJ
>> > User-Agent: curl/7.38.0
>> > Host: myserver.com
>> > Referer: rbose
>> > Accept: application/vnd.go.cd.v1+json
>> > Content-Type: application/json
>> > Content-Length: 60
>> >
>> * upload completely sent off: 60 out of 60 bytes
>> < HTTP/1.1 412 Precondition Failed
>> < Date: Wed, 28 Sep 2016 11:03:01 GMT
>> < Set-Cookie: JSESSIONID=ed06udyt7bsh1eym9kbppbhyg;Path=/go;Expires=Wed, 
>> 12-Oct-2016 11:03:01 GMT;Secure;HttpOnly
>> < Expires: Thu, 01 Jan 1970 00:00:00 GMT
>> < X-Frame-Options: SAMEORIGIN
>> < X-XSS-Protection: 1; mode=block
>> < X-Content-Type-Options: nosniff
>> < X-UA-Compatible: chrome=1
>> < Content-Type: application/vnd.go.cd.v1+json; charset=utf-8
>> < Cache-Control: no-cache
>> < X-Request-Id: aaa733e9-5986-4425-b04b-cad515dde4bc
>> < X-Runtime: 0.004000
>> < Transfer-Encoding: chunked
>> <
>> {
>>   "message": "Someone has modified the configuration for environment 
>> 'Commit'. Please update your copy of the config with the changes."
>> }
>>
>>
>>
>>
>>
>>
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"go-cd" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to