I'm writing go code to access cloudfoundry platform and extract summary of data for all the apps that have been pushed on the cloud.
I can access every app individually and display the data related to each through an http.GET
request but I want to be able to update/change some of the data specific to an app. This is sample data returned for one app named xzys
:
{
"metadata": {
"guid": "71a3c77f-d2791232323-4b7625dq32908492b04f17e",
"url": "/v2/apps/71a3c77f-d2791232323-4b7625dq32908492b04f17e",
"created_at": "2000-18-24T",
"updated_at": "2000-18-27T"
},
"entity": {
"name": "xzys",
"production": false,
"space_guid": "65050bcb-81c6-45a2-b6ef-5e7097c7ece1",
"stack_guid": "89a4fb19-08ef-4c44-90f7-f222a5699fdc",
"buildpack": null,
"detected_buildpack": "null,
"environment_json": {},
"memory": 1024,
"instances": 3,
"disk_quota": 512,
"state": "STARTED",
"version": "67124c27-9958-45a7-afc5-5b27007348ab",
"command": null,
"console": false,
"debug": null,
"staging_task_id": "e901672f958b4ff39d4efb48290367e8",
"package_state": "STAGED",
"health_check_timeout": null,
"staging_failed_reason": null,
"docker_image": null,
"package_updated_at": "2014-10-24T12:53:25+00:00",
"space_url": "/v2/spaces/71a3c77f-d2791232323-4b7625dq32908492b04f17e",
"stack_url": "/v2/stacks/71a3c77f-d2791232323-4b7625dq32908492b04f17e",
"events_url": "/v2/apps/71a3c77f-d2791232323-4b7625dq32908492b04f17e/events",
"service_bindings_url": "/v2/apps/7-4b7625dq32908492b04f17e/service_bindings",
"routes_url": "/v2/apps/771a3c77f-d2791232323-4b7625dq32908492b04f17e/routes"
}
}
So I have a url (
/v2/apps/71a3c77f-d2791232323-4b7625dq32908492b04f17e) that contains the summary of info for an individual app. I've been using a
http.Postform()` to this url to update just one of the resources of this app (I'm aiming to update the number of Instances for this app).
This is my code for updating the "Instances" resource of my app:
func UpdateInstances(token string){
tr := &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
client := &http.Client{Transport: tr}
req, err := client.PostForm("/v2/apps/71a3c77f-d2791232323-4b7625dq32908492b04f17e", url.Values{"instances" : 4})
req.Header.Add("Authorization", token)
if err != nil {
log.Fatal(err)
}
defer req.Body.Close()
}
This doesn't give me any errors but also doesn't update the resource.