Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 1 | #!/usr/bin/python -u |
| 2 | import sys |
| 3 | from robot.libraries.BuiltIn import BuiltIn |
| 4 | import imp |
| 5 | import string |
| 6 | |
| 7 | |
| 8 | def get_sensor(module_name, value): |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 9 | m = imp.load_source('module.name', module_name) |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 10 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 11 | for i in m.ID_LOOKUP['SENSOR']: |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 12 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 13 | if m.ID_LOOKUP['SENSOR'][i] == value: |
| 14 | return i |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 15 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 16 | return 0xFF |
| 17 | |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 18 | |
| 19 | def get_inventory_sensor (module_name, value): |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 20 | m = imp.load_source('module.name', module_name) |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 21 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 22 | value = string.replace(value, m.INVENTORY_ROOT, '<inventory_root>') |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 23 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 24 | for i in m.ID_LOOKUP['SENSOR']: |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 25 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 26 | if m.ID_LOOKUP['SENSOR'][i] == value: |
| 27 | return i |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 28 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 29 | return 0xFF |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 30 | |
| 31 | |
| 32 | ################################################################ |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 33 | # This will return the URI's of the FRU type |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 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 | ################################################################ |
| 40 | def get_inventory_list(module_name): |
| 41 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 42 | l = [] |
| 43 | m = imp.load_source('module.name', module_name) |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 44 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 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 |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 52 | |
| 53 | |
| 54 | ################################################################ |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 55 | # This will return the URI's of the FRU type |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 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 | ################################################################ |
| 62 | def get_inventory_fru_type_list(module_name, fru): |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 63 | l = [] |
| 64 | m = imp.load_source('module.name', module_name) |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 65 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 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 |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 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 | ################################################################ |
| 82 | def get_vpd_inventory_list(module_name, fru): |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 83 | l = [] |
| 84 | m = imp.load_source('module.name', module_name) |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 85 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 86 | for i in m.ID_LOOKUP['FRU_STR']: |
| 87 | x = m.ID_LOOKUP['FRU_STR'][i] |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 88 | |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 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 |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 94 | |
| 95 | |
| 96 | def call_keyword(keyword): |
| 97 | return BuiltIn().run_keyword(keyword) |
| 98 | |
| 99 | |
| 100 | def main(): |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 101 | print get_vpd_inventory_list('../data/Palmetto.py', 'DIMM') |
Chris Austen | b29d2e8 | 2016-06-07 12:25:35 -0500 | [diff] [blame] | 102 | |
| 103 | |
| 104 | if __name__ == "__main__": |
Gunnar Mills | bb398ac | 2016-11-14 11:50:22 -0600 | [diff] [blame] | 105 | main() |