Skip to content

Commit

Permalink
Merge pull request #1201 from Autosde/adrian/740029-add_delete_and_up…
Browse files Browse the repository at this point in the history
…date_to_host_initiator_groups

Adrian/740029 add delete and update to host initiator groups
  • Loading branch information
agrare committed Mar 1, 2023
2 parents ac4c232 + 11fca08 commit 8b4513f
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 1 deletion.
16 changes: 16 additions & 0 deletions app/controllers/api/host_initiator_groups_controller.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,25 @@
module Api
class HostInitiatorGroupsController < BaseController
def refresh_resource(type, id, _data = nil)
enqueue_ems_action(type, id, "Refreshing", :method_name => :refresh_ems)
end

def create_resource(type, _id = nil, data = {})
create_ems_resource(type, data, :supports => true) do |ems, klass|
{:task_id => klass.create_host_initiator_group_queue(User.current_userid, ems, data)}
end
end

def delete_resource_action(type, id = nil, _data = nil)
api_resource(type, id, "Deleting", :supports => :delete) do |host_initiator_group|
{:task_id => host_initiator_group.delete_host_initiator_group_queue(User.current_userid)}
end
end

def edit_resource(type, id, data = {})
api_resource(type, id, "Updating", :supports => :update) do |host_initiator_group|
{:task_id => host_initiator_group.update_host_initiator_group_queue(User.current_userid, data.deep_symbolize_keys)}
end
end
end
end
15 changes: 14 additions & 1 deletion config/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1808,7 +1808,7 @@
:identifier: host_initiator_group
:options:
- :collection
:verbs: *gp
:verbs: *gpppd
:klass: HostInitiatorGroup
:subcollections:
:collection_actions:
Expand All @@ -1818,10 +1818,23 @@
:post:
- :name: create
:identifier: host_initiator_group_new
- :name: refresh
:identifier: host_initiator_group_refresh
- :name: delete
:identifier: host_initiator_group_delete
- :name: edit
:identifier: host_initiator_group_edit
:resource_actions:
:get:
- :name: read
:identifier: host_initiator_group_show
:post:
- :name: refresh
:identifier: host_initiator_group_refresh
- :name: delete
:identifier: host_initiator_group_delete
- :name: edit
:identifier: host_initiator_group_edit
:host_initiators:
:description: Host Initiators
:identifier: host_initiator
Expand Down
30 changes: 30 additions & 0 deletions spec/requests/host_initiator_groups_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,34 @@
expect(response).to have_http_status(:bad_request)
end
end

it "deletes a single Host Initiator Group" do
provider = FactoryBot.create(:ems_autosde, :name => 'Autosde')
host_initiator_group = FactoryBot.create("ManageIQ::Providers::Autosde::StorageManager::HostInitiatorGroup", :name => 'test_host_initiator_group', :ext_management_system => provider)
api_basic_authorize('host_initiator_group_delete')

stub_supports(HostInitiatorGroup, :delete)
post(api_host_initiator_group_url(nil, host_initiator_group), :params => gen_request(:delete))

expect_single_action_result(:success => true, :message => /Deleting Host Initiator Group id: #{host_initiator_group.id} name: '#{host_initiator_group.name}'/)
end

it "deletes multiple Host Initiator Groups" do
provider = FactoryBot.create(:ems_autosde, :name => 'Autosde')
host_initiator_group1 = FactoryBot.create("ManageIQ::Providers::Autosde::StorageManager::HostInitiatorGroup", :name => 'test_host_initiator_group1', :ext_management_system => provider)
host_initiator_group2 = FactoryBot.create("ManageIQ::Providers::Autosde::StorageManager::HostInitiatorGroup", :name => 'test_host_initiator_group2', :ext_management_system => provider)
api_basic_authorize('host_initiator_group_delete')

stub_supports(HostInitiatorGroup, :delete)
post(api_host_initiator_groups_url, :params => gen_request(:delete, [{"href" => api_host_initiator_group_url(nil, host_initiator_group1)}, {"href" => api_host_initiator_group_url(nil, host_initiator_group2)}]))

results = response.parsed_body["results"]

expect(results[0]["message"]).to match(/Deleting Host Initiator Group id: #{host_initiator_group1.id} name: '#{host_initiator_group1.name}'/)
expect(results[0]["success"]).to match(true)
expect(results[1]["message"]).to match(/Deleting Host Initiator Group id: #{host_initiator_group2.id} name: '#{host_initiator_group2.name}'/)
expect(results[1]["success"]).to match(true)

expect(response).to have_http_status(:ok)
end
end

0 comments on commit 8b4513f

Please sign in to comment.