vagrant-azure 1.0.5 → 1.1.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +19 -15
  3. data/CHANGELOG.md +24 -24
  4. data/Gemfile +20 -15
  5. data/LICENSE +4 -4
  6. data/README.md +189 -125
  7. data/Rakefile +15 -14
  8. data/lib/vagrant-azure.rb +31 -33
  9. data/lib/vagrant-azure/action.rb +267 -243
  10. data/lib/vagrant-azure/action/connect_azure.rb +49 -46
  11. data/lib/vagrant-azure/action/os_type.rb +34 -0
  12. data/lib/vagrant-azure/action/powershell_run.rb +28 -0
  13. data/lib/vagrant-azure/action/provision.rb +42 -49
  14. data/lib/vagrant-azure/action/rdp.rb +63 -62
  15. data/lib/vagrant-azure/action/read_ssh_info.rb +54 -51
  16. data/lib/vagrant-azure/action/read_state.rb +47 -46
  17. data/lib/vagrant-azure/action/read_winrm_info.rb +57 -0
  18. data/lib/vagrant-azure/action/restart_vm.rb +28 -27
  19. data/lib/vagrant-azure/action/run_instance.rb +123 -115
  20. data/lib/vagrant-azure/action/start_instance.rb +35 -35
  21. data/lib/vagrant-azure/action/stop_instance.rb +42 -38
  22. data/lib/vagrant-azure/action/sync_folders.rb +64 -63
  23. data/lib/vagrant-azure/action/terminate_instance.rb +34 -34
  24. data/lib/vagrant-azure/action/vagrant_azure_service.rb +44 -43
  25. data/lib/vagrant-azure/action/wait_for_communicate.rb +39 -38
  26. data/lib/vagrant-azure/action/wait_for_state.rb +50 -49
  27. data/lib/vagrant-azure/capabilities/winrm.rb +12 -0
  28. data/lib/vagrant-azure/command/powershell.rb +43 -0
  29. data/lib/vagrant-azure/command/rdp.rb +24 -0
  30. data/lib/vagrant-azure/config.rb +158 -147
  31. data/lib/vagrant-azure/driver.rb +48 -84
  32. data/lib/vagrant-azure/errors.rb +28 -27
  33. data/lib/vagrant-azure/monkey_patch/azure.rb +46 -0
  34. data/lib/vagrant-azure/monkey_patch/winrm.rb +77 -0
  35. data/lib/vagrant-azure/plugin.rb +102 -91
  36. data/lib/vagrant-azure/provider.rb +74 -70
  37. data/lib/vagrant-azure/provisioner/chef-solo.rb +178 -177
  38. data/lib/vagrant-azure/provisioner/puppet.rb +116 -115
  39. data/lib/vagrant-azure/version.rb +11 -10
  40. data/locales/en.yml +37 -37
  41. data/templates/provisioners/chef-solo/solo.erb +51 -51
  42. data/vagrant-azure.gemspec +59 -58
  43. metadata +48 -38
  44. data/lib/vagrant-azure/command/rdp/command.rb +0 -21
  45. data/lib/vagrant-azure/communication/powershell.rb +0 -41
  46. data/lib/vagrant-azure/monkey_patch/machine.rb +0 -22
  47. data/lib/vagrant-azure/provisioner/shell.rb +0 -83
  48. data/lib/vagrant-azure/scripts/check_winrm.ps1 +0 -47
  49. data/lib/vagrant-azure/scripts/export_vm.ps1 +0 -31
  50. data/lib/vagrant-azure/scripts/file_sync.ps1 +0 -145
  51. data/lib/vagrant-azure/scripts/host_info.ps1 +0 -25
  52. data/lib/vagrant-azure/scripts/hyperv_manager.ps1 +0 -36
  53. data/lib/vagrant-azure/scripts/run_in_remote.ps1 +0 -32
  54. data/lib/vagrant-azure/scripts/upload_file.ps1 +0 -95
  55. data/lib/vagrant-azure/scripts/utils/create_session.ps1 +0 -34
  56. data/lib/vagrant-azure/scripts/utils/write_messages.ps1 +0 -18
data/Rakefile CHANGED
@@ -1,14 +1,15 @@
1
- #--------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Open Technologies, Inc.
3
- # All Rights Reserved. Licensed under the Apache 2.0 License.
4
- #--------------------------------------------------------------------------
5
-
6
- require 'rubygems'
7
- require 'bundler/setup'
8
-
9
- $stdout.sync = true
10
- $stderr.sync = true
11
-
12
- Dir.chdir(File.expand_path('../', __FILE__))
13
-
14
- Bundler::GemHelper.install_tasks
1
+ #--------------------------------------------------------------------------
2
+ # Copyright (c) Microsoft Open Technologies, Inc.
3
+ # All Rights Reserved. Licensed under the Apache License, Version 2.0.
4
+ # See License.txt in the project root for license information.
5
+ #--------------------------------------------------------------------------
6
+
7
+ require 'rubygems'
8
+ require 'bundler/setup'
9
+
10
+ $stdout.sync = true
11
+ $stderr.sync = true
12
+
13
+ Dir.chdir(File.expand_path('../', __FILE__))
14
+
15
+ Bundler::GemHelper.install_tasks
data/lib/vagrant-azure.rb CHANGED
@@ -1,33 +1,31 @@
1
- #--------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Open Technologies, Inc.
3
- # All Rights Reserved. Licensed under the Apache 2.0 License.
4
- #--------------------------------------------------------------------------
5
- require 'pathname'
6
- require 'vagrant-azure/plugin'
7
-
8
- module VagrantPlugins
9
- module WinAzure
10
- lib_path = Pathname.new(File.expand_path('../vagrant-azure', __FILE__))
11
- autoload :Action, lib_path.join('action')
12
- autoload :Errors, lib_path.join('errors')
13
- autoload :Driver, lib_path.join('driver')
14
-
15
- # Load a communicator for Windows guest
16
- require lib_path.join("communication/powershell")
17
-
18
- require lib_path.join('provisioner/puppet')
19
- require lib_path.join('provisioner/chef-solo')
20
- require lib_path.join('provisioner/shell')
21
-
22
- monkey_patch = Pathname.new(File.expand_path("../vagrant-azure/monkey_patch", __FILE__))
23
- # Monkey Patch the core Hyper-V vagrant with the following
24
- require monkey_patch.join("machine")
25
-
26
- # This returns the path to the source of this plugin.
27
- #
28
- # @return [Pathname]
29
- def self.source_root
30
- @source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
31
- end
32
- end
33
- end
1
+ #--------------------------------------------------------------------------
2
+ # Copyright (c) Microsoft Open Technologies, Inc.
3
+ # All Rights Reserved. Licensed under the Apache License, Version 2.0.
4
+ # See License.txt in the project root for license information.
5
+ #--------------------------------------------------------------------------
6
+ require 'pathname'
7
+ require 'vagrant-azure/plugin'
8
+
9
+ module VagrantPlugins
10
+ module WinAzure
11
+ lib_path = Pathname.new(File.expand_path('../vagrant-azure', __FILE__))
12
+ autoload :Action, lib_path.join('action')
13
+ autoload :Errors, lib_path.join('errors')
14
+ autoload :Driver, lib_path.join('driver')
15
+
16
+ Vagrant.plugin('2').manager.communicators[:winrm]
17
+ require 'kconv'
18
+ require lib_path.join('monkey_patch/azure')
19
+ require lib_path.join('monkey_patch/winrm')
20
+
21
+ CLOUD_SERVICE_SEMAPHORE = Mutex.new
22
+
23
+
24
+ # This returns the path to the source of this plugin.
25
+ #
26
+ # @return [Pathname]
27
+ def self.source_root
28
+ @source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
29
+ end
30
+ end
31
+ end
@@ -1,243 +1,267 @@
1
- #--------------------------------------------------------------------------
2
- # Copyright (c) Microsoft Open Technologies, Inc.
3
- # All Rights Reserved. Licensed under the Apache 2.0 License.
4
- #--------------------------------------------------------------------------
5
- require 'pathname'
6
-
7
- require 'vagrant/action/builder'
8
-
9
- module VagrantPlugins
10
- module WinAzure
11
- module Action
12
- # Include the built-in modules so we can use them as top-level things.
13
- include Vagrant::Action::Builtin
14
-
15
- # This action is called to halt the remote machine.
16
- def self.action_halt
17
- Vagrant::Action::Builder.new.tap do |b|
18
- b.use ConfigValidate
19
- b.use Call, IsState, :NotCreated do |env, b2|
20
- if env[:result]
21
- b2.use Message, I18n.t('vagrant_azure.not_created')
22
- next
23
- end
24
-
25
- b2.use ConnectAzure
26
- b2.use StopInstance
27
- end
28
- end
29
- end
30
-
31
- # This action is called to terminate the remote machine.
32
- def self.action_destroy
33
- Vagrant::Action::Builder.new.tap do |b|
34
- b.use Call, DestroyConfirm do |env, b2|
35
- if env[:result]
36
- b2.use ConfigValidate
37
- b.use Call, IsState, :NotCreated do |env2, b3|
38
- if env2[:result]
39
- b3.use Message, I18n.t('vagrant_azure.not_created')
40
- next
41
- end
42
- end
43
-
44
- b2.use ConnectAzure
45
- b2.use TerminateInstance
46
- b2.use ProvisionerCleanup if defined?(ProvisionerCleanup)
47
- else
48
- env[:machine].id =~ /@/
49
- b2.use Message, I18n.t(
50
- 'vagrant_azure.will_not_destroy',
51
- :name => $`
52
- )
53
- end
54
- end
55
- end
56
- end
57
-
58
- # This action is called when `vagrant provision` is called.
59
- def self.action_provision
60
- Vagrant::Action::Builder.new.tap do |b|
61
- b.use ConnectAzure
62
- b.use ConfigValidate
63
- b.use Call, IsState, :NotCreated do |env, b2|
64
- if env[:result]
65
- b2.use Message, I18n.t('vagrant_azure.not_created')
66
- next
67
- end
68
- b2.use Provision
69
- end
70
- end
71
- end
72
-
73
- # This action is called to read the SSH info of the machine. The
74
- # resulting state is expected to be put into the `:machine_ssh_info` key.
75
- def self.action_read_ssh_info
76
- Vagrant::Action::Builder.new.tap do |b|
77
- b.use ConfigValidate
78
- b.use ConnectAzure
79
- b.use ReadSSHInfo, 22
80
- end
81
- end
82
-
83
- def self.action_read_rdp_info
84
- Vagrant::Action::Builder.new.tap do |b|
85
- b.use ConfigValidate
86
- b.use ConnectAzure
87
- b.use ReadSSHInfo, 3389
88
- end
89
- end
90
-
91
- def self.action_read_winrm_info
92
- Vagrant::Action::Builder.new.tap do |b|
93
- b.use ConfigValidate
94
- b.use ConnectAzure
95
- b.use ReadSSHInfo, 5986
96
- end
97
- end
98
-
99
- def self.action_read_state
100
- Vagrant::Action::Builder.new.tap do |b|
101
- b.use ConfigValidate
102
- b.use ConnectAzure
103
- b.use ReadState
104
- end
105
- end
106
-
107
- # This action is called to SSH into the machine
108
- def self.action_ssh
109
- Vagrant::Action::Builder.new.tap do |b|
110
- b.use ConfigValidate
111
- b.use Call, IsState, :NotCreated do |env, b2|
112
- if env[:result]
113
- b2.use Message, I18n.t('vagrant_azure.not_created')
114
- next
115
- end
116
-
117
- b2.use SSHExec
118
- end
119
- end
120
- end
121
-
122
- def self.action_rdp
123
- Vagrant::Action::Builder.new.tap do |b|
124
- b.use ConfigValidate
125
- b.use Call, IsState, :NotCreated do |env1, b1|
126
- if env1[:result]
127
- b1.use Message, I18n.t('vagrant_azure.not_created')
128
- next
129
- end
130
-
131
- b1.use Call, IsState, :ReadyRole do |env2, b2|
132
- if !env2[:result]
133
- b2.use Message, I18n.t('vagrant_azure.rdp_not_ready')
134
- next
135
- end
136
-
137
- b2.use Rdp
138
- end
139
- end
140
- end
141
- end
142
-
143
- def self.action_ssh_run
144
- Vagrant::Action::Builder.new.tap do |b|
145
- b.use ConfigValidate
146
- b.use Call, IsState, :NotCreated do |env, b2|
147
- if env[:result]
148
- b2.use Message, I18n.t('vagrant_azure.not_created')
149
- next
150
- end
151
-
152
- b2.use SSHRun
153
- end
154
- end
155
- end
156
-
157
- def self.action_prepare_boot
158
- Vagrant::Action::Builder.new.tap do |b|
159
- b.use Call, WaitForState, :ReadyRole do |env, b1|
160
- if env[:result]
161
- env[:machine].id =~ /@/
162
- b1.use Message, I18n.t(
163
- 'vagrant_azure.vm_started', :name => $`
164
- )
165
- b1.use WaitForCommunicate
166
- b1.use Provision
167
- b1.use SyncFolders
168
- end
169
- end
170
- end
171
- end
172
-
173
- # This action is called to bring the box up from nothing
174
- def self.action_up
175
- Vagrant::Action::Builder.new.tap do |b|
176
- b.use HandleBox
177
- b.use ConfigValidate
178
- b.use ConnectAzure
179
-
180
- b.use Call, IsState, :NotCreated do |env1, b1|
181
- if !env1[:result]
182
- b1.use Call, IsState, :StoppedDeallocated do |env2, b2|
183
- if env2[:result]
184
- b2.use StartInstance # start this instance again
185
- b2.use action_prepare_boot
186
- else
187
- b2.use Message, I18n.t(
188
- 'vagrant_azure.already_status', :status => 'created'
189
- )
190
- end
191
- end
192
- else
193
- b1.use RunInstance # Launch a new instance
194
- b1.use action_prepare_boot
195
- end
196
- end
197
- end
198
- end
199
-
200
- def self.action_reload
201
- Vagrant::Action::Builder.new.tap do |b|
202
- b.use ConfigValidate
203
- b.use ConnectAzure
204
- b.use Call, IsState, :NotCreated do |env, b2|
205
- if env[:result]
206
- b2.use Message, I18n.t('vagrant_azure.not_created')
207
- next
208
- end
209
-
210
- b2.use action_halt
211
- b2.use Call, WaitForState, :StoppedDeallocated do |env2, b3|
212
- if env2[:result]
213
- env2[:machine].id =~ /@/
214
- b3.use Message, I18n.t('vagrant_azure.vm_stopped', name: $`)
215
- b3.use action_up
216
- else
217
- b3.use Message, 'Not able to stop the machine. Please retry.'
218
- end
219
- end
220
- end
221
- end
222
- end
223
-
224
- # The autoload farm
225
- action_root = Pathname.new(File.expand_path('../action', __FILE__))
226
- autoload :ConnectAzure, action_root.join('connect_azure')
227
- autoload :Provision, action_root.join('provision')
228
- autoload :Rdp, action_root.join('rdp')
229
- autoload :ReadSSHInfo, action_root.join('read_ssh_info')
230
- autoload :ReadState, action_root.join('read_state')
231
- autoload :RestartVM, action_root.join('restart_vm')
232
- autoload :RunInstance, action_root.join('run_instance')
233
- autoload :StartInstance, action_root.join('start_instance')
234
- autoload :StopInstance, action_root.join('stop_instance')
235
- autoload :SyncFolders, action_root.join('sync_folders')
236
- autoload :TerminateInstance, action_root.join('terminate_instance')
237
- # autoload :TimedProvision, action_root.join('timed_provision')
238
- # autoload :WarnNetworks, action_root.join('warn_networks')
239
- autoload :WaitForState, action_root.join('wait_for_state')
240
- autoload :WaitForCommunicate, action_root.join('wait_for_communicate')
241
- end
242
- end
243
- end
1
+ #--------------------------------------------------------------------------
2
+ # Copyright (c) Microsoft Open Technologies, Inc.
3
+ # All Rights Reserved. Licensed under the Apache License, Version 2.0.
4
+ # See License.txt in the project root for license information.
5
+ #--------------------------------------------------------------------------
6
+ require 'pathname'
7
+
8
+ require 'vagrant/action/builder'
9
+
10
+ module VagrantPlugins
11
+ module WinAzure
12
+ module Action
13
+ # Include the built-in modules so we can use them as top-level things.
14
+ include Vagrant::Action::Builtin
15
+
16
+ # This action is called to halt the remote machine.
17
+ def self.action_halt
18
+ Vagrant::Action::Builder.new.tap do |b|
19
+ b.use ConfigValidate
20
+ b.use Call, IsState, :NotCreated do |env, b2|
21
+ if env[:result]
22
+ b2.use Message, I18n.t('vagrant_azure.not_created')
23
+ next
24
+ end
25
+
26
+ b2.use ConnectAzure
27
+ b2.use StopInstance
28
+ end
29
+ end
30
+ end
31
+
32
+ # This action is called to terminate the remote machine.
33
+ def self.action_destroy
34
+ Vagrant::Action::Builder.new.tap do |b|
35
+ b.use Call, DestroyConfirm do |env, b2|
36
+ if env[:result]
37
+ b2.use ConfigValidate
38
+ b2.use Call, IsState, :NotCreated do |env2, b3|
39
+ if env2[:result]
40
+ b3.use Message, I18n.t('vagrant_azure.not_created')
41
+ next
42
+ end
43
+ end
44
+
45
+ b2.use ConnectAzure
46
+ b2.use TerminateInstance
47
+ b2.use ProvisionerCleanup if defined?(ProvisionerCleanup)
48
+ else
49
+ env[:machine].id =~ /@/
50
+ b2.use Message, I18n.t(
51
+ 'vagrant_azure.will_not_destroy',
52
+ :name => $`
53
+ )
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ # This action is called when `vagrant provision` is called.
60
+ def self.action_provision
61
+ Vagrant::Action::Builder.new.tap do |b|
62
+ b.use ConnectAzure
63
+ b.use ConfigValidate
64
+ b.use OSType
65
+ b.use ReadWinrmInfo
66
+ b.use Call, IsState, :NotCreated do |env, b2|
67
+ if env[:result]
68
+ b2.use Message, I18n.t('vagrant_azure.not_created')
69
+ next
70
+ end
71
+
72
+ b2.use Provision
73
+ b2.use SyncFolders
74
+ end
75
+ end
76
+ end
77
+
78
+ # This action is called to read the SSH info of the machine. The
79
+ # resulting state is expected to be put into the `:machine_ssh_info` key.
80
+ def self.action_read_ssh_info
81
+ Vagrant::Action::Builder.new.tap do |b|
82
+ b.use ConfigValidate
83
+ b.use ConnectAzure
84
+ b.use ReadSSHInfo, 22
85
+ end
86
+ end
87
+
88
+ def self.action_read_rdp_info
89
+ Vagrant::Action::Builder.new.tap do |b|
90
+ b.use ConfigValidate
91
+ b.use ConnectAzure
92
+ b.use ReadSSHInfo, 3389
93
+ end
94
+ end
95
+
96
+ def self.action_read_winrm_info
97
+ Vagrant::Action::Builder.new.tap do |b|
98
+ b.use ConfigValidate
99
+ b.use ConnectAzure
100
+ b.use OSType
101
+ b.use ReadWinrmInfo
102
+ end
103
+ end
104
+
105
+ def self.action_read_state
106
+ Vagrant::Action::Builder.new.tap do |b|
107
+ b.use ConfigValidate
108
+ b.use ConnectAzure
109
+ b.use ReadState
110
+ end
111
+ end
112
+
113
+ # This action is called to SSH into the machine
114
+ def self.action_ssh
115
+ Vagrant::Action::Builder.new.tap do |b|
116
+ b.use ConnectAzure
117
+ b.use ConfigValidate
118
+ b.use Call, IsState, :NotCreated do |env, b2|
119
+ if env[:result]
120
+ b2.use Message, I18n.t('vagrant_azure.not_created')
121
+ next
122
+ end
123
+
124
+ b2.use SSHExec
125
+ end
126
+ end
127
+ end
128
+
129
+ def self.action_powershell_run
130
+ Vagrant::Action::Builder.new.tap do |b|
131
+ b.use action_read_winrm_info
132
+ b.use Call, IsState, :NotCreated do |env, b2|
133
+ if env[:result]
134
+ b2.use Message, I18n.t('vagrant_azure.not_created')
135
+ next
136
+ end
137
+
138
+ b2.use PowerShellRun
139
+ end
140
+ end
141
+ end
142
+
143
+ def self.action_rdp
144
+ Vagrant::Action::Builder.new.tap do |b|
145
+ b.use ConnectAzure
146
+ b.use ConfigValidate
147
+ b.use Call, IsState, :NotCreated do |env1, b1|
148
+ if env1[:result]
149
+ b1.use Message, I18n.t('vagrant_azure.not_created')
150
+ next
151
+ end
152
+
153
+ b1.use Call, IsState, :ReadyRole do |env2, b2|
154
+ if !env2[:result]
155
+ b2.use Message, I18n.t('vagrant_azure.rdp_not_ready')
156
+ next
157
+ end
158
+
159
+ b2.use Rdp
160
+ end
161
+ end
162
+ end
163
+ end
164
+
165
+ def self.action_ssh_run
166
+ Vagrant::Action::Builder.new.tap do |b|
167
+ b.use ConnectAzure
168
+ b.use ConfigValidate
169
+ b.use Call, IsState, :NotCreated do |env, b2|
170
+ if env[:result]
171
+ b2.use Message, I18n.t('vagrant_azure.not_created')
172
+ next
173
+ end
174
+
175
+ b2.use SSHRun
176
+ end
177
+ end
178
+ end
179
+
180
+ def self.action_prepare_boot
181
+ Vagrant::Action::Builder.new.tap do |b|
182
+ b.use Call, WaitForState, :ReadyRole do |env, b1|
183
+ if env[:result]
184
+ env[:machine].id =~ /@/
185
+ b1.use Message, I18n.t(
186
+ 'vagrant_azure.vm_started', :name => $`
187
+ )
188
+ b1.use action_read_winrm_info
189
+ b1.use WaitForCommunicate
190
+ b1.use action_provision
191
+ end
192
+ end
193
+ end
194
+ end
195
+
196
+ # This action is called to bring the box up from nothing
197
+ def self.action_up
198
+ Vagrant::Action::Builder.new.tap do |b|
199
+ b.use HandleBox
200
+ b.use ConfigValidate
201
+ b.use ConnectAzure
202
+ b.use OSType
203
+ b.use Call, IsState, :NotCreated do |env1, b1|
204
+ if !env1[:result]
205
+ b1.use Call, IsState, :StoppedDeallocated do |env2, b2|
206
+ if env2[:result]
207
+ b2.use StartInstance # start this instance again
208
+ b2.use action_prepare_boot
209
+ else
210
+ b2.use Message, I18n.t(
211
+ 'vagrant_azure.already_status', :status => 'created'
212
+ )
213
+ end
214
+ end
215
+ else
216
+ b1.use RunInstance # Launch a new instance
217
+ b1.use action_prepare_boot
218
+ end
219
+ end
220
+ end
221
+ end
222
+
223
+ def self.action_reload
224
+ Vagrant::Action::Builder.new.tap do |b|
225
+ b.use ConfigValidate
226
+ b.use ConnectAzure
227
+ b.use Call, IsState, :NotCreated do |env, b2|
228
+ if env[:result]
229
+ b2.use Message, I18n.t('vagrant_azure.not_created')
230
+ next
231
+ end
232
+
233
+ b2.use action_halt
234
+ b2.use Call, WaitForState, :StoppedDeallocated do |env2, b3|
235
+ if env2[:result]
236
+ env2[:machine].id =~ /@/
237
+ b3.use Message, I18n.t('vagrant_azure.vm_stopped', name: $`)
238
+ b3.use action_up
239
+ else
240
+ b3.use Message, 'Not able to stop the machine. Please retry.'
241
+ end
242
+ end
243
+ end
244
+ end
245
+ end
246
+
247
+ # The autoload farm
248
+ action_root = Pathname.new(File.expand_path('../action', __FILE__))
249
+ autoload :ConnectAzure, action_root.join('connect_azure')
250
+ autoload :Rdp, action_root.join('rdp')
251
+ autoload :ReadSSHInfo, action_root.join('read_ssh_info')
252
+ autoload :ReadWinrmInfo, action_root.join('read_winrm_info')
253
+ autoload :PowerShellRun, action_root.join('powershell_run')
254
+ autoload :Provision, action_root.join('provision')
255
+ autoload :OSType, action_root.join('os_type')
256
+ autoload :ReadState, action_root.join('read_state')
257
+ autoload :RestartVM, action_root.join('restart_vm')
258
+ autoload :RunInstance, action_root.join('run_instance')
259
+ autoload :StartInstance, action_root.join('start_instance')
260
+ autoload :StopInstance, action_root.join('stop_instance')
261
+ autoload :SyncFolders, action_root.join('sync_folders')
262
+ autoload :TerminateInstance, action_root.join('terminate_instance')
263
+ autoload :WaitForState, action_root.join('wait_for_state')
264
+ autoload :WaitForCommunicate, action_root.join('wait_for_communicate')
265
+ end
266
+ end
267
+ end