GitHub PullRequestReviewCommentEvent at 2014-10-10 10:30:08
Repository: libcontainer
Actor: vmarmol
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/docker/libcontainer/pulls/comments/18698355","id":18698355,"diff_hunk":"@@ -0,0 +1,257 @@\n+// +build linux\n+\n+package libcontainer\n+\n+import (\n+\t\"fmt\"\n+\t\"log\"\n+\t\"os\"\n+\t\"sync\"\n+\t\"syscall\"\n+\n+\t_libct \"github.com/xemul/libct/go\"\n+\t\"github.com/docker/libcontainer/libct\"\n+\t\"github.com/docker/libcontainer/mount\"\n+\t\"github.com/docker/libcontainer/network\"\n+\t\"github.com/docker/libcontainer/security/capabilities\"\n+)\n+\n+// this is to enforce that the libctContainer conforms to the Container interface at compile time\n+var _ Container = (*libctContainer)(nil)\n+\n+// libctContainer represents a container that can be executed on linux based host machines\n+type libctContainer struct {\n+\tmux sync.Mutex","path":"libct_container.go","position":24,"original_position":24,"commit_id":"dc6bc283f0b5bb27d0947c4f2c906bd3b0a92bd6","original_commit_id":"dc6bc283f0b5bb27d0947c4f2c906bd3b0a92bd6","user":{"login":"vmarmol","id":985208,"avatar_url":"https://avatars.githubusercontent.com/u/985208?v=2","gravatar_id":"","url":"https://api.github.com/users/vmarmol","html_url":"https://github.com/vmarmol","followers_url":"https://api.github.com/users/vmarmol/followers","following_url":"https://api.github.com/users/vmarmol/following{/other_user}","gists_url":"https://api.github.com/users/vmarmol/gists{/gist_id}","starred_url":"https://api.github.com/users/vmarmol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vmarmol/subscriptions","organizations_url":"https://api.github.com/users/vmarmol/orgs","repos_url":"https://api.github.com/users/vmarmol/repos","events_url":"https://api.github.com/users/vmarmol/events{/privacy}","received_events_url":"https://api.github.com/users/vmarmol/received_events","type":"User","site_admin":false},"body":"nit: we tend to call these \"lock\"","created_at":"2014-10-10T10:30:08Z","updated_at":"2014-10-10T10:30:08Z","html_url":"https://github.com/docker/libcontainer/pull/217#discussion_r18698355","pull_request_url":"https://api.github.com/repos/docker/libcontainer/pulls/217","_links":{"self":{"href":"https://api.github.com/repos/docker/libcontainer/pulls/comments/18698355"},"html":{"href":"https://github.com/docker/libcontainer/pull/217#discussion_r18698355"},"pull_request":{"href":"https://api.github.com/repos/docker/libcontainer/pulls/217"}}},"pull_request":{"url":"https://api.github.com/repos/docker/libcontainer/pulls/217","id":22489278,"html_url":"https://github.com/docker/libcontainer/pull/217","diff_url":"https://github.com/docker/libcontainer/pull/217.diff","patch_url":"https://github.com/docker/libcontainer/pull/217.patch","issue_url":"https://api.github.com/repos/docker/libcontainer/issues/217","number":217,"state":"open","locked":false,"title":"[RFC] Initial integration of libct into libcontainer","user":{"login":"avagin","id":1049830,"avatar_url":"https://avatars.githubusercontent.com/u/1049830?v=2","gravatar_id":"","url":"https://api.github.com/users/avagin","html_url":"https://github.com/avagin","followers_url":"https://api.github.com/users/avagin/followers","following_url":"https://api.github.com/users/avagin/following{/other_user}","gists_url":"https://api.github.com/users/avagin/gists{/gist_id}","starred_url":"https://api.github.com/users/avagin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avagin/subscriptions","organizations_url":"https://api.github.com/users/avagin/orgs","repos_url":"https://api.github.com/users/avagin/repos","events_url":"https://api.github.com/users/avagin/events{/privacy}","received_events_url":"https://api.github.com/users/avagin/received_events","type":"User","site_admin":false},"body":"Hi All,\r\n\r\nI'm integrating libct with libcontainer. I would like to share with you\r\nthis early draft to gather your opinions and advices.\r\n\r\nThis patch adds new factory and container classes to create and manage\r\ncontainers via LibCT. This version is based on Michael's version of\r\nlibcontainer, where is a new api is used.  It has minimal functionality\r\njust to show you how it looks like.\r\n\r\nThe current version of the abstract interface is a bit different. It\r\ndoesn't affect the idea of this patch. I will update the patch as soon\r\nas libcontainer starts using the new interface.\r\n\r\nLibCT is a library for creating and managing containers. It has ability\r\nto add different backends. Currently it has only a native backend, which\r\nis the same what libcontainer has now. We are developing a backend for\r\nOpenVZ and PCS.\r\n\r\nNotes:\r\nThe dockerinit process isn't required for libct. If I understand\r\ncorrectly, dockerinit is used, because in golang code we should make\r\nos.exec() immediately after os.clone().\r\n\r\nIf you want to play with this code, you can clone\r\nhttps://github.com/avagin/libcontainer/commits/devel-new\r\n\r\nCc: Michael Crosby <michael@docker.com>\r\nCc: Victor Marmol <vmarmol@google.com>\r\nCc: Pavel Emelyanov <xemul@parallels.com>","created_at":"2014-10-09T12:23:35Z","updated_at":"2014-10-10T10:30:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b4e22477f12fadca2a40940c66c9b88824f2a62e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/docker/libcontainer/pulls/217/commits","review_comments_url":"https://api.github.com/repos/docker/libcontainer/pulls/217/comments","review_comment_url":"https://api.github.com/repos/docker/libcontainer/pulls/comments/{number}","comments_url":"https://api.github.com/repos/docker/libcontainer/issues/217/comments","statuses_url":"https://api.github.com/repos/docker/libcontainer/statuses/dc6bc283f0b5bb27d0947c4f2c906bd3b0a92bd6","head":{"label":"avagin:preview","ref":"preview","sha":"dc6bc283f0b5bb27d0947c4f2c906bd3b0a92bd6","user":{"login":"avagin","id":1049830,"avatar_url":"https://avatars.githubusercontent.com/u/1049830?v=2","gravatar_id":"","url":"https://api.github.com/users/avagin","html_url":"https://github.com/avagin","followers_url":"https://api.github.com/users/avagin/followers","following_url":"https://api.github.com/users/avagin/following{/other_user}","gists_url":"https://api.github.com/users/avagin/gists{/gist_id}","starred_url":"https://api.github.com/users/avagin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avagin/subscriptions","organizations_url":"https://api.github.com/users/avagin/orgs","repos_url":"https://api.github.com/users/avagin/repos","events_url":"https://api.github.com/users/avagin/events{/privacy}","received_events_url":"https://api.github.com/users/avagin/received_events","type":"User","site_admin":false},"repo":{"id":20919709,"name":"libcontainer","full_name":"avagin/libcontainer","owner":{"login":"avagin","id":1049830,"avatar_url":"https://avatars.githubusercontent.com/u/1049830?v=2","gravatar_id":"","url":"https://api.github.com/users/avagin","html_url":"https://github.com/avagin","followers_url":"https://api.github.com/users/avagin/followers","following_url":"https://api.github.com/users/avagin/following{/other_user}","gists_url":"https://api.github.com/users/avagin/gists{/gist_id}","starred_url":"https://api.github.com/users/avagin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avagin/subscriptions","organizations_url":"https://api.github.com/users/avagin/orgs","repos_url":"https://api.github.com/users/avagin/repos","events_url":"https://api.github.com/users/avagin/events{/privacy}","received_events_url":"https://api.github.com/users/avagin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/avagin/libcontainer","description":"Linux Containers","fork":true,"url":"https://api.github.com/repos/avagin/libcontainer","forks_url":"https://api.github.com/repos/avagin/libcontainer/forks","keys_url":"https://api.github.com/repos/avagin/libcontainer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/avagin/libcontainer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/avagin/libcontainer/teams","hooks_url":"https://api.github.com/repos/avagin/libcontainer/hooks","issue_events_url":"https://api.github.com/repos/avagin/libcontainer/issues/events{/number}","events_url":"https://api.github.com/repos/avagin/libcontainer/events","assignees_url":"https://api.github.com/repos/avagin/libcontainer/assignees{/user}","branches_url":"https://api.github.com/repos/avagin/libcontainer/branches{/branch}","tags_url":"https://api.github.com/repos/avagin/libcontainer/tags","blobs_url":"https://api.github.com/repos/avagin/libcontainer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/avagin/libcontainer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/avagin/libcontainer/git/refs{/sha}","trees_url":"https://api.github.com/repos/avagin/libcontainer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/avagin/libcontainer/statuses/{sha}","languages_url":"https://api.github.com/repos/avagin/libcontainer/languages","stargazers_url":"https://api.github.com/repos/avagin/libcontainer/stargazers","contributors_url":"https://api.github.com/repos/avagin/libcontainer/contributors","subscribers_url":"https://api.github.com/repos/avagin/libcontainer/subscribers","subscription_url":"https://api.github.com/repos/avagin/libcontainer/subscription","commits_url":"https://api.github.com/repos/avagin/libcontainer/commits{/sha}","git_commits_url":"https://api.github.com/repos/avagin/libcontainer/git/commits{/sha}","comments_url":"https://api.github.com/repos/avagin/libcontainer/comments{/number}","issue_comment_url":"https://api.github.com/repos/avagin/libcontainer/issues/comments/{number}","contents_url":"https://api.github.com/repos/avagin/libcontainer/contents/{+path}","compare_url":"https://api.github.com/repos/avagin/libcontainer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/avagin/libcontainer/merges","archive_url":"https://api.github.com/repos/avagin/libcontainer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/avagin/libcontainer/downloads","issues_url":"https://api.github.com/repos/avagin/libcontainer/issues{/number}","pulls_url":"https://api.github.com/repos/avagin/libcontainer/pulls{/number}","milestones_url":"https://api.github.com/repos/avagin/libcontainer/milestones{/number}","notifications_url":"https://api.github.com/repos/avagin/libcontainer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/avagin/libcontainer/labels{/name}","releases_url":"https://api.github.com/repos/avagin/libcontainer/releases{/id}","created_at":"2014-06-17T10:43:40Z","updated_at":"2014-10-09T12:25:21Z","pushed_at":"2014-10-09T12:25:22Z","git_url":"git://github.com/avagin/libcontainer.git","ssh_url":"git@github.com:avagin/libcontainer.git","clone_url":"https://github.com/avagin/libcontainer.git","svn_url":"https://github.com/avagin/libcontainer","homepage":"http://www.docker.com/","size":658,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"docker:master","ref":"master","sha":"f4254672e6ef366343e27da68803d038c12a0671","user":{"login":"docker","id":5429470,"avatar_url":"https://avatars.githubusercontent.com/u/5429470?v=2","gravatar_id":"","url":"https://api.github.com/users/docker","html_url":"https://github.com/docker","followers_url":"https://api.github.com/users/docker/followers","following_url":"https://api.github.com/users/docker/following{/other_user}","gists_url":"https://api.github.com/users/docker/gists{/gist_id}","starred_url":"https://api.github.com/users/docker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/docker/subscriptions","organizations_url":"https://api.github.com/users/docker/orgs","repos_url":"https://api.github.com/users/docker/repos","events_url":"https://api.github.com/users/docker/events{/privacy}","received_events_url":"https://api.github.com/users/docker/received_events","type":"Organization","site_admin":false},"repo":{"id":15693680,"name":"libcontainer","full_name":"docker/libcontainer","owner":{"login":"docker","id":5429470,"avatar_url":"https://avatars.githubusercontent.com/u/5429470?v=2","gravatar_id":"","url":"https://api.github.com/users/docker","html_url":"https://github.com/docker","followers_url":"https://api.github.com/users/docker/followers","following_url":"https://api.github.com/users/docker/following{/other_user}","gists_url":"https://api.github.com/users/docker/gists{/gist_id}","starred_url":"https://api.github.com/users/docker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/docker/subscriptions","organizations_url":"https://api.github.com/users/docker/orgs","repos_url":"https://api.github.com/users/docker/repos","events_url":"https://api.github.com/users/docker/events{/privacy}","received_events_url":"https://api.github.com/users/docker/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/docker/libcontainer","description":"Linux Containers","fork":false,"url":"https://api.github.com/repos/docker/libcontainer","forks_url":"https://api.github.com/repos/docker/libcontainer/forks","keys_url":"https://api.github.com/repos/docker/libcontainer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/docker/libcontainer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/docker/libcontainer/teams","hooks_url":"https://api.github.com/repos/docker/libcontainer/hooks","issue_events_url":"https://api.github.com/repos/docker/libcontainer/issues/events{/number}","events_url":"https://api.github.com/repos/docker/libcontainer/events","assignees_url":"https://api.github.com/repos/docker/libcontainer/assignees{/user}","branches_url":"https://api.github.com/repos/docker/libcontainer/branches{/branch}","tags_url":"https://api.github.com/repos/docker/libcontainer/tags","blobs_url":"https://api.github.com/repos/docker/libcontainer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/docker/libcontainer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/docker/libcontainer/git/refs{/sha}","trees_url":"https://api.github.com/repos/docker/libcontainer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/docker/libcontainer/statuses/{sha}","languages_url":"https://api.github.com/repos/docker/libcontainer/languages","stargazers_url":"https://api.github.com/repos/docker/libcontainer/stargazers","contributors_url":"https://api.github.com/repos/docker/libcontainer/contributors","subscribers_url":"https://api.github.com/repos/docker/libcontainer/subscribers","subscription_url":"https://api.github.com/repos/docker/libcontainer/subscription","commits_url":"https://api.github.com/repos/docker/libcontainer/commits{/sha}","git_commits_url":"https://api.github.com/repos/docker/libcontainer/git/commits{/sha}","comments_url":"https://api.github.com/repos/docker/libcontainer/comments{/number}","issue_comment_url":"https://api.github.com/repos/docker/libcontainer/issues/comments/{number}","contents_url":"https://api.github.com/repos/docker/libcontainer/contents/{+path}","compare_url":"https://api.github.com/repos/docker/libcontainer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/docker/libcontainer/merges","archive_url":"https://api.github.com/repos/docker/libcontainer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/docker/libcontainer/downloads","issues_url":"https://api.github.com/repos/docker/libcontainer/issues{/number}","pulls_url":"https://api.github.com/repos/docker/libcontainer/pulls{/number}","milestones_url":"https://api.github.com/repos/docker/libcontainer/milestones{/number}","notifications_url":"https://api.github.com/repos/docker/libcontainer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/docker/libcontainer/labels{/name}","releases_url":"https://api.github.com/repos/docker/libcontainer/releases{/id}","created_at":"2014-01-07T03:05:05Z","updated_at":"2014-10-10T09:49:22Z","pushed_at":"2014-10-08T08:51:50Z","git_url":"git://github.com/docker/libcontainer.git","ssh_url":"git@github.com:docker/libcontainer.git","clone_url":"https://github.com/docker/libcontainer.git","svn_url":"https://github.com/docker/libcontainer","homepage":"http://www.docker.com/","size":4728,"stargazers_count":503,"watchers_count":503,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":106,"mirror_url":null,"open_issues_count":35,"forks":106,"open_issues":35,"watchers":503,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/docker/libcontainer/pulls/217"},"html":{"href":"https://github.com/docker/libcontainer/pull/217"},"issue":{"href":"https://api.github.com/repos/docker/libcontainer/issues/217"},"comments":{"href":"https://api.github.com/repos/docker/libcontainer/issues/217/comments"},"review_comments":{"href":"https://api.github.com/repos/docker/libcontainer/pulls/217/comments"},"review_comment":{"href":"https://api.github.com/repos/docker/libcontainer/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/docker/libcontainer/pulls/217/commits"},"statuses":{"href":"https://api.github.com/repos/docker/libcontainer/statuses/dc6bc283f0b5bb27d0947c4f2c906bd3b0a92bd6"}}}}