Skip to content

Commit 09c71e8

Browse files
authored
Merge pull request #1617 from weaviate/1.30/change-tenants-get-by-name-to-use-rest
Change `get_by_name` to use `TenantGetOne` REST endpoint
2 parents 5f08a35 + 122b475 commit 09c71e8

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

weaviate/collections/tenants/tenants.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -312,15 +312,27 @@ async def get_by_name(self, tenant: Union[str, Tenant]) -> Optional[TenantOutput
312312
_validate_input(
313313
_ValidateArgument(expected=[Union[str, Tenant]], name="tenant", value=tenant)
314314
)
315-
response = await self._grpc.get(
316-
names=[tenant.name if isinstance(tenant, Tenant) else tenant]
315+
tenant_name = tenant.name if isinstance(tenant, Tenant) else tenant
316+
if self._connection._weaviate_version.is_lower_than(1, 28, 0):
317+
# For Weaviate versions < 1.28.0, we need to use the gRPC API
318+
# such versions don't have RBAC so the filtering issue doesn't exist therein
319+
tenants = await self.__get_with_grpc([tenant_name])
320+
if len(tenants) == 0:
321+
return None
322+
return tenants[tenant_name]
323+
# For Weaviate versions >= 1.28.0, we need to use the REST API
324+
# as the gRPC API filters out tenants that are not accessible to the user
325+
# due to RBAC requirements
326+
response = await self._connection.get(
327+
path=f"/schema/{self._name}/tenants/{tenant_name}",
328+
error_msg=f"Could not get tenant {tenant_name} for collection {self._name}",
329+
status_codes=_ExpectedStatusCodes(
330+
ok_in=[200, 404], error=f"Get tenant {tenant_name} for collection {self._name}"
331+
),
317332
)
318-
if len(response.tenants) == 0:
333+
if response.status_code == 404:
319334
return None
320-
return Tenant(
321-
name=response.tenants[0].name,
322-
activity_status=self._grpc.map_activity_status(response.tenants[0].activity_status),
323-
)
335+
return Tenant(**response.json())
324336

325337
async def update(
326338
self, tenants: Union[TenantUpdateInputType, Sequence[TenantUpdateInputType]]

0 commit comments

Comments
 (0)