Added an update to the registration function to reject a change for the same provider with a message asking the caller to unregister the model first

This commit is contained in:
Omar Abdelwahab 2025-09-30 14:59:32 -07:00
parent d350e3662b
commit f0545a3fec
2 changed files with 9 additions and 2 deletions

View file

@ -98,7 +98,10 @@ class DiskDistributionRegistry(DistributionRegistry):
existing_obj = await self.get(obj.type, obj.identifier)
# dont register if the object's providerid already exists
if existing_obj and existing_obj.provider_id == obj.provider_id:
return False
raise ValueError(
f"Model '{obj.identifier}' is already registered with provider '{obj.provider_id}'. "
f"Please unregister the existing model first before registering a new one."
)
await self.kvstore.set(
KEY_FORMAT.format(type=obj.type, identifier=obj.identifier),

View file

@ -125,8 +125,12 @@ async def test_duplicate_provider_registration(cached_disk_dist_registry):
provider_resource_id="test_vector_db_2",
provider_id="baz", # Same provider_id
)
await cached_disk_dist_registry.register(duplicate_vector_db)
# Now we expect a ValueError to be raised for duplicate registration
with pytest.raises(ValueError, match=r".*already registered.*"):
await cached_disk_dist_registry.register(duplicate_vector_db)
# Verify the original registration is still intact
result = await cached_disk_dist_registry.get("vector_db", "test_vector_db_2")
assert result is not None
assert result.embedding_model == original_vector_db.embedding_model # Original values preserved