vagrant-windows 1.3.0.pre.3 → 1.3.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.
data/Gemfile CHANGED
@@ -7,6 +7,6 @@ group :development do
7
7
  # We depend on Vagrant for development, but we don't add it as a
8
8
  # gem dependency because we expect to be installed within the
9
9
  # Vagrant environment itself using `vagrant plugin`.
10
- gem "vagrant", :git => "git://github.com/mitchellh/vagrant.git", :tag => 'v1.2.2'
10
+ gem "vagrant", :git => "git://github.com/mitchellh/vagrant.git", :tag => 'v1.3.5'
11
11
  gem "mocha", :require => false
12
12
  end
data/README.md CHANGED
@@ -47,6 +47,18 @@ These commands assume you're running from a regular command window and not Power
47
47
  winrm set winrm/config/service/auth @{Basic="true"}
48
48
  sc config WinRM start= auto
49
49
  ```
50
+
51
+ #### Additional WinRM 1.1 Configuration
52
+
53
+ These additional configuration steps are specific to Windows7 and Windows Server 2008 (WinRM 1.1). For Windows Server 2008 R2 and newer you can ignore this section.
54
+
55
+ 1. Ensure the Windows PowerShell feature is installed
56
+ 2. [change the default WinRM port](http://technet.microsoft.com/en-us/library/ff520073(v=ws.10).aspx) - see below or [upgrade to WinRM 2.0](http://www.microsoft.com/en-us/download/details.aspx?id=20430).
57
+ ```
58
+ netsh firewall add portopening TCP 5985 "Port 5985"
59
+ winrm set winrm/config/listener?Address=*+Transport=HTTP @{Port="5985"}
60
+ ```
61
+
50
62
  ### Required Windows Services
51
63
 
52
64
  If you like to turn off optional Windows services you'll need to ensure you leave these services enabled for vagrant-windows to continue to work:
data/init.pp ADDED
@@ -0,0 +1,5 @@
1
+ file {'c:/hellopuppet.txt':
2
+ ensure => present,
3
+ content => 'yo dawg you did its!'
4
+ }
5
+
@@ -90,7 +90,7 @@ module VagrantWindows
90
90
  if shell.eql? :cmd
91
91
  winrmshell.cmd(command, &block)[:exitcode]
92
92
  else
93
- command = VagrantWindows.load_script("command_alias.ps1") << "\r\n" << command
93
+ command = VagrantWindows.load_script("command_alias.ps1") << "\r\n" << command << "\r\nexit $LASTEXITCODE"
94
94
  winrmshell.powershell(command, &block)[:exitcode]
95
95
  end
96
96
  end
@@ -17,29 +17,31 @@ module VagrantWindows
17
17
 
18
18
  windows_machine = VagrantWindows::WindowsMachine.new(machine)
19
19
  guest_network = VagrantWindows::Communication::GuestNetwork.new(windows_machine.winrmshell)
20
- unless windows_machine.is_vmware?()
21
- vm_interface_map = create_vm_interface_map(windows_machine, guest_network)
22
- end
23
-
24
- networks.each do |network|
25
- interface = vm_interface_map[network[:interface]+1]
26
- if interface.nil?
27
- @@logger.warn("Could not find interface for network #{network.inspect}")
28
- next
29
- end
30
- network_type = network[:type].to_sym
31
- if network_type == :static
32
- guest_network.configure_static_interface(
33
- interface[:index],
34
- interface[:net_connection_id],
35
- network[:ip],
36
- network[:netmask])
37
- elsif network_type == :dhcp
38
- guest_network.configure_dhcp_interface(
39
- interface[:index],
40
- interface[:net_connection_id])
41
- else
42
- raise WindowsError, "#{network_type} network type is not supported, try static or dhcp"
20
+ if windows_machine.is_vmware?()
21
+ @@logger.warn('Configuring secondary network adapters through VMware is not yet supported.')
22
+ @@logger.warn('You will need to manually configure the network adapter.')
23
+ else
24
+ vm_interface_map = create_vm_interface_map(windows_machine, guest_network)
25
+ networks.each do |network|
26
+ interface = vm_interface_map[network[:interface]+1]
27
+ if interface.nil?
28
+ @@logger.warn("Could not find interface for network #{network.inspect}")
29
+ next
30
+ end
31
+ network_type = network[:type].to_sym
32
+ if network_type == :static
33
+ guest_network.configure_static_interface(
34
+ interface[:index],
35
+ interface[:net_connection_id],
36
+ network[:ip],
37
+ network[:netmask])
38
+ elsif network_type == :dhcp
39
+ guest_network.configure_dhcp_interface(
40
+ interface[:index],
41
+ interface[:net_connection_id])
42
+ else
43
+ raise WindowsError, "#{network_type} network type is not supported, try static or dhcp"
44
+ end
43
45
  end
44
46
  end
45
47
  guest_network.set_all_networks_to_work() if windows_machine.windows_config.set_work_network
@@ -1,6 +1,7 @@
1
1
  require "#{Vagrant::source_root}/plugins/provisioners/puppet/provisioner/puppet"
2
2
  require_relative '../../../../../windows_machine'
3
3
  require_relative '../../../../../helper'
4
+ require_relative '../../../../../errors'
4
5
 
5
6
  module VagrantPlugins
6
7
  module Puppet
@@ -33,7 +34,7 @@ module VagrantPlugins
33
34
  # This re-establishes our symbolic links if they were created between now and a reboot
34
35
  @machine.communicate.execute('& net use a-non-existant-share', :error_check => false)
35
36
 
36
- options = [config.options].flatten
37
+ options = [@config.options].flatten
37
38
  module_paths = @module_paths.map { |_, to| to }
38
39
  if !@module_paths.empty?
39
40
  # Prepend the default module path
@@ -58,9 +59,9 @@ module VagrantPlugins
58
59
 
59
60
  # Build up the custom facts if we have any
60
61
  facter = ""
61
- if !config.facter.empty?
62
+ if !@config.facter.empty?
62
63
  facts = []
63
- config.facter.each do |key, value|
64
+ @config.facter.each do |key, value|
64
65
  facts << "$env:FACTER_#{key}='#{value}';"
65
66
  end
66
67
 
@@ -68,18 +69,26 @@ module VagrantPlugins
68
69
  end
69
70
 
70
71
  command = "#{facter} puppet apply #{options}"
71
- if config.working_directory
72
- command = "cd #{config.working_directory}; if($?) \{ #{command} \}"
72
+ if @config.working_directory
73
+ command = "cd #{@config.working_directory}; if($?) \{ #{command} \}"
73
74
  end
74
75
 
75
76
  @machine.env.ui.info I18n.t("vagrant.provisioners.puppet.running_puppet",
76
77
  :manifest => @manifest_file)
77
78
 
78
- @machine.communicate.sudo(command) do |type, data|
79
+ exit_status = @machine.communicate.sudo(command, :error_check => false) do |type, data|
79
80
  if !data.empty?
80
81
  @machine.env.ui.info(data, :new_line => false, :prefix => false)
81
82
  end
82
83
  end
84
+
85
+ # Puppet returns 0 or 2 for success with --detailed-exitcodes
86
+ if ![0,2].include?(exit_status)
87
+ raise ::VagrantWindows::Errors::WinRMExecutionError,
88
+ :shell => :powershell,
89
+ :command => command,
90
+ :message => "Puppet failed with an exit code of #{exit_status}"
91
+ end
83
92
  end
84
93
 
85
94
  def configure_on_windows(root_config)
@@ -92,7 +101,7 @@ module VagrantPlugins
92
101
  # Setup the module paths
93
102
  @module_paths = []
94
103
  @expanded_module_paths.each_with_index do |path, i|
95
- @module_paths << [path, File.join(config.temp_dir, "modules-#{i}")]
104
+ @module_paths << [path, File.join(@config.temp_dir, "modules-#{i}")]
96
105
  end
97
106
 
98
107
  @logger.debug("Syncing folders from puppet configure")
@@ -1,8 +1,5 @@
1
- schtasks /query /tn "chef-solo" | Out-Null
2
- if ($?) {
3
- # task already exists, kill it
4
- schtasks /delete /tn "chef-solo" /f | Out-Null
5
- }
1
+ # kill the task so we can recreate it
2
+ schtasks /delete /tn "chef-solo" /f 2>&1 | out-null
6
3
 
7
4
  # Ensure the chef task running file doesn't exist from a previous failure
8
5
  if (Test-Path "<%= options[:chef_task_running] %>") {
@@ -34,14 +31,18 @@ $success = $TRUE
34
31
  while (Test-Path "<%= options[:chef_task_running] %>") {
35
32
  Start-Sleep -m 100
36
33
 
37
- $text = (get-content "<%= options[:chef_stdout_log] %>")
38
- $numLines = ($text | Measure-Object -line).lines
39
- $numLinesToRead = $numLines - $numLinesRead
40
-
41
- $text | select -first $numLinesToRead -skip $numLinesRead | ForEach {
42
- Write-Host "$_"
34
+ if (Test-Path "<%= options[:chef_stdout_log] %>") {
35
+ $text = (get-content "<%= options[:chef_stdout_log] %>")
36
+ $numLines = ($text | Measure-Object -line).lines
37
+ $numLinesToRead = $numLines - $numLinesRead
38
+
39
+ if ($numLinesToRead -gt 0) {
40
+ $text | select -first $numLinesToRead -skip $numLinesRead | ForEach {
41
+ Write-Host "$_"
42
+ }
43
+ $numLinesRead += $numLinesToRead
44
+ }
43
45
  }
44
- $numLinesRead += $numLinesToRead
45
46
  }
46
47
 
47
48
  exit Get-Content "<%= options[:chef_task_exitcode] %>"
@@ -34,7 +34,7 @@
34
34
  <RunOnlyIfIdle>false</RunOnlyIfIdle>
35
35
  <WakeToRun>false</WakeToRun>
36
36
  <ExecutionTimeLimit>PT2H</ExecutionTimeLimit>
37
- <Priority>7</Priority>
37
+ <Priority>4</Priority>
38
38
  </Settings>
39
39
  <Actions Context="Author">
40
40
  <Exec>
@@ -10,7 +10,9 @@ Try
10
10
  Finally
11
11
  {
12
12
  $exitCode | Out-File "<%= options[:chef_task_exitcode] %>"
13
- del "<%= options[:chef_task_running] %>"
13
+ if (Test-Path "<%= options[:chef_task_running] %>") {
14
+ del "<%= options[:chef_task_running] %>"
15
+ }
14
16
  }
15
17
 
16
18
  exit $exitCode
@@ -1,3 +1,3 @@
1
1
  module VagrantWindows
2
- VERSION = "1.3.0.pre.3"
2
+ VERSION = "1.3.0"
3
3
  end
data/puppet-3.3.2.msi ADDED
Binary file
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.3.0.pre.3
5
- prerelease: 6
4
+ version: 1.3.0
5
+ prerelease:
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-11-04 00:00:00.000000000 Z
13
+ date: 2013-11-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: winrm
@@ -159,6 +159,7 @@ files:
159
159
  - coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png
160
160
  - coverage/index.html
161
161
  - Gemfile
162
+ - init.pp
162
163
  - lib/vagrant-windows/communication/guestnetwork.rb
163
164
  - lib/vagrant-windows/communication/winrmcommunicator.rb
164
165
  - lib/vagrant-windows/communication/winrmfinder.rb
@@ -195,6 +196,7 @@ files:
195
196
  - lib/vagrant-windows.rb
196
197
  - LICENSE
197
198
  - locales/en.yml
199
+ - puppet-3.3.2.msi
198
200
  - Rakefile
199
201
  - README.md
200
202
  - spec/spec_helper.rb
@@ -228,13 +230,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
228
230
  version: '0'
229
231
  segments:
230
232
  - 0
231
- hash: -432043001542177050
233
+ hash: 3499483992626948935
232
234
  required_rubygems_version: !ruby/object:Gem::Requirement
233
235
  none: false
234
236
  requirements:
235
- - - ! '>'
237
+ - - ! '>='
236
238
  - !ruby/object:Gem::Version
237
- version: 1.3.1
239
+ version: '0'
240
+ segments:
241
+ - 0
242
+ hash: 3499483992626948935
238
243
  requirements: []
239
244
  rubyforge_project:
240
245
  rubygems_version: 1.8.23