vagrant 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,17 @@
1
- ## 1.0.6 (unreleased)
1
+ ## 1.0.7 (March 13, 2013)
2
+
3
+ - Detect if a newer version of Vagrant ran and error if it did,
4
+ because we're not forward-compatible.
5
+ - Check for guest additions version AFTER booting. [GH-1179]
6
+ - Quote IdentityFile in `ssh-config` so private keys with spaces in
7
+ the path work. [GH-1322]
8
+ - Fix issue where multiple Puppet module paths can be re-ordered [GH-964]
9
+ - Shell provisioner won't hang on Windows anymore due to unclosed
10
+ tempfile. [GH-1040]
11
+ - Retry setting default VM name, since it sometimes fails first time. [GH-1368]
12
+ - Support setting hostname on Suse [GH-1063]
13
+
14
+ ## 1.0.6 (December 21, 2012)
2
15
 
3
16
  - Shell provisioner outputs proper line endings on Windows [GH-1164]
4
17
  - SSH upload opens file to stream which fixes strange upload issues.
@@ -49,6 +49,7 @@ module Vagrant
49
49
  use VM::SaneDefaults
50
50
  use VM::Customize
51
51
  use VM::Boot
52
+ use VM::CheckGuestAdditions
52
53
  end
53
54
  end
54
55
 
@@ -104,7 +105,6 @@ module Vagrant
104
105
  use VM::CheckAccessible
105
106
  use VM::CheckBox
106
107
  use VM::Import
107
- use VM::CheckGuestAdditions
108
108
  use VM::DefaultName
109
109
  use VM::MatchMACAddress
110
110
  use registry.get(:start)
@@ -427,7 +427,7 @@ module Vagrant
427
427
  end
428
428
 
429
429
  def set_name(name)
430
- execute("modifyvm", @uuid, "--name", name)
430
+ execute("modifyvm", @uuid, "--name", name, :retryable => true)
431
431
  end
432
432
 
433
433
  def share_folders(folders)
@@ -446,6 +446,11 @@ module Vagrant
446
446
  DEFAULT_HOME))
447
447
  @logger.info("Home path: #{@home_path}")
448
448
 
449
+ # If the setup_version file exists, then we can't load because we're
450
+ # not forward compatible. It means they ran a future version of Vagrant.
451
+ raise Errors::IncompatibleWithFutureVersion, :path => @home_path.to_s if \
452
+ @home_path.join("setup_version").file?
453
+
449
454
  # Setup the array of necessary home directories
450
455
  dirs = [@home_path]
451
456
  dirs += HOME_SUBDIRS.collect { |subdir| @home_path.join(subdir) }
@@ -198,6 +198,10 @@ module Vagrant
198
198
  error_key(:home_dir_not_accessible)
199
199
  end
200
200
 
201
+ class IncompatibleWithFutureVersion < VagrantError
202
+ error_key(:incompatible_with_future_version)
203
+ end
204
+
201
205
  class ForwardPortAutolistEmpty < VagrantError
202
206
  status_code(27)
203
207
  error_key(:auto_empty, "vagrant.actions.vm.forward_ports")
@@ -4,6 +4,14 @@ module Vagrant
4
4
  def network_scripts_dir
5
5
  '/etc/sysconfig/network/'
6
6
  end
7
+ def change_host_name(name)
8
+ # Only do this if the hostname is not already set
9
+ if !vm.channel.test("sudo hostname | grep '#{name}'")
10
+ vm.channel.sudo("echo #{name} > /etc/HOSTNAME")
11
+ vm.channel.sudo("hostname #{name}")
12
+ vm.channel.sudo("sed -i 's@^\\(127[.]0[.]0[.]1[[:space:]]\\+\\)@\\1#{name} #{name.split('.')[0]} @' /etc/hosts")
13
+ end
14
+ end
7
15
  end
8
16
  end
9
17
  end
@@ -117,9 +117,9 @@ module Vagrant
117
117
  end
118
118
 
119
119
  def set_module_paths
120
- @module_paths = {}
120
+ @module_paths = []
121
121
  @expanded_module_paths.each_with_index do |path, i|
122
- @module_paths[path] = File.join(config.pp_path, "modules-#{i}")
122
+ @module_paths << [path, File.join(config.pp_path, "modules-#{i}")]
123
123
  end
124
124
  end
125
125
 
@@ -136,7 +136,8 @@ module Vagrant
136
136
 
137
137
  def run_puppet_client
138
138
  options = [config.options].flatten
139
- options << "--modulepath '#{@module_paths.values.join(':')}'" if !@module_paths.empty?
139
+ module_paths = @module_paths.map { |_, to| to }
140
+ options << "--modulepath '#{module_paths.join(':')}'" if !@module_paths.empty?
140
141
  options << @manifest_file
141
142
  options = options.join(" ")
142
143
 
@@ -68,6 +68,7 @@ module Vagrant
68
68
  begin
69
69
  file.write(config.inline)
70
70
  file.fsync
71
+ file.close
71
72
  yield file.path
72
73
  ensure
73
74
  file.close
@@ -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.6"
5
+ VERSION = "1.0.7"
6
6
  end
@@ -5,7 +5,7 @@ Host <%= host_key %>
5
5
  UserKnownHostsFile /dev/null
6
6
  StrictHostKeyChecking no
7
7
  PasswordAuthentication no
8
- IdentityFile <%= private_key_path %>
8
+ IdentityFile "<%= private_key_path %>"
9
9
  IdentitiesOnly yes
10
10
  <% if forward_agent -%>
11
11
  ForwardAgent yes
@@ -74,6 +74,18 @@ en:
74
74
  directory that Vagrant uses must be both readable and writable.
75
75
 
76
76
  You specified: %{home_path}
77
+ incompatible_with_future_version: |-
78
+ It appears that you've ran a newer version of Vagrant on this
79
+ computer. Unfortunately, newer versions of Vagrant change internal
80
+ directory layouts that cause older versions to break. This version
81
+ of Vagrant cannot properly run.
82
+
83
+ If you'd like to start from a clean state, please remove the
84
+ Vagrant state directory: %{path}
85
+
86
+ Warning that this will remove all your boxes and potentially corrupt
87
+ existing Vagrant environments that were running based on the future
88
+ version.
77
89
  interrupted: |-
78
90
  Vagrant exited after cleanup due to external interrupt.
79
91
  multi_vm_required: |-
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.add_dependency "childprocess", "~> 0.3.1"
19
19
  s.add_dependency "erubis", "~> 2.7.0"
20
20
  s.add_dependency "i18n", "~> 0.6.0"
21
- s.add_dependency "json", "~> 1.5.1"
21
+ s.add_dependency "json", ">= 1.5.1", "< 1.8.0"
22
22
  s.add_dependency "log4r", "~> 1.1.9"
23
23
  s.add_dependency "net-ssh", "~> 2.2.2"
24
24
  s.add_dependency "net-scp", "~> 1.0.4"
metadata CHANGED
@@ -1,271 +1,273 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vagrant
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.7
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 6
10
- version: 1.0.6
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Mitchell Hashimoto
14
9
  - John Bender
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2013-01-24 00:00:00 -08:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- requirement: &id001 !ruby/object:Gem::Requirement
13
+ date: 2013-03-14 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: archive-tar-minitar
17
+ requirement: !ruby/object:Gem::Requirement
24
18
  none: false
25
- requirements:
26
- - - "="
27
- - !ruby/object:Gem::Version
28
- hash: 15
29
- segments:
30
- - 0
31
- - 5
32
- - 2
19
+ requirements:
20
+ - - '='
21
+ - !ruby/object:Gem::Version
33
22
  version: 0.5.2
34
- version_requirements: *id001
35
- name: archive-tar-minitar
36
- prerelease: false
37
23
  type: :runtime
38
- - !ruby/object:Gem::Dependency
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - '='
29
+ - !ruby/object:Gem::Version
30
+ version: 0.5.2
31
+ - !ruby/object:Gem::Dependency
32
+ name: childprocess
33
+ requirement: !ruby/object:Gem::Requirement
40
34
  none: false
41
- requirements:
35
+ requirements:
42
36
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 17
45
- segments:
46
- - 0
47
- - 3
48
- - 1
37
+ - !ruby/object:Gem::Version
49
38
  version: 0.3.1
50
- version_requirements: *id002
51
- name: childprocess
52
- prerelease: false
53
39
  type: :runtime
54
- - !ruby/object:Gem::Dependency
55
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
56
42
  none: false
57
- requirements:
43
+ requirements:
58
44
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 19
61
- segments:
62
- - 2
63
- - 7
64
- - 0
65
- version: 2.7.0
66
- version_requirements: *id003
45
+ - !ruby/object:Gem::Version
46
+ version: 0.3.1
47
+ - !ruby/object:Gem::Dependency
67
48
  name: erubis
68
- prerelease: false
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.7.0
69
55
  type: :runtime
70
- - !ruby/object:Gem::Dependency
71
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
72
58
  none: false
73
- requirements:
59
+ requirements:
74
60
  - - ~>
75
- - !ruby/object:Gem::Version
76
- hash: 7
77
- segments:
78
- - 0
79
- - 6
80
- - 0
81
- version: 0.6.0
82
- version_requirements: *id004
61
+ - !ruby/object:Gem::Version
62
+ version: 2.7.0
63
+ - !ruby/object:Gem::Dependency
83
64
  name: i18n
84
- prerelease: false
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 0.6.0
85
71
  type: :runtime
86
- - !ruby/object:Gem::Dependency
87
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
88
74
  none: false
89
- requirements:
75
+ requirements:
90
76
  - - ~>
91
- - !ruby/object:Gem::Version
92
- hash: 1
93
- segments:
94
- - 1
95
- - 5
96
- - 1
97
- version: 1.5.1
98
- version_requirements: *id005
77
+ - !ruby/object:Gem::Version
78
+ version: 0.6.0
79
+ - !ruby/object:Gem::Dependency
99
80
  name: json
100
- prerelease: false
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: 1.5.1
87
+ - - <
88
+ - !ruby/object:Gem::Version
89
+ version: 1.8.0
101
90
  type: :runtime
102
- - !ruby/object:Gem::Dependency
103
- requirement: &id006 !ruby/object:Gem::Requirement
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
104
93
  none: false
105
- requirements:
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: 1.5.1
98
+ - - <
99
+ - !ruby/object:Gem::Version
100
+ version: 1.8.0
101
+ - !ruby/object:Gem::Dependency
102
+ name: log4r
103
+ requirement: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
106
  - - ~>
107
- - !ruby/object:Gem::Version
108
- hash: 1
109
- segments:
110
- - 1
111
- - 1
112
- - 9
107
+ - !ruby/object:Gem::Version
113
108
  version: 1.1.9
114
- version_requirements: *id006
115
- name: log4r
116
- prerelease: false
117
109
  type: :runtime
118
- - !ruby/object:Gem::Dependency
119
- requirement: &id007 !ruby/object:Gem::Requirement
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
120
112
  none: false
121
- requirements:
113
+ requirements:
122
114
  - - ~>
123
- - !ruby/object:Gem::Version
124
- hash: 3
125
- segments:
126
- - 2
127
- - 2
128
- - 2
129
- version: 2.2.2
130
- version_requirements: *id007
115
+ - !ruby/object:Gem::Version
116
+ version: 1.1.9
117
+ - !ruby/object:Gem::Dependency
131
118
  name: net-ssh
132
- prerelease: false
119
+ requirement: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: 2.2.2
133
125
  type: :runtime
134
- - !ruby/object:Gem::Dependency
135
- requirement: &id008 !ruby/object:Gem::Requirement
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
136
128
  none: false
137
- requirements:
129
+ requirements:
138
130
  - - ~>
139
- - !ruby/object:Gem::Version
140
- hash: 31
141
- segments:
142
- - 1
143
- - 0
144
- - 4
145
- version: 1.0.4
146
- version_requirements: *id008
131
+ - !ruby/object:Gem::Version
132
+ version: 2.2.2
133
+ - !ruby/object:Gem::Dependency
147
134
  name: net-scp
148
- prerelease: false
135
+ requirement: !ruby/object:Gem::Requirement
136
+ none: false
137
+ requirements:
138
+ - - ~>
139
+ - !ruby/object:Gem::Version
140
+ version: 1.0.4
149
141
  type: :runtime
150
- - !ruby/object:Gem::Dependency
151
- requirement: &id009 !ruby/object:Gem::Requirement
142
+ prerelease: false
143
+ version_requirements: !ruby/object:Gem::Requirement
152
144
  none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- hash: 3
157
- segments:
158
- - 0
159
- version: "0"
160
- version_requirements: *id009
145
+ requirements:
146
+ - - ~>
147
+ - !ruby/object:Gem::Version
148
+ version: 1.0.4
149
+ - !ruby/object:Gem::Dependency
161
150
  name: rake
162
- prerelease: false
151
+ requirement: !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
163
157
  type: :development
164
- - !ruby/object:Gem::Dependency
165
- requirement: &id010 !ruby/object:Gem::Requirement
158
+ prerelease: false
159
+ version_requirements: !ruby/object:Gem::Requirement
166
160
  none: false
167
- requirements:
168
- - - ">="
169
- - !ruby/object:Gem::Version
170
- hash: 31
171
- segments:
172
- - 0
173
- - 1
174
- - 2
175
- version: 0.1.2
176
- version_requirements: *id010
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ - !ruby/object:Gem::Dependency
177
166
  name: contest
178
- prerelease: false
167
+ requirement: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: 0.1.2
179
173
  type: :development
180
- - !ruby/object:Gem::Dependency
181
- requirement: &id011 !ruby/object:Gem::Requirement
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
182
176
  none: false
183
- requirements:
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: 0.1.2
181
+ - !ruby/object:Gem::Dependency
182
+ name: minitest
183
+ requirement: !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
184
186
  - - ~>
185
- - !ruby/object:Gem::Version
186
- hash: 25
187
- segments:
188
- - 2
189
- - 5
190
- - 1
187
+ - !ruby/object:Gem::Version
191
188
  version: 2.5.1
192
- version_requirements: *id011
193
- name: minitest
194
- prerelease: false
195
189
  type: :development
196
- - !ruby/object:Gem::Dependency
197
- requirement: &id012 !ruby/object:Gem::Requirement
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
198
192
  none: false
199
- requirements:
200
- - - ">="
201
- - !ruby/object:Gem::Version
202
- hash: 3
203
- segments:
204
- - 0
205
- version: "0"
206
- version_requirements: *id012
193
+ requirements:
194
+ - - ~>
195
+ - !ruby/object:Gem::Version
196
+ version: 2.5.1
197
+ - !ruby/object:Gem::Dependency
207
198
  name: mocha
208
- prerelease: false
199
+ requirement: !ruby/object:Gem::Requirement
200
+ none: false
201
+ requirements:
202
+ - - ! '>='
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
209
205
  type: :development
210
- - !ruby/object:Gem::Dependency
211
- requirement: &id013 !ruby/object:Gem::Requirement
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ none: false
209
+ requirements:
210
+ - - ! '>='
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ - !ruby/object:Gem::Dependency
214
+ name: rspec-core
215
+ requirement: !ruby/object:Gem::Requirement
212
216
  none: false
213
- requirements:
217
+ requirements:
214
218
  - - ~>
215
- - !ruby/object:Gem::Version
216
- hash: 47
217
- segments:
218
- - 2
219
- - 8
220
- - 0
219
+ - !ruby/object:Gem::Version
221
220
  version: 2.8.0
222
- version_requirements: *id013
223
- name: rspec-core
224
- prerelease: false
225
221
  type: :development
226
- - !ruby/object:Gem::Dependency
227
- requirement: &id014 !ruby/object:Gem::Requirement
222
+ prerelease: false
223
+ version_requirements: !ruby/object:Gem::Requirement
228
224
  none: false
229
- requirements:
225
+ requirements:
230
226
  - - ~>
231
- - !ruby/object:Gem::Version
232
- hash: 47
233
- segments:
234
- - 2
235
- - 8
236
- - 0
227
+ - !ruby/object:Gem::Version
237
228
  version: 2.8.0
238
- version_requirements: *id014
229
+ - !ruby/object:Gem::Dependency
239
230
  name: rspec-expectations
240
- prerelease: false
231
+ requirement: !ruby/object:Gem::Requirement
232
+ none: false
233
+ requirements:
234
+ - - ~>
235
+ - !ruby/object:Gem::Version
236
+ version: 2.8.0
241
237
  type: :development
242
- - !ruby/object:Gem::Dependency
243
- requirement: &id015 !ruby/object:Gem::Requirement
238
+ prerelease: false
239
+ version_requirements: !ruby/object:Gem::Requirement
244
240
  none: false
245
- requirements:
241
+ requirements:
246
242
  - - ~>
247
- - !ruby/object:Gem::Version
248
- hash: 47
249
- segments:
250
- - 2
251
- - 8
252
- - 0
243
+ - !ruby/object:Gem::Version
253
244
  version: 2.8.0
254
- version_requirements: *id015
245
+ - !ruby/object:Gem::Dependency
255
246
  name: rspec-mocks
256
- prerelease: false
247
+ requirement: !ruby/object:Gem::Requirement
248
+ none: false
249
+ requirements:
250
+ - - ~>
251
+ - !ruby/object:Gem::Version
252
+ version: 2.8.0
257
253
  type: :development
258
- description: Vagrant is a tool for building and distributing virtualized development environments.
259
- email:
254
+ prerelease: false
255
+ version_requirements: !ruby/object:Gem::Requirement
256
+ none: false
257
+ requirements:
258
+ - - ~>
259
+ - !ruby/object:Gem::Version
260
+ version: 2.8.0
261
+ description: Vagrant is a tool for building and distributing virtualized development
262
+ environments.
263
+ email:
260
264
  - mitchell.hashimoto@gmail.com
261
265
  - john.m.bender@gmail.com
262
- executables:
266
+ executables:
263
267
  - vagrant
264
268
  extensions: []
265
-
266
269
  extra_rdoc_files: []
267
-
268
- files:
270
+ files:
269
271
  - bin/vagrant
270
272
  - CHANGELOG.md
271
273
  - config/default.rb
@@ -678,41 +680,31 @@ files:
678
680
  - vagrant.gemspec
679
681
  - .gitignore
680
682
  - .yardopts
681
- has_rdoc: true
682
683
  homepage: http://vagrantup.com
683
684
  licenses: []
684
-
685
685
  post_install_message:
686
686
  rdoc_options: []
687
-
688
- require_paths:
687
+ require_paths:
689
688
  - lib
690
- required_ruby_version: !ruby/object:Gem::Requirement
689
+ required_ruby_version: !ruby/object:Gem::Requirement
691
690
  none: false
692
- requirements:
693
- - - ">="
694
- - !ruby/object:Gem::Version
695
- hash: 3
696
- segments:
691
+ requirements:
692
+ - - ! '>='
693
+ - !ruby/object:Gem::Version
694
+ version: '0'
695
+ segments:
697
696
  - 0
698
- version: "0"
699
- required_rubygems_version: !ruby/object:Gem::Requirement
697
+ hash: -4595047100771247865
698
+ required_rubygems_version: !ruby/object:Gem::Requirement
700
699
  none: false
701
- requirements:
702
- - - ">="
703
- - !ruby/object:Gem::Version
704
- hash: 23
705
- segments:
706
- - 1
707
- - 3
708
- - 6
700
+ requirements:
701
+ - - ! '>='
702
+ - !ruby/object:Gem::Version
709
703
  version: 1.3.6
710
704
  requirements: []
711
-
712
705
  rubyforge_project: vagrant
713
- rubygems_version: 1.6.2
706
+ rubygems_version: 1.8.23
714
707
  signing_key:
715
708
  specification_version: 3
716
709
  summary: Build and distribute virtualized development environments.
717
710
  test_files: []
718
-