mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-02-02 20:59:06 +08:00
Add delay to missed new repo check
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
from __future__ import absolute_import
|
||||
from datetime import timedelta, datetime
|
||||
import time
|
||||
import operator
|
||||
|
||||
import koji
|
||||
@@ -452,5 +453,8 @@ def has_missed_new_repo_message(module_build, koji_session):
|
||||
'Checking status of newRepo task "%d" for %s',
|
||||
module_build.new_repo_task_id, module_build)
|
||||
task_info = koji_session.getTaskInfo(module_build.new_repo_task_id)
|
||||
# To avoid a race condition, wait at least 10 minutes to nudge build
|
||||
if task_info['completion_ts'] and (time.time() - task_info['completion_ts']) < 600:
|
||||
return False
|
||||
# Other final states, FAILED and CANCELED, are handled by retrigger_new_repo_on_failure
|
||||
return task_info["state"] == koji.TASK_STATES["CLOSED"]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
from __future__ import absolute_import
|
||||
from datetime import datetime, timedelta
|
||||
import time
|
||||
|
||||
import koji
|
||||
import mock
|
||||
@@ -77,14 +78,15 @@ class TestPoller:
|
||||
|
||||
assert len(start_build_component.mock_calls) == expected_build_calls
|
||||
|
||||
@pytest.mark.parametrize('task_state, expect_start_build_component', (
|
||||
(None, True), # Indicates a newRepo task has not been triggered yet.
|
||||
(koji.TASK_STATES["CLOSED"], True),
|
||||
(koji.TASK_STATES["OPEN"], False),
|
||||
@pytest.mark.parametrize('completion_ts, task_state, expect_start_build_component', (
|
||||
(None, None, True), # Indicates a newRepo task has not been triggered yet.
|
||||
((time.time() - 601), koji.TASK_STATES["CLOSED"], True),
|
||||
(time.time(), koji.TASK_STATES["CLOSED"], False),
|
||||
(None, koji.TASK_STATES["OPEN"], False),
|
||||
))
|
||||
@patch("module_build_service.scheduler.batches.start_build_component")
|
||||
def test_process_paused_module_builds_with_new_repo_task(
|
||||
self, start_build_component, create_builder, dbg, task_state,
|
||||
self, start_build_component, create_builder, dbg, completion_ts, task_state,
|
||||
expect_start_build_component
|
||||
):
|
||||
"""
|
||||
@@ -100,7 +102,8 @@ class TestPoller:
|
||||
module_build.time_modified = datetime.utcnow() - timedelta(days=5)
|
||||
if task_state:
|
||||
koji_session = mock.MagicMock()
|
||||
koji_session.getTaskInfo.return_value = {"state": task_state}
|
||||
koji_session.getTaskInfo.return_value = {"state": task_state,
|
||||
"completion_ts": completion_ts}
|
||||
builder.koji_session = koji_session
|
||||
module_build.new_repo_task_id = 123
|
||||
db_session.commit()
|
||||
|
||||
Reference in New Issue
Block a user