@@ 373-407 (lines=35) @@ | ||
370 | return -1 |
|
371 | ||
372 | ||
373 | def get_passed_build_jobs(repo=None, interval=None): |
|
374 | """ |
|
375 | Query Keen.io database and retrieve total number of build jobs that passed. |
|
376 | ||
377 | Parameters : |
|
378 | - repo : repo name (fe. buildtimetrend/service) |
|
379 | - interval : timeframe, possible values : 'week', 'month', 'year', |
|
380 | anything else defaults to 'week' |
|
381 | """ |
|
382 | if repo is None or not is_readable(): |
|
383 | return -1 |
|
384 | ||
385 | interval_data = check_time_interval(interval) |
|
386 | ||
387 | try: |
|
388 | return keen.count_unique( |
|
389 | "build_jobs", |
|
390 | target_property="job.job", |
|
391 | timeframe=interval_data['timeframe'], |
|
392 | max_age=interval_data['max_age'], |
|
393 | filters=[ |
|
394 | get_repo_filter(repo), |
|
395 | { |
|
396 | "property_name": "job.result", |
|
397 | "operator": "eq", |
|
398 | "property_value": "passed" |
|
399 | } |
|
400 | ] |
|
401 | ) |
|
402 | except requests.ConnectionError: |
|
403 | logger.error("Connection to Keen.io API failed") |
|
404 | return -1 |
|
405 | except keen.exceptions.KeenApiError as msg: |
|
406 | logger.error("Error in keenio.get_passed_build_jobs() : " + str(msg)) |
|
407 | return -1 |
|
408 | ||
409 | ||
410 | def get_pct_passed_build_jobs(repo=None, interval=None): |
|
@@ 455-482 (lines=28) @@ | ||
452 | return "red" |
|
453 | ||
454 | ||
455 | def get_total_builds(repo=None, interval=None): |
|
456 | """ |
|
457 | Query Keen.io database and retrieve total number of builds. |
|
458 | ||
459 | Parameters : |
|
460 | - repo : repo name (fe. buildtimetrend/service) |
|
461 | - interval : timeframe, possible values : 'week', 'month', 'year', |
|
462 | anything else defaults to 'week' |
|
463 | """ |
|
464 | if repo is None or not is_readable(): |
|
465 | return -1 |
|
466 | ||
467 | interval_data = check_time_interval(interval) |
|
468 | ||
469 | try: |
|
470 | return keen.count_unique( |
|
471 | "build_jobs", |
|
472 | target_property="job.build", |
|
473 | timeframe=interval_data['timeframe'], |
|
474 | max_age=interval_data['max_age'], |
|
475 | filters=[get_repo_filter(repo)] |
|
476 | ) |
|
477 | except requests.ConnectionError: |
|
478 | logger.error("Connection to Keen.io API failed") |
|
479 | return -1 |
|
480 | except keen.exceptions.KeenApiError as msg: |
|
481 | logger.error("Error in keenio.get_total_builds() : " + str(msg)) |
|
482 | return -1 |
|
483 | ||
484 | ||
485 | def get_latest_buildtime(repo=None): |
|
@@ 343-370 (lines=28) @@ | ||
340 | return -1 |
|
341 | ||
342 | ||
343 | def get_total_build_jobs(repo=None, interval=None): |
|
344 | """ |
|
345 | Query Keen.io database and retrieve total number of build jobs. |
|
346 | ||
347 | Parameters : |
|
348 | - repo : repo name (fe. buildtimetrend/service) |
|
349 | - interval : timeframe, possible values : 'week', 'month', 'year', |
|
350 | anything else defaults to 'week' |
|
351 | """ |
|
352 | if repo is None or not is_readable(): |
|
353 | return -1 |
|
354 | ||
355 | interval_data = check_time_interval(interval) |
|
356 | ||
357 | try: |
|
358 | return keen.count_unique( |
|
359 | "build_jobs", |
|
360 | target_property="job.job", |
|
361 | timeframe=interval_data['timeframe'], |
|
362 | max_age=interval_data['max_age'], |
|
363 | filters=[get_repo_filter(repo)] |
|
364 | ) |
|
365 | except requests.ConnectionError: |
|
366 | logger.error("Connection to Keen.io API failed") |
|
367 | return -1 |
|
368 | except keen.exceptions.KeenApiError as msg: |
|
369 | logger.error("Error in keenio.get_total_build_jobs() : " + str(msg)) |
|
370 | return -1 |
|
371 | ||
372 | ||
373 | def get_passed_build_jobs(repo=None, interval=None): |
|
@@ 313-340 (lines=28) @@ | ||
310 | return keen_config |
|
311 | ||
312 | ||
313 | def get_avg_buildtime(repo=None, interval=None): |
|
314 | """ |
|
315 | Query Keen.io database and retrieve average build time. |
|
316 | ||
317 | Parameters : |
|
318 | - repo : repo name (fe. buildtimetrend/service) |
|
319 | - interval : timeframe, possible values : 'week', 'month', 'year', |
|
320 | anything else defaults to 'week' |
|
321 | """ |
|
322 | if repo is None or not is_readable(): |
|
323 | return -1 |
|
324 | ||
325 | interval_data = check_time_interval(interval) |
|
326 | ||
327 | try: |
|
328 | return keen.average( |
|
329 | "build_jobs", |
|
330 | target_property="job.duration", |
|
331 | timeframe=interval_data['timeframe'], |
|
332 | max_age=interval_data['max_age'], |
|
333 | filters=[get_repo_filter(repo)] |
|
334 | ) |
|
335 | except requests.ConnectionError: |
|
336 | logger.error("Connection to Keen.io API failed") |
|
337 | return -1 |
|
338 | except keen.exceptions.KeenApiError as msg: |
|
339 | logger.error("Error in keenio.get_avg_buildtime() : " + str(msg)) |
|
340 | return -1 |
|
341 | ||
342 | ||
343 | def get_total_build_jobs(repo=None, interval=None): |