def get_master_errors(stream):
    hit = keen.extraction(stream, 'this_3_years', filters=[
        {"property_name": "branch", "operator": "eq",
         "property_value": 'HEAD'}])
    if not hit:
        raise ValueError('No data for master branch found')
    return hit[-1]
Exemplo n.º 2
0
def get_latest_buildtime(repo=None):
    """
    Query Keen.io database and retrieve buildtime duration of last build.

    Parameters :
    - repo : repo name (fe. buildtimetrend/python-lib)
    """
    if repo is None or not is_readable():
        return -1

    try:
        result = keen.extraction(
            "build_jobs",
            property_names="job.duration",
            latest=1,
            filters=[get_repo_filter(repo)]
        )
    except requests.ConnectionError:
        logger.error("Connection to Keen.io API failed")
        return -1
    except keen.exceptions.KeenApiError as msg:
        logger.error("Error in keenio.get_latest_buildtime() : " + str(msg))
        return -1

    if is_list(result) and len(result) > 0 and \
            check_dict(result[0], None, ['job']) and \
            check_dict(result[0]['job'], None, ['duration']):
        return result[0]['job']['duration']

    return -1
Exemplo n.º 3
0
 def test_extraction(self, get):
     get.return_value = self.LIST_RESPONSE
     resp = keen.extraction("query test",
                            timeframe="today",
                            property_names=["number"])
     self.assertEqual(type(resp), list)
     for event in resp:
         self.assertTrue("string" not in event)
Exemplo n.º 4
0
def query():
    final_filter = []
    """Custom queries using keen.io as a backend.
    The frontent form must pass values in using the names
        `property_name` - The name of the property you wish to query
        `property_value` - The value of the property being entered
        `operator` - 'eq', 'gt', 'lt'
    """
    if current_user.user_type != 'admin':
        return 403

    if request.method == 'POST':
        # Run the query

        # Used to display the query filters on the view.
        filter_view = [request.form.to_dict()]

        number_of_filters = len(request.form) / 3
        for filter_number in range(0, number_of_filters):
            temp = {}
            temp['operator'] = request.form["operator" + str(filter_number)]
            temp['property_value'] = request.form["property_value" +
                                                  str(filter_number)]
            temp['property_name'] = request.form["property_name" +
                                                 str(filter_number)]
            final_filter.append(temp)

        response = keen.extraction('answers', filters=final_filter)
        if len(response) == 0:
            response = 'No results found'

        final_filter = json.dumps(final_filter)
        # response = json.dumps(response, indent=2, sort_keys=True)
        return render_template('custom_analysis.haml',
                               filters=final_filter,
                               questions=Question.get_active(),
                               filter_view=filter_view,
                               number_of_filters=number_of_filters,
                               response=response)

    return 'Why'
 def test_extraction(self):
     resp = keen.extraction("query test", timeframe="today")
     self.assertEqual(type(resp), list)
Exemplo n.º 6
0
def get_master_errors(stream):
    hit = keen.extraction(stream, 'this_5_years', filters=[
        {"property_name": "commit", "operator": "eq", "property_value": remote_head}])
    if not hit:
        raise ValueError('No data for master branch found')
    return hit[-1]
 def test_extraction(self):
     resp = keen.extraction("query test", timeframe="today")
     assert type(resp) is list
Exemplo n.º 8
0
 def test_extraction(self, get):
     get.return_value = self.LIST_RESPONSE
     resp = keen.extraction("query test", timeframe="today", property_names=["number"])
     self.assertEqual(type(resp), list)
     for event in resp:
         self.assertTrue("string" not in event)
Exemplo n.º 9
0
 def test_extraction(self):
     resp = keen.extraction("query test", timeframe="today")
     assert isinstance(resp, list)
Exemplo n.º 10
0
 def test_extraction(self):
     resp = keen.extraction("query test", timeframe="today",  property_names=["number"])
     self.assertEqual(type(resp), list)
     for event in resp:
         self.assertTrue("string" not in event)
Exemplo n.º 11
0
 def test_extraction(self):
     resp = keen.extraction("query test", timeframe="today")
     assert type(resp) is list
Exemplo n.º 12
0
import sys
import csv
import matplotlib.pyplot as plt
import numpy as num
import jdcal
import dateutil
import astropy.time

plt.ion()

duration = input("Duration of analysis until now in days or hours (nd or nh) : ")
if duration[-1:] == 'd' or duration[-1:] == 'D':
	tf = "this_"+duration[:-1]+"_days"
if duration[-1:] == 'h' or duration[-1:] == 'H':
	tf = "this_"+duration[:-1]+"_hours"	
c = keen.extraction("Beehive_MyDatas", property_names="data", timeframe=tf) 
ds = keen.extraction("Beehive_MyDatas", property_names="published_at", timeframe=tf) 
ne = len(c)
tb = num.empty([ne,5],num.float) 
tt = num.empty([ne],num.float) 

for i in range(ne):
	for j in range(5):
		tb[i,j] = float(c[i]['data'].split(" ")[2*j+1])
	# parsing de la date pour convertir en julien
	dss = ds[i]['published_at']
	dt1 = dss.split('-')
	dt2 = dt1[-1].split('T')
	dt3 = dt2[-1].split(':')
	dt4 = dt3[-1].split('Z')
	sd = dt1[0]+'.'+dt1[1]+'.'+dt2[0] # year, month, day