labmanager 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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