Class: LabmanagerService
- Inherits:
-
Handsoap::Service
- Object
- Handsoap::Service
- LabmanagerService
show all
- Includes:
- Constants
- Defined in:
- lib/labmanager/labmanager_service.rb
Constant Summary
collapse
- @@workspace =
''
- @@username =
''
- @@password =
''
- @@pragmatic =
false
Constants included
from Constants
Constants::CONFIGURATION_ACTION_POWEROFF, Constants::CONFIGURATION_ACTION_POWERON, Constants::CONFIGURATION_ACTION_RESET, Constants::CONFIGURATION_ACTION_RESUME, Constants::CONFIGURATION_ACTION_REVERT, Constants::CONFIGURATION_ACTION_SHUTDOWN, Constants::CONFIGURATION_ACTION_SNAPSHOT, Constants::CONFIGURATION_ACTION_SUSPEND, Constants::FENCE_MODE_UNFENCED, Constants::MACHINE_ACTION_CONSOLIDATE, Constants::MACHINE_ACTION_DEPLOY, Constants::MACHINE_ACTION_EJECTCD, Constants::MACHINE_ACTION_EJECTFLOPPY, Constants::MACHINE_ACTION_FORCEUNDEPLOY, Constants::MACHINE_ACTION_POWEROFF, Constants::MACHINE_ACTION_POWERON, Constants::MACHINE_ACTION_RESET, Constants::MACHINE_ACTION_RESUME, Constants::MACHINE_ACTION_REVERT, Constants::MACHINE_ACTION_SHUTDOWN, Constants::MACHINE_ACTION_SNAPSHOT, Constants::MACHINE_ACTION_SUSPEND, Constants::MACHINE_ACTION_UNDEPLOY, Constants::MACHINE_STATUS_INVALID, Constants::MACHINE_STATUS_OFF, Constants::MACHINE_STATUS_ON, Constants::MACHINE_STATUS_STUCK, Constants::MACHINE_STATUS_SUSPENDED
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/labmanager/labmanager_service.rb', line 14
def self.configure(config)
@@wsdl = config[:wsdl]
@@username = config[:username]
@@password = config[:password]
@@workspace = config[:workspace]
@@pragmatic = config[:pragmatic]
endpoint :uri => @@wsdl, :version => 2
end
|
Instance Method Details
#createConfiguration(args = {}) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/labmanager/labmanager_service.rb', line 49
def createConfiguration(args = {})
puts "create Document"
begin
response = invoke('labmanager:ConfigurationCreateEx') do |message|
message.add('labmanager:name',args[:name])
message.add('labmanager:desc',args[:description])
end
puts "create Document 2"
(response/"//labmanager:ConfigurationCreateExResponse/labmanager:ConfigurationCreateExResult").to_i
rescue Handsoap::Fault => error
if @@pragmatic then
config = getConfigurationByName(args[:name])
config[:id]
else
raise error
end
end
end
|
#createMachine(config) ⇒ Object
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
# File 'lib/labmanager/labmanager_service.rb', line 182
def createMachine(config)
begin
response = invoke('labmanager:ConfigurationAddMachineEx') do |message|
message.add('labmanager:id',config[:configuration_id])
message.add('labmanager:template_id',config[:template_id])
message.add('labmanager:name',config[:name])
message.add('labmanager:desc',config[:description])
message.add('labmanager:netInfo') do |netinfo|
netinfo.add('labmanager:NetInfo') do |network|
network.add('labmanager:networkId',config[:network_id])
network.add('labmanager:ipAddress',config[:ipaddress])
network.add('labmanager:ipAddressingMode',config[:ipaddressingmode])
end
end
end
(response/"//labmanager:ConfigurationAddMachineExResponse/labmanager:ConfigurationAddMachineExResult").to_i
rescue Handsoap::Fault => error
if @@pragmatic then
machine = getMachineByName(config[:configuration_id],config[:name])
machine[:id]
else
raise error
end
end
end
|
#deleteConfiguration(id) ⇒ Object
75
76
77
78
79
80
81
|
# File 'lib/labmanager/labmanager_service.rb', line 75
def deleteConfiguration(id)
response = invoke('labmanager:ConfigurationDelete') do |message|
message.add('labmanager:configurationId',id)
end
end
|
#deleteMachine(id) ⇒ Object
233
234
235
236
237
238
239
240
241
242
243
244
|
# File 'lib/labmanager/labmanager_service.rb', line 233
def deleteMachine(id)
begin
response = invoke('labmanager:MachineDelete') do |message|
message.add('labmanager:vmId',id)
end
rescue Handsoap::Fault => error
if !@@pragmatic then
raise error
end
end
end
|
#deployMachine(id) ⇒ Object
215
216
217
|
# File 'lib/labmanager/labmanager_service.rb', line 215
def deployMachine(id)
performMachineAction(id,MACHINE_ACTION_DEPLOY)
end
|
#getConfigurationByName(name) ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/labmanager/labmanager_service.rb', line 83
def getConfigurationByName(name)
response = invoke('labmanager:GetConfigurationByName') do |message|
message.add('labmanager:name',name)
end
hashes = (response/"//labmanager:GetConfigurationByNameResponse/labmanager:GetConfigurationByNameResult/labmanager:Configuration").map do |configuration|
{
:id => (configuration/"labmanager:id").to_s,
:name => (configuration/"labmanager:name").to_s,
:description => (configuration/"labmanager:description").to_s
}
end
return hashes[0]
end
|
#getConfigurations ⇒ Object
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/labmanager/labmanager_service.rb', line 100
def getConfigurations
response = invoke('labmanager:GetCurrentWorkspace')
hashes = (response/"//labmanager:GetCurrentWorkspaceResponse/labmanager:GetCurrentWorkspaceResult/labmanager:Configurations/labmanager:Configuration").map do |configuration|
{
:id => (configuration/"labmanager:id").to_s,
:name => (configuration/"labmanager:name").to_s,
:description => (configuration/"labmanager:description").to_s
}
end
end
|
#getMachine(id) ⇒ Object
246
247
248
|
# File 'lib/labmanager/labmanager_service.rb', line 246
def getMachine(id)
end
|
#getMachineByName(config_id, name) ⇒ Object
250
251
252
253
254
255
256
257
258
259
260
261
262
263
|
# File 'lib/labmanager/labmanager_service.rb', line 250
def getMachineByName(config_id,name)
response = invoke('labmanager:GetMachineByName') do |message|
message.add('labmanager:configurationId',config_id)
message.add('labmanager:name',name)
end
machine =
{
:id => (response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:id").to_s,
:name => (response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:name").to_s,
:description => (response/"//labmanager:GetMachineByNameResponse/labmanager:GetMachineByNameResult/labmanager:description").to_s
}
end
|
#getNetworkByName(name) ⇒ Object
156
157
158
159
160
161
162
163
164
165
166
167
168
|
# File 'lib/labmanager/labmanager_service.rb', line 156
def getNetworkByName(name)
response = invoke('labmanager:GetNetworkTemplateByName') do |message|
message.add('labmanager:name',name)
end
network =
{
:id => (response/"//labmanager:GetNetworkTemplateByNameResponse/labmanager:GetNetworkTemplateByNameResult/labmanager:NetID").to_s,
:name => (response/"//labmanager:GetNetworkTemplateByNameResponse/labmanager:GetNetworkTemplateByNameResult/labmanager:Name").to_s,
:description => (response/"//labmanager:GetNetworkTemplateByNameResponse/labmanager:GetNetworkTemplateByNameResult/labmanager:Description").to_s
}
end
|
#getTemplate(id) ⇒ Object
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# File 'lib/labmanager/labmanager_service.rb', line 126
def getTemplate(id)
response = invoke('labmanager:GetTemplate') do |message|
message.add('labmanager:id',id)
end
template =
{
:id => (response/"//labmanager:GetTemplateResponse/labmanager:GetTemplateResult/labmanager:id").to_s,
:name => (response/"//labmanager:GetTemplateResponse/labmanager:GetTemplateResult/labmanager:name").to_s,
:description => (response/"//labmanager:GetTemplateResponse/labmanager:GetTemplateResult/labmanager:description").to_s
}
end
|
#getTemplateByName(name) ⇒ Object
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
# File 'lib/labmanager/labmanager_service.rb', line 140
def getTemplateByName(name)
response = invoke('labmanager:GetTemplateByName') do |message|
message.add('labmanager:name',name)
end
hashes = (response/"//labmanager:GetTemplateByNameResponse/labmanager:GetTemplateByNameResult/labmanager:Template").map do |template|
{
:id => (template/"labmanager:id").to_s,
:name => (template/"labmanager:name").to_s,
:description => (template/"labmanager:description").to_s
}
end
return hashes[0]
end
|
#listNetworks ⇒ Object
170
171
172
173
174
175
176
177
178
179
180
|
# File 'lib/labmanager/labmanager_service.rb', line 170
def listNetworks()
response = invoke('labmanager:ListNetworks')
hashes = (response/"//labmanager:ListNetworksResponse/labmanager:ListNetworksResult/labmanager:Network").map do |network|
{
:id => (network/"labmanager:NetID").to_s,
:name => (network/"labmanager:Name").to_s,
:description => (network/"labmanager:Description").to_s
}
end
end
|
#listTemplates ⇒ Object
113
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/labmanager/labmanager_service.rb', line 113
def listTemplates()
response = invoke('labmanager:ListTemplates')
hashes = (response/"//labmanager:ListTemplatesResponse/labmanager:ListTemplatesResult/labmanager:Template").map do |template|
{
:id => (template/"labmanager:id").to_s,
:name => (template/"labmanager:name").to_s,
:description => (template/"labmanager:description").to_s
}
end
end
|
#on_create_document(doc) ⇒ Object
Register namespaces for request
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/labmanager/labmanager_service.rb', line 26
def on_create_document(doc)
doc.alias 'labmanager', 'http://vmware.com/labmanager'
= doc.find("Header")
.add "labmanager:AuthenticationHeader" do |s|
s.set_attr "env:mustUnderstand", "1"
s.add "labmanager:workspacename", @@workspace
s.add "labmanager:username", @@username
s.add "labmanager:password", @@password
end
end
|
#on_response_document(doc) ⇒ Object
45
46
47
|
# File 'lib/labmanager/labmanager_service.rb', line 45
def on_response_document(doc)
doc.add_namespace 'labmanager', 'http://vmware.com/labmanager'
end
|
219
220
221
222
223
224
225
226
227
228
229
230
231
|
# File 'lib/labmanager/labmanager_service.rb', line 219
def performMachineAction(id,action)
begin
response = invoke('labmanager:MachinePerformAction') do |message|
message.add('labmanager:machineId',id)
message.add('labmanager:action',action)
end
rescue Handsoap::Fault => error
if !@@pragmatic then
raise error
end
end
end
|
#undeployMachine(id) ⇒ Object
211
212
213
|
# File 'lib/labmanager/labmanager_service.rb', line 211
def undeployMachine(id)
performMachineAction(id,MACHINE_ACTION_UNDEPLOY)
end
|