Skip to content

Commit

Permalink
swatbotrest: Reduce cache time for pending failures
Browse files Browse the repository at this point in the history
Signed-off-by: Mathieu Dubois-Briand <[email protected]>
  • Loading branch information
mbriand committed Nov 8, 2024
1 parent 394d4d9 commit c289533
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions swattool/swatbotrest.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ class RefreshManager:

_instance = None

FAILURES_AUTO_REFRESH_S = 60 * 60 * 4
AUTO_REFRESH_S = 60 * 60 * 24 * 30

# pylint: disable=duplicate-code
Expand Down Expand Up @@ -64,7 +63,8 @@ def set_policy_by_name(self, policy_name: str):

def get_refresh_max_age(self,
refresh_override: Optional[RefreshPolicy] = None,
failures: bool = False
failures: bool = False,
auto: int = AUTO_REFRESH_S
) -> int:
"""Get the maximum age before refresh for a given policy."""
policy = refresh_override if refresh_override else self.refresh_policy
Expand All @@ -76,9 +76,7 @@ def get_refresh_max_age(self,
if policy == RefreshPolicy.NO:
return -1

if failures:
return self.FAILURES_AUTO_REFRESH_S
return self.AUTO_REFRESH_S
return auto


class TriageStatus(enum.IntEnum):
Expand Down Expand Up @@ -167,17 +165,26 @@ def invalidate_stepfailures_cache():
Session().invalidate_cache(f"{REST_BASE_URL}/stepfailure/", allparams=True)


FAILURES_AUTO_REFRESH_S = 60 * 60 * 4
PENDING_FAILURES_AUTO_REFRESH_S = 60 * 10


def get_stepfailures(status: Optional[TriageStatus] = None,
refresh_override: Optional[RefreshPolicy] = None):
"""Get info on all failures."""
maxage = RefreshManager().get_refresh_max_age(refresh_override,
failures=True)
auto_refresh_s = FAILURES_AUTO_REFRESH_S
params: dict[str, Any] = {}
if status is not None:
params['triage'] = status.value
if status.value == TriageStatus.PENDING:
auto_refresh_s = PENDING_FAILURES_AUTO_REFRESH_S

request = f"/stepfailure/?{urllib.parse.urlencode(params)}"
maxage = RefreshManager().get_refresh_max_age(refresh_override,
failures=True,
auto=auto_refresh_s)

print(f"max age: {maxage}")
return _get_json(request, maxage)['data']


Expand Down

0 comments on commit c289533

Please sign in to comment.