1- from datetime import datetime
1+ from datetime import datetime , timezone
22
33from flask import request , jsonify
44from sqlalchemy import and_
88from flask_monitoringdashboard .core .auth import secure
99from flask_monitoringdashboard .core .date_interval import DateInterval
1010from flask_monitoringdashboard .core .telemetry import post_to_back_if_telemetry_enabled
11- from flask_monitoringdashboard .core .reporting .questions .median_latency import \
12- MedianLatency
11+ from flask_monitoringdashboard .core .reporting .questions .median_latency import (
12+ MedianLatency ,
13+ )
1314from flask_monitoringdashboard .core .reporting .questions .status_code_distribution import (
1415 StatusCodeDistribution ,
1516)
1617from flask_monitoringdashboard .database import session_scope
1718from flask_monitoringdashboard .database .endpoint import get_endpoints
18- from flask_monitoringdashboard .database .request import create_time_based_sample_criterion
19+ from flask_monitoringdashboard .database .request import (
20+ create_time_based_sample_criterion ,
21+ )
1922
2023
2124def get_date (p ):
22- return datetime .utcfromtimestamp (int (request .args .get (p )))
25+ return datetime .fromtimestamp (int (request .args .get (p )), tz = timezone . utc )
2326
2427
2528def make_endpoint_summary (endpoint , requests_criterion , baseline_requests_criterion ):
@@ -33,13 +36,14 @@ def make_endpoint_summary(endpoint, requests_criterion, baseline_requests_criter
3336 )
3437
3538 for question in questions :
36- answer = question .get_answer (endpoint , requests_criterion ,
37- baseline_requests_criterion )
39+ answer = question .get_answer (
40+ endpoint , requests_criterion , baseline_requests_criterion
41+ )
3842
3943 if answer .is_significant ():
40- summary [' has_anything_significant' ] = True
44+ summary [" has_anything_significant" ] = True
4145
42- summary [' answers' ].append (answer .serialize ())
46+ summary [" answers" ].append (answer .serialize ())
4347
4448 return summary
4549
@@ -49,52 +53,54 @@ def make_endpoint_summaries(requests_criterion, baseline_requests_criterion):
4953
5054 with session_scope () as db_session :
5155 for endpoint in get_endpoints (db_session ):
52- endpoint_summary = make_endpoint_summary (endpoint , requests_criterion ,
53- baseline_requests_criterion )
56+ endpoint_summary = make_endpoint_summary (
57+ endpoint , requests_criterion , baseline_requests_criterion
58+ )
5459 endpoint_summaries .append (endpoint_summary )
5560
5661 return dict (summaries = endpoint_summaries )
5762
5863
59- @blueprint .route (' /api/reporting/make_report/intervals' , methods = [' POST' ])
64+ @blueprint .route (" /api/reporting/make_report/intervals" , methods = [" POST" ])
6065@secure
6166def make_report_intervals ():
62- post_to_back_if_telemetry_enabled (** {' name' : ' reporting/make_reports/intervals' })
67+ post_to_back_if_telemetry_enabled (** {" name" : " reporting/make_reports/intervals" })
6368 arguments = request .json
6469
6570 try :
6671 interval = DateInterval (
67- datetime .fromtimestamp (int (arguments [' interval' ][ ' from' ]) ),
68- datetime .fromtimestamp (int (arguments [' interval' ][ 'to' ]) ),
72+ datetime .fromtimestamp (int (arguments [" interval" ][ " from" ]), tz = timezone . utc ),
73+ datetime .fromtimestamp (int (arguments [" interval" ][ "to" ]), tz = timezone . utc ),
6974 )
7075
7176 baseline_interval = DateInterval (
72- datetime .fromtimestamp (int (arguments [' baseline_interval' ][ ' from' ]) ),
73- datetime .fromtimestamp (int (arguments [' baseline_interval' ][ 'to' ]) ),
77+ datetime .fromtimestamp (int (arguments [" baseline_interval" ][ " from" ]), tz = timezone . utc ),
78+ datetime .fromtimestamp (int (arguments [" baseline_interval" ][ "to" ]), tz = timezone . utc ),
7479 )
7580
7681 except Exception :
77- return ' Invalid payload' , 422
82+ return " Invalid payload" , 422
7883
7984 baseline_requests_criterion = create_time_based_sample_criterion (
80- baseline_interval .start_date (),
81- baseline_interval .end_date ())
82- requests_criterion = create_time_based_sample_criterion (interval .start_date (),
83- interval .end_date ())
85+ baseline_interval .start_date (), baseline_interval .end_date ()
86+ )
87+ requests_criterion = create_time_based_sample_criterion (
88+ interval .start_date (), interval .end_date ()
89+ )
8490
8591 summaries = make_endpoint_summaries (requests_criterion , baseline_requests_criterion )
8692
8793 return jsonify (summaries )
8894
8995
90- @blueprint .route (' /api/reporting/make_report/commits' , methods = [' POST' ])
96+ @blueprint .route (" /api/reporting/make_report/commits" , methods = [" POST" ])
9197@secure
9298def make_report_commits ():
93- post_to_back_if_telemetry_enabled (** {' name' : ' reporting/make_reports/commits' })
99+ post_to_back_if_telemetry_enabled (** {" name" : " reporting/make_reports/commits" })
94100 arguments = request .json
95101
96- baseline_commit_version = arguments [' baseline_commit_version' ]
97- commit_version = arguments [' commit_version' ]
102+ baseline_commit_version = arguments [" baseline_commit_version" ]
103+ commit_version = arguments [" commit_version" ]
98104
99105 if None in [baseline_commit_version , commit_version ]:
100106 return dict (message = "Please select two commits" ), 422
0 commit comments