sensor_yaml_config.py: Generate map from sample config
Generate a map from sensor path/interfaces to enityID and
sensorNamePattern.
Save the map as reference for further usage.
The map is generated from witherspoon's yaml:
sensor_yaml_config.py -i witherspoon.yaml -o sensor_map.yaml -g
Change-Id: I493c1c60a4699edd03512f3a51c07dd035a69e89
Signed-off-by: Lei YU <mine260309@gmail.com>
diff --git a/leiyu/obmc-utils/sensor_yaml_config.py b/leiyu/obmc-utils/sensor_yaml_config.py
index 38f45bd..f68e132 100755
--- a/leiyu/obmc-utils/sensor_yaml_config.py
+++ b/leiyu/obmc-utils/sensor_yaml_config.py
@@ -109,10 +109,14 @@
return yaml.load(open(f))
-def saveYaml(y, f):
- noaliasDumper = yaml.dumper.SafeDumper
- noaliasDumper.ignore_aliases = lambda self, data: True
- yaml.dump(y, open(f, "w"), default_flow_style=False, Dumper=noaliasDumper)
+def saveYaml(y, f, safe=True):
+ if safe:
+ noaliasDumper = yaml.dumper.SafeDumper
+ noaliasDumper.ignore_aliases = lambda self, data: True
+ yaml.dump(y, open(f, "w"), default_flow_style=False,
+ Dumper=noaliasDumper)
+ else:
+ yaml.dump(y, open(f, "w"))
def getEntityId(p, i):
@@ -206,6 +210,8 @@
help='The .rpt file generated by op-build')
parser.add_argument('-e', '--entity', action='store_true',
help='Fix entities')
+ parser.add_argument('-g', '--generate', action='store_true',
+ help='Generate maps for entityID and sensorNamePattern')
args = parser.parse_args()
args = vars(args)
@@ -244,7 +250,20 @@
print('Added sensor id:', s.sensorId,
', path:', y[s.sensorId]['path'])
- saveYaml(y, args['output'])
+ if args['generate']:
+ m = {}
+ for i in y:
+ path = y[i]['path']
+ intfs = tuple(sorted(list(y[i]['interfaces'].keys())))
+ entityId = y[i]['entityID']
+ sensorNamePattern = y[i]['sensorNamePattern']
+ m[(path, intfs)] = {'entityID': entityId,
+ 'sensorNamePattern': sensorNamePattern}
+ y = m
+
+ safe = False if args['generate'] else True
+
+ saveYaml(y, args['output'], safe)
if __name__ == "__main__":