GitHub PullRequestReviewCommentEvent at 2014-10-03 13:14:07
Repository: gophercloud
Actor: smashwilson
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/rackspace/gophercloud/pulls/comments/18393804","id":18393804,"diff_hunk":"@@ -0,0 +1,41 @@\n+package extensions\n+\n+import (\n+\t\"github.com/rackspace/gophercloud\"\n+\tcommon \"github.com/rackspace/gophercloud/openstack/common/extensions\"\n+\t\"github.com/rackspace/gophercloud/pagination\"\n+)","path":"openstack/identity/v2/extensions/delegate.go","position":7,"original_position":7,"commit_id":"318666f0f55269e7798976c6f7942d9b290d4d8c","original_commit_id":"318666f0f55269e7798976c6f7942d9b290d4d8c","user":{"login":"smashwilson","id":17565,"avatar_url":"https://avatars.githubusercontent.com/u/17565?v=2","gravatar_id":"","url":"https://api.github.com/users/smashwilson","html_url":"https://github.com/smashwilson","followers_url":"https://api.github.com/users/smashwilson/followers","following_url":"https://api.github.com/users/smashwilson/following{/other_user}","gists_url":"https://api.github.com/users/smashwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/smashwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smashwilson/subscriptions","organizations_url":"https://api.github.com/users/smashwilson/orgs","repos_url":"https://api.github.com/users/smashwilson/repos","events_url":"https://api.github.com/users/smashwilson/events{/privacy}","received_events_url":"https://api.github.com/users/smashwilson/received_events","type":"User","site_admin":false},"body":"Attn: @jamiehannaford, @jrperritt, @DonSchenck \r\n\r\nRather than copy and paste the entire `extensions` resource, I moved it to a common \"service directory\" and wrote up a delegating wrapper within identity v2 and networking v2. It's a good example of how the Rackspace provider delegating wrappers will look, I think. There's still a fair amount of duplication but 41 lines seems pretty reasonable to me.\r\n\r\nI did just copy the unit tests wholesale for the moment; I'll revisit that in a bit. I wish I could do something to \"inherit\" the documentation, too, but I don't think godoc is that sophisticated.\r\n\r\nOne weakness I see here is that the pages you get from the `List` call are actually interchangeable among delegating services: you can provide them to any of the delegating `ExtractExtensions` calls without a panic. Because of the way that Pager construction works, I couldn't enforce that more strictly without having to rewrite `List` everywhere, which seemed like a bad idea (especially for resources that have list options).","created_at":"2014-10-03T13:14:07Z","updated_at":"2014-10-03T13:14:07Z","html_url":"https://github.com/rackspace/gophercloud/pull/219#discussion_r18393804","pull_request_url":"https://api.github.com/repos/rackspace/gophercloud/pulls/219","_links":{"self":{"href":"https://api.github.com/repos/rackspace/gophercloud/pulls/comments/18393804"},"html":{"href":"https://github.com/rackspace/gophercloud/pull/219#discussion_r18393804"},"pull_request":{"href":"https://api.github.com/repos/rackspace/gophercloud/pulls/219"}}},"pull_request":{"url":"https://api.github.com/repos/rackspace/gophercloud/pulls/219","id":22165069,"html_url":"https://github.com/rackspace/gophercloud/pull/219","diff_url":"https://github.com/rackspace/gophercloud/pull/219.diff","patch_url":"https://github.com/rackspace/gophercloud/pull/219.patch","issue_url":"https://api.github.com/repos/rackspace/gophercloud/issues/219","number":219,"state":"open","locked":false,"title":"[wip] Update Identity v2","user":{"login":"smashwilson","id":17565,"avatar_url":"https://avatars.githubusercontent.com/u/17565?v=2","gravatar_id":"","url":"https://api.github.com/users/smashwilson","html_url":"https://github.com/smashwilson","followers_url":"https://api.github.com/users/smashwilson/followers","following_url":"https://api.github.com/users/smashwilson/following{/other_user}","gists_url":"https://api.github.com/users/smashwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/smashwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smashwilson/subscriptions","organizations_url":"https://api.github.com/users/smashwilson/orgs","repos_url":"https://api.github.com/users/smashwilson/repos","events_url":"https://api.github.com/users/smashwilson/events{/privacy}","received_events_url":"https://api.github.com/users/smashwilson/received_events","type":"User","site_admin":false},"body":"This is a consistency pass, by which I mean \"rewrite\", of the v2 Identity service.\r\n\r\nFixes #214.\r\n\r\n### Remaining Work\r\n\r\n- [x] Extentions resource.\r\n- [ ] Move the service catalog into the `tokens` resource.\r\n- [ ] Unit testing!\r\n - [ ] Token creation, including all of the failure cases.\r\n - [ ] Tenant listing.\r\n - [ ] Extensions.\r\n- [ ] Update the openstack provider client to match.","created_at":"2014-10-02T19:45:31Z","updated_at":"2014-10-03T13:14:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"38aa82e59bd6952bb8f8e5cce3db00579942e288","assignee":null,"milestone":{"url":"https://api.github.com/repos/rackspace/gophercloud/milestones/8","labels_url":"https://api.github.com/repos/rackspace/gophercloud/milestones/8/labels","id":533116,"number":8,"title":"v0.2.0","description":"Cloud Files","creator":{"login":"sam-falvo","id":1495032,"avatar_url":"https://avatars.githubusercontent.com/u/1495032?v=2","gravatar_id":"","url":"https://api.github.com/users/sam-falvo","html_url":"https://github.com/sam-falvo","followers_url":"https://api.github.com/users/sam-falvo/followers","following_url":"https://api.github.com/users/sam-falvo/following{/other_user}","gists_url":"https://api.github.com/users/sam-falvo/gists{/gist_id}","starred_url":"https://api.github.com/users/sam-falvo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sam-falvo/subscriptions","organizations_url":"https://api.github.com/users/sam-falvo/orgs","repos_url":"https://api.github.com/users/sam-falvo/repos","events_url":"https://api.github.com/users/sam-falvo/events{/privacy}","received_events_url":"https://api.github.com/users/sam-falvo/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":4,"state":"open","created_at":"2014-01-11T00:27:58Z","updated_at":"2014-10-03T13:01:59Z","due_on":null},"commits_url":"https://api.github.com/repos/rackspace/gophercloud/pulls/219/commits","review_comments_url":"https://api.github.com/repos/rackspace/gophercloud/pulls/219/comments","review_comment_url":"https://api.github.com/repos/rackspace/gophercloud/pulls/comments/{number}","comments_url":"https://api.github.com/repos/rackspace/gophercloud/issues/219/comments","statuses_url":"https://api.github.com/repos/rackspace/gophercloud/statuses/318666f0f55269e7798976c6f7942d9b290d4d8c","head":{"label":"smashwilson:update-identity-v2","ref":"update-identity-v2","sha":"318666f0f55269e7798976c6f7942d9b290d4d8c","user":{"login":"smashwilson","id":17565,"avatar_url":"https://avatars.githubusercontent.com/u/17565?v=2","gravatar_id":"","url":"https://api.github.com/users/smashwilson","html_url":"https://github.com/smashwilson","followers_url":"https://api.github.com/users/smashwilson/followers","following_url":"https://api.github.com/users/smashwilson/following{/other_user}","gists_url":"https://api.github.com/users/smashwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/smashwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smashwilson/subscriptions","organizations_url":"https://api.github.com/users/smashwilson/orgs","repos_url":"https://api.github.com/users/smashwilson/repos","events_url":"https://api.github.com/users/smashwilson/events{/privacy}","received_events_url":"https://api.github.com/users/smashwilson/received_events","type":"User","site_admin":false},"repo":{"id":23466704,"name":"gophercloud","full_name":"smashwilson/gophercloud","owner":{"login":"smashwilson","id":17565,"avatar_url":"https://avatars.githubusercontent.com/u/17565?v=2","gravatar_id":"","url":"https://api.github.com/users/smashwilson","html_url":"https://github.com/smashwilson","followers_url":"https://api.github.com/users/smashwilson/followers","following_url":"https://api.github.com/users/smashwilson/following{/other_user}","gists_url":"https://api.github.com/users/smashwilson/gists{/gist_id}","starred_url":"https://api.github.com/users/smashwilson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smashwilson/subscriptions","organizations_url":"https://api.github.com/users/smashwilson/orgs","repos_url":"https://api.github.com/users/smashwilson/repos","events_url":"https://api.github.com/users/smashwilson/events{/privacy}","received_events_url":"https://api.github.com/users/smashwilson/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/smashwilson/gophercloud","description":"The Go SDK for Openstack.","fork":true,"url":"https://api.github.com/repos/smashwilson/gophercloud","forks_url":"https://api.github.com/repos/smashwilson/gophercloud/forks","keys_url":"https://api.github.com/repos/smashwilson/gophercloud/keys{/key_id}","collaborators_url":"https://api.github.com/repos/smashwilson/gophercloud/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/smashwilson/gophercloud/teams","hooks_url":"https://api.github.com/repos/smashwilson/gophercloud/hooks","issue_events_url":"https://api.github.com/repos/smashwilson/gophercloud/issues/events{/number}","events_url":"https://api.github.com/repos/smashwilson/gophercloud/events","assignees_url":"https://api.github.com/repos/smashwilson/gophercloud/assignees{/user}","branches_url":"https://api.github.com/repos/smashwilson/gophercloud/branches{/branch}","tags_url":"https://api.github.com/repos/smashwilson/gophercloud/tags","blobs_url":"https://api.github.com/repos/smashwilson/gophercloud/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/smashwilson/gophercloud/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/smashwilson/gophercloud/git/refs{/sha}","trees_url":"https://api.github.com/repos/smashwilson/gophercloud/git/trees{/sha}","statuses_url":"https://api.github.com/repos/smashwilson/gophercloud/statuses/{sha}","languages_url":"https://api.github.com/repos/smashwilson/gophercloud/languages","stargazers_url":"https://api.github.com/repos/smashwilson/gophercloud/stargazers","contributors_url":"https://api.github.com/repos/smashwilson/gophercloud/contributors","subscribers_url":"https://api.github.com/repos/smashwilson/gophercloud/subscribers","subscription_url":"https://api.github.com/repos/smashwilson/gophercloud/subscription","commits_url":"https://api.github.com/repos/smashwilson/gophercloud/commits{/sha}","git_commits_url":"https://api.github.com/repos/smashwilson/gophercloud/git/commits{/sha}","comments_url":"https://api.github.com/repos/smashwilson/gophercloud/comments{/number}","issue_comment_url":"https://api.github.com/repos/smashwilson/gophercloud/issues/comments/{number}","contents_url":"https://api.github.com/repos/smashwilson/gophercloud/contents/{+path}","compare_url":"https://api.github.com/repos/smashwilson/gophercloud/compare/{base}...{head}","merges_url":"https://api.github.com/repos/smashwilson/gophercloud/merges","archive_url":"https://api.github.com/repos/smashwilson/gophercloud/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/smashwilson/gophercloud/downloads","issues_url":"https://api.github.com/repos/smashwilson/gophercloud/issues{/number}","pulls_url":"https://api.github.com/repos/smashwilson/gophercloud/pulls{/number}","milestones_url":"https://api.github.com/repos/smashwilson/gophercloud/milestones{/number}","notifications_url":"https://api.github.com/repos/smashwilson/gophercloud/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/smashwilson/gophercloud/labels{/name}","releases_url":"https://api.github.com/repos/smashwilson/gophercloud/releases{/id}","created_at":"2014-08-29T14:33:14Z","updated_at":"2014-08-19T01:49:35Z","pushed_at":"2014-10-03T12:58:04Z","git_url":"git://github.com/smashwilson/gophercloud.git","ssh_url":"git@github.com:smashwilson/gophercloud.git","clone_url":"https://github.com/smashwilson/gophercloud.git","svn_url":"https://github.com/smashwilson/gophercloud","homepage":"gophercloud.io","size":7632,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rackspace:v0.2.0","ref":"v0.2.0","sha":"a5cffc9c6e7481cf8f246eed23f7ce4829a896c5","user":{"login":"rackspace","id":3949923,"avatar_url":"https://avatars.githubusercontent.com/u/3949923?v=2","gravatar_id":"","url":"https://api.github.com/users/rackspace","html_url":"https://github.com/rackspace","followers_url":"https://api.github.com/users/rackspace/followers","following_url":"https://api.github.com/users/rackspace/following{/other_user}","gists_url":"https://api.github.com/users/rackspace/gists{/gist_id}","starred_url":"https://api.github.com/users/rackspace/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rackspace/subscriptions","organizations_url":"https://api.github.com/users/rackspace/orgs","repos_url":"https://api.github.com/users/rackspace/repos","events_url":"https://api.github.com/users/rackspace/events{/privacy}","received_events_url":"https://api.github.com/users/rackspace/received_events","type":"Organization","site_admin":false},"repo":{"id":10826219,"name":"gophercloud","full_name":"rackspace/gophercloud","owner":{"login":"rackspace","id":3949923,"avatar_url":"https://avatars.githubusercontent.com/u/3949923?v=2","gravatar_id":"","url":"https://api.github.com/users/rackspace","html_url":"https://github.com/rackspace","followers_url":"https://api.github.com/users/rackspace/followers","following_url":"https://api.github.com/users/rackspace/following{/other_user}","gists_url":"https://api.github.com/users/rackspace/gists{/gist_id}","starred_url":"https://api.github.com/users/rackspace/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rackspace/subscriptions","organizations_url":"https://api.github.com/users/rackspace/orgs","repos_url":"https://api.github.com/users/rackspace/repos","events_url":"https://api.github.com/users/rackspace/events{/privacy}","received_events_url":"https://api.github.com/users/rackspace/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rackspace/gophercloud","description":"The Go SDK for Openstack.","fork":false,"url":"https://api.github.com/repos/rackspace/gophercloud","forks_url":"https://api.github.com/repos/rackspace/gophercloud/forks","keys_url":"https://api.github.com/repos/rackspace/gophercloud/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rackspace/gophercloud/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rackspace/gophercloud/teams","hooks_url":"https://api.github.com/repos/rackspace/gophercloud/hooks","issue_events_url":"https://api.github.com/repos/rackspace/gophercloud/issues/events{/number}","events_url":"https://api.github.com/repos/rackspace/gophercloud/events","assignees_url":"https://api.github.com/repos/rackspace/gophercloud/assignees{/user}","branches_url":"https://api.github.com/repos/rackspace/gophercloud/branches{/branch}","tags_url":"https://api.github.com/repos/rackspace/gophercloud/tags","blobs_url":"https://api.github.com/repos/rackspace/gophercloud/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rackspace/gophercloud/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rackspace/gophercloud/git/refs{/sha}","trees_url":"https://api.github.com/repos/rackspace/gophercloud/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rackspace/gophercloud/statuses/{sha}","languages_url":"https://api.github.com/repos/rackspace/gophercloud/languages","stargazers_url":"https://api.github.com/repos/rackspace/gophercloud/stargazers","contributors_url":"https://api.github.com/repos/rackspace/gophercloud/contributors","subscribers_url":"https://api.github.com/repos/rackspace/gophercloud/subscribers","subscription_url":"https://api.github.com/repos/rackspace/gophercloud/subscription","commits_url":"https://api.github.com/repos/rackspace/gophercloud/commits{/sha}","git_commits_url":"https://api.github.com/repos/rackspace/gophercloud/git/commits{/sha}","comments_url":"https://api.github.com/repos/rackspace/gophercloud/comments{/number}","issue_comment_url":"https://api.github.com/repos/rackspace/gophercloud/issues/comments/{number}","contents_url":"https://api.github.com/repos/rackspace/gophercloud/contents/{+path}","compare_url":"https://api.github.com/repos/rackspace/gophercloud/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rackspace/gophercloud/merges","archive_url":"https://api.github.com/repos/rackspace/gophercloud/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rackspace/gophercloud/downloads","issues_url":"https://api.github.com/repos/rackspace/gophercloud/issues{/number}","pulls_url":"https://api.github.com/repos/rackspace/gophercloud/pulls{/number}","milestones_url":"https://api.github.com/repos/rackspace/gophercloud/milestones{/number}","notifications_url":"https://api.github.com/repos/rackspace/gophercloud/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rackspace/gophercloud/labels{/name}","releases_url":"https://api.github.com/repos/rackspace/gophercloud/releases{/id}","created_at":"2013-06-20T18:10:46Z","updated_at":"2014-09-27T21:38:44Z","pushed_at":"2014-10-03T12:58:02Z","git_url":"git://github.com/rackspace/gophercloud.git","ssh_url":"git@github.com:rackspace/gophercloud.git","clone_url":"https://github.com/rackspace/gophercloud.git","svn_url":"https://github.com/rackspace/gophercloud","homepage":"gophercloud.io","size":10770,"stargazers_count":224,"watchers_count":224,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":35,"mirror_url":null,"open_issues_count":25,"forks":35,"open_issues":25,"watchers":224,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rackspace/gophercloud/pulls/219"},"html":{"href":"https://github.com/rackspace/gophercloud/pull/219"},"issue":{"href":"https://api.github.com/repos/rackspace/gophercloud/issues/219"},"comments":{"href":"https://api.github.com/repos/rackspace/gophercloud/issues/219/comments"},"review_comments":{"href":"https://api.github.com/repos/rackspace/gophercloud/pulls/219/comments"},"review_comment":{"href":"https://api.github.com/repos/rackspace/gophercloud/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/rackspace/gophercloud/pulls/219/commits"},"statuses":{"href":"https://api.github.com/repos/rackspace/gophercloud/statuses/318666f0f55269e7798976c6f7942d9b290d4d8c"}}}}