Skip to content

Commit 217a437

Browse files
authored
Change generate activity default (#11)
Only updates user activity on start and end of session to reduce database contention from highly parallel CI runs.
1 parent eb3941d commit 217a437

File tree

3 files changed

+9
-12
lines changed

3 files changed

+9
-12
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
- name: Install dependencies
3030
run: |
3131
sudo apt-get update
32-
sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
32+
sudo apt-get install libsasl2-dev python3-dev libldap2-dev libssl-dev
3333
- name: Setup Python
3434
uses: actions/setup-python@v2
3535
with:

flask_app/blueprints/api/blueprint.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
from flask_simple_api import SimpleAPI
55

66
from ... import activity
7-
from ...utils.api_utils import (auto_render, requires_login,
8-
requires_login_or_runtoken)
7+
from ...utils.api_utils import auto_render, requires_login, requires_login_or_runtoken
98

109
blueprint = Blueprint('api', __name__, url_prefix='/api')
1110

@@ -14,7 +13,7 @@
1413
_api_info = {'endpoints': {}}
1514

1615

17-
def API(func=None, require_real_login=False, generates_activity=True, require_login=True, version=1):
16+
def API(func=None, require_real_login=False, generates_activity=False, require_login=True, version=1):
1817
if func is None:
1918
return functools.partial(API, require_real_login=require_real_login, generates_activity=generates_activity, require_login=require_login, version=version)
2019

flask_app/blueprints/api/sessions.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,24 @@
22
from flask_simple_api import error_abort
33
import flux
44
import requests
5-
6-
from sqlalchemy.orm.exc import NoResultFound
75
from sqlalchemy.exc import IntegrityError
8-
from ...auth import get_or_create_user
6+
from sqlalchemy.orm.exc import NoResultFound
97

8+
from ...auth import get_or_create_user
9+
from ...models import Session, SessionMetadata, Test, User, db
1010
from ...search import get_orm_query_from_search_string
11-
from ...models import Session, Test, db, SessionMetadata, User
12-
from ...utils import get_current_time, statuses
11+
from ...utils import get_current_time, profiling, statuses
1312
from ...utils.api_utils import requires_role
1413
from ...utils.subjects import get_or_create_subject_instance
1514
from ...utils.users import has_role
16-
from ...utils import profiling
1715
from .blueprint import API
1816

1917
NoneType = type(None)
2018

2119
_DEFAULT_DELETE_GRACE_PERIOD_SECONDS = 60 * 60 * 24 * 30
2220

2321

24-
@API(version=3)
22+
@API(version=3, generates_activity=True)
2523
def report_session_start(logical_id: str=None,
2624
parent_logical_id: (NoneType, str)=None,
2725
is_parent_session: bool=False,
@@ -109,7 +107,7 @@ def report_session_start(logical_id: str=None,
109107
return returned
110108

111109

112-
@API(version=2)
110+
@API(version=2, generates_activity=True)
113111
def report_session_end(id: int, duration: (int, NoneType)=None, has_fatal_errors: bool=False):
114112
try:
115113
session = Session.query.filter(Session.id == id).one()

0 commit comments

Comments
 (0)