labmanager 0.0.2 → 0.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.
@@ -0,0 +1,14 @@
1
+ require "labmanager_service"
2
+
3
+ class Labmanager
4
+
5
+ def method_missing(name, *args)
6
+
7
+
8
+
9
+
10
+
11
+ end
12
+ end
13
+
14
+
@@ -12,10 +12,9 @@ class LabmanagerService < Handsoap::Service
12
12
  @@password =''
13
13
  @@pragmatic=false
14
14
  @@testmode=false
15
-
16
-
17
-
15
+
18
16
  Handsoap.http_driver = :custom
17
+ Handsoap.timeout= 600
19
18
 
20
19
 
21
20
  def self.configure(config)
@@ -56,9 +55,7 @@ class LabmanagerService < Handsoap::Service
56
55
  doc.add_namespace 'labmanager', 'http://vmware.com/labmanager'
57
56
  end
58
57
 
59
- def createConfiguration(args = {})
60
- puts "create Document"
61
-
58
+ def create_configuration(args = {})
62
59
  begin
63
60
 
64
61
  response = invoke('labmanager:ConfigurationCreateEx') do |message|
@@ -73,7 +70,7 @@ class LabmanagerService < Handsoap::Service
73
70
 
74
71
 
75
72
  if @@pragmatic then
76
- config = getConfigurationByName(args[:name])
73
+ config = get_configuration_by_name(args[:name])
77
74
  config[:id]
78
75
  else
79
76
  raise error
@@ -83,7 +80,7 @@ class LabmanagerService < Handsoap::Service
83
80
 
84
81
  end
85
82
 
86
- def deleteConfiguration(id)
83
+ def delete_configuration(id)
87
84
 
88
85
  response = invoke('labmanager:ConfigurationDelete') do |message|
89
86
  message.add('labmanager:configurationId',id)
@@ -91,37 +88,33 @@ class LabmanagerService < Handsoap::Service
91
88
 
92
89
  end
93
90
 
94
- def getConfigurationByName(name)
95
- response = invoke('labmanager:GetConfigurationByName') do |message|
96
- message.add('labmanager:name',name)
97
- end
91
+ def get_configuration_by_name(name)
98
92
 
99
- hashes = (response/"//labmanager:GetConfigurationByNameResponse/labmanager:GetConfigurationByNameResult/labmanager:Configuration").map do |configuration|
100
- {
101
- :id => (configuration/"labmanager:id").to_s,
102
- :name => (configuration/"labmanager:name").to_s,
103
- :description => (configuration/"labmanager:description").to_s
104
- }
105
- end
93
+ get_configurations.each do |config|
94
+ return config if config[:name] == name
95
+ end
106
96
 
107
- return hashes[0]
97
+ return nil
108
98
 
109
99
  end
110
100
 
111
- def getConfigurations
101
+ def get_configurations
102
+
112
103
  response = invoke('labmanager:GetCurrentWorkspace')
113
104
 
105
+
114
106
  hashes = (response/"//labmanager:GetCurrentWorkspaceResponse/labmanager:GetCurrentWorkspaceResult/labmanager:Configurations/labmanager:Configuration").map do |configuration|
115
107
  {
116
108
  :id => (configuration/"labmanager:id").to_s,
117
109
  :name => (configuration/"labmanager:name").to_s,
118
- :description => (configuration/"labmanager:description").to_s
110
+ :description => (configuration/"labmanager:description").to_s,
111
+ :deployed => eval((configuration/"labmanager:isDeployed").to_s)
119
112
  }
120
113
  end
121
114
 
122
115
  end
123
116
 
124
- def listTemplates()
117
+ def list_templates()
125
118
  response = invoke('labmanager:ListTemplates')
126
119
 
127
120
  hashes = (response/"//labmanager:ListTemplatesResponse/labmanager:ListTemplatesResult/labmanager:Template").map do |template|
@@ -134,7 +127,7 @@ class LabmanagerService < Handsoap::Service
134
127
 
135
128
  end
136
129
 
137
- def getTemplate(id)
130
+ def get_template(id)
138
131
  response = invoke('labmanager:GetTemplate') do |message|
139
132
  message.add('labmanager:id',id)
140
133
  end
@@ -148,7 +141,7 @@ class LabmanagerService < Handsoap::Service
148
141
 
149
142
  end
150
143
 
151
- def getTemplateByName(name)
144
+ def get_template_by_name(name)
152
145
  response = invoke('labmanager:GetTemplateByName') do |message|
153
146
  message.add('labmanager:name',name)
154
147
  end
@@ -164,7 +157,7 @@ class LabmanagerService < Handsoap::Service
164
157
  return hashes[0]
165
158
  end
166
159
 
167
- def getNetworkByName(name)
160
+ def get_network_by_name(name)
168
161
  response = invoke('labmanager:GetNetworkTemplateByName') do |message|
169
162
  message.add('labmanager:name',name)
170
163
  end
@@ -178,7 +171,7 @@ class LabmanagerService < Handsoap::Service
178
171
 
179
172
  end
180
173
 
181
- def listNetworks()
174
+ def list_networks()
182
175
  response = invoke('labmanager:ListNetworks')
183
176
 
184
177
  hashes = (response/"//labmanager:ListNetworksResponse/labmanager:ListNetworksResult/labmanager:Network").map do |network|
@@ -190,7 +183,7 @@ class LabmanagerService < Handsoap::Service
190
183
  end
191
184
  end
192
185
 
193
- def createMachine(config)
186
+ def create_machine(config)
194
187
  begin
195
188
  response = invoke('labmanager:ConfigurationAddMachineEx') do |message|
196
189
  message.add('labmanager:id',config[:configuration_id])
@@ -211,8 +204,14 @@ class LabmanagerService < Handsoap::Service
211
204
  (response/"//labmanager:ConfigurationAddMachineExResponse/labmanager:ConfigurationAddMachineExResult").to_i
212
205
 
213
206
  rescue Handsoap::Fault => error
207
+
208
+ if error.reason.match("The object you selected is currently busy")
209
+ raise LabmanagerBusy
210
+ end
211
+
214
212
  if @@pragmatic then
215
- machine = getMachineByName(config[:configuration_id],config[:name])
213
+
214
+ machine = get_machine_by_name(config[:configuration_id],config[:name])
216
215
  machine[:id]
217
216
  else
218
217
  raise error
@@ -220,15 +219,15 @@ class LabmanagerService < Handsoap::Service
220
219
  end
221
220
  end
222
221
 
223
- def undeployMachine(id)
224
- performMachineAction(id,MACHINE_ACTION_UNDEPLOY)
222
+ def undeploy_machine(id)
223
+ perform_machine_action(id,MACHINE_ACTION_FORCEUNDEPLOY)
225
224
  end
226
225
 
227
- def deployMachine(id)
228
- performMachineAction(id,MACHINE_ACTION_DEPLOY)
226
+ def deploy_machine(id)
227
+ perform_machine_action(id,MACHINE_ACTION_DEPLOY)
229
228
  end
230
229
 
231
- def performMachineAction(id,action)
230
+ def perform_machine_action(id,action)
232
231
  begin
233
232
  response = invoke('labmanager:MachinePerformAction') do |message|
234
233
  message.add('labmanager:machineId',id)
@@ -236,26 +235,36 @@ class LabmanagerService < Handsoap::Service
236
235
  end
237
236
 
238
237
  rescue Handsoap::Fault => error
239
- if !@@pragmatic then
238
+ if error.reason.match("The object you selected is currently busy")
239
+ raise LabmanagerBusy
240
+ else
241
+
242
+ if error.reason.match("Error in undeploying. Contact the Administrator if the problem persists")
243
+ raise LabmanagerBusy
244
+ end
245
+
240
246
  raise error
241
247
  end
248
+
242
249
  end
243
250
  end
244
251
 
245
- def deleteMachine(id)
252
+ def delete_machine(id)
246
253
  begin
247
254
  response = invoke('labmanager:MachineDelete') do |message|
248
255
  message.add('labmanager:vmId',id)
249
256
  end
250
257
 
251
258
  rescue Handsoap::Fault => error
252
- if !@@pragmatic then
253
- raise error
259
+ if error.reason.match("The object you selected is currently busy")
260
+ raise LabmanagerBusy
254
261
  end
262
+
263
+ raise error
255
264
  end
256
265
  end
257
266
 
258
- def getMachine(id)
267
+ def get_machine(id)
259
268
  response = invoke('labmanager:GetMachine') do |message|
260
269
  message.add('labmanager:machineId',id)
261
270
  end
@@ -267,12 +276,12 @@ class LabmanagerService < Handsoap::Service
267
276
  :description => (response/"//labmanager:GetMachineResponse/labmanager:GetMachineResult/labmanager:description").to_s,
268
277
  :ipaddress => (response/"//labmanager:GetMachineResponse/labmanager:GetMachineResult/labmanager:internalIP").to_s,
269
278
  :memory => (response/"//labmanager:GetMachineResponse/labmanager:GetMachineResult/labmanager:memory").to_s,
270
- :deployed => (response/"//labmanager:GetMachineResponse/labmanager:GetMachineResult/labmanager:isDeployed").to_s,
279
+ :deployed => eval((response/"//labmanager:GetMachineResponse/labmanager:GetMachineResult/labmanager:isDeployed").to_s),
271
280
  :status => (response/"//labmanager:GetMachineResponse/labmanager:GetMachineResult/labmanager:status").to_s,
272
281
  }
273
282
  end
274
283
 
275
- def getMachineByName(config_id,name)
284
+ def get_machine_by_name(config_id,name)
276
285
  response = invoke('labmanager:GetMachineByName') do |message|
277
286
  message.add('labmanager:configurationId',config_id)
278
287
  message.add('labmanager:name',name)
@@ -285,14 +294,14 @@ class LabmanagerService < Handsoap::Service
285
294
  :description => (response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:description").to_s,
286
295
  :ipaddress => (response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:internalIP").to_s,
287
296
  :memory => (response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:memory").to_s,
288
- :deployed => (response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:isDeployed").to_s,
297
+ :deployed => eval((response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:isDeployed").to_s),
289
298
  :status => (response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:status").to_s,
290
299
 
291
300
  }
292
301
 
293
302
  end
294
303
 
295
- def listMachines(config_id)
304
+ def list_machines(config_id)
296
305
  response = invoke('labmanager:GetTemplateByName') do |message|
297
306
  message.add('labmanager:configurationId',config_id)
298
307
  end
@@ -308,7 +317,11 @@ class LabmanagerService < Handsoap::Service
308
317
  return hashes
309
318
  end
310
319
 
311
-
312
- private
320
+
321
+
322
+ end
323
+
324
+
325
+ class LabmanagerBusy <Exception
313
326
 
314
327
  end
@@ -1,7 +1,7 @@
1
1
  require "test/unit"
2
2
  require "labmanager/labmanager_service"
3
3
  require "handsoap"
4
- require "test_helper"
4
+ require "labmanager/test_helper"
5
5
 
6
6
  class TestCreateconfiguration < Test::Unit::TestCase
7
7
 
@@ -17,7 +17,7 @@ class TestCreateconfiguration < Test::Unit::TestCase
17
17
  Handsoap.http_driver = :mock
18
18
 
19
19
  driver = Handsoap::Http.drivers[:mock].new
20
- result = LabmanagerService.createConfiguration(:name=>'test',:description=>'test')
20
+ result = LabmanagerService.create_configuration(:name=>'test',:description=>'test')
21
21
 
22
22
  assert_equal result,1
23
23
 
@@ -29,7 +29,7 @@ class TestCreateconfiguration < Test::Unit::TestCase
29
29
  Handsoap.http_driver = :mock
30
30
 
31
31
  driver = Handsoap::Http.drivers[:mock].new
32
- result = LabmanagerService.getConfigurationByName("test")
32
+ result = LabmanagerService.get_configuration_by_name("test")
33
33
 
34
34
  assert_equal result[:id],"1"
35
35
  assert_equal result[:name],"test"
@@ -42,7 +42,7 @@ class TestCreateconfiguration < Test::Unit::TestCase
42
42
  Handsoap.http_driver = :mock
43
43
 
44
44
  driver = Handsoap::Http.drivers[:mock].new
45
- result = LabmanagerService.getConfigurations()
45
+ result = LabmanagerService.get_configurations()
46
46
 
47
47
  assert_equal result.length,2
48
48
 
@@ -54,7 +54,7 @@ class TestCreateconfiguration < Test::Unit::TestCase
54
54
  Handsoap.http_driver = :mock
55
55
 
56
56
  driver = Handsoap::Http.drivers[:mock].new
57
- result = LabmanagerService.deleteConfiguration(1)
57
+ result = LabmanagerService.delete_configuration(1)
58
58
 
59
59
 
60
60
  end
@@ -18,7 +18,7 @@ class TestFramework < Test::Unit::TestCase
18
18
 
19
19
  def test_framework
20
20
  driver = Handsoap::Http.drivers[:mock].new
21
- result = LabmanagerService.createConfiguration(:name=>'test',:description=>'test')
21
+ result = LabmanagerService.create_configuration(:name=>'test',:description=>'test')
22
22
 
23
23
  assert_equal 'http://localhost/LabManager/test', driver.last_request.url
24
24
  assert_equal :post, driver.last_request.http_method
@@ -17,7 +17,7 @@ class TestMachines < Test::Unit::TestCase
17
17
  Handsoap.http_driver = :mock
18
18
 
19
19
  driver = Handsoap::Http.drivers[:mock].new
20
- result = LabmanagerService.createMachine({:configuration_id =>1,:template_id=>1,:name=>"testing",:description=>"testing"})
20
+ result = LabmanagerService.create_machine({:configuration_id =>1,:template_id=>1,:name=>"testing",:description=>"testing"})
21
21
 
22
22
  assert_equal result,1
23
23
 
@@ -29,7 +29,7 @@ class TestMachines < Test::Unit::TestCase
29
29
  Handsoap.http_driver = :mock
30
30
 
31
31
  driver = Handsoap::Http.drivers[:mock].new
32
- result = LabmanagerService.getMachine("1")
32
+ result = LabmanagerService.get_machine("1")
33
33
 
34
34
  assert_equal result[:id],"1"
35
35
  assert_equal result[:name],"machine1"
@@ -40,7 +40,7 @@ class TestMachines < Test::Unit::TestCase
40
40
  Handsoap.http_driver = :mock
41
41
 
42
42
  driver = Handsoap::Http.drivers[:mock].new
43
- result = LabmanagerService.getMachineByName("1","testing")
43
+ result = LabmanagerService.get_machine_by_name("1","testing")
44
44
 
45
45
  assert_equal result[:id],"1"
46
46
  assert_equal result[:name],"machine1"
@@ -51,7 +51,7 @@ class TestMachines < Test::Unit::TestCase
51
51
  Handsoap.http_driver = :mock
52
52
 
53
53
  driver = Handsoap::Http.drivers[:mock].new
54
- result = LabmanagerService.deployMachine(1)
54
+ result = LabmanagerService.deploy_machine(1)
55
55
 
56
56
  end
57
57
 
@@ -60,7 +60,7 @@ class TestMachines < Test::Unit::TestCase
60
60
  Handsoap.http_driver = :mock
61
61
 
62
62
  driver = Handsoap::Http.drivers[:mock].new
63
- result = LabmanagerService.undeployMachine(1)
63
+ result = LabmanagerService.undeploy_machine(1)
64
64
 
65
65
  end
66
66
 
@@ -69,7 +69,7 @@ class TestMachines < Test::Unit::TestCase
69
69
  Handsoap.http_driver = :mock
70
70
 
71
71
  driver = Handsoap::Http.drivers[:mock].new
72
- result = LabmanagerService.deleteMachine(1)
72
+ result = LabmanagerService.delete_machine(1)
73
73
 
74
74
  end
75
75
  def test_listMachines
@@ -77,7 +77,7 @@ class TestMachines < Test::Unit::TestCase
77
77
  Handsoap.http_driver = :mock
78
78
 
79
79
  driver = Handsoap::Http.drivers[:mock].new
80
- result = LabmanagerService.listMachines(1)
80
+ result = LabmanagerService.list_machines(1)
81
81
  assert_equal result.length,2
82
82
 
83
83
  end
@@ -17,7 +17,7 @@ class TestNetworks < Test::Unit::TestCase
17
17
  Handsoap.http_driver = :mock
18
18
 
19
19
  driver = Handsoap::Http.drivers[:mock].new
20
- result = LabmanagerService.listNetworks()
20
+ result = LabmanagerService.list_networks()
21
21
 
22
22
  assert_equal result.length,2
23
23
 
@@ -28,7 +28,7 @@ class TestNetworks < Test::Unit::TestCase
28
28
  Handsoap.http_driver = :mock
29
29
 
30
30
  driver = Handsoap::Http.drivers[:mock].new
31
- result = LabmanagerService.getNetworkByName("network1")
31
+ result = LabmanagerService.get_network_by_name("network1")
32
32
 
33
33
  assert_equal result[:id],"1"
34
34
 
@@ -17,7 +17,7 @@ class TestTemplates < Test::Unit::TestCase
17
17
  Handsoap.http_driver = :mock
18
18
 
19
19
  driver = Handsoap::Http.drivers[:mock].new
20
- result = LabmanagerService.listTemplates()
20
+ result = LabmanagerService.list_templates()
21
21
 
22
22
  assert_equal result.length,2
23
23
 
@@ -28,7 +28,7 @@ class TestTemplates < Test::Unit::TestCase
28
28
  Handsoap.http_driver = :mock
29
29
 
30
30
  driver = Handsoap::Http.drivers[:mock].new
31
- result = LabmanagerService.getTemplate(1)
31
+ result = LabmanagerService.get_template(1)
32
32
 
33
33
  assert_equal result[:id],"1"
34
34
  assert_equal result[:name],"testtemplate"
@@ -41,7 +41,7 @@ class TestTemplates < Test::Unit::TestCase
41
41
  Handsoap.http_driver = :mock
42
42
 
43
43
  driver = Handsoap::Http.drivers[:mock].new
44
- result = LabmanagerService.getTemplateByName("template1")
44
+ result = LabmanagerService.get_template_by_name("template1")
45
45
 
46
46
  assert_equal result[:id],"1"
47
47
  assert_equal result[:name],"template1"
metadata CHANGED
@@ -1,49 +1,46 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: labmanager
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
4
5
  prerelease:
5
- version: 0.0.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Andrew Battye
9
9
  autorequire: name
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-05-09 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-30 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: handsoap
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2152248740 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
23
21
  version: 1.1.8
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: nokogiri
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2152248740
25
+ - !ruby/object:Gem::Dependency
26
+ name: nokogiri
27
+ requirement: &2152248260 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
34
32
  version: 1.4.4
35
33
  type: :runtime
36
- version_requirements: *id002
34
+ prerelease: false
35
+ version_requirements: *2152248260
37
36
  description:
38
37
  email: andrew@battye.com
39
38
  executables: []
40
-
41
39
  extensions: []
42
-
43
40
  extra_rdoc_files: []
44
-
45
- files:
41
+ files:
46
42
  - lib/labmanager/constants.rb
43
+ - lib/labmanager/labmanager.rb
47
44
  - lib/labmanager/labmanager_service.rb
48
45
  - lib/labmanager/net_http_driver.rb
49
46
  - test/test_configuration.rb
@@ -52,34 +49,31 @@ files:
52
49
  - test/test_machines.rb
53
50
  - test/test_networks.rb
54
51
  - test/test_templates.rb
55
- homepage: ""
52
+ homepage: ''
56
53
  licenses: []
57
-
58
54
  post_install_message:
59
55
  rdoc_options: []
60
-
61
- require_paths:
56
+ require_paths:
62
57
  - lib
63
- required_ruby_version: !ruby/object:Gem::Requirement
58
+ required_ruby_version: !ruby/object:Gem::Requirement
64
59
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: "0"
69
- required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
65
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
75
70
  requirements: []
76
-
77
71
  rubyforge_project:
78
- rubygems_version: 1.8.1
72
+ rubygems_version: 1.8.10
79
73
  signing_key:
80
74
  specification_version: 3
81
75
  summary: Ruby SOAP proxy for VMware Lab Manager
82
- test_files:
76
+ test_files:
83
77
  - test/test_configuration.rb
84
78
  - test/test_framework.rb
85
79
  - test/test_helper.rb