blob: adeec175c23bbad6e8382546eb920b9b4fb1195d [file] [log] [blame]
George Keishinge7e91712021-09-03 11:28:44 -05001#!/usr/bin/env python3 -u
Brian Ma139f1da2024-10-18 13:34:14 +08002import importlib.util
George Keishingb1d2f492022-12-15 13:33:42 -06003import string as string
Patrick Williams20f38712022-12-08 06:18:26 -06004
5from robot.libraries.BuiltIn import BuiltIn
Chris Austenb29d2e82016-06-07 12:25:35 -05006
7
Brian Ma139f1da2024-10-18 13:34:14 +08008def load_source(name, module_path):
9 spec = importlib.util.spec_from_file_location(name, module_path)
10 module = importlib.util.module_from_spec(spec)
11 spec.loader.exec_module(module)
12 return module
13
14
Chris Austenb29d2e82016-06-07 12:25:35 -050015def get_sensor(module_name, value):
Brian Ma139f1da2024-10-18 13:34:14 +080016 m = load_source("module.name", module_name)
Chris Austenb29d2e82016-06-07 12:25:35 -050017
Patrick Williams20f38712022-12-08 06:18:26 -060018 for i in m.ID_LOOKUP["SENSOR"]:
19 if m.ID_LOOKUP["SENSOR"][i] == value:
Gunnar Millsdca35792018-03-26 10:05:38 -050020 return i
Chris Austenb29d2e82016-06-07 12:25:35 -050021
Gunnar Millsdca35792018-03-26 10:05:38 -050022 return 0xFF
Chris Austenb29d2e82016-06-07 12:25:35 -050023
Chris Austenb29d2e82016-06-07 12:25:35 -050024
Gunnar Millsdca35792018-03-26 10:05:38 -050025def get_inventory_sensor(module_name, value):
Brian Ma139f1da2024-10-18 13:34:14 +080026 m = load_source("module.name", module_name)
Chris Austenb29d2e82016-06-07 12:25:35 -050027
Patrick Williams20f38712022-12-08 06:18:26 -060028 value = string.replace(value, m.INVENTORY_ROOT, "<inventory_root>")
Chris Austenb29d2e82016-06-07 12:25:35 -050029
Patrick Williams20f38712022-12-08 06:18:26 -060030 for i in m.ID_LOOKUP["SENSOR"]:
31 if m.ID_LOOKUP["SENSOR"][i] == value:
Gunnar Millsdca35792018-03-26 10:05:38 -050032 return i
33
34 return 0xFF
Chris Austenb29d2e82016-06-07 12:25:35 -050035
36
37def get_inventory_list(module_name):
George Keishinge635ddc2022-12-08 07:38:02 -060038 inventory_list = []
Brian Ma139f1da2024-10-18 13:34:14 +080039 m = load_source("module.name", module_name)
George Keishinge635ddc2022-12-08 07:38:02 -060040
Patrick Williams20f38712022-12-08 06:18:26 -060041 for i in m.ID_LOOKUP["FRU"]:
42 s = m.ID_LOOKUP["FRU"][i]
43 s = s.replace("<inventory_root>", m.INVENTORY_ROOT)
Joy Onyerikwu004ad3c2018-06-11 16:29:56 -050044 inventory_list.append(s)
Chris Austenb29d2e82016-06-07 12:25:35 -050045
Joy Onyerikwu004ad3c2018-06-11 16:29:56 -050046 return inventory_list
Gunnar Millsdca35792018-03-26 10:05:38 -050047
Chris Austenb29d2e82016-06-07 12:25:35 -050048
49def get_inventory_fru_type_list(module_name, fru_type):
Joy Onyerikwu004ad3c2018-06-11 16:29:56 -050050 inventory_list = []
Brian Ma139f1da2024-10-18 13:34:14 +080051 m = load_source("module.name", module_name)
Chris Austenb29d2e82016-06-07 12:25:35 -050052
Gunnar Millsdca35792018-03-26 10:05:38 -050053 for i in m.FRU_INSTANCES.keys():
Patrick Williams20f38712022-12-08 06:18:26 -060054 if m.FRU_INSTANCES[i]["fru_type"] == fru_type:
55 s = i.replace("<inventory_root>", m.INVENTORY_ROOT)
Joy Onyerikwu004ad3c2018-06-11 16:29:56 -050056 inventory_list.append(s)
Chris Austenb29d2e82016-06-07 12:25:35 -050057
Joy Onyerikwu004ad3c2018-06-11 16:29:56 -050058 return inventory_list
Gunnar Millsdca35792018-03-26 10:05:38 -050059
Chris Austenb29d2e82016-06-07 12:25:35 -050060
61def call_keyword(keyword):
Gunnar Millsdca35792018-03-26 10:05:38 -050062 return BuiltIn().run_keyword(keyword)
Tony Lee1e303ca2020-02-27 10:53:47 +080063
64
65def get_FRU_component_name_list(module_name):
66 name_list = []
Brian Ma139f1da2024-10-18 13:34:14 +080067 m = load_source("module.name", module_name)
Tony Lee1e303ca2020-02-27 10:53:47 +080068
69 for name in m.FRU_COMPONENT_NAME:
70 name_list.append(name)
71 print(name)
72
73 return name_list
74
75
76def get_ipmi_rest_fru_field_map(module_name):
Brian Ma139f1da2024-10-18 13:34:14 +080077 m = load_source("module.name", module_name)
Tony Lee1e303ca2020-02-27 10:53:47 +080078
79 ipmi_rest_fru_field_map = dict.copy(m.ipmi_rest_fru_field_map)
80
81 return ipmi_rest_fru_field_map