|
40 | 40 | from ai.backend.manager.models.artifact_revision import ArtifactRevisionRow |
41 | 41 | from ai.backend.manager.models.association_artifacts_storages import AssociationArtifactsStorageRow |
42 | 42 | from ai.backend.manager.models.utils import ExtendedAsyncSAEngine |
43 | | -from ai.backend.manager.repositories.artifact.creators import ArtifactCreatorSpec |
| 43 | +from ai.backend.manager.repositories.artifact.creators import ( |
| 44 | + ArtifactCreatorSpec, |
| 45 | + ArtifactRevisionCreatorSpec, |
| 46 | +) |
44 | 47 | from ai.backend.manager.repositories.base import BatchQuerier, execute_batch_querier |
45 | 48 | from ai.backend.manager.repositories.base.rbac.entity_creator import ( |
46 | 49 | RBACEntityCreator, |
@@ -231,23 +234,27 @@ async def upsert_artifact_revisions( |
231 | 234 | if revision_data.verification_result is not None: |
232 | 235 | verification_result = revision_data.verification_result.model_dump() |
233 | 236 |
|
234 | | - new_revision = ArtifactRevisionRow( |
235 | | - id=revision_data.id, |
236 | | - artifact_id=revision_data.artifact_id, |
237 | | - version=revision_data.version, |
238 | | - readme=revision_data.readme, |
239 | | - size=revision_data.size, |
240 | | - status=ArtifactStatus.SCANNED, |
241 | | - remote_status=revision_data.remote_status, |
242 | | - created_at=revision_data.created_at, |
243 | | - updated_at=revision_data.updated_at, |
244 | | - digest=revision_data.digest, |
245 | | - verification_result=verification_result, |
| 237 | + creator = RBACEntityCreator( |
| 238 | + spec=ArtifactRevisionCreatorSpec( |
| 239 | + id=revision_data.id, |
| 240 | + artifact_id=revision_data.artifact_id, |
| 241 | + version=revision_data.version, |
| 242 | + readme=revision_data.readme, |
| 243 | + size=revision_data.size, |
| 244 | + status=ArtifactStatus.SCANNED, |
| 245 | + remote_status=revision_data.remote_status, |
| 246 | + created_at=revision_data.created_at, |
| 247 | + updated_at=revision_data.updated_at, |
| 248 | + digest=revision_data.digest, |
| 249 | + verification_result=verification_result, |
| 250 | + ), |
| 251 | + element_type=RBACElementType.ARTIFACT_REVISION, |
| 252 | + scope_ref=RBACElementRef( |
| 253 | + RBACElementType.ARTIFACT, str(revision_data.artifact_id) |
| 254 | + ), |
246 | 255 | ) |
247 | | - db_sess.add(new_revision) |
248 | | - await db_sess.flush() |
249 | | - await db_sess.refresh(new_revision) |
250 | | - result_revisions.append(new_revision.to_dataclass()) |
| 256 | + creator_result = await execute_rbac_entity_creator(db_sess, creator) |
| 257 | + result_revisions.append(creator_result.row.to_dataclass()) |
251 | 258 | artifact_ids_to_update.add(revision_data.artifact_id) |
252 | 259 | else: |
253 | 260 | # Update existing revision only if there are changes |
@@ -368,15 +375,24 @@ async def upsert_huggingface_model_artifacts( |
368 | 375 | artifacts_map[artifact_row.id][1].append(existing_revision) |
369 | 376 | else: |
370 | 377 | # Insert new artifact revision |
371 | | - new_revision = ArtifactRevisionRow.from_huggingface_model_data( |
372 | | - artifact_id=artifact_row.id, |
373 | | - model_data=model, |
| 378 | + creator = RBACEntityCreator( |
| 379 | + spec=ArtifactRevisionCreatorSpec( |
| 380 | + artifact_id=artifact_row.id, |
| 381 | + version=model.revision, |
| 382 | + readme=model.readme, |
| 383 | + size=model.size, |
| 384 | + status=ArtifactStatus.SCANNED, |
| 385 | + remote_status=None, |
| 386 | + created_at=model.created_at, |
| 387 | + updated_at=model.modified_at, |
| 388 | + digest=model.sha, |
| 389 | + verification_result=None, |
| 390 | + ), |
| 391 | + element_type=RBACElementType.ARTIFACT_REVISION, |
| 392 | + scope_ref=RBACElementRef(RBACElementType.ARTIFACT, str(artifact_row.id)), |
374 | 393 | ) |
375 | | - |
376 | | - db_sess.add(new_revision) |
377 | | - await db_sess.flush() |
378 | | - await db_sess.refresh(new_revision) |
379 | | - artifacts_map[artifact_row.id][1].append(new_revision) |
| 394 | + creator_result = await execute_rbac_entity_creator(db_sess, creator) |
| 395 | + artifacts_map[artifact_row.id][1].append(creator_result.row) |
380 | 396 | artifact_ids_to_update.add(artifact_row.id) |
381 | 397 |
|
382 | 398 | # Update artifact updated_at timestamp for affected artifacts |
|
0 commit comments