{"action":"created","comment":{"url":"https://api.github.com/repos/xapi-project/xenopsd/pulls/comments/171240138","pull_request_review_id":100056526,"id":171240138,"diff_hunk":"@@ -2473,8 +2506,20 @@ module Dm = struct\n         )\n     | _ -> failwith \"Unsupported vGPU configuration\"\n \n-  let __start (task: Xenops_task.task_handle) ~xs ~dm ?(timeout = !Xenopsd.qemu_dm_ready_timeout) l info domid =\n-    debug \"Device.Dm.start domid=%d args: [%s]\" domid (String.concat \" \" l);\n+\n+  type action = Start | Restore | StartVNC\n+\n+  let __start (task: Xenops_task.task_handle)\n+      ~xs ~dm ?(timeout = !Xenopsd.qemu_dm_ready_timeout) action info domid =\n+\n+    let args = match action with\n+      | Start    -> qemu_args ~xs ~dm info false domid","path":"xc/device.ml","position":188,"original_position":188,"commit_id":"8b27c0e1c67a9dec77c3e61d01d9bf85a64e8cf1","original_commit_id":"8b27c0e1c67a9dec77c3e61d01d9bf85a64e8cf1","user":{"login":"mseri","id":4040623,"avatar_url":"https://avatars0.githubusercontent.com/u/4040623?v=4","gravatar_id":"","url":"https://api.github.com/users/mseri","html_url":"https://github.com/mseri","followers_url":"https://api.github.com/users/mseri/followers","following_url":"https://api.github.com/users/mseri/following{/other_user}","gists_url":"https://api.github.com/users/mseri/gists{/gist_id}","starred_url":"https://api.github.com/users/mseri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mseri/subscriptions","organizations_url":"https://api.github.com/users/mseri/orgs","repos_url":"https://api.github.com/users/mseri/repos","events_url":"https://api.github.com/users/mseri/events{/privacy}","received_events_url":"https://api.github.com/users/mseri/received_events","type":"User","site_admin":false},"body":"Please use the boolean as named argument `domid_for_vnc`","created_at":"2018-02-28T13:14:35Z","updated_at":"2018-02-28T13:14:35Z","html_url":"https://github.com/xapi-project/xenopsd/pull/460#discussion_r171240138","pull_request_url":"https://api.github.com/repos/xapi-project/xenopsd/pulls/460","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/xapi-project/xenopsd/pulls/comments/171240138"},"html":{"href":"https://github.com/xapi-project/xenopsd/pull/460#discussion_r171240138"},"pull_request":{"href":"https://api.github.com/repos/xapi-project/xenopsd/pulls/460"}}},"pull_request":{"url":"https://api.github.com/repos/xapi-project/xenopsd/pulls/460","id":171423045,"html_url":"https://github.com/xapi-project/xenopsd/pull/460","diff_url":"https://github.com/xapi-project/xenopsd/pull/460.diff","patch_url":"https://github.com/xapi-project/xenopsd/pull/460.patch","issue_url":"https://api.github.com/repos/xapi-project/xenopsd/issues/460","number":460,"state":"open","locked":false,"title":"CP-25898 move qemu -netdev option into xenopsd ","user":{"login":"lindig","id":843617,"avatar_url":"https://avatars3.githubusercontent.com/u/843617?v=4","gravatar_id":"","url":"https://api.github.com/users/lindig","html_url":"https://github.com/lindig","followers_url":"https://api.github.com/users/lindig/followers","following_url":"https://api.github.com/users/lindig/following{/other_user}","gists_url":"https://api.github.com/users/lindig/gists{/gist_id}","starred_url":"https://api.github.com/users/lindig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lindig/subscriptions","organizations_url":"https://api.github.com/users/lindig/orgs","repos_url":"https://api.github.com/users/lindig/repos","events_url":"https://api.github.com/users/lindig/events{/privacy}","received_events_url":"https://api.github.com/users/lindig/received_events","type":"User","site_admin":false},"body":"This series of commits moves the code for the -netdev option from qemu wrapper into xenopsd. Handling this option has one small difficulty: We need to open a network device and pass the file descriptor on the command line. This makes opening the device and creating the command line interdependent. Furthermore, the file descriptor needs to be passed to qemu (wrapper and then binary) and closed once passed. For this, we have to employ the fd mapping feature of Forkexecd: on the command line the filedescriptor is encoded as a UUID, which is replaced by Forkexecd when it creates the new process with the open file descriptor.\r\n\r\n* Introduce a new type qemu_args that captures argv and open files\r\n* qemu_argv() constructs command line and opens files, returns qemu_args value\r\n* qemu_argv() uses Tuntap.tap_open() (relies on C stubs) to open device\r\n* Forkhelpers.safe_close_and_exec takes care of mapping UUID/fd mapping. It is called via \r\n  start_daemin()\r\n","created_at":"2018-02-26T16:24:17Z","updated_at":"2018-02-28T13:14:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"69e0a529cea9c6e7f231d131e0d203bbaabf4aec","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/xapi-project/xenopsd/pulls/460/commits","review_comments_url":"https://api.github.com/repos/xapi-project/xenopsd/pulls/460/comments","review_comment_url":"https://api.github.com/repos/xapi-project/xenopsd/pulls/comments{/number}","comments_url":"https://api.github.com/repos/xapi-project/xenopsd/issues/460/comments","statuses_url":"https://api.github.com/repos/xapi-project/xenopsd/statuses/8b27c0e1c67a9dec77c3e61d01d9bf85a64e8cf1","head":{"label":"lindig:CP-25898","ref":"CP-25898","sha":"8b27c0e1c67a9dec77c3e61d01d9bf85a64e8cf1","user":{"login":"lindig","id":843617,"avatar_url":"https://avatars3.githubusercontent.com/u/843617?v=4","gravatar_id":"","url":"https://api.github.com/users/lindig","html_url":"https://github.com/lindig","followers_url":"https://api.github.com/users/lindig/followers","following_url":"https://api.github.com/users/lindig/following{/other_user}","gists_url":"https://api.github.com/users/lindig/gists{/gist_id}","starred_url":"https://api.github.com/users/lindig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lindig/subscriptions","organizations_url":"https://api.github.com/users/lindig/orgs","repos_url":"https://api.github.com/users/lindig/repos","events_url":"https://api.github.com/users/lindig/events{/privacy}","received_events_url":"https://api.github.com/users/lindig/received_events","type":"User","site_admin":false},"repo":{"id":58365569,"name":"xenopsd","full_name":"lindig/xenopsd","owner":{"login":"lindig","id":843617,"avatar_url":"https://avatars3.githubusercontent.com/u/843617?v=4","gravatar_id":"","url":"https://api.github.com/users/lindig","html_url":"https://github.com/lindig","followers_url":"https://api.github.com/users/lindig/followers","following_url":"https://api.github.com/users/lindig/following{/other_user}","gists_url":"https://api.github.com/users/lindig/gists{/gist_id}","starred_url":"https://api.github.com/users/lindig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lindig/subscriptions","organizations_url":"https://api.github.com/users/lindig/orgs","repos_url":"https://api.github.com/users/lindig/repos","events_url":"https://api.github.com/users/lindig/events{/privacy}","received_events_url":"https://api.github.com/users/lindig/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/lindig/xenopsd","description":"XCP toolstack domain manager","fork":true,"url":"https://api.github.com/repos/lindig/xenopsd","forks_url":"https://api.github.com/repos/lindig/xenopsd/forks","keys_url":"https://api.github.com/repos/lindig/xenopsd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lindig/xenopsd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lindig/xenopsd/teams","hooks_url":"https://api.github.com/repos/lindig/xenopsd/hooks","issue_events_url":"https://api.github.com/repos/lindig/xenopsd/issues/events{/number}","events_url":"https://api.github.com/repos/lindig/xenopsd/events","assignees_url":"https://api.github.com/repos/lindig/xenopsd/assignees{/user}","branches_url":"https://api.github.com/repos/lindig/xenopsd/branches{/branch}","tags_url":"https://api.github.com/repos/lindig/xenopsd/tags","blobs_url":"https://api.github.com/repos/lindig/xenopsd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lindig/xenopsd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lindig/xenopsd/git/refs{/sha}","trees_url":"https://api.github.com/repos/lindig/xenopsd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lindig/xenopsd/statuses/{sha}","languages_url":"https://api.github.com/repos/lindig/xenopsd/languages","stargazers_url":"https://api.github.com/repos/lindig/xenopsd/stargazers","contributors_url":"https://api.github.com/repos/lindig/xenopsd/contributors","subscribers_url":"https://api.github.com/repos/lindig/xenopsd/subscribers","subscription_url":"https://api.github.com/repos/lindig/xenopsd/subscription","commits_url":"https://api.github.com/repos/lindig/xenopsd/commits{/sha}","git_commits_url":"https://api.github.com/repos/lindig/xenopsd/git/commits{/sha}","comments_url":"https://api.github.com/repos/lindig/xenopsd/comments{/number}","issue_comment_url":"https://api.github.com/repos/lindig/xenopsd/issues/comments{/number}","contents_url":"https://api.github.com/repos/lindig/xenopsd/contents/{+path}","compare_url":"https://api.github.com/repos/lindig/xenopsd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lindig/xenopsd/merges","archive_url":"https://api.github.com/repos/lindig/xenopsd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lindig/xenopsd/downloads","issues_url":"https://api.github.com/repos/lindig/xenopsd/issues{/number}","pulls_url":"https://api.github.com/repos/lindig/xenopsd/pulls{/number}","milestones_url":"https://api.github.com/repos/lindig/xenopsd/milestones{/number}","notifications_url":"https://api.github.com/repos/lindig/xenopsd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lindig/xenopsd/labels{/name}","releases_url":"https://api.github.com/repos/lindig/xenopsd/releases{/id}","deployments_url":"https://api.github.com/repos/lindig/xenopsd/deployments","created_at":"2016-05-09T09:39:49Z","updated_at":"2016-05-09T09:39:51Z","pushed_at":"2018-02-27T13:05:38Z","git_url":"git://github.com/lindig/xenopsd.git","ssh_url":"git@github.com:lindig/xenopsd.git","clone_url":"https://github.com/lindig/xenopsd.git","svn_url":"https://github.com/lindig/xenopsd","homepage":null,"size":32743,"stargazers_count":0,"watchers_count":0,"language":"OCaml","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"xapi-project:qemu-upstream","ref":"qemu-upstream","sha":"530fa32d0159ad6a97d0003e4751db7c2f647591","user":{"login":"xapi-project","id":317268,"avatar_url":"https://avatars3.githubusercontent.com/u/317268?v=4","gravatar_id":"","url":"https://api.github.com/users/xapi-project","html_url":"https://github.com/xapi-project","followers_url":"https://api.github.com/users/xapi-project/followers","following_url":"https://api.github.com/users/xapi-project/following{/other_user}","gists_url":"https://api.github.com/users/xapi-project/gists{/gist_id}","starred_url":"https://api.github.com/users/xapi-project/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xapi-project/subscriptions","organizations_url":"https://api.github.com/users/xapi-project/orgs","repos_url":"https://api.github.com/users/xapi-project/repos","events_url":"https://api.github.com/users/xapi-project/events{/privacy}","received_events_url":"https://api.github.com/users/xapi-project/received_events","type":"Organization","site_admin":false},"repo":{"id":7563740,"name":"xenopsd","full_name":"xapi-project/xenopsd","owner":{"login":"xapi-project","id":317268,"avatar_url":"https://avatars3.githubusercontent.com/u/317268?v=4","gravatar_id":"","url":"https://api.github.com/users/xapi-project","html_url":"https://github.com/xapi-project","followers_url":"https://api.github.com/users/xapi-project/followers","following_url":"https://api.github.com/users/xapi-project/following{/other_user}","gists_url":"https://api.github.com/users/xapi-project/gists{/gist_id}","starred_url":"https://api.github.com/users/xapi-project/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xapi-project/subscriptions","organizations_url":"https://api.github.com/users/xapi-project/orgs","repos_url":"https://api.github.com/users/xapi-project/repos","events_url":"https://api.github.com/users/xapi-project/events{/privacy}","received_events_url":"https://api.github.com/users/xapi-project/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/xapi-project/xenopsd","description":"XCP toolstack domain manager","fork":false,"url":"https://api.github.com/repos/xapi-project/xenopsd","forks_url":"https://api.github.com/repos/xapi-project/xenopsd/forks","keys_url":"https://api.github.com/repos/xapi-project/xenopsd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xapi-project/xenopsd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xapi-project/xenopsd/teams","hooks_url":"https://api.github.com/repos/xapi-project/xenopsd/hooks","issue_events_url":"https://api.github.com/repos/xapi-project/xenopsd/issues/events{/number}","events_url":"https://api.github.com/repos/xapi-project/xenopsd/events","assignees_url":"https://api.github.com/repos/xapi-project/xenopsd/assignees{/user}","branches_url":"https://api.github.com/repos/xapi-project/xenopsd/branches{/branch}","tags_url":"https://api.github.com/repos/xapi-project/xenopsd/tags","blobs_url":"https://api.github.com/repos/xapi-project/xenopsd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xapi-project/xenopsd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xapi-project/xenopsd/git/refs{/sha}","trees_url":"https://api.github.com/repos/xapi-project/xenopsd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xapi-project/xenopsd/statuses/{sha}","languages_url":"https://api.github.com/repos/xapi-project/xenopsd/languages","stargazers_url":"https://api.github.com/repos/xapi-project/xenopsd/stargazers","contributors_url":"https://api.github.com/repos/xapi-project/xenopsd/contributors","subscribers_url":"https://api.github.com/repos/xapi-project/xenopsd/subscribers","subscription_url":"https://api.github.com/repos/xapi-project/xenopsd/subscription","commits_url":"https://api.github.com/repos/xapi-project/xenopsd/commits{/sha}","git_commits_url":"https://api.github.com/repos/xapi-project/xenopsd/git/commits{/sha}","comments_url":"https://api.github.com/repos/xapi-project/xenopsd/comments{/number}","issue_comment_url":"https://api.github.com/repos/xapi-project/xenopsd/issues/comments{/number}","contents_url":"https://api.github.com/repos/xapi-project/xenopsd/contents/{+path}","compare_url":"https://api.github.com/repos/xapi-project/xenopsd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xapi-project/xenopsd/merges","archive_url":"https://api.github.com/repos/xapi-project/xenopsd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xapi-project/xenopsd/downloads","issues_url":"https://api.github.com/repos/xapi-project/xenopsd/issues{/number}","pulls_url":"https://api.github.com/repos/xapi-project/xenopsd/pulls{/number}","milestones_url":"https://api.github.com/repos/xapi-project/xenopsd/milestones{/number}","notifications_url":"https://api.github.com/repos/xapi-project/xenopsd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xapi-project/xenopsd/labels{/name}","releases_url":"https://api.github.com/repos/xapi-project/xenopsd/releases{/id}","deployments_url":"https://api.github.com/repos/xapi-project/xenopsd/deployments","created_at":"2013-01-11T17:19:31Z","updated_at":"2017-12-30T01:48:39Z","pushed_at":"2018-02-28T09:08:00Z","git_url":"git://github.com/xapi-project/xenopsd.git","ssh_url":"git@github.com:xapi-project/xenopsd.git","clone_url":"https://github.com/xapi-project/xenopsd.git","svn_url":"https://github.com/xapi-project/xenopsd","homepage":null,"size":32984,"stargazers_count":7,"watchers_count":7,"language":"OCaml","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":54,"mirror_url":null,"archived":false,"open_issues_count":10,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":54,"open_issues":10,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xapi-project/xenopsd/pulls/460"},"html":{"href":"https://github.com/xapi-project/xenopsd/pull/460"},"issue":{"href":"https://api.github.com/repos/xapi-project/xenopsd/issues/460"},"comments":{"href":"https://api.github.com/repos/xapi-project/xenopsd/issues/460/comments"},"review_comments":{"href":"https://api.github.com/repos/xapi-project/xenopsd/pulls/460/comments"},"review_comment":{"href":"https://api.github.com/repos/xapi-project/xenopsd/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/xapi-project/xenopsd/pulls/460/commits"},"statuses":{"href":"https://api.github.com/repos/xapi-project/xenopsd/statuses/8b27c0e1c67a9dec77c3e61d01d9bf85a64e8cf1"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mseri"}}