vagrant 0.7.0.beta → 0.7.0.beta2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/CHANGELOG.md +26 -0
- data/Gemfile +0 -8
- data/config/default.rb +1 -2
- data/contrib/README.md +12 -0
- data/contrib/emacs/vagrant.el +8 -0
- data/contrib/vim/vagrantfile.vim +9 -0
- data/lib/vagrant.rb +14 -18
- data/lib/vagrant/action.rb +12 -0
- data/lib/vagrant/action/box.rb +11 -0
- data/lib/vagrant/action/box/download.rb +0 -1
- data/lib/vagrant/action/env.rb +7 -0
- data/lib/vagrant/action/general.rb +8 -0
- data/lib/vagrant/action/vm.rb +30 -0
- data/lib/vagrant/action/vm/boot.rb +3 -2
- data/lib/vagrant/action/vm/check_box.rb +1 -0
- data/lib/vagrant/action/vm/network.rb +1 -1
- data/lib/vagrant/action/vm/nfs.rb +3 -1
- data/lib/vagrant/action/vm/provision.rb +14 -25
- data/lib/vagrant/action/vm/share_folders.rb +11 -4
- data/lib/vagrant/command.rb +25 -0
- data/lib/vagrant/config.rb +78 -128
- data/lib/vagrant/config/base.rb +17 -3
- data/lib/vagrant/config/ssh.rb +1 -0
- data/lib/vagrant/config/top.rb +61 -0
- data/lib/vagrant/config/vagrant.rb +1 -6
- data/lib/vagrant/config/vm.rb +34 -20
- data/lib/vagrant/config/vm/provisioner.rb +56 -0
- data/lib/vagrant/config/vm/sub_vm.rb +17 -0
- data/lib/vagrant/downloaders.rb +7 -0
- data/lib/vagrant/downloaders/file.rb +1 -0
- data/lib/vagrant/downloaders/http.rb +9 -0
- data/lib/vagrant/environment.rb +25 -13
- data/lib/vagrant/errors.rb +0 -15
- data/lib/vagrant/hosts.rb +7 -0
- data/lib/vagrant/provisioners.rb +8 -0
- data/lib/vagrant/provisioners/base.rb +19 -1
- data/lib/vagrant/provisioners/chef.rb +31 -52
- data/lib/vagrant/provisioners/chef_server.rb +34 -10
- data/lib/vagrant/provisioners/chef_solo.rb +31 -9
- data/lib/vagrant/provisioners/puppet.rb +70 -60
- data/lib/vagrant/provisioners/puppet_server.rb +57 -0
- data/lib/vagrant/ssh.rb +3 -72
- data/lib/vagrant/ssh/session.rb +81 -0
- data/lib/vagrant/systems.rb +9 -0
- data/lib/vagrant/systems/base.rb +16 -1
- data/lib/vagrant/systems/debian.rb +26 -0
- data/lib/vagrant/systems/gentoo.rb +27 -0
- data/lib/vagrant/systems/linux.rb +14 -56
- data/lib/vagrant/systems/linux/config.rb +21 -0
- data/lib/vagrant/systems/linux/error.rb +9 -0
- data/lib/vagrant/systems/redhat.rb +31 -0
- data/lib/vagrant/test_helpers.rb +1 -1
- data/lib/vagrant/version.rb +1 -1
- data/lib/vagrant/vm.rb +25 -5
- data/templates/chef_solo_solo.erb +11 -3
- data/templates/locales/en.yml +65 -25
- data/templates/{network_entry.erb → network_entry_debian.erb} +0 -0
- data/templates/network_entry_gentoo.erb +7 -0
- data/templates/network_entry_redhat.erb +8 -0
- data/test/vagrant/action/vm/check_box_test.rb +1 -0
- data/test/vagrant/action/vm/nfs_test.rb +7 -1
- data/test/vagrant/action/vm/provision_test.rb +24 -79
- data/test/vagrant/action/vm/share_folders_test.rb +6 -1
- data/test/vagrant/command/helpers_test.rb +2 -2
- data/test/vagrant/config/base_test.rb +0 -6
- data/test/vagrant/config/vagrant_test.rb +0 -8
- data/test/vagrant/config/vm/provisioner_test.rb +92 -0
- data/test/vagrant/config/vm_test.rb +8 -0
- data/test/vagrant/config_test.rb +49 -89
- data/test/vagrant/downloaders/file_test.rb +18 -4
- data/test/vagrant/environment_test.rb +36 -12
- data/test/vagrant/provisioners/base_test.rb +28 -1
- data/test/vagrant/provisioners/chef_server_test.rb +50 -41
- data/test/vagrant/provisioners/chef_solo_test.rb +39 -16
- data/test/vagrant/provisioners/chef_test.rb +11 -81
- data/test/vagrant/provisioners/puppet_server_test.rb +69 -0
- data/test/vagrant/provisioners/puppet_test.rb +69 -54
- data/test/vagrant/{ssh_session_test.rb → ssh/session_test.rb} +0 -0
- data/test/vagrant/ssh_test.rb +12 -1
- data/test/vagrant/systems/base_test.rb +18 -0
- data/test/vagrant/systems/linux_test.rb +2 -2
- data/test/vagrant/vm_test.rb +33 -5
- data/vagrant.gemspec +6 -5
- metadata +42 -16
- data/lib/vagrant/util/glob_loader.rb +0 -24
data/lib/vagrant/config/base.rb
CHANGED
@@ -4,9 +4,6 @@ module Vagrant
|
|
4
4
|
# basic things such as the environment instance variable which all
|
5
5
|
# config classes need as well as a basic `to_json` implementation.
|
6
6
|
class Base
|
7
|
-
# {Environment} that this config belongs to
|
8
|
-
attr_accessor :env
|
9
|
-
|
10
7
|
# {Top} of this configuration stack
|
11
8
|
attr_accessor :top
|
12
9
|
|
@@ -32,6 +29,23 @@ module Vagrant
|
|
32
29
|
end
|
33
30
|
end
|
34
31
|
|
32
|
+
# A helper to access the environment that this configuration is for.
|
33
|
+
# This is obtained by getting the env from the {Top}.
|
34
|
+
#
|
35
|
+
# @return [Vagrant::Envrionment]
|
36
|
+
def env
|
37
|
+
top.env
|
38
|
+
end
|
39
|
+
|
40
|
+
# Allows setting options from a hash. By default this simply calls
|
41
|
+
# the `#{key}=` method on the config class with the value, which is
|
42
|
+
# the expected behavior most of the time.
|
43
|
+
def set_options(options)
|
44
|
+
options.each do |key, value|
|
45
|
+
send("#{key}=", value)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
35
49
|
# Called by {Top} after the configuration is loaded to validate
|
36
50
|
# the configuaration objects. Subclasses should implement this
|
37
51
|
# method and add any errors to the `errors` object given.
|
data/lib/vagrant/config/ssh.rb
CHANGED
@@ -0,0 +1,61 @@
|
|
1
|
+
module Vagrant
|
2
|
+
class Config
|
3
|
+
# This class is the "top" configure class, which handles registering
|
4
|
+
# other configuration classes as well as validation of all configured
|
5
|
+
# classes. This is the object which is returned by {Environment#config}
|
6
|
+
# and has accessors to all other configuration classes.
|
7
|
+
#
|
8
|
+
# If you're looking to create your own configuration class, see {Base}.
|
9
|
+
class Top < Base
|
10
|
+
@@configures = {} if !defined?(@@configures)
|
11
|
+
|
12
|
+
# The environment that this configuration is for.
|
13
|
+
attr_reader :env
|
14
|
+
|
15
|
+
class << self
|
16
|
+
# The list of registered configuration classes as well as the key
|
17
|
+
# they're registered under.
|
18
|
+
def configures_list
|
19
|
+
@@configures ||= {}
|
20
|
+
end
|
21
|
+
|
22
|
+
# Registers a configuration class with the given key. This method shouldn't
|
23
|
+
# be called. Instead, inherit from {Base} and call {Base.configures}.
|
24
|
+
def configures(key, klass)
|
25
|
+
configures_list[key] = klass
|
26
|
+
attr_reader key.to_sym
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def initialize(env=nil)
|
31
|
+
self.class.configures_list.each do |key, klass|
|
32
|
+
config = klass.new
|
33
|
+
config.top = self
|
34
|
+
instance_variable_set("@#{key}".to_sym, config)
|
35
|
+
end
|
36
|
+
|
37
|
+
@env = env
|
38
|
+
end
|
39
|
+
|
40
|
+
# Validates the configuration classes of this instance and raises an
|
41
|
+
# exception if they are invalid. If you are implementing a custom configuration
|
42
|
+
# class, the method you want to implement is {Base#validate}. This is
|
43
|
+
# the method that checks all the validation, not one which defines
|
44
|
+
# validation rules.
|
45
|
+
def validate!
|
46
|
+
# Validate each of the configured classes and store the results into
|
47
|
+
# a hash.
|
48
|
+
errors = self.class.configures_list.inject({}) do |container, data|
|
49
|
+
key, _ = data
|
50
|
+
recorder = ErrorRecorder.new
|
51
|
+
send(key.to_sym).validate(recorder)
|
52
|
+
container[key.to_sym] = recorder if !recorder.errors.empty?
|
53
|
+
container
|
54
|
+
end
|
55
|
+
|
56
|
+
return if errors.empty?
|
57
|
+
raise Errors::ConfigValidationFailed, :messages => Util::TemplateRenderer.render("config/validation_failed", :errors => errors)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -4,15 +4,10 @@ module Vagrant
|
|
4
4
|
configures :vagrant
|
5
5
|
|
6
6
|
attr_accessor :dotfile_name
|
7
|
-
attr_accessor :home
|
8
7
|
attr_accessor :host
|
9
8
|
|
10
|
-
def initialize
|
11
|
-
@home = nil
|
12
|
-
end
|
13
|
-
|
14
9
|
def validate(errors)
|
15
|
-
[:dotfile_name, :
|
10
|
+
[:dotfile_name, :host].each do |field|
|
16
11
|
errors.add(I18n.t("vagrant.config.common.error_empty", :field => field)) if !instance_variable_get("@#{field}".to_sym)
|
17
12
|
end
|
18
13
|
end
|
data/lib/vagrant/config/vm.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'vagrant/config/vm/sub_vm'
|
2
|
+
require 'vagrant/config/vm/provisioner'
|
3
|
+
|
1
4
|
module Vagrant
|
2
5
|
class Config
|
3
6
|
class VMConfig < Base
|
@@ -14,28 +17,17 @@ module Vagrant
|
|
14
17
|
attr_reader :forwarded_ports
|
15
18
|
attr_reader :shared_folders
|
16
19
|
attr_reader :network_options
|
17
|
-
attr_reader :
|
20
|
+
attr_reader :provisioners
|
18
21
|
attr_accessor :disk_image_format
|
19
|
-
attr_accessor :provisioner
|
20
22
|
attr_writer :shared_folder_uid
|
21
23
|
attr_writer :shared_folder_gid
|
22
24
|
attr_accessor :system
|
23
25
|
|
24
|
-
# Represents a SubVM. This class is only used here in the VMs
|
25
|
-
# hash.
|
26
|
-
class SubVM
|
27
|
-
include Util::StackedProcRunner
|
28
|
-
|
29
|
-
def options
|
30
|
-
@options ||= {}
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
26
|
def initialize
|
35
27
|
@forwarded_ports = {}
|
36
28
|
@shared_folders = {}
|
37
|
-
@provisioner = nil
|
38
29
|
@network_options = []
|
30
|
+
@provisioners = []
|
39
31
|
end
|
40
32
|
|
41
33
|
def forward_port(name, guestport, hostport, options=nil)
|
@@ -68,6 +60,17 @@ module Vagrant
|
|
68
60
|
@network_options[options[:adapter]] = options
|
69
61
|
end
|
70
62
|
|
63
|
+
def provision(name, options=nil, &block)
|
64
|
+
@provisioners << Provisioner.new(top, name, options, &block)
|
65
|
+
end
|
66
|
+
|
67
|
+
# This shows an error message to smooth the transition for the
|
68
|
+
# backwards incompatible provisioner syntax change introduced
|
69
|
+
# in Vagrant 0.7.0.
|
70
|
+
def provisioner=(_value)
|
71
|
+
raise Errors::VagrantError, :_key => :provisioner_equals_not_supported
|
72
|
+
end
|
73
|
+
|
71
74
|
def shared_folder_uid
|
72
75
|
@shared_folder_uid || env.config.ssh.username
|
73
76
|
end
|
@@ -95,14 +98,25 @@ module Vagrant
|
|
95
98
|
end
|
96
99
|
|
97
100
|
def define(name, options=nil, &block)
|
101
|
+
name = name.to_sym
|
98
102
|
options ||= {}
|
103
|
+
|
104
|
+
# Add the name to the array of VM keys. This array is used to
|
105
|
+
# preserve the order in which VMs are defined.
|
99
106
|
defined_vm_keys << name
|
100
|
-
|
101
|
-
|
102
|
-
defined_vms[name
|
107
|
+
|
108
|
+
# Add the SubVM to the hash of defined VMs
|
109
|
+
defined_vms[name] ||= SubVM.new
|
110
|
+
defined_vms[name].options.merge!(options)
|
111
|
+
defined_vms[name].push_proc(&block)
|
103
112
|
end
|
104
113
|
|
105
114
|
def validate(errors)
|
115
|
+
errors.add(I18n.t("vagrant.config.vm.box_missing")) if !box
|
116
|
+
errors.add(I18n.t("vagrant.config.vm.box_not_found", :name => box)) if box && !box_url && !env.box
|
117
|
+
errors.add(I18n.t("vagrant.config.vm.boot_mode_invalid")) if ![:vrdp, :gui].include?(boot_mode.to_sym)
|
118
|
+
errors.add(I18n.t("vagrant.config.vm.base_mac_invalid")) if env.box && !base_mac
|
119
|
+
|
106
120
|
shared_folders.each do |name, options|
|
107
121
|
if !File.directory?(File.expand_path(options[:hostpath].to_s, env.root_path))
|
108
122
|
errors.add(I18n.t("vagrant.config.vm.shared_folder_hostpath_missing",
|
@@ -111,10 +125,10 @@ module Vagrant
|
|
111
125
|
end
|
112
126
|
end
|
113
127
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
128
|
+
# Each provisioner can validate itself
|
129
|
+
provisioners.each do |prov|
|
130
|
+
prov.validate(errors)
|
131
|
+
end
|
118
132
|
end
|
119
133
|
end
|
120
134
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Vagrant
|
2
|
+
class Config
|
3
|
+
class VMConfig < Base
|
4
|
+
# Represents a single configured provisioner for a VM.
|
5
|
+
class Provisioner
|
6
|
+
attr_reader :top
|
7
|
+
attr_reader :shortcut
|
8
|
+
attr_reader :provisioner
|
9
|
+
attr_reader :config
|
10
|
+
|
11
|
+
def initialize(top, shortcut, options=nil, &block)
|
12
|
+
@top = top
|
13
|
+
@shortcut = shortcut
|
14
|
+
@provisioner = shortcut
|
15
|
+
@provisioner = Provisioners::Base.registered[shortcut] if shortcut.is_a?(Symbol)
|
16
|
+
@config = nil
|
17
|
+
|
18
|
+
configure(options, &block)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Configures the provisioner if it can (if it is valid).
|
22
|
+
def configure(options=nil, &block)
|
23
|
+
# We don't want ancestors to be searched. This is the default in 1.8,
|
24
|
+
# but not in 1.9, hence this hackery.
|
25
|
+
const_args = ["Config"]
|
26
|
+
const_args << false if RUBY_VERSION >= "1.9"
|
27
|
+
|
28
|
+
# We assume that every provisioner has a `Config` class beneath
|
29
|
+
# it for configuring.
|
30
|
+
return if !@provisioner || !@provisioner.const_defined?(*const_args)
|
31
|
+
|
32
|
+
# Instantiate the config class and configure it
|
33
|
+
@config = @provisioner.const_get(*const_args).new
|
34
|
+
@config.top = top
|
35
|
+
@config.set_options(options) if options
|
36
|
+
block.call(@config) if block
|
37
|
+
end
|
38
|
+
|
39
|
+
def validate(errors)
|
40
|
+
if !provisioner
|
41
|
+
# If we don't have a provisioner then the whole thing is invalid.
|
42
|
+
errors.add(I18n.t("vagrant.config.vm.provisioner_not_found", :shortcut => shortcut))
|
43
|
+
return
|
44
|
+
end
|
45
|
+
|
46
|
+
if !(provisioner <= Provisioners::Base)
|
47
|
+
errors.add(I18n.t("vagrant.config.vm.provisioner_invalid_class", :shortcut => shortcut))
|
48
|
+
end
|
49
|
+
|
50
|
+
# Pass on validation to the provisioner config
|
51
|
+
config.validate(errors) if config
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Vagrant
|
2
|
+
class Config
|
3
|
+
class VMConfig < Base
|
4
|
+
# Represents a single sub-VM in a multi-VM environment.
|
5
|
+
class SubVM
|
6
|
+
include Util::StackedProcRunner
|
7
|
+
|
8
|
+
attr_reader :options
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@options = {}
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -25,7 +25,16 @@ module Vagrant
|
|
25
25
|
end
|
26
26
|
|
27
27
|
http.start do |h|
|
28
|
+
env.ui.info I18n.t("vagrant.downloaders.http.download", :url => source_url)
|
29
|
+
|
28
30
|
h.request_get(uri.request_uri) do |response|
|
31
|
+
if response.is_a?(Net::HTTPRedirection)
|
32
|
+
# Follow the HTTP redirect.
|
33
|
+
# TODO: Error on some redirect limit
|
34
|
+
download!(response["Location"], destination_file)
|
35
|
+
return
|
36
|
+
end
|
37
|
+
|
29
38
|
total = response.content_length
|
30
39
|
progress = 0
|
31
40
|
segment_count = 0
|
data/lib/vagrant/environment.rb
CHANGED
@@ -9,6 +9,7 @@ module Vagrant
|
|
9
9
|
ROOTFILE_NAME = "Vagrantfile"
|
10
10
|
HOME_SUBDIRS = ["tmp", "boxes", "logs"]
|
11
11
|
DEFAULT_VM = :default
|
12
|
+
DEFAULT_HOME = "~/.vagrant"
|
12
13
|
|
13
14
|
# Parent environment (in the case of multi-VMs)
|
14
15
|
attr_reader :parent
|
@@ -23,6 +24,9 @@ module Vagrant
|
|
23
24
|
# The {UI} object to communicate with the outside world.
|
24
25
|
attr_writer :ui
|
25
26
|
|
27
|
+
# The {Config} object representing the Vagrantfile loader
|
28
|
+
attr_reader :config_loader
|
29
|
+
|
26
30
|
#---------------------------------------------------------------
|
27
31
|
# Class Methods
|
28
32
|
#---------------------------------------------------------------
|
@@ -33,7 +37,6 @@ module Vagrant
|
|
33
37
|
version = VirtualBox.version
|
34
38
|
raise Errors::VirtualBoxNotDetected if version.nil?
|
35
39
|
raise Errors::VirtualBoxInvalidVersion, :version => version.to_s if version.to_f < 4.0
|
36
|
-
raise Errors::VirtualBoxInvalidOSE, :version => version.to_s if version.to_s.downcase.include?("ose")
|
37
40
|
rescue Errors::VirtualBoxNotDetected
|
38
41
|
# On 64-bit Windows, show a special error. This error is a subclass
|
39
42
|
# of VirtualBoxNotDetected, so libraries which use Vagrant can just
|
@@ -79,12 +82,11 @@ module Vagrant
|
|
79
82
|
root_path.join(config.vagrant.dotfile_name) rescue nil
|
80
83
|
end
|
81
84
|
|
82
|
-
# The path to the home directory
|
83
|
-
# and converted into a Pathname object.
|
85
|
+
# The path to the home directory and converted into a Pathname object.
|
84
86
|
#
|
85
87
|
# @return [Pathname]
|
86
88
|
def home_path
|
87
|
-
@_home_path ||= Pathname.new(File.expand_path(
|
89
|
+
@_home_path ||= Pathname.new(File.expand_path(ENV["VAGRANT_HOME"] || DEFAULT_HOME))
|
88
90
|
end
|
89
91
|
|
90
92
|
# The path to the Vagrant tmp directory
|
@@ -114,7 +116,8 @@ module Vagrant
|
|
114
116
|
#
|
115
117
|
# @return [String]
|
116
118
|
def resource
|
117
|
-
vm.name rescue
|
119
|
+
result = vm.name rescue nil
|
120
|
+
result || "vagrant"
|
118
121
|
end
|
119
122
|
|
120
123
|
# Returns the collection of boxes for the environment.
|
@@ -146,7 +149,7 @@ module Vagrant
|
|
146
149
|
#
|
147
150
|
# @return [Array<VM>]
|
148
151
|
def vms_ordered
|
149
|
-
@vms_enum ||= config.vm.defined_vm_keys.map {|name| @vms[name]}
|
152
|
+
@vms_enum ||= config.vm.defined_vm_keys.map { |name| @vms[name] }
|
150
153
|
end
|
151
154
|
|
152
155
|
# Returns the primary VM associated with this environment. This
|
@@ -305,6 +308,14 @@ module Vagrant
|
|
305
308
|
self
|
306
309
|
end
|
307
310
|
|
311
|
+
# Reloads the configuration of this environment.
|
312
|
+
def reload_config!
|
313
|
+
@config = nil
|
314
|
+
@config_loader = nil
|
315
|
+
load_config!
|
316
|
+
self
|
317
|
+
end
|
318
|
+
|
308
319
|
# Loads this environment's configuration and stores it in the {#config}
|
309
320
|
# variable. The configuration loaded by this method is specified to
|
310
321
|
# this environment, meaning that it will use the given root directory
|
@@ -313,22 +324,23 @@ module Vagrant
|
|
313
324
|
first_run = @config.nil?
|
314
325
|
|
315
326
|
# First load the initial, non config-dependent Vagrantfiles
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
327
|
+
@config_loader ||= Config.new(parent ? parent.config_loader : nil)
|
328
|
+
@config_loader.load_order = [:default, :box, :home, :root, :sub_vm]
|
329
|
+
@config_loader.set(:default, File.expand_path("config/default.rb", Vagrant.source_root))
|
330
|
+
@config_loader.set(:box, File.join(box.directory, ROOTFILE_NAME)) if !first_run && vm && box
|
331
|
+
@config_loader.set(:home, File.join(home_path, ROOTFILE_NAME)) if !first_run && home_path
|
332
|
+
@config_loader.set(:root, File.join(root_path, ROOTFILE_NAME)) if root_path
|
321
333
|
|
322
334
|
# If this environment is representing a sub-VM, then we push that
|
323
335
|
# proc on as the last configuration.
|
324
336
|
if vm
|
325
337
|
subvm = parent.config.vm.defined_vms[vm.name]
|
326
|
-
|
338
|
+
@config_loader.set(:sub_vm, subvm.proc_stack) if subvm
|
327
339
|
end
|
328
340
|
|
329
341
|
# Execute the configuration stack and store the result as the final
|
330
342
|
# value in the config ivar.
|
331
|
-
@config =
|
343
|
+
@config = @config_loader.load(self)
|
332
344
|
|
333
345
|
# (re)load the logger
|
334
346
|
@logger = nil
|
data/lib/vagrant/errors.rb
CHANGED
@@ -230,16 +230,6 @@ module Vagrant
|
|
230
230
|
error_key(:dotfile_error, "vagrant.actions.vm.persist")
|
231
231
|
end
|
232
232
|
|
233
|
-
class ProvisionInvalidClass < VagrantError
|
234
|
-
status_code(35)
|
235
|
-
error_key(:invalid_class, "vagrant.actions.vm.provision")
|
236
|
-
end
|
237
|
-
|
238
|
-
class ProvisionUnknownType < VagrantError
|
239
|
-
status_code(36)
|
240
|
-
error_key(:unknown_type, "vagrant.actions.vm.provision")
|
241
|
-
end
|
242
|
-
|
243
233
|
class SSHAuthenticationFailed < VagrantError
|
244
234
|
status_code(11)
|
245
235
|
error_key(:ssh_authentication_failed)
|
@@ -275,11 +265,6 @@ module Vagrant
|
|
275
265
|
error_key(:vagrantfile_syntax_error)
|
276
266
|
end
|
277
267
|
|
278
|
-
class VirtualBoxInvalidOSE < VagrantError
|
279
|
-
status_code(9)
|
280
|
-
error_key(:virtualbox_invalid_ose)
|
281
|
-
end
|
282
|
-
|
283
268
|
class VirtualBoxInvalidVersion < VagrantError
|
284
269
|
status_code(17)
|
285
270
|
error_key(:virtualbox_invalid_version)
|