Auto-generated patch by python-black
[integration/test.git] / csit / scripts / generate_dashVis.py
1 # SPDX-License-Identifier: EPL-1.0
2 ##############################################################################
3 # Copyright (c) 2018 The Linux Foundation and others.
4 #
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Eclipse Public License v1.0
7 # which accompanies this distribution, and is available at
8 # http://www.eclipse.org/legal/epl-v10.html
9 ##############################################################################
10 import yaml
11 import copy
12
13 import json
14
15 # Pretty Printer
16
17
18 def p(x):
19     print(json.dumps(x, indent=4, sort_keys=False))
20
21
22 class panelsJSON:
23     def __init__(self):
24         self.content = {
25             "gridData": {"h": None, "i": None, "w": None, "x": None, "y": None},
26             "id": None,
27             "panelIndex": None,
28             "type": "visualization",
29             "version": "6.2.4",
30         }
31
32         self.counter = 0
33
34     def create(self, co_ords, id):
35         self.counter += 1
36         temp = copy.deepcopy(self.content)
37         temp["gridData"]["h"] = co_ords["h"]
38         temp["gridData"]["i"] = str(self.counter)
39         temp["gridData"]["w"] = co_ords["w"]
40         temp["gridData"]["x"] = co_ords["x"]
41         temp["gridData"]["y"] = co_ords["y"]
42
43         temp["id"] = id
44         temp["panelIndex"] = str(self.counter)
45
46         return temp
47
48
49 def generate(viz_config):
50     dash = panelsJSON()
51     viz = [dash.create(i["co_ords"], i["id"]) for _, i in viz_config.items()]
52     return viz
53
54
55 if __name__ == "__main__":
56     with open("dashboard.yaml", "r") as f:
57         config = yaml.safe_load(f)
58         p(generate(config["dashboard"]["viz"]))