18
18
# specific language governing permissions and limitations
19
19
# under the License.
20
20
#
21
+ from typing import Iterator
21
22
from typing import TypeVar , Callable
22
23
23
24
import typedb_protocol .cluster .cluster_database_pb2 as cluster_database_proto
24
25
import typedb_protocol .cluster .cluster_server_pb2 as cluster_server_proto
25
26
import typedb_protocol .cluster .cluster_service_pb2_grpc as cluster_service_proto
26
27
import typedb_protocol .cluster .cluster_user_pb2 as cluster_user_proto
28
+ import typedb_protocol .common .session_pb2 as session_proto
29
+ import typedb_protocol .common .transaction_pb2 as transaction_proto
30
+ import typedb_protocol .core .core_database_pb2 as core_database_proto
27
31
import typedb_protocol .core .core_service_pb2_grpc as core_service_proto
28
32
from grpc import Channel , RpcError
29
33
30
34
from typedb .api .connection .credential import TypeDBCredential
31
- from typedb .common .rpc .stub import TypeDBStub
32
35
from typedb .common .exception import CLUSTER_TOKEN_CREDENTIAL_INVALID , TypeDBClientException , UNABLE_TO_CONNECT
36
+ from typedb .common .rpc .stub import TypeDBStub
33
37
34
38
T = TypeVar ('T' )
35
39
@@ -51,28 +55,55 @@ def __init__(self, channel: Channel, credential: TypeDBCredential):
51
55
raise e2
52
56
53
57
def servers_all (self , req : cluster_server_proto .ServerManager .All .Req ) -> cluster_server_proto .ServerManager .All .Res :
54
- return self .resilient_authenticated_call (lambda : self ._cluster_stub .servers_all (req ))
55
-
56
- def databases_get (self , req : cluster_database_proto .ClusterDatabaseManager .Get .Req ) -> cluster_database_proto .ClusterDatabaseManager .Get .Res :
57
- return self .resilient_authenticated_call (lambda : self ._cluster_stub .databases_get (req ))
58
-
59
- def databases_all (self , req : cluster_database_proto .ClusterDatabaseManager .All .Req ) -> cluster_database_proto .ClusterDatabaseManager .All .Res :
60
- return self .resilient_authenticated_call (lambda : self ._cluster_stub .databases_all (req ))
58
+ return self .may_renew_token (lambda : self ._cluster_stub .servers_all (req ))
61
59
62
60
def users_all (self , req : cluster_user_proto .ClusterUserManager .All .Req ) -> cluster_user_proto .ClusterUserManager .All .Res :
63
- return self .resilient_authenticated_call (lambda : self ._cluster_stub .users_all (req ))
61
+ return self .may_renew_token (lambda : self ._cluster_stub .users_all (req ))
64
62
65
63
def users_contains (self , req : cluster_user_proto .ClusterUserManager .Contains .Req ) -> cluster_user_proto .ClusterUserManager .Contains .Res :
66
- return self .resilient_authenticated_call (lambda : self ._cluster_stub .users_contains (req ))
64
+ return self .may_renew_token (lambda : self ._cluster_stub .users_contains (req ))
67
65
68
66
def users_create (self , req : cluster_user_proto .ClusterUserManager .Create .Req ) -> cluster_user_proto .ClusterUserManager .Create .Res :
69
- return self .resilient_authenticated_call (lambda : self ._cluster_stub .users_create (req ))
67
+ return self .may_renew_token (lambda : self ._cluster_stub .users_create (req ))
70
68
71
69
def user_password (self , req : cluster_user_proto .ClusterUser .Delete .Req ) -> cluster_user_proto .ClusterUser .Delete .Res :
72
- return self .resilient_authenticated_call (lambda : self ._cluster_stub .user_password (req ))
70
+ return self .may_renew_token (lambda : self ._cluster_stub .user_password (req ))
73
71
74
72
def user_delete (self , req : cluster_user_proto .ClusterUser .Delete .Req ) -> cluster_user_proto .ClusterUser .Delete .Res :
75
- return self .resilient_authenticated_call (lambda : self ._cluster_stub .user_delete (req ))
73
+ return self .may_renew_token (lambda : self ._cluster_stub .user_delete (req ))
74
+
75
+ def cluster_databases_all (self , req : cluster_database_proto .ClusterDatabaseManager .All .Req ) -> cluster_database_proto .ClusterDatabaseManager .All .Res :
76
+ return self .may_renew_token (lambda : self ._cluster_stub .databases_all (req ))
77
+
78
+ def databases_all (self , req : core_database_proto .CoreDatabaseManager .All .Req ) -> core_database_proto .CoreDatabaseManager .All .Res :
79
+ return self .may_renew_token (self .resilient_call (lambda : self .stub ().databases_all (req )))
80
+
81
+ def databases_get (self , req : cluster_database_proto .ClusterDatabaseManager .Get .Req ) -> cluster_database_proto .ClusterDatabaseManager .Get .Res :
82
+ return self .may_renew_token (lambda : self ._cluster_stub .databases_get (req ))
83
+
84
+ def databases_contains (self , req : core_database_proto .CoreDatabaseManager .Contains .Req ) -> core_database_proto .CoreDatabaseManager .Contains .Res :
85
+ return self .may_renew_token (lambda : super (_ClusterServerStub , self ).databases_contains (req ))
86
+
87
+ def databases_create (self , req : core_database_proto .CoreDatabaseManager .Create .Req ) -> core_database_proto .CoreDatabaseManager .Create .Res :
88
+ return self .may_renew_token (lambda : super (_ClusterServerStub , self ).databases_create (req ))
89
+
90
+ def database_schema (self , req : core_database_proto .CoreDatabase .Schema .Req ) -> core_database_proto .CoreDatabase .Schema .Res :
91
+ return self .may_renew_token (lambda : super (_ClusterServerStub , self ).database_schema (req ))
92
+
93
+ def database_delete (self , req : core_database_proto .CoreDatabase .Delete .Req ) -> core_database_proto .CoreDatabase .Delete .Res :
94
+ return self .may_renew_token (lambda : super (_ClusterServerStub , self ).database_delete (req ))
95
+
96
+ def session_open (self , req : session_proto .Session .Open .Req ) -> session_proto .Session .Open .Res :
97
+ return self .may_renew_token (lambda : super (_ClusterServerStub , self ).session_open (req ))
98
+
99
+ def session_close (self , req : session_proto .Session .Close .Req ) -> session_proto .Session .Close .Res :
100
+ return self .may_renew_token (lambda : super (_ClusterServerStub , self ).session_close (req ))
101
+
102
+ def session_pulse (self , req : session_proto .Session .Pulse .Req ) -> session_proto .Session .Pulse .Res :
103
+ return self .may_renew_token (lambda : super (_ClusterServerStub , self ).session_pulse (req ))
104
+
105
+ def transaction (self , request_iterator : Iterator [transaction_proto .Transaction .Client ]) -> Iterator [transaction_proto .Transaction .Server ]:
106
+ return self .may_renew_token (lambda : super (_ClusterServerStub , self ).transaction (request_iterator ))
76
107
77
108
def channel (self ) -> Channel :
78
109
return self ._channel
@@ -83,7 +114,7 @@ def stub(self) -> TypeDBStub:
83
114
def token (self ):
84
115
return self ._token
85
116
86
- def resilient_authenticated_call (self , function : Callable [[], T ]) -> T :
117
+ def may_renew_token (self , function : Callable [[], T ]) -> T :
87
118
try :
88
119
return self .resilient_call (function )
89
120
except TypeDBClientException as e :
0 commit comments