vagrant-vsphere 0.6.0 → 0.7.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/.gitignore +5 -5
- data/Gemfile +9 -9
- data/LICENSE.txt +23 -23
- data/README.md +175 -164
- data/Rakefile +16 -16
- data/example_box/metadata.json +2 -2
- data/lib/vSphere/action/clone.rb +127 -83
- data/lib/vSphere/action/close_vsphere.rb +23 -23
- data/lib/vSphere/action/connect_vsphere.rb +25 -25
- data/lib/vSphere/action/destroy.rb +37 -37
- data/lib/vSphere/action/get_ssh_info.rb +37 -37
- data/lib/vSphere/action/get_state.rb +45 -45
- data/lib/vSphere/action/is_created.rb +15 -15
- data/lib/vSphere/action/is_running.rb +20 -20
- data/lib/vSphere/action/message_already_created.rb +17 -17
- data/lib/vSphere/action/message_not_created.rb +17 -17
- data/lib/vSphere/action/message_not_running.rb +18 -18
- data/lib/vSphere/action/power_off.rb +27 -27
- data/lib/vSphere/action/power_on.rb +31 -31
- data/lib/vSphere/action/sync_folders.rb +97 -81
- data/lib/vSphere/action.rb +172 -172
- data/lib/vSphere/config.rb +37 -37
- data/lib/vSphere/errors.rb +10 -10
- data/lib/vSphere/plugin.rb +29 -29
- data/lib/vSphere/provider.rb +38 -38
- data/lib/vSphere/util/machine_helpers.rb +15 -15
- data/lib/vSphere/util/vim_helpers.rb +36 -36
- data/lib/vSphere/version.rb +4 -4
- data/lib/vagrant-vsphere.rb +17 -17
- data/locales/en.yml +65 -65
- data/spec/action_spec.rb +116 -116
- data/spec/clone_spec.rb +31 -31
- data/spec/connect_vsphere_spec.rb +23 -23
- data/spec/destroy_spec.rb +30 -30
- data/spec/get_ssh_info_spec.rb +30 -30
- data/spec/get_state_spec.rb +54 -54
- data/spec/is_created_spec.rb +28 -28
- data/spec/spec_helper.rb +98 -97
- data/vSphere.gemspec +27 -27
- metadata +21 -5
- checksums.yaml +0 -15
data/lib/vSphere/action.rb
CHANGED
@@ -1,172 +1,172 @@
|
|
1
|
-
require 'vagrant'
|
2
|
-
require 'vagrant/action/builder'
|
3
|
-
|
4
|
-
module VagrantPlugins
|
5
|
-
module VSphere
|
6
|
-
module Action
|
7
|
-
include Vagrant::Action::Builtin
|
8
|
-
|
9
|
-
#Vagrant commands
|
10
|
-
def self.action_destroy
|
11
|
-
Vagrant::Action::Builder.new.tap do |b|
|
12
|
-
b.use ConfigValidate
|
13
|
-
b.use ConnectVSphere
|
14
|
-
b.use Call, IsRunning do |env, b2|
|
15
|
-
if [:result]
|
16
|
-
b2.use PowerOff
|
17
|
-
next
|
18
|
-
end
|
19
|
-
end
|
20
|
-
b.use Destroy
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.action_provision
|
25
|
-
Vagrant::Action::Builder.new.tap do |b|
|
26
|
-
b.use ConfigValidate
|
27
|
-
b.use Call, IsCreated do |env, b2|
|
28
|
-
if !env[:result]
|
29
|
-
b2.use MessageNotCreated
|
30
|
-
next
|
31
|
-
end
|
32
|
-
|
33
|
-
b2.use Call, IsRunning do |env, b3|
|
34
|
-
if !env[:result]
|
35
|
-
b3.use MessageNotRunning
|
36
|
-
next
|
37
|
-
end
|
38
|
-
|
39
|
-
b3.use Provision
|
40
|
-
b3.use SyncFolders
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.action_ssh
|
47
|
-
Vagrant::Action::Builder.new.tap do |b|
|
48
|
-
b.use ConfigValidate
|
49
|
-
b.use Call, IsCreated do |env, b2|
|
50
|
-
if !env[:result]
|
51
|
-
b2.use MessageNotCreated
|
52
|
-
next
|
53
|
-
end
|
54
|
-
|
55
|
-
b2.use Call, IsRunning do |env, b3|
|
56
|
-
if !env[:result]
|
57
|
-
b3.use MessageNotRunning
|
58
|
-
next
|
59
|
-
end
|
60
|
-
|
61
|
-
b3.use SSHExec
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def self.action_ssh_run
|
68
|
-
Vagrant::Action::Builder.new.tap do |b|
|
69
|
-
b.use ConfigValidate
|
70
|
-
b.use Call, IsCreated do |env, b2|
|
71
|
-
if !env[:result]
|
72
|
-
b2.use MessageNotCreated
|
73
|
-
next
|
74
|
-
end
|
75
|
-
|
76
|
-
b2.use Call, IsRunning do |env, b3|
|
77
|
-
if !env[:result]
|
78
|
-
b3.use MessageNotRunning
|
79
|
-
next
|
80
|
-
end
|
81
|
-
|
82
|
-
b3.use SSHRun
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def self.action_up
|
89
|
-
Vagrant::Action::Builder.new.tap do |b|
|
90
|
-
b.use ConfigValidate
|
91
|
-
b.use ConnectVSphere
|
92
|
-
b.use Call, IsCreated do |env, b2|
|
93
|
-
if env[:result]
|
94
|
-
b2.use MessageAlreadyCreated
|
95
|
-
next
|
96
|
-
end
|
97
|
-
|
98
|
-
b2.use Clone
|
99
|
-
end
|
100
|
-
b.use Call, IsRunning do |env, b2|
|
101
|
-
if !env[:result]
|
102
|
-
b2.use PowerOn
|
103
|
-
end
|
104
|
-
end
|
105
|
-
b.use CloseVSphere
|
106
|
-
b.use Provision
|
107
|
-
b.use SyncFolders
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
def self.action_halt
|
112
|
-
Vagrant::Action::Builder.new.tap do |b|
|
113
|
-
b.use ConfigValidate
|
114
|
-
b.use ConnectVSphere
|
115
|
-
b.use Call, IsCreated do |env, b2|
|
116
|
-
if !env[:result]
|
117
|
-
b2.use MessageNotCreated
|
118
|
-
next
|
119
|
-
end
|
120
|
-
|
121
|
-
b2.use Call, IsRunning do |env, b3|
|
122
|
-
if !env[:result]
|
123
|
-
b3.use MessageNotRunning
|
124
|
-
next
|
125
|
-
end
|
126
|
-
|
127
|
-
b3.use PowerOff
|
128
|
-
end
|
129
|
-
end
|
130
|
-
b.use CloseVSphere
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
#vSphere specific actions
|
135
|
-
def self.action_get_state
|
136
|
-
Vagrant::Action::Builder.new.tap do |b|
|
137
|
-
b.use ConfigValidate
|
138
|
-
b.use ConnectVSphere
|
139
|
-
b.use GetState
|
140
|
-
b.use CloseVSphere
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
def self.action_get_ssh_info
|
145
|
-
Vagrant::Action::Builder.new.tap do |b|
|
146
|
-
b.use ConfigValidate
|
147
|
-
b.use ConnectVSphere
|
148
|
-
b.use GetSshInfo
|
149
|
-
b.use CloseVSphere
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
#autoload
|
154
|
-
action_root = Pathname.new(File.expand_path('../action', __FILE__))
|
155
|
-
autoload :Clone, action_root.join('clone')
|
156
|
-
autoload :CloseVSphere, action_root.join('close_vsphere')
|
157
|
-
autoload :ConnectVSphere, action_root.join('connect_vsphere')
|
158
|
-
autoload :Destroy, action_root.join('destroy')
|
159
|
-
autoload :GetSshInfo, action_root.join('get_ssh_info')
|
160
|
-
autoload :GetState, action_root.join('get_state')
|
161
|
-
autoload :IsCreated, action_root.join('is_created')
|
162
|
-
autoload :IsRunning, action_root.join('is_running')
|
163
|
-
autoload :MessageAlreadyCreated, action_root.join('message_already_created')
|
164
|
-
autoload :MessageNotCreated, action_root.join('message_not_created')
|
165
|
-
autoload :MessageNotRunning, action_root.join('message_not_running')
|
166
|
-
autoload :PowerOff, action_root.join('power_off')
|
167
|
-
autoload :PowerOn, action_root.join('power_on')
|
168
|
-
autoload :SyncFolders, action_root.join('sync_folders')
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|
1
|
+
require 'vagrant'
|
2
|
+
require 'vagrant/action/builder'
|
3
|
+
|
4
|
+
module VagrantPlugins
|
5
|
+
module VSphere
|
6
|
+
module Action
|
7
|
+
include Vagrant::Action::Builtin
|
8
|
+
|
9
|
+
#Vagrant commands
|
10
|
+
def self.action_destroy
|
11
|
+
Vagrant::Action::Builder.new.tap do |b|
|
12
|
+
b.use ConfigValidate
|
13
|
+
b.use ConnectVSphere
|
14
|
+
b.use Call, IsRunning do |env, b2|
|
15
|
+
if [:result]
|
16
|
+
b2.use PowerOff
|
17
|
+
next
|
18
|
+
end
|
19
|
+
end
|
20
|
+
b.use Destroy
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.action_provision
|
25
|
+
Vagrant::Action::Builder.new.tap do |b|
|
26
|
+
b.use ConfigValidate
|
27
|
+
b.use Call, IsCreated do |env, b2|
|
28
|
+
if !env[:result]
|
29
|
+
b2.use MessageNotCreated
|
30
|
+
next
|
31
|
+
end
|
32
|
+
|
33
|
+
b2.use Call, IsRunning do |env, b3|
|
34
|
+
if !env[:result]
|
35
|
+
b3.use MessageNotRunning
|
36
|
+
next
|
37
|
+
end
|
38
|
+
|
39
|
+
b3.use Provision
|
40
|
+
b3.use SyncFolders
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.action_ssh
|
47
|
+
Vagrant::Action::Builder.new.tap do |b|
|
48
|
+
b.use ConfigValidate
|
49
|
+
b.use Call, IsCreated do |env, b2|
|
50
|
+
if !env[:result]
|
51
|
+
b2.use MessageNotCreated
|
52
|
+
next
|
53
|
+
end
|
54
|
+
|
55
|
+
b2.use Call, IsRunning do |env, b3|
|
56
|
+
if !env[:result]
|
57
|
+
b3.use MessageNotRunning
|
58
|
+
next
|
59
|
+
end
|
60
|
+
|
61
|
+
b3.use SSHExec
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.action_ssh_run
|
68
|
+
Vagrant::Action::Builder.new.tap do |b|
|
69
|
+
b.use ConfigValidate
|
70
|
+
b.use Call, IsCreated do |env, b2|
|
71
|
+
if !env[:result]
|
72
|
+
b2.use MessageNotCreated
|
73
|
+
next
|
74
|
+
end
|
75
|
+
|
76
|
+
b2.use Call, IsRunning do |env, b3|
|
77
|
+
if !env[:result]
|
78
|
+
b3.use MessageNotRunning
|
79
|
+
next
|
80
|
+
end
|
81
|
+
|
82
|
+
b3.use SSHRun
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def self.action_up
|
89
|
+
Vagrant::Action::Builder.new.tap do |b|
|
90
|
+
b.use ConfigValidate
|
91
|
+
b.use ConnectVSphere
|
92
|
+
b.use Call, IsCreated do |env, b2|
|
93
|
+
if env[:result]
|
94
|
+
b2.use MessageAlreadyCreated
|
95
|
+
next
|
96
|
+
end
|
97
|
+
|
98
|
+
b2.use Clone
|
99
|
+
end
|
100
|
+
b.use Call, IsRunning do |env, b2|
|
101
|
+
if !env[:result]
|
102
|
+
b2.use PowerOn
|
103
|
+
end
|
104
|
+
end
|
105
|
+
b.use CloseVSphere
|
106
|
+
b.use Provision
|
107
|
+
b.use SyncFolders
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def self.action_halt
|
112
|
+
Vagrant::Action::Builder.new.tap do |b|
|
113
|
+
b.use ConfigValidate
|
114
|
+
b.use ConnectVSphere
|
115
|
+
b.use Call, IsCreated do |env, b2|
|
116
|
+
if !env[:result]
|
117
|
+
b2.use MessageNotCreated
|
118
|
+
next
|
119
|
+
end
|
120
|
+
|
121
|
+
b2.use Call, IsRunning do |env, b3|
|
122
|
+
if !env[:result]
|
123
|
+
b3.use MessageNotRunning
|
124
|
+
next
|
125
|
+
end
|
126
|
+
|
127
|
+
b3.use PowerOff
|
128
|
+
end
|
129
|
+
end
|
130
|
+
b.use CloseVSphere
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
#vSphere specific actions
|
135
|
+
def self.action_get_state
|
136
|
+
Vagrant::Action::Builder.new.tap do |b|
|
137
|
+
b.use ConfigValidate
|
138
|
+
b.use ConnectVSphere
|
139
|
+
b.use GetState
|
140
|
+
b.use CloseVSphere
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
def self.action_get_ssh_info
|
145
|
+
Vagrant::Action::Builder.new.tap do |b|
|
146
|
+
b.use ConfigValidate
|
147
|
+
b.use ConnectVSphere
|
148
|
+
b.use GetSshInfo
|
149
|
+
b.use CloseVSphere
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
#autoload
|
154
|
+
action_root = Pathname.new(File.expand_path('../action', __FILE__))
|
155
|
+
autoload :Clone, action_root.join('clone')
|
156
|
+
autoload :CloseVSphere, action_root.join('close_vsphere')
|
157
|
+
autoload :ConnectVSphere, action_root.join('connect_vsphere')
|
158
|
+
autoload :Destroy, action_root.join('destroy')
|
159
|
+
autoload :GetSshInfo, action_root.join('get_ssh_info')
|
160
|
+
autoload :GetState, action_root.join('get_state')
|
161
|
+
autoload :IsCreated, action_root.join('is_created')
|
162
|
+
autoload :IsRunning, action_root.join('is_running')
|
163
|
+
autoload :MessageAlreadyCreated, action_root.join('message_already_created')
|
164
|
+
autoload :MessageNotCreated, action_root.join('message_not_created')
|
165
|
+
autoload :MessageNotRunning, action_root.join('message_not_running')
|
166
|
+
autoload :PowerOff, action_root.join('power_off')
|
167
|
+
autoload :PowerOn, action_root.join('power_on')
|
168
|
+
autoload :SyncFolders, action_root.join('sync_folders')
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
data/lib/vSphere/config.rb
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
require 'vagrant'
|
2
|
-
|
3
|
-
module VagrantPlugins
|
4
|
-
module VSphere
|
5
|
-
class Config < Vagrant.plugin('2', :config)
|
6
|
-
attr_accessor :host
|
7
|
-
attr_accessor :insecure
|
8
|
-
attr_accessor :user
|
9
|
-
attr_accessor :password
|
10
|
-
attr_accessor :data_center_name
|
11
|
-
attr_accessor :compute_resource_name
|
12
|
-
attr_accessor :resource_pool_name
|
13
|
-
attr_accessor :clone_from_vm
|
14
|
-
attr_accessor :template_name
|
15
|
-
attr_accessor :name
|
16
|
-
attr_accessor :customization_spec_name
|
17
|
-
attr_accessor :data_store_name
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
errors <<
|
25
|
-
errors << I18n.t('config.
|
26
|
-
errors << I18n.t('config.
|
27
|
-
errors << I18n.t('config.template') if template_name.nil?
|
28
|
-
|
29
|
-
#These are only required if we're cloning from an actual template
|
30
|
-
errors << I18n.t('config.compute_resource') if compute_resource_name.nil? and not clone_from_vm
|
31
|
-
errors << I18n.t('config.resource_pool') if resource_pool_name.nil? and not clone_from_vm
|
32
|
-
|
33
|
-
{ 'vSphere Provider' => errors }
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
1
|
+
require 'vagrant'
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module VSphere
|
5
|
+
class Config < Vagrant.plugin('2', :config)
|
6
|
+
attr_accessor :host
|
7
|
+
attr_accessor :insecure
|
8
|
+
attr_accessor :user
|
9
|
+
attr_accessor :password
|
10
|
+
attr_accessor :data_center_name
|
11
|
+
attr_accessor :compute_resource_name
|
12
|
+
attr_accessor :resource_pool_name
|
13
|
+
attr_accessor :clone_from_vm
|
14
|
+
attr_accessor :template_name
|
15
|
+
attr_accessor :name
|
16
|
+
attr_accessor :customization_spec_name
|
17
|
+
attr_accessor :data_store_name
|
18
|
+
attr_accessor :linked_clone
|
19
|
+
|
20
|
+
def validate(machine)
|
21
|
+
errors = _detected_errors
|
22
|
+
|
23
|
+
# TODO: add blank?
|
24
|
+
errors << I18n.t('config.host') if host.nil?
|
25
|
+
errors << I18n.t('config.user') if user.nil?
|
26
|
+
errors << I18n.t('config.password') if password.nil?
|
27
|
+
errors << I18n.t('config.template') if template_name.nil?
|
28
|
+
|
29
|
+
# These are only required if we're cloning from an actual template
|
30
|
+
errors << I18n.t('config.compute_resource') if compute_resource_name.nil? and not clone_from_vm
|
31
|
+
errors << I18n.t('config.resource_pool') if resource_pool_name.nil? and not clone_from_vm
|
32
|
+
|
33
|
+
{ 'vSphere Provider' => errors }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/vSphere/errors.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
require 'vagrant'
|
2
|
-
|
3
|
-
module VagrantPlugins
|
4
|
-
module VSphere
|
5
|
-
module Errors
|
6
|
-
class VSphereError < Vagrant::Errors::VagrantError
|
7
|
-
error_namespace('vsphere.errors')
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
1
|
+
require 'vagrant'
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module VSphere
|
5
|
+
module Errors
|
6
|
+
class VSphereError < Vagrant::Errors::VagrantError
|
7
|
+
error_namespace('vsphere.errors')
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
11
|
end
|
data/lib/vSphere/plugin.rb
CHANGED
@@ -1,30 +1,30 @@
|
|
1
|
-
require 'vagrant'
|
2
|
-
|
3
|
-
module VagrantPlugins
|
4
|
-
module VSphere
|
5
|
-
class Plugin < Vagrant.plugin('2')
|
6
|
-
name 'vsphere'
|
7
|
-
description 'Allows Vagrant to manage machines with VMWare vSphere'
|
8
|
-
|
9
|
-
config(:vsphere, :provider) do
|
10
|
-
require_relative 'config'
|
11
|
-
Config
|
12
|
-
end
|
13
|
-
|
14
|
-
provider(:vsphere) do
|
15
|
-
# TODO: add logging
|
16
|
-
setup_i18n
|
17
|
-
|
18
|
-
# Return the provider
|
19
|
-
require_relative 'provider'
|
20
|
-
Provider
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
def self.setup_i18n
|
25
|
-
I18n.load_path << File.expand_path('locales/en.yml', VSphere.source_root)
|
26
|
-
I18n.reload!
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
1
|
+
require 'vagrant'
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module VSphere
|
5
|
+
class Plugin < Vagrant.plugin('2')
|
6
|
+
name 'vsphere'
|
7
|
+
description 'Allows Vagrant to manage machines with VMWare vSphere'
|
8
|
+
|
9
|
+
config(:vsphere, :provider) do
|
10
|
+
require_relative 'config'
|
11
|
+
Config
|
12
|
+
end
|
13
|
+
|
14
|
+
provider(:vsphere) do
|
15
|
+
# TODO: add logging
|
16
|
+
setup_i18n
|
17
|
+
|
18
|
+
# Return the provider
|
19
|
+
require_relative 'provider'
|
20
|
+
Provider
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
def self.setup_i18n
|
25
|
+
I18n.load_path << File.expand_path('locales/en.yml', VSphere.source_root)
|
26
|
+
I18n.reload!
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
30
|
end
|
data/lib/vSphere/provider.rb
CHANGED
@@ -1,39 +1,39 @@
|
|
1
|
-
require 'vagrant'
|
2
|
-
|
3
|
-
module VagrantPlugins
|
4
|
-
module VSphere
|
5
|
-
class Provider < Vagrant.plugin('2', :provider)
|
6
|
-
def initialize(machine)
|
7
|
-
@machine = machine
|
8
|
-
end
|
9
|
-
|
10
|
-
def action(name)
|
11
|
-
action_method = "action_#{name}"
|
12
|
-
return Action.send(action_method) if Action.respond_to?(action_method)
|
13
|
-
nil
|
14
|
-
end
|
15
|
-
|
16
|
-
def ssh_info
|
17
|
-
env = @machine.action('get_ssh_info')
|
18
|
-
env[:machine_ssh_info]
|
19
|
-
end
|
20
|
-
|
21
|
-
def state
|
22
|
-
env = @machine.action('get_state')
|
23
|
-
|
24
|
-
state_id = env[:machine_state_id]
|
25
|
-
|
26
|
-
short = "vagrant_vsphere.states.short_#{state_id}"
|
27
|
-
long = "vagrant_vsphere.states.long_#{state_id}"
|
28
|
-
|
29
|
-
# Return the MachineState object
|
30
|
-
Vagrant::MachineState.new(state_id, short, long)
|
31
|
-
end
|
32
|
-
|
33
|
-
def to_s
|
34
|
-
id = @machine.id.nil? ? 'new' : @machine.id
|
35
|
-
"vSphere (#{id})"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
1
|
+
require 'vagrant'
|
2
|
+
|
3
|
+
module VagrantPlugins
|
4
|
+
module VSphere
|
5
|
+
class Provider < Vagrant.plugin('2', :provider)
|
6
|
+
def initialize(machine)
|
7
|
+
@machine = machine
|
8
|
+
end
|
9
|
+
|
10
|
+
def action(name)
|
11
|
+
action_method = "action_#{name}"
|
12
|
+
return Action.send(action_method) if Action.respond_to?(action_method)
|
13
|
+
nil
|
14
|
+
end
|
15
|
+
|
16
|
+
def ssh_info
|
17
|
+
env = @machine.action('get_ssh_info')
|
18
|
+
env[:machine_ssh_info]
|
19
|
+
end
|
20
|
+
|
21
|
+
def state
|
22
|
+
env = @machine.action('get_state')
|
23
|
+
|
24
|
+
state_id = env[:machine_state_id]
|
25
|
+
|
26
|
+
short = "vagrant_vsphere.states.short_#{state_id}"
|
27
|
+
long = "vagrant_vsphere.states.long_#{state_id}"
|
28
|
+
|
29
|
+
# Return the MachineState object
|
30
|
+
Vagrant::MachineState.new(state_id, short, long)
|
31
|
+
end
|
32
|
+
|
33
|
+
def to_s
|
34
|
+
id = @machine.id.nil? ? 'new' : @machine.id
|
35
|
+
"vSphere (#{id})"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
39
|
end
|
@@ -1,15 +1,15 @@
|
|
1
|
-
module VagrantPlugins
|
2
|
-
module VSphere
|
3
|
-
module Util
|
4
|
-
module MachineHelpers
|
5
|
-
def wait_for_ssh(env)
|
6
|
-
env[:ui].info(I18n.t("vsphere.waiting_for_ssh"))
|
7
|
-
while true
|
8
|
-
break if env[:machine].communicate.ready?
|
9
|
-
sleep 5
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
1
|
+
module VagrantPlugins
|
2
|
+
module VSphere
|
3
|
+
module Util
|
4
|
+
module MachineHelpers
|
5
|
+
def wait_for_ssh(env)
|
6
|
+
env[:ui].info(I18n.t("vsphere.waiting_for_ssh"))
|
7
|
+
while true
|
8
|
+
break if env[:machine].communicate.ready?
|
9
|
+
sleep 5
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|