4 from common import elastic_access
7 class VisStateBuilder(object):
8 def __init__(self, vis_p):
9 super(VisStateBuilder, self).__init__()
13 name = self.vis_p.get('name')
14 fields = self.vis_p.get('fields')
21 "field": field.get("field")
25 template = utility.env.get_template('{}.json'.format(name))
26 vis = template.render(aggs=aggs)
27 return json.loads(vis)
30 class VisualizationAssembler(object):
40 super(VisualizationAssembler, self).__init__()
41 self.project = project
43 self.installer = installer
45 self.scenario = scenario
48 self.es_creds = es_creds
53 visState = VisStateBuilder(self.vis_p).build()
54 self.vis_state_title = visState['title']
57 "visState": json.dumps(visState),
59 "project_name": self.project,
60 "case_name": self.case,
61 "installer": self.installer,
62 "metric": self.vis_state_title,
64 "scenario": self.scenario
68 template = utility.env.get_template('visualization.json')
70 self.visualization = json.loads(template.render(vis=vis))
71 utility.dumps(self.visualization,
72 ['visState', 'description', 'uiStateJSON'])
73 utility.dumps_2depth(self.visualization,
74 'kibanaSavedObjectMeta',
76 title = self.visualization['title']
77 self.id = title.replace(' ', '-').replace('/', '-')
80 elastic_access.publish_kibana(self.es_url,