refactor: centralize progress ID generation
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
import threading
|
||||
import time
|
||||
import uuid
|
||||
from typing import Any, Callable, Dict, Optional
|
||||
|
||||
from .log_system import create_module_logger
|
||||
@@ -9,6 +10,11 @@ from .log_system import create_module_logger
|
||||
log = create_module_logger(__name__)
|
||||
|
||||
|
||||
def generate_progress_id(prefix: str) -> str:
|
||||
"""Generate an opaque progress ID with a stable caller-provided prefix."""
|
||||
return f"{prefix}_{uuid.uuid4().hex}"
|
||||
|
||||
|
||||
class JobProgressTracker:
|
||||
"""Helper class for thread-safe job progress tracking and cancellation management."""
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
import os
|
||||
import time
|
||||
import uuid
|
||||
|
||||
from .. import path_utils
|
||||
from ..local_hash_matches import collect_local_hash_matches_for_result
|
||||
from ..progress import generate_progress_id
|
||||
from ..request_utils import extract_request_sha256, validate_workflow_payload
|
||||
from ..routes.context import RouteContext
|
||||
|
||||
@@ -608,7 +608,7 @@ class HashService:
|
||||
return error_response
|
||||
|
||||
self.hash_tracker.cleanup()
|
||||
progress_id = f"hash_{uuid.uuid4().hex}"
|
||||
progress_id = generate_progress_id("hash")
|
||||
self.hash_tracker.update(
|
||||
progress_id,
|
||||
status="queued",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
"""Metadata audit and build orchestration used by HTTP route adapters."""
|
||||
|
||||
import uuid
|
||||
|
||||
from ..progress import generate_progress_id
|
||||
from ..request_utils import read_optional_object_payload
|
||||
from ..routes.context import RouteContext
|
||||
|
||||
@@ -64,7 +63,7 @@ class MetadataService:
|
||||
payload.get("metadata_mode")
|
||||
)
|
||||
self.metadata_builder_progress.cleanup()
|
||||
progress_id = f"metadata_build_{uuid.uuid4().hex}"
|
||||
progress_id = generate_progress_id("metadata_build")
|
||||
self.metadata_builder_progress.update(
|
||||
progress_id,
|
||||
status="queued",
|
||||
|
||||
@@ -29,11 +29,19 @@ from core.settings import (
|
||||
_resolve_base_model_mapping,
|
||||
)
|
||||
|
||||
from core.progress import JobProgressTracker
|
||||
from core.progress import JobProgressTracker, generate_progress_id
|
||||
|
||||
|
||||
class ModelResolverRobustnessTests(unittest.TestCase):
|
||||
|
||||
def test_progress_id_generation_preserves_prefix_and_uuid_shape(self):
|
||||
metadata_id = generate_progress_id("metadata_build")
|
||||
hash_id = generate_progress_id("hash")
|
||||
|
||||
self.assertRegex(metadata_id, r"^metadata_build_[0-9a-f]{32}$")
|
||||
self.assertRegex(hash_id, r"^hash_[0-9a-f]{32}$")
|
||||
self.assertNotEqual(metadata_id, hash_id)
|
||||
|
||||
def test_download_match_paths_use_a_normalized_absolute_comparison_key(self):
|
||||
raw_path = " models{}..{}checkpoints{}model.safetensors ".format(
|
||||
os.sep,
|
||||
|
||||
Reference in New Issue
Block a user