@@ -55,27 +55,23 @@ def delete_resource(type, id, _data = nil)
55
55
end
56
56
57
57
def set_owner_resource ( type , id = nil , data = nil )
58
- raise BadRequestError , "Must specify an id for setting the owner of a #{ type } resource" unless id
58
+ api_resource ( type , id , "Setting owner of" ) do |vm |
59
+ owner = data . blank? ? "" : data [ "owner" ] . strip
60
+ raise BadRequestError , "Must specify an owner" if owner . blank?
59
61
60
- owner = data . blank? ? "" : data [ "owner" ] . strip
61
- raise BadRequestError , "Must specify an owner" if owner . blank?
62
+ user = User . lookup_by_identity ( owner )
63
+ raise BadRequestError , "Invalid user #{ owner } specified" unless user
62
64
63
- api_action ( type , id ) do |klass |
64
- vm = resource_search ( id , type , klass )
65
- api_log_info ( "Setting owner of #{ vm_ident ( vm ) } " )
66
-
67
- set_owner_vm ( vm , owner )
65
+ vm . update! ( :evm_owner => user , :miq_group => user . current_group )
66
+ { }
68
67
end
69
68
end
70
69
71
70
def add_lifecycle_event_resource ( type , id = nil , data = nil )
72
- raise BadRequestError , "Must specify an id for adding a Lifecycle Event to a #{ type } resource" unless id
73
-
74
- api_action ( type , id ) do |klass |
75
- vm = resource_search ( id , type , klass )
76
- api_log_info ( "Adding Lifecycle Event to #{ vm_ident ( vm ) } " )
77
-
78
- add_lifecycle_event_vm ( vm , lifecycle_event_from_data ( data ) )
71
+ lifecycle_event = lifecycle_event_from_data ( data )
72
+ api_resource ( type , id , "Adding Life Cycle Event #{ lifecycle_event [ 'event' ] } to" ) do |vm |
73
+ LifecycleEvent . create_event ( vm , lifecycle_event )
74
+ { }
79
75
end
80
76
end
81
77
@@ -88,11 +84,11 @@ def add_event_resource(type, id = nil, data = nil)
88
84
89
85
data ||= { }
90
86
91
- api_action ( type , id ) do |klass |
92
- vm = resource_search ( id , type , klass )
93
- api_log_info ( "Adding Event to #{ vm_ident ( vm ) } " )
87
+ api_resource ( type , id , "Adding Event to" ) do |vm |
88
+ event_timestamp = data [ "event_time" ] . blank? ? Time . now . utc : data [ "event_time" ] . to_s . to_time ( :utc )
94
89
95
- vm_event ( vm , data [ "event_type" ] . to_s , data [ "event_message" ] . to_s , data [ "event_time" ] . to_s )
90
+ vm . add_ems_event ( data [ "event_type" ] . to_s , data [ "event_message" ] . to_s , event_timestamp )
91
+ { }
96
92
end
97
93
end
98
94
@@ -107,18 +103,13 @@ def reboot_guest_resource(type, id = nil, _data = nil)
107
103
central_admin :reboot_guest_resource , :reboot_guest
108
104
109
105
def rename_resource ( type , id , data = { } )
110
- raise BadRequestError , "Must specify an id for renaming a #{ type } resource" unless id
111
-
112
106
new_name = data . blank? ? "" : data [ "new_name" ] . strip
113
- raise BadRequestError , "Must specify a new_name" if new_name . blank?
107
+ api_resource ( type , id , "Renaming" , :supports => :rename ) do |vm |
108
+ raise BadRequestError , "Must specify a new_name" if new_name . blank?
114
109
115
- api_action ( type , id ) do |klass |
116
- vm = resource_search ( id , type , klass )
117
- api_log_info ( "Renaming #{ vm_ident ( vm ) } to #{ new_name } " )
110
+ task_id = vm . rename_queue ( User . current_user . userid , new_name )
118
111
119
- result = validate_vm_for_action ( vm , "rename" )
120
- result = rename_vm ( vm , new_name ) if result [ :success ]
121
- result
112
+ action_result ( true , "Renaming #{ model_ident ( vm , type ) } to #{ new_name } " , :task_id => task_id )
122
113
end
123
114
end
124
115
central_admin :rename_resource , :rename
@@ -154,20 +145,21 @@ def request_console_resource(type, id = nil, data = nil)
154
145
end
155
146
156
147
def set_miq_server_resource ( type , id , data )
157
- vm = resource_search ( id , type )
158
-
159
- miq_server = if data [ 'miq_server' ] . empty?
160
- nil
161
- else
162
- miq_server_id = parse_id ( data [ 'miq_server' ] , :servers )
163
- raise 'Must specify a valid miq_server href or id' unless miq_server_id
164
- resource_search ( miq_server_id , :servers )
165
- end
166
-
167
- vm . miq_server = miq_server
168
- action_result ( true , "#{ miq_server_message ( miq_server ) } for #{ vm_ident ( vm ) } " )
169
- rescue => err
170
- action_result ( false , "Failed to set miq_server - #{ err } " )
148
+ if data [ 'miq_server' ] . empty?
149
+ api_resource ( type , id , "Removing miq_server from" ) do |vm |
150
+ vm . miq_server = nil
151
+ { }
152
+ end
153
+ else
154
+ api_resource ( type , id , "Setting miq_server for" ) do |vm |
155
+ miq_server_id = parse_id ( data [ 'miq_server' ] , :servers )
156
+ raise BadRequestError , 'Must specify a valid miq_server href or id' unless miq_server_id
157
+
158
+ miq_server = resource_search ( miq_server_id , :servers )
159
+ vm . miq_server = miq_server
160
+ { }
161
+ end
162
+ end
171
163
end
172
164
173
165
def request_retire_resource ( type , id = nil , data = nil )
@@ -200,69 +192,11 @@ def options
200
192
201
193
private
202
194
203
- def miq_server_message ( miq_server )
204
- miq_server ? "Set miq_server id:#{ miq_server . id } " : "Removed miq_server"
205
- end
206
-
207
- def vm_ident ( vm )
208
- "VM id:#{ vm . id } name:'#{ vm . name } '"
209
- end
210
-
211
- def validate_vm_for_action ( vm , action )
212
- action_result ( vm . supports? ( action ) , vm . unsupported_reason ( action . to_sym ) )
213
- end
214
-
215
- def validate_vm_for_remote_console ( vm , protocol = nil )
216
- protocol ||= "mks"
217
- vm . validate_remote_console_acquire_ticket ( protocol )
218
- action_result ( true , "" )
219
- rescue MiqException ::RemoteConsoleNotSupportedError => err
220
- action_result ( false , err . message )
221
- end
222
-
223
- def set_owner_vm ( vm , owner )
224
- desc = "#{ vm_ident ( vm ) } setting owner to '#{ owner } '"
225
- user = User . lookup_by_identity ( owner )
226
- raise "Invalid user #{ owner } specified" unless user
227
- vm . evm_owner = user
228
- vm . miq_group = user . current_group unless user . nil?
229
- vm . save!
230
- action_result ( true , desc )
231
- rescue => err
232
- action_result ( false , err . to_s )
233
- end
234
-
235
- def add_lifecycle_event_vm ( vm , lifecycle_event )
236
- desc = "#{ vm_ident ( vm ) } adding lifecycle event=#{ lifecycle_event [ 'event' ] } message=#{ lifecycle_event [ 'message' ] } "
237
- event = LifecycleEvent . create_event ( vm , lifecycle_event )
238
- action_result ( event . present? , desc )
239
- rescue => err
240
- action_result ( false , err . to_s )
241
- end
242
-
243
195
def lifecycle_event_from_data ( data )
244
196
data ||= { }
245
197
data = data . slice ( "event" , "status" , "message" , "created_by" )
246
198
data . keys . each { |k | data [ k ] = data [ k ] . to_s }
247
199
data
248
200
end
249
-
250
- def vm_event ( vm , event_type , event_message , event_time )
251
- desc = "Adding Event type=#{ event_type } message=#{ event_message } "
252
- event_timestamp = event_time . blank? ? Time . now . utc : event_time . to_time ( :utc )
253
-
254
- vm . add_ems_event ( event_type , event_message , event_timestamp )
255
- action_result ( true , desc )
256
- rescue => err
257
- action_result ( false , err . to_s )
258
- end
259
-
260
- def rename_vm ( vm , new_name )
261
- desc = "#{ vm_ident ( vm ) } renaming to #{ new_name } "
262
- task_id = vm . rename_queue ( User . current_user . userid , new_name )
263
- action_result ( true , desc , :task_id => task_id )
264
- rescue => err
265
- action_result ( false , err . to_s )
266
- end
267
201
end
268
202
end
0 commit comments