vagrant-unbundled 1.9.7.1 → 1.9.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/Gemfile.lock +10 -6
  4. data/contrib/bash/completion.sh +1 -1
  5. data/contrib/sudoers/linux-ubuntu +3 -4
  6. data/lib/vagrant/errors.rb +8 -0
  7. data/lib/vagrant/machine.rb +2 -0
  8. data/lib/vagrant/util/platform.rb +1 -1
  9. data/lib/vagrant/util/powershell.rb +42 -13
  10. data/lib/vagrant/util/safe_exec.rb +13 -2
  11. data/lib/vagrant/util/ssh.rb +11 -1
  12. data/plugins/commands/box/command/update.rb +12 -7
  13. data/plugins/commands/login/client.rb +15 -6
  14. data/plugins/commands/login/command.rb +13 -3
  15. data/plugins/commands/up/command.rb +9 -0
  16. data/plugins/commands/validate/command.rb +4 -4
  17. data/plugins/guests/darwin/cap/shell_expand_guest_path.rb +2 -2
  18. data/plugins/guests/freebsd/cap/configure_networks.rb +1 -1
  19. data/plugins/guests/freebsd/cap/shell_expand_guest_path.rb +2 -2
  20. data/plugins/guests/linux/cap/shell_expand_guest_path.rb +2 -2
  21. data/plugins/guests/netbsd/cap/shell_expand_guest_path.rb +2 -2
  22. data/plugins/guests/openbsd/cap/shell_expand_guest_path.rb +2 -2
  23. data/plugins/guests/windows/cap/public_key.rb +21 -45
  24. data/plugins/kernel_v2/config/ssh_connect.rb +3 -0
  25. data/plugins/providers/docker/config.rb +4 -0
  26. data/plugins/providers/docker/driver/compose.rb +11 -4
  27. data/plugins/providers/hyperv/action/wait_for_ip_address.rb +15 -11
  28. data/plugins/providers/hyperv/scripts/get_network_config.ps1 +24 -9
  29. data/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +18 -0
  30. data/plugins/provisioners/ansible/provisioner/host.rb +1 -1
  31. data/plugins/provisioners/chef/cap/debian/chef_install.rb +2 -2
  32. data/plugins/provisioners/chef/cap/freebsd/chef_install.rb +2 -2
  33. data/plugins/provisioners/chef/cap/omnios/chef_install.rb +2 -2
  34. data/plugins/provisioners/chef/cap/redhat/chef_install.rb +2 -2
  35. data/plugins/provisioners/chef/cap/suse/chef_install.rb +2 -2
  36. data/plugins/provisioners/chef/cap/windows/chef_install.rb +2 -2
  37. data/plugins/provisioners/chef/config/base.rb +17 -0
  38. data/plugins/provisioners/chef/config/chef_zero.rb +7 -0
  39. data/plugins/provisioners/chef/installer.rb +8 -7
  40. data/plugins/provisioners/chef/omnibus.rb +4 -6
  41. data/plugins/provisioners/chef/provisioner/base.rb +1 -0
  42. data/plugins/provisioners/chef/provisioner/chef_solo.rb +2 -1
  43. data/plugins/provisioners/file/provisioner.rb +18 -2
  44. data/plugins/provisioners/puppet/provisioner/puppet.rb +0 -2
  45. data/plugins/provisioners/salt/bootstrap-salt.sh +9 -5
  46. data/plugins/provisioners/shell/provisioner.rb +1 -1
  47. data/plugins/synced_folders/rsync/command/rsync_auto.rb +6 -1
  48. data/plugins/synced_folders/rsync/helper.rb +10 -0
  49. data/templates/locales/en.yml +27 -1
  50. data/templates/locales/providers_docker.yml +2 -0
  51. data/test/unit/base.rb +1 -3
  52. data/test/unit/plugins/commands/box/command/add_test.rb +3 -3
  53. data/test/unit/plugins/commands/box/command/remove_test.rb +6 -6
  54. data/test/unit/plugins/commands/box/command/repackage_test.rb +2 -4
  55. data/test/unit/plugins/commands/box/command/update_test.rb +36 -14
  56. data/test/unit/plugins/commands/init/command_test.rb +1 -1
  57. data/test/unit/plugins/commands/list-commands/command_test.rb +2 -2
  58. data/test/unit/plugins/commands/login/client_test.rb +5 -1
  59. data/test/unit/plugins/commands/package/command_test.rb +1 -1
  60. data/test/unit/plugins/commands/plugin/action/expunge_plugins_test.rb +1 -1
  61. data/test/unit/plugins/commands/plugin/action/install_gem_test.rb +3 -3
  62. data/test/unit/plugins/commands/plugin/action/plugin_exists_check_test.rb +3 -3
  63. data/test/unit/plugins/commands/plugin/action/uninstall_plugin_test.rb +1 -1
  64. data/test/unit/plugins/commands/plugin/action/update_gems_test.rb +2 -2
  65. data/test/unit/plugins/commands/port/command_test.rb +3 -3
  66. data/test/unit/plugins/commands/push/command_test.rb +1 -1
  67. data/test/unit/plugins/commands/snapshot/command/list_test.rb +2 -3
  68. data/test/unit/plugins/commands/ssh_config/command_test.rb +1 -1
  69. data/test/unit/plugins/commands/up/command_test.rb +69 -2
  70. data/test/unit/plugins/commands/validate/command_test.rb +47 -1
  71. data/test/unit/plugins/communicators/ssh/communicator_test.rb +5 -5
  72. data/test/unit/plugins/communicators/winrm/communicator_test.rb +6 -6
  73. data/test/unit/plugins/communicators/winrm/helper_test.rb +24 -23
  74. data/test/unit/plugins/communicators/winssh/communicator_test.rb +5 -5
  75. data/test/unit/plugins/guests/darwin/cap/shell_expand_guest_path_test.rb +43 -0
  76. data/test/unit/plugins/guests/freebsd/cap/configure_networks_test.rb +1 -1
  77. data/test/unit/plugins/guests/freebsd/cap/shell_expand_guest_path_test.rb +44 -0
  78. data/test/unit/plugins/guests/linux/cap/shell_expand_guest_path_test.rb +43 -0
  79. data/test/unit/plugins/guests/netbsd/cap/shell_expand_guest_path_test.rb +43 -0
  80. data/test/unit/plugins/guests/omnios/cap/mount_nfs_folder_test.rb +1 -3
  81. data/test/unit/plugins/guests/openbsd/cap/shell_expand_guest_path_test.rb +43 -0
  82. data/test/unit/plugins/guests/smartos/cap/change_host_name_test.rb +2 -2
  83. data/test/unit/plugins/guests/smartos/cap/configure_networks_test.rb +2 -2
  84. data/test/unit/plugins/guests/smartos/cap/halt_test.rb +2 -2
  85. data/test/unit/plugins/guests/smartos/cap/insert_public_key_test.rb +1 -1
  86. data/test/unit/plugins/guests/smartos/cap/mount_nfs_test.rb +2 -2
  87. data/test/unit/plugins/guests/smartos/cap/rsync_test.rb +2 -2
  88. data/test/unit/plugins/guests/windows/cap/insert_public_key_test.rb +2 -2
  89. data/test/unit/plugins/guests/windows/cap/remove_public_key_test.rb +4 -3
  90. data/test/unit/plugins/guests/windows/config_test.rb +1 -1
  91. data/test/unit/plugins/guests/windows/guest_network_test.rb +2 -2
  92. data/test/unit/plugins/hosts/linux/cap/nfs_test.rb +2 -0
  93. data/test/unit/plugins/kernel_v2/config/push_test.rb +1 -1
  94. data/test/unit/plugins/kernel_v2/config/vm_test.rb +7 -7
  95. data/test/unit/plugins/providers/docker/action/create_test.rb +1 -1
  96. data/test/unit/plugins/providers/docker/command/exec_test.rb +1 -1
  97. data/test/unit/plugins/providers/docker/config_test.rb +23 -4
  98. data/test/unit/plugins/providers/docker/driver_compose_test.rb +60 -30
  99. data/test/unit/plugins/providers/docker/driver_test.rb +31 -31
  100. data/test/unit/plugins/providers/docker/synced_folder_test.rb +3 -3
  101. data/test/unit/plugins/providers/hyperv/provider_test.rb +19 -19
  102. data/test/unit/plugins/providers/virtualbox/action/network_fix_ipv6_test.rb +2 -2
  103. data/test/unit/plugins/providers/virtualbox/action/network_test.rb +1 -1
  104. data/test/unit/plugins/providers/virtualbox/action/prepare_nfs_settings_test.rb +34 -8
  105. data/test/unit/plugins/providers/virtualbox/action/prepare_nfs_valid_ids_test.rb +3 -3
  106. data/test/unit/plugins/providers/virtualbox/cap_test.rb +2 -2
  107. data/test/unit/plugins/providers/virtualbox/config_test.rb +6 -6
  108. data/test/unit/plugins/providers/virtualbox/synced_folder_test.rb +6 -8
  109. data/test/unit/plugins/provisioners/ansible/config/guest_test.rb +1 -1
  110. data/test/unit/plugins/provisioners/ansible/config/host_test.rb +4 -4
  111. data/test/unit/plugins/provisioners/ansible/config/shared.rb +2 -2
  112. data/test/unit/plugins/provisioners/ansible/provisioner_test.rb +165 -157
  113. data/test/unit/plugins/provisioners/chef/command_builder_test.rb +2 -2
  114. data/test/unit/plugins/provisioners/chef/config/base_test.rb +13 -0
  115. data/test/unit/plugins/provisioners/chef/config/chef_zero_test.rb +11 -0
  116. data/test/unit/plugins/provisioners/chef/omnibus_test.rb +17 -7
  117. data/test/unit/plugins/provisioners/docker/config_test.rb +2 -1
  118. data/test/unit/plugins/provisioners/docker/provisioner_test.rb +13 -13
  119. data/test/unit/plugins/provisioners/file/provisioner_test.rb +32 -14
  120. data/test/unit/plugins/provisioners/puppet/provisioner/puppet_test.rb +51 -0
  121. data/test/unit/plugins/provisioners/salt/provisioner_test.rb +5 -5
  122. data/test/unit/plugins/provisioners/shell/provisioner_test.rb +35 -4
  123. data/test/unit/plugins/pushes/ftp/adapter_test.rb +1 -0
  124. data/test/unit/plugins/synced_folders/nfs/action_cleanup_test.rb +1 -1
  125. data/test/unit/plugins/synced_folders/nfs/config_test.rb +1 -1
  126. data/test/unit/plugins/synced_folders/rsync/command/rsync_auto_test.rb +44 -12
  127. data/test/unit/plugins/synced_folders/rsync/command/rsync_test.rb +5 -5
  128. data/test/unit/plugins/synced_folders/rsync/helper_test.rb +47 -29
  129. data/test/unit/plugins/synced_folders/rsync/synced_folder_test.rb +5 -5
  130. data/test/unit/vagrant/action/builtin/box_add_test.rb +27 -27
  131. data/test/unit/vagrant/action/builtin/box_check_outdated_test.rb +10 -10
  132. data/test/unit/vagrant/action/builtin/box_remove_test.rb +15 -15
  133. data/test/unit/vagrant/action/builtin/confirm_test.rb +1 -1
  134. data/test/unit/vagrant/action/builtin/graceful_halt_test.rb +2 -2
  135. data/test/unit/vagrant/action/builtin/handle_box_test.rb +8 -8
  136. data/test/unit/vagrant/action/builtin/handle_forwarded_port_collisions_test.rb +1 -1
  137. data/test/unit/vagrant/action/builtin/is_env_set_test.rb +2 -2
  138. data/test/unit/vagrant/action/builtin/is_state_test.rb +6 -6
  139. data/test/unit/vagrant/action/builtin/mixin_synced_folders_test.rb +6 -6
  140. data/test/unit/vagrant/action/builtin/provision_test.rb +1 -1
  141. data/test/unit/vagrant/action/builtin/provisioner_cleanup_test.rb +1 -1
  142. data/test/unit/vagrant/action/builtin/synced_folder_cleanup_test.rb +6 -6
  143. data/test/unit/vagrant/action/builtin/synced_folders_test.rb +3 -3
  144. data/test/unit/vagrant/batch_action_test.rb +2 -2
  145. data/test/unit/vagrant/box_collection_test.rb +1 -1
  146. data/test/unit/vagrant/box_test.rb +6 -6
  147. data/test/unit/vagrant/capability_host_test.rb +3 -3
  148. data/test/unit/vagrant/cli_test.rb +3 -3
  149. data/test/unit/vagrant/environment_test.rb +21 -20
  150. data/test/unit/vagrant/guest_test.rb +7 -7
  151. data/test/unit/vagrant/machine_index_test.rb +4 -4
  152. data/test/unit/vagrant/machine_test.rb +28 -17
  153. data/test/unit/vagrant/plugin/manager_test.rb +12 -12
  154. data/test/unit/vagrant/plugin/state_file_test.rb +2 -2
  155. data/test/unit/vagrant/plugin/v1/command_test.rb +9 -8
  156. data/test/unit/vagrant/plugin/v2/command_test.rb +54 -43
  157. data/test/unit/vagrant/plugin/v2/plugin_test.rb +4 -3
  158. data/test/unit/vagrant/plugin/v2/provider_test.rb +3 -3
  159. data/test/unit/vagrant/shared_helpers_test.rb +6 -6
  160. data/test/unit/vagrant/ui_test.rb +21 -21
  161. data/test/unit/vagrant/util/downloader_test.rb +7 -7
  162. data/test/unit/vagrant/util/ssh_test.rb +41 -5
  163. data/test/unit/vagrant/util/subprocess_test.rb +7 -7
  164. data/test/unit/vagrant_test.rb +9 -9
  165. data/vagrant.gemspec +3 -2
  166. data/vendor/bundle/ruby/2.4.0/bundler/gems/vagrant-spec-af86757912f7/vagrant-spec.gemspec +1 -1
  167. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/.gitignore +7 -0
  168. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/.rspec +2 -0
  169. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/.travis.yml +5 -0
  170. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/CONTRIBUTORS.md +19 -0
  171. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/Gemfile +12 -0
  172. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/Gemfile.lock +44 -0
  173. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/Guardfile +10 -0
  174. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/README.md +134 -0
  175. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/Rakefile +10 -0
  176. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/fake_ftp.gemspec +22 -0
  177. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/lib/fake_ftp.rb +5 -0
  178. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/lib/fake_ftp/file.rb +34 -0
  179. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/lib/fake_ftp/server.rb +340 -0
  180. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/lib/fake_ftp/version.rb +3 -0
  181. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/spec/fixtures/invisible_bike.jpg +0 -0
  182. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/spec/fixtures/text_file.txt +1 -0
  183. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/spec/functional/server_spec.rb +468 -0
  184. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/spec/integration/server_spec.rb +81 -0
  185. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/spec/models/fake_ftp/file_spec.rb +102 -0
  186. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/spec/models/fake_ftp/server_spec.rb +76 -0
  187. data/vendor/bundle/ruby/2.4.0/gems/fake_ftp-0.1.1/spec/spec_helper.rb +18 -0
  188. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/.gitignore +14 -0
  189. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/.rubocop.yml +57 -0
  190. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/.travis.yml +21 -0
  191. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/CONTRIBUTING.rdoc +36 -0
  192. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/Gemfile +3 -0
  193. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/History.rdoc +2247 -0
  194. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/MIT-LICENSE +21 -0
  195. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/README.rdoc +156 -0
  196. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/Rakefile +38 -0
  197. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/appveyor.yml +21 -0
  198. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/bin/console +7 -0
  199. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/bin/setup +6 -0
  200. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/command_line_usage.rdoc +158 -0
  201. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/example/Rakefile1 +38 -0
  202. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/example/Rakefile2 +35 -0
  203. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/example/a.c +6 -0
  204. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/example/b.c +6 -0
  205. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/example/main.c +11 -0
  206. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/glossary.rdoc +42 -0
  207. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/jamis.rb +591 -0
  208. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/proto_rake.rdoc +127 -0
  209. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/rake.1 +156 -0
  210. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/rakefile.rdoc +622 -0
  211. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/doc/rational.rdoc +151 -0
  212. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/exe/rake +27 -0
  213. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake.rb +70 -0
  214. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/application.rb +785 -0
  215. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/backtrace.rb +23 -0
  216. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/clean.rb +77 -0
  217. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/cloneable.rb +16 -0
  218. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/cpu_counter.rb +106 -0
  219. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/default_loader.rb +14 -0
  220. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/dsl_definition.rb +194 -0
  221. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/early_time.rb +21 -0
  222. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/ext/core.rb +25 -0
  223. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/ext/string.rb +175 -0
  224. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/file_creation_task.rb +24 -0
  225. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/file_list.rb +434 -0
  226. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/file_task.rb +46 -0
  227. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/file_utils.rb +136 -0
  228. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/file_utils_ext.rb +144 -0
  229. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/invocation_chain.rb +56 -0
  230. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/invocation_exception_mixin.rb +16 -0
  231. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/late_time.rb +17 -0
  232. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/linked_list.rb +111 -0
  233. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/loaders/makefile.rb +53 -0
  234. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/multi_task.rb +49 -0
  235. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/name_space.rb +37 -0
  236. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/packagetask.rb +210 -0
  237. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/phony.rb +15 -0
  238. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/private_reader.rb +20 -0
  239. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/promise.rb +99 -0
  240. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/pseudo_status.rb +29 -0
  241. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/rake_module.rb +38 -0
  242. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/rake_test_loader.rb +21 -0
  243. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/rule_recursion_overflow_error.rb +19 -0
  244. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/scope.rb +42 -0
  245. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/task.rb +390 -0
  246. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/task_argument_error.rb +7 -0
  247. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/task_arguments.rb +108 -0
  248. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/task_manager.rb +303 -0
  249. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/tasklib.rb +11 -0
  250. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/testtask.rb +222 -0
  251. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/thread_history_display.rb +48 -0
  252. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/thread_pool.rb +162 -0
  253. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/trace_output.rb +22 -0
  254. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/version.rb +9 -0
  255. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/lib/rake/win32.rb +50 -0
  256. data/vendor/bundle/ruby/2.4.0/gems/rake-12.0.0/rake.gemspec +39 -0
  257. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/.gitignore +19 -0
  258. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/.rspec +3 -0
  259. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/.travis.yml +24 -0
  260. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/Changelog.md +49 -0
  261. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/Gemfile +26 -0
  262. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/LICENSE.txt +27 -0
  263. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/README.md +72 -0
  264. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/Rakefile +16 -0
  265. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/cucumber.yml +2 -0
  266. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/features/its.feature +125 -0
  267. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/features/step_definitions/additional_cli_steps.rb +21 -0
  268. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/features/support/env.rb +23 -0
  269. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/lib/rspec/its.rb +149 -0
  270. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/lib/rspec/its/version.rb +5 -0
  271. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/rspec-its.gemspec +28 -0
  272. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/script/test_all +20 -0
  273. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/spec/rspec/its_spec.rb +237 -0
  274. data/vendor/bundle/ruby/2.4.0/gems/rspec-its-1.2.0/spec/spec_helper.rb +15 -0
  275. data/vendor/bundle/ruby/2.4.0/specifications/fake_ftp-0.1.1.gemspec +20 -0
  276. data/vendor/bundle/ruby/2.4.0/specifications/rake-12.0.0.gemspec +43 -0
  277. data/vendor/bundle/ruby/2.4.0/specifications/rspec-its-1.2.0.gemspec +47 -0
  278. data/version.txt +1 -1
  279. metadata +137 -7
  280. data/2.14.0 +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aff8f1193fe95e18ecda858827bf0504a153d45f
4
- data.tar.gz: a77b2accdc05f28604ff50abfee172861fa46f6f
3
+ metadata.gz: cbfc0426952400e2cf50440f9e33da65b96de1bf
4
+ data.tar.gz: 6b5376cf7c8971923fa2da01b9e5cb5597cf98b2
5
5
  SHA512:
6
- metadata.gz: 9d8d35c3f4dfe559ef0bdea8ca8597399685f6bb8d5845c4e8055cb69b170017a55dd0f6761c641183a370e54750b3de1f433286681d9392f5c506ba9e0c1acd
7
- data.tar.gz: 7d0fa5d7ffd7e6b7150b5cc48fbda454a1f5fbfa8caf6a0dd83c63f9ea3a90da972b3e98c862ec93b9cf03e13235b31677fb75267b262906d3c02449a4231648
6
+ metadata.gz: 3ffe827d8f83715f2f085a458acd2b6052f34691922ba71468cc9cca2794e5217471493a2c4d02b8b0becb17d060e07637de7ecb1ce63674808fb19d1a557272
7
+ data.tar.gz: b0033fcd286a3445ee1acb2344e34e41419fe8551dc5ceef615eabcad07f70478f392f51ef1a950500879f621b0ced555a1a8bd63844aca79ca7630ca61afd48
data/CHANGELOG.md CHANGED
@@ -1,3 +1,37 @@
1
+ ## 1.9.8 (August 23, 2017)
2
+
3
+ IMPROVEMENTS:
4
+
5
+ - bash: Add box prune to contrib bash completion [GH-8806]
6
+ - commands/login: Ask for description of Vagrant Cloud token [GH-8876]
7
+ - commands/validate: Improve functionality of the validate command [GH-8889]n
8
+ - core: Updated Vagrants rspec gem to 3.5.0 [GH-8850]
9
+ - core: Validate powershell availability and version before use [GH-8839]
10
+ - core: Introduce extra_args setting for ssh configs [GH-8895]
11
+ - docs: Align contrib/sudoers file for ubuntu linux with docs [GH-8842]
12
+ - provider/hyperv: Prefer IPv4 guest address [GH-8831, GH-8759]
13
+ - provisioners/chef: Add config option omnibus_url for chef provisioners [GH-8682]
14
+ - provisioners/chef: Improve exception handling around missing folder paths [GH-8775]
15
+
16
+ BUG FIXES:
17
+
18
+ - box/update: Add force flag for box upgrade command [GH-8871]
19
+ - commands/rsync-auto: Ensure relative dirs are still rsync'd if defined [GH-8781]
20
+ - commands/up: Disable install providers when using global id on vagrant up [GH-8910]
21
+ - communicators/winssh: Fix public key insertion to retain ACL [GH-8790]
22
+ - core: Update util/ssh to use `-o` for identity files [GH-8786]
23
+ - guests/freebsd: Fix regex for listing network devices on some FreeBSD boxes. [GH-8760]
24
+ - hosts/windows: Prevent control characters in version check for WSL [GH-8902, GH-8901]
25
+ - providers/docker: Split String type links into Array when using compose [GH-8837, GH-8821]
26
+ - providers/docker: Expand relative volume paths correctly [GH-8838, GH-8822]
27
+ - providers/docker: Error when compose option enabled with force_host_vm [GH-8911]
28
+ - provisioners/ansible: Update to use `-o` for identity files [GH-8786]
29
+ - provisioners/file: Ensure remote folder exists prior to scp file or folder [GH-8880]
30
+ - provisioners/salt: Fix error case when github is unreachable for installer [GH-8864]
31
+ - provisioners/shell: Allow frozen string scripts [GH-8875]
32
+ - provisioners/puppet: Remove `--manifestdir` flag from puppet apply in provisioner [GH-8797]
33
+ - synced_folders/rsync: Correctly format IPv6 host [GH-8840, GH-8809]
34
+
1
35
  ## 1.9.7 (July 7, 2017)
2
36
 
3
37
  FEATURES:
@@ -9,6 +43,8 @@ IMPROVEMENTS:
9
43
  - guests/bsd: Invoke `tee` with explicit path [GH-8740]
10
44
  - guests/smartos: Guest updates for host name and nfs capabilities [GH-8695]
11
45
  - guests/windows: Add public key capabilities for WinSSH communicator [GH-8761]
46
+ - hosts/windows: Log command exec encoding failures and use original string on failure [GH-8820]
47
+ - providers/virtualbox: Filter machine IPs when preparing NFS settings [GH-8819]
12
48
 
13
49
  BUG FIXES:
14
50
 
data/Gemfile.lock CHANGED
@@ -11,7 +11,7 @@ GIT
11
11
  PATH
12
12
  remote: .
13
13
  specs:
14
- vagrant-unbundled (1.9.7.1)
14
+ vagrant-unbundled (1.9.8.1)
15
15
  childprocess (~> 0.6.0)
16
16
  erubis (~> 2.7.0)
17
17
  hashicorp-checkpoint (~> 0.1.1)
@@ -43,7 +43,7 @@ GEM
43
43
  domain_name (0.5.20170404)
44
44
  unf (>= 0.0.5, < 1.0.0)
45
45
  erubis (2.7.0)
46
- fake_ftp (0.3.0)
46
+ fake_ftp (0.1.1)
47
47
  ffi (1.9.18)
48
48
  gssapi (1.2.0)
49
49
  ffi (>= 1.0.1)
@@ -76,7 +76,7 @@ GEM
76
76
  netrc (0.11.0)
77
77
  nori (2.6.0)
78
78
  public_suffix (2.0.5)
79
- rake (11.3.0)
79
+ rake (12.0.0)
80
80
  rb-fsevent (0.10.2)
81
81
  rb-inotify (0.9.10)
82
82
  ffi (>= 0.5.0, < 2)
@@ -95,6 +95,9 @@ GEM
95
95
  rspec-expectations (3.5.0)
96
96
  diff-lcs (>= 1.2.0, < 2.0)
97
97
  rspec-support (~> 3.5.0)
98
+ rspec-its (1.2.0)
99
+ rspec-core (>= 3.0.0)
100
+ rspec-expectations (>= 3.0.0)
98
101
  rspec-mocks (3.5.0)
99
102
  diff-lcs (>= 1.2.0, < 2.0)
100
103
  rspec-support (~> 3.5.0)
@@ -134,12 +137,13 @@ PLATFORMS
134
137
  ruby
135
138
 
136
139
  DEPENDENCIES
137
- fake_ftp (~> 0.1)
138
- rake (~> 11.3.0)
140
+ fake_ftp (~> 0.1.1)
141
+ rake (~> 12.0.0)
139
142
  rspec (~> 3.5.0)
143
+ rspec-its (~> 1.2.0)
140
144
  vagrant-spec!
141
145
  vagrant-unbundled!
142
146
  webmock (~> 1.20)
143
147
 
144
148
  BUNDLED WITH
145
- 1.15.3
149
+ 1.15.4
@@ -91,7 +91,7 @@ _vagrant() {
91
91
  return 0
92
92
  ;;
93
93
  "box")
94
- box_commands="add help list outdated remove repackage update"
94
+ box_commands="add help list outdated prune remove repackage update"
95
95
  COMPREPLY=($(compgen -W "${box_commands}" -- ${cur}))
96
96
  return 0
97
97
  ;;
@@ -1,9 +1,8 @@
1
1
  # These work with Ubuntu - they might need tweaking for other distributions
2
2
 
3
- Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
3
+ Cmnd_Alias VAGRANT_EXPORTS_CHOWN = /bin/chown 0\:0 /tmp/*
4
+ Cmnd_Alias VAGRANT_EXPORTS_MV = /bin/mv -f /tmp/* /etc/exports
4
5
  Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status
5
6
  Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start
6
7
  Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar
7
- Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /bin/sed -r -e * d -ibak /*/exports
8
- Cmnd_Alias VAGRANT_EXPORTS_REMOVE_2 = /bin/cp /*/exports /etc/exports
9
- %sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY, VAGRANT_EXPORTS_REMOVE, VAGRANT_EXPORTS_REMOVE_2
8
+ %sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_CHOWN, VAGRANT_EXPORTS_MV, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY
@@ -536,6 +536,14 @@ module Vagrant
536
536
  error_key(:requires_directory, "vagrant.actions.general.package")
537
537
  end
538
538
 
539
+ class PowerShellNotFound < VagrantError
540
+ error_key(:powershell_not_found)
541
+ end
542
+
543
+ class PowerShellInvalidVersion < VagrantError
544
+ error_key(:powershell_invalid_version)
545
+ end
546
+
539
547
  class ProviderCantInstall < VagrantError
540
548
  error_key(:provider_cant_install)
541
549
  end
@@ -442,6 +442,7 @@ module Vagrant
442
442
  info[:username] ||= @config.ssh.default.username
443
443
  info[:compression] ||= @config.ssh.default.compression
444
444
  info[:dsa_authentication] ||= @config.ssh.default.dsa_authentication
445
+ info[:extra_args] ||= @config.ssh.default.extra_args
445
446
 
446
447
  # We set overrides if they are set. These take precedence over
447
448
  # provider-returned data.
@@ -453,6 +454,7 @@ module Vagrant
453
454
  info[:dsa_authentication] = @config.ssh.dsa_authentication
454
455
  info[:username] = @config.ssh.username if @config.ssh.username
455
456
  info[:password] = @config.ssh.password if @config.ssh.password
457
+ info[:extra_args] = @config.ssh.extra_args if @config.ssh.extra_args
456
458
 
457
459
  # We also set some fields that are purely controlled by Varant
458
460
  info[:forward_agent] = @config.ssh.forward_agent
@@ -397,7 +397,7 @@ module Vagrant
397
397
  valid = false
398
398
  result = Util::Subprocess.execute("vagrant.exe", "version")
399
399
  if result.exit_code == 0
400
- windows_version = result.stdout.match(/Installed Version: (?<version>.+$)/)
400
+ windows_version = result.stdout.match(/Installed Version: (?<version>[\w.-]+)/)
401
401
  if windows_version
402
402
  windows_version = windows_version[:version].strip
403
403
  valid = windows_version == Vagrant::VERSION
@@ -8,8 +8,15 @@ module Vagrant
8
8
  # This is primarily a convenience wrapper around Subprocess that
9
9
  # properly sets powershell flags for you.
10
10
  class PowerShell
11
+ # NOTE: Version checks are only on Major
12
+ MINIMUM_REQUIRED_VERSION = 3
13
+
14
+ # @return [Boolean] powershell executable available on PATH
11
15
  def self.available?
12
- !!Which.which("powershell")
16
+ if !defined?(@_powershell_available)
17
+ @_powershell_available = !!Which.which("powershell")
18
+ end
19
+ @_powershell_available
13
20
  end
14
21
 
15
22
  # Execute a powershell script.
@@ -17,6 +24,7 @@ module Vagrant
17
24
  # @param [String] path Path to the PowerShell script to execute.
18
25
  # @return [Subprocess::Result]
19
26
  def self.execute(path, *args, **opts, &block)
27
+ validate_install!
20
28
  command = [
21
29
  "powershell",
22
30
  "-NoLogo",
@@ -39,6 +47,7 @@ module Vagrant
39
47
  # @param [String] command PowerShell command to execute.
40
48
  # @return [Subprocess::Result]
41
49
  def self.execute_cmd(command)
50
+ validate_install!
42
51
  c = [
43
52
  "powershell",
44
53
  "-NoLogo",
@@ -58,19 +67,39 @@ module Vagrant
58
67
  #
59
68
  # @return [String]
60
69
  def self.version
61
- command = [
62
- "powershell",
63
- "-NoLogo",
64
- "-NoProfile",
65
- "-NonInteractive",
66
- "-ExecutionPolicy", "Bypass",
67
- "-Command",
68
- "$PSVersionTable.PSVersion.Major"
69
- ].flatten
70
+ if !defined?(@_powershell_version)
71
+ command = [
72
+ "powershell",
73
+ "-NoLogo",
74
+ "-NoProfile",
75
+ "-NonInteractive",
76
+ "-ExecutionPolicy", "Bypass",
77
+ "-Command",
78
+ "$PSVersionTable.PSVersion.Major"
79
+ ].flatten
70
80
 
71
- r = Subprocess.execute(*command)
72
- return nil if r.exit_code != 0
73
- return r.stdout.chomp
81
+ r = Subprocess.execute(*command)
82
+ @_powershell_version = r.exit_code != 0 ? nil : r.stdout.chomp
83
+ end
84
+ @_powershell_version
85
+ end
86
+
87
+ # Validates that powershell is installed, available, and
88
+ # at or above minimum required version
89
+ #
90
+ # @return [Boolean]
91
+ # @raises []
92
+ def self.validate_install!
93
+ if !defined?(@_powershell_validation)
94
+ raise Errors::PowerShellNotFound if !available?
95
+ if version.to_i < MINIMUM_REQUIRED_VERSION
96
+ raise Errors::PowerShellInvalidVersion,
97
+ minimum_version: MINIMUM_REQUIRED_VERSION,
98
+ installed_version: version ? version : "N/A"
99
+ end
100
+ @_powershell_validation = true
101
+ end
102
+ @_powershell_validation
74
103
  end
75
104
  end
76
105
  end
@@ -44,8 +44,19 @@ module Vagrant
44
44
  # Re-generate strings to ensure common encoding
45
45
  @@logger.debug("Converting command and arguments to common UTF-8 encoding for exec.")
46
46
  @@logger.debug("Command: `#{command.inspect}` Args: `#{args.inspect}`")
47
- command = "#{command}".force_encoding("UTF-8")
48
- args = args.map{|arg| "#{arg}".force_encoding("UTF-8") }
47
+ begin
48
+ command = "#{command}".encode("UTF-8")
49
+ rescue Encoding::UndefinedConversionError => e
50
+ @@logger.warn("Failed to convert command - #{e.class}: #{e} (`#{command}`)")
51
+ end
52
+ args = args.map do |arg|
53
+ begin
54
+ "#{arg}".encode("UTF-8")
55
+ rescue Encoding::UndefinedConversionError => e
56
+ @@logger.warn("Failed to convert command argument - #{e.class}: #{e} (`#{arg}`)")
57
+ arg
58
+ end
59
+ end
49
60
  @@logger.debug("Converted - Command: `#{command.inspect}` Args: `#{args.inspect}`")
50
61
  end
51
62
  Kernel.exec(command, *args)
@@ -135,7 +135,11 @@ module Vagrant
135
135
  # If we're not in plain mode and :private_key_path is set attach the private key path(s).
136
136
  if !plain_mode && options[:private_key_path]
137
137
  options[:private_key_path].each do |path|
138
- command_options += ["-i", path.to_s]
138
+
139
+ # Use '-o' instead of '-i' because '-i' does not call
140
+ # percent_expand in misc.c, but '-o' does. when passing the path,
141
+ # replace '%' in the path with '%%' to escape the '%'
142
+ command_options += ["-o", "IdentityFile=%s" % [path.to_s.gsub('%', '%%')]]
139
143
  end
140
144
  end
141
145
 
@@ -163,6 +167,12 @@ module Vagrant
163
167
  #
164
168
  # Without having extra_args be last, the user loses this ability
165
169
  command_options += ["-o", "ForwardAgent=yes"] if ssh_info[:forward_agent]
170
+
171
+ # Note about :extra_args
172
+ # ssh_info[:extra_args] comes from a machines ssh config in a Vagrantfile,
173
+ # where as opts[:extra_args] comes from running the ssh command
174
+ command_options += Array(ssh_info[:extra_args]) if ssh_info[:extra_args]
175
+
166
176
  command_options.concat(opts[:extra_args]) if opts[:extra_args]
167
177
 
168
178
  # Build up the host string for connecting
@@ -33,6 +33,10 @@ module VagrantPlugins
33
33
  options[:provider] = p.to_sym
34
34
  end
35
35
 
36
+ o.on("-f", "--force", "Overwrite an existing box if it exists") do |f|
37
+ options[:force] = f
38
+ end
39
+
36
40
  build_download_options(o, download_options)
37
41
  end
38
42
 
@@ -40,15 +44,15 @@ module VagrantPlugins
40
44
  return if !argv
41
45
 
42
46
  if options[:box]
43
- update_specific(options[:box], options[:provider], download_options)
47
+ update_specific(options[:box], options[:provider], download_options, options[:force])
44
48
  else
45
- update_vms(argv, options[:provider], download_options)
49
+ update_vms(argv, options[:provider], download_options, options[:force])
46
50
  end
47
51
 
48
52
  0
49
53
  end
50
54
 
51
- def update_specific(name, provider, download_options)
55
+ def update_specific(name, provider, download_options, force)
52
56
  boxes = {}
53
57
  @env.boxes.all.each do |n, v, p|
54
58
  boxes[n] ||= {}
@@ -81,11 +85,11 @@ module VagrantPlugins
81
85
 
82
86
  to_update.each do |n, p, v|
83
87
  box = @env.boxes.find(n, p, v)
84
- box_update(box, "> #{v}", @env.ui, download_options)
88
+ box_update(box, "> #{v}", @env.ui, download_options, force)
85
89
  end
86
90
  end
87
91
 
88
- def update_vms(argv, provider, download_options)
92
+ def update_vms(argv, provider, download_options, force)
89
93
  machines = {}
90
94
 
91
95
  with_target_vms(argv, provider: provider) do |machine|
@@ -120,11 +124,11 @@ module VagrantPlugins
120
124
  if download_options[:insecure].nil?
121
125
  download_options[:insecure] = machine.config.vm.box_download_insecure
122
126
  end
123
- box_update(box, version, machine.ui, download_options)
127
+ box_update(box, version, machine.ui, download_options, force)
124
128
  end
125
129
  end
126
130
 
127
- def box_update(box, version, ui, download_options)
131
+ def box_update(box, version, ui, download_options, force)
128
132
  ui.output(I18n.t("vagrant.box_update_checking", name: box.name))
129
133
  ui.detail("Latest installed version: #{box.version}")
130
134
  ui.detail("Version constraints: #{version}")
@@ -149,6 +153,7 @@ module VagrantPlugins
149
153
  box_provider: update[2].name,
150
154
  box_version: update[1].version,
151
155
  ui: ui,
156
+ box_force: force,
152
157
  box_client_cert: download_options[:client_cert],
153
158
  box_download_ca_cert: download_options[:ca_cert],
154
159
  box_download_ca_path: download_options[:ca_path],
@@ -40,15 +40,24 @@ module VagrantPlugins
40
40
  # Login logs a user in and returns the token for that user. The token
41
41
  # is _not_ stored unless {#store_token} is called.
42
42
  #
43
- # @param [String] user
44
- # @param [String] pass
43
+ # @param [String] username_or_email
44
+ # @param [String] password
45
+ # @param [String] description
45
46
  # @return [String] token The access token, or nil if auth failed.
46
- def login(user, pass)
47
- @logger.info("Logging in '#{user}'")
47
+ def login(username_or_email, password, description: nil)
48
+ @logger.info("Logging in '#{username_or_email}'")
48
49
 
49
50
  with_error_handling do
50
- url = "#{Vagrant.server_url}/api/v1/authenticate"
51
- request = { "user" => { "login" => user, "password" => pass } }
51
+ url = "#{Vagrant.server_url}/api/v1/authenticate"
52
+ request = {
53
+ user: {
54
+ login: username_or_email,
55
+ password: password
56
+ },
57
+ token: {
58
+ description: description
59
+ }
60
+ }
52
61
 
53
62
  proxy = nil
54
63
  proxy ||= ENV["HTTPS_PROXY"] || ENV["https_proxy"]
@@ -1,3 +1,5 @@
1
+ require 'socket'
2
+
1
3
  module VagrantPlugins
2
4
  module LoginCommand
3
5
  class Command < Vagrant.plugin("2", "command")
@@ -48,8 +50,9 @@ module VagrantPlugins
48
50
  end
49
51
 
50
52
  # Ask for the username
51
- login = nil
52
- password = nil
53
+ login = nil
54
+ password = nil
55
+ description = nil
53
56
  while !login
54
57
  login = @env.ui.ask("Vagrant Cloud Username: ")
55
58
  end
@@ -58,7 +61,14 @@ module VagrantPlugins
58
61
  password = @env.ui.ask("Password (will be hidden): ", echo: false)
59
62
  end
60
63
 
61
- token = @client.login(login, password)
64
+ description_default = "Vagrant login from #{Socket.gethostname}"
65
+ while !description
66
+ description =
67
+ @env.ui.ask("Token description (Defaults to #{description_default.inspect}): ")
68
+ end
69
+ description = description_default if description.empty?
70
+
71
+ token = @client.login(login, password, description: description)
62
72
  if !token
63
73
  @env.ui.error(I18n.t("login_command.invalid_login"))
64
74
  return 1
@@ -78,6 +78,15 @@ module VagrantPlugins
78
78
  # Build up the batch job of what we'll do
79
79
  machines = []
80
80
  if names
81
+ # To prevent vagrant from attempting to validate a global vms config
82
+ # (which doesn't exist within the local dir) when attempting to
83
+ # install a machines provider, this check below will disable the
84
+ # install_providers function if a user gives us a machine id instead
85
+ # of the machines name.
86
+ machine_names = []
87
+ with_target_vms(names, provider: options[:provider]){|m| machine_names << m.name }
88
+ options[:install_provider] = false if !(machine_names - names).empty?
89
+
81
90
  # If we're installing providers, then do that. We don't
82
91
  # parallelize this step because it is likely the same provider
83
92
  # anyways.