vagrantup 0.3.4 → 0.4.0

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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/README.md +2 -2
  4. data/Rakefile +1 -1
  5. data/VERSION +1 -1
  6. data/config/default.rb +13 -3
  7. data/lib/vagrant.rb +10 -13
  8. data/lib/vagrant/actions/base.rb +14 -2
  9. data/lib/vagrant/actions/box/download.rb +2 -7
  10. data/lib/vagrant/actions/box/verify.rb +1 -1
  11. data/lib/vagrant/actions/runner.rb +0 -1
  12. data/lib/vagrant/actions/vm/boot.rb +2 -6
  13. data/lib/vagrant/actions/vm/customize.rb +7 -5
  14. data/lib/vagrant/actions/vm/destroy.rb +4 -3
  15. data/lib/vagrant/actions/vm/down.rb +6 -3
  16. data/lib/vagrant/actions/vm/export.rb +2 -4
  17. data/lib/vagrant/actions/vm/forward_ports.rb +77 -16
  18. data/lib/vagrant/actions/vm/halt.rb +10 -2
  19. data/lib/vagrant/actions/vm/import.rb +2 -4
  20. data/lib/vagrant/actions/vm/move_hard_drive.rb +2 -2
  21. data/lib/vagrant/actions/vm/network.rb +120 -0
  22. data/lib/vagrant/actions/vm/package.rb +11 -7
  23. data/lib/vagrant/actions/vm/provision.rb +3 -3
  24. data/lib/vagrant/actions/vm/reload.rb +2 -9
  25. data/lib/vagrant/actions/vm/shared_folders.rb +19 -39
  26. data/lib/vagrant/actions/vm/start.rb +10 -2
  27. data/lib/vagrant/actions/vm/up.rb +5 -6
  28. data/lib/vagrant/active_list.rb +23 -13
  29. data/lib/vagrant/box.rb +2 -2
  30. data/lib/vagrant/busy.rb +3 -3
  31. data/lib/vagrant/command.rb +2 -2
  32. data/lib/vagrant/commands/base.rb +40 -20
  33. data/lib/vagrant/commands/destroy.rb +17 -3
  34. data/lib/vagrant/commands/halt.rb +23 -3
  35. data/lib/vagrant/commands/package.rb +54 -14
  36. data/lib/vagrant/commands/provision.rb +31 -0
  37. data/lib/vagrant/commands/reload.rb +16 -3
  38. data/lib/vagrant/commands/resume.rb +16 -3
  39. data/lib/vagrant/commands/ssh.rb +25 -3
  40. data/lib/vagrant/commands/ssh_config.rb +20 -5
  41. data/lib/vagrant/commands/status.rb +107 -40
  42. data/lib/vagrant/commands/suspend.rb +16 -3
  43. data/lib/vagrant/commands/up.rb +26 -7
  44. data/lib/vagrant/config.rb +82 -12
  45. data/lib/vagrant/downloaders/base.rb +8 -1
  46. data/lib/vagrant/downloaders/http.rb +31 -19
  47. data/lib/vagrant/environment.rb +146 -49
  48. data/lib/vagrant/provisioners/base.rb +19 -5
  49. data/lib/vagrant/provisioners/chef.rb +12 -4
  50. data/lib/vagrant/provisioners/chef_server.rb +13 -6
  51. data/lib/vagrant/provisioners/chef_solo.rb +7 -3
  52. data/lib/vagrant/resource_logger.rb +126 -0
  53. data/lib/vagrant/ssh.rb +109 -8
  54. data/lib/vagrant/systems/base.rb +70 -0
  55. data/lib/vagrant/systems/linux.rb +137 -0
  56. data/lib/vagrant/util.rb +1 -45
  57. data/lib/vagrant/util/error_helper.rb +13 -0
  58. data/lib/vagrant/util/glob_loader.rb +22 -0
  59. data/lib/vagrant/util/output_helper.rb +9 -0
  60. data/lib/vagrant/util/plain_logger.rb +12 -0
  61. data/lib/vagrant/util/platform.rb +7 -2
  62. data/lib/vagrant/util/template_renderer.rb +2 -2
  63. data/lib/vagrant/util/translator.rb +35 -0
  64. data/lib/vagrant/vm.rb +91 -10
  65. data/templates/crontab_entry.erb +1 -0
  66. data/templates/network_entry.erb +8 -0
  67. data/templates/ssh_config.erb +1 -0
  68. data/templates/{errors.yml → strings.yml} +111 -3
  69. data/templates/sync.erb +14 -0
  70. data/test/test_helper.rb +46 -3
  71. data/test/vagrant/actions/box/download_test.rb +0 -17
  72. data/test/vagrant/actions/vm/boot_test.rb +3 -10
  73. data/test/vagrant/actions/vm/customize_test.rb +6 -0
  74. data/test/vagrant/actions/vm/destroy_test.rb +6 -5
  75. data/test/vagrant/actions/vm/down_test.rb +5 -11
  76. data/test/vagrant/actions/vm/export_test.rb +1 -0
  77. data/test/vagrant/actions/vm/forward_ports_test.rb +92 -15
  78. data/test/vagrant/actions/vm/halt_test.rb +36 -4
  79. data/test/vagrant/actions/vm/import_test.rb +2 -0
  80. data/test/vagrant/actions/vm/network_test.rb +237 -0
  81. data/test/vagrant/actions/vm/package_test.rb +35 -5
  82. data/test/vagrant/actions/vm/provision_test.rb +3 -3
  83. data/test/vagrant/actions/vm/reload_test.rb +1 -1
  84. data/test/vagrant/actions/vm/shared_folders_test.rb +41 -74
  85. data/test/vagrant/actions/vm/start_test.rb +41 -3
  86. data/test/vagrant/actions/vm/up_test.rb +10 -21
  87. data/test/vagrant/active_list_test.rb +28 -43
  88. data/test/vagrant/commands/base_test.rb +25 -4
  89. data/test/vagrant/commands/destroy_test.rb +24 -12
  90. data/test/vagrant/commands/halt_test.rb +33 -11
  91. data/test/vagrant/commands/package_test.rb +77 -57
  92. data/test/vagrant/commands/provision_test.rb +50 -0
  93. data/test/vagrant/commands/reload_test.rb +27 -11
  94. data/test/vagrant/commands/resume_test.rb +25 -14
  95. data/test/vagrant/commands/ssh_config_test.rb +40 -17
  96. data/test/vagrant/commands/ssh_test.rb +52 -13
  97. data/test/vagrant/commands/status_test.rb +21 -1
  98. data/test/vagrant/commands/suspend_test.rb +25 -14
  99. data/test/vagrant/commands/up_test.rb +25 -19
  100. data/test/vagrant/config_test.rb +74 -18
  101. data/test/vagrant/downloaders/base_test.rb +2 -1
  102. data/test/vagrant/downloaders/http_test.rb +18 -8
  103. data/test/vagrant/environment_test.rb +245 -77
  104. data/test/vagrant/provisioners/base_test.rb +4 -4
  105. data/test/vagrant/provisioners/chef_server_test.rb +18 -7
  106. data/test/vagrant/provisioners/chef_solo_test.rb +17 -7
  107. data/test/vagrant/provisioners/chef_test.rb +22 -9
  108. data/test/vagrant/resource_logger_test.rb +144 -0
  109. data/test/vagrant/ssh_session_test.rb +46 -0
  110. data/test/vagrant/ssh_test.rb +42 -2
  111. data/test/vagrant/systems/linux_test.rb +174 -0
  112. data/test/vagrant/util/error_helper_test.rb +5 -0
  113. data/test/vagrant/util/output_helper_test.rb +5 -0
  114. data/test/vagrant/util/plain_logger_test.rb +17 -0
  115. data/test/vagrant/util/platform_test.rb +18 -0
  116. data/test/vagrant/util/{errors_test.rb → translator_test.rb} +25 -21
  117. data/test/vagrant/util_test.rb +12 -49
  118. data/test/vagrant/vm_test.rb +133 -11
  119. data/vagrant.gemspec +39 -15
  120. metadata +38 -14
  121. data/lib/vagrant/commands/down.rb +0 -16
  122. data/lib/vagrant/util/errors.rb +0 -36
  123. data/lib/vagrant/util/progress_meter.rb +0 -33
  124. data/test/vagrant/commands/down_test.rb +0 -17
  125. data/test/vagrant/util/progress_meter_test.rb +0 -33
data/lib/vagrant/util.rb CHANGED
@@ -1,51 +1,7 @@
1
1
  module Vagrant
2
2
  module Util
3
3
  def self.included(base)
4
- base.extend Vagrant::Util
5
- end
6
-
7
- def wrap_output
8
- puts "====================================================================="
9
- yield
10
- puts "====================================================================="
11
- end
12
-
13
- def error_and_exit(key, data = {})
14
- abort <<-error
15
- =====================================================================
16
- Vagrant experienced an error!
17
-
18
- #{Errors.error_string(key, data).chomp}
19
- =====================================================================
20
- error
21
- end
22
-
23
- def logger
24
- Logger.singleton_logger
25
- end
26
- end
27
-
28
- class Logger < ::Logger
29
- @@singleton_logger = nil
30
-
31
- class << self
32
- def singleton_logger
33
- # TODO: Buffer messages until config is loaded, then output them?
34
- if Vagrant.config.loaded?
35
- @@singleton_logger ||= Vagrant::Logger.new(Vagrant.config.vagrant.log_output)
36
- else
37
- Vagrant::Logger.new(nil)
38
- end
39
- end
40
-
41
- def reset_logger!
42
- @@singleton_logger = nil
43
- end
44
- end
45
-
46
- def format_message(level, time, progname, msg)
47
- "[#{level} #{time.strftime('%m-%d-%Y %X')}] Vagrant: #{msg}\n"
4
+ base.extend(self)
48
5
  end
49
6
  end
50
7
  end
51
-
@@ -0,0 +1,13 @@
1
+ module Vagrant
2
+ module Util
3
+ def error_and_exit(key, data = {})
4
+ abort <<-error
5
+ =====================================================================
6
+ Vagrant experienced an error!
7
+
8
+ #{Translator.t(key, data).chomp}
9
+ =====================================================================
10
+ error
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ module Vagrant
2
+ # Eases the processes of loading specific files then globbing
3
+ # the rest from a specified directory.
4
+ module GlobLoader
5
+ # Glob requires all ruby files in a directory, optionally loading select
6
+ # files initially (since others may depend on them).
7
+ #
8
+ # @param [String] dir The directory to glob
9
+ # @param [Array<String>] initial_files Initial files (relative to `dir`)
10
+ # to load
11
+ def self.glob_require(dir, initial_files=[])
12
+ initial_files.each do |file|
13
+ require File.expand_path(file, dir)
14
+ end
15
+
16
+ # Glob require the rest
17
+ Dir[File.join(dir, "**", "*.rb")].each do |f|
18
+ require File.expand_path(f)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ module Vagrant
2
+ module Util
3
+ def wrap_output
4
+ puts "====================================================================="
5
+ yield
6
+ puts "====================================================================="
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ module Vagrant
2
+ module Util
3
+ # Subclass of the standard library logger which has no format on
4
+ # its own. The message sent to the logger is outputted as-is.
5
+ class PlainLogger < ::Logger
6
+ def format_message(level, time, progname, msg)
7
+ # We do no formatting, its up to the user
8
+ "#{msg}\n"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -2,11 +2,16 @@ module Vagrant
2
2
  module Util
3
3
  # This class just contains some platform checking code.
4
4
  class Platform
5
- class <<self
5
+ class << self
6
6
  def leopard?
7
7
  RUBY_PLATFORM.downcase.include?("darwin9")
8
8
  end
9
+
10
+ def tar_file_options
11
+ # create, write only, fail if the file exists, binary if windows
12
+ File::WRONLY|File::EXCL|File::CREAT|(Mario::Platform.windows? ? File::BINARY : 0)
13
+ end
9
14
  end
10
15
  end
11
16
  end
12
- end
17
+ end
@@ -6,7 +6,7 @@ module Vagrant
6
6
  # This class is used to render the ERB templates in the
7
7
  # `GEM_ROOT/templates` directory.
8
8
  class TemplateRenderer < OpenStruct
9
- class <<self
9
+ class << self
10
10
  # Render a given template and return the result. This method optionally
11
11
  # takes a block which will be passed the renderer prior to rendering, which
12
12
  # allows the caller to set any view variables within the renderer itself.
@@ -80,4 +80,4 @@ module Vagrant
80
80
  end
81
81
  end
82
82
  end
83
- end
83
+ end
@@ -0,0 +1,35 @@
1
+ require 'yaml'
2
+
3
+ module Vagrant
4
+ module Util
5
+ # This class is responsible for reading static messages from the strings.yml file.
6
+ class Translator
7
+ @@strings = nil
8
+
9
+ class <<self
10
+ # Resets the internal strings hash to nil, forcing a reload on the next
11
+ # access of {strings}.
12
+ def reset!
13
+ @@strings = nil
14
+ end
15
+
16
+ # Returns the hash of strings from the error YML files. This only loads once,
17
+ # then returns a cached value until {reset!} is called.
18
+ #
19
+ # @return [Hash]
20
+ def strings
21
+ @@strings ||= YAML.load_file(File.join(PROJECT_ROOT, "templates", "strings.yml"))
22
+ end
23
+
24
+ # Renders the string with the given key and data parameters and returns
25
+ # the rendered result.
26
+ #
27
+ # @return [String]
28
+ def t(key, data = {})
29
+ template = strings[key] || "Unknown strings key: #{key}"
30
+ TemplateRenderer.render_string(template, data)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
data/lib/vagrant/vm.rb CHANGED
@@ -2,22 +2,87 @@ module Vagrant
2
2
  class VM < Actions::Runner
3
3
  include Vagrant::Util
4
4
 
5
- attr_accessor :env
5
+ attr_reader :env
6
+ attr_reader :system
7
+ attr_reader :name
6
8
  attr_accessor :vm
7
- attr_accessor :from
8
9
 
9
10
  class << self
10
11
  # Finds a virtual machine by a given UUID and either returns
11
12
  # a Vagrant::VM object or returns nil.
12
- def find(uuid)
13
+ def find(uuid, env=nil, vm_name=nil)
13
14
  vm = VirtualBox::VM.find(uuid)
14
- return nil if vm.nil?
15
- new(vm)
15
+ new(:vm => vm, :env => env, :vm_name => vm_name)
16
16
  end
17
17
  end
18
18
 
19
- def initialize(vm=nil)
20
- @vm = vm
19
+ def initialize(opts=nil)
20
+ defaults = {
21
+ :vm => nil,
22
+ :env => nil,
23
+ :vm_name => nil
24
+ }
25
+
26
+ opts = defaults.merge(opts || {})
27
+
28
+ @vm = opts[:vm]
29
+ @name = opts[:vm_name]
30
+
31
+ if !opts[:env].nil?
32
+ # We have an environment, so we create a new child environment
33
+ # specifically for this VM. This step will load any custom
34
+ # config and such.
35
+ @env = Vagrant::Environment.new({
36
+ :cwd => opts[:env].cwd,
37
+ :parent => opts[:env],
38
+ :vm_name => opts[:vm_name],
39
+ :vm => self
40
+ }).load!
41
+
42
+ # Load the associated system.
43
+ load_system!
44
+ end
45
+ end
46
+
47
+ # Loads the system associated with the VM. The system class is
48
+ # responsible for OS-specific functionality. More information
49
+ # can be found by reading the documentation on {Vagrant::Systems::Base}.
50
+ #
51
+ # **This method should never be called manually.**
52
+ def load_system!
53
+ system = env.config.vm.system
54
+
55
+ if system.is_a?(Class)
56
+ @system = system.new(self)
57
+ error_and_exit(:system_invalid_class, :system => system.to_s) unless @system.is_a?(Systems::Base)
58
+ elsif system.is_a?(Symbol)
59
+ # Hard-coded internal systems
60
+ mapping = { :linux => Systems::Linux }
61
+
62
+ if !mapping.has_key?(system)
63
+ error_and_exit(:system_unknown_type, :system => system.to_s)
64
+ return # for tests
65
+ end
66
+
67
+ @system = mapping[system].new(self)
68
+ else
69
+ error_and_exit(:system_unspecified)
70
+ end
71
+ end
72
+
73
+ # Access the {Vagrant::SSH} object associated with this VM.
74
+ # On the initial call, this will initialize the object. On
75
+ # subsequent calls it will reuse the existing object.
76
+ def ssh
77
+ @ssh ||= SSH.new(env)
78
+ end
79
+
80
+ # Returns a boolean true if the VM has been created, otherwise
81
+ # returns false.
82
+ #
83
+ # @return [Boolean]
84
+ def created?
85
+ !vm.nil?
21
86
  end
22
87
 
23
88
  def uuid
@@ -28,18 +93,34 @@ module Vagrant
28
93
  @vm = VirtualBox::VM.find(@vm.uuid)
29
94
  end
30
95
 
31
- def package(out_path, include_files=[])
32
- add_action(Actions::VM::Export)
33
- add_action(Actions::VM::Package, out_path, include_files)
96
+ def package(options=nil)
97
+ add_action(Actions::VM::Export, options)
98
+ add_action(Actions::VM::Package, options)
34
99
  execute!
35
100
  end
36
101
 
102
+ def up(options=nil)
103
+ execute!(Actions::VM::Up, options)
104
+ end
105
+
37
106
  def start
38
107
  return if @vm.running?
39
108
 
40
109
  execute!(Actions::VM::Start)
41
110
  end
42
111
 
112
+ def halt(options=nil)
113
+ execute!(Actions::VM::Halt, options)
114
+ end
115
+
116
+ def reload
117
+ execute!(Actions::VM::Reload)
118
+ end
119
+
120
+ def provision
121
+ execute!(Actions::VM::Provision)
122
+ end
123
+
43
124
  def destroy
44
125
  execute!(Actions::VM::Down)
45
126
  end
@@ -0,0 +1 @@
1
+ * * * * * <%= scriptname %> '<%= syncopts %>' '<%= guestpath %>' '<%= syncpath %>' '-prefer <%= guestpath %>'
@@ -0,0 +1,8 @@
1
+ #VAGRANT-BEGIN
2
+ # The contents below are automatically generated by Vagrant.
3
+ # Please do not modify any of these contents.
4
+ auto eth<%= net_options[:adapter] %>
5
+ iface eth<%= net_options[:adapter] %> inet static
6
+ address <%= net_options[:ip] %>
7
+ netmask <%= net_options[:netmask] %>
8
+ #VAGRANT-END
@@ -4,4 +4,5 @@ Host <%= host_key %>
4
4
  Port <%= ssh_port %>
5
5
  UserKnownHostsFile /dev/null
6
6
  StrictHostKeyChecking no
7
+ PasswordAuthentication no
7
8
  IdentityFile <%= private_key_path %>
@@ -3,6 +3,46 @@
3
3
  # In short, | means keep new lines, trim whitespace left and right
4
4
  # The |- does the above, but trims the new line at the end of all text
5
5
 
6
+ #---------------------------------------------------------------------
7
+ # CATEGORY: Status Messages
8
+ #---------------------------------------------------------------------
9
+ :status_listing: |-
10
+ This environment represents multiple VMs. The VMs will be listed
11
+ below with a short status. For more detailed information about a
12
+ VM, run `vagrant status NAME`.
13
+ :status_no_environment: |-
14
+ No vagrant environment detected. Run `vagrant init` to setup a Vagrantfile
15
+ in the current directory to get started with Vagrant.
16
+ :status_not_created: |-
17
+ The environment has not yet been created. Run `vagrant up` to create the
18
+ environment.
19
+ :status_created: |-
20
+ The environment has been created. The status of the current environment's
21
+ virtual machine is: "<%= vm_state %>"
22
+
23
+ <%= additional_message %>
24
+ :status_created_running: |-
25
+ To stop this VM, you can run `vagrant halt` to shut it down forcefully,
26
+ or you can run `vagrant suspend` to simply suspend the virtual machine.
27
+ In either case, to restart it again, simply run a `vagrant up`.
28
+ :status_created_saved: |-
29
+ To resume this VM, simply run `vagrant up`.
30
+ :status_created_powered_off: |-
31
+ To restart this VM, simply run `vagrant up`.
32
+ :status_global: |-
33
+ Below is a list of virtual machines which are currently created and were
34
+ created by a Vagrant environment. The path listed was the "last known path"
35
+ of the environment (it may have moved).
36
+
37
+ <%= entries.join("\n\n") %>
38
+ :status_global_entry: |-
39
+ Name: <%= vm.vm.name %>
40
+ Path: <%= data["path"] %>
41
+ Created at: <%= Time.at(data["created_at"]) %>
42
+
43
+ #---------------------------------------------------------------------
44
+ # CATEGORY: Error Messages
45
+ #---------------------------------------------------------------------
6
46
  :box_already_exists: |-
7
47
  This box appears to already exist! Please call `vagrant box remove <%= box_name %>`
8
48
  and then try to add it again.
@@ -38,6 +78,11 @@
38
78
  The validation key set for `config.chef.validation_key_path` does not exist! This
39
79
  file needs to exist so it can be uploaded to the virtual machine. It is
40
80
  currently set to "<%= Vagrant.config.chef.validation_key_path %>"
81
+ :chef_not_detected: |-
82
+ The `<%= binary %>` binary appears to not be in the PATH of the guest. This
83
+ could be because the PATH is not properly setup or perhaps chef is not
84
+ installed on this guest. Chef provisioning can not continue without
85
+ chef properly installed.
41
86
  :command_box_invalid: |-
42
87
  Please specify a valid action to take on the boxes, either
43
88
  `add` or `remove`. Examples:
@@ -45,9 +90,6 @@
45
90
  vagrant box add name uri
46
91
  vagrant box remove name
47
92
  vagrant box list
48
- :command_deprecation_down: |-
49
- `vagrant down` is now `vagrant destroy`. Please use that command instead. This
50
- warning will be removed in future versions.
51
93
  :dotfile_error: |-
52
94
  The dotfile which Vagrant uses to store the UUID of the project's
53
95
  virtual machine already exists and is not a file! The dotfile is
@@ -69,8 +111,18 @@
69
111
  already be created, but unfortunately this vagrant still appears to
70
112
  have no box! You can setup the environment by setting up your
71
113
  <%= Vagrant::Environment::ROOTFILE_NAME %> and running `vagrant up`
114
+ :network_not_found: |-
115
+ The specified host network could not be found: <%= name %>.
116
+ If the name specification is removed, Vagrant will create a new
117
+ host only network for you. Alternatively, please create the
118
+ specified network manually.
72
119
  :package_include_file_doesnt_exist: |-
73
120
  File specified to include: '<%= filename %>' does not exist!
121
+ :package_multivm: |-
122
+ Because this Vagrant environment represents multiple VMs, a
123
+ specific VM must be specified. This can be done by calling
124
+ `vagrant package NAME` where NAME is a valid VM represented by
125
+ your Vagrantfile.
74
126
  :package_requires_export: |-
75
127
  Package must be used in conjunction with export.
76
128
  :provisioner_invalid_class: |-
@@ -92,6 +144,11 @@
92
144
  permissions on the following file to 0600 and then try running this command again:
93
145
 
94
146
  <%= key_path %>
147
+ :ssh_bad_exit_status: |-
148
+ The following SSH command responded with a non-zero exit status.
149
+ Vagrant assumes that this means the command failed!
150
+
151
+ <%= command %>
95
152
  :ssh_unavailable_windows: |-
96
153
  `vagrant ssh` isn't available on the Windows platform. The
97
154
  vagrant.ppk file is available at
@@ -106,7 +163,37 @@
106
163
  For a more detailed guide please consult:
107
164
 
108
165
  http://vagrantup.com/docs/getting-started/windows.html
166
+ :ssh_multivm: |-
167
+ Because this Vagrant environment represents multiple VMs, a
168
+ specific VM must be specified. This can be done by calling
169
+ `vagrant ssh NAME` where NAME is a valid VM represented by
170
+ your Vagrantfile.
171
+
172
+ Alternatively, if you mark one of your VMs as 'primary,'
173
+ then Vagrant will default to that VM. This can be done by
174
+ specifying `:primary => true` when defining the VM. Example:
109
175
 
176
+ config.vm.define(:foo, :primary => true) do |config|
177
+ ...
178
+ end
179
+ :ssh_config_multivm: |-
180
+ Because this Vagrant environment represents multiple VMs, a
181
+ specific VM must be specified. This can be done by calling
182
+ `vagrant ssh-config NAME` where NAME is a valid VM represented by
183
+ your Vagrantfile.
184
+ :system_invalid_class: |-
185
+ The specified system does not inherit from `Vagrant::Systems::Base`. The
186
+ specified system class must inherit from this class.
187
+
188
+ The specified system class was: <%= system %>
189
+ :system_unknown_type: |-
190
+ The specified system type is unknown: <%= system %>. Please change this
191
+ to a proper value.
192
+ :system_unspecified: |-
193
+ A VM system type must be specified! This is done via the `config.vm.system`
194
+ configuration value. Please read the documentation online for more information.
195
+ :unknown_vm: |-
196
+ The specified VM could not be found: <%= vm %>
110
197
  :virtualbox_import_failure: |-
111
198
  The VM import failed! Try running `VBoxManage import` on the box file
112
199
  manually for more verbose error output.
@@ -133,6 +220,13 @@
133
220
  The vagrant virtual environment you are trying to suspend must be running to be suspended.
134
221
  :vm_not_suspended: |-
135
222
  The vagrant virtual environment you are trying to resume is not in a suspended state.
223
+ :vm_port_auto_empty: |-
224
+ Vagrant found a port collision for the specified port and virtual machine.
225
+ While this port was marked to be auto-corrected, the ports in the
226
+ auto-correction range are all also used.
227
+
228
+ VM: <%= vm_name %>
229
+ Forwarded port: <%= name %> (<%= options[:guestport] %> => <%= options[:hostport] %>)
136
230
  :vm_port_collision: |-
137
231
  Vagrant cannot forward the specified ports on this VM, since they
138
232
  would collide with another VirtualBox virtual machine's forwarded
@@ -163,3 +257,17 @@
163
257
 
164
258
  If the box was built for 0.2.x and contains a custom public key, perhaps
165
259
  the path to the private key is incorrect. Check your `config.ssh.private_key_path`.
260
+
261
+ #---------------------------------------------------------------------
262
+ # CATEGORY: Error Messages for Linux System
263
+ #---------------------------------------------------------------------
264
+ :network_not_debian: |-
265
+ Host only networking is only supported for Debian/Ubuntu by the built-in
266
+ "Linux" system. If you're using some other distro and want to implement
267
+ host only networking, please subclass the `Vagrant::Systems::Linux` class
268
+ and implement the `prepare_host_only_network` and `enable_host_only_network`
269
+ methods.
270
+
271
+ Otherwise, please report your distro and how to modify network interfaces
272
+ to the Vagrant mailing list or IRC and we'll probably be glad to add it
273
+ to the internal systems.