From 771b83c04701b7d4f810d82a2e54a288c3f14489 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tadej=20Borov=C5=A1ak?= Date: Fri, 14 Sep 2018 15:13:10 +0200 Subject: [PATCH] Move LED state from server to asset details --- .../collector/physical_infra_manager.rb | 6 +++++- .../inventory/parser/physical_infra_manager.rb | 16 ++++++++-------- .../physical_infra_manager/refresher_spec.rb | 4 ++-- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/models/manageiq/providers/redfish/inventory/collector/physical_infra_manager.rb b/app/models/manageiq/providers/redfish/inventory/collector/physical_infra_manager.rb index 67ff70a..ab673a7 100644 --- a/app/models/manageiq/providers/redfish/inventory/collector/physical_infra_manager.rb +++ b/app/models/manageiq/providers/redfish/inventory/collector/physical_infra_manager.rb @@ -5,7 +5,7 @@ def physical_servers end def physical_server_details - rf_client.Systems.Members.collect { |s| get_server_location(s) } + rf_client.Systems.Members.collect { |s| get_server_details(s) } end def hardwares @@ -14,6 +14,10 @@ def hardwares private + def get_server_details(server) + get_server_location(server).merge("IndicatorLED" => server.IndicatorLED) + end + def get_server_location(server) loc = { :server_id => server["@odata.id"] } return loc if server.Links.Chassis.length.zero? diff --git a/app/models/manageiq/providers/redfish/inventory/parser/physical_infra_manager.rb b/app/models/manageiq/providers/redfish/inventory/parser/physical_infra_manager.rb index 74a207e..5d33dac 100644 --- a/app/models/manageiq/providers/redfish/inventory/parser/physical_infra_manager.rb +++ b/app/models/manageiq/providers/redfish/inventory/parser/physical_infra_manager.rb @@ -25,7 +25,6 @@ def physical_servers :field_replaceable_unit => "dummy", :raw_power_state => s["PowerState"], :vendor => "unknown", - :location_led_state => s["IndicatorLED"] ) persister.computer_systems.build(:managed_entity => server) end @@ -38,13 +37,14 @@ def physical_server_details collector.physical_server_details.each do |d| server = persister.physical_servers.lazy_find(d[:server_id]) persister.physical_server_details.build( - :resource => server, - :contact => "", - :description => "", - :location => get_location(d), - :room => "", - :rack_name => get_rack(d), - :lowest_rack_unit => "" + :resource => server, + :contact => "", + :description => "", + :location => get_location(d), + :room => "", + :rack_name => get_rack(d), + :location_led_state => d["IndicatorLED"], + :lowest_rack_unit => "" ) end end diff --git a/spec/models/manageiq/providers/redfish/physical_infra_manager/refresher_spec.rb b/spec/models/manageiq/providers/redfish/physical_infra_manager/refresher_spec.rb index 92c8676..732c346 100644 --- a/spec/models/manageiq/providers/redfish/physical_infra_manager/refresher_spec.rb +++ b/spec/models/manageiq/providers/redfish/physical_infra_manager/refresher_spec.rb @@ -46,7 +46,6 @@ def assert_physical_servers :field_replaceable_unit => "dummy", :raw_power_state => "Off", :vendor => "unknown", - :location_led_state => "Off" ) end @@ -55,7 +54,8 @@ def assert_physical_server_details # TODO(tadeboro): We need better source of data before we can create more # meaningful test. expect(d).to have_attributes( - :resource_type => "PhysicalServer" + :location_led_state => "Off", + :resource_type => "PhysicalServer", ) end