blob: 980d06bfd66e8f3cf4260f21715e83a881418f4d [file] [log] [blame]
Chris Austenb29d2e82016-06-07 12:25:35 -05001#!/usr/bin/python -u
2import sys
3from robot.libraries.BuiltIn import BuiltIn
4import imp
5import string
6
7
8def get_sensor(module_name, value):
Gunnar Millsbb398ac2016-11-14 11:50:22 -06009 m = imp.load_source('module.name', module_name)
Chris Austenb29d2e82016-06-07 12:25:35 -050010
Gunnar Millsbb398ac2016-11-14 11:50:22 -060011 for i in m.ID_LOOKUP['SENSOR']:
Chris Austenb29d2e82016-06-07 12:25:35 -050012
Gunnar Millsbb398ac2016-11-14 11:50:22 -060013 if m.ID_LOOKUP['SENSOR'][i] == value:
14 return i
Chris Austenb29d2e82016-06-07 12:25:35 -050015
Gunnar Millsbb398ac2016-11-14 11:50:22 -060016 return 0xFF
17
Chris Austenb29d2e82016-06-07 12:25:35 -050018
19def get_inventory_sensor (module_name, value):
Gunnar Millsbb398ac2016-11-14 11:50:22 -060020 m = imp.load_source('module.name', module_name)
Chris Austenb29d2e82016-06-07 12:25:35 -050021
Gunnar Millsbb398ac2016-11-14 11:50:22 -060022 value = string.replace(value, m.INVENTORY_ROOT, '<inventory_root>')
Chris Austenb29d2e82016-06-07 12:25:35 -050023
Gunnar Millsbb398ac2016-11-14 11:50:22 -060024 for i in m.ID_LOOKUP['SENSOR']:
Chris Austenb29d2e82016-06-07 12:25:35 -050025
Gunnar Millsbb398ac2016-11-14 11:50:22 -060026 if m.ID_LOOKUP['SENSOR'][i] == value:
27 return i
Chris Austenb29d2e82016-06-07 12:25:35 -050028
Gunnar Millsbb398ac2016-11-14 11:50:22 -060029 return 0xFF
Chris Austenb29d2e82016-06-07 12:25:35 -050030
31
32################################################################
Gunnar Millsbb398ac2016-11-14 11:50:22 -060033# This will return the URI's of the FRU type
Chris Austenb29d2e82016-06-07 12:25:35 -050034#
35# i.e. get_inventory_list('../data/Palmetto.py')
36#
37# [/org/openbmc/inventory//system/chassis/motherboard/cpu0/core0,
38# /org/openbmc/inventory/system/chassis/motherboard/dimm0]
39################################################################
40def get_inventory_list(module_name):
41
Gunnar Millsbb398ac2016-11-14 11:50:22 -060042 l = []
43 m = imp.load_source('module.name', module_name)
Chris Austenb29d2e82016-06-07 12:25:35 -050044
Gunnar Millsbb398ac2016-11-14 11:50:22 -060045
46 for i in m.ID_LOOKUP['FRU']:
47 s = m.ID_LOOKUP['FRU'][i]
48 s = s.replace('<inventory_root>',m.INVENTORY_ROOT)
49 l.append(s)
50
51 return l
Chris Austenb29d2e82016-06-07 12:25:35 -050052
53
54################################################################
Gunnar Millsbb398ac2016-11-14 11:50:22 -060055# This will return the URI's of the FRU type
Chris Austenb29d2e82016-06-07 12:25:35 -050056#
57# i.e. get_inventory_fru_type_list('../data/Barreleye.py', 'CPU')
58#
59# [/org/openbmc/inventory//system/chassis/motherboard/cpu0,
60# /org/openbmc/inventory//system/chassis/motherboard/cpu1]
61################################################################
62def get_inventory_fru_type_list(module_name, fru):
Gunnar Millsbb398ac2016-11-14 11:50:22 -060063 l = []
64 m = imp.load_source('module.name', module_name)
Chris Austenb29d2e82016-06-07 12:25:35 -050065
Gunnar Millsbb398ac2016-11-14 11:50:22 -060066 for i in m.FRU_INSTANCES.keys():
67 if m.FRU_INSTANCES[i]['fru_type'] == fru:
68 s = i.replace('<inventory_root>',m.INVENTORY_ROOT)
69 l.append(s)
70
71 return l
Chris Austenb29d2e82016-06-07 12:25:35 -050072
73
74################################################################
75# This will return the URI's of the FRU type that contain VPD
76#
77# i.e. get_vpd_inventory_list('../data/Palmetto.py', 'DIMM')
78#
79# [/org/openbmc/inventory/system/chassis/motherboard/dimm0,
80# /org/openbmc/inventory/system/chassis/motherboard/dimm1]
81################################################################
82def get_vpd_inventory_list(module_name, fru):
Gunnar Millsbb398ac2016-11-14 11:50:22 -060083 l = []
84 m = imp.load_source('module.name', module_name)
Chris Austenb29d2e82016-06-07 12:25:35 -050085
Gunnar Millsbb398ac2016-11-14 11:50:22 -060086 for i in m.ID_LOOKUP['FRU_STR']:
87 x = m.ID_LOOKUP['FRU_STR'][i]
Chris Austenb29d2e82016-06-07 12:25:35 -050088
Gunnar Millsbb398ac2016-11-14 11:50:22 -060089 if m.FRU_INSTANCES[x]['fru_type'] == fru:
90 s = x.replace('<inventory_root>',m.INVENTORY_ROOT)
91 l.append(s)
92
93 return l
Chris Austenb29d2e82016-06-07 12:25:35 -050094
95
96def call_keyword(keyword):
97 return BuiltIn().run_keyword(keyword)
98
99
100def main():
Gunnar Millsbb398ac2016-11-14 11:50:22 -0600101 print get_vpd_inventory_list('../data/Palmetto.py', 'DIMM')
Chris Austenb29d2e82016-06-07 12:25:35 -0500102
103
104if __name__ == "__main__":
Gunnar Millsbb398ac2016-11-14 11:50:22 -0600105 main()