Skip to content

Commit

Permalink
Use task queue for CRUD operations on auth key pair
Browse files Browse the repository at this point in the history
  • Loading branch information
sseago committed Feb 17, 2017
1 parent 762c7db commit 4d7bf7b
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 16 deletions.
47 changes: 31 additions & 16 deletions app/controllers/auth_key_pair_cloud_controller.rb
Expand Up @@ -112,21 +112,15 @@ def create
ext_management_system = find_by_id_filtered(ManageIQ::Providers::CloudManager, options[:ems_id])
kls = kls.class_by_ems(ext_management_system)
if kls.is_available?(:create_key_pair, ext_management_system, options)
begin
kls.create_key_pair(ext_management_system, options)
add_flash(_("Creating %{model} %{name}") % {
:model => ui_lookup(:table => 'auth_key_pair_cloud'),
:name => options[:name]})
rescue => ex
add_flash(_("Unable to create %{model} %{name}. %{error}") % {
:model => ui_lookup(:table => 'auth_key_pair_cloud'),
:name => options[:name],
:error => get_error_message_from_fog(ex.to_s)}, :error)
task_id = kls.create_key_pair_queue(session[:userid], ext_management_system, options)

add_flash(_("Key Pair creation failed: Task start failed"), :error) unless task_id.kind_of?(Integer)

if @flash_array
javascript_flash(:spinner_off => true)
else
initiate_wait_for_task(:task_id => task_id, :action => "create_finished")
end
@breadcrumbs.pop if @breadcrumbs
session[:edit] = nil
session[:flash_msgs] = @flash_array.dup if @flash_array
javascript_redirect :action => "show_list"
else
@in_a_form = true
add_flash(kls.is_available_now_error_message(:create_key_pair, ext_management_system, kls))
Expand All @@ -149,6 +143,28 @@ def create
end
end

def create_finished
task_id = session[:async][:params][:task_id]
key_pair_name = session[:async][:params][:name]
task = MiqTask.find(task_id)
if MiqTask.status_ok?(task.status)
add_flash(_("Key Pair \"%{name}\" created") % {
:name => key_pair_name
})
else
add_flash(_("Unable to create Key Pair \"%{name}\": %{details}") % {
:name => key_pair_name,
:details => task.message
}, :error)
end

@breadcrumbs.pop if @breadcrumbs
session[:edit] = nil
session[:flash_msgs] = @flash_array.dup if @flash_array

javascript_redirect :action => "show_list"
end

# delete selected auth key pairs
def delete_auth_key_pairs
assert_privileges("auth_key_pair_cloud_delete")
Expand Down Expand Up @@ -205,8 +221,7 @@ def process_deletions(key_pairs)
:userid => session[:userid]
}
AuditEvent.success(audit)
kp.delete_key_pair
kp.destroy
kp.delete_key_pair_queue(session[:userid])
end
add_flash(n_("Delete initiated for %{number} Key Pair",
"Delete initiated for %{number} Key Pairs", key_pairs.length) % {:number => key_pairs.length})
Expand Down
1 change: 1 addition & 0 deletions config/routes.rb
Expand Up @@ -152,6 +152,7 @@
show_list
tagging_edit
tag_edit_form_field_changed
wait_for_task
) + adv_search_post + compare_post + exp_post + save_post
},

Expand Down

0 comments on commit 4d7bf7b

Please sign in to comment.