Skip to content

Commit 182f73f

Browse files
author
Damien Bergamini
committed
implement raw_destroy for LPARs
Signed-off-by: Damien Bergamini <[email protected]>
1 parent 2bd9aa8 commit 182f73f

File tree

1 file changed

+33
-0
lines changed
  • app/models/manageiq/providers/ibm_power_hmc/infra_manager

1 file changed

+33
-0
lines changed

app/models/manageiq/providers/ibm_power_hmc/infra_manager/lpar.rb

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ class ManageIQ::Providers::IbmPowerHmc::InfraManager::Lpar < ManageIQ::Providers
55

66
supports :reconfigure_network_adapters
77

8+
supports :terminate do
9+
unsupported_reason_add(:terminate, unsupported_reason(:control)) unless supports_control?
10+
end
11+
812
def provider_object(connection = nil)
913
connection ||= ext_management_system.connect
1014
connection.lpar(ems_ref)
@@ -32,6 +36,35 @@ def poweroff(params = {})
3236
end
3337
end
3438

39+
def raw_destroy
40+
ext_management_system.with_provider_connection do |connection|
41+
# Delete associated VIOS VSCSI and VFC mappings.
42+
adapters_by_vios = connection.vscsi_client_adapter(ems_ref).group_by(&:vios_uuid)
43+
adapters_by_vios.merge!(connection.vfc_client_adapter(ems_ref).group_by(&:lpar_uuid)) { |_, v1, v2| v1.concat(v2) }
44+
45+
adapters_by_vios.each do |vios_uuid, adapters|
46+
connection.modify_object do
47+
connection.vios(vios_uuid).tap do |vios|
48+
adapters.each do |adapt|
49+
case adapt
50+
when IbmPowerHmc::VirtualSCSIClientAdapter
51+
vios.vscsi_mapping_delete!(adapt.server.location)
52+
when IbmPowerHmc::VirtualFibreChannelClientAdapter
53+
vios.vfc_mapping_delete!(adapt.server.location)
54+
end
55+
end
56+
end
57+
end
58+
end
59+
60+
# Delete LPAR.
61+
connection.lpar_delete(ems_ref)
62+
rescue IbmPowerHmc::Connection::HttpError => e
63+
$ibm_power_hmc_log.error("error deleting LPAR #{ems_ref}: #{e}")
64+
raise
65+
end
66+
end
67+
3568
def do_request(request_type, options)
3669
case request_type
3770
when 'clone_to_template'

0 commit comments

Comments
 (0)