vagrant-windows 1.2.3 → 1.3.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
@@ -9,6 +9,7 @@ module VagrantPlugins
|
|
9
9
|
|
10
10
|
include VagrantWindows::Helper
|
11
11
|
|
12
|
+
provision_on_linux = instance_method(:provision)
|
12
13
|
run_chef_solo_on_linux = instance_method(:run_chef_solo)
|
13
14
|
|
14
15
|
# This patch is needed until Vagrant supports chef on Windows guests
|
@@ -16,8 +17,25 @@ module VagrantPlugins
|
|
16
17
|
is_windows ? run_chef_solo_on_windows() : run_chef_solo_on_linux.bind(self).()
|
17
18
|
end
|
18
19
|
|
20
|
+
define_method(:provision) do
|
21
|
+
wait_if_rebooting() if is_windows
|
22
|
+
provision_on_linux.bind(self).()
|
23
|
+
end
|
24
|
+
|
25
|
+
def wait_if_rebooting
|
26
|
+
# Check to see if the guest is rebooting, if its rebooting then wait until its ready
|
27
|
+
@logger.info('Checking guest reboot status')
|
28
|
+
reboot_detect_script = VagrantWindows.load_script('reboot_detect.ps1')
|
29
|
+
exit_status = @machine.communicate.execute(reboot_detect_script, :error_check => false)
|
30
|
+
if exit_status != 0
|
31
|
+
begin
|
32
|
+
@logger.debug('Guest is rebooting, waiting 10 seconds...')
|
33
|
+
sleep(10)
|
34
|
+
end until @machine.communicate.ready?
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
19
38
|
def run_chef_solo_on_windows
|
20
|
-
|
21
39
|
# This re-establishes our symbolic links if they were created between now and a reboot
|
22
40
|
# Fixes issue #119
|
23
41
|
@machine.communicate.execute('& net use a-non-existant-share', :error_check => false)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# function to check whether machine is currently shutting down
|
2
|
+
function ShuttingDown {
|
3
|
+
[string]$sourceCode = @"
|
4
|
+
using System;
|
5
|
+
using System.Runtime.InteropServices;
|
6
|
+
|
7
|
+
namespace VagrantWindows {
|
8
|
+
public static class RemoteManager {
|
9
|
+
private const int SM_SHUTTINGDOWN = 0x2000;
|
10
|
+
|
11
|
+
[DllImport("User32.dll", CharSet = CharSet.Unicode)]
|
12
|
+
private static extern int GetSystemMetrics(int Index);
|
13
|
+
|
14
|
+
public static bool Shutdown() {
|
15
|
+
return (0 != GetSystemMetrics(SM_SHUTTINGDOWN));
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
"@
|
20
|
+
$type = Add-Type -TypeDefinition $sourceCode -PassThru
|
21
|
+
return $type::Shutdown()
|
22
|
+
}
|
23
|
+
|
24
|
+
if (ShuttingDown) {
|
25
|
+
Write-Host "Shutting Down"
|
26
|
+
exit 1
|
27
|
+
}
|
28
|
+
else {
|
29
|
+
Write-Host "All good"
|
30
|
+
exit 0
|
31
|
+
}
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-windows
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.3.0.pre.1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Paul Morton
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-10-
|
13
|
+
date: 2013-10-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: winrm
|
@@ -186,6 +186,7 @@ files:
|
|
186
186
|
- lib/vagrant-windows/scripts/cheftaskrun.ps1.erb
|
187
187
|
- lib/vagrant-windows/scripts/command_alias.ps1
|
188
188
|
- lib/vagrant-windows/scripts/mount_volume.ps1.erb
|
189
|
+
- lib/vagrant-windows/scripts/reboot_detect.ps1
|
189
190
|
- lib/vagrant-windows/scripts/set_work_network.ps1
|
190
191
|
- lib/vagrant-windows/scripts/winrs_v3_get_adapters.ps1
|
191
192
|
- lib/vagrant-windows/version.rb
|
@@ -224,16 +225,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
224
225
|
version: '0'
|
225
226
|
segments:
|
226
227
|
- 0
|
227
|
-
hash: -
|
228
|
+
hash: -1146635457027208657
|
228
229
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
230
|
none: false
|
230
231
|
requirements:
|
231
|
-
- - ! '
|
232
|
+
- - ! '>'
|
232
233
|
- !ruby/object:Gem::Version
|
233
|
-
version:
|
234
|
-
segments:
|
235
|
-
- 0
|
236
|
-
hash: -3479257835022585511
|
234
|
+
version: 1.3.1
|
237
235
|
requirements: []
|
238
236
|
rubyforge_project:
|
239
237
|
rubygems_version: 1.8.23
|