{"action":"created","issue":{"url":"https://api.github.com/repos/docker/machine/issues/995","labels_url":"https://api.github.com/repos/docker/machine/issues/995/labels{/name}","comments_url":"https://api.github.com/repos/docker/machine/issues/995/comments","events_url":"https://api.github.com/repos/docker/machine/issues/995/events","html_url":"https://github.com/docker/machine/pull/995","id":67741710,"number":995,"title":"Don't let drivers wait for SSH/Docker/State","user":{"login":"vincentbernat","id":631446,"avatar_url":"https://avatars.githubusercontent.com/u/631446?v=3","gravatar_id":"","url":"https://api.github.com/users/vincentbernat","html_url":"https://github.com/vincentbernat","followers_url":"https://api.github.com/users/vincentbernat/followers","following_url":"https://api.github.com/users/vincentbernat/following{/other_user}","gists_url":"https://api.github.com/users/vincentbernat/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentbernat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentbernat/subscriptions","organizations_url":"https://api.github.com/users/vincentbernat/orgs","repos_url":"https://api.github.com/users/vincentbernat/repos","events_url":"https://api.github.com/users/vincentbernat/events{/privacy}","received_events_url":"https://api.github.com/users/vincentbernat/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-04-11T06:20:28Z","updated_at":"2015-04-17T06:36:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/docker/machine/pulls/995","html_url":"https://github.com/docker/machine/pull/995","diff_url":"https://github.com/docker/machine/pull/995.diff","patch_url":"https://github.com/docker/machine/pull/995.patch"},"body":"Waiting for SSH to start or Docker to be available is a step done\r\ndirectly in the framework (in libmachine). There is no need for the\r\ndriver to do that.\r\n\r\nThose changes are just untested! Since people copy from drivers, I think this is important to keep the minimal code from each driver. Maybe we should ask each driver maintainer to make the appropriate changes, test them and do a PR. In this case, feel free to discard this one.\r\n\r\nThe SoftLayer driver still waits for SSH but it needs to `apt-get install curl`. Maybe it could be modified to put this step in some provisioning function instead.\r\n\r\nThere are separate commits when it is not obvious if the change is correct. For example, in the openstack driver, there is a wait for the machine to be in the correct state. I don't think this is useful since libmachine also does that, but maybe I am mistaken."},"comment":{"url":"https://api.github.com/repos/docker/machine/issues/comments/93910137","html_url":"https://github.com/docker/machine/pull/995#issuecomment-93910137","issue_url":"https://api.github.com/repos/docker/machine/issues/995","id":93910137,"user":{"login":"vincentbernat","id":631446,"avatar_url":"https://avatars.githubusercontent.com/u/631446?v=3","gravatar_id":"","url":"https://api.github.com/users/vincentbernat","html_url":"https://github.com/vincentbernat","followers_url":"https://api.github.com/users/vincentbernat/followers","following_url":"https://api.github.com/users/vincentbernat/following{/other_user}","gists_url":"https://api.github.com/users/vincentbernat/gists{/gist_id}","starred_url":"https://api.github.com/users/vincentbernat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vincentbernat/subscriptions","organizations_url":"https://api.github.com/users/vincentbernat/orgs","repos_url":"https://api.github.com/users/vincentbernat/repos","events_url":"https://api.github.com/users/vincentbernat/events{/privacy}","received_events_url":"https://api.github.com/users/vincentbernat/received_events","type":"User","site_admin":false},"created_at":"2015-04-17T06:36:28Z","updated_at":"2015-04-17T06:36:28Z","body":" ❦ 16 avril 2015 12:12 -0700, Dave Henderson <notifications@github.com> :\n\n> I added the \"wait for transactions\" to make sure that the VM is well\n> and truly set up from SoftLayer's point of view before we start\n> installing Docker. Part of it is to make sure scripts are finished,\n> but there's also some steps that SL may (or may not) perform after\n> that.\n>\n> Sometimes it's safe to start as soon as SSH is available, but not\n> always. I wanted to avoid any possible conflicts by just waiting. IMO,\n> this step is still needed.\n\nIf it's needed, we should of course keep it.\n\n> Maybe the elegant thing would be to add something to the Driver\n> interface that the provisioner could hook into for driver-specific\n> stuff like this? I dunno...\n\nThe provisioner uses GetState (indirectly) to check if the machine is\nrunning. You could put your code here instead. However, as far as I am\nconcerned, my goal was to remove unneeded code, so if the code is in\nfact needed, we can just stay as is.\n-- \nMake sure every module hides something.\n            - The Elements of Programming Style (Kernighan & Plauger)\n"}}