Exemple #1
0
def dataquery_search(request):
    if request.method == 'GET':
        form = DataqueryForm()
        return render_to_response('dataquery.html', {'form': form})

    elif request.method == 'POST':
        form = DataqueryForm(request.POST)
        if form.is_valid():
            starttime = form.clean_data['starttime']
            endtime = form.clean_data['endtime']
            sitename = form.clean_data['sitename']
            datatype = form.clean_data['datatype']
            answer = django_query(starttime=starttime,
                                  endtime=endtime,
                                  sitename=sitename,
                                  datatype=datatype,
                                  format='txt')
            if answer:
                hr = HttpResponse(answer, mimetype=MIMETXT)
            else:
                hr = HttpResponse("No data for this interval.",
                                  mimetype=MIMETXT)
            return hr
        else:
            return HttpResponse("Form not valid. Try again.", mimetype=MIMETXT)
Exemple #2
0
def dataquery_search(request):
    if request.method == 'GET':
        form = DataqueryForm()
        return render_to_response('dataquery.html', {'form' : form})

    elif request.method == 'POST':
        form = DataqueryForm(request.POST)
        if form.is_valid():
            starttime=form.cleaned_data['starttime']
            endtime=form.cleaned_data['endtime']
            sitename=form.cleaned_data['sitename']
            datatype=form.cleaned_data['datatype']
            
            fnstart=str(starttime).replace('-', '')
            fnstart=fnstart.replace(':', '')
            fnstart=fnstart.replace(' ', '-')
            fnend=str(endtime).replace('-', '') 
            fnend=fnend.replace(':', '') 
            fnend=fnend.replace(' ', '-')
            
            dlfilename="%s-%s-%s--%s" % ( sitename, 
                                             datatype,
                                             fnstart,
                                             fnend
                                     )
            answer = django_query(
                               starttime=starttime, 
                               endtime=endtime, 
                               sitename=sitename, 
                               datatype=datatype,
                               format='txt'
                               )
            if answer:
                if 'display' in request.POST.keys():
                    hr = HttpResponse(answer, mimetype=MIMETXT)
                elif 'download' in request.POST.keys():
                     hr = HttpResponse(answer, mimetype=MIMEDOWNLOAD)
                     cdisp = 'attachment; filename="%s.txt"' % dlfilename
                     hr['Content-disposition'] = str(cdisp)
            else:
                hr = HttpResponse("No data for this interval.", mimetype=MIMETXT)
            return hr
        else:
            return HttpResponse("Form not valid. Try again.", mimetype=MIMETXT)
Exemple #3
0
def dataquery_search(request):
    if request.method == 'GET':
        form = DataqueryForm()
        return render_to_response('dataquery.html', {'form': form})

    elif request.method == 'POST':
        form = DataqueryForm(request.POST)
        if form.is_valid():
            starttime = form.clean_data['starttime']
            endtime = form.clean_data['endtime']
            sitename = form.clean_data['sitename']
            format = form.clean_data['format']
            datatype = form.clean_data['datatype']
            if format == 'txt':
                answer = django_query(starttime=starttime,
                                      endtime=endtime,
                                      sitename=sitename,
                                      format=format,
                                      datatype=datatype)
                hr = HttpResponse(answer, mimetype=MIMETXT)
                return hr
            elif format == 'graph':
                #
                # Since rpy is just not working from within Django, we'll grab
                # the image via http:// and re-serve it.
                #

                import urllib2
                width = "800"
                TFORMAT = "%Y-%m-%dT%H:%M:%S"
                url = "http://www.mariachi.stonybrook.edu/mariachi-ws/dataquery/query?site=%s&start=%s&end=%s&graph=1&width=%s" % (
                    sitename, starttime.strftime(TFORMAT),
                    endtime.strftime(TFORMAT), width)
                opener = urllib2.build_opener()
                graphimage = urllib2.urlopen(url)
                graphdata = graphimage.read()
                #f = open("/tmp/graphimage.png", 'w')
                #f.write(graphdata)
                #f.close()
                hr = HttpResponse(graphdata, mimetype=MIMEPNG)
                return hr
        else:
            return HttpResponse("Form not valid. Try again.", mimetype=MIMETXT)
Exemple #4
0
def dataquery_analysis(request):
    if request.method == 'GET':
        form = AnalysisForm()
        return render_to_response('analysis.html', {'form': form})
    elif request.method == 'POST':
        #info = ','.join(dir(request.POST))
        #info = "\n".join(request.POST.keys())
        #return HttpResponse(info, mimetype=MIMETXT)
        answer = None
        form = AnalysisForm(request.POST)
        if form.is_valid():
            form.clean_data = form.clean()
            starttime = form.clean_data['starttime']
            endtime = form.clean_data['endtime']
            sitename = form.clean_data['sitename']
            format = form.clean_data['format']
            datatype = form.clean_data['datatype']
            filtertype = form.clean_data['filtertype']
            interval = form.clean_data['interval']

            fnstart = str(starttime).replace('-', '')
            fnstart = fnstart.replace(':', '')
            fnstart = fnstart.replace(' ', '-')
            fnend = str(endtime).replace('-', '')
            fnend = fnend.replace(':', '')
            fnend = fnend.replace(' ', '-')

            dlfilename = "%s-%s-%s--%s" % (sitename, datatype, fnstart, fnend)

            if format == 'txt':
                if filtertype == 'avg':
                    #
                    # Since rpy is just not working from within Django, we'll grab
                    # the info via http:// and re-serve it.
                    #
                    import urllib2
                    TFORMAT = "%Y-%m-%dT%H:%M:%S"
                    hostport = config.get('analysis', 'hostport')
                    url = "http://%s/mariachi-ws/dataquery/analysis?site=%s&start=%s&end=%s&datatype=%s&interval=%d" % (
                        hostport, sitename, starttime.strftime(TFORMAT),
                        endtime.strftime(TFORMAT), datatype, interval)
                    opener = urllib2.build_opener()
                    txtdata = urllib2.urlopen(url)
                    answer = txtdata.read()

                elif filtertype == 'raw':
                    answer = django_query(starttime=starttime,
                                          endtime=endtime,
                                          sitename=sitename,
                                          format=format,
                                          datatype=datatype)
                if answer:
                    if 'display' in request.POST.keys():
                        hr = HttpResponse(answer, mimetype=MIMETXT)
                    elif 'download' in request.POST.keys():
                        hr = HttpResponse(answer, mimetype=MIMEDOWNLOAD)
                        #  self.headers = {'Content-Type': mimetype}
                        cdisp = 'attachment; filename=%s.txt' % dlfilename
                        hr['Content-disposition'] = str(cdisp)
                else:
                    hr = HttpResponse("No data for this interval.",
                                      mimetype=MIMETXT)
                return hr

            elif format == 'graph':
                #
                # Since rpy is just not working from within Django, we'll grab
                # the image via http:// and re-serve it.
                #
                import urllib2
                TFORMAT = "%Y-%m-%dT%H:%M:%S"
                #hostport = request.environ['HTTP_HOST']
                hostport = config.get('analysis', 'hostport')
                url = "http://%s/mariachi-ws/dataquery/query?site=%s&start=%s&end=%s&datatype=%s&graph=1" % (
                    hostport,
                    sitename,
                    starttime.strftime(TFORMAT),
                    endtime.strftime(TFORMAT),
                    datatype,
                )
                #return HttpResponse("info: %s" % url, mimetype=MIMETXT)

                opener = urllib2.build_opener()
                graphimage = urllib2.urlopen(url)
                graphdata = graphimage.read()
                if 'display' in request.POST.keys():
                    hr = HttpResponse(graphdata, mimetype=MIMEPNG)
                elif 'download' in request.POST.keys():
                    hr = HttpResponse(graphdata, mimetype=MIMEDOWNLOAD)
                    cdisp = 'attachment; filename="%s.png"' % dlfilename
                    hr['Content-disposition'] = str(cdisp)
                return hr
        else:
            return HttpResponse("Form not valid. Try again.", mimetype=MIMETXT)
Exemple #5
0
def dataquery_analysis(request):
    if request.method == 'GET':
        form = AnalysisForm()
        return render_to_response('analysis.html', {'form': form})
    elif request.method == 'POST':
        form = AnalysisForm(request.POST)
        if form.is_valid():
            starttime = form.clean_data['starttime']
            endtime = form.clean_data['endtime']
            sitename = form.clean_data['sitename']
            format = form.clean_data['format']
            datatype = form.clean_data['datatype']
            filtertype = form.clean_data['filtertype']
            interval = form.clean_data['interval']
            if format == 'txt':
                if filtertype == 'avg':
                    #
                    # Since rpy is just not working from within Django, we'll grab
                    # the image via http:// and re-serve it.
                    #
                    import urllib2
                    TFORMAT = "%Y-%m-%dT%H:%M:%S"
                    hostport = "www.mariachi.stonybrook.edu"
                    url = "http://%s/mariachi-ws/dataquery/analysis?site=%s&start=%s&end=%s&datatype=%s&interval=%d" % (
                        hostport, sitename, starttime.strftime(TFORMAT),
                        endtime.strftime(TFORMAT), datatype, interval)
                    opener = urllib2.build_opener()
                    txtdata = urllib2.urlopen(url)
                    data = txtdata.read()
                    #(fd, graphfile) = mkstemp()
                    #f = open("/tmp/graphimage.png", 'w')
                    #f = open(graphfile, 'w')
                    #f.write(graphdata)
                    #f.close()
                    hr = HttpResponse(data, mimetype=MIMETXT)
                    return hr

                elif filtertype == 'raw':
                    answer = django_query(starttime=starttime,
                                          endtime=endtime,
                                          sitename=sitename,
                                          format=format,
                                          datatype=datatype)
                if answer:
                    hr = HttpResponse(answer, mimetype=MIMETXT)
                else:
                    hr = HttpResponse("No data for this interval.",
                                      mimetype=MIMETXT)
                return hr

            elif format == 'graph':
                #
                # Since rpy is just not working from within Django, we'll grab
                # the image via http:// and re-serve it.
                #
                import urllib2
                TFORMAT = "%Y-%m-%dT%H:%M:%S"
                #hostport = request.environ['HTTP_HOST']
                hostport = "www.mariachi.stonybrook.edu"
                url = "http://%s/mariachi-ws/dataquery/query?site=%s&start=%s&end=%s&datatype=%s&graph=1" % (
                    hostport,
                    sitename,
                    starttime.strftime(TFORMAT),
                    endtime.strftime(TFORMAT),
                    datatype,
                )
                #return HttpResponse("info: %s" % url, mimetype=MIMETXT)

                opener = urllib2.build_opener()
                graphimage = urllib2.urlopen(url)
                graphdata = graphimage.read()
                #(fd, graphfile) = mkstemp()
                #f = open("/tmp/graphimage.png", 'w')
                #f = open(graphfile, 'w')
                #f.write(graphdata)
                #f.close()
                hr = HttpResponse(graphdata, mimetype=MIMEPNG)
                return hr
        else:
            return HttpResponse("Form not valid. Try again.", mimetype=MIMETXT)