{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/issues/792","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/issues/792/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/issues/792/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/issues/792/events","html_url":"https://github.com/GoogleCloudPlatform/gcloud-node/pull/792","id":100535461,"number":792,"title":"Support Google Compute Engine","user":{"login":"stephenplusplus","id":723048,"avatar_url":"https://avatars.githubusercontent.com/u/723048?v=3","gravatar_id":"","url":"https://api.github.com/users/stephenplusplus","html_url":"https://github.com/stephenplusplus","followers_url":"https://api.github.com/users/stephenplusplus/followers","following_url":"https://api.github.com/users/stephenplusplus/following{/other_user}","gists_url":"https://api.github.com/users/stephenplusplus/gists{/gist_id}","starred_url":"https://api.github.com/users/stephenplusplus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephenplusplus/subscriptions","organizations_url":"https://api.github.com/users/stephenplusplus/orgs","repos_url":"https://api.github.com/users/stephenplusplus/repos","events_url":"https://api.github.com/users/stephenplusplus/events{/privacy}","received_events_url":"https://api.github.com/users/stephenplusplus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/labels/cla:%20no","name":"cla: no","color":"e11d21"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/labels/compute","name":"compute","color":"4386FA"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/labels/don't%20merge","name":"don't merge","color":"e11d21"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-08-12T12:49:00Z","updated_at":"2015-08-20T16:09:25Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/pulls/792","html_url":"https://github.com/GoogleCloudPlatform/gcloud-node/pull/792","diff_url":"https://github.com/GoogleCloudPlatform/gcloud-node/pull/792.diff","patch_url":"https://github.com/GoogleCloudPlatform/gcloud-node/pull/792.patch"},"body":"Continuing from #721 \r\n\r\nThis PR puts a comb over the great work @mziccard gave us when he implemented support for Compute Engine. That includes various small documentation tweaks, code style things, unit tests, and system tests.\r\n\r\n#### To Dos\r\n\r\n- [x] Documentation\r\n  - [x] Callback parameters\r\n  - [x] Upstream API links (depends on #790)\r\n    - [x] Check for misspellings of \"@\"resource or improper {\"@\"link} tags\r\n    - [x] Confirm using `v1` and not `latest`\r\n- [ ] Tests\r\n  - [ ] Unit\r\n    - [ ] Address - @callmehiphop \r\n    - [ ] Disk\r\n    - [ ] Firewall\r\n    - [ ] Index\r\n    - [ ] Network\r\n    - [ ] Operation\r\n    - [ ] Region\r\n    - [ ] Snapshot - @stephenplusplus\r\n    - [x] VM\r\n    - [x] Zone\r\n  - [x] System\r\n\r\nChanged since #721:\r\n\r\n- Added an [`operation.onComplete` method](https://stephenplusplus.github.io/gcloud-node/#/docs/master/compute/operation?method=onComplete). Credit to Marco for the idea -- we couldn't think of a way to implement it un-confusingly at the time, so I hope this is a good solution.\r\n- Removed all throwing where we were validating what the API expects. We typically let the API request go through and have *its* error clarify what was incorrect about the input. We only throw when *our* code cannot proceed.\r\n- Added sane defaults in `zone.createVM`. Explained [here](https://stephenplusplus.github.io/gcloud-node/#/docs/master/compute/zone?method=createInstance). That necessitated two new modules: [gce-images](https://github.com/stephenplusplus/gce-images) and to handle auth the same as gcloud does, [google-auto-auth](https://github.com/stephenplusplus/google-auto-auth) (this one can eventually be used in gcloud directly).\r\n- Renamed `Instance` to `VM`: `zone.createVM`, `zone.getVMs`, etc.\r\n- Added `compute.getZones()` and `compute.getRegions()`\r\n\r\nDocs preview: https://stephenplusplus.github.io/gcloud-node/#/docs/master/compute"},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/issues/comments/133062747","html_url":"https://github.com/GoogleCloudPlatform/gcloud-node/pull/792#issuecomment-133062747","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-node/issues/792","id":133062747,"user":{"login":"stephenplusplus","id":723048,"avatar_url":"https://avatars.githubusercontent.com/u/723048?v=3","gravatar_id":"","url":"https://api.github.com/users/stephenplusplus","html_url":"https://github.com/stephenplusplus","followers_url":"https://api.github.com/users/stephenplusplus/followers","following_url":"https://api.github.com/users/stephenplusplus/following{/other_user}","gists_url":"https://api.github.com/users/stephenplusplus/gists{/gist_id}","starred_url":"https://api.github.com/users/stephenplusplus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephenplusplus/subscriptions","organizations_url":"https://api.github.com/users/stephenplusplus/orgs","repos_url":"https://api.github.com/users/stephenplusplus/repos","events_url":"https://api.github.com/users/stephenplusplus/events{/privacy}","received_events_url":"https://api.github.com/users/stephenplusplus/received_events","type":"User","site_admin":false},"created_at":"2015-08-20T16:09:25Z","updated_at":"2015-08-20T16:09:25Z","body":"Just for crosslinkability: https://groups.google.com/forum/#!topic/gce-discussion/mYwoVHa-mdQ"}}