vagrant 1.0.0 → 1.0.1

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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 1.0.1 (March 11, 2012)
2
+
3
+ - Fix crashing issue which manifested itself in multi-VM environments.
4
+ - Add missing `rubygems` require in `environment.rb` to avoid
5
+ possible load errors. [GH-781]
6
+ - `vagrant destroy` shows a nice error when called without a
7
+ TTY (and hence can't confirm). [GH-779]
8
+ - Fix an issue with the `:vagrantfile_name` option to `Vagrant::Environment`
9
+ not working properly. [GH-778]
10
+ - `VAGRANT_CWD` environmental variable can be used to set the CWD to
11
+ something other than the current directory.
12
+ - Downloading boxes from servers that don't send a content-length
13
+ now works properly. [GH-788]
14
+ - The `:facter` option now works for puppet server. [GH-790]
15
+ - The `--no-provision` and `--provision-with` flags are available to
16
+ `vagrant reload` now.
17
+ - `:openbsd` guest which supports only halting at the moment. [GH-773]
18
+ - `ssh-config -h` now shows help, instead of assuming a host is being
19
+ specified. For host, you can still use `--host`. [GH-793]
20
+
1
21
  ## 1.0.0 (March 6, 2012)
2
22
 
3
23
  - `vagrant gem` should now be used to install Vagrant plugins that are
data/lib/vagrant.rb CHANGED
@@ -178,6 +178,7 @@ Vagrant.guests.register(:fedora) { Vagrant::Guest::Fedora }
178
178
  Vagrant.guests.register(:freebsd) { Vagrant::Guest::FreeBSD }
179
179
  Vagrant.guests.register(:gentoo) { Vagrant::Guest::Gentoo }
180
180
  Vagrant.guests.register(:linux) { Vagrant::Guest::Linux }
181
+ Vagrant.guests.register(:openbsd) { Vagrant::Guest::OpenBSD }
181
182
  Vagrant.guests.register(:redhat) { Vagrant::Guest::Redhat }
182
183
  Vagrant.guests.register(:solaris) { Vagrant::Guest::Solaris }
183
184
  Vagrant.guests.register(:suse) { Vagrant::Guest::Suse }
@@ -30,8 +30,15 @@ module Vagrant
30
30
  if options[:force]
31
31
  do_destroy = true
32
32
  else
33
- choice = @env.ui.ask(I18n.t("vagrant.commands.destroy.confirmation",
34
- :name => vm.name))
33
+ choice = nil
34
+ begin
35
+ choice = @env.ui.ask(I18n.t("vagrant.commands.destroy.confirmation",
36
+ :name => vm.name))
37
+ rescue Errors::UIExpectsTTY
38
+ # We raise a more specific error but one which basically
39
+ # means the same thing.
40
+ raise Errors::DestroyRequiresForce
41
+ end
35
42
  do_destroy = choice.upcase == "Y"
36
43
  end
37
44
 
@@ -1,13 +1,18 @@
1
1
  require 'optparse'
2
2
 
3
+ require 'vagrant/command/start_mixins'
4
+
3
5
  module Vagrant
4
6
  module Command
5
7
  class Reload < Base
8
+ include StartMixins
9
+
6
10
  def execute
7
11
  options = {}
8
-
9
12
  opts = OptionParser.new do |opts|
10
13
  opts.banner = "Usage: vagrant reload [vm-name]"
14
+ opts.separator ""
15
+ build_start_options(opts, options)
11
16
  end
12
17
 
13
18
  # Parse the options
@@ -18,7 +23,7 @@ module Vagrant
18
23
  with_target_vms(argv[0]) do |vm|
19
24
  if vm.created?
20
25
  @logger.info("Reloading: #{vm.name}")
21
- vm.reload
26
+ vm.reload(options)
22
27
  else
23
28
  @logger.info("Not created: #{vm.name}. Not reloading.")
24
29
  vm.ui.info I18n.t("vagrant.commands.common.vm_not_created")
@@ -11,7 +11,7 @@ module Vagrant
11
11
 
12
12
  opts.separator ""
13
13
 
14
- opts.on("-h", "--host COMMAND", "Name the host for the config..") do |h|
14
+ opts.on("--host COMMAND", "Name the host for the config..") do |h|
15
15
  options[:host] = h
16
16
  end
17
17
  end
@@ -0,0 +1,26 @@
1
+ module Vagrant
2
+ module Command
3
+ module StartMixins
4
+ # This adds the standard `start` command line flags to the given
5
+ # OptionParser, storing the result in the `options` dictionary.
6
+ #
7
+ # @param [OptionParser] parser
8
+ # @param [Hash] options
9
+ def build_start_options(parser, options)
10
+ # Setup the defaults
11
+ options["provision.enabled"] = true
12
+ options["provision.types"] = nil
13
+
14
+ # Add the options
15
+ parser.on("--[no-]provision", "Enable or disable provisioning") do |p|
16
+ options["provision.enabled"] = p
17
+ end
18
+
19
+ parser.on("--provision-with x,y,z", Array,
20
+ "Enable only certain provisioners, by type.") do |list|
21
+ options["provision.types"] = list
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,49 +1,34 @@
1
1
  require 'optparse'
2
2
 
3
+ require 'vagrant/command/start_mixins'
4
+
3
5
  module Vagrant
4
6
  module Command
5
7
  class Up < Base
6
- def execute
7
- options = {
8
- :provision => true,
9
- :provisioners => nil
10
- }
8
+ include StartMixins
11
9
 
10
+ def execute
11
+ options = {}
12
12
  opts = OptionParser.new do |opts|
13
13
  opts.banner = "Usage: vagrant up [vm-name] [--[no-]provision] [-h]"
14
-
15
14
  opts.separator ""
16
-
17
- opts.on("--[no-]provision", "Enable or disable provisioning") do |p|
18
- options[:provision] = p
19
- end
20
-
21
- opts.on("--provision-with x,y,z", Array,
22
- "Enable only certain provisioners, by type.") do |list|
23
- options[:provisioners] = list
24
- end
15
+ build_start_options(opts, options)
25
16
  end
26
17
 
27
18
  # Parse the options
28
19
  argv = parse_options(opts)
29
20
  return if !argv
30
21
 
31
- # Parameters to send to actions
32
- action_params = {
33
- "provision.enabled" => options[:provision],
34
- "provision.types" => options[:provisioners]
35
- }
36
-
37
22
  # Go over each VM and bring it up
38
23
  @logger.debug("'Up' each target VM...")
39
24
  with_target_vms(argv[0]) do |vm|
40
25
  if vm.created?
41
26
  @logger.info("Booting: #{vm.name}")
42
27
  vm.ui.info I18n.t("vagrant.commands.up.vm_created")
43
- vm.start(action_params)
28
+ vm.start(options)
44
29
  else
45
30
  @logger.info("Creating: #{vm.name}")
46
- vm.up(action_params)
31
+ vm.up(options)
47
32
  end
48
33
  end
49
34
  end
@@ -23,7 +23,7 @@ module Vagrant
23
23
  # The version of virtualbox that is running.
24
24
  attr_reader :version
25
25
 
26
- def initialize(uuid)
26
+ def initialize(uuid=nil)
27
27
  # Setup the base
28
28
  super()
29
29
 
@@ -2,6 +2,7 @@ require 'pathname'
2
2
  require 'fileutils'
3
3
 
4
4
  require 'log4r'
5
+ require 'rubygems' # This is needed for plugin loading below.
5
6
 
6
7
  require 'vagrant/util/file_mode'
7
8
  require 'vagrant/util/platform'
@@ -55,13 +56,16 @@ module Vagrant
55
56
  }.merge(opts || {})
56
57
 
57
58
  # Set the default working directory to look for the vagrantfile
59
+ opts[:cwd] ||= ENV["VAGRANT_CWD"] if ENV.has_key?("VAGRANT_CWD")
58
60
  opts[:cwd] ||= Dir.pwd
59
61
  opts[:cwd] = Pathname.new(opts[:cwd])
62
+ raise Errors::EnvironmentNonExistentCWD if !opts[:cwd].directory?
60
63
 
61
- # Set the default vagrantfile name, which can be either Vagrantfile
62
- # or vagrantfile (capital for backwards compatibility)
63
- opts[:vagrantfile_name] ||= ["Vagrantfile", "vagrantfile"]
64
+ # Set the Vagrantfile name up. We append "Vagrantfile" and "vagrantfile" so that
65
+ # those continue to work as well, but anything custom will take precedence.
66
+ opts[:vagrantfile_name] ||= []
64
67
  opts[:vagrantfile_name] = [opts[:vagrantfile_name]] if !opts[:vagrantfile_name].is_a?(Array)
68
+ opts[:vagrantfile_name] += ["Vagrantfile", "vagrantfile"]
65
69
 
66
70
  # Set instance variables for all the configuration parameters.
67
71
  @cwd = opts[:cwd]
@@ -148,6 +148,11 @@ module Vagrant
148
148
  error_key(:deprecation)
149
149
  end
150
150
 
151
+ class DestroyRequiresForce < VagrantError
152
+ status_code(74)
153
+ error_key(:destroy_requires_force)
154
+ end
155
+
151
156
  class DotfileIsDirectory < VagrantError
152
157
  status_code(46)
153
158
  error_key(:dotfile_is_directory)
@@ -168,6 +173,11 @@ module Vagrant
168
173
  error_key(:status_error, "vagrant.downloaders.http")
169
174
  end
170
175
 
176
+ class EnvironmentNonExistentCWD < VagrantError
177
+ status_code(75)
178
+ error_key(:environment_non_existent_cwd)
179
+ end
180
+
171
181
  class EnvironmentLockedError < VagrantError
172
182
  status_code(52)
173
183
  error_key(:environment_locked)
@@ -323,6 +333,11 @@ module Vagrant
323
333
  error_key(:ssh_unavailable_windows)
324
334
  end
325
335
 
336
+ class UIExpectsTTY < VagrantError
337
+ status_code(73)
338
+ error_key(:ui_expects_tty)
339
+ end
340
+
326
341
  class VagrantInterrupt < VagrantError
327
342
  status_code(40)
328
343
  error_key(:interrupted)
data/lib/vagrant/guest.rb CHANGED
@@ -9,6 +9,7 @@ module Vagrant
9
9
  autoload :FreeBSD, 'vagrant/guest/freebsd'
10
10
  autoload :Gentoo, 'vagrant/guest/gentoo'
11
11
  autoload :Linux, 'vagrant/guest/linux'
12
+ autoload :OpenBSD, 'vagrant/guest/openbsd'
12
13
  autoload :Redhat, 'vagrant/guest/redhat'
13
14
  autoload :Solaris, 'vagrant/guest/solaris'
14
15
  autoload :Suse, 'vagrant/guest/suse'
@@ -0,0 +1,20 @@
1
+ module Vagrant
2
+ module Guest
3
+ class OpenBSD < Base
4
+ def halt
5
+ vm.channel.sudo("shutdown -p -h now")
6
+
7
+ # Wait until the VM's state is actually powered off. If this doesn't
8
+ # occur within a reasonable amount of time then simply return which
9
+ # will cause Vagrant to force kill the machine.
10
+ count = 0
11
+ while vm.state != :poweroff
12
+ count += 1
13
+
14
+ return if count >= 30
15
+ sleep 1
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -9,7 +9,9 @@ module Vagrant
9
9
  attr_accessor :puppet_server
10
10
  attr_accessor :puppet_node
11
11
  attr_accessor :options
12
+ attr_accessor :facter
12
13
 
14
+ def facter; @facter ||= {}; end
13
15
  def puppet_server; @puppet_server || "puppet"; end
14
16
  def options; @options ||= []; end
15
17
  end
@@ -53,7 +55,18 @@ module Vagrant
53
55
  options += ["--certname", cn] if cn
54
56
  options = options.join(" ")
55
57
 
56
- command = "puppetd #{options} --server #{config.puppet_server}"
58
+ # Build up the custom facts if we have any
59
+ facter = ""
60
+ if !config.facter.empty?
61
+ facts = []
62
+ config.facter.each do |key, value|
63
+ facts << "FACTER_#{key}='#{value}'"
64
+ end
65
+
66
+ facter = "#{facts.join(" ")} "
67
+ end
68
+
69
+ command = "#{facter}puppetd #{options} --server #{config.puppet_server}"
57
70
 
58
71
  env[:ui].info I18n.t("vagrant.provisioners.puppet_server.running_puppetd")
59
72
  env[:vm].channel.sudo(command) do |type, data|
data/lib/vagrant/ui.rb CHANGED
@@ -31,7 +31,14 @@ module Vagrant
31
31
  end
32
32
 
33
33
  # This is a UI implementation that does nothing.
34
- class Silent < Interface; end
34
+ class Silent < Interface
35
+ def ask(*args)
36
+ super
37
+
38
+ # Silent can't do this, obviously.
39
+ raise Errors::UIExpectsTTY
40
+ end
41
+ end
35
42
 
36
43
  # This is a UI implementation that outputs the text as is. It
37
44
  # doesn't add any color.
@@ -51,6 +58,9 @@ module Vagrant
51
58
  def ask(message, opts=nil)
52
59
  super(message)
53
60
 
61
+ # We can't ask questions when the output isn't a TTY.
62
+ raise Errors::UIExpectsTTY if !$stdin.tty?
63
+
54
64
  # Setup the options so that the new line is suppressed
55
65
  opts ||= {}
56
66
  opts[:new_line] = false if !opts.has_key?(:new_line)
@@ -60,7 +70,7 @@ module Vagrant
60
70
  say(:info, message, opts)
61
71
 
62
72
  # Get the results and chomp off the newline
63
- STDIN.gets.chomp
73
+ $stdin.gets.chomp
64
74
  end
65
75
 
66
76
  # This is used to output progress reports to the UI.
@@ -68,9 +78,13 @@ module Vagrant
68
78
  # to the UI. Send `clear_line` to clear the line to show
69
79
  # a continuous progress meter.
70
80
  def report_progress(progress, total, show_parts=true)
71
- percent = (progress.to_f / total.to_f) * 100
72
- line = "Progress: #{percent.to_i}%"
73
- line << " (#{progress} / #{total})" if show_parts
81
+ if total && total > 0
82
+ percent = (progress.to_f / total.to_f) * 100
83
+ line = "Progress: #{percent.to_i}%"
84
+ line << " (#{progress} / #{total})" if show_parts
85
+ else
86
+ line = "Progress: #{progress}"
87
+ end
74
88
 
75
89
  info(line, :new_line => false)
76
90
  end
@@ -2,5 +2,5 @@ module Vagrant
2
2
  # This will always be up to date with the current version of Vagrant,
3
3
  # since it is used to generate the gemspec and is also the source of
4
4
  # the version for `vagrant -v`
5
- VERSION = "1.0.0"
5
+ VERSION = "1.0.1"
6
6
  end
data/lib/vagrant/vm.rb CHANGED
@@ -156,8 +156,8 @@ module Vagrant
156
156
  run_action(:halt, options)
157
157
  end
158
158
 
159
- def reload
160
- run_action(:reload)
159
+ def reload(options=nil)
160
+ run_action(:reload, options)
161
161
  end
162
162
 
163
163
  def provision
@@ -36,6 +36,10 @@ en:
36
36
 
37
37
  %{message}
38
38
  Note that this error message will not appear in the next version of Vagrant.
39
+ destroy_requires_force: |-
40
+ Destroy doesn't have a TTY to ask for confirmation. Please pass the
41
+ `--force` flag to force a destroy, otherwise attach a TTY so that
42
+ the destroy can be confirmed.
39
43
  dotfile_is_directory: |-
40
44
  The local file Vagrant uses to store data ".vagrant" already exists
41
45
  and is a directory! If you are in your home directory, then please run
@@ -141,6 +145,11 @@ en:
141
145
  Port: %{port}
142
146
  Username: %{username}
143
147
  Private key: %{key_path}
148
+ ui_expects_tty: |-
149
+ Vagrant is attempting to interface with the UI in a way that requires
150
+ a TTY. Most actions in Vagrant that require a TTY have configuration
151
+ switches to disable this requirement. Please do that or run Vagrant
152
+ with TTY.
144
153
  vagrantfile_exists: |-
145
154
  `Vagrantfile` already exists in this directory. Remove it before
146
155
  running `vagrant init`.
@@ -274,6 +283,11 @@ en:
274
283
  not_created: |-
275
284
  The environment has not yet been created. Run `vagrant up` to
276
285
  create the environment.
286
+ paused: |-
287
+ The VM is paused. This VM may have been paused via the VirtualBox
288
+ GUI or the VBoxManage command line interface. To unpause, please
289
+ use the VirtualBox GUI and/or VBoxManage command line interface so
290
+ that vagrant would be able to control the VM again.
277
291
  poweroff: |-
278
292
  The VM is powered off. To restart the VM, simply run `vagrant up`
279
293
  running: |-
@@ -16,6 +16,14 @@ module Unit
16
16
  Vagrant::Environment.new(options)
17
17
  end
18
18
 
19
+ # This creates a file in the isolated environment. By default this file
20
+ # will be created in the working directory of the isolated environment.
21
+ def file(name, contents)
22
+ @workdir.join(name).open("w+") do |f|
23
+ f.write(contents)
24
+ end
25
+ end
26
+
19
27
  def vagrantfile(contents, root=nil)
20
28
  root ||= @workdir
21
29
  root.join("Vagrantfile").open("w+") do |f|
@@ -17,8 +17,18 @@ describe Vagrant::Environment do
17
17
  end
18
18
 
19
19
  it "is set to the cwd given" do
20
- instance = described_class.new(:cwd => "foobarbaz")
21
- instance.cwd.should == Pathname.new("foobarbaz")
20
+ directory = File.dirname(__FILE__)
21
+ instance = described_class.new(:cwd => directory)
22
+ instance.cwd.should == Pathname.new(directory)
23
+ end
24
+
25
+ it "is set to the environmental variable VAGRANT_CWD" do
26
+ pending "A good temporary ENV thing"
27
+ end
28
+
29
+ it "raises an exception if the CWD doesn't exist" do
30
+ expect { described_class.new(:cwd => "doesntexist") }.
31
+ to raise_error(Vagrant::Errors::EnvironmentNonExistentCWD)
22
32
  end
23
33
  end
24
34
 
@@ -120,6 +130,19 @@ VF
120
130
  env.config.global.vagrant.dotfile_name.should == "foo"
121
131
  end
122
132
 
133
+ it "should load from a custom Vagrantfile" do
134
+ environment = isolated_environment do |env|
135
+ env.file("non_standard_name", <<-VF)
136
+ Vagrant::Config.run do |config|
137
+ config.vagrant.dotfile_name = "custom"
138
+ end
139
+ VF
140
+ end
141
+
142
+ env = environment.create_vagrant_env(:vagrantfile_name => "non_standard_name")
143
+ env.config.global.vagrant.dotfile_name.should == "custom"
144
+ end
145
+
123
146
  it "should load VM configuration" do
124
147
  environment = isolated_environment do |env|
125
148
  env.vagrantfile(<<-VF)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 0
10
- version: 1.0.0
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mitchell Hashimoto
@@ -16,10 +16,13 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-03-06 00:00:00 Z
19
+ date: 2012-03-12 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ name: archive-tar-minitar
23
+ prerelease: false
24
+ type: :runtime
25
+ requirement: &id001 !ruby/object:Gem::Requirement
23
26
  none: false
24
27
  requirements:
25
28
  - - "="
@@ -30,12 +33,12 @@ dependencies:
30
33
  - 5
31
34
  - 2
32
35
  version: 0.5.2
33
- name: archive-tar-minitar
34
- type: :runtime
35
- prerelease: false
36
- requirement: *id001
36
+ version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- version_requirements: &id002 !ruby/object:Gem::Requirement
38
+ name: childprocess
39
+ prerelease: false
40
+ type: :runtime
41
+ requirement: &id002 !ruby/object:Gem::Requirement
39
42
  none: false
40
43
  requirements:
41
44
  - - ~>
@@ -46,12 +49,12 @@ dependencies:
46
49
  - 3
47
50
  - 1
48
51
  version: 0.3.1
49
- name: childprocess
50
- type: :runtime
51
- prerelease: false
52
- requirement: *id002
52
+ version_requirements: *id002
53
53
  - !ruby/object:Gem::Dependency
54
- version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ name: erubis
55
+ prerelease: false
56
+ type: :runtime
57
+ requirement: &id003 !ruby/object:Gem::Requirement
55
58
  none: false
56
59
  requirements:
57
60
  - - ~>
@@ -62,12 +65,12 @@ dependencies:
62
65
  - 7
63
66
  - 0
64
67
  version: 2.7.0
65
- name: erubis
66
- type: :runtime
67
- prerelease: false
68
- requirement: *id003
68
+ version_requirements: *id003
69
69
  - !ruby/object:Gem::Dependency
70
- version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ name: i18n
71
+ prerelease: false
72
+ type: :runtime
73
+ requirement: &id004 !ruby/object:Gem::Requirement
71
74
  none: false
72
75
  requirements:
73
76
  - - ~>
@@ -78,12 +81,12 @@ dependencies:
78
81
  - 6
79
82
  - 0
80
83
  version: 0.6.0
81
- name: i18n
82
- type: :runtime
83
- prerelease: false
84
- requirement: *id004
84
+ version_requirements: *id004
85
85
  - !ruby/object:Gem::Dependency
86
- version_requirements: &id005 !ruby/object:Gem::Requirement
86
+ name: json
87
+ prerelease: false
88
+ type: :runtime
89
+ requirement: &id005 !ruby/object:Gem::Requirement
87
90
  none: false
88
91
  requirements:
89
92
  - - ~>
@@ -94,12 +97,12 @@ dependencies:
94
97
  - 5
95
98
  - 1
96
99
  version: 1.5.1
97
- name: json
98
- type: :runtime
99
- prerelease: false
100
- requirement: *id005
100
+ version_requirements: *id005
101
101
  - !ruby/object:Gem::Dependency
102
- version_requirements: &id006 !ruby/object:Gem::Requirement
102
+ name: log4r
103
+ prerelease: false
104
+ type: :runtime
105
+ requirement: &id006 !ruby/object:Gem::Requirement
103
106
  none: false
104
107
  requirements:
105
108
  - - ~>
@@ -110,12 +113,12 @@ dependencies:
110
113
  - 1
111
114
  - 9
112
115
  version: 1.1.9
113
- name: log4r
114
- type: :runtime
115
- prerelease: false
116
- requirement: *id006
116
+ version_requirements: *id006
117
117
  - !ruby/object:Gem::Dependency
118
- version_requirements: &id007 !ruby/object:Gem::Requirement
118
+ name: net-ssh
119
+ prerelease: false
120
+ type: :runtime
121
+ requirement: &id007 !ruby/object:Gem::Requirement
119
122
  none: false
120
123
  requirements:
121
124
  - - ~>
@@ -126,12 +129,12 @@ dependencies:
126
129
  - 2
127
130
  - 2
128
131
  version: 2.2.2
129
- name: net-ssh
130
- type: :runtime
131
- prerelease: false
132
- requirement: *id007
132
+ version_requirements: *id007
133
133
  - !ruby/object:Gem::Dependency
134
- version_requirements: &id008 !ruby/object:Gem::Requirement
134
+ name: net-scp
135
+ prerelease: false
136
+ type: :runtime
137
+ requirement: &id008 !ruby/object:Gem::Requirement
135
138
  none: false
136
139
  requirements:
137
140
  - - ~>
@@ -142,12 +145,12 @@ dependencies:
142
145
  - 0
143
146
  - 4
144
147
  version: 1.0.4
145
- name: net-scp
146
- type: :runtime
147
- prerelease: false
148
- requirement: *id008
148
+ version_requirements: *id008
149
149
  - !ruby/object:Gem::Dependency
150
- version_requirements: &id009 !ruby/object:Gem::Requirement
150
+ name: rake
151
+ prerelease: false
152
+ type: :development
153
+ requirement: &id009 !ruby/object:Gem::Requirement
151
154
  none: false
152
155
  requirements:
153
156
  - - ">="
@@ -156,12 +159,12 @@ dependencies:
156
159
  segments:
157
160
  - 0
158
161
  version: "0"
159
- name: rake
160
- type: :development
161
- prerelease: false
162
- requirement: *id009
162
+ version_requirements: *id009
163
163
  - !ruby/object:Gem::Dependency
164
- version_requirements: &id010 !ruby/object:Gem::Requirement
164
+ name: contest
165
+ prerelease: false
166
+ type: :development
167
+ requirement: &id010 !ruby/object:Gem::Requirement
165
168
  none: false
166
169
  requirements:
167
170
  - - ">="
@@ -172,12 +175,12 @@ dependencies:
172
175
  - 1
173
176
  - 2
174
177
  version: 0.1.2
175
- name: contest
176
- type: :development
177
- prerelease: false
178
- requirement: *id010
178
+ version_requirements: *id010
179
179
  - !ruby/object:Gem::Dependency
180
- version_requirements: &id011 !ruby/object:Gem::Requirement
180
+ name: minitest
181
+ prerelease: false
182
+ type: :development
183
+ requirement: &id011 !ruby/object:Gem::Requirement
181
184
  none: false
182
185
  requirements:
183
186
  - - ~>
@@ -188,12 +191,12 @@ dependencies:
188
191
  - 5
189
192
  - 1
190
193
  version: 2.5.1
191
- name: minitest
192
- type: :development
193
- prerelease: false
194
- requirement: *id011
194
+ version_requirements: *id011
195
195
  - !ruby/object:Gem::Dependency
196
- version_requirements: &id012 !ruby/object:Gem::Requirement
196
+ name: mocha
197
+ prerelease: false
198
+ type: :development
199
+ requirement: &id012 !ruby/object:Gem::Requirement
197
200
  none: false
198
201
  requirements:
199
202
  - - ">="
@@ -202,12 +205,12 @@ dependencies:
202
205
  segments:
203
206
  - 0
204
207
  version: "0"
205
- name: mocha
206
- type: :development
207
- prerelease: false
208
- requirement: *id012
208
+ version_requirements: *id012
209
209
  - !ruby/object:Gem::Dependency
210
- version_requirements: &id013 !ruby/object:Gem::Requirement
210
+ name: rspec-core
211
+ prerelease: false
212
+ type: :development
213
+ requirement: &id013 !ruby/object:Gem::Requirement
211
214
  none: false
212
215
  requirements:
213
216
  - - ~>
@@ -218,12 +221,12 @@ dependencies:
218
221
  - 8
219
222
  - 0
220
223
  version: 2.8.0
221
- name: rspec-core
222
- type: :development
223
- prerelease: false
224
- requirement: *id013
224
+ version_requirements: *id013
225
225
  - !ruby/object:Gem::Dependency
226
- version_requirements: &id014 !ruby/object:Gem::Requirement
226
+ name: rspec-expectations
227
+ prerelease: false
228
+ type: :development
229
+ requirement: &id014 !ruby/object:Gem::Requirement
227
230
  none: false
228
231
  requirements:
229
232
  - - ~>
@@ -234,12 +237,12 @@ dependencies:
234
237
  - 8
235
238
  - 0
236
239
  version: 2.8.0
237
- name: rspec-expectations
238
- type: :development
239
- prerelease: false
240
- requirement: *id014
240
+ version_requirements: *id014
241
241
  - !ruby/object:Gem::Dependency
242
- version_requirements: &id015 !ruby/object:Gem::Requirement
242
+ name: rspec-mocks
243
+ prerelease: false
244
+ type: :development
245
+ requirement: &id015 !ruby/object:Gem::Requirement
243
246
  none: false
244
247
  requirements:
245
248
  - - ~>
@@ -250,10 +253,7 @@ dependencies:
250
253
  - 8
251
254
  - 0
252
255
  version: 2.8.0
253
- name: rspec-mocks
254
- type: :development
255
- prerelease: false
256
- requirement: *id015
256
+ version_requirements: *id015
257
257
  description: Vagrant is a tool for building and distributing virtualized development environments.
258
258
  email:
259
259
  - mitchell.hashimoto@gmail.com
@@ -347,6 +347,7 @@ files:
347
347
  - lib/vagrant/command/resume.rb
348
348
  - lib/vagrant/command/ssh.rb
349
349
  - lib/vagrant/command/ssh_config.rb
350
+ - lib/vagrant/command/start_mixins.rb
350
351
  - lib/vagrant/command/status.rb
351
352
  - lib/vagrant/command/suspend.rb
352
353
  - lib/vagrant/command/up.rb
@@ -388,6 +389,7 @@ files:
388
389
  - lib/vagrant/guest/linux.rb
389
390
  - lib/vagrant/guest/linux/config.rb
390
391
  - lib/vagrant/guest/linux/error.rb
392
+ - lib/vagrant/guest/openbsd.rb
391
393
  - lib/vagrant/guest/redhat.rb
392
394
  - lib/vagrant/guest/solaris.rb
393
395
  - lib/vagrant/guest/suse.rb