opennebula 6.6.2 → 6.6.3

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.
@@ -18,225 +18,218 @@ require 'opennebula/lockable_ext'
18
18
  require 'opennebula/pool_element'
19
19
 
20
20
  module OpenNebula
21
+
21
22
  class VirtualMachine < PoolElement
23
+
22
24
  #######################################################################
23
25
  # Constants and Class Methods
24
26
  #######################################################################
25
27
 
26
28
  VM_METHODS = {
27
- :info => "vm.info",
28
- :allocate => "vm.allocate",
29
- :action => "vm.action",
30
- :migrate => "vm.migrate",
31
- :deploy => "vm.deploy",
32
- :chown => "vm.chown",
33
- :chmod => "vm.chmod",
34
- :monitoring => "vm.monitoring",
35
- :attach => "vm.attach",
36
- :detach => "vm.detach",
37
- :rename => "vm.rename",
38
- :update => "vm.update",
39
- :resize => "vm.resize",
40
- :snapshotcreate => "vm.snapshotcreate",
41
- :snapshotrevert => "vm.snapshotrevert",
42
- :snapshotdelete => "vm.snapshotdelete",
43
- :attachnic => "vm.attachnic",
44
- :detachnic => "vm.detachnic",
45
- :recover => "vm.recover",
46
- :disksaveas => "vm.disksaveas",
47
- :disksnapshotcreate => "vm.disksnapshotcreate",
48
- :disksnapshotrevert => "vm.disksnapshotrevert",
49
- :disksnapshotdelete => "vm.disksnapshotdelete",
50
- :disksnapshotrename => "vm.disksnapshotrename",
51
- :diskresize => "vm.diskresize",
52
- :updateconf => "vm.updateconf",
53
- :lock => "vm.lock",
54
- :unlock => "vm.unlock",
55
- :schedadd => "vm.schedadd",
56
- :scheddelete => "vm.scheddelete",
57
- :schedupdate => "vm.schedupdate",
58
- :attachsg => "vm.attachsg",
59
- :detachsg => "vm.detachsg",
60
- :backup => "vm.backup",
61
- :updatenic => "vm.updatenic",
62
- :backupcancel => "vm.backupcancel"
29
+ :info => 'vm.info',
30
+ :allocate => 'vm.allocate',
31
+ :action => 'vm.action',
32
+ :migrate => 'vm.migrate',
33
+ :deploy => 'vm.deploy',
34
+ :chown => 'vm.chown',
35
+ :chmod => 'vm.chmod',
36
+ :monitoring => 'vm.monitoring',
37
+ :attach => 'vm.attach',
38
+ :detach => 'vm.detach',
39
+ :rename => 'vm.rename',
40
+ :update => 'vm.update',
41
+ :resize => 'vm.resize',
42
+ :snapshotcreate => 'vm.snapshotcreate',
43
+ :snapshotrevert => 'vm.snapshotrevert',
44
+ :snapshotdelete => 'vm.snapshotdelete',
45
+ :attachnic => 'vm.attachnic',
46
+ :detachnic => 'vm.detachnic',
47
+ :recover => 'vm.recover',
48
+ :disksaveas => 'vm.disksaveas',
49
+ :disksnapshotcreate => 'vm.disksnapshotcreate',
50
+ :disksnapshotrevert => 'vm.disksnapshotrevert',
51
+ :disksnapshotdelete => 'vm.disksnapshotdelete',
52
+ :disksnapshotrename => 'vm.disksnapshotrename',
53
+ :diskresize => 'vm.diskresize',
54
+ :updateconf => 'vm.updateconf',
55
+ :lock => 'vm.lock',
56
+ :unlock => 'vm.unlock',
57
+ :schedadd => 'vm.schedadd',
58
+ :scheddelete => 'vm.scheddelete',
59
+ :schedupdate => 'vm.schedupdate',
60
+ :attachsg => 'vm.attachsg',
61
+ :detachsg => 'vm.detachsg',
62
+ :backup => 'vm.backup',
63
+ :updatenic => 'vm.updatenic',
64
+ :backupcancel => 'vm.backupcancel'
63
65
  }
64
66
 
65
- VM_STATE=%w{INIT PENDING HOLD ACTIVE STOPPED SUSPENDED DONE FAILED
66
- POWEROFF UNDEPLOYED CLONING CLONING_FAILURE}
67
-
68
- LCM_STATE=%w{
69
- LCM_INIT
70
- PROLOG
71
- BOOT
72
- RUNNING
73
- MIGRATE
74
- SAVE_STOP
75
- SAVE_SUSPEND
76
- SAVE_MIGRATE
77
- PROLOG_MIGRATE
78
- PROLOG_RESUME
79
- EPILOG_STOP
80
- EPILOG
81
- SHUTDOWN
82
- CANCEL
83
- FAILURE
84
- CLEANUP_RESUBMIT
85
- UNKNOWN
86
- HOTPLUG
87
- SHUTDOWN_POWEROFF
88
- BOOT_UNKNOWN
89
- BOOT_POWEROFF
90
- BOOT_SUSPENDED
91
- BOOT_STOPPED
92
- CLEANUP_DELETE
93
- HOTPLUG_SNAPSHOT
94
- HOTPLUG_NIC
95
- HOTPLUG_SAVEAS
96
- HOTPLUG_SAVEAS_POWEROFF
97
- HOTPLUG_SAVEAS_SUSPENDED
98
- SHUTDOWN_UNDEPLOY
99
- EPILOG_UNDEPLOY
100
- PROLOG_UNDEPLOY
101
- BOOT_UNDEPLOY
102
- HOTPLUG_PROLOG_POWEROFF
103
- HOTPLUG_EPILOG_POWEROFF
104
- BOOT_MIGRATE
105
- BOOT_FAILURE
106
- BOOT_MIGRATE_FAILURE
107
- PROLOG_MIGRATE_FAILURE
108
- PROLOG_FAILURE
109
- EPILOG_FAILURE
110
- EPILOG_STOP_FAILURE
111
- EPILOG_UNDEPLOY_FAILURE
112
- PROLOG_MIGRATE_POWEROFF
113
- PROLOG_MIGRATE_POWEROFF_FAILURE
114
- PROLOG_MIGRATE_SUSPEND
115
- PROLOG_MIGRATE_SUSPEND_FAILURE
116
- BOOT_UNDEPLOY_FAILURE
117
- BOOT_STOPPED_FAILURE
118
- PROLOG_RESUME_FAILURE
119
- PROLOG_UNDEPLOY_FAILURE
120
- DISK_SNAPSHOT_POWEROFF
121
- DISK_SNAPSHOT_REVERT_POWEROFF
122
- DISK_SNAPSHOT_DELETE_POWEROFF
123
- DISK_SNAPSHOT_SUSPENDED
124
- DISK_SNAPSHOT_REVERT_SUSPENDED
125
- DISK_SNAPSHOT_DELETE_SUSPENDED
126
- DISK_SNAPSHOT
127
- DISK_SNAPSHOT_REVERT
128
- DISK_SNAPSHOT_DELETE
129
- PROLOG_MIGRATE_UNKNOWN
130
- PROLOG_MIGRATE_UNKNOWN_FAILURE
131
- DISK_RESIZE
132
- DISK_RESIZE_POWEROFF
133
- DISK_RESIZE_UNDEPLOYED
134
- HOTPLUG_NIC_POWEROFF
135
- HOTPLUG_RESIZE
136
- HOTPLUG_SAVEAS_UNDEPLOYED
137
- HOTPLUG_SAVEAS_STOPPED
138
- BACKUP
139
- BACKUP_POWEROFF
140
- }
67
+ VM_STATE=['INIT', 'PENDING', 'HOLD', 'ACTIVE', 'STOPPED', 'SUSPENDED', 'DONE', 'FAILED',
68
+ 'POWEROFF', 'UNDEPLOYED', 'CLONING', 'CLONING_FAILURE']
69
+
70
+ LCM_STATE=[
71
+ 'LCM_INIT',
72
+ 'PROLOG',
73
+ 'BOOT',
74
+ 'RUNNING',
75
+ 'MIGRATE',
76
+ 'SAVE_STOP',
77
+ 'SAVE_SUSPEND',
78
+ 'SAVE_MIGRATE',
79
+ 'PROLOG_MIGRATE',
80
+ 'PROLOG_RESUME',
81
+ 'EPILOG_STOP',
82
+ 'EPILOG',
83
+ 'SHUTDOWN',
84
+ 'CANCEL',
85
+ 'FAILURE',
86
+ 'CLEANUP_RESUBMIT',
87
+ 'UNKNOWN',
88
+ 'HOTPLUG',
89
+ 'SHUTDOWN_POWEROFF',
90
+ 'BOOT_UNKNOWN',
91
+ 'BOOT_POWEROFF',
92
+ 'BOOT_SUSPENDED',
93
+ 'BOOT_STOPPED',
94
+ 'CLEANUP_DELETE',
95
+ 'HOTPLUG_SNAPSHOT',
96
+ 'HOTPLUG_NIC',
97
+ 'HOTPLUG_SAVEAS',
98
+ 'HOTPLUG_SAVEAS_POWEROFF',
99
+ 'HOTPLUG_SAVEAS_SUSPENDED',
100
+ 'SHUTDOWN_UNDEPLOY',
101
+ 'EPILOG_UNDEPLOY',
102
+ 'PROLOG_UNDEPLOY',
103
+ 'BOOT_UNDEPLOY',
104
+ 'HOTPLUG_PROLOG_POWEROFF',
105
+ 'HOTPLUG_EPILOG_POWEROFF',
106
+ 'BOOT_MIGRATE',
107
+ 'BOOT_FAILURE',
108
+ 'BOOT_MIGRATE_FAILURE',
109
+ 'PROLOG_MIGRATE_FAILURE',
110
+ 'PROLOG_FAILURE',
111
+ 'EPILOG_FAILURE',
112
+ 'EPILOG_STOP_FAILURE',
113
+ 'EPILOG_UNDEPLOY_FAILURE',
114
+ 'PROLOG_MIGRATE_POWEROFF',
115
+ 'PROLOG_MIGRATE_POWEROFF_FAILURE',
116
+ 'PROLOG_MIGRATE_SUSPEND',
117
+ 'PROLOG_MIGRATE_SUSPEND_FAILURE',
118
+ 'BOOT_UNDEPLOY_FAILURE',
119
+ 'BOOT_STOPPED_FAILURE',
120
+ 'PROLOG_RESUME_FAILURE',
121
+ 'PROLOG_UNDEPLOY_FAILURE',
122
+ 'DISK_SNAPSHOT_POWEROFF',
123
+ 'DISK_SNAPSHOT_REVERT_POWEROFF',
124
+ 'DISK_SNAPSHOT_DELETE_POWEROFF',
125
+ 'DISK_SNAPSHOT_SUSPENDED',
126
+ 'DISK_SNAPSHOT_REVERT_SUSPENDED',
127
+ 'DISK_SNAPSHOT_DELETE_SUSPENDED',
128
+ 'DISK_SNAPSHOT',
129
+ 'DISK_SNAPSHOT_REVERT',
130
+ 'DISK_SNAPSHOT_DELETE',
131
+ 'PROLOG_MIGRATE_UNKNOWN',
132
+ 'PROLOG_MIGRATE_UNKNOWN_FAILURE',
133
+ 'DISK_RESIZE',
134
+ 'DISK_RESIZE_POWEROFF',
135
+ 'DISK_RESIZE_UNDEPLOYED',
136
+ 'HOTPLUG_NIC_POWEROFF',
137
+ 'HOTPLUG_RESIZE',
138
+ 'HOTPLUG_SAVEAS_UNDEPLOYED',
139
+ 'HOTPLUG_SAVEAS_STOPPED',
140
+ 'BACKUP',
141
+ 'BACKUP_POWEROFF'
142
+ ]
141
143
 
142
144
  SHORT_VM_STATES={
143
- "INIT" => "init",
144
- "PENDING" => "pend",
145
- "HOLD" => "hold",
146
- "ACTIVE" => "actv",
147
- "STOPPED" => "stop",
148
- "SUSPENDED" => "susp",
149
- "DONE" => "done",
150
- "FAILED" => "fail",
151
- "POWEROFF" => "poff",
152
- "UNDEPLOYED" => "unde",
153
- "CLONING" => "clon",
154
- "CLONING_FAILURE" => "fail"
145
+ 'INIT' => 'init',
146
+ 'PENDING' => 'pend',
147
+ 'HOLD' => 'hold',
148
+ 'ACTIVE' => 'actv',
149
+ 'STOPPED' => 'stop',
150
+ 'SUSPENDED' => 'susp',
151
+ 'DONE' => 'done',
152
+ 'FAILED' => 'fail',
153
+ 'POWEROFF' => 'poff',
154
+ 'UNDEPLOYED' => 'unde',
155
+ 'CLONING' => 'clon',
156
+ 'CLONING_FAILURE' => 'fail'
155
157
  }
156
158
 
157
159
  SHORT_LCM_STATES={
158
- "PROLOG" => "prol",
159
- "BOOT" => "boot",
160
- "RUNNING" => "runn",
161
- "MIGRATE" => "migr",
162
- "SAVE_STOP" => "save",
163
- "SAVE_SUSPEND" => "save",
164
- "SAVE_MIGRATE" => "save",
165
- "PROLOG_MIGRATE" => "migr",
166
- "PROLOG_RESUME" => "prol",
167
- "EPILOG_STOP" => "epil",
168
- "EPILOG" => "epil",
169
- "SHUTDOWN" => "shut",
170
- "CANCEL" => "shut",
171
- "FAILURE" => "fail",
172
- "CLEANUP_RESUBMIT" => "clea",
173
- "UNKNOWN" => "unkn",
174
- "HOTPLUG" => "hotp",
175
- "SHUTDOWN_POWEROFF" => "shut",
176
- "BOOT_UNKNOWN" => "boot",
177
- "BOOT_POWEROFF" => "boot",
178
- "BOOT_SUSPENDED" => "boot",
179
- "BOOT_STOPPED" => "boot",
180
- "CLEANUP_DELETE" => "clea",
181
- "HOTPLUG_SNAPSHOT" => "snap",
182
- "HOTPLUG_NIC" => "hotp",
183
- "HOTPLUG_SAVEAS" => "hotp",
184
- "HOTPLUG_SAVEAS_POWEROFF" => "hotp",
185
- "HOTPLUG_SAVEAS_SUSPENDED" => "hotp",
186
- "SHUTDOWN_UNDEPLOY" => "shut",
187
- "EPILOG_UNDEPLOY" => "epil",
188
- "PROLOG_UNDEPLOY" => "prol",
189
- "BOOT_UNDEPLOY" => "boot",
190
- "HOTPLUG_PROLOG_POWEROFF" => "hotp",
191
- "HOTPLUG_EPILOG_POWEROFF" => "hotp",
192
- "BOOT_MIGRATE" => "boot",
193
- "BOOT_FAILURE" => "fail",
194
- "BOOT_MIGRATE_FAILURE" => "fail",
195
- "PROLOG_MIGRATE_FAILURE" => "fail",
196
- "PROLOG_FAILURE" => "fail",
197
- "EPILOG_FAILURE" => "fail",
198
- "EPILOG_STOP_FAILURE" => "fail",
199
- "EPILOG_UNDEPLOY_FAILURE" => "fail",
200
- "PROLOG_MIGRATE_POWEROFF" => "migr",
201
- "PROLOG_MIGRATE_POWEROFF_FAILURE" => "fail",
202
- "PROLOG_MIGRATE_SUSPEND" => "migr",
203
- "PROLOG_MIGRATE_SUSPEND_FAILURE" => "fail",
204
- "BOOT_UNDEPLOY_FAILURE" => "fail",
205
- "BOOT_STOPPED_FAILURE" => "fail",
206
- "PROLOG_RESUME_FAILURE" => "fail",
207
- "PROLOG_UNDEPLOY_FAILURE" => "fail",
208
- "DISK_SNAPSHOT_POWEROFF" => "snap",
209
- "DISK_SNAPSHOT_REVERT_POWEROFF" => "snap",
210
- "DISK_SNAPSHOT_DELETE_POWEROFF" => "snap",
211
- "DISK_SNAPSHOT_SUSPENDED" => "snap",
212
- "DISK_SNAPSHOT_REVERT_SUSPENDED"=> "snap",
213
- "DISK_SNAPSHOT_DELETE_SUSPENDED"=> "snap",
214
- "DISK_SNAPSHOT" => "snap",
215
- "DISK_SNAPSHOT_DELETE" => "snap",
216
- "PROLOG_MIGRATE_UNKNOWN" => "migr",
217
- "PROLOG_MIGRATE_UNKNOWN_FAILURE" => "fail",
218
- "DISK_RESIZE" => "drsz",
219
- "DISK_RESIZE_POWEROFF" => "drsz",
220
- "DISK_RESIZE_UNDEPLOYED" => "drsz",
221
- "HOTPLUG_NIC_POWEROFF" => "hotp",
222
- "HOTPLUG_RESIZE" => "hotp",
223
- "HOTPLUG_SAVEAS_UNDEPLOYED" => "hotp",
224
- "HOTPLUG_SAVEAS_STOPPED" => "hotp",
225
- "BACKUP" => "back",
226
- "BACKUP_POWEROFF" => "back",
160
+ 'PROLOG' => 'prol',
161
+ 'BOOT' => 'boot',
162
+ 'RUNNING' => 'runn',
163
+ 'MIGRATE' => 'migr',
164
+ 'SAVE_STOP' => 'save',
165
+ 'SAVE_SUSPEND' => 'save',
166
+ 'SAVE_MIGRATE' => 'save',
167
+ 'PROLOG_MIGRATE' => 'migr',
168
+ 'PROLOG_RESUME' => 'prol',
169
+ 'EPILOG_STOP' => 'epil',
170
+ 'EPILOG' => 'epil',
171
+ 'SHUTDOWN' => 'shut',
172
+ 'CANCEL' => 'shut',
173
+ 'FAILURE' => 'fail',
174
+ 'CLEANUP_RESUBMIT' => 'clea',
175
+ 'UNKNOWN' => 'unkn',
176
+ 'HOTPLUG' => 'hotp',
177
+ 'SHUTDOWN_POWEROFF' => 'shut',
178
+ 'BOOT_UNKNOWN' => 'boot',
179
+ 'BOOT_POWEROFF' => 'boot',
180
+ 'BOOT_SUSPENDED' => 'boot',
181
+ 'BOOT_STOPPED' => 'boot',
182
+ 'CLEANUP_DELETE' => 'clea',
183
+ 'HOTPLUG_SNAPSHOT' => 'snap',
184
+ 'HOTPLUG_NIC' => 'hotp',
185
+ 'HOTPLUG_SAVEAS' => 'hotp',
186
+ 'HOTPLUG_SAVEAS_POWEROFF' => 'hotp',
187
+ 'HOTPLUG_SAVEAS_SUSPENDED' => 'hotp',
188
+ 'SHUTDOWN_UNDEPLOY' => 'shut',
189
+ 'EPILOG_UNDEPLOY' => 'epil',
190
+ 'PROLOG_UNDEPLOY' => 'prol',
191
+ 'BOOT_UNDEPLOY' => 'boot',
192
+ 'HOTPLUG_PROLOG_POWEROFF' => 'hotp',
193
+ 'HOTPLUG_EPILOG_POWEROFF' => 'hotp',
194
+ 'BOOT_MIGRATE' => 'boot',
195
+ 'BOOT_FAILURE' => 'fail',
196
+ 'BOOT_MIGRATE_FAILURE' => 'fail',
197
+ 'PROLOG_MIGRATE_FAILURE' => 'fail',
198
+ 'PROLOG_FAILURE' => 'fail',
199
+ 'EPILOG_FAILURE' => 'fail',
200
+ 'EPILOG_STOP_FAILURE' => 'fail',
201
+ 'EPILOG_UNDEPLOY_FAILURE' => 'fail',
202
+ 'PROLOG_MIGRATE_POWEROFF' => 'migr',
203
+ 'PROLOG_MIGRATE_POWEROFF_FAILURE' => 'fail',
204
+ 'PROLOG_MIGRATE_SUSPEND' => 'migr',
205
+ 'PROLOG_MIGRATE_SUSPEND_FAILURE' => 'fail',
206
+ 'BOOT_UNDEPLOY_FAILURE' => 'fail',
207
+ 'BOOT_STOPPED_FAILURE' => 'fail',
208
+ 'PROLOG_RESUME_FAILURE' => 'fail',
209
+ 'PROLOG_UNDEPLOY_FAILURE' => 'fail',
210
+ 'DISK_SNAPSHOT_POWEROFF' => 'snap',
211
+ 'DISK_SNAPSHOT_REVERT_POWEROFF' => 'snap',
212
+ 'DISK_SNAPSHOT_DELETE_POWEROFF' => 'snap',
213
+ 'DISK_SNAPSHOT_SUSPENDED' => 'snap',
214
+ 'DISK_SNAPSHOT_REVERT_SUSPENDED'=> 'snap',
215
+ 'DISK_SNAPSHOT_DELETE_SUSPENDED'=> 'snap',
216
+ 'DISK_SNAPSHOT' => 'snap',
217
+ 'DISK_SNAPSHOT_DELETE' => 'snap',
218
+ 'PROLOG_MIGRATE_UNKNOWN' => 'migr',
219
+ 'PROLOG_MIGRATE_UNKNOWN_FAILURE' => 'fail',
220
+ 'DISK_RESIZE' => 'drsz',
221
+ 'DISK_RESIZE_POWEROFF' => 'drsz',
222
+ 'DISK_RESIZE_UNDEPLOYED' => 'drsz',
223
+ 'HOTPLUG_NIC_POWEROFF' => 'hotp',
224
+ 'HOTPLUG_RESIZE' => 'hotp',
225
+ 'HOTPLUG_SAVEAS_UNDEPLOYED' => 'hotp',
226
+ 'HOTPLUG_SAVEAS_STOPPED' => 'hotp',
227
+ 'BACKUP' => 'back',
228
+ 'BACKUP_POWEROFF' => 'back'
227
229
  }
228
230
 
229
- HISTORY_ACTION=%w{none migrate live-migrate shutdown shutdown-hard
230
- undeploy undeploy-hard hold release stop suspend resume boot delete
231
- delete-recreate reboot reboot-hard resched unresched poweroff
232
- poweroff-hard disk-attach disk-detach nic-attach nic-detach
233
- disk-snapshot-create disk-snapshot-delete terminate terminate-hard
234
- disk-resize deploy chown chmod updateconf rename resize update
235
- snapshot-resize snapshot-delete snapshot-revert disk-saveas
236
- disk-snapshot-revert recover retry monitor disk-snapshot-rename
237
- alias-attach alias-detach poweroff-migrate poweroff-hard-migrate
238
- backup nic-update
239
- }
231
+ HISTORY_ACTION=['none', 'migrate', 'live-migrate', 'shutdown', 'shutdown-hard', 'undeploy',
232
+ 'undeploy-hard', 'hold', 'release', 'stop', 'suspend', 'resume', 'boot', 'delete', 'delete-recreate', 'reboot', 'reboot-hard', 'resched', 'unresched', 'poweroff', 'poweroff-hard', 'disk-attach', 'disk-detach', 'nic-attach', 'nic-detach', 'disk-snapshot-create', 'disk-snapshot-delete', 'terminate', 'terminate-hard', 'disk-resize', 'deploy', 'chown', 'chmod', 'updateconf', 'rename', 'resize', 'update', 'snapshot-resize', 'snapshot-delete', 'snapshot-revert', 'disk-saveas', 'disk-snapshot-revert', 'recover', 'retry', 'monitor', 'disk-snapshot-rename', 'alias-attach', 'alias-detach', 'poweroff-migrate', 'poweroff-hard-migrate', 'backup', 'nic-update']
240
233
 
241
234
  EXTERNAL_IP_ATTRS = [
242
235
  'GUEST_IP',
@@ -249,14 +242,15 @@ module OpenNebula
249
242
 
250
243
  # VirtualMachineDriver constants
251
244
  module Driver
245
+
252
246
  POLL_ATTRIBUTE = {
253
- :memory => "MEMORY",
254
- :cpu => "CPU",
255
- :nettx => "NETTX",
256
- :netrx => "NETRX",
257
- :state => "STATE",
258
- :disk_size => "DISK_SIZE",
259
- :snapshot_size => "SNAPSHOT_SIZE"
247
+ :memory => 'MEMORY',
248
+ :cpu => 'CPU',
249
+ :nettx => 'NETTX',
250
+ :netrx => 'NETRX',
251
+ :state => 'STATE',
252
+ :disk_size => 'DISK_SIZE',
253
+ :snapshot_size => 'SNAPSHOT_SIZE'
260
254
  }
261
255
 
262
256
  VM_STATE = {
@@ -266,6 +260,7 @@ module OpenNebula
266
260
  :deleted => 'd',
267
261
  :unknown => '-'
268
262
  }
263
+
269
264
  end
270
265
 
271
266
  # Creates a VirtualMachine description with just its identifier
@@ -275,25 +270,25 @@ module OpenNebula
275
270
  # Example:
276
271
  # vm = VirtualMachine.new(VirtualMachine.build_xml(3),rpc_client)
277
272
  #
278
- def VirtualMachine.build_xml(pe_id=nil)
273
+ def self.build_xml(pe_id = nil)
279
274
  if pe_id
280
275
  vm_xml = "<VM><ID>#{pe_id}</ID></VM>"
281
276
  else
282
- vm_xml = "<VM></VM>"
277
+ vm_xml = '<VM></VM>'
283
278
  end
284
279
 
285
280
  XMLElement.build_xml(vm_xml, 'VM')
286
281
  end
287
282
 
288
- def VirtualMachine.get_history_action(action)
289
- return HISTORY_ACTION[action.to_i]
283
+ def self.get_history_action(action)
284
+ HISTORY_ACTION[action.to_i]
290
285
  end
291
286
 
292
287
  # Class constructor
293
288
  def initialize(xml, client)
294
289
  LockableExt.make_lockable(self, VM_METHODS)
295
290
 
296
- super(xml,client)
291
+ super(xml, client)
297
292
  end
298
293
 
299
294
  #######################################################################
@@ -305,7 +300,7 @@ module OpenNebula
305
300
  super(VM_METHODS[:info], 'VM', decrypt)
306
301
  end
307
302
 
308
- alias_method :info!, :info
303
+ alias info! info
309
304
 
310
305
  # Allocates a new VirtualMachine in OpenNebula
311
306
  #
@@ -316,7 +311,7 @@ module OpenNebula
316
311
  #
317
312
  # @return [nil, OpenNebula::Error] nil in case of success, Error
318
313
  # otherwise
319
- def allocate(description, hold=false)
314
+ def allocate(description, hold = false)
320
315
  super(VM_METHODS[:allocate], description, hold)
321
316
  end
322
317
 
@@ -328,7 +323,7 @@ module OpenNebula
328
323
  #
329
324
  # @return [nil, OpenNebula::Error] nil in case of success, Error
330
325
  # otherwise
331
- def update(new_template=nil, append=false)
326
+ def update(new_template = nil, append = false)
332
327
  super(VM_METHODS[:update], new_template, append ? 1 : 0)
333
328
  end
334
329
 
@@ -337,7 +332,7 @@ module OpenNebula
337
332
  # @param indent [true,false] indents the resulting string, defaults to true
338
333
  #
339
334
  # @return [String] The USER_TEMPLATE
340
- def user_template_str(indent=true)
335
+ def user_template_str(indent = true)
341
336
  template_like_str('USER_TEMPLATE', indent)
342
337
  end
343
338
 
@@ -353,7 +348,7 @@ module OpenNebula
353
348
  end
354
349
 
355
350
  def replace(opts = {})
356
- super(opts, "USER_TEMPLATE")
351
+ super(opts, 'USER_TEMPLATE')
357
352
  end
358
353
 
359
354
  # Initiates the instance of the VM on the target host.
@@ -368,40 +363,40 @@ module OpenNebula
368
363
  #
369
364
  # @return [nil, OpenNebula::Error] nil in case of success, Error
370
365
  # otherwise
371
- def deploy(host_id, enforce=false, ds_id=-1, extra_template="")
366
+ def deploy(host_id, enforce = false, ds_id = -1, extra_template = '')
372
367
  enforce ||= false
373
368
  ds_id ||= -1
374
- extra_template ||= ""
369
+ extra_template ||= ''
375
370
 
376
- self.info
371
+ info
377
372
 
378
- return call(VM_METHODS[:deploy],
379
- @pe_id,
380
- host_id.to_i,
381
- enforce,
382
- ds_id.to_i,
383
- extra_template)
373
+ call(VM_METHODS[:deploy],
374
+ @pe_id,
375
+ host_id.to_i,
376
+ enforce,
377
+ ds_id.to_i,
378
+ extra_template)
384
379
  end
385
380
 
386
381
  # Shutdowns an already deployed VM
387
- def terminate(hard=false)
382
+ def terminate(hard = false)
388
383
  action(hard ? 'terminate-hard' : 'terminate')
389
384
  end
390
385
 
391
- alias_method :shutdown, :terminate
386
+ alias shutdown terminate
392
387
 
393
388
  # Shuts down an already deployed VM, saving its state in the system DS
394
- def undeploy(hard=false)
389
+ def undeploy(hard = false)
395
390
  action(hard ? 'undeploy-hard' : 'undeploy')
396
391
  end
397
392
 
398
393
  # Powers off a running VM
399
- def poweroff(hard=false)
394
+ def poweroff(hard = false)
400
395
  action(hard ? 'poweroff-hard' : 'poweroff')
401
396
  end
402
397
 
403
398
  # Reboots an already deployed VM
404
- def reboot(hard=false)
399
+ def reboot(hard = false)
405
400
  action(hard ? 'reboot-hard' : 'reboot')
406
401
  end
407
402
 
@@ -436,10 +431,10 @@ module OpenNebula
436
431
  # @return [nil, OpenNebula::Error] nil in case of success, Error
437
432
  # otherwise
438
433
  def disk_attach(disk_template)
439
- return call(VM_METHODS[:attach], @pe_id, disk_template)
434
+ call(VM_METHODS[:attach], @pe_id, disk_template)
440
435
  end
441
436
 
442
- alias_method :attachdisk, :disk_attach
437
+ alias attachdisk disk_attach
443
438
 
444
439
  # Detaches a disk from a running VM
445
440
  #
@@ -447,10 +442,10 @@ module OpenNebula
447
442
  # @return [nil, OpenNebula::Error] nil in case of success, Error
448
443
  # otherwise
449
444
  def disk_detach(disk_id)
450
- return call(VM_METHODS[:detach], @pe_id, disk_id)
445
+ call(VM_METHODS[:detach], @pe_id, disk_id)
451
446
  end
452
447
 
453
- alias_method :detachdisk, :disk_detach
448
+ alias detachdisk disk_detach
454
449
 
455
450
  # Attaches a NIC to a running VM
456
451
  #
@@ -458,7 +453,7 @@ module OpenNebula
458
453
  # @return [nil, OpenNebula::Error] nil in case of success, Error
459
454
  # otherwise
460
455
  def nic_attach(nic_template)
461
- return call(VM_METHODS[:attachnic], @pe_id, nic_template)
456
+ call(VM_METHODS[:attachnic], @pe_id, nic_template)
462
457
  end
463
458
 
464
459
  # Detaches a NIC from a running VM
@@ -467,7 +462,7 @@ module OpenNebula
467
462
  # @return [nil, OpenNebula::Error] nil in case of success, Error
468
463
  # otherwise
469
464
  def nic_detach(nic_id)
470
- return call(VM_METHODS[:detachnic], @pe_id, nic_id)
465
+ call(VM_METHODS[:detachnic], @pe_id, nic_id)
471
466
  end
472
467
 
473
468
  # Updates a NIC for a running VM
@@ -479,7 +474,7 @@ module OpenNebula
479
474
  # @return [nil, OpenNebula::Error] nil in case of success, Error
480
475
  # otherwise
481
476
  def nic_update(nic_id, nic_template, append = false)
482
- return call(VM_METHODS[:updatenic], @pe_id, nic_id, nic_template, append ? 1 : 0)
477
+ call(VM_METHODS[:updatenic], @pe_id, nic_id, nic_template, append ? 1 : 0)
483
478
  end
484
479
 
485
480
  # Attaches a Security Groupt to a running VM
@@ -489,7 +484,7 @@ module OpenNebula
489
484
  # @return [nil, OpenNebula::Error] nil in case of success, Error
490
485
  # otherwise
491
486
  def sg_attach(nic_id, sg_id)
492
- return call(VM_METHODS[:attachsg], @pe_id, nic_id, sg_id)
487
+ call(VM_METHODS[:attachsg], @pe_id, nic_id, sg_id)
493
488
  end
494
489
 
495
490
  # Detaches a Security Group from a running VM
@@ -498,7 +493,7 @@ module OpenNebula
498
493
  # @return [nil, OpenNebula::Error] nil in case of success, Error
499
494
  # otherwise
500
495
  def sg_detach(nic_id, sg_id)
501
- return call(VM_METHODS[:detachsg], @pe_id, nic_id, sg_id)
496
+ call(VM_METHODS[:detachsg], @pe_id, nic_id, sg_id)
502
497
  end
503
498
 
504
499
  # Sets the re-scheduling flag for the VM
@@ -530,13 +525,13 @@ module OpenNebula
530
525
  #
531
526
  # @return [nil, OpenNebula::Error] nil in case of success, Error
532
527
  # otherwise
533
- def migrate(host_id, live=false, enforce=false, ds_id=-1, mtype=0)
528
+ def migrate(host_id, live = false, enforce = false, ds_id = -1, mtype = 0)
534
529
  call(VM_METHODS[:migrate], @pe_id, host_id.to_i, live==true,
535
- enforce, ds_id.to_i, mtype)
530
+ enforce, ds_id.to_i, mtype)
536
531
  end
537
532
 
538
533
  # @deprecated use {#migrate} instead
539
- def live_migrate(host_id, enforce=false)
534
+ def live_migrate(host_id, enforce = false)
540
535
  migrate(host_id, true, enforce)
541
536
  end
542
537
 
@@ -552,16 +547,15 @@ module OpenNebula
552
547
  #
553
548
  # @return [Integer, OpenNebula::Error] the new Image ID in case of
554
549
  # success, error otherwise
555
- def disk_saveas(disk_id, image_name, image_type="", snap_id=-1)
556
- return Error.new('ID not defined') if !@pe_id
550
+ def disk_saveas(disk_id, image_name, image_type = '', snap_id = -1)
551
+ return Error.new('ID not defined') unless @pe_id
557
552
 
558
- rc = @client.call(VM_METHODS[:disksaveas],
559
- @pe_id,
560
- disk_id,
561
- image_name,
562
- image_type,
563
- snap_id)
564
- return rc
553
+ @client.call(VM_METHODS[:disksaveas],
554
+ @pe_id,
555
+ disk_id,
556
+ image_name,
557
+ image_type,
558
+ snap_id)
565
559
  end
566
560
 
567
561
  # Resize the VM
@@ -576,7 +570,7 @@ module OpenNebula
576
570
  # @return [nil, OpenNebula::Error] nil in case of success, Error
577
571
  # otherwise
578
572
  def resize(capacity_template, enforce)
579
- return call(VM_METHODS[:resize], @pe_id, capacity_template, enforce)
573
+ call(VM_METHODS[:resize], @pe_id, capacity_template, enforce)
580
574
  end
581
575
 
582
576
  # Changes the owner/group
@@ -602,7 +596,7 @@ module OpenNebula
602
596
  # @return [nil, OpenNebula::Error] nil in case of success, Error
603
597
  # otherwise
604
598
  def chmod(owner_u, owner_m, owner_a, group_u, group_m, group_a, other_u,
605
- other_m, other_a)
599
+ other_m, other_a)
606
600
  super(VM_METHODS[:chmod], owner_u, owner_m, owner_a, group_u,
607
601
  group_m, group_a, other_u, other_m, other_a)
608
602
  end
@@ -625,16 +619,16 @@ module OpenNebula
625
619
  # }
626
620
  #
627
621
  def monitoring(xpath_expressions)
628
- return super(VM_METHODS[:monitoring], xpath_expressions)
622
+ super(VM_METHODS[:monitoring], xpath_expressions)
629
623
  end
630
624
 
631
625
  # Retrieves this VM's monitoring data from OpenNebula, in XML
632
626
  #
633
627
  # @return [String] VM monitoring data, in XML
634
- def monitoring_xml()
635
- return Error.new('ID not defined') if !@pe_id
628
+ def monitoring_xml
629
+ return Error.new('ID not defined') unless @pe_id
636
630
 
637
- return @client.call(VM_METHODS[:monitoring], @pe_id)
631
+ @client.call(VM_METHODS[:monitoring], @pe_id)
638
632
  end
639
633
 
640
634
  # Renames this VM
@@ -644,7 +638,7 @@ module OpenNebula
644
638
  # @return [nil, OpenNebula::Error] nil in case of success, Error
645
639
  # otherwise
646
640
  def rename(name)
647
- return call(VM_METHODS[:rename], @pe_id, name)
641
+ call(VM_METHODS[:rename], @pe_id, name)
648
642
  end
649
643
 
650
644
  # Creates a new VM snapshot
@@ -653,11 +647,11 @@ module OpenNebula
653
647
  #
654
648
  # @return [Integer, OpenNebula::Error] The new snaphost ID in case
655
649
  # of success, Error otherwise
656
- def snapshot_create(name="")
657
- return Error.new('ID not defined') if !@pe_id
650
+ def snapshot_create(name = '')
651
+ return Error.new('ID not defined') unless @pe_id
658
652
 
659
- name ||= ""
660
- return @client.call(VM_METHODS[:snapshotcreate], @pe_id, name)
653
+ name ||= ''
654
+ @client.call(VM_METHODS[:snapshotcreate], @pe_id, name)
661
655
  end
662
656
 
663
657
  # Reverts to a snapshot
@@ -667,7 +661,7 @@ module OpenNebula
667
661
  # @return [nil, OpenNebula::Error] nil in case of success, Error
668
662
  # otherwise
669
663
  def snapshot_revert(snap_id)
670
- return call(VM_METHODS[:snapshotrevert], @pe_id, snap_id)
664
+ call(VM_METHODS[:snapshotrevert], @pe_id, snap_id)
671
665
  end
672
666
 
673
667
  # Deletes a VM snapshot
@@ -677,7 +671,7 @@ module OpenNebula
677
671
  # @return [nil, OpenNebula::Error] nil in case of success, Error
678
672
  # otherwise
679
673
  def snapshot_delete(snap_id)
680
- return call(VM_METHODS[:snapshotdelete], @pe_id, snap_id)
674
+ call(VM_METHODS[:snapshotdelete], @pe_id, snap_id)
681
675
  end
682
676
 
683
677
  # Takes a new snapshot of a disk
@@ -687,7 +681,7 @@ module OpenNebula
687
681
  #
688
682
  # @return [Integer, OpenNebula::Error] The new snapshot ID or error
689
683
  def disk_snapshot_create(disk_id, name)
690
- return call(VM_METHODS[:disksnapshotcreate], @pe_id, disk_id, name)
684
+ call(VM_METHODS[:disksnapshotcreate], @pe_id, disk_id, name)
691
685
  end
692
686
 
693
687
  # Reverts disk state to a previously taken snapshot
@@ -698,7 +692,7 @@ module OpenNebula
698
692
  # @return [nil, OpenNebula::Error] nil in case of success, Error
699
693
  # otherwise
700
694
  def disk_snapshot_revert(disk_id, snap_id)
701
- return call(VM_METHODS[:disksnapshotrevert], @pe_id, disk_id, snap_id)
695
+ call(VM_METHODS[:disksnapshotrevert], @pe_id, disk_id, snap_id)
702
696
  end
703
697
 
704
698
  # Deletes a disk snapshot
@@ -709,7 +703,7 @@ module OpenNebula
709
703
  # @return [nil, OpenNebula::Error] nil in case of success, Error
710
704
  # otherwise
711
705
  def disk_snapshot_delete(disk_id, snap_id)
712
- return call(VM_METHODS[:disksnapshotdelete], @pe_id, disk_id, snap_id)
706
+ call(VM_METHODS[:disksnapshotdelete], @pe_id, disk_id, snap_id)
713
707
  end
714
708
 
715
709
  # Renames a disk snapshot
@@ -721,7 +715,7 @@ module OpenNebula
721
715
  # @return [nil, OpenNebula::Error] nil in case of success, Error
722
716
  # otherwise
723
717
  def disk_snapshot_rename(disk_id, snap_id, new_name)
724
- return call(VM_METHODS[:disksnapshotrename], @pe_id, disk_id, snap_id, new_name)
718
+ call(VM_METHODS[:disksnapshotrename], @pe_id, disk_id, snap_id, new_name)
725
719
  end
726
720
 
727
721
  # Changes the size of a disk
@@ -731,7 +725,7 @@ module OpenNebula
731
725
  #
732
726
  # @return [nil, OpenNebula::Error] nil in case of success or error
733
727
  def disk_resize(disk_id, size)
734
- return call(VM_METHODS[:diskresize], @pe_id, disk_id, size.to_s)
728
+ call(VM_METHODS[:diskresize], @pe_id, disk_id, size.to_s)
735
729
  end
736
730
 
737
731
  # Recovers an ACTIVE VM
@@ -742,11 +736,11 @@ module OpenNebula
742
736
  # @return [nil, OpenNebula::Error] nil in case of success, Error
743
737
  # otherwise
744
738
  def recover(result)
745
- return call(VM_METHODS[:recover], @pe_id, result)
739
+ call(VM_METHODS[:recover], @pe_id, result)
746
740
  end
747
741
 
748
742
  # Deletes a VM from the pool
749
- def delete(recreate=false)
743
+ def delete(recreate = false)
750
744
  if recreate
751
745
  recover(4)
752
746
  else
@@ -767,7 +761,7 @@ module OpenNebula
767
761
  # @return [nil, OpenNebula::Error] nil in case of success, Error
768
762
  # otherwise
769
763
  def updateconf(new_conf, append = false)
770
- return call(VM_METHODS[:updateconf], @pe_id, new_conf, append ? 1 : 0)
764
+ call(VM_METHODS[:updateconf], @pe_id, new_conf, append ? 1 : 0)
771
765
  end
772
766
 
773
767
  # Add sched actions
@@ -776,7 +770,7 @@ module OpenNebula
776
770
  # @return [nil, OpenNebula::Error] nil in case of success, Error
777
771
  # otherwise
778
772
  def sched_action_add(sched_template)
779
- return call(VM_METHODS[:schedadd], @pe_id, sched_template)
773
+ call(VM_METHODS[:schedadd], @pe_id, sched_template)
780
774
  end
781
775
 
782
776
  # Delete sched action
@@ -785,7 +779,7 @@ module OpenNebula
785
779
  # @return [nil, OpenNebula::Error] nil in case of success, Error
786
780
  # otherwise
787
781
  def sched_action_delete(sched_id)
788
- return call(VM_METHODS[:scheddelete], @pe_id, sched_id.to_i)
782
+ call(VM_METHODS[:scheddelete], @pe_id, sched_id.to_i)
789
783
  end
790
784
 
791
785
  # Update sched_action
@@ -795,8 +789,8 @@ module OpenNebula
795
789
  # @return [nil, OpenNebula::Error] nil in case of success, Error
796
790
  # otherwise
797
791
  def sched_action_update(sched_id, sched_template)
798
- return call(VM_METHODS[:schedupdate], @pe_id, sched_id.to_i,
799
- sched_template)
792
+ call(VM_METHODS[:schedupdate], @pe_id, sched_id.to_i,
793
+ sched_template)
800
794
  end
801
795
 
802
796
  # Generate a backup for the VM (backup config must be set)
@@ -805,15 +799,15 @@ module OpenNebula
805
799
  # @return [Integer, OpenNebula::Error] ID of the resulting BACKUP image
806
800
  # in case of success, Error otherwise.
807
801
  def backup(ds_id = -1, reset = false)
808
- return @client.call(VM_METHODS[:backup], @pe_id, ds_id, reset)
802
+ @client.call(VM_METHODS[:backup], @pe_id, ds_id, reset)
809
803
  end
810
804
 
811
805
  # Cancel ongoing backup operation for the VM
812
806
  #
813
807
  # @return [nil, OpenNebula::Error] nil in case of sucess, Error
814
808
  # otherwise.
815
- def backup_cancel()
816
- return @client.call(VM_METHODS[:backupcancel], @pe_id)
809
+ def backup_cancel
810
+ @client.call(VM_METHODS[:backupcancel], @pe_id)
817
811
  end
818
812
 
819
813
  ########################################################################
@@ -844,7 +838,7 @@ module OpenNebula
844
838
  def status
845
839
  short_state_str=SHORT_VM_STATES[state_str]
846
840
 
847
- if short_state_str=="actv"
841
+ if short_state_str=='actv'
848
842
  short_state_str=SHORT_LCM_STATES[lcm_state_str]
849
843
  end
850
844
 
@@ -866,7 +860,7 @@ module OpenNebula
866
860
  retrieve_xmlelements('//HISTORY')[seq].to_xml
867
861
  end
868
862
 
869
- def wait_state(state, timeout=120)
863
+ def wait_state(state, timeout = 120)
870
864
  require 'opennebula/wait_ext'
871
865
 
872
866
  extend OpenNebula::WaitExt
@@ -878,7 +872,7 @@ module OpenNebula
878
872
  true
879
873
  end
880
874
 
881
- def wait_state2(state, lcm_state, timeout=120)
875
+ def wait_state2(state, lcm_state, timeout = 120)
882
876
  extend OpenNebula::WaitExt
883
877
 
884
878
  rc = wait2(state, lcm_state, timeout)
@@ -888,26 +882,27 @@ module OpenNebula
888
882
  true
889
883
  end
890
884
 
891
- private
885
+ private
886
+
892
887
  def action(name)
893
- return Error.new('ID not defined') if !@pe_id
888
+ return Error.new('ID not defined') unless @pe_id
894
889
 
895
890
  rc = @client.call(VM_METHODS[:action], name, @pe_id)
896
- rc = nil if !OpenNebula.is_error?(rc)
891
+ rc = nil unless OpenNebula.is_error?(rc)
897
892
 
898
- return rc
893
+ rc
899
894
  end
900
895
 
901
- def wait_lcm_state(state, timeout=10)
902
- vm_state = ""
903
- lcm_state = ""
896
+ def wait_lcm_state(state, timeout = 10)
897
+ vm_state = ''
898
+ lcm_state = ''
904
899
 
905
900
  timeout.times do
906
- rc = info()
901
+ rc = info
907
902
  return rc if OpenNebula.is_error?(rc)
908
903
 
909
- vm_state = state_str()
910
- lcm_state = lcm_state_str()
904
+ vm_state = state_str
905
+ lcm_state = lcm_state_str
911
906
 
912
907
  if lcm_state == state
913
908
  return true
@@ -916,8 +911,10 @@ module OpenNebula
916
911
  sleep 1
917
912
  end
918
913
 
919
- return Error.new("Timeout expired for state #{state}. "<<
914
+ Error.new("Timeout expired for state #{state}. "<<
920
915
  "VM is in state #{vm_state}, #{lcm_state}")
921
916
  end
917
+
922
918
  end
919
+
923
920
  end