vagrant-unbundled 2.0.3.0 → 2.0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -10
  3. data/Gemfile.lock +16 -2
  4. data/README.md +1 -0
  5. data/bin/vagrant +1 -1
  6. data/lib/vagrant/action/builtin/handle_box.rb +1 -1
  7. data/lib/vagrant/action/general/package.rb +1 -1
  8. data/lib/vagrant/action.rb +3 -1
  9. data/lib/vagrant/alias.rb +56 -0
  10. data/lib/vagrant/bundler.rb +1 -1
  11. data/lib/vagrant/capability_host.rb +1 -1
  12. data/lib/vagrant/cli.rb +8 -0
  13. data/lib/vagrant/config/version_base.rb +1 -1
  14. data/lib/vagrant/environment.rb +7 -1
  15. data/lib/vagrant/errors.rb +4 -0
  16. data/lib/vagrant/host.rb +1 -1
  17. data/lib/vagrant/machine.rb +1 -1
  18. data/lib/vagrant/machine_index.rb +1 -1
  19. data/lib/vagrant/plugin/v1/guest.rb +1 -1
  20. data/lib/vagrant/plugin/v1/host.rb +1 -1
  21. data/lib/vagrant/plugin/v1/plugin.rb +1 -1
  22. data/lib/vagrant/plugin/v1/provider.rb +1 -1
  23. data/lib/vagrant/plugin/v2/guest.rb +1 -1
  24. data/lib/vagrant/plugin/v2/host.rb +1 -1
  25. data/lib/vagrant/plugin/v2/plugin.rb +1 -1
  26. data/lib/vagrant/plugin/v2/provider.rb +1 -1
  27. data/lib/vagrant/shared_helpers.rb +30 -9
  28. data/lib/vagrant/util/checkpoint_client.rb +8 -0
  29. data/lib/vagrant/util/downloader.rb +1 -1
  30. data/lib/vagrant/util/platform.rb +11 -3
  31. data/lib/vagrant/util/powershell.rb +17 -1
  32. data/lib/vagrant/util/safe_exec.rb +1 -1
  33. data/lib/vagrant/util/ssh.rb +4 -1
  34. data/lib/vagrant/util/stacked_proc_runner.rb +1 -1
  35. data/lib/vagrant/util/template_renderer.rb +2 -2
  36. data/lib/vagrant/vagrantfile.rb +1 -1
  37. data/lib/vagrant.rb +8 -0
  38. data/plugins/commands/plugin/gem_helper.rb +1 -1
  39. data/plugins/commands/powershell/command.rb +2 -2
  40. data/plugins/commands/powershell/scripts/enable_psremoting.ps1 +1 -1
  41. data/plugins/communicators/ssh/communicator.rb +10 -1
  42. data/plugins/communicators/winrm/command_filters/mkdir.rb +4 -2
  43. data/plugins/communicators/winrm/command_filters/rm.rb +5 -3
  44. data/plugins/communicators/winrm/command_filters/test.rb +3 -1
  45. data/plugins/communicators/winrm/command_filters/which.rb +4 -2
  46. data/plugins/communicators/winrm/communicator.rb +3 -3
  47. data/plugins/guests/amazon/cap/flavor.rb +1 -1
  48. data/plugins/guests/coreos/cap/configure_networks.rb +1 -1
  49. data/plugins/guests/coreos/guest.rb +1 -1
  50. data/plugins/guests/debian/cap/configure_networks.rb +1 -1
  51. data/plugins/guests/freebsd/cap/configure_networks.rb +1 -1
  52. data/plugins/guests/photon/guest.rb +1 -1
  53. data/plugins/guests/windows/cap/change_host_name.rb +6 -1
  54. data/plugins/guests/windows/cap/mount_shared_folder.rb +1 -1
  55. data/plugins/hosts/alt/plugin.rb +1 -1
  56. data/plugins/hosts/arch/plugin.rb +1 -1
  57. data/plugins/hosts/gentoo/plugin.rb +1 -1
  58. data/plugins/hosts/linux/plugin.rb +1 -1
  59. data/plugins/hosts/redhat/plugin.rb +1 -1
  60. data/plugins/hosts/slackware/plugin.rb +2 -2
  61. data/plugins/kernel_v2/config/push.rb +1 -1
  62. data/plugins/kernel_v2/config/vm.rb +1 -1
  63. data/plugins/providers/docker/action/compare_synced_folders.rb +1 -1
  64. data/plugins/providers/virtualbox/action/network.rb +9 -5
  65. data/plugins/providers/virtualbox/action/network_fix_ipv6.rb +1 -1
  66. data/plugins/provisioners/chef/config/chef_zero.rb +1 -1
  67. data/plugins/provisioners/chef/provisioner/chef_solo.rb +2 -2
  68. data/plugins/provisioners/chef/provisioner/chef_zero.rb +3 -3
  69. data/plugins/provisioners/puppet/config/puppet.rb +2 -0
  70. data/plugins/provisioners/puppet/provisioner/puppet.rb +18 -1
  71. data/plugins/provisioners/salt/config.rb +6 -0
  72. data/plugins/provisioners/salt/provisioner.rb +11 -1
  73. data/templates/locales/command_ps.yml +1 -1
  74. data/templates/locales/en.yml +13 -4
  75. data/templates/locales/guest_windows.yml +1 -1
  76. data/templates/locales/providers_docker.yml +1 -1
  77. data/templates/locales/synced_folder_smb.yml +2 -2
  78. data/vagrant.gemspec +2 -0
  79. data/vendor/bundle/ruby/2.5.0/bundler/gems/vagrant-spec-f3daedaac493/vagrant-spec.gemspec +1 -1
  80. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/.document +5 -0
  81. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/.gitignore +17 -0
  82. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/.travis.yml +21 -0
  83. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/CHANGELOG.md +209 -0
  84. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/Gemfile +4 -0
  85. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/LICENSE.txt +78 -0
  86. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/README.md +67 -0
  87. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/Rakefile +88 -0
  88. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/data/public_suffix_list.dat +12440 -0
  89. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/domain_name.gemspec +36 -0
  90. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/lib/domain_name/etld_data.rb +8474 -0
  91. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/lib/domain_name/etld_data.rb.erb +11 -0
  92. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/lib/domain_name/punycode.rb +283 -0
  93. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/lib/domain_name/version.rb +3 -0
  94. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/lib/domain_name.rb +297 -0
  95. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/test/helper.rb +17 -0
  96. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/test/test_domain_name-punycode.rb +97 -0
  97. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/test/test_domain_name.rb +317 -0
  98. data/vendor/bundle/ruby/2.5.0/gems/domain_name-0.5.20180417/tool/gen_etld_data.rb +63 -0
  99. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/CHANGES +13 -0
  100. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/LICENSE +201 -0
  101. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/MANIFEST +9 -0
  102. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/README +48 -0
  103. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/Rakefile +42 -0
  104. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/certs/djberg96_pub.pem +21 -0
  105. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/ffi-win32-extensions.gemspec +25 -0
  106. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/lib/ffi/win32/extensions.rb +96 -0
  107. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/lib/ffi-win32-extensions.rb +1 -0
  108. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/test/test_ffi_extensions.rb +41 -0
  109. data/vendor/bundle/ruby/2.5.0/gems/ffi-win32-extensions-1.0.3/test/test_string_extensions.rb +20 -0
  110. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/CHANGES +235 -0
  111. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/MANIFEST +16 -0
  112. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/README +73 -0
  113. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/Rakefile +49 -0
  114. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/appveyor.yml +50 -0
  115. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/certs/djberg96_pub.pem +21 -0
  116. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/lib/win32/file/constants.rb +33 -0
  117. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/lib/win32/file/functions.rb +42 -0
  118. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/lib/win32/file/structs.rb +54 -0
  119. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/lib/win32/file.rb +585 -0
  120. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/lib/win32-file.rb +1 -0
  121. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/test/test_win32_file_link.rb +141 -0
  122. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/test/test_win32_file_misc.rb +16 -0
  123. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/test/test_win32_file_path.rb +282 -0
  124. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/test/test_win32_file_stat.rb +330 -0
  125. data/vendor/bundle/ruby/2.5.0/gems/win32-file-0.8.1/win32-file.gemspec +33 -0
  126. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/CHANGES +63 -0
  127. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/MANIFEST +18 -0
  128. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/README +47 -0
  129. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/Rakefile +66 -0
  130. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/appveyor.yml +53 -0
  131. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/certs/djberg96_pub.pem +21 -0
  132. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/lib/win32/file/security/constants.rb +149 -0
  133. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/lib/win32/file/security/functions.rb +63 -0
  134. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/lib/win32/file/security/structs.rb +68 -0
  135. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/lib/win32/file/security.rb +963 -0
  136. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/lib/win32-file-security.rb +1 -0
  137. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/test/test_win32_file_security_acls.rb +34 -0
  138. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/test/test_win32_file_security_constants.rb +54 -0
  139. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/test/test_win32_file_security_encryption.rb +90 -0
  140. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/test/test_win32_file_security_ffi.rb +33 -0
  141. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/test/test_win32_file_security_ownership.rb +174 -0
  142. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/test/test_win32_file_security_permissions.rb +88 -0
  143. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/test/test_win32_file_security_version.rb +14 -0
  144. data/vendor/bundle/ruby/2.5.0/gems/win32-file-security-1.0.10/win32-file-security.gemspec +28 -0
  145. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/CHANGES +169 -0
  146. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/MANIFEST +12 -0
  147. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/README +94 -0
  148. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/Rakefile +28 -0
  149. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/appveyor.yml +48 -0
  150. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/certs/djberg96_pub.pem +21 -0
  151. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/lib/win32/file/stat.rb +1008 -0
  152. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/lib/win32/file/windows/constants.rb +94 -0
  153. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/lib/win32/file/windows/functions.rb +68 -0
  154. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/lib/win32/file/windows/structs.rb +196 -0
  155. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/lib/win32-file-stat.rb +1 -0
  156. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/test/test_file_stat.rb +677 -0
  157. data/vendor/bundle/ruby/2.5.0/gems/win32-file-stat-1.5.5/win32-file-stat.gemspec +30 -0
  158. data/vendor/bundle/ruby/2.5.0/specifications/domain_name-0.5.20180417.gemspec +46 -0
  159. data/vendor/bundle/ruby/2.5.0/specifications/ffi-win32-extensions-1.0.3.gemspec +38 -0
  160. data/vendor/bundle/ruby/2.5.0/specifications/win32-file-0.8.1.gemspec +51 -0
  161. data/vendor/bundle/ruby/2.5.0/specifications/win32-file-security-1.0.10.gemspec +47 -0
  162. data/vendor/bundle/ruby/2.5.0/specifications/win32-file-stat-1.5.5.gemspec +48 -0
  163. data/version.txt +1 -1
  164. metadata +114 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3185c5c6b889db7a99b69caedd46ad10ea9e6ef9b3062873e8ea8387cc55976
4
- data.tar.gz: 440bf7accc0eb3e94c0cad83c867136d18fe3e94858bcd0aeef08e58a2d1140e
3
+ metadata.gz: 7f05389ae1ff4023e08b4a240e16afc13f24fb766254196f09ce91cf0f0c70b4
4
+ data.tar.gz: e76853469f4db645991f1b98bebca28cffc1cbfbe4d29f4c11033dc1e1099ce4
5
5
  SHA512:
6
- metadata.gz: 44d8a816903baab72e8fe6cf14696665ae901e5c7def8ad2f950118cd18b5363467f58889bd45ea7f412ad81eda321c600f78769dfa76c988d166e143cc17208
7
- data.tar.gz: 808c99ca866560d876ba1f07541139ab89f573cf87456750c6311bf989353cdbdd177343e997fe012700e6ff0f52300d0e367c6f1f1af333e8aa03dd8563f5d4
6
+ metadata.gz: 499aa7f81c240e7b9e313ffc2dc2f6c9d85a8d0b06d8582e16fb05e5b6b762a56b35ba3c738bfb506fb7f085048a4c239dd47861b25cd1c949d214618e68e43a
7
+ data.tar.gz: e1dede9125879c569429a21d1c4f698f2d13c8cbad9bc84616a5a784ddfb30dce10ade705bbc1a0bf408fbe2ea23ae97ede54b44de71c942b4f1c8c1c004a131
data/CHANGELOG.md CHANGED
@@ -1,3 +1,36 @@
1
+ ## 2.0.4 (April 20, 2018)
2
+
3
+ FEATURES:
4
+
5
+ - core: Vagrant aliases [GH-9504]
6
+
7
+ IMPROVEMENTS:
8
+
9
+ - communicators/ssh: Update file permissions when generating new key pairs [GH-9676]
10
+ - core: Make resolv-replace usage opt-in instead of opt-out [GH-9644]
11
+ - core: Suppress error messages from checkpoint runs [GH-9645]
12
+ - guests/coreos: Identify operating systems closely related to CoreOS [GH-9600]
13
+ - guests/debian: Adjust network configuration file prefix to 50- [GH-9646]
14
+ - guests/photon: Less specific string grep to fix PhotonOS 2.0 detection [GH-9528]
15
+ - guests/windows: Fix slow timeout when updating windows hostname [GH-9578]
16
+ - hosts/windows: Make powershell version detection timeout configurable [GH-9506]
17
+ - providers/virtualbox: Improve network collision error message [GH-9685]
18
+ - provisioner/chef_solo: Improve Windows drive letter removal hack for remote paths[GH-9490]
19
+ - provisioner/chef_zero: File path expand all chef_zero config path options [GH-9690]
20
+ - provisioner/puppet: Puppet structured facts toyaml on provisioner [GH-9670]
21
+ - provisioner/salt: Add master_json_config & minion_json_config options [GH-9420]
22
+ - util/platform: Warn on ArgumentError exceptions from encoding [GH-9506]
23
+
24
+ BUG FIXES:
25
+
26
+ - commands/package: Fix uninitialized constant error [GH-9654]
27
+ - communicators/winrm: Fix command filter to properly parse commands [GH-9673]
28
+ - hosts/windows: Properly respect the VAGRANT_PREFER_SYSTEM_BIN environment variable [GH-9503]
29
+ - hosts/windows: Fix virtualbox shared folders path for windows guests [GH-8099]
30
+ - guests/freebsd: Fix typo in command that manages configuring networks [GH-9705]
31
+ - util/checkpoint_client: Respect VAGRANT_CHECKPOINT_DISABLE environment variable [GH-9659]
32
+ - util/platform: Use `--version` instead of `version` for WSL validation [GH-9674]
33
+
1
34
  ## 2.0.3 (March 15, 2018)
2
35
 
3
36
  IMPROVEMENTS:
@@ -306,7 +339,7 @@ BUG FIXES:
306
339
  - core/bundler: Check if source is local path and prevent addition to remote sources [GH-8401]
307
340
  - core/ui: Prevent deadlock detection errors [GH-8414, GH-8125]
308
341
  - guests/debian: Remove hardcoded device name in interface template [GH-8336, GH-7960]
309
- - guests/linux: Fix SMB mount capbability [GH-8410, GH-8404]
342
+ - guests/linux: Fix SMB mount capability [GH-8410, GH-8404]
310
343
  - hosts/windows: Fix issues with Windows encoding [GH-8385, GH-8380, GH-8212, GH-8207, GH-7516]
311
344
  - hosts/windows: Fix UNC path generation when UNC path is provided [GH-8504]
312
345
  - provisioners/salt: Allow Salt version to match 2 digit month [GH-8428]
@@ -524,7 +557,7 @@ BUG FIXES:
524
557
  - guests/redhat: Use `/sbin/ip` to list and configure networks for
525
558
  compatability with older versions of CentOS [GH-7482]
526
559
  - guests/redhat: Ensure newline when inserting public key [GH-7598, GH-7605]
527
- - guests/ubuntu: Use /etc/os-release to detech [GH-7524]
560
+ - guests/ubuntu: Use /etc/os-release to detect [GH-7524]
528
561
  - guests/ubuntu: Use short hostname [GH-7488, GH-7605]
529
562
  - providers/hyperv: Fix version check and catch statement [GH-7447, GH-7487]
530
563
 
@@ -658,7 +691,7 @@ BUG FIXES:
658
691
  - providers/virtualbox: Set maximum network adapters to 36 [GH-7293, GH-7286]
659
692
  - providers/virtualbox: Do not fail when master VM from linked clone is
660
693
  missing [GH-7126, GH-6742]
661
- - providers/virtualbox: Use scoped overrides in preparring NFS
694
+ - providers/virtualbox: Use scoped overrides in preparing NFS
662
695
  [GH-7387, GH-7386]
663
696
  - provisioners/ansible: Fix a race condition in the concurrent generations of
664
697
  the ansible inventory file, while running `vagrant up --parallel`
@@ -1014,7 +1047,7 @@ BUG FIXES:
1014
1047
  - provisioners/ansible: disable color if Vagrant is not colored [GH-5531, GH-5532]
1015
1048
  - provisioners/ansible: only show ansible-playbook command when `verbose` option is enabled [GH-5803]
1016
1049
  - provisioners/ansible: fix a race condition in the inventory file generation [GH-5551]
1017
- - provisioners/docker: use `service` to restart Docker instad of upstart [GH-5245, GH-5577]
1050
+ - provisioners/docker: use `service` to restart Docker instead of upstart [GH-5245, GH-5577]
1018
1051
  - provisioners/docker: Only add docker user to group if exists. [GH-5315]
1019
1052
  - provisioners/docker: Use https for repo [GH-5749]
1020
1053
  - provisioners/docker: `apt-get update` before installing linux kernel
@@ -1249,7 +1282,7 @@ IMPROVEMENTS:
1249
1282
  deleted by default. [GH-4327]
1250
1283
  - commands/plugin: Better error output is shown when plugin installation
1251
1284
  fails.
1252
- - commands/reload: show post up messsage [GH-4168]
1285
+ - commands/reload: show post up message [GH-4168]
1253
1286
  - commands/rsync-auto: Add `--poll` flag. [GH-4392]
1254
1287
  - communicators/winrm: Show stdout/stderr if command fails. [GH-4094]
1255
1288
  - guests/nixos: Added better NFS support. [GH-3983]
@@ -1537,7 +1570,7 @@ BUG FIXES:
1537
1570
  already for 127.0.1.1 [GH-3271]
1538
1571
  - guests/linux: For `read_ip_address` capability, set `LANG=en` so
1539
1572
  it works on international systems. [GH-3029]
1540
- - providers/virtualbox: VirtalBox detection works properly again on
1573
+ - providers/virtualbox: VirtualBox detection works properly again on
1541
1574
  Windows when the `VBOX_INSTALL_PATH` has multiple elements. [GH-3549]
1542
1575
  - providers/virtualbox: Forcing MAC address on private network works
1543
1576
  properly again. [GH-3588]
@@ -1714,7 +1747,7 @@ BUG FIXES:
1714
1747
  - core: Assume a box isn't metadata if it exceeds 20 MB. [GH-3107]
1715
1748
  - core: Asking for input works even in consoles that don't support
1716
1749
  hiding input. [GH-3119]
1717
- - core: Adding a box by path in Cygwin on Windos works. [GH-3132]
1750
+ - core: Adding a box by path in Cygwin on Windows works. [GH-3132]
1718
1751
  - core: PowerShell scripts work when they're in a directory with
1719
1752
  spaces. [GH-3100]
1720
1753
  - core: If you add a box path that doesn't exist, error earlier. [GH-3091]
@@ -2030,7 +2063,7 @@ BUG FIXES:
2030
2063
  - core: Don't load Vagrantfile on `vagrant plugin` commands, allowing
2031
2064
  Vagrantfiles that use plugins to work. [GH-2388]
2032
2065
  - core: global flags are ignored past the "--" on the CLI. [GH-2491]
2033
- - core: provisoining will properly happen if `up` failed. [GH-2488]
2066
+ - core: provisioning will properly happen if `up` failed. [GH-2488]
2034
2067
  - guests/freebsd: Mounting NFS folders works. [GH-2400]
2035
2068
  - guests/freebsd: Uses `sh` by default for shell. [GH-2485]
2036
2069
  - guests/linux: upstart events listening for `vagrant-mounted` won't
@@ -3036,7 +3069,7 @@ IMPROVEMENTS / BUG FIXES:
3036
3069
  the behavior seems different/wrong.
3037
3070
  - Give a nice error if `:vagrant` is used as a JSON key, since Vagrant
3038
3071
  uses this. [GH-661]
3039
- - If there is only one bridgable interface, use that without asking
3072
+ - If there is only one bridgeable interface, use that without asking
3040
3073
  the user. [GH-655]
3041
3074
  - The shell will have color output if ANSICON is installed on Windows. [GH-666]
3042
3075
 
@@ -3087,7 +3120,7 @@ IMPROVEMENTS / BUG FIXES:
3087
3120
  port of the virtual machine.
3088
3121
  - If a shared folder now has a `:create` flag set to `true`, the path on the
3089
3122
  host will be created if it doesn't exist.
3090
- - Added `--force` flag to `box add`, which will overwite any existing boxes
3123
+ - Added `--force` flag to `box add`, which will overwrite any existing boxes
3091
3124
  if they exist. [GH-631]
3092
3125
  - Added `--provision-with` to `up` which configures what provisioners run,
3093
3126
  by shortcut. [GH-367]
data/Gemfile.lock CHANGED
@@ -11,7 +11,7 @@ GIT
11
11
  PATH
12
12
  remote: .
13
13
  specs:
14
- vagrant-unbundled (2.0.3.0)
14
+ vagrant-unbundled (2.0.4.0)
15
15
  childprocess (~> 0.6.0)
16
16
  erubis (~> 2.7.0)
17
17
  hashicorp-checkpoint (~> 0.1.5)
@@ -25,6 +25,8 @@ PATH
25
25
  rest-client (~> 2.0)
26
26
  ruby_dep (<= 1.3.1)
27
27
  wdm (~> 0.1.0)
28
+ win32-file (~> 0.8.1)
29
+ win32-file-security (~> 1.0.10)
28
30
  winrm (~> 2.1)
29
31
  winrm-elevated (~> 1.1)
30
32
  winrm-fs (~> 1.0)
@@ -40,11 +42,13 @@ GEM
40
42
  crack (0.4.3)
41
43
  safe_yaml (~> 1.0.0)
42
44
  diff-lcs (1.3)
43
- domain_name (0.5.20170404)
45
+ domain_name (0.5.20180417)
44
46
  unf (>= 0.0.5, < 1.0.0)
45
47
  erubis (2.7.0)
46
48
  fake_ftp (0.1.1)
47
49
  ffi (1.9.23)
50
+ ffi-win32-extensions (1.0.3)
51
+ ffi
48
52
  gssapi (1.2.0)
49
53
  ffi (>= 1.0.1)
50
54
  gyoku (1.3.1)
@@ -115,6 +119,16 @@ GEM
115
119
  addressable (>= 2.3.6)
116
120
  crack (>= 0.3.2)
117
121
  hashdiff
122
+ win32-file (0.8.1)
123
+ ffi
124
+ ffi-win32-extensions
125
+ win32-file-stat (>= 1.4.0)
126
+ win32-file-security (1.0.10)
127
+ ffi
128
+ ffi-win32-extensions
129
+ win32-file-stat (1.5.5)
130
+ ffi
131
+ ffi-win32-extensions
118
132
  winrm (2.2.3)
119
133
  builder (>= 2.1.2)
120
134
  erubis (~> 2.7)
data/README.md CHANGED
@@ -4,6 +4,7 @@
4
4
  * Source: [https://github.com/hashicorp/vagrant](https://github.com/hashicorp/vagrant)
5
5
  * [![Gitter chat](https://badges.gitter.im/mitchellh/vagrant.png)](https://gitter.im/mitchellh/vagrant)
6
6
  * Mailing list: [Google Groups](https://groups.google.com/group/vagrant-up)
7
+ * IRC: #vagrant on freenode.org
7
8
 
8
9
  Vagrant is a tool for building and distributing development environments.
9
10
 
data/bin/vagrant CHANGED
@@ -9,7 +9,7 @@ Signal.trap("INT") { abort }
9
9
  argv = ARGV.dup
10
10
  argv_extra = []
11
11
 
12
- # These will be the options that are passed to initialze the Vagrant
12
+ # These will be the options that are passed to initialize the Vagrant
13
13
  # environment.
14
14
  opts = {}
15
15
 
@@ -6,7 +6,7 @@ module Vagrant
6
6
  module Action
7
7
  module Builtin
8
8
  # This built-in middleware handles the `box` setting by verifying
9
- # the box is already installed, dowloading the box if it isn't,
9
+ # the box is already installed, downloading the box if it isn't,
10
10
  # updating the box if it is requested, etc.
11
11
  class HandleBox
12
12
  @@big_lock = Mutex.new
@@ -121,7 +121,7 @@ module Vagrant
121
121
  @env[:ui].info I18n.t("vagrant.actions.general.package.packaging", file: from)
122
122
  FileUtils.mkdir_p(to.parent)
123
123
 
124
- # Copy direcotry contents recursively.
124
+ # Copy directory contents recursively.
125
125
  if File.directory?(from)
126
126
  FileUtils.cp_r(Dir.glob(from), to.parent, preserve: true)
127
127
  else
@@ -36,7 +36,9 @@ module Vagrant
36
36
  end
37
37
 
38
38
  module General
39
- autoload :Package, 'vagrant/action/general/package'
39
+ autoload :Package, 'vagrant/action/general/package'
40
+ autoload :PackageSetupFiles, 'vagrant/action/general/package_setup_files'
41
+ autoload :PackageSetupFolders, 'vagrant/action/general/package_setup_folders'
40
42
  end
41
43
 
42
44
  # This is the action that will add a box from a URL. This middleware
@@ -0,0 +1,56 @@
1
+ require "vagrant/registry"
2
+
3
+ module Vagrant
4
+ # This class imports and processes CLI aliases stored in ~/.vagrant.d/aliases
5
+ class Alias
6
+ def initialize(env)
7
+ @aliases = Registry.new
8
+ @env = env
9
+
10
+ if env.aliases_path.file?
11
+ env.aliases_path.readlines.each do |line|
12
+ # separate keyword-command pairs
13
+ keyword, command = interpret(line)
14
+
15
+ if keyword && command
16
+ register(keyword, command)
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ # This returns all the registered alias commands.
23
+ def commands
24
+ @aliases
25
+ end
26
+
27
+ # This interprets a raw line from the aliases file.
28
+ def interpret(line)
29
+ # is it a comment?
30
+ return nil if line.strip.start_with?("#")
31
+
32
+ keyword, command = line.split("=", 2).collect(&:strip)
33
+
34
+ # validate the keyword
35
+ if keyword.match(/\s/i)
36
+ raise Errors::AliasInvalidError, alias: line, message: "Alias keywords must not contain any whitespace."
37
+ end
38
+
39
+ [keyword, command]
40
+ end
41
+
42
+ # This registers an alias.
43
+ def register(keyword, command)
44
+ @aliases.register(keyword.to_sym) do
45
+ lambda do |args|
46
+ # directly execute shell commands
47
+ if command.start_with?("!")
48
+ return Util::SafeExec.exec "#{command[1..-1]} #{args.join(" ")}".strip
49
+ end
50
+
51
+ return CLI.new(command.split.concat(args), @env).execute
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -307,7 +307,7 @@ module Vagrant
307
307
 
308
308
  # Install all remote gems into plugin path. Set the installer to ignore dependencies
309
309
  # as we know the dependencies are satisfied and it will attempt to validate a gem's
310
- # dependencies are satisified by gems in the install directory (which will likely not
310
+ # dependencies are satisfied by gems in the install directory (which will likely not
311
311
  # be true)
312
312
  result = request_set.install_into(plugin_gem_path.to_s, true,
313
313
  ignore_dependencies: true,
@@ -5,7 +5,7 @@ module Vagrant
5
5
  #
6
6
  # Capabilities allow small pieces of functionality to be plugged in using
7
7
  # the Vagrant plugin model. Capabilities even allow for a certain amount
8
- # of inheritence, where only a subset of capabilities may be implemented but
8
+ # of inheritance, where only a subset of capabilities may be implemented but
9
9
  # a parent implements the rest.
10
10
  #
11
11
  # Capabilities are used heavily in Vagrant for host/guest interactions. For
data/lib/vagrant/cli.rb CHANGED
@@ -28,6 +28,14 @@ module Vagrant
28
28
  command_plugin = nil
29
29
  if @sub_command
30
30
  command_plugin = Vagrant.plugin("2").manager.commands[@sub_command.to_sym]
31
+
32
+ if !command_plugin
33
+ alias_command = Alias.new(@env).commands[@sub_command.to_sym]
34
+
35
+ if alias_command
36
+ return alias_command.call(@sub_args)
37
+ end
38
+ end
31
39
  end
32
40
 
33
41
  if !command_plugin || !@sub_command
@@ -1,7 +1,7 @@
1
1
  module Vagrant
2
2
  module Config
3
3
  # This is the base class for any configuration versions, and includes
4
- # the stub methods that configuaration versions must implement. Vagrant
4
+ # the stub methods that configuration versions must implement. Vagrant
5
5
  # supports configuration versioning so that backwards compatibility can be
6
6
  # maintained for past Vagrantfiles while newer configurations are added.
7
7
  # Vagrant only introduces new configuration versions for major versions
@@ -56,6 +56,9 @@ module Vagrant
56
56
  # The directory where temporary files for Vagrant go.
57
57
  attr_reader :tmp_path
58
58
 
59
+ # File where command line aliases go.
60
+ attr_reader :aliases_path
61
+
59
62
  # The directory where boxes are stored.
60
63
  attr_reader :boxes_path
61
64
 
@@ -124,6 +127,9 @@ module Vagrant
124
127
  @tmp_path = @home_path.join("tmp")
125
128
  @machine_index_dir = @data_dir.join("machine-index")
126
129
 
130
+ @aliases_path = Pathname.new(ENV["VAGRANT_ALIAS_FILE"]).expand_path if ENV.key?("VAGRANT_ALIAS_FILE")
131
+ @aliases_path ||= @home_path.join("aliases")
132
+
127
133
  # Prepare the directories
128
134
  setup_home_path
129
135
 
@@ -446,7 +452,7 @@ module Vagrant
446
452
  temp_dir_root: tmp_path)
447
453
  end
448
454
 
449
- # Returns the {Config::Loader} that can be used to load Vagrantflies
455
+ # Returns the {Config::Loader} that can be used to load Vagrantfiles
450
456
  # given the settings of this environment.
451
457
  #
452
458
  # @return [Config::Loader]
@@ -108,6 +108,10 @@ module Vagrant
108
108
  error_key(:active_machine_with_different_provider)
109
109
  end
110
110
 
111
+ class AliasInvalidError < VagrantError
112
+ error_key(:alias_invalid_error)
113
+ end
114
+
111
115
  class BatchMultiError < VagrantError
112
116
  error_key(:batch_multi_error)
113
117
  end
data/lib/vagrant/host.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "vagrant/capability_host"
2
2
 
3
3
  module Vagrant
4
- # This class handles host-OS specific interations. It is responsible for
4
+ # This class handles host-OS specific interactions. It is responsible for
5
5
  # detecting the proper host OS implementation and delegating capabilities
6
6
  # to plugins.
7
7
  #
@@ -456,7 +456,7 @@ module Vagrant
456
456
  info[:password] = @config.ssh.password if @config.ssh.password
457
457
  info[:extra_args] = @config.ssh.extra_args if @config.ssh.extra_args
458
458
 
459
- # We also set some fields that are purely controlled by Varant
459
+ # We also set some fields that are purely controlled by Vagrant
460
460
  info[:forward_agent] = @config.ssh.forward_agent
461
461
  info[:forward_x11] = @config.ssh.forward_x11
462
462
  info[:forward_env] = @config.ssh.forward_env
@@ -404,7 +404,7 @@ module Vagrant
404
404
  end
405
405
 
406
406
  # Returns boolean true if this entry appears to be valid.
407
- # The critera for being valid:
407
+ # The criteria for being valid:
408
408
  #
409
409
  # * Vagrantfile directory exists
410
410
  # * Vagrant environment contains a machine with this
@@ -3,7 +3,7 @@ module Vagrant
3
3
  module V1
4
4
  # The base class for a guest. A guest represents an installed system
5
5
  # within a machine that Vagrant manages. There are some portions of
6
- # Vagrant which are OS-specific such as mountaing shared folders and
6
+ # Vagrant which are OS-specific such as mounting shared folders and
7
7
  # halting the machine, and this abstraction allows the implementation
8
8
  # for these to be separate from the core of Vagrant.
9
9
  class Guest
@@ -3,7 +3,7 @@ module Vagrant
3
3
  module V1
4
4
  # Base class for a host in Vagrant. A host class contains functionality
5
5
  # that is specific to a specific OS that is running Vagrant. This
6
- # abstraction is done becauase there is some host-specific logic that
6
+ # abstraction is done because there is some host-specific logic that
7
7
  # Vagrant must do in some cases.
8
8
  class Host
9
9
  # This returns true/false depending on if the current running system
@@ -44,7 +44,7 @@ module Vagrant
44
44
  result
45
45
  end
46
46
 
47
- # Sets a human-friendly descrition of the plugin.
47
+ # Sets a human-friendly description of the plugin.
48
48
  #
49
49
  # @param [String] value Description of the plugin.
50
50
  # @return [String] Description of the plugin.
@@ -21,7 +21,7 @@ module Vagrant
21
21
  nil
22
22
  end
23
23
 
24
- # This method is called if the underying machine ID changes. Providers
24
+ # This method is called if the underlying machine ID changes. Providers
25
25
  # can use this method to load in new data for the actual backing
26
26
  # machine or to realize that the machine is now gone (the ID can
27
27
  # become `nil`). No parameters are given, since the underlying machine
@@ -7,7 +7,7 @@ module Vagrant
7
7
  # own form of plugin.
8
8
  #
9
9
  # The guest class itself is only responsible for detecting itself,
10
- # and may provide helpers for the capabilties.
10
+ # and may provide helpers for the capabilities.
11
11
  class Guest
12
12
  # This method is called when the machine is booted and has communication
13
13
  # capabilities in order to detect whether this guest operating system
@@ -3,7 +3,7 @@ module Vagrant
3
3
  module V2
4
4
  # Base class for a host in Vagrant. A host class contains functionality
5
5
  # that is specific to a specific OS that is running Vagrant. This
6
- # abstraction is done becauase there is some host-specific logic that
6
+ # abstraction is done because there is some host-specific logic that
7
7
  # Vagrant must do in some cases.
8
8
  class Host
9
9
  # This returns true/false depending on if the current running system
@@ -53,7 +53,7 @@ module Vagrant
53
53
  result
54
54
  end
55
55
 
56
- # Sets a human-friendly descrition of the plugin.
56
+ # Sets a human-friendly description of the plugin.
57
57
  #
58
58
  # @param [String] value Description of the plugin.
59
59
  # @return [String] Description of the plugin.
@@ -55,7 +55,7 @@ module Vagrant
55
55
  nil
56
56
  end
57
57
 
58
- # This method is called if the underying machine ID changes. Providers
58
+ # This method is called if the underlying machine ID changes. Providers
59
59
  # can use this method to load in new data for the actual backing
60
60
  # machine or to realize that the machine is now gone (the ID can
61
61
  # become `nil`). No parameters are given, since the underlying machine
@@ -15,7 +15,7 @@ module Vagrant
15
15
  # Max number of seconds to wait for joining an active thread.
16
16
  #
17
17
  # @return [Integer]
18
- # @note This is not the maxium time for a thread to complete.
18
+ # @note This is not the maximum time for a thread to complete.
19
19
  THREAD_MAX_JOIN_TIMEOUT = 60
20
20
 
21
21
  # This holds a global lock for the duration of the block. This should
@@ -93,7 +93,7 @@ module Vagrant
93
93
  #
94
94
  # @return [Pathname]
95
95
  def self.user_data_path
96
- # Use user spcified env var if available
96
+ # Use user specified env var if available
97
97
  path = ENV["VAGRANT_HOME"]
98
98
 
99
99
  # On Windows, we default to the USERPROFILE directory if it
@@ -134,15 +134,36 @@ module Vagrant
134
134
  #
135
135
  # @return [boolean] enabled or not
136
136
  def self.enable_resolv_replace
137
- if !ENV["VAGRANT_DISABLE_RESOLV_REPLACE"]
138
- begin
139
- require "resolv-replace"
140
- true
141
- rescue
137
+ if ENV["VAGRANT_ENABLE_RESOLV_REPLACE"]
138
+ if !ENV["VAGRANT_DISABLE_RESOLV_REPLACE"]
139
+ begin
140
+ require "resolv-replace"
141
+ true
142
+ rescue
143
+ false
144
+ end
145
+ else
142
146
  false
143
147
  end
144
- else
145
- false
146
148
  end
147
149
  end
150
+
151
+ # Set the global logger
152
+ #
153
+ # @param log Logger
154
+ # @return [Logger]
155
+ def self.global_logger=(log)
156
+ @_global_logger = log
157
+ end
158
+
159
+ # Get the global logger instance
160
+ #
161
+ # @return [Logger]
162
+ def self.global_logger
163
+ if @_global_logger.nil?
164
+ require "log4r"
165
+ @_global_logger = Log4r::Logger.new("vagrant::global")
166
+ end
167
+ @_global_logger
168
+ end
148
169
  end
@@ -39,6 +39,10 @@ module Vagrant
39
39
  rescue LoadError
40
40
  @logger.warn("checkpoint library not found. disabling.")
41
41
  end
42
+ if ENV["VAGRANT_CHECKPOINT_DISABLE"]
43
+ @logger.debug("checkpoint disabled via explicit user request")
44
+ @enabled = false
45
+ end
42
46
  @files = {
43
47
  signature: env.data_dir.join("checkpoint_signature"),
44
48
  cache: env.data_dir.join("checkpoint_cache")
@@ -74,6 +78,10 @@ module Vagrant
74
78
  if enabled && @checkpoint_thread.nil?
75
79
  logger.debug("starting plugin check")
76
80
  @checkpoint_thread = Thread.new do
81
+ Thread.current.abort_on_exception = false
82
+ if Thread.current.respond_to?(:report_on_exception=)
83
+ Thread.current.report_on_exception = false
84
+ end
77
85
  begin
78
86
  Thread.current[:result] = Checkpoint.check(
79
87
  product: "vagrant",
@@ -302,7 +302,7 @@ module Vagrant
302
302
  result
303
303
  end
304
304
 
305
- # Returns the varoius cURL and subprocess options.
305
+ # Returns the various cURL and subprocess options.
306
306
  #
307
307
  # @return [Array<Array, Hash>]
308
308
  def options
@@ -223,7 +223,15 @@ module Vagrant
223
223
  # Traverse each part and join it into the resulting path
224
224
  original.each do |single|
225
225
  Dir.entries(path).each do |entry|
226
- if entry.downcase == single.encode('filesystem').downcase
226
+ begin
227
+ single = single.encode("filesystem").to_s
228
+ rescue ArgumentError => err
229
+ Vagrant.global_logger.warn("path encoding failed - part=#{single} err=#{err.class} msg=#{err}")
230
+ # NOTE: Depending on the Windows environment the above
231
+ # encode will generate an "input string invalid" when
232
+ # attempting to encode. If that happens, continue on
233
+ end
234
+ if entry.downcase == single.downcase
227
235
  path = path.join(entry)
228
236
  end
229
237
  end
@@ -553,9 +561,9 @@ module Vagrant
553
561
  def wsl_validate_matching_vagrant_versions!
554
562
  valid = false
555
563
  if Util::Which.which("vagrant.exe")
556
- result = Util::Subprocess.execute("vagrant.exe", "version")
564
+ result = Util::Subprocess.execute("vagrant.exe", "--version")
557
565
  if result.exit_code == 0
558
- windows_version = result.stdout.match(/Installed Version: (?<version>[\w.-]+)/)
566
+ windows_version = result.stdout.match(/Vagrant (?<version>[\w.-]+)/)
559
567
  if windows_version
560
568
  windows_version = windows_version[:version].strip
561
569
  valid = windows_version == Vagrant::VERSION
@@ -11,6 +11,8 @@ module Vagrant
11
11
  class PowerShell
12
12
  # NOTE: Version checks are only on Major
13
13
  MINIMUM_REQUIRED_VERSION = 3
14
+ # Number of seconds to wait while attempting to get powershell version
15
+ DEFAULT_VERSION_DETECTION_TIMEOUT = 30
14
16
  LOGGER = Log4r::Logger.new("vagrant::util::powershell")
15
17
 
16
18
  # @return [String|nil] a powershell executable, depending on environment
@@ -101,8 +103,15 @@ module Vagrant
101
103
  ].flatten
102
104
 
103
105
  version = nil
106
+ timeout = ENV["VAGRANT_POWERSHELL_VERSION_DETECTION_TIMEOUT"].to_i
107
+ if timeout < 1
108
+ timeout = DEFAULT_VERSION_DETECTION_TIMEOUT
109
+ end
104
110
  begin
105
- r = Subprocess.execute(*command, notify: [:stdout, :stderr], timeout: 10) {|io_name,data| version = data}
111
+ r = Subprocess.execute(*command,
112
+ notify: [:stdout, :stderr],
113
+ timeout: timeout,
114
+ ) {|io_name,data| version = data}
106
115
  rescue Vagrant::Util::Subprocess::TimeoutExceeded
107
116
  LOGGER.debug("Timeout exceeded while attempting to determine version of Powershell.")
108
117
  end
@@ -183,6 +192,13 @@ module Vagrant
183
192
  Subprocess::Result.new(code, r_stdout, r_stderr)
184
193
  end
185
194
  end
195
+
196
+ # @private
197
+ # Reset the cached values for platform. This is not considered a public
198
+ # API and should only be used for testing.
199
+ def self.reset!
200
+ instance_variables.each(&method(:remove_instance_variable))
201
+ end
186
202
  end
187
203
  end
188
204
  end