app/models/manageiq/providers/redfish/physical_infra_manager/operations/led.rb
module ManageIQ::Providers::Redfish
module PhysicalInfraManager::Operations::Led
# Keep this in sync with app/models/physical_server/operations/led.rb in
# core and IndicatorLED enum in Redfish ComputerSystem type. Name of the
# method comes from the core and the action name used in the reset call
# from the IndicatorLED enum.
def blink_loc_led(server, _options)
set_led_state("Blinking", server)
end
def turn_on_loc_led(server, _options)
set_led_state("Lit", server)
end
def turn_off_loc_led(server, _options)
set_led_state("Off", server)
end
private
def set_led_state(state, server)
_log.info("Setting #{server.ems_ref} LED state to #{state}.")
with_provider_connection do |client|
system = client.find(server.ems_ref)
if system.nil?
_log.error("#{server.ems_ref} does not exist anymore.")
return
end
response = system.patch(:payload => { "IndicatorLED" => state })
unless response.status == 200
_log.error("LED state change on #{server.ems_ref} failed.")
end
end
end
end
end