Exemple #1
0
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)}
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
def remove(client, id):
    graph = Graph.get(client=client, id=id)
    graph.delete()
    return {'status': 'deleted'}