GitHub PullRequestReviewCommentEvent at 2014-06-11 17:03:30
Repository: appscale
Actor: nlake44
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/AppScale/appscale/pulls/comments/13660672","id":13660672,"diff_hunk":"@@ -0,0 +1,144 @@\n+from agents.ec2_agent import EC2Agent\n+import boto\n+import glob\n+from urlparse import urlparse\n+from utils import utils\n+\n+__author__ = 'dario nascimento'\n+__email__ = 'dario.nascimento@tecnico.ulisboa.pt'\n+\n+class OpenStackAgent(EC2Agent):\n+  \"\"\"\n+  OpenStack infrastructure agent which can be used to spawn and terminate\n+  VMs in an OpenStack based environment.\n+  \"\"\"\n+\n+  # The version of OpenStack API used to interact with Boto \n+  # OpenStack_API_VERSION = 'ICE-HOUSE-2014.1'\n+\n+  def configure_instance_security(self, parameters):\n+    \"\"\"\n+    Setup EC2 security keys and groups. Required input values are read from\n+    the parameters dictionary. More specifically, this method expects to\n+    find a 'keyname' parameter and a 'group' parameter in the parameters\n+    dictionary. Using these provided values, this method will create a new\n+    EC2 key-pair and a security group. Security group will be granted permissions\n+    to access any port on the instantiated VMs. (Also see documentation for the\n+    BaseAgent class)\n+\n+    This method differs from its EC2 counterpart because in OpenStack the security group\n+    definition for icmp must include the port range.\n+\n+    Args:\n+      parameters  A dictionary of parameters\n+    \"\"\"","path":"InfrastructureManager/agents/openstack_agent.py","position":34,"original_position":34,"commit_id":"5099047d4fd31d7462df72bdd7757d821c17a116","original_commit_id":"5099047d4fd31d7462df72bdd7757d821c17a116","user":{"login":"nlake44","id":469387,"avatar_url":"https://avatars.githubusercontent.com/u/469387?","gravatar_id":"7a334abef49da1b0c819e724345e0f37","url":"https://api.github.com/users/nlake44","html_url":"https://github.com/nlake44","followers_url":"https://api.github.com/users/nlake44/followers","following_url":"https://api.github.com/users/nlake44/following{/other_user}","gists_url":"https://api.github.com/users/nlake44/gists{/gist_id}","starred_url":"https://api.github.com/users/nlake44/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nlake44/subscriptions","organizations_url":"https://api.github.com/users/nlake44/orgs","repos_url":"https://api.github.com/users/nlake44/repos","events_url":"https://api.github.com/users/nlake44/events{/privacy}","received_events_url":"https://api.github.com/users/nlake44/received_events","type":"User","site_admin":false},"body":"Also add a Returns section, as this function returns True of False.","created_at":"2014-06-11T17:03:30Z","updated_at":"2014-06-11T17:03:30Z","html_url":"https://github.com/AppScale/appscale/pull/1556#discussion_r13660672","pull_request_url":"https://api.github.com/repos/AppScale/appscale/pulls/1556","_links":{"self":{"href":"https://api.github.com/repos/AppScale/appscale/pulls/comments/13660672"},"html":{"href":"https://github.com/AppScale/appscale/pull/1556#discussion_r13660672"},"pull_request":{"href":"https://api.github.com/repos/AppScale/appscale/pulls/1556"}}},"pull_request":{"url":"https://api.github.com/repos/AppScale/appscale/pulls/1556","id":16976470,"html_url":"https://github.com/AppScale/appscale/pull/1556","diff_url":"https://github.com/AppScale/appscale/pull/1556.diff","patch_url":"https://github.com/AppScale/appscale/pull/1556.patch","issue_url":"https://api.github.com/repos/AppScale/appscale/issues/1556","number":1556,"state":"open","title":"Openstack cloud and remove google class restrictions","user":{"login":"dnascimento","id":933984,"avatar_url":"https://avatars.githubusercontent.com/u/933984?","gravatar_id":"3fa057d2e1f33a85d4ed93df96828f0d","url":"https://api.github.com/users/dnascimento","html_url":"https://github.com/dnascimento","followers_url":"https://api.github.com/users/dnascimento/followers","following_url":"https://api.github.com/users/dnascimento/following{/other_user}","gists_url":"https://api.github.com/users/dnascimento/gists{/gist_id}","starred_url":"https://api.github.com/users/dnascimento/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnascimento/subscriptions","organizations_url":"https://api.github.com/users/dnascimento/orgs","repos_url":"https://api.github.com/users/dnascimento/repos","events_url":"https://api.github.com/users/dnascimento/events{/privacy}","received_events_url":"https://api.github.com/users/dnascimento/received_events","type":"User","site_admin":false},"body":"Removing the class restrictions of GAE and support the usage on Openstack (update the appscale-tools too) ","created_at":"2014-06-11T02:15:00Z","updated_at":"2014-06-11T17:03:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1d2f0d8cbb68d2d9c4d52f149a5c3807c9a07ad8","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/AppScale/appscale/pulls/1556/commits","review_comments_url":"https://api.github.com/repos/AppScale/appscale/pulls/1556/comments","review_comment_url":"https://api.github.com/repos/AppScale/appscale/pulls/comments/{number}","comments_url":"https://api.github.com/repos/AppScale/appscale/issues/1556/comments","statuses_url":"https://api.github.com/repos/AppScale/appscale/statuses/5099047d4fd31d7462df72bdd7757d821c17a116","head":{"label":"dnascimento:openstack_cloud","ref":"openstack_cloud","sha":"5099047d4fd31d7462df72bdd7757d821c17a116","user":{"login":"dnascimento","id":933984,"avatar_url":"https://avatars.githubusercontent.com/u/933984?","gravatar_id":"3fa057d2e1f33a85d4ed93df96828f0d","url":"https://api.github.com/users/dnascimento","html_url":"https://github.com/dnascimento","followers_url":"https://api.github.com/users/dnascimento/followers","following_url":"https://api.github.com/users/dnascimento/following{/other_user}","gists_url":"https://api.github.com/users/dnascimento/gists{/gist_id}","starred_url":"https://api.github.com/users/dnascimento/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnascimento/subscriptions","organizations_url":"https://api.github.com/users/dnascimento/orgs","repos_url":"https://api.github.com/users/dnascimento/repos","events_url":"https://api.github.com/users/dnascimento/events{/privacy}","received_events_url":"https://api.github.com/users/dnascimento/received_events","type":"User","site_admin":false},"repo":{"id":20501956,"name":"appscale","full_name":"dnascimento/appscale","owner":{"login":"dnascimento","id":933984,"avatar_url":"https://avatars.githubusercontent.com/u/933984?","gravatar_id":"3fa057d2e1f33a85d4ed93df96828f0d","url":"https://api.github.com/users/dnascimento","html_url":"https://github.com/dnascimento","followers_url":"https://api.github.com/users/dnascimento/followers","following_url":"https://api.github.com/users/dnascimento/following{/other_user}","gists_url":"https://api.github.com/users/dnascimento/gists{/gist_id}","starred_url":"https://api.github.com/users/dnascimento/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnascimento/subscriptions","organizations_url":"https://api.github.com/users/dnascimento/orgs","repos_url":"https://api.github.com/users/dnascimento/repos","events_url":"https://api.github.com/users/dnascimento/events{/privacy}","received_events_url":"https://api.github.com/users/dnascimento/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dnascimento/appscale","description":"The Open Source Implementation of Google App Engine -- Take your apps everywhere.","fork":true,"url":"https://api.github.com/repos/dnascimento/appscale","forks_url":"https://api.github.com/repos/dnascimento/appscale/forks","keys_url":"https://api.github.com/repos/dnascimento/appscale/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dnascimento/appscale/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dnascimento/appscale/teams","hooks_url":"https://api.github.com/repos/dnascimento/appscale/hooks","issue_events_url":"https://api.github.com/repos/dnascimento/appscale/issues/events{/number}","events_url":"https://api.github.com/repos/dnascimento/appscale/events","assignees_url":"https://api.github.com/repos/dnascimento/appscale/assignees{/user}","branches_url":"https://api.github.com/repos/dnascimento/appscale/branches{/branch}","tags_url":"https://api.github.com/repos/dnascimento/appscale/tags","blobs_url":"https://api.github.com/repos/dnascimento/appscale/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dnascimento/appscale/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dnascimento/appscale/git/refs{/sha}","trees_url":"https://api.github.com/repos/dnascimento/appscale/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dnascimento/appscale/statuses/{sha}","languages_url":"https://api.github.com/repos/dnascimento/appscale/languages","stargazers_url":"https://api.github.com/repos/dnascimento/appscale/stargazers","contributors_url":"https://api.github.com/repos/dnascimento/appscale/contributors","subscribers_url":"https://api.github.com/repos/dnascimento/appscale/subscribers","subscription_url":"https://api.github.com/repos/dnascimento/appscale/subscription","commits_url":"https://api.github.com/repos/dnascimento/appscale/commits{/sha}","git_commits_url":"https://api.github.com/repos/dnascimento/appscale/git/commits{/sha}","comments_url":"https://api.github.com/repos/dnascimento/appscale/comments{/number}","issue_comment_url":"https://api.github.com/repos/dnascimento/appscale/issues/comments/{number}","contents_url":"https://api.github.com/repos/dnascimento/appscale/contents/{+path}","compare_url":"https://api.github.com/repos/dnascimento/appscale/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dnascimento/appscale/merges","archive_url":"https://api.github.com/repos/dnascimento/appscale/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dnascimento/appscale/downloads","issues_url":"https://api.github.com/repos/dnascimento/appscale/issues{/number}","pulls_url":"https://api.github.com/repos/dnascimento/appscale/pulls{/number}","milestones_url":"https://api.github.com/repos/dnascimento/appscale/milestones{/number}","notifications_url":"https://api.github.com/repos/dnascimento/appscale/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dnascimento/appscale/labels{/name}","releases_url":"https://api.github.com/repos/dnascimento/appscale/releases{/id}","created_at":"2014-06-04T21:42:15Z","updated_at":"2014-06-11T02:15:00Z","pushed_at":"2014-06-08T15:02:40Z","git_url":"git://github.com/dnascimento/appscale.git","ssh_url":"git@github.com:dnascimento/appscale.git","clone_url":"https://github.com/dnascimento/appscale.git","svn_url":"https://github.com/dnascimento/appscale","homepage":"http://www.appscale.com","size":194171,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"AppScale:master","ref":"master","sha":"1220fa2170e9f6e40777b0ec16a324e15a5eebe4","user":{"login":"AppScale","id":1486044,"avatar_url":"https://avatars.githubusercontent.com/u/1486044?","gravatar_id":"5b4f71454d5d0ebf8acdf41a80b06e35","url":"https://api.github.com/users/AppScale","html_url":"https://github.com/AppScale","followers_url":"https://api.github.com/users/AppScale/followers","following_url":"https://api.github.com/users/AppScale/following{/other_user}","gists_url":"https://api.github.com/users/AppScale/gists{/gist_id}","starred_url":"https://api.github.com/users/AppScale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AppScale/subscriptions","organizations_url":"https://api.github.com/users/AppScale/orgs","repos_url":"https://api.github.com/users/AppScale/repos","events_url":"https://api.github.com/users/AppScale/events{/privacy}","received_events_url":"https://api.github.com/users/AppScale/received_events","type":"Organization","site_admin":false},"repo":{"id":3803067,"name":"appscale","full_name":"AppScale/appscale","owner":{"login":"AppScale","id":1486044,"avatar_url":"https://avatars.githubusercontent.com/u/1486044?","gravatar_id":"5b4f71454d5d0ebf8acdf41a80b06e35","url":"https://api.github.com/users/AppScale","html_url":"https://github.com/AppScale","followers_url":"https://api.github.com/users/AppScale/followers","following_url":"https://api.github.com/users/AppScale/following{/other_user}","gists_url":"https://api.github.com/users/AppScale/gists{/gist_id}","starred_url":"https://api.github.com/users/AppScale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AppScale/subscriptions","organizations_url":"https://api.github.com/users/AppScale/orgs","repos_url":"https://api.github.com/users/AppScale/repos","events_url":"https://api.github.com/users/AppScale/events{/privacy}","received_events_url":"https://api.github.com/users/AppScale/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AppScale/appscale","description":"The Open Source Implementation of Google App Engine -- Take your apps everywhere.","fork":false,"url":"https://api.github.com/repos/AppScale/appscale","forks_url":"https://api.github.com/repos/AppScale/appscale/forks","keys_url":"https://api.github.com/repos/AppScale/appscale/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AppScale/appscale/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AppScale/appscale/teams","hooks_url":"https://api.github.com/repos/AppScale/appscale/hooks","issue_events_url":"https://api.github.com/repos/AppScale/appscale/issues/events{/number}","events_url":"https://api.github.com/repos/AppScale/appscale/events","assignees_url":"https://api.github.com/repos/AppScale/appscale/assignees{/user}","branches_url":"https://api.github.com/repos/AppScale/appscale/branches{/branch}","tags_url":"https://api.github.com/repos/AppScale/appscale/tags","blobs_url":"https://api.github.com/repos/AppScale/appscale/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AppScale/appscale/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AppScale/appscale/git/refs{/sha}","trees_url":"https://api.github.com/repos/AppScale/appscale/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AppScale/appscale/statuses/{sha}","languages_url":"https://api.github.com/repos/AppScale/appscale/languages","stargazers_url":"https://api.github.com/repos/AppScale/appscale/stargazers","contributors_url":"https://api.github.com/repos/AppScale/appscale/contributors","subscribers_url":"https://api.github.com/repos/AppScale/appscale/subscribers","subscription_url":"https://api.github.com/repos/AppScale/appscale/subscription","commits_url":"https://api.github.com/repos/AppScale/appscale/commits{/sha}","git_commits_url":"https://api.github.com/repos/AppScale/appscale/git/commits{/sha}","comments_url":"https://api.github.com/repos/AppScale/appscale/comments{/number}","issue_comment_url":"https://api.github.com/repos/AppScale/appscale/issues/comments/{number}","contents_url":"https://api.github.com/repos/AppScale/appscale/contents/{+path}","compare_url":"https://api.github.com/repos/AppScale/appscale/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AppScale/appscale/merges","archive_url":"https://api.github.com/repos/AppScale/appscale/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AppScale/appscale/downloads","issues_url":"https://api.github.com/repos/AppScale/appscale/issues{/number}","pulls_url":"https://api.github.com/repos/AppScale/appscale/pulls{/number}","milestones_url":"https://api.github.com/repos/AppScale/appscale/milestones{/number}","notifications_url":"https://api.github.com/repos/AppScale/appscale/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AppScale/appscale/labels{/name}","releases_url":"https://api.github.com/repos/AppScale/appscale/releases{/id}","created_at":"2012-03-22T22:35:50Z","updated_at":"2014-06-10T22:36:28Z","pushed_at":"2014-06-10T22:36:29Z","git_url":"git://github.com/AppScale/appscale.git","ssh_url":"git@github.com:AppScale/appscale.git","clone_url":"https://github.com/AppScale/appscale.git","svn_url":"https://github.com/AppScale/appscale","homepage":"http://www.appscale.com","size":194171,"stargazers_count":1240,"watchers_count":1240,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":145,"mirror_url":null,"open_issues_count":47,"forks":145,"open_issues":47,"watchers":1240,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/AppScale/appscale/pulls/1556"},"html":{"href":"https://github.com/AppScale/appscale/pull/1556"},"issue":{"href":"https://api.github.com/repos/AppScale/appscale/issues/1556"},"comments":{"href":"https://api.github.com/repos/AppScale/appscale/issues/1556/comments"},"review_comments":{"href":"https://api.github.com/repos/AppScale/appscale/pulls/1556/comments"},"review_comment":{"href":"https://api.github.com/repos/AppScale/appscale/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/AppScale/appscale/pulls/1556/commits"},"statuses":{"href":"https://api.github.com/repos/AppScale/appscale/statuses/5099047d4fd31d7462df72bdd7757d821c17a116"}}}}