Skip to content

Commit

Permalink
Merge pull request #17679 from pkomanek/remove_generic_object_from_al…
Browse files Browse the repository at this point in the history
…l_related_services_before_destroy

Remove generic object from all related services before destroy
  • Loading branch information
gmcculloug authored Jul 10, 2018
2 parents ebfcf7c + 9e1380e commit 6bf5eca
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
7 changes: 7 additions & 0 deletions app/models/generic_object.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class GenericObject < ApplicationRecord

delegate :name, :to => :generic_object_definition, :prefix => true, :allow_nil => false
virtual_column :generic_object_definition_name, :type => :string
before_destroy :remove_go_from_all_related_services

def initialize(attributes = {})
# generic_object_definition will be set first since hash iteration is based on the order of key insertion
Expand Down Expand Up @@ -200,4 +201,10 @@ def _call_automate(method_name, *args)
ws = MiqAeEngine.deliver(options)
ws.root['method_result']
end

def remove_go_from_all_related_services
ServiceResource.where(:resource => self).each do |resource|
remove_from_service(resource.service) if resource.service
end
end
end
8 changes: 8 additions & 0 deletions spec/models/generic_object_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,14 @@
go.remove_from_service(service)
expect(service.generic_objects).to be_blank
end

it 'removes the generic object from all related services before destroy' do
go.add_to_service(service)
expect(service.generic_objects).to include(go)

go.destroy
expect(service.generic_objects).to be_blank
end
end

context "custom buttons" do
Expand Down

0 comments on commit 6bf5eca

Please sign in to comment.