Skip to content

Commit e48a9b3

Browse files
committed
Fix code style issues
1 parent 73867f2 commit e48a9b3

3 files changed

Lines changed: 90 additions & 49 deletions

File tree

scheduler/app/faas_scheduler/models.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,12 @@ def to_dict(self, include_context_data=True, include_output=True):
6767
}
6868

6969
if include_context_data:
70-
entry['context_data'] = json.loads(self.context_data) if self.context_data else None
70+
entry["context_data"] = (
71+
json.loads(self.context_data) if self.context_data else None
72+
)
7173

7274
if include_output:
73-
entry['output'] = self.output
75+
entry["output"] = self.output
7476

7577
return entry
7678

scheduler/app/faas_scheduler/utils.py

Lines changed: 57 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -498,8 +498,21 @@ def get_run_script_statistics_by_month(
498498
return month.strftime("%Y-%m"), total_count, results
499499

500500

501-
def get_script_runs(db_session, org_id, base_uuid, start, end, page, per_page) -> Tuple[List[ScriptLog], int]:
502-
fields = [ScriptLog.id, ScriptLog.dtable_uuid, ScriptLog.owner, ScriptLog.org_id, ScriptLog.script_name, ScriptLog.started_at, ScriptLog.finished_at, ScriptLog.success, ScriptLog.return_code, ScriptLog.operate_from]
501+
def get_script_runs(
502+
db_session, org_id, base_uuid, start, end, page, per_page
503+
) -> Tuple[List[ScriptLog], int]:
504+
fields = [
505+
ScriptLog.id,
506+
ScriptLog.dtable_uuid,
507+
ScriptLog.owner,
508+
ScriptLog.org_id,
509+
ScriptLog.script_name,
510+
ScriptLog.started_at,
511+
ScriptLog.finished_at,
512+
ScriptLog.success,
513+
ScriptLog.return_code,
514+
ScriptLog.operate_from,
515+
]
503516
query = db_session.query(ScriptLog).options(load_only(*fields))
504517

505518
if org_id:
@@ -515,28 +528,46 @@ def get_script_runs(db_session, org_id, base_uuid, start, end, page, per_page) -
515528
query = query.filter(ScriptLog.started_at <= end)
516529

517530
total_count = query.count()
518-
runs = query.limit(per_page).offset((page-1) * per_page).all()
531+
runs = query.limit(per_page).offset((page - 1) * per_page).all()
519532

520533
return runs, total_count
521534

522535

523-
def get_statistics_grouped_by_base(db_session, org_id: int, start: Optional[datetime], end: Optional[datetime], page: int, per_page: int) -> Tuple[List[dict], int]:
536+
def get_statistics_grouped_by_base(
537+
db_session,
538+
org_id: int,
539+
start: Optional[datetime],
540+
end: Optional[datetime],
541+
page: int,
542+
per_page: int,
543+
) -> Tuple[List[dict], int]:
524544
fields = [
525545
ScriptLog.dtable_uuid,
526-
func.count(ScriptLog.id).label('number_of_runs'),
546+
func.count(ScriptLog.id).label("number_of_runs"),
527547
# This calls MariaDB's TIMESTAMPDIFF() function with microsecond precision to prevent rounding errors
528548
# Note: Scripts that haven't finished yet are simply ignored
529-
func.sum(func.timestampdiff(text('MICROSECOND'), ScriptLog.started_at, ScriptLog.finished_at) / 1_000_000).label('total_run_time'),
549+
func.sum(
550+
func.timestampdiff(
551+
text("MICROSECOND"), ScriptLog.started_at, ScriptLog.finished_at
552+
)
553+
/ 1_000_000
554+
).label("total_run_time"),
530555
# FIXME: manualy -> manually
531-
func.count(case((ScriptLog.operate_from == 'manualy', 1))).label('triggered_manually'),
532-
func.count(case((ScriptLog.operate_from == 'automation-rule', 1))).label('triggered_by_automation_rule'),
533-
func.count(case((ScriptLog.success == True, 1))).label('successful_runs'),
534-
func.count(case((ScriptLog.success == False, 1))).label('unsuccessful_runs'),
556+
func.count(case((ScriptLog.operate_from == "manualy", 1))).label(
557+
"triggered_manually"
558+
),
559+
func.count(case((ScriptLog.operate_from == "automation-rule", 1))).label(
560+
"triggered_by_automation_rule"
561+
),
562+
func.count(case((ScriptLog.success == True, 1))).label("successful_runs"),
563+
func.count(case((ScriptLog.success == False, 1))).label("unsuccessful_runs"),
535564
]
536565

537-
query = db_session.query(*fields) \
538-
.filter_by(org_id=org_id) \
566+
query = (
567+
db_session.query(*fields)
568+
.filter_by(org_id=org_id)
539569
.group_by(ScriptLog.dtable_uuid)
570+
)
540571

541572
if start:
542573
query = query.filter(ScriptLog.started_at >= start)
@@ -545,24 +576,27 @@ def get_statistics_grouped_by_base(db_session, org_id: int, start: Optional[date
545576
query = query.filter(ScriptLog.started_at <= end)
546577

547578
total_count = query.count()
548-
rows = query.limit(per_page).offset((page-1) * per_page).all()
579+
rows = query.limit(per_page).offset((page - 1) * per_page).all()
549580

550581
results = []
551582

552583
for row in rows:
553-
results.append({''
554-
'base_uuid': row.dtable_uuid,
555-
'number_of_runs': row.number_of_runs,
556-
# int() is required since MariaDB returns total_run_time as a string
557-
'total_run_time': int(row.total_run_time),
558-
'triggered_manually': row.triggered_manually,
559-
'triggered_by_automation_rule': row.triggered_by_automation_rule,
560-
'successful_runs': row.successful_runs,
561-
'unsuccessful_runs': row.unsuccessful_runs,
562-
})
584+
results.append(
585+
{
586+
"base_uuid": row.dtable_uuid,
587+
"number_of_runs": row.number_of_runs,
588+
# int() is required since MariaDB returns total_run_time as a string
589+
"total_run_time": int(row.total_run_time),
590+
"triggered_manually": row.triggered_manually,
591+
"triggered_by_automation_rule": row.triggered_by_automation_rule,
592+
"successful_runs": row.successful_runs,
593+
"unsuccessful_runs": row.unsuccessful_runs,
594+
}
595+
)
563596

564597
return results, total_count
565598

599+
566600
def datetime_to_isoformat_timestr(datetime_obj):
567601
if not datetime_obj:
568602
return ""

scheduler/app/flask_server.py

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -388,50 +388,52 @@ def base_run_python_statistics():
388388

389389

390390
# List all runs
391-
@app.route('/admin/runs/', methods=['GET'])
391+
@app.route("/admin/runs/", methods=["GET"])
392392
def list_runs():
393393
if not check_auth_token(request):
394394
return make_response(("Forbidden: the auth token is not correct.", 403))
395395

396396
# org_id and base_uuid are optional
397397
org_id = request.args.get("org_id")
398-
base_uuid = request.args.get('base_uuid')
398+
base_uuid = request.args.get("base_uuid")
399399

400-
if request.args.get('start'):
400+
if request.args.get("start"):
401401
try:
402402
start = datetime.strptime(request.args.get("start"), "%Y-%m-%d")
403-
except:
404-
return {'error': 'Invalid value for start parameter'}, 400
403+
except ValueError:
404+
return {"error": "Invalid value for start parameter"}, 400
405405
else:
406406
start = None
407407

408-
if request.args.get('end'):
408+
if request.args.get("end"):
409409
try:
410410
end = datetime.strptime(request.args.get("end"), "%Y-%m-%d")
411411
# Add one day since a date parsed by strptime defaults to midnight
412412
end = end + timedelta(days=1)
413-
except:
414-
return {'error': 'Invalid value for end parameter'}, 400
413+
except ValueError:
414+
return {"error": "Invalid value for end parameter"}, 400
415415
else:
416416
end = None
417417

418418
try:
419419
page = int(request.args.get("page", "1"))
420420
except ValueError:
421-
return {'error': 'page must be an integer'}, 400
421+
return {"error": "page must be an integer"}, 400
422422

423423
try:
424424
per_page = int(request.args.get("per_page", "100"))
425425
except ValueError:
426-
return {'error': 'per_page must be an integer'}, 400
426+
return {"error": "per_page must be an integer"}, 400
427427

428428
if per_page > 1000:
429-
return {'error': 'per_page cannot be greater than 1000'}, 400
429+
return {"error": "per_page cannot be greater than 1000"}, 400
430430

431431
db_session = DBSession()
432432

433433
try:
434-
runs, total_count = get_script_runs(db_session, org_id, base_uuid, start, end, page, per_page)
434+
runs, total_count = get_script_runs(
435+
db_session, org_id, base_uuid, start, end, page, per_page
436+
)
435437
except Exception as e:
436438
logger.exception(e)
437439
return make_response(("Internal server error", 500))
@@ -444,50 +446,52 @@ def list_runs():
444446

445447

446448
# Get run statistics grouped by base UUID
447-
@app.route('/admin/statistics/by-base/', methods=['GET'])
449+
@app.route("/admin/statistics/by-base/", methods=["GET"])
448450
def get_run_statistics_grouped_by_base():
449451
if not check_auth_token(request):
450452
return make_response(("Forbidden: the auth token is not correct.", 403))
451453

452454
org_id = request.args.get("org_id")
453455
if not org_id:
454-
return {'error': 'org_id is required'}, 400
456+
return {"error": "org_id is required"}, 400
455457

456-
if request.args.get('start'):
458+
if request.args.get("start"):
457459
try:
458460
start = datetime.strptime(request.args.get("start"), "%Y-%m-%d")
459-
except:
460-
return {'error': 'Invalid value for start parameter'}, 400
461+
except ValueError:
462+
return {"error": "Invalid value for start parameter"}, 400
461463
else:
462464
start = None
463465

464-
if request.args.get('end'):
466+
if request.args.get("end"):
465467
try:
466468
end = datetime.strptime(request.args.get("end"), "%Y-%m-%d")
467469
# Add one day since a date parsed by strptime defaults to midnight
468470
end = end + timedelta(days=1)
469-
except:
470-
return {'error': 'Invalid value for end parameter'}, 400
471+
except ValueError:
472+
return {"error": "Invalid value for end parameter"}, 400
471473
else:
472474
end = None
473475

474476
try:
475477
page = int(request.args.get("page", "1"))
476478
except ValueError:
477-
return {'error': 'page must be an integer'}, 400
479+
return {"error": "page must be an integer"}, 400
478480

479481
try:
480482
per_page = int(request.args.get("per_page", "100"))
481483
except ValueError:
482-
return {'error': 'per_page must be an integer'}, 400
484+
return {"error": "per_page must be an integer"}, 400
483485

484486
if per_page > 1000:
485-
return {'error': 'per_page cannot be greater than 1000'}, 400
487+
return {"error": "per_page cannot be greater than 1000"}, 400
486488

487489
db_session = DBSession()
488490

489491
try:
490-
results, total_count = get_statistics_grouped_by_base(db_session, org_id, start, end, page, per_page)
492+
results, total_count = get_statistics_grouped_by_base(
493+
db_session, org_id, start, end, page, per_page
494+
)
491495
except Exception as e:
492496
logger.exception(e)
493497
return make_response(("Internal server error", 500))
@@ -496,6 +500,7 @@ def get_run_statistics_grouped_by_base():
496500

497501
return {"results": results, "total_count": total_count}
498502

503+
499504
if __name__ == "__main__":
500505
http_server = WSGIServer(("127.0.0.1", 5055), app)
501506
http_server.serve_forever()

0 commit comments

Comments
 (0)