Skip to content

Commit 1b7ee2a

Browse files
Merge pull request #800 from umccr/fix(wfm)/create-portal-run-id
Fix(WFM): Portal Run Id Creation
2 parents c475fbb + ee6b2df commit 1b7ee2a

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

lib/workload/stateless/stacks/workflow-manager/workflow_manager/management/commands/generate_analysis_for_metadata.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from workflow_manager.models import Workflow, WorkflowRun, Analysis, AnalysisContext, AnalysisRun, \
1010
Library, LibraryAssociation, State, Status
11+
from workflow_manager.models.utils import create_portal_run_id
1112
from workflow_manager.tests.factories import PayloadFactory, LibraryFactory
1213

1314
# https://docs.djangoproject.com/en/5.0/howto/custom-management-commands/
@@ -512,6 +513,3 @@ def create_workflowrun_for_analysis(analysis_run: AnalysisRun):
512513
ready_state.save()
513514

514515

515-
def create_portal_run_id() -> str:
516-
date = datetime.now(timezone.utc)
517-
return f"{date.year}{date.month}{date.day}{str(uuid.uuid4())[:8]}"

lib/workload/stateless/stacks/workflow-manager/workflow_manager/models/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,4 +146,4 @@ def get_latest_state(states: List[State]) -> State:
146146

147147
def create_portal_run_id() -> str:
148148
date = datetime.now(timezone.utc)
149-
return f"{date.year}{date.month}{date.day}{str(uuid.uuid4())[:8]}"
149+
return f"{date.year:04}{date.month:02}{date.day:02}{str(uuid.uuid4())[:8]}"

lib/workload/stateless/stacks/workflow-manager/workflow_manager/tests/test_models.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import logging
2+
import time
23
from unittest import skip
34

45
from django.test import TestCase
56

67
from workflow_manager.models import Library
8+
from workflow_manager.models.utils import create_portal_run_id
79
from workflow_manager.models.workflow import Workflow
810

911
logger = logging.getLogger()
@@ -26,7 +28,6 @@ def test_save_workflow(self):
2628

2729
self.assertEqual(1, Workflow.objects.count())
2830

29-
3031
def test_save_library(self):
3132
"""
3233
python manage.py test workflow_manager.tests.test_models.WorkflowModelTests.test_save_library
@@ -39,7 +40,6 @@ def test_save_library(self):
3940
logger.info(lib)
4041
self.assertEqual(1, Library.objects.count())
4142

42-
4343
def test_save_library_with_orcabus_id(self):
4444
"""
4545
python manage.py test workflow_manager.tests.test_models.WorkflowModelTests.test_save_library_with_orcabus_id
@@ -52,3 +52,17 @@ def test_save_library_with_orcabus_id(self):
5252
lib.save()
5353
logger.info(lib)
5454
self.assertEqual(1, Library.objects.count())
55+
56+
def test_create_portal_run_id(self):
57+
"""
58+
python manage.py test workflow_manager.tests.test_models.WorkflowModelTests.test_create_portal_run_id
59+
"""
60+
portal_run_id_1 = create_portal_run_id()
61+
62+
# making sure portal_run_id is different generated in different time
63+
time.sleep(1)
64+
portal_run_id_2 = create_portal_run_id()
65+
66+
self.assertIsNotNone(portal_run_id_1)
67+
self.assertEqual(len(portal_run_id_1), 16)
68+
self.assertNotEqual(portal_run_id_1, portal_run_id_2)

0 commit comments

Comments
 (0)