blob: 95201dc12c2bfad7f6402282c3bcba019da085d3 [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):
9 m = imp.load_source('module.name', module_name)
10
11 for i in m.ID_LOOKUP['SENSOR']:
12
13 if m.ID_LOOKUP['SENSOR'][i] == value:
14 return i
15
16 return 0xFF
17
18
19def get_inventory_sensor (module_name, value):
20 m = imp.load_source('module.name', module_name)
21
22 value = string.replace(value, m.INVENTORY_ROOT, '<inventory_root>')
23
24 for i in m.ID_LOOKUP['SENSOR']:
25
26 if m.ID_LOOKUP['SENSOR'][i] == value:
27 return i
28
29 return 0xFF
30
31
32################################################################
33# This will return the URI's of the FRU type
34#
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
42 l = []
43 m = imp.load_source('module.name', module_name)
44
45
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
52
53
54################################################################
55# This will return the URI's of the FRU type
56#
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):
63 l = []
64 m = imp.load_source('module.name', module_name)
65
66 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
72
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):
83 l = []
84 m = imp.load_source('module.name', module_name)
85
86 for i in m.ID_LOOKUP['FRU_STR']:
87 x = m.ID_LOOKUP['FRU_STR'][i]
88
89 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
94
95
96def call_keyword(keyword):
97 return BuiltIn().run_keyword(keyword)
98
99
100def main():
101 print get_vpd_inventory_list('../data/Palmetto.py', 'DIMM')
102
103
104if __name__ == "__main__":
105 main()