{"action":"created","comment":{"url":"https://api.github.com/repos/joyent/sdc-docker/pulls/comments/59618461","id":59618461,"diff_hunk":"@@ -1676,20 +1577,22 @@ function buildVmPayload(opts, container, callback) {\n         });\n     }\n \n-    /*\n-     * \"Host\" volumes created using -v http[s]://example/file:/container/file\n-     * We'll download http[s]://example/file and write it to a new directory in\n-     * the zone's dataset but not in the zoneroot, and we'll mount that into the\n-     * container at /container/file.\n-     */\n-    binds = container.Binds\n-        || container.HostConfig && container.HostConfig.Binds;\n-    if (binds && binds.length > 0) {\n-        log.error({host_volumes: binds},\n-            'host volumes are not supported');\n-        callback(new errors.DockerError(\n-            'host volumes are not supported'));\n-        return;\n+    if (opts.config.experimental_nfs_shared_volumes !== true) {\n+       /*\n+        * \"Host\" volumes created using -v http[s]://example/file:/container/file","path":"lib/backends/sdc/containers.js","position":149,"original_position":149,"commit_id":"158d067a5fd6fecf56e9bd6b5c04dc49d2d9b138","original_commit_id":"158d067a5fd6fecf56e9bd6b5c04dc49d2d9b138","user":{"login":"joshwilsdon","id":78194,"avatar_url":"https://avatars.githubusercontent.com/u/78194?v=3","gravatar_id":"","url":"https://api.github.com/users/joshwilsdon","html_url":"https://github.com/joshwilsdon","followers_url":"https://api.github.com/users/joshwilsdon/followers","following_url":"https://api.github.com/users/joshwilsdon/following{/other_user}","gists_url":"https://api.github.com/users/joshwilsdon/gists{/gist_id}","starred_url":"https://api.github.com/users/joshwilsdon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshwilsdon/subscriptions","organizations_url":"https://api.github.com/users/joshwilsdon/orgs","repos_url":"https://api.github.com/users/joshwilsdon/repos","events_url":"https://api.github.com/users/joshwilsdon/events{/privacy}","received_events_url":"https://api.github.com/users/joshwilsdon/received_events","type":"User","site_admin":false},"body":"This comment looks leftover from the old implementation of hostvolumes. Probably just delete it and replace with something about how we don't support host volumes but we do experimentally support NFS volumes which use the host volume syntax?","created_at":"2016-04-13T20:23:29Z","updated_at":"2016-04-13T20:23:29Z","html_url":"https://github.com/joyent/sdc-docker/pull/78#discussion_r59618461","pull_request_url":"https://api.github.com/repos/joyent/sdc-docker/pulls/78","_links":{"self":{"href":"https://api.github.com/repos/joyent/sdc-docker/pulls/comments/59618461"},"html":{"href":"https://github.com/joyent/sdc-docker/pull/78#discussion_r59618461"},"pull_request":{"href":"https://api.github.com/repos/joyent/sdc-docker/pulls/78"}}},"pull_request":{"url":"https://api.github.com/repos/joyent/sdc-docker/pulls/78","id":66383246,"html_url":"https://github.com/joyent/sdc-docker/pull/78","diff_url":"https://github.com/joyent/sdc-docker/pull/78.diff","patch_url":"https://github.com/joyent/sdc-docker/pull/78.patch","issue_url":"https://api.github.com/repos/joyent/sdc-docker/issues/78","number":78,"state":"open","locked":false,"title":"DOCKER-793: First pass for NFS shared volumes","user":{"login":"misterdjules","id":811047,"avatar_url":"https://avatars.githubusercontent.com/u/811047?v=3","gravatar_id":"","url":"https://api.github.com/users/misterdjules","html_url":"https://github.com/misterdjules","followers_url":"https://api.github.com/users/misterdjules/followers","following_url":"https://api.github.com/users/misterdjules/following{/other_user}","gists_url":"https://api.github.com/users/misterdjules/gists{/gist_id}","starred_url":"https://api.github.com/users/misterdjules/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misterdjules/subscriptions","organizations_url":"https://api.github.com/users/misterdjules/orgs","repos_url":"https://api.github.com/users/misterdjules/repos","events_url":"https://api.github.com/users/misterdjules/events{/privacy}","received_events_url":"https://api.github.com/users/misterdjules/received_events","type":"User","site_admin":false},"body":"As indicated by the title of this PR, this is a first pass so that we can enable experimental support for NFS shared volumes at least in COAL, and hopefully in nightly. There's a lot of naive assumptions that are in place and that will be addressed by follow-up changes, but the goal is really to get the ball rolling behind a feature flag. I would encourage reviewers to not focus on edge cases but rather on the overall design of how this experimental feature is implemented.\r\n\r\nWhen the experimental feature that this PR provides is enabled, it depends on changes in several other repositories like node-sdc-clients, a new sdc-volapi repository, sdcadm, mountain-gorilla, etc. but they should essentially have no impact when the feature is disabled, which is the default.\r\n\r\nTests that have been added are written to pass when the experimental feature is disabled. Thus, these changes could land independently of the rest of the changes needed to support NFS shared volumes.","created_at":"2016-04-13T20:08:44Z","updated_at":"2016-04-13T20:23:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ba7393f7906756da03a8e6fd9883c79eee417c66","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/joyent/sdc-docker/pulls/78/commits","review_comments_url":"https://api.github.com/repos/joyent/sdc-docker/pulls/78/comments","review_comment_url":"https://api.github.com/repos/joyent/sdc-docker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/joyent/sdc-docker/issues/78/comments","statuses_url":"https://api.github.com/repos/joyent/sdc-docker/statuses/158d067a5fd6fecf56e9bd6b5c04dc49d2d9b138","head":{"label":"misterdjules:tritonnfs-proto","ref":"tritonnfs-proto","sha":"158d067a5fd6fecf56e9bd6b5c04dc49d2d9b138","user":{"login":"misterdjules","id":811047,"avatar_url":"https://avatars.githubusercontent.com/u/811047?v=3","gravatar_id":"","url":"https://api.github.com/users/misterdjules","html_url":"https://github.com/misterdjules","followers_url":"https://api.github.com/users/misterdjules/followers","following_url":"https://api.github.com/users/misterdjules/following{/other_user}","gists_url":"https://api.github.com/users/misterdjules/gists{/gist_id}","starred_url":"https://api.github.com/users/misterdjules/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misterdjules/subscriptions","organizations_url":"https://api.github.com/users/misterdjules/orgs","repos_url":"https://api.github.com/users/misterdjules/repos","events_url":"https://api.github.com/users/misterdjules/events{/privacy}","received_events_url":"https://api.github.com/users/misterdjules/received_events","type":"User","site_admin":false},"repo":{"id":38907845,"name":"sdc-docker","full_name":"misterdjules/sdc-docker","owner":{"login":"misterdjules","id":811047,"avatar_url":"https://avatars.githubusercontent.com/u/811047?v=3","gravatar_id":"","url":"https://api.github.com/users/misterdjules","html_url":"https://github.com/misterdjules","followers_url":"https://api.github.com/users/misterdjules/followers","following_url":"https://api.github.com/users/misterdjules/following{/other_user}","gists_url":"https://api.github.com/users/misterdjules/gists{/gist_id}","starred_url":"https://api.github.com/users/misterdjules/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/misterdjules/subscriptions","organizations_url":"https://api.github.com/users/misterdjules/orgs","repos_url":"https://api.github.com/users/misterdjules/repos","events_url":"https://api.github.com/users/misterdjules/events{/privacy}","received_events_url":"https://api.github.com/users/misterdjules/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/misterdjules/sdc-docker","description":"Docker Engine for SmartDataCenter","fork":true,"url":"https://api.github.com/repos/misterdjules/sdc-docker","forks_url":"https://api.github.com/repos/misterdjules/sdc-docker/forks","keys_url":"https://api.github.com/repos/misterdjules/sdc-docker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/misterdjules/sdc-docker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/misterdjules/sdc-docker/teams","hooks_url":"https://api.github.com/repos/misterdjules/sdc-docker/hooks","issue_events_url":"https://api.github.com/repos/misterdjules/sdc-docker/issues/events{/number}","events_url":"https://api.github.com/repos/misterdjules/sdc-docker/events","assignees_url":"https://api.github.com/repos/misterdjules/sdc-docker/assignees{/user}","branches_url":"https://api.github.com/repos/misterdjules/sdc-docker/branches{/branch}","tags_url":"https://api.github.com/repos/misterdjules/sdc-docker/tags","blobs_url":"https://api.github.com/repos/misterdjules/sdc-docker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/misterdjules/sdc-docker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/misterdjules/sdc-docker/git/refs{/sha}","trees_url":"https://api.github.com/repos/misterdjules/sdc-docker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/misterdjules/sdc-docker/statuses/{sha}","languages_url":"https://api.github.com/repos/misterdjules/sdc-docker/languages","stargazers_url":"https://api.github.com/repos/misterdjules/sdc-docker/stargazers","contributors_url":"https://api.github.com/repos/misterdjules/sdc-docker/contributors","subscribers_url":"https://api.github.com/repos/misterdjules/sdc-docker/subscribers","subscription_url":"https://api.github.com/repos/misterdjules/sdc-docker/subscription","commits_url":"https://api.github.com/repos/misterdjules/sdc-docker/commits{/sha}","git_commits_url":"https://api.github.com/repos/misterdjules/sdc-docker/git/commits{/sha}","comments_url":"https://api.github.com/repos/misterdjules/sdc-docker/comments{/number}","issue_comment_url":"https://api.github.com/repos/misterdjules/sdc-docker/issues/comments{/number}","contents_url":"https://api.github.com/repos/misterdjules/sdc-docker/contents/{+path}","compare_url":"https://api.github.com/repos/misterdjules/sdc-docker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/misterdjules/sdc-docker/merges","archive_url":"https://api.github.com/repos/misterdjules/sdc-docker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/misterdjules/sdc-docker/downloads","issues_url":"https://api.github.com/repos/misterdjules/sdc-docker/issues{/number}","pulls_url":"https://api.github.com/repos/misterdjules/sdc-docker/pulls{/number}","milestones_url":"https://api.github.com/repos/misterdjules/sdc-docker/milestones{/number}","notifications_url":"https://api.github.com/repos/misterdjules/sdc-docker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/misterdjules/sdc-docker/labels{/name}","releases_url":"https://api.github.com/repos/misterdjules/sdc-docker/releases{/id}","deployments_url":"https://api.github.com/repos/misterdjules/sdc-docker/deployments","created_at":"2015-07-11T00:32:12Z","updated_at":"2015-07-11T00:32:12Z","pushed_at":"2016-04-13T20:01:36Z","git_url":"git://github.com/misterdjules/sdc-docker.git","ssh_url":"git@github.com:misterdjules/sdc-docker.git","clone_url":"https://github.com/misterdjules/sdc-docker.git","svn_url":"https://github.com/misterdjules/sdc-docker","homepage":null,"size":2109,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","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":"joyent:master","ref":"master","sha":"a41601e76a46c9fe650c222c6c54620552a6aa49","user":{"login":"joyent","id":10161,"avatar_url":"https://avatars.githubusercontent.com/u/10161?v=3","gravatar_id":"","url":"https://api.github.com/users/joyent","html_url":"https://github.com/joyent","followers_url":"https://api.github.com/users/joyent/followers","following_url":"https://api.github.com/users/joyent/following{/other_user}","gists_url":"https://api.github.com/users/joyent/gists{/gist_id}","starred_url":"https://api.github.com/users/joyent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joyent/subscriptions","organizations_url":"https://api.github.com/users/joyent/orgs","repos_url":"https://api.github.com/users/joyent/repos","events_url":"https://api.github.com/users/joyent/events{/privacy}","received_events_url":"https://api.github.com/users/joyent/received_events","type":"Organization","site_admin":false},"repo":{"id":25838887,"name":"sdc-docker","full_name":"joyent/sdc-docker","owner":{"login":"joyent","id":10161,"avatar_url":"https://avatars.githubusercontent.com/u/10161?v=3","gravatar_id":"","url":"https://api.github.com/users/joyent","html_url":"https://github.com/joyent","followers_url":"https://api.github.com/users/joyent/followers","following_url":"https://api.github.com/users/joyent/following{/other_user}","gists_url":"https://api.github.com/users/joyent/gists{/gist_id}","starred_url":"https://api.github.com/users/joyent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joyent/subscriptions","organizations_url":"https://api.github.com/users/joyent/orgs","repos_url":"https://api.github.com/users/joyent/repos","events_url":"https://api.github.com/users/joyent/events{/privacy}","received_events_url":"https://api.github.com/users/joyent/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/joyent/sdc-docker","description":"Docker Engine for SmartDataCenter","fork":false,"url":"https://api.github.com/repos/joyent/sdc-docker","forks_url":"https://api.github.com/repos/joyent/sdc-docker/forks","keys_url":"https://api.github.com/repos/joyent/sdc-docker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/joyent/sdc-docker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/joyent/sdc-docker/teams","hooks_url":"https://api.github.com/repos/joyent/sdc-docker/hooks","issue_events_url":"https://api.github.com/repos/joyent/sdc-docker/issues/events{/number}","events_url":"https://api.github.com/repos/joyent/sdc-docker/events","assignees_url":"https://api.github.com/repos/joyent/sdc-docker/assignees{/user}","branches_url":"https://api.github.com/repos/joyent/sdc-docker/branches{/branch}","tags_url":"https://api.github.com/repos/joyent/sdc-docker/tags","blobs_url":"https://api.github.com/repos/joyent/sdc-docker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/joyent/sdc-docker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/joyent/sdc-docker/git/refs{/sha}","trees_url":"https://api.github.com/repos/joyent/sdc-docker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/joyent/sdc-docker/statuses/{sha}","languages_url":"https://api.github.com/repos/joyent/sdc-docker/languages","stargazers_url":"https://api.github.com/repos/joyent/sdc-docker/stargazers","contributors_url":"https://api.github.com/repos/joyent/sdc-docker/contributors","subscribers_url":"https://api.github.com/repos/joyent/sdc-docker/subscribers","subscription_url":"https://api.github.com/repos/joyent/sdc-docker/subscription","commits_url":"https://api.github.com/repos/joyent/sdc-docker/commits{/sha}","git_commits_url":"https://api.github.com/repos/joyent/sdc-docker/git/commits{/sha}","comments_url":"https://api.github.com/repos/joyent/sdc-docker/comments{/number}","issue_comment_url":"https://api.github.com/repos/joyent/sdc-docker/issues/comments{/number}","contents_url":"https://api.github.com/repos/joyent/sdc-docker/contents/{+path}","compare_url":"https://api.github.com/repos/joyent/sdc-docker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/joyent/sdc-docker/merges","archive_url":"https://api.github.com/repos/joyent/sdc-docker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/joyent/sdc-docker/downloads","issues_url":"https://api.github.com/repos/joyent/sdc-docker/issues{/number}","pulls_url":"https://api.github.com/repos/joyent/sdc-docker/pulls{/number}","milestones_url":"https://api.github.com/repos/joyent/sdc-docker/milestones{/number}","notifications_url":"https://api.github.com/repos/joyent/sdc-docker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/joyent/sdc-docker/labels{/name}","releases_url":"https://api.github.com/repos/joyent/sdc-docker/releases{/id}","deployments_url":"https://api.github.com/repos/joyent/sdc-docker/deployments","created_at":"2014-10-27T20:59:24Z","updated_at":"2016-03-26T05:54:17Z","pushed_at":"2016-04-13T20:08:45Z","git_url":"git://github.com/joyent/sdc-docker.git","ssh_url":"git@github.com:joyent/sdc-docker.git","clone_url":"https://github.com/joyent/sdc-docker.git","svn_url":"https://github.com/joyent/sdc-docker","homepage":null,"size":2301,"stargazers_count":154,"watchers_count":154,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":12,"forks":32,"open_issues":12,"watchers":154,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/joyent/sdc-docker/pulls/78"},"html":{"href":"https://github.com/joyent/sdc-docker/pull/78"},"issue":{"href":"https://api.github.com/repos/joyent/sdc-docker/issues/78"},"comments":{"href":"https://api.github.com/repos/joyent/sdc-docker/issues/78/comments"},"review_comments":{"href":"https://api.github.com/repos/joyent/sdc-docker/pulls/78/comments"},"review_comment":{"href":"https://api.github.com/repos/joyent/sdc-docker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/joyent/sdc-docker/pulls/78/commits"},"statuses":{"href":"https://api.github.com/repos/joyent/sdc-docker/statuses/158d067a5fd6fecf56e9bd6b5c04dc49d2d9b138"}}}}