Skip to content

Commit a83f939

Browse files
committed
Fix with REST
1 parent 8a82133 commit a83f939

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

integration/test_tenants.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -117,15 +117,15 @@ def test_tenants(collection_factory: CollectionFactory) -> None:
117117

118118
tenants = collection.tenants.get()
119119
assert len(tenants) == 2
120-
assert type(tenants["tenant1"]) is Tenant
121-
assert type(tenants["tenant2"]) is Tenant
120+
assert isinstance(tenants["tenant1"], Tenant)
121+
assert isinstance(tenants["tenant2"], Tenant)
122122
assert tenants["tenant1"].name == "tenant1"
123123
assert tenants["tenant2"].name == "tenant2"
124124

125125
if collection._connection._weaviate_version.supports_tenants_get_grpc:
126126
tenants = collection.tenants.get_by_names(tenants=["tenant2"])
127127
assert len(tenants) == 1
128-
assert type(tenants["tenant2"]) is Tenant
128+
assert isinstance(tenants["tenant2"], Tenant)
129129
assert tenants["tenant2"].name == "tenant2"
130130
else:
131131
pytest.raises(

weaviate/collections/classes/tenants.py

+20-6
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,32 @@ def activity_status(self) -> TenantActivityStatus:
8484
return self.activityStatusInternal
8585

8686
def model_post_init(self, __context: Any) -> None: # noqa: D102
87+
self._model_post_init(user_input=True)
88+
89+
def _model_post_init(self, user_input: bool) -> None: # noqa: D102
8790
if self.activityStatusInternal == TenantActivityStatus.HOT:
88-
_Warnings.deprecated_tenant_type("HOT", "ACTIVE")
91+
if user_input:
92+
_Warnings.deprecated_tenant_type("HOT", "ACTIVE")
8993
self.activityStatusInternal = TenantActivityStatus.ACTIVE
9094
elif self.activityStatusInternal == TenantUpdateActivityStatus.COLD:
91-
_Warnings.deprecated_tenant_type("COLD", "INACTIVE")
95+
if user_input:
96+
_Warnings.deprecated_tenant_type("COLD", "INACTIVE")
9297
self.activityStatusInternal = TenantActivityStatus.INACTIVE
9398
elif self.activityStatusInternal == TenantUpdateActivityStatus.FROZEN:
94-
_Warnings.deprecated_tenant_type("FROZEN", "OFFLOADED")
99+
if user_input:
100+
_Warnings.deprecated_tenant_type("FROZEN", "OFFLOADED")
95101
self.activityStatusInternal = TenantActivityStatus.OFFLOADED
96-
self.activityStatus = _TenantActivistatusServerValues.from_string(
97-
self.activityStatusInternal.value
98-
)
102+
if user_input:
103+
self.activityStatus = _TenantActivistatusServerValues.from_string(
104+
self.activityStatusInternal.value
105+
)
106+
107+
108+
class TenantOutput(Tenant): # noqa: D101
109+
"""Wrapper around Tenant for output purposes."""
110+
111+
def model_post_init(self, __context: Any) -> None: # noqa: D102
112+
self._model_post_init(user_input=False)
99113

100114

101115
class TenantCreateActivityStatus(str, Enum):

weaviate/collections/tenants.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
TenantActivityStatus,
99
TenantCreateActivityStatus,
1010
TenantUpdateActivityStatus,
11+
TenantOutput,
1112
)
1213
from weaviate.collections.grpc.tenants import _TenantsGRPC
1314
from weaviate.connect import ConnectionV4
@@ -152,7 +153,10 @@ def __get_with_rest(self) -> Dict[str, TenantOutputType]:
152153
)
153154

154155
tenant_resp: List[Dict[str, Any]] = response.json()
155-
return {tenant["name"]: Tenant(**tenant) for tenant in tenant_resp}
156+
for tenant in tenant_resp:
157+
tenant["activityStatusInternal"] = tenant["activityStatus"]
158+
del tenant["activityStatus"]
159+
return {tenant["name"]: TenantOutput(**tenant) for tenant in tenant_resp}
156160

157161
def __get_with_grpc(
158162
self, tenants: Optional[Sequence[Union[str, Tenant]]] = None

0 commit comments

Comments
 (0)