vmonkey 0.2.0 → 0.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/lib/vmonkey/version.rb +1 -1
- data/lib/vmonkey/vim/VirtualMachine.rb +28 -4
- data/spec/virtualmachine_spec.rb +26 -7
- data/vmonkey.gemspec +1 -1
- metadata +32 -14
- checksums.yaml +0 -7
data/lib/vmonkey/version.rb
CHANGED
@@ -8,7 +8,7 @@ class RbVmomi::VIM::VirtualMachine
|
|
8
8
|
def clone_to(path, opts = {})
|
9
9
|
dest = monkey.get(path.parent)
|
10
10
|
unless dest.is_a? RbVmomi::VIM::Folder or dest.is_a? RbVmomi::VIM::VirtualApp
|
11
|
-
raise "Cannot clone_to [#{
|
11
|
+
raise "Cannot clone_to [#{path.parent}] - destination must specify a Folder or VirtualApp"
|
12
12
|
end
|
13
13
|
|
14
14
|
params = _clone_params(path.basename, dest, opts)
|
@@ -57,14 +57,14 @@ class RbVmomi::VIM::VirtualMachine
|
|
57
57
|
|
58
58
|
unless self.method_defined? :guest_ip
|
59
59
|
## backported from rbvmomi 1.8 for rbvmomi 1.5 support
|
60
|
-
def guest_ip
|
60
|
+
def guest_ip
|
61
61
|
g = self.guest
|
62
62
|
if g.ipAddress && (g.toolsStatus == "toolsOk" || g.toolsStatus == "toolsOld")
|
63
63
|
g.ipAddress
|
64
64
|
else
|
65
65
|
nil
|
66
66
|
end
|
67
|
-
end
|
67
|
+
end
|
68
68
|
end
|
69
69
|
|
70
70
|
def move_to!(path)
|
@@ -89,8 +89,24 @@ class RbVmomi::VIM::VirtualMachine
|
|
89
89
|
tcp_socket && tcp_socket.close
|
90
90
|
end
|
91
91
|
|
92
|
+
def wait_for(max=300, interval=2, &block)
|
93
|
+
elapsed = 0
|
94
|
+
start = Time.now
|
95
|
+
|
96
|
+
until (result = yield) || (elapsed > max)
|
97
|
+
sleep interval
|
98
|
+
elapsed = Time.now - start
|
99
|
+
end
|
100
|
+
|
101
|
+
unless result
|
102
|
+
raise Errors::TimeoutError.new "Waited #{max} seconds, giving up"
|
103
|
+
end
|
104
|
+
|
105
|
+
true
|
106
|
+
end
|
107
|
+
|
92
108
|
def wait_for_port(port)
|
93
|
-
|
109
|
+
wait_for { port_ready?(port) }
|
94
110
|
end
|
95
111
|
|
96
112
|
def stop
|
@@ -105,6 +121,14 @@ class RbVmomi::VIM::VirtualMachine
|
|
105
121
|
PowerOnVM_Task().wait_for_completion unless runtime.powerState == 'poweredOn'
|
106
122
|
end
|
107
123
|
|
124
|
+
def started?
|
125
|
+
runtime.powerState == 'poweredOn'
|
126
|
+
end
|
127
|
+
|
128
|
+
def ready?
|
129
|
+
! guest_ip.nil?
|
130
|
+
end
|
131
|
+
|
108
132
|
def find_property(name)
|
109
133
|
config.vAppConfig.property.find { |p| p.props[:id] == name.to_s }
|
110
134
|
end
|
data/spec/virtualmachine_spec.rb
CHANGED
@@ -144,7 +144,7 @@ describe RbVmomi::VIM::VirtualMachine do
|
|
144
144
|
@other_path = "#{@vm_path}-other"
|
145
145
|
@other_vm = @spec_vm.clone_to @other_path
|
146
146
|
end
|
147
|
-
|
147
|
+
|
148
148
|
after(:all) do
|
149
149
|
other_vm = @monkey.vm @other_path
|
150
150
|
other_vm.destroy if other_vm
|
@@ -174,14 +174,33 @@ describe RbVmomi::VIM::VirtualMachine do
|
|
174
174
|
context 'that has had #start called' do
|
175
175
|
before(:all) { @spec_vm.start }
|
176
176
|
|
177
|
-
|
178
|
-
|
179
|
-
|
177
|
+
context 'immediately following start' do
|
178
|
+
describe '#ready?' do
|
179
|
+
it 'should be false' do
|
180
|
+
expect(@spec_vm.ready?).to be_false
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
describe '#port_ready?' do
|
185
|
+
it 'should be false' do
|
186
|
+
expect(@spec_vm.port_ready? 22).to be_false
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
context 'following wait_for_port' do
|
192
|
+
before(:all) { @spec_vm.wait_for_port 22 }
|
193
|
+
|
194
|
+
describe '#ready?' do
|
195
|
+
it 'should be true' do
|
196
|
+
expect(@spec_vm.ready?).to be_true
|
197
|
+
end
|
180
198
|
end
|
181
199
|
|
182
|
-
|
183
|
-
|
184
|
-
|
200
|
+
describe '#port_ready?' do
|
201
|
+
it 'should be true' do
|
202
|
+
expect(@spec_vm.port_ready? 22).to be_true
|
203
|
+
end
|
185
204
|
end
|
186
205
|
end
|
187
206
|
|
data/vmonkey.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vmonkey
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Brian Dupras
|
@@ -9,11 +10,12 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2014-
|
13
|
+
date: 2014-07-01 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: nokogiri
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
20
|
- - '='
|
19
21
|
- !ruby/object:Gem::Version
|
@@ -21,6 +23,7 @@ dependencies:
|
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
28
|
- - '='
|
26
29
|
- !ruby/object:Gem::Version
|
@@ -28,6 +31,7 @@ dependencies:
|
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: rbvmomi
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
36
|
- - ~>
|
33
37
|
- !ruby/object:Gem::Version
|
@@ -35,6 +39,7 @@ dependencies:
|
|
35
39
|
type: :runtime
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
44
|
- - ~>
|
40
45
|
- !ruby/object:Gem::Version
|
@@ -42,6 +47,7 @@ dependencies:
|
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
48
|
name: bundler
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
52
|
- - ~>
|
47
53
|
- !ruby/object:Gem::Version
|
@@ -49,6 +55,7 @@ dependencies:
|
|
49
55
|
type: :development
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
60
|
- - ~>
|
54
61
|
- !ruby/object:Gem::Version
|
@@ -56,32 +63,36 @@ dependencies:
|
|
56
63
|
- !ruby/object:Gem::Dependency
|
57
64
|
name: rake
|
58
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
59
67
|
requirements:
|
60
|
-
- - '>='
|
68
|
+
- - ! '>='
|
61
69
|
- !ruby/object:Gem::Version
|
62
70
|
version: '0'
|
63
71
|
type: :development
|
64
72
|
prerelease: false
|
65
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
66
75
|
requirements:
|
67
|
-
- - '>='
|
76
|
+
- - ! '>='
|
68
77
|
- !ruby/object:Gem::Version
|
69
78
|
version: '0'
|
70
79
|
- !ruby/object:Gem::Dependency
|
71
80
|
name: rspec
|
72
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
73
83
|
requirements:
|
74
|
-
- -
|
84
|
+
- - ~>
|
75
85
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
86
|
+
version: '2.14'
|
77
87
|
type: :development
|
78
88
|
prerelease: false
|
79
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
80
91
|
requirements:
|
81
|
-
- -
|
92
|
+
- - ~>
|
82
93
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
84
|
-
description: ' simple to use vsphere methods '
|
94
|
+
version: '2.14'
|
95
|
+
description: ! ' simple to use vsphere methods '
|
85
96
|
email:
|
86
97
|
- brian@duprasville.com
|
87
98
|
- dsmith@rallydev.com
|
@@ -113,26 +124,33 @@ files:
|
|
113
124
|
homepage: https://github.com/something/vmonkey
|
114
125
|
licenses:
|
115
126
|
- MIT
|
116
|
-
metadata: {}
|
117
127
|
post_install_message:
|
118
128
|
rdoc_options: []
|
119
129
|
require_paths:
|
120
130
|
- lib
|
121
131
|
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
122
133
|
requirements:
|
123
|
-
- - '>='
|
134
|
+
- - ! '>='
|
124
135
|
- !ruby/object:Gem::Version
|
125
136
|
version: '0'
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
hash: 3892349743528929698
|
126
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
127
142
|
requirements:
|
128
|
-
- - '>='
|
143
|
+
- - ! '>='
|
129
144
|
- !ruby/object:Gem::Version
|
130
145
|
version: '0'
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
hash: 3892349743528929698
|
131
149
|
requirements: []
|
132
150
|
rubyforge_project:
|
133
|
-
rubygems_version:
|
151
|
+
rubygems_version: 1.8.25
|
134
152
|
signing_key:
|
135
|
-
specification_version:
|
153
|
+
specification_version: 3
|
136
154
|
summary: simple to use vsphere methods
|
137
155
|
test_files:
|
138
156
|
- spec/datacenter_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: a0ff9f61554b7d4d9b77eb7db920190d126c0dc7
|
4
|
-
data.tar.gz: edd8cf44704212d256c7abb8e00f5bd83ff4ee1d
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 34f00cb986328f92dbbe713edd3342c6674a25f18332f089ca6b789a9f2c4abbefc47705e3fd781567504b82770d4040942aa1dcd9ed2be4c4e2ec91ac89ee6f
|
7
|
-
data.tar.gz: 81d1b577c3f4de6a43c4ce2789726cdf1672a2388096ca913bac1dbc8ff278a7e17f5cf2303cad323fcf7ce941d761e35d4d69be2796bd227396046bae0368c1
|