def edit(client, graph): graphID = graph.get('id', None) del graph['id'] if graphID in ['create', 'clone']: graphObj = Graph.create(client=client) else: graphObj = Graph.get(id=graphID, client=client) if graphID == 'clone': graph['name'] = graph['name'] + ' clone' graphObj.update(type=graph.get('type', None), name=graph.get('name', None), incrementSelector=graph.get('incrementSelector', None), rangeSelector=graph.get('rangeSelector', None), limits=graph.get('limits', None), data=graph.get('data', None), grid=graph.get('grid', None), crossHair=graph.get('crossHair', None), legend=graph.get('legend', None), tooltips=graph.get('tooltips', None), query=graph.get('query', None), exportData=graph.get('exportData', None)) return {'status': 'edited', 'id': "graph_" + str(graphObj.id)}
def build(client, items, isAuthenticated): response = {} response['object'] = 'resource' response['type'] = 'graph' response['data'] = [] for item in items: id = item.get('id', None) graph = Graph.get(id=id, client=client) if graph is None: raise GraphNotFoundException(context={"id": id}) tokens = item.get('tokens', []) conditions = item.get('conditions', []) utcOffset = item.get("utcOffset", "+00") response['data'].append( graph.build(utcOffset=utcOffset, tokens=tokens, conditions=conditions, isAuthenticated=isAuthenticated)) # [graph.build(tokensIDs-tokensIDs,conditions=conditions) for graph in Graph.list(client=client)][::-1] return response
def query(client, items, isAuthenticated): response = {} response['object'] = 'resource' response['type'] = 'query' response['data'] = [] for item in items: id = item.get('id', None) start = item.get('start', None) end = item.get('end', None) increment = item.get('increment', None) if None in [id, increment, start, end]: continue tokens = item.get('tokens', []) conditions = item.get('conditions', []) utcOffset = item.get('utcOffset', '+00') if end != 'now': start = dateutil.parser.parse(start) end = dateutil.parser.parse(end) else: start = int(start) graph = Graph.get(id=id, client=client) if graph is None: raise GraphNotFoundException(context={"id": id}) result = {} result['id'] = id result['datasets'] = graph.runQuery(utcOffset=utcOffset, tokens=tokens, conditions=conditions, start=start, end=end, isAuthenticated=isAuthenticated, increment=increment) response['data'].append(result) return response
def remove(client, id): graph = Graph.get(client=client, id=id) graph.delete() return {'status': 'deleted'}