vagrant-lxc 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. checksums.yaml +14 -6
  2. data/Gemfile +19 -14
  3. data/Gemfile.lock +10 -5
  4. data/README.md +18 -42
  5. data/development/Vagrantfile.1.0 +3 -2
  6. data/lib/vagrant-lxc/version.rb +1 -1
  7. data/lib/vagrant-lxc.rb +0 -2
  8. data/vagrant-lxc.gemspec +1 -14
  9. metadata +7 -540
  10. data/.gitmodules +0 -3
  11. data/bin/vagrant-lxc +0 -9
  12. data/lib/vendored_vagrant.rb +0 -9
  13. data/vendor/.gitkeep +0 -0
  14. data/vendor/vagrant/.gitignore +0 -31
  15. data/vendor/vagrant/.travis.yml +0 -7
  16. data/vendor/vagrant/.yardopts +0 -1
  17. data/vendor/vagrant/CHANGELOG.md +0 -803
  18. data/vendor/vagrant/Gemfile +0 -3
  19. data/vendor/vagrant/LICENSE +0 -21
  20. data/vendor/vagrant/README.md +0 -89
  21. data/vendor/vagrant/Rakefile +0 -18
  22. data/vendor/vagrant/bin/vagrant +0 -84
  23. data/vendor/vagrant/config/default.rb +0 -35
  24. data/vendor/vagrant/contrib/README.md +0 -12
  25. data/vendor/vagrant/contrib/bash/completion.sh +0 -3
  26. data/vendor/vagrant/contrib/emacs/vagrant.el +0 -8
  27. data/vendor/vagrant/contrib/vim/vagrantfile.vim +0 -9
  28. data/vendor/vagrant/keys/README.md +0 -17
  29. data/vendor/vagrant/keys/vagrant +0 -27
  30. data/vendor/vagrant/keys/vagrant.pub +0 -1
  31. data/vendor/vagrant/lib/vagrant/action/builder.rb +0 -154
  32. data/vendor/vagrant/lib/vagrant/action/builtin/box_add.rb +0 -79
  33. data/vendor/vagrant/lib/vagrant/action/builtin/call.rb +0 -67
  34. data/vendor/vagrant/lib/vagrant/action/builtin/config_validate.rb +0 -30
  35. data/vendor/vagrant/lib/vagrant/action/builtin/confirm.rb +0 -38
  36. data/vendor/vagrant/lib/vagrant/action/builtin/env_set.rb +0 -24
  37. data/vendor/vagrant/lib/vagrant/action/builtin/graceful_halt.rb +0 -73
  38. data/vendor/vagrant/lib/vagrant/action/builtin/handle_box_url.rb +0 -43
  39. data/vendor/vagrant/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb +0 -117
  40. data/vendor/vagrant/lib/vagrant/action/builtin/lock.rb +0 -57
  41. data/vendor/vagrant/lib/vagrant/action/builtin/nfs.rb +0 -117
  42. data/vendor/vagrant/lib/vagrant/action/builtin/provision.rb +0 -70
  43. data/vendor/vagrant/lib/vagrant/action/builtin/set_hostname.rb +0 -27
  44. data/vendor/vagrant/lib/vagrant/action/builtin/ssh_exec.rb +0 -42
  45. data/vendor/vagrant/lib/vagrant/action/builtin/ssh_run.rb +0 -43
  46. data/vendor/vagrant/lib/vagrant/action/general/package.rb +0 -102
  47. data/vendor/vagrant/lib/vagrant/action/hook.rb +0 -103
  48. data/vendor/vagrant/lib/vagrant/action/runner.rb +0 -69
  49. data/vendor/vagrant/lib/vagrant/action/warden.rb +0 -103
  50. data/vendor/vagrant/lib/vagrant/action.rb +0 -42
  51. data/vendor/vagrant/lib/vagrant/box.rb +0 -93
  52. data/vendor/vagrant/lib/vagrant/box_collection.rb +0 -315
  53. data/vendor/vagrant/lib/vagrant/cli.rb +0 -82
  54. data/vendor/vagrant/lib/vagrant/config/container.rb +0 -37
  55. data/vendor/vagrant/lib/vagrant/config/loader.rb +0 -222
  56. data/vendor/vagrant/lib/vagrant/config/v1/dummy_config.rb +0 -13
  57. data/vendor/vagrant/lib/vagrant/config/v1/loader.rb +0 -105
  58. data/vendor/vagrant/lib/vagrant/config/v1/root.rb +0 -60
  59. data/vendor/vagrant/lib/vagrant/config/v1.rb +0 -9
  60. data/vendor/vagrant/lib/vagrant/config/v2/dummy_config.rb +0 -13
  61. data/vendor/vagrant/lib/vagrant/config/v2/loader.rb +0 -141
  62. data/vendor/vagrant/lib/vagrant/config/v2/root.rb +0 -105
  63. data/vendor/vagrant/lib/vagrant/config/v2/util.rb +0 -21
  64. data/vendor/vagrant/lib/vagrant/config/v2.rb +0 -9
  65. data/vendor/vagrant/lib/vagrant/config/version_base.rb +0 -80
  66. data/vendor/vagrant/lib/vagrant/config.rb +0 -63
  67. data/vendor/vagrant/lib/vagrant/downloaders/base.rb +0 -22
  68. data/vendor/vagrant/lib/vagrant/downloaders/file.rb +0 -28
  69. data/vendor/vagrant/lib/vagrant/downloaders/http.rb +0 -116
  70. data/vendor/vagrant/lib/vagrant/downloaders.rb +0 -7
  71. data/vendor/vagrant/lib/vagrant/environment.rb +0 -729
  72. data/vendor/vagrant/lib/vagrant/errors.rb +0 -486
  73. data/vendor/vagrant/lib/vagrant/hosts.rb +0 -28
  74. data/vendor/vagrant/lib/vagrant/machine.rb +0 -325
  75. data/vendor/vagrant/lib/vagrant/machine_state.rb +0 -45
  76. data/vendor/vagrant/lib/vagrant/plugin/v1/command.rb +0 -169
  77. data/vendor/vagrant/lib/vagrant/plugin/v1/communicator.rb +0 -98
  78. data/vendor/vagrant/lib/vagrant/plugin/v1/config.rb +0 -112
  79. data/vendor/vagrant/lib/vagrant/plugin/v1/errors.rb +0 -15
  80. data/vendor/vagrant/lib/vagrant/plugin/v1/guest.rb +0 -92
  81. data/vendor/vagrant/lib/vagrant/plugin/v1/host.rb +0 -66
  82. data/vendor/vagrant/lib/vagrant/plugin/v1/manager.rb +0 -131
  83. data/vendor/vagrant/lib/vagrant/plugin/v1/plugin.rb +0 -229
  84. data/vendor/vagrant/lib/vagrant/plugin/v1/provider.rb +0 -68
  85. data/vendor/vagrant/lib/vagrant/plugin/v1/provisioner.rb +0 -50
  86. data/vendor/vagrant/lib/vagrant/plugin/v1.rb +0 -19
  87. data/vendor/vagrant/lib/vagrant/plugin/v2/command.rb +0 -234
  88. data/vendor/vagrant/lib/vagrant/plugin/v2/communicator.rb +0 -98
  89. data/vendor/vagrant/lib/vagrant/plugin/v2/components.rb +0 -29
  90. data/vendor/vagrant/lib/vagrant/plugin/v2/config.rb +0 -101
  91. data/vendor/vagrant/lib/vagrant/plugin/v2/errors.rb +0 -15
  92. data/vendor/vagrant/lib/vagrant/plugin/v2/guest.rb +0 -92
  93. data/vendor/vagrant/lib/vagrant/plugin/v2/host.rb +0 -66
  94. data/vendor/vagrant/lib/vagrant/plugin/v2/manager.rb +0 -158
  95. data/vendor/vagrant/lib/vagrant/plugin/v2/plugin.rb +0 -217
  96. data/vendor/vagrant/lib/vagrant/plugin/v2/provider.rb +0 -69
  97. data/vendor/vagrant/lib/vagrant/plugin/v2/provisioner.rb +0 -47
  98. data/vendor/vagrant/lib/vagrant/plugin/v2.rb +0 -22
  99. data/vendor/vagrant/lib/vagrant/plugin.rb +0 -6
  100. data/vendor/vagrant/lib/vagrant/registry.rb +0 -78
  101. data/vendor/vagrant/lib/vagrant/ssh.rb +0 -132
  102. data/vendor/vagrant/lib/vagrant/test_helpers.rb +0 -154
  103. data/vendor/vagrant/lib/vagrant/ui.rb +0 -170
  104. data/vendor/vagrant/lib/vagrant/util/ansi_escape_code_remover.rb +0 -34
  105. data/vendor/vagrant/lib/vagrant/util/busy.rb +0 -59
  106. data/vendor/vagrant/lib/vagrant/util/counter.rb +0 -24
  107. data/vendor/vagrant/lib/vagrant/util/file_checksum.rb +0 -38
  108. data/vendor/vagrant/lib/vagrant/util/file_mode.rb +0 -12
  109. data/vendor/vagrant/lib/vagrant/util/hash_with_indifferent_access.rb +0 -63
  110. data/vendor/vagrant/lib/vagrant/util/is_port_open.rb +0 -38
  111. data/vendor/vagrant/lib/vagrant/util/line_ending_helpers.rb +0 -14
  112. data/vendor/vagrant/lib/vagrant/util/network_ip.rb +0 -28
  113. data/vendor/vagrant/lib/vagrant/util/platform.rb +0 -68
  114. data/vendor/vagrant/lib/vagrant/util/retryable.rb +0 -31
  115. data/vendor/vagrant/lib/vagrant/util/safe_exec.rb +0 -36
  116. data/vendor/vagrant/lib/vagrant/util/safe_puts.rb +0 -31
  117. data/vendor/vagrant/lib/vagrant/util/scoped_hash_override.rb +0 -45
  118. data/vendor/vagrant/lib/vagrant/util/ssh.rb +0 -126
  119. data/vendor/vagrant/lib/vagrant/util/stacked_proc_runner.rb +0 -35
  120. data/vendor/vagrant/lib/vagrant/util/string_block_editor.rb +0 -75
  121. data/vendor/vagrant/lib/vagrant/util/subprocess.rb +0 -270
  122. data/vendor/vagrant/lib/vagrant/util/template_renderer.rb +0 -83
  123. data/vendor/vagrant/lib/vagrant/util/which.rb +0 -43
  124. data/vendor/vagrant/lib/vagrant/util.rb +0 -12
  125. data/vendor/vagrant/lib/vagrant/version.rb +0 -6
  126. data/vendor/vagrant/lib/vagrant.rb +0 -251
  127. data/vendor/vagrant/plugins/README.md +0 -5
  128. data/vendor/vagrant/plugins/commands/box/command/add.rb +0 -52
  129. data/vendor/vagrant/plugins/commands/box/command/list.rb +0 -41
  130. data/vendor/vagrant/plugins/commands/box/command/remove.rb +0 -37
  131. data/vendor/vagrant/plugins/commands/box/command/repackage.rb +0 -43
  132. data/vendor/vagrant/plugins/commands/box/command/root.rb +0 -75
  133. data/vendor/vagrant/plugins/commands/box/plugin.rb +0 -15
  134. data/vendor/vagrant/plugins/commands/destroy/command.rb +0 -31
  135. data/vendor/vagrant/plugins/commands/destroy/plugin.rb +0 -18
  136. data/vendor/vagrant/plugins/commands/halt/command.rb +0 -33
  137. data/vendor/vagrant/plugins/commands/halt/plugin.rb +0 -18
  138. data/vendor/vagrant/plugins/commands/init/command.rb +0 -40
  139. data/vendor/vagrant/plugins/commands/init/plugin.rb +0 -18
  140. data/vendor/vagrant/plugins/commands/package/command.rb +0 -78
  141. data/vendor/vagrant/plugins/commands/package/plugin.rb +0 -18
  142. data/vendor/vagrant/plugins/commands/plugin/action/bundler_check.rb +0 -25
  143. data/vendor/vagrant/plugins/commands/plugin/action/install_gem.rb +0 -70
  144. data/vendor/vagrant/plugins/commands/plugin/action/license_plugin.rb +0 -54
  145. data/vendor/vagrant/plugins/commands/plugin/action/list_plugins.rb +0 -54
  146. data/vendor/vagrant/plugins/commands/plugin/action/prune_gems.rb +0 -149
  147. data/vendor/vagrant/plugins/commands/plugin/action/uninstall_plugin.rb +0 -23
  148. data/vendor/vagrant/plugins/commands/plugin/action.rb +0 -52
  149. data/vendor/vagrant/plugins/commands/plugin/command/base.rb +0 -22
  150. data/vendor/vagrant/plugins/commands/plugin/command/install.rb +0 -39
  151. data/vendor/vagrant/plugins/commands/plugin/command/license.rb +0 -31
  152. data/vendor/vagrant/plugins/commands/plugin/command/list.rb +0 -28
  153. data/vendor/vagrant/plugins/commands/plugin/command/root.rb +0 -75
  154. data/vendor/vagrant/plugins/commands/plugin/command/uninstall.rb +0 -28
  155. data/vendor/vagrant/plugins/commands/plugin/gem_helper.rb +0 -74
  156. data/vendor/vagrant/plugins/commands/plugin/plugin.rb +0 -22
  157. data/vendor/vagrant/plugins/commands/plugin/state_file.rb +0 -57
  158. data/vendor/vagrant/plugins/commands/provision/command.rb +0 -34
  159. data/vendor/vagrant/plugins/commands/provision/plugin.rb +0 -18
  160. data/vendor/vagrant/plugins/commands/reload/command.rb +0 -37
  161. data/vendor/vagrant/plugins/commands/reload/plugin.rb +0 -18
  162. data/vendor/vagrant/plugins/commands/resume/command.rb +0 -25
  163. data/vendor/vagrant/plugins/commands/resume/plugin.rb +0 -17
  164. data/vendor/vagrant/plugins/commands/ssh/command.rb +0 -66
  165. data/vendor/vagrant/plugins/commands/ssh/plugin.rb +0 -17
  166. data/vendor/vagrant/plugins/commands/ssh_config/command.rb +0 -49
  167. data/vendor/vagrant/plugins/commands/ssh_config/plugin.rb +0 -18
  168. data/vendor/vagrant/plugins/commands/status/command.rb +0 -39
  169. data/vendor/vagrant/plugins/commands/status/plugin.rb +0 -18
  170. data/vendor/vagrant/plugins/commands/suspend/command.rb +0 -25
  171. data/vendor/vagrant/plugins/commands/suspend/plugin.rb +0 -18
  172. data/vendor/vagrant/plugins/commands/up/command.rb +0 -45
  173. data/vendor/vagrant/plugins/commands/up/plugin.rb +0 -17
  174. data/vendor/vagrant/plugins/commands/up/start_mixins.rb +0 -26
  175. data/vendor/vagrant/plugins/communicators/ssh/communicator.rb +0 -317
  176. data/vendor/vagrant/plugins/communicators/ssh/plugin.rb +0 -19
  177. data/vendor/vagrant/plugins/guests/arch/guest.rb +0 -41
  178. data/vendor/vagrant/plugins/guests/arch/plugin.rb +0 -15
  179. data/vendor/vagrant/plugins/guests/debian/guest.rb +0 -72
  180. data/vendor/vagrant/plugins/guests/debian/plugin.rb +0 -15
  181. data/vendor/vagrant/plugins/guests/fedora/guest.rb +0 -71
  182. data/vendor/vagrant/plugins/guests/fedora/plugin.rb +0 -15
  183. data/vendor/vagrant/plugins/guests/freebsd/config.rb +0 -13
  184. data/vendor/vagrant/plugins/guests/freebsd/guest.rb +0 -70
  185. data/vendor/vagrant/plugins/guests/freebsd/plugin.rb +0 -20
  186. data/vendor/vagrant/plugins/guests/gentoo/guest.rb +0 -51
  187. data/vendor/vagrant/plugins/guests/gentoo/plugin.rb +0 -15
  188. data/vendor/vagrant/plugins/guests/linux/config.rb +0 -13
  189. data/vendor/vagrant/plugins/guests/linux/guest.rb +0 -118
  190. data/vendor/vagrant/plugins/guests/linux/plugin.rb +0 -20
  191. data/vendor/vagrant/plugins/guests/openbsd/guest.rb +0 -13
  192. data/vendor/vagrant/plugins/guests/openbsd/plugin.rb +0 -15
  193. data/vendor/vagrant/plugins/guests/redhat/guest.rb +0 -74
  194. data/vendor/vagrant/plugins/guests/redhat/plugin.rb +0 -15
  195. data/vendor/vagrant/plugins/guests/solaris/config.rb +0 -18
  196. data/vendor/vagrant/plugins/guests/solaris/guest.rb +0 -73
  197. data/vendor/vagrant/plugins/guests/solaris/plugin.rb +0 -20
  198. data/vendor/vagrant/plugins/guests/suse/guest.rb +0 -24
  199. data/vendor/vagrant/plugins/guests/suse/plugin.rb +0 -15
  200. data/vendor/vagrant/plugins/guests/ubuntu/guest.rb +0 -44
  201. data/vendor/vagrant/plugins/guests/ubuntu/plugin.rb +0 -15
  202. data/vendor/vagrant/plugins/hosts/arch/host.rb +0 -68
  203. data/vendor/vagrant/plugins/hosts/arch/plugin.rb +0 -15
  204. data/vendor/vagrant/plugins/hosts/bsd/host.rb +0 -102
  205. data/vendor/vagrant/plugins/hosts/bsd/plugin.rb +0 -15
  206. data/vendor/vagrant/plugins/hosts/fedora/host.rb +0 -51
  207. data/vendor/vagrant/plugins/hosts/fedora/plugin.rb +0 -15
  208. data/vendor/vagrant/plugins/hosts/freebsd/host.rb +0 -43
  209. data/vendor/vagrant/plugins/hosts/freebsd/plugin.rb +0 -15
  210. data/vendor/vagrant/plugins/hosts/gentoo/host.rb +0 -24
  211. data/vendor/vagrant/plugins/hosts/gentoo/plugin.rb +0 -15
  212. data/vendor/vagrant/plugins/hosts/linux/host.rb +0 -95
  213. data/vendor/vagrant/plugins/hosts/linux/plugin.rb +0 -15
  214. data/vendor/vagrant/plugins/hosts/opensuse/host.rb +0 -34
  215. data/vendor/vagrant/plugins/hosts/opensuse/plugin.rb +0 -15
  216. data/vendor/vagrant/plugins/hosts/windows/host.rb +0 -17
  217. data/vendor/vagrant/plugins/hosts/windows/plugin.rb +0 -15
  218. data/vendor/vagrant/plugins/kernel_v1/config/nfs.rb +0 -20
  219. data/vendor/vagrant/plugins/kernel_v1/config/package.rb +0 -17
  220. data/vendor/vagrant/plugins/kernel_v1/config/ssh.rb +0 -46
  221. data/vendor/vagrant/plugins/kernel_v1/config/vagrant.rb +0 -31
  222. data/vendor/vagrant/plugins/kernel_v1/config/vm.rb +0 -184
  223. data/vendor/vagrant/plugins/kernel_v1/plugin.rb +0 -44
  224. data/vendor/vagrant/plugins/kernel_v2/config/nfs.rb +0 -10
  225. data/vendor/vagrant/plugins/kernel_v2/config/package.rb +0 -9
  226. data/vendor/vagrant/plugins/kernel_v2/config/ssh.rb +0 -35
  227. data/vendor/vagrant/plugins/kernel_v2/config/vagrant.rb +0 -9
  228. data/vendor/vagrant/plugins/kernel_v2/config/vm.rb +0 -314
  229. data/vendor/vagrant/plugins/kernel_v2/config/vm_provisioner.rb +0 -40
  230. data/vendor/vagrant/plugins/kernel_v2/config/vm_subvm.rb +0 -30
  231. data/vendor/vagrant/plugins/kernel_v2/plugin.rb +0 -44
  232. data/vendor/vagrant/plugins/providers/virtualbox/action/boot.rb +0 -49
  233. data/vendor/vagrant/plugins/providers/virtualbox/action/check_accessible.rb +0 -23
  234. data/vendor/vagrant/plugins/providers/virtualbox/action/check_created.rb +0 -21
  235. data/vendor/vagrant/plugins/providers/virtualbox/action/check_guest_additions.rb +0 -45
  236. data/vendor/vagrant/plugins/providers/virtualbox/action/check_running.rb +0 -21
  237. data/vendor/vagrant/plugins/providers/virtualbox/action/check_virtualbox.rb +0 -22
  238. data/vendor/vagrant/plugins/providers/virtualbox/action/clean_machine_folder.rb +0 -43
  239. data/vendor/vagrant/plugins/providers/virtualbox/action/clear_forwarded_ports.rb +0 -18
  240. data/vendor/vagrant/plugins/providers/virtualbox/action/clear_network_interfaces.rb +0 -31
  241. data/vendor/vagrant/plugins/providers/virtualbox/action/clear_shared_folders.rb +0 -17
  242. data/vendor/vagrant/plugins/providers/virtualbox/action/created.rb +0 -20
  243. data/vendor/vagrant/plugins/providers/virtualbox/action/customize.rb +0 -36
  244. data/vendor/vagrant/plugins/providers/virtualbox/action/destroy.rb +0 -19
  245. data/vendor/vagrant/plugins/providers/virtualbox/action/destroy_confirm.rb +0 -17
  246. data/vendor/vagrant/plugins/providers/virtualbox/action/destroy_unused_network_interfaces.rb +0 -16
  247. data/vendor/vagrant/plugins/providers/virtualbox/action/discard_state.rb +0 -20
  248. data/vendor/vagrant/plugins/providers/virtualbox/action/export.rb +0 -57
  249. data/vendor/vagrant/plugins/providers/virtualbox/action/forced_halt.rb +0 -25
  250. data/vendor/vagrant/plugins/providers/virtualbox/action/forward_ports.rb +0 -79
  251. data/vendor/vagrant/plugins/providers/virtualbox/action/import.rb +0 -51
  252. data/vendor/vagrant/plugins/providers/virtualbox/action/is_paused.rb +0 -20
  253. data/vendor/vagrant/plugins/providers/virtualbox/action/is_running.rb +0 -20
  254. data/vendor/vagrant/plugins/providers/virtualbox/action/is_saved.rb +0 -20
  255. data/vendor/vagrant/plugins/providers/virtualbox/action/match_mac_address.rb +0 -21
  256. data/vendor/vagrant/plugins/providers/virtualbox/action/message_not_created.rb +0 -16
  257. data/vendor/vagrant/plugins/providers/virtualbox/action/message_not_running.rb +0 -16
  258. data/vendor/vagrant/plugins/providers/virtualbox/action/message_will_not_destroy.rb +0 -17
  259. data/vendor/vagrant/plugins/providers/virtualbox/action/network.rb +0 -366
  260. data/vendor/vagrant/plugins/providers/virtualbox/action/package.rb +0 -20
  261. data/vendor/vagrant/plugins/providers/virtualbox/action/package_vagrantfile.rb +0 -33
  262. data/vendor/vagrant/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb +0 -35
  263. data/vendor/vagrant/plugins/providers/virtualbox/action/prepare_nfs_settings.rb +0 -51
  264. data/vendor/vagrant/plugins/providers/virtualbox/action/prune_nfs_exports.rb +0 -20
  265. data/vendor/vagrant/plugins/providers/virtualbox/action/resume.rb +0 -25
  266. data/vendor/vagrant/plugins/providers/virtualbox/action/sane_defaults.rb +0 -87
  267. data/vendor/vagrant/plugins/providers/virtualbox/action/set_name.rb +0 -40
  268. data/vendor/vagrant/plugins/providers/virtualbox/action/setup_package_files.rb +0 -51
  269. data/vendor/vagrant/plugins/providers/virtualbox/action/share_folders.rb +0 -113
  270. data/vendor/vagrant/plugins/providers/virtualbox/action/suspend.rb +0 -20
  271. data/vendor/vagrant/plugins/providers/virtualbox/action.rb +0 -308
  272. data/vendor/vagrant/plugins/providers/virtualbox/config.rb +0 -82
  273. data/vendor/vagrant/plugins/providers/virtualbox/driver/base.rb +0 -344
  274. data/vendor/vagrant/plugins/providers/virtualbox/driver/meta.rb +0 -141
  275. data/vendor/vagrant/plugins/providers/virtualbox/driver/version_4_0.rb +0 -481
  276. data/vendor/vagrant/plugins/providers/virtualbox/driver/version_4_1.rb +0 -481
  277. data/vendor/vagrant/plugins/providers/virtualbox/driver/version_4_2.rb +0 -471
  278. data/vendor/vagrant/plugins/providers/virtualbox/model/forwarded_port.rb +0 -58
  279. data/vendor/vagrant/plugins/providers/virtualbox/plugin.rb +0 -42
  280. data/vendor/vagrant/plugins/providers/virtualbox/provider.rb +0 -92
  281. data/vendor/vagrant/plugins/providers/virtualbox/util/compile_forwarded_ports.rb +0 -31
  282. data/vendor/vagrant/plugins/provisioners/chef/config/base.rb +0 -65
  283. data/vendor/vagrant/plugins/provisioners/chef/config/chef_client.rb +0 -39
  284. data/vendor/vagrant/plugins/provisioners/chef/config/chef_solo.rb +0 -87
  285. data/vendor/vagrant/plugins/provisioners/chef/plugin.rb +0 -33
  286. data/vendor/vagrant/plugins/provisioners/chef/provisioner/base.rb +0 -91
  287. data/vendor/vagrant/plugins/provisioners/chef/provisioner/chef_client.rb +0 -103
  288. data/vendor/vagrant/plugins/provisioners/chef/provisioner/chef_solo.rb +0 -182
  289. data/vendor/vagrant/plugins/provisioners/puppet/config/puppet.rb +0 -70
  290. data/vendor/vagrant/plugins/provisioners/puppet/config/puppet_server.rb +0 -16
  291. data/vendor/vagrant/plugins/provisioners/puppet/plugin.rb +0 -33
  292. data/vendor/vagrant/plugins/provisioners/puppet/provisioner/puppet.rb +0 -110
  293. data/vendor/vagrant/plugins/provisioners/puppet/provisioner/puppet_server.rb +0 -67
  294. data/vendor/vagrant/plugins/provisioners/shell/config.rb +0 -46
  295. data/vendor/vagrant/plugins/provisioners/shell/plugin.rb +0 -23
  296. data/vendor/vagrant/plugins/provisioners/shell/provisioner.rb +0 -66
  297. data/vendor/vagrant/tasks/acceptance.rake +0 -113
  298. data/vendor/vagrant/tasks/bundler.rake +0 -3
  299. data/vendor/vagrant/tasks/test.rake +0 -20
  300. data/vendor/vagrant/templates/commands/init/Vagrantfile.erb +0 -111
  301. data/vendor/vagrant/templates/commands/ssh_config/config.erb +0 -16
  302. data/vendor/vagrant/templates/config/messages.erb +0 -14
  303. data/vendor/vagrant/templates/config/validation_failed.erb +0 -7
  304. data/vendor/vagrant/templates/guests/arch/network_dhcp.erb +0 -4
  305. data/vendor/vagrant/templates/guests/arch/network_static.erb +0 -6
  306. data/vendor/vagrant/templates/guests/debian/network_dhcp.erb +0 -11
  307. data/vendor/vagrant/templates/guests/debian/network_static.erb +0 -7
  308. data/vendor/vagrant/templates/guests/fedora/network_dhcp.erb +0 -6
  309. data/vendor/vagrant/templates/guests/fedora/network_static.erb +0 -13
  310. data/vendor/vagrant/templates/guests/freebsd/network_dhcp.erb +0 -3
  311. data/vendor/vagrant/templates/guests/freebsd/network_static.erb +0 -3
  312. data/vendor/vagrant/templates/guests/gentoo/network_dhcp.erb +0 -4
  313. data/vendor/vagrant/templates/guests/gentoo/network_static.erb +0 -4
  314. data/vendor/vagrant/templates/guests/redhat/network_dhcp.erb +0 -6
  315. data/vendor/vagrant/templates/guests/redhat/network_static.erb +0 -7
  316. data/vendor/vagrant/templates/locales/en.yml +0 -993
  317. data/vendor/vagrant/templates/nfs/exports.erb +0 -5
  318. data/vendor/vagrant/templates/nfs/exports_freebsd.erb +0 -5
  319. data/vendor/vagrant/templates/nfs/exports_linux.erb +0 -5
  320. data/vendor/vagrant/templates/package_Vagrantfile.erb +0 -11
  321. data/vendor/vagrant/templates/provisioners/chef_client/client.erb +0 -32
  322. data/vendor/vagrant/templates/provisioners/chef_solo/solo.erb +0 -25
  323. data/vendor/vagrant/templates/rgloader.rb +0 -9
  324. data/vendor/vagrant/test/acceptance/base.rb +0 -48
  325. data/vendor/vagrant/test/acceptance/box_test.rb +0 -99
  326. data/vendor/vagrant/test/acceptance/destroy_test.rb +0 -37
  327. data/vendor/vagrant/test/acceptance/halt_test.rb +0 -72
  328. data/vendor/vagrant/test/acceptance/init_test.rb +0 -33
  329. data/vendor/vagrant/test/acceptance/networking/host_only_test.rb +0 -37
  330. data/vendor/vagrant/test/acceptance/networking/port_forward_test.rb +0 -125
  331. data/vendor/vagrant/test/acceptance/package_test.rb +0 -46
  332. data/vendor/vagrant/test/acceptance/provisioning/basic_test.rb +0 -61
  333. data/vendor/vagrant/test/acceptance/provisioning/chef_solo_test.rb +0 -37
  334. data/vendor/vagrant/test/acceptance/provisioning/shell_test.rb +0 -53
  335. data/vendor/vagrant/test/acceptance/resume_test.rb +0 -17
  336. data/vendor/vagrant/test/acceptance/shared_folders_test.rb +0 -84
  337. data/vendor/vagrant/test/acceptance/skeletons/chef_solo_basic/README.md +0 -3
  338. data/vendor/vagrant/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +0 -5
  339. data/vendor/vagrant/test/acceptance/skeletons/chef_solo_json/README.md +0 -3
  340. data/vendor/vagrant/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +0 -6
  341. data/vendor/vagrant/test/acceptance/skeletons/provisioner_multi/README.md +0 -3
  342. data/vendor/vagrant/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +0 -5
  343. data/vendor/vagrant/test/acceptance/ssh_test.rb +0 -46
  344. data/vendor/vagrant/test/acceptance/support/config.rb +0 -42
  345. data/vendor/vagrant/test/acceptance/support/isolated_environment.rb +0 -118
  346. data/vendor/vagrant/test/acceptance/support/matchers/have_color.rb +0 -9
  347. data/vendor/vagrant/test/acceptance/support/matchers/match_output.rb +0 -14
  348. data/vendor/vagrant/test/acceptance/support/matchers/succeed.rb +0 -14
  349. data/vendor/vagrant/test/acceptance/support/network_tests.rb +0 -29
  350. data/vendor/vagrant/test/acceptance/support/output.rb +0 -95
  351. data/vendor/vagrant/test/acceptance/support/shared/base_context.rb +0 -72
  352. data/vendor/vagrant/test/acceptance/support/shared/command_examples.rb +0 -33
  353. data/vendor/vagrant/test/acceptance/support/virtualbox.rb +0 -36
  354. data/vendor/vagrant/test/acceptance/suspend_test.rb +0 -56
  355. data/vendor/vagrant/test/acceptance/up_basic_test.rb +0 -33
  356. data/vendor/vagrant/test/acceptance/up_with_box_url.rb +0 -40
  357. data/vendor/vagrant/test/acceptance/vagrant_test.rb +0 -47
  358. data/vendor/vagrant/test/acceptance/version_test.rb +0 -15
  359. data/vendor/vagrant/test/config/acceptance_boxes.yml +0 -7
  360. data/vendor/vagrant/test/support/isolated_environment.rb +0 -46
  361. data/vendor/vagrant/test/support/tempdir.rb +0 -43
  362. data/vendor/vagrant/test/unit/base.rb +0 -27
  363. data/vendor/vagrant/test/unit/support/dummy_provider.rb +0 -16
  364. data/vendor/vagrant/test/unit/support/isolated_environment.rb +0 -177
  365. data/vendor/vagrant/test/unit/support/shared/base_context.rb +0 -104
  366. data/vendor/vagrant/test/unit/vagrant/action/builder_test.rb +0 -196
  367. data/vendor/vagrant/test/unit/vagrant/action/builtin/call_test.rb +0 -145
  368. data/vendor/vagrant/test/unit/vagrant/action/builtin/confirm_test.rb +0 -36
  369. data/vendor/vagrant/test/unit/vagrant/action/builtin/env_set_test.rb +0 -20
  370. data/vendor/vagrant/test/unit/vagrant/action/builtin/graceful_halt_test.rb +0 -61
  371. data/vendor/vagrant/test/unit/vagrant/action/builtin/lock_test.rb +0 -98
  372. data/vendor/vagrant/test/unit/vagrant/action/builtin/ssh_exec_test.rb +0 -57
  373. data/vendor/vagrant/test/unit/vagrant/action/hook_test.rb +0 -101
  374. data/vendor/vagrant/test/unit/vagrant/action/runner_test.rb +0 -71
  375. data/vendor/vagrant/test/unit/vagrant/action/warden_test.rb +0 -92
  376. data/vendor/vagrant/test/unit/vagrant/box_collection_test.rb +0 -224
  377. data/vendor/vagrant/test/unit/vagrant/box_test.rb +0 -109
  378. data/vendor/vagrant/test/unit/vagrant/cli_test.rb +0 -27
  379. data/vendor/vagrant/test/unit/vagrant/config/loader_test.rb +0 -184
  380. data/vendor/vagrant/test/unit/vagrant/config/v1/dummy_config_test.rb +0 -24
  381. data/vendor/vagrant/test/unit/vagrant/config/v1/loader_test.rb +0 -145
  382. data/vendor/vagrant/test/unit/vagrant/config/v1/root_test.rb +0 -40
  383. data/vendor/vagrant/test/unit/vagrant/config/v2/dummy_config_test.rb +0 -24
  384. data/vendor/vagrant/test/unit/vagrant/config/v2/loader_test.rb +0 -151
  385. data/vendor/vagrant/test/unit/vagrant/config/v2/root_test.rb +0 -97
  386. data/vendor/vagrant/test/unit/vagrant/config/v2/util_test.rb +0 -21
  387. data/vendor/vagrant/test/unit/vagrant/config_test.rb +0 -66
  388. data/vendor/vagrant/test/unit/vagrant/downloaders/base_test.rb +0 -14
  389. data/vendor/vagrant/test/unit/vagrant/downloaders/file_test.rb +0 -87
  390. data/vendor/vagrant/test/unit/vagrant/downloaders/http_test.rb +0 -23
  391. data/vendor/vagrant/test/unit/vagrant/environment_test.rb +0 -571
  392. data/vendor/vagrant/test/unit/vagrant/hosts_test.rb +0 -37
  393. data/vendor/vagrant/test/unit/vagrant/machine_state_test.rb +0 -26
  394. data/vendor/vagrant/test/unit/vagrant/machine_test.rb +0 -418
  395. data/vendor/vagrant/test/unit/vagrant/plugin/v1/command_test.rb +0 -143
  396. data/vendor/vagrant/test/unit/vagrant/plugin/v1/communicator_test.rb +0 -9
  397. data/vendor/vagrant/test/unit/vagrant/plugin/v1/config_test.rb +0 -50
  398. data/vendor/vagrant/test/unit/vagrant/plugin/v1/host_test.rb +0 -5
  399. data/vendor/vagrant/test/unit/vagrant/plugin/v1/manager_test.rb +0 -114
  400. data/vendor/vagrant/test/unit/vagrant/plugin/v1/plugin_test.rb +0 -267
  401. data/vendor/vagrant/test/unit/vagrant/plugin/v1/provider_test.rb +0 -18
  402. data/vendor/vagrant/test/unit/vagrant/plugin/v2/command_test.rb +0 -238
  403. data/vendor/vagrant/test/unit/vagrant/plugin/v2/communicator_test.rb +0 -9
  404. data/vendor/vagrant/test/unit/vagrant/plugin/v2/components_test.rb +0 -17
  405. data/vendor/vagrant/test/unit/vagrant/plugin/v2/config_test.rb +0 -60
  406. data/vendor/vagrant/test/unit/vagrant/plugin/v2/host_test.rb +0 -5
  407. data/vendor/vagrant/test/unit/vagrant/plugin/v2/manager_test.rb +0 -157
  408. data/vendor/vagrant/test/unit/vagrant/plugin/v2/plugin_test.rb +0 -287
  409. data/vendor/vagrant/test/unit/vagrant/plugin/v2/provider_test.rb +0 -18
  410. data/vendor/vagrant/test/unit/vagrant/registry_test.rb +0 -128
  411. data/vendor/vagrant/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +0 -16
  412. data/vendor/vagrant/test/unit/vagrant/util/file_checksum_test.rb +0 -23
  413. data/vendor/vagrant/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +0 -38
  414. data/vendor/vagrant/test/unit/vagrant/util/is_port_open_test.rb +0 -53
  415. data/vendor/vagrant/test/unit/vagrant/util/line_endings_helper_test.rb +0 -16
  416. data/vendor/vagrant/test/unit/vagrant/util/network_ip_test.rb +0 -17
  417. data/vendor/vagrant/test/unit/vagrant/util/retryable_test.rb +0 -106
  418. data/vendor/vagrant/test/unit/vagrant/util/scoped_hash_override_test.rb +0 -48
  419. data/vendor/vagrant/test/unit/vagrant/util/ssh_test.rb +0 -30
  420. data/vendor/vagrant/test/unit/vagrant/util/string_block_editor_test.rb +0 -98
  421. data/vendor/vagrant/test/unit/vagrant/util/which_test.rb +0 -43
  422. data/vendor/vagrant/test/unit/vagrant_test.rb +0 -56
  423. data/vendor/vagrant/vagrant.gemspec +0 -69
@@ -1,141 +0,0 @@
1
- require "forwardable"
2
-
3
- require "log4r"
4
-
5
- require File.expand_path("../base", __FILE__)
6
-
7
- module VagrantPlugins
8
- module ProviderVirtualBox
9
- module Driver
10
- class Meta < Base
11
- # This is raised if the VM is not found when initializing a driver
12
- # with a UUID.
13
- class VMNotFound < StandardError; end
14
-
15
- # We use forwardable to do all our driver forwarding
16
- extend Forwardable
17
-
18
- # The UUID of the virtual machine we represent
19
- attr_reader :uuid
20
-
21
- # The version of virtualbox that is running.
22
- attr_reader :version
23
-
24
- def initialize(uuid=nil)
25
- # Setup the base
26
- super()
27
-
28
- @logger = Log4r::Logger.new("vagrant::provider::virtualbox::meta")
29
- @uuid = uuid
30
-
31
- # Read and assign the version of VirtualBox we know which
32
- # specific driver to instantiate.
33
- begin
34
- @version = read_version || ""
35
- rescue Vagrant::Util::Subprocess::LaunchError
36
- # This means that VirtualBox was not found, so we raise this
37
- # error here.
38
- raise Vagrant::Errors::VirtualBoxNotDetected
39
- end
40
-
41
- # Instantiate the proper version driver for VirtualBox
42
- @logger.debug("Finding driver for VirtualBox version: #{@version}")
43
- driver_map = {
44
- "4.0" => Version_4_0,
45
- "4.1" => Version_4_1,
46
- "4.2" => Version_4_2
47
- }
48
-
49
- driver_klass = nil
50
- driver_map.each do |key, klass|
51
- if @version.start_with?(key)
52
- driver_klass = klass
53
- break
54
- end
55
- end
56
-
57
- if !driver_klass
58
- supported_versions = driver_map.keys.sort.join(", ")
59
- raise Vagrant::Errors::VirtualBoxInvalidVersion, :supported_versions => supported_versions
60
- end
61
-
62
- @logger.info("Using VirtualBox driver: #{driver_klass}")
63
- @driver = driver_klass.new(@uuid)
64
-
65
- if @uuid
66
- # Verify the VM exists, and if it doesn't, then don't worry
67
- # about it (mark the UUID as nil)
68
- raise VMNotFound if !@driver.vm_exists?(@uuid)
69
- end
70
- end
71
-
72
- def_delegators :@driver, :clear_forwarded_ports,
73
- :clear_shared_folders,
74
- :create_dhcp_server,
75
- :create_host_only_network,
76
- :delete,
77
- :delete_unused_host_only_networks,
78
- :discard_saved_state,
79
- :enable_adapters,
80
- :execute_command,
81
- :export,
82
- :forward_ports,
83
- :halt,
84
- :import,
85
- :read_forwarded_ports,
86
- :read_bridged_interfaces,
87
- :read_guest_additions_version,
88
- :read_host_only_interfaces,
89
- :read_mac_address,
90
- :read_mac_addresses,
91
- :read_machine_folder,
92
- :read_network_interfaces,
93
- :read_state,
94
- :read_used_ports,
95
- :read_vms,
96
- :resume,
97
- :set_mac_address,
98
- :set_name,
99
- :share_folders,
100
- :ssh_port,
101
- :start,
102
- :suspend,
103
- :verify!,
104
- :verify_image,
105
- :vm_exists?
106
-
107
- protected
108
-
109
- # This returns the version of VirtualBox that is running.
110
- #
111
- # @return [String]
112
- def read_version
113
- # The version string is usually in one of the following formats:
114
- #
115
- # * 4.1.8r1234
116
- # * 4.1.8r1234_OSE
117
- # * 4.1.8_MacPortsr1234
118
- #
119
- # Below accounts for all of these.
120
-
121
- # Note: We split this into multiple lines because apparently "".split("_")
122
- # is [], so we have to check for an empty array in between.
123
- output = execute("--version")
124
- if output =~ /vboxdrv kernel module is not loaded/
125
- raise Vagrant::Errors::VirtualBoxKernelModuleNotLoaded
126
- elsif output =~ /Please install/
127
- # Check for installation incomplete warnings, for example:
128
- # "WARNING: The character device /dev/vboxdrv does not
129
- # exist. Please install the virtualbox-ose-dkms package and
130
- # the appropriate headers, most likely linux-headers-generic."
131
- raise Vagrant::Errors::VirtualBoxInstallIncomplete
132
- end
133
-
134
- parts = output.split("_")
135
- return nil if parts.empty?
136
- parts[0].split("r")[0]
137
- end
138
- end
139
- end
140
- end
141
- end
@@ -1,481 +0,0 @@
1
- require 'log4r'
2
-
3
- require File.expand_path("../base", __FILE__)
4
-
5
- module VagrantPlugins
6
- module ProviderVirtualBox
7
- module Driver
8
- # Driver for VirtualBox 4.0.x
9
- class Version_4_0 < Base
10
- def initialize(uuid)
11
- super()
12
-
13
- @logger = Log4r::Logger.new("vagrant::provider::virtualbox_4_0")
14
- @uuid = uuid
15
- end
16
-
17
- def clear_forwarded_ports
18
- args = []
19
- read_forwarded_ports(@uuid).each do |nic, name, _, _|
20
- args.concat(["--natpf#{nic}", "delete", name])
21
- end
22
-
23
- execute("modifyvm", @uuid, *args) if !args.empty?
24
- end
25
-
26
- def clear_shared_folders
27
- info = execute("showvminfo", @uuid, "--machinereadable", :retryable => true)
28
- info.split("\n").each do |line|
29
- if name = line[/^SharedFolderNameMachineMapping\d+="(.+?)"$/, 1]
30
- execute("sharedfolder", "remove", @uuid, "--name", name)
31
- end
32
- end
33
- end
34
-
35
- def create_dhcp_server(network, options)
36
- execute("dhcpserver", "add", "--ifname", network,
37
- "--ip", options[:dhcp_ip],
38
- "--netmask", options[:netmask],
39
- "--lowerip", options[:dhcp_lower],
40
- "--upperip", options[:dhcp_upper],
41
- "--enable")
42
- end
43
-
44
- def create_host_only_network(options)
45
- # Create the interface
46
- interface = execute("hostonlyif", "create")
47
- name = interface[/^Interface '(.+?)' was successfully created$/, 1]
48
-
49
- # Configure it
50
- execute("hostonlyif", "ipconfig", name,
51
- "--ip", options[:adapter_ip],
52
- "--netmask", options[:netmask])
53
-
54
- # Return the details
55
- return {
56
- :name => name,
57
- :ip => options[:adapter_ip],
58
- :netmask => options[:netmask],
59
- :dhcp => nil
60
- }
61
- end
62
-
63
- def delete
64
- execute("unregistervm", @uuid, "--delete")
65
- end
66
-
67
- def delete_unused_host_only_networks
68
- networks = []
69
- execute("list", "hostonlyifs").split("\n").each do |line|
70
- if network_name = line[/^Name:\s+(.+?)$/, 1]
71
- networks << network_name
72
- end
73
- end
74
-
75
- execute("list", "vms").split("\n").each do |line|
76
- if vm_name = line[/^".+?"\s+\{(.+?)\}$/, 1]
77
- info = execute("showvminfo", vm_name, "--machinereadable", :retryable => true)
78
- info.split("\n").each do |line|
79
- if network_name = line[/^hostonlyadapter\d+="(.+?)"$/, 1]
80
- networks.delete(network_name)
81
- end
82
- end
83
- end
84
- end
85
-
86
- networks.each do |name|
87
- # First try to remove any DHCP servers attached. We use `raw` because
88
- # it is okay if this fails. It usually means that a DHCP server was
89
- # never attached.
90
- raw("dhcpserver", "remove", "--ifname", name)
91
-
92
- # Delete the actual host only network interface.
93
- execute("hostonlyif", "remove", name)
94
- end
95
- end
96
-
97
- def discard_saved_state
98
- execute("discardstate", @uuid)
99
- end
100
-
101
- def enable_adapters(adapters)
102
- args = []
103
- adapters.each do |adapter|
104
- args.concat(["--nic#{adapter[:adapter]}", adapter[:type].to_s])
105
-
106
- if adapter[:bridge]
107
- args.concat(["--bridgeadapter#{adapter[:adapter]}",
108
- adapter[:bridge]])
109
- end
110
-
111
- if adapter[:hostonly]
112
- args.concat(["--hostonlyadapter#{adapter[:adapter]}",
113
- adapter[:hostonly]])
114
- end
115
-
116
- if adapter[:mac_address]
117
- args.concat(["--macaddress#{adapter[:adapter]}",
118
- adapter[:mac_address]])
119
- end
120
-
121
- if adapter[:nic_type]
122
- args.concat(["--nictype#{adapter[:adapter]}", adapter[:nic_type].to_s])
123
- end
124
- end
125
-
126
- execute("modifyvm", @uuid, *args)
127
- end
128
-
129
- def execute_command(command)
130
- raw(*command)
131
- end
132
-
133
- def export(path)
134
- # TODO: Progress
135
- execute("export", @uuid, "--output", path.to_s)
136
- end
137
-
138
- def forward_ports(ports)
139
- args = []
140
- ports.each do |options|
141
- pf_builder = [options[:name],
142
- options[:protocol] || "tcp",
143
- "",
144
- options[:hostport],
145
- "",
146
- options[:guestport]]
147
-
148
- args.concat(["--natpf#{options[:adapter] || 1}",
149
- pf_builder.join(",")])
150
- end
151
-
152
- execute("modifyvm", @uuid, *args) if !args.empty?
153
- end
154
-
155
- def halt
156
- execute("controlvm", @uuid, "poweroff")
157
- end
158
-
159
- def import(ovf)
160
- output = ""
161
- total = ""
162
- last = 0
163
- execute("import", ovf) do |type, data|
164
- if type == :stdout
165
- # Keep track of the stdout so that we can get the VM name
166
- output << data
167
- elsif type == :stderr
168
- # Append the data so we can see the full view
169
- total << data
170
-
171
- # Break up the lines. We can't get the progress until we see an "OK"
172
- lines = total.split("\n")
173
- if lines.include?("OK.")
174
- # The progress of the import will be in the last line. Do a greedy
175
- # regular expression to find what we're looking for.
176
- if current = lines.last[/.+(\d{2})%/, 1]
177
- current = current.to_i
178
- if current > last
179
- last = current
180
- yield current if block_given?
181
- end
182
- end
183
- end
184
- end
185
- end
186
-
187
- # Find the name of the VM name
188
- name = output[/Suggested VM name "(.+?)"/, 1]
189
- if !name
190
- @logger.error("Couldn't find VM name in the output.")
191
- return nil
192
- end
193
-
194
- output = execute("list", "vms")
195
- if existing_vm = output[/^"#{Regexp.escape(name)}" \{(.+?)\}$/, 1]
196
- return existing_vm
197
- end
198
-
199
- nil
200
- end
201
-
202
- def read_forwarded_ports(uuid=nil, active_only=false)
203
- uuid ||= @uuid
204
-
205
- @logger.debug("read_forward_ports: uuid=#{uuid} active_only=#{active_only}")
206
-
207
- results = []
208
- current_nic = nil
209
- info = execute("showvminfo", uuid, "--machinereadable", :retryable => true)
210
- info.split("\n").each do |line|
211
- # This is how we find the nic that a FP is attached to,
212
- # since this comes first.
213
- if nic = line[/^nic(\d+)=".+?"$/, 1]
214
- current_nic = nic.to_i
215
- end
216
-
217
- # If we care about active VMs only, then we check the state
218
- # to verify the VM is running.
219
- if active_only && (state = line[/^VMState="(.+?)"$/, 1] and state != "running")
220
- return []
221
- end
222
-
223
- # Parse out the forwarded port information
224
- if matcher = /^Forwarding.+?="(.+?),.+?,.*?,(.+?),.*?,(.+?)"$/.match(line)
225
- result = [current_nic, matcher[1], matcher[2].to_i, matcher[3].to_i]
226
- @logger.debug(" - #{result.inspect}")
227
- results << result
228
- end
229
- end
230
-
231
- results
232
- end
233
-
234
- def read_bridged_interfaces
235
- execute("list", "bridgedifs").split("\n\n").collect do |block|
236
- info = {}
237
-
238
- block.split("\n").each do |line|
239
- if name = line[/^Name:\s+(.+?)$/, 1]
240
- info[:name] = name
241
- elsif ip = line[/^IPAddress:\s+(.+?)$/, 1]
242
- info[:ip] = ip
243
- elsif netmask = line[/^NetworkMask:\s+(.+?)$/, 1]
244
- info[:netmask] = netmask
245
- elsif status = line[/^Status:\s+(.+?)$/, 1]
246
- info[:status] = status
247
- end
248
- end
249
-
250
- # Return the info to build up the results
251
- info
252
- end
253
- end
254
-
255
- def read_guest_additions_version
256
- output = execute("guestproperty", "get", @uuid, "/VirtualBox/GuestAdd/Version",
257
- :retryable => true)
258
- if value = output[/^Value: (.+?)$/, 1]
259
- # Split the version by _ since some distro versions modify it
260
- # to look like this: 4.1.2_ubuntu, and the distro part isn't
261
- # too important.
262
- return value.split("_").first
263
- end
264
-
265
- return nil
266
- end
267
-
268
- def read_host_only_interfaces
269
- dhcp = {}
270
- execute("list", "dhcpservers", :retryable => true).split("\n\n").each do |block|
271
- info = {}
272
-
273
- block.split("\n").each do |line|
274
- if network = line[/^NetworkName:\s+HostInterfaceNetworking-(.+?)$/, 1]
275
- info[:network] = network
276
- elsif ip = line[/^IP:\s+(.+?)$/, 1]
277
- info[:ip] = ip
278
- elsif lower = line[/^lowerIPAddress:\s+(.+?)$/, 1]
279
- info[:lower] = lower
280
- elsif upper = line[/^upperIPAddress:\s+(.+?)$/, 1]
281
- info[:upper] = upper
282
- end
283
- end
284
-
285
- # Set the DHCP info
286
- dhcp[info[:network]] = info
287
- end
288
-
289
- execute("list", "hostonlyifs", :retryable => true).split("\n\n").collect do |block|
290
- info = {}
291
-
292
- block.split("\n").each do |line|
293
- if name = line[/^Name:\s+(.+?)$/, 1]
294
- info[:name] = name
295
- elsif ip = line[/^IPAddress:\s+(.+?)$/, 1]
296
- info[:ip] = ip
297
- elsif netmask = line[/^NetworkMask:\s+(.+?)$/, 1]
298
- info[:netmask] = netmask
299
- elsif status = line[/^Status:\s+(.+?)$/, 1]
300
- info[:status] = status
301
- end
302
- end
303
-
304
- # Set the DHCP info if it exists
305
- info[:dhcp] = dhcp[info[:name]] if dhcp[info[:name]]
306
-
307
- info
308
- end
309
- end
310
-
311
- def read_mac_address
312
- info = execute("showvminfo", @uuid, "--machinereadable", :retryable => true)
313
- info.split("\n").each do |line|
314
- if mac = line[/^macaddress1="(.+?)"$/, 1]
315
- return mac
316
- end
317
- end
318
-
319
- nil
320
- end
321
-
322
- def read_mac_addresses
323
- macs = {}
324
- info = execute("showvminfo", @uuid, "--machinereadable", :retryable => true)
325
- info.split("\n").each do |line|
326
- if matcher = /^macaddress(\d+)="(.+?)"$/.match(line)
327
- adapter = matcher[1].to_i
328
- mac = matcher[2].to_s
329
- macs[adapter] = mac
330
- end
331
- end
332
- macs
333
- end
334
-
335
- def read_machine_folder
336
- execute("list", "systemproperties", :retryable => true).split("\n").each do |line|
337
- if folder = line[/^Default machine folder:\s+(.+?)$/i, 1]
338
- return folder
339
- end
340
- end
341
-
342
- nil
343
- end
344
-
345
- def read_network_interfaces
346
- nics = {}
347
- info = execute("showvminfo", @uuid, "--machinereadable", :retryable => true)
348
- info.split("\n").each do |line|
349
- if matcher = /^nic(\d+)="(.+?)"$/.match(line)
350
- adapter = matcher[1].to_i
351
- type = matcher[2].to_sym
352
-
353
- nics[adapter] ||= {}
354
- nics[adapter][:type] = type
355
- elsif matcher = /^hostonlyadapter(\d+)="(.+?)"$/.match(line)
356
- adapter = matcher[1].to_i
357
- network = matcher[2].to_s
358
-
359
- nics[adapter] ||= {}
360
- nics[adapter][:hostonly] = network
361
- elsif matcher = /^bridgeadapter(\d+)="(.+?)"$/.match(line)
362
- adapter = matcher[1].to_i
363
- network = matcher[2].to_s
364
-
365
- nics[adapter] ||= {}
366
- nics[adapter][:bridge] = network
367
- end
368
- end
369
-
370
- nics
371
- end
372
-
373
- def read_state
374
- output = execute("showvminfo", @uuid, "--machinereadable", :retryable => true)
375
- if output =~ /^name="<inaccessible>"$/
376
- return :inaccessible
377
- elsif state = output[/^VMState="(.+?)"$/, 1]
378
- return state.to_sym
379
- end
380
-
381
- nil
382
- end
383
-
384
- def read_used_ports
385
- ports = []
386
- execute("list", "vms", :retryable => true).split("\n").each do |line|
387
- if uuid = line[/^".+?" \{(.+?)\}$/, 1]
388
- # Ignore our own used ports
389
- next if uuid == @uuid
390
-
391
- read_forwarded_ports(uuid, true).each do |_, _, hostport, _|
392
- ports << hostport
393
- end
394
- end
395
- end
396
-
397
- ports
398
- end
399
-
400
- def read_vms
401
- results = {}
402
- execute("list", "vms", :retryable => true).split("\n").each do |line|
403
- if line =~ /^"(.+?)" \{(.+?)\}$/
404
- results[$1.to_s] = $2.to_s
405
- end
406
- end
407
-
408
- results
409
- end
410
-
411
- def set_mac_address(mac)
412
- execute("modifyvm", @uuid, "--macaddress1", mac)
413
- end
414
-
415
- def set_name(name)
416
- execute("modifyvm", @uuid, "--name", name)
417
- end
418
-
419
- def share_folders(folders)
420
- folders.each do |folder|
421
- args = ["--name",
422
- folder[:name],
423
- "--hostpath",
424
- folder[:hostpath]]
425
- args << "--transient" if folder.has_key?(:transient) && folder[:transient]
426
- execute("sharedfolder", "add", @uuid, *args)
427
- end
428
- end
429
-
430
- def ssh_port(expected_port)
431
- @logger.debug("Searching for SSH port: #{expected_port.inspect}")
432
-
433
- # Look for the forwarded port only by comparing the guest port
434
- read_forwarded_ports.each do |_, _, hostport, guestport|
435
- return hostport if guestport == expected_port
436
- end
437
-
438
- nil
439
- end
440
-
441
- def resume
442
- @logger.debug("Resuming paused VM...")
443
- execute("controlvm", @uuid, "resume")
444
- end
445
-
446
- def start(mode)
447
- command = ["startvm", @uuid, "--type", mode.to_s]
448
- r = raw(*command)
449
-
450
- if r.exit_code == 0 || r.stdout =~ /VM ".+?" has been successfully started/
451
- # Some systems return an exit code 1 for some reason. For that
452
- # we depend on the output.
453
- return true
454
- end
455
-
456
- # If we reached this point then it didn't work out.
457
- raise Vagrant::Errors::VBoxManageError, :command => command.inspect
458
- end
459
-
460
- def suspend
461
- execute("controlvm", @uuid, "savestate")
462
- end
463
-
464
- def verify!
465
- # This command sometimes fails if kernel drivers aren't properly loaded
466
- # so we just run the command and verify that it succeeded.
467
- execute("list", "hostonlyifs")
468
- end
469
-
470
- def verify_image(path)
471
- r = raw("import", path.to_s, "--dry-run")
472
- return r.exit_code == 0
473
- end
474
-
475
- def vm_exists?(uuid)
476
- raw("showvminfo", uuid).exit_code == 0
477
- end
478
- end
479
- end
480
- end
481
- end