예제 #1
0
파일: api.py 프로젝트: fnaval/tachui
def stacky_watch(request, deployments=None):
    service = request.GET.get('service', 'nova')
    if request.method == 'DELETE':
        start = datetime.datetime.now() - datetime.timedelta(minutes=30)
        for name in deployments:
            request.session['%s-last' % name] = time.mktime(start.timetuple())

    if request.method == 'GET':
        events = []
        deps = models.Deployment.objects.filter(name__in=deployments)
        start = datetime.datetime.now() - datetime.timedelta(minutes=30)
        for dep in deps:
            since = request.session.get('%s-last' % dep.name, time.mktime(start.timetuple()))
            url = "%s/stacky/watch/0/"
            params = {
                'since': since,
                'service': service
            }
            resp = requests.get(url % dep.url, params=params)
            dep_events = []
            for x in _json(resp)[1]:
                event = [dep.name]
                event.extend(x)
                dep_events.append(event)
            events.extend(dep_events)
            request.session['%s-last' % dep.name] = _json(resp)[-1]
        events.sort(reverse=True,
                    key=lambda x: util.timestamp_to_dt("%s %s" % (x[3], x[4])))
        template = loader.get_template('api/stacky_watch.html')
        context_dict = {
            'service': service,
            'events': events
        }
        context = RequestContext(request, context_dict)
        return template.render(context)
예제 #2
0
파일: api.py 프로젝트: fnaval/tachui
def _search_requestid(deployments, service, requestid, limit):
    events = []
    deps = models.Deployment.objects.filter(name__in=deployments)
    for dep in deps:
        url = "%s/stacky/request/"
        params = {
            'request_id': requestid,
            'service': service
        }
        if limit:
            params['limit'] = limit
        resp = requests.get(url % dep.url, params=params)
        dep_events = []
        for x in _json(resp)[1:]:
            event = [dep.name]
            event.extend(x)
            dep_events.append(event)
        events.extend(dep_events)
    events.sort(reverse=True,
                key=lambda x: util.timestamp_to_dt(x[3]))
    return events