valkey-glide 2.1.1rc3__pp39-pypy39_pp73-macosx_11_0_arm64.whl → 2.2.3rc1__pp39-pypy39_pp73-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- glide/__init__.py +4 -0
- glide/async_commands/cluster_commands.py +20 -36
- glide/async_commands/core.py +21 -0
- glide/async_commands/standalone_commands.py +1 -1
- glide/glide.pypy39-pp73-darwin.so +0 -0
- glide/glide_client.py +10 -0
- glide/py.typed +0 -0
- glide_shared/__init__.py +4 -0
- glide_shared/commands/batch.py +1 -1
- glide_shared/config.py +220 -11
- glide_shared/protobuf/command_request_pb2.py +11 -9
- glide_shared/protobuf/connection_request_pb2.py +29 -25
- {valkey_glide-2.1.1rc3.dist-info → valkey_glide-2.2.3rc1.dist-info}/METADATA +2 -1
- {valkey_glide-2.1.1rc3.dist-info → valkey_glide-2.2.3rc1.dist-info}/RECORD +15 -14
- {valkey_glide-2.1.1rc3.dist-info → valkey_glide-2.2.3rc1.dist-info}/WHEEL +0 -0
glide/__init__.py
CHANGED
|
@@ -82,6 +82,7 @@ from glide_shared import (
|
|
|
82
82
|
GlideClusterClientConfiguration,
|
|
83
83
|
GlideError,
|
|
84
84
|
HashFieldConditionalChange,
|
|
85
|
+
IamAuthConfig,
|
|
85
86
|
IdBound,
|
|
86
87
|
InfBound,
|
|
87
88
|
InfoSection,
|
|
@@ -116,6 +117,7 @@ from glide_shared import (
|
|
|
116
117
|
ScoreBoundary,
|
|
117
118
|
ScoreFilter,
|
|
118
119
|
ServerCredentials,
|
|
120
|
+
ServiceType,
|
|
119
121
|
SignedEncoding,
|
|
120
122
|
SlotIdRoute,
|
|
121
123
|
SlotKeyRoute,
|
|
@@ -235,6 +237,8 @@ __all__ = [
|
|
|
235
237
|
"BackoffStrategy",
|
|
236
238
|
"ReadFrom",
|
|
237
239
|
"ServerCredentials",
|
|
240
|
+
"ServiceType",
|
|
241
|
+
"IamAuthConfig",
|
|
238
242
|
"NodeAddress",
|
|
239
243
|
"OpenTelemetryConfig",
|
|
240
244
|
"OpenTelemetryMetricsConfig",
|
|
@@ -1062,6 +1062,16 @@ class ClusterCommands(CoreCommands):
|
|
|
1062
1062
|
await self._execute_command(RequestType.FlushDB, args, route),
|
|
1063
1063
|
)
|
|
1064
1064
|
|
|
1065
|
+
async def copy(
|
|
1066
|
+
self,
|
|
1067
|
+
source: TEncodable,
|
|
1068
|
+
destination: TEncodable,
|
|
1069
|
+
# TODO next major release the arguments replace and destinationDB must have their order
|
|
1070
|
+
# swapped to align with the standalone order.
|
|
1071
|
+
# At the moment of the patch release 2.1.1. we can't have a breaking change
|
|
1072
|
+
replace: Optional[bool] = None,
|
|
1073
|
+
destinationDB: Optional[int] = None,
|
|
1074
|
+
) -> bool:
|
|
1065
1075
|
"""
|
|
1066
1076
|
Copies the value stored at the `source` to the `destination` key. If `destinationDB`
|
|
1067
1077
|
is specified, the value will be copied to the database specified by `destinationDB`,
|
|
@@ -1070,57 +1080,31 @@ class ClusterCommands(CoreCommands):
|
|
|
1070
1080
|
|
|
1071
1081
|
See [valkey.io](https://valkey.io/commands/copy) for more details.
|
|
1072
1082
|
|
|
1083
|
+
Note:
|
|
1084
|
+
Both `source` and `destination` must map to the same hash slot.
|
|
1085
|
+
|
|
1073
1086
|
Args:
|
|
1074
1087
|
source (TEncodable): The key to the source value.
|
|
1075
1088
|
destination (TEncodable): The key where the value should be copied to.
|
|
1076
|
-
destinationDB (Optional[Union[int, str]]): The alternative logical database index for the destination key.
|
|
1077
1089
|
replace (Optional[bool]): If the destination key should be removed before copying the value to it.
|
|
1090
|
+
destinationDB (Optional[int]): The alternative logical database index for the destination key.
|
|
1078
1091
|
|
|
1079
1092
|
Returns:
|
|
1080
|
-
bool: True if the source was copied. Otherwise,
|
|
1093
|
+
bool: True if the source was copied. Otherwise, returns False.
|
|
1081
1094
|
|
|
1082
1095
|
Examples:
|
|
1083
1096
|
>>> await client.set("source", "sheep")
|
|
1097
|
+
>>> await client.copy(b"source", b"destination")
|
|
1098
|
+
True # Source was copied
|
|
1084
1099
|
>>> await client.copy(b"source", b"destination", destinationDB=1)
|
|
1085
1100
|
True # Source was copied to DB 1
|
|
1086
1101
|
>>> await client.select(1)
|
|
1087
1102
|
>>> await client.get("destination")
|
|
1088
1103
|
b"sheep"
|
|
1089
1104
|
|
|
1090
|
-
Since: Valkey version
|
|
1091
|
-
|
|
1092
|
-
...
|
|
1093
|
-
|
|
1094
|
-
async def copy(
|
|
1095
|
-
self,
|
|
1096
|
-
source: TEncodable,
|
|
1097
|
-
destination: TEncodable,
|
|
1098
|
-
# TODO next major release the arguments replace and destinationDB must have their order
|
|
1099
|
-
# swapped to align with the standalone order.
|
|
1100
|
-
# At the moment of the patch release 2.1.1. we can't have a breaking change
|
|
1101
|
-
replace: Optional[bool] = None,
|
|
1102
|
-
destinationDB: Optional[int] = None,
|
|
1103
|
-
) -> bool:
|
|
1104
|
-
"""
|
|
1105
|
-
Copies the value stored at the `source` to the `destination` key.
|
|
1106
|
-
|
|
1107
|
-
This method supports two signatures:
|
|
1108
|
-
1. copy(source, destination, replace=None) - original API
|
|
1109
|
-
2. copy(source, destination, replace=None, destinationDB=None) - new API with DB support
|
|
1110
|
-
|
|
1111
|
-
When `replace` is True, removes the `destination` key first if it already exists,
|
|
1112
|
-
otherwise performs no action.
|
|
1113
|
-
|
|
1114
|
-
See [valkey.io](https://valkey.io/commands/copy) for more details.
|
|
1115
|
-
|
|
1116
|
-
Note:
|
|
1117
|
-
When `destinationDB` is not provided, both `source` and `destination` must map to the same hash slot.
|
|
1105
|
+
Since: Valkey version 6.2.0.
|
|
1106
|
+
The destinationDB argument is available since Valkey 9.0.0
|
|
1118
1107
|
"""
|
|
1119
|
-
# Handle backward compatibility for positional arguments
|
|
1120
|
-
# If destinationDB is a boolean, it's likely the old API: copy(source, destination, replace)
|
|
1121
|
-
if isinstance(destinationDB, bool):
|
|
1122
|
-
replace = destinationDB
|
|
1123
|
-
destinationDB = None
|
|
1124
1108
|
|
|
1125
1109
|
# Build command arguments
|
|
1126
1110
|
args: List[TEncodable] = [source, destination]
|
|
@@ -1172,7 +1156,7 @@ class ClusterCommands(CoreCommands):
|
|
|
1172
1156
|
args.extend(["VERSION", str(version)])
|
|
1173
1157
|
if parameters:
|
|
1174
1158
|
for var in parameters:
|
|
1175
|
-
args.
|
|
1159
|
+
args.append(str(var))
|
|
1176
1160
|
return cast(
|
|
1177
1161
|
TClusterResponse[bytes],
|
|
1178
1162
|
await self._execute_command(RequestType.Lolwut, args, route),
|
glide/async_commands/core.py
CHANGED
|
@@ -139,6 +139,27 @@ class CoreCommands(Protocol):
|
|
|
139
139
|
TOK, await self._update_connection_password(password, immediate_auth)
|
|
140
140
|
)
|
|
141
141
|
|
|
142
|
+
async def _refresh_iam_token(self) -> TResult: ...
|
|
143
|
+
|
|
144
|
+
async def refresh_iam_token(self) -> TOK:
|
|
145
|
+
"""
|
|
146
|
+
Manually refresh the IAM token for the current connection.
|
|
147
|
+
|
|
148
|
+
This method is only available if the client was created with IAM authentication.
|
|
149
|
+
It triggers an immediate refresh of the IAM token and updates the connection.
|
|
150
|
+
|
|
151
|
+
Returns:
|
|
152
|
+
TOK: A simple OK response on success.
|
|
153
|
+
|
|
154
|
+
Raises:
|
|
155
|
+
ConfigurationError: If the client is not using IAM authentication.
|
|
156
|
+
|
|
157
|
+
Example:
|
|
158
|
+
>>> await client.refresh_iam_token()
|
|
159
|
+
'OK'
|
|
160
|
+
"""
|
|
161
|
+
return cast(TOK, await self._refresh_iam_token())
|
|
162
|
+
|
|
142
163
|
async def set(
|
|
143
164
|
self,
|
|
144
165
|
key: TEncodable,
|
|
@@ -767,7 +767,7 @@ class StandaloneCommands(CoreCommands):
|
|
|
767
767
|
args.extend(["VERSION", str(version)])
|
|
768
768
|
if parameters:
|
|
769
769
|
for var in parameters:
|
|
770
|
-
args.
|
|
770
|
+
args.append(str(var))
|
|
771
771
|
return cast(
|
|
772
772
|
bytes,
|
|
773
773
|
await self._execute_command(RequestType.Lolwut, args),
|
|
Binary file
|
glide/glide_client.py
CHANGED
|
@@ -48,6 +48,7 @@ from glide_shared.exceptions import (
|
|
|
48
48
|
from glide_shared.protobuf.command_request_pb2 import (
|
|
49
49
|
Command,
|
|
50
50
|
CommandRequest,
|
|
51
|
+
RefreshIamToken,
|
|
51
52
|
RequestType,
|
|
52
53
|
)
|
|
53
54
|
from glide_shared.protobuf.connection_request_pb2 import ConnectionRequest
|
|
@@ -757,6 +758,15 @@ class BaseClient(CoreCommands):
|
|
|
757
758
|
self.config.credentials.password = password or ""
|
|
758
759
|
return response
|
|
759
760
|
|
|
761
|
+
async def _refresh_iam_token(self) -> TResult:
|
|
762
|
+
request = CommandRequest()
|
|
763
|
+
request.callback_idx = self._get_callback_index()
|
|
764
|
+
request.refresh_iam_token.CopyFrom(
|
|
765
|
+
RefreshIamToken()
|
|
766
|
+
) # Empty message, just triggers the refresh
|
|
767
|
+
response = await self._write_request_await_response(request)
|
|
768
|
+
return response
|
|
769
|
+
|
|
760
770
|
|
|
761
771
|
class GlideClusterClient(BaseClient, ClusterCommands):
|
|
762
772
|
"""
|
glide/py.typed
ADDED
|
File without changes
|
glide_shared/__init__.py
CHANGED
|
@@ -119,12 +119,14 @@ from .config import (
|
|
|
119
119
|
BackoffStrategy,
|
|
120
120
|
GlideClientConfiguration,
|
|
121
121
|
GlideClusterClientConfiguration,
|
|
122
|
+
IamAuthConfig,
|
|
122
123
|
NodeAddress,
|
|
123
124
|
PeriodicChecksManualInterval,
|
|
124
125
|
PeriodicChecksStatus,
|
|
125
126
|
ProtocolVersion,
|
|
126
127
|
ReadFrom,
|
|
127
128
|
ServerCredentials,
|
|
129
|
+
ServiceType,
|
|
128
130
|
TlsAdvancedConfiguration,
|
|
129
131
|
)
|
|
130
132
|
from .constants import (
|
|
@@ -186,6 +188,8 @@ __all__ = [
|
|
|
186
188
|
"BackoffStrategy",
|
|
187
189
|
"ReadFrom",
|
|
188
190
|
"ServerCredentials",
|
|
191
|
+
"ServiceType",
|
|
192
|
+
"IamAuthConfig",
|
|
189
193
|
"NodeAddress",
|
|
190
194
|
"ProtocolVersion",
|
|
191
195
|
"PeriodicChecksManualInterval",
|
glide_shared/commands/batch.py
CHANGED
|
@@ -5091,7 +5091,7 @@ class BaseBatch:
|
|
|
5091
5091
|
args.extend(["VERSION", str(version)])
|
|
5092
5092
|
if parameters:
|
|
5093
5093
|
for var in parameters:
|
|
5094
|
-
args.
|
|
5094
|
+
args.append(str(var))
|
|
5095
5095
|
return self.append_command(RequestType.Lolwut, args)
|
|
5096
5096
|
|
|
5097
5097
|
def random_key(self: TBatch) -> TBatch:
|
glide_shared/config.py
CHANGED
|
@@ -107,23 +107,92 @@ class BackoffStrategy:
|
|
|
107
107
|
self.jitter_percent = jitter_percent
|
|
108
108
|
|
|
109
109
|
|
|
110
|
+
class ServiceType(Enum):
|
|
111
|
+
"""
|
|
112
|
+
Represents the types of AWS services that can be used for IAM authentication.
|
|
113
|
+
"""
|
|
114
|
+
|
|
115
|
+
ELASTICACHE = 0
|
|
116
|
+
"""Amazon ElastiCache service."""
|
|
117
|
+
MEMORYDB = 1
|
|
118
|
+
"""Amazon MemoryDB service."""
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class IamAuthConfig:
|
|
122
|
+
"""
|
|
123
|
+
Configuration settings for IAM authentication.
|
|
124
|
+
|
|
125
|
+
Attributes:
|
|
126
|
+
cluster_name (str): The name of the ElastiCache/MemoryDB cluster.
|
|
127
|
+
service (ServiceType): The type of service being used (ElastiCache or MemoryDB).
|
|
128
|
+
region (str): The AWS region where the ElastiCache/MemoryDB cluster is located.
|
|
129
|
+
refresh_interval_seconds (Optional[int]): Optional refresh interval in seconds for renewing IAM authentication tokens.
|
|
130
|
+
If not provided, the core will use a default value of 300 seconds (5 min).
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
def __init__(
|
|
134
|
+
self,
|
|
135
|
+
cluster_name: str,
|
|
136
|
+
service: ServiceType,
|
|
137
|
+
region: str,
|
|
138
|
+
refresh_interval_seconds: Optional[int] = None,
|
|
139
|
+
):
|
|
140
|
+
self.cluster_name = cluster_name
|
|
141
|
+
self.service = service
|
|
142
|
+
self.region = region
|
|
143
|
+
self.refresh_interval_seconds = refresh_interval_seconds
|
|
144
|
+
|
|
145
|
+
|
|
110
146
|
class ServerCredentials:
|
|
111
147
|
"""
|
|
112
148
|
Represents the credentials for connecting to a server.
|
|
113
149
|
|
|
150
|
+
Exactly one of the following authentication modes must be provided:
|
|
151
|
+
- Password-based authentication: Use password (and optionally username)
|
|
152
|
+
- IAM authentication: Use username (required) and iam_config
|
|
153
|
+
|
|
154
|
+
These modes are mutually exclusive - you cannot use both simultaneously.
|
|
155
|
+
|
|
114
156
|
Attributes:
|
|
115
|
-
password (str): The password that will be used for authenticating connections to the servers.
|
|
157
|
+
password (Optional[str]): The password that will be used for authenticating connections to the servers.
|
|
158
|
+
Mutually exclusive with iam_config. Either password or iam_config must be provided.
|
|
116
159
|
username (Optional[str]): The username that will be used for authenticating connections to the servers.
|
|
117
|
-
If not supplied, "default" will be used.
|
|
160
|
+
If not supplied for password-based authentication, "default" will be used.
|
|
161
|
+
Required for IAM authentication.
|
|
162
|
+
iam_config (Optional[IamAuthConfig]): IAM authentication configuration. Mutually exclusive with password.
|
|
163
|
+
Either password or iam_config must be provided.
|
|
164
|
+
The client will automatically generate and refresh the authentication token based on the provided configuration.
|
|
118
165
|
"""
|
|
119
166
|
|
|
120
167
|
def __init__(
|
|
121
168
|
self,
|
|
122
|
-
password: str,
|
|
169
|
+
password: Optional[str] = None,
|
|
123
170
|
username: Optional[str] = None,
|
|
171
|
+
iam_config: Optional[IamAuthConfig] = None,
|
|
124
172
|
):
|
|
173
|
+
# Validate mutual exclusivity
|
|
174
|
+
if password is not None and iam_config is not None:
|
|
175
|
+
raise ConfigurationError(
|
|
176
|
+
"password and iam_config are mutually exclusive. Use either password-based or IAM authentication, not both."
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
# Validate IAM requires username
|
|
180
|
+
if iam_config is not None and not username:
|
|
181
|
+
raise ConfigurationError("username is required for IAM authentication.")
|
|
182
|
+
|
|
183
|
+
# At least one authentication method must be provided
|
|
184
|
+
if password is None and iam_config is None:
|
|
185
|
+
raise ConfigurationError(
|
|
186
|
+
"Either password or iam_config must be provided for authentication."
|
|
187
|
+
)
|
|
188
|
+
|
|
125
189
|
self.password = password
|
|
126
190
|
self.username = username
|
|
191
|
+
self.iam_config = iam_config
|
|
192
|
+
|
|
193
|
+
def is_iam_auth(self) -> bool:
|
|
194
|
+
"""Returns True if this credential is configured for IAM authentication."""
|
|
195
|
+
return self.iam_config is not None
|
|
127
196
|
|
|
128
197
|
|
|
129
198
|
class PeriodicChecksManualInterval:
|
|
@@ -172,10 +241,40 @@ class TlsAdvancedConfiguration:
|
|
|
172
241
|
Enabling it without TLS will result in a `ConfigurationError`.
|
|
173
242
|
|
|
174
243
|
- Default: False (verification is enforced).
|
|
244
|
+
|
|
245
|
+
root_pem_cacerts (Optional[bytes]): Custom root certificate data for TLS connections in PEM format.
|
|
246
|
+
|
|
247
|
+
- When provided, these certificates will be used instead of the system's default trust store.
|
|
248
|
+
This is useful for connecting to servers with self-signed certificates or corporate
|
|
249
|
+
certificate authorities.
|
|
250
|
+
|
|
251
|
+
- If set to an empty bytes object (non-None but length 0), a `ConfigurationError` will be raised.
|
|
252
|
+
|
|
253
|
+
- If None (default), the system's default certificate trust store will be used (platform verifier).
|
|
254
|
+
|
|
255
|
+
- The certificate data should be in PEM format as a bytes object.
|
|
256
|
+
|
|
257
|
+
- Multiple certificates can be provided by concatenating them in PEM format.
|
|
258
|
+
|
|
259
|
+
Example usage::
|
|
260
|
+
|
|
261
|
+
# Load from file
|
|
262
|
+
with open('/path/to/ca-cert.pem', 'rb') as f:
|
|
263
|
+
cert_data = f.read()
|
|
264
|
+
tls_config = TlsAdvancedConfiguration(root_pem_cacerts=cert_data)
|
|
265
|
+
|
|
266
|
+
# Or provide directly
|
|
267
|
+
cert_data = b"-----BEGIN CERTIFICATE-----\\n...\\n-----END CERTIFICATE-----"
|
|
268
|
+
tls_config = TlsAdvancedConfiguration(root_pem_cacerts=cert_data)
|
|
175
269
|
"""
|
|
176
270
|
|
|
177
|
-
def __init__(
|
|
271
|
+
def __init__(
|
|
272
|
+
self,
|
|
273
|
+
use_insecure_tls: Optional[bool] = None,
|
|
274
|
+
root_pem_cacerts: Optional[bytes] = None,
|
|
275
|
+
):
|
|
178
276
|
self.use_insecure_tls = use_insecure_tls
|
|
277
|
+
self.root_pem_cacerts = root_pem_cacerts
|
|
179
278
|
|
|
180
279
|
|
|
181
280
|
class AdvancedBaseClientConfiguration:
|
|
@@ -206,13 +305,24 @@ class AdvancedBaseClientConfiguration:
|
|
|
206
305
|
if self.connection_timeout:
|
|
207
306
|
request.connection_timeout = self.connection_timeout
|
|
208
307
|
|
|
209
|
-
if self.tls_config
|
|
210
|
-
if
|
|
308
|
+
if self.tls_config:
|
|
309
|
+
if self.tls_config.use_insecure_tls:
|
|
310
|
+
# Validate that TLS is enabled before allowing insecure mode
|
|
311
|
+
if request.tls_mode == TlsMode.NoTls:
|
|
312
|
+
raise ConfigurationError(
|
|
313
|
+
"use_insecure_tls cannot be enabled when use_tls is disabled."
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
# Override the default SecureTls mode to InsecureTls when user explicitly requests it
|
|
211
317
|
request.tls_mode = TlsMode.InsecureTls
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
)
|
|
318
|
+
|
|
319
|
+
# Handle root certificates
|
|
320
|
+
if self.tls_config.root_pem_cacerts is not None:
|
|
321
|
+
if len(self.tls_config.root_pem_cacerts) == 0:
|
|
322
|
+
raise ConfigurationError(
|
|
323
|
+
"root_pem_cacerts cannot be an empty bytes object; use None to use platform verifier"
|
|
324
|
+
)
|
|
325
|
+
request.root_certs.append(self.tls_config.root_pem_cacerts)
|
|
216
326
|
|
|
217
327
|
return request
|
|
218
328
|
|
|
@@ -357,7 +467,41 @@ class BaseClientConfiguration:
|
|
|
357
467
|
|
|
358
468
|
if self.credentials.username:
|
|
359
469
|
request.authentication_info.username = self.credentials.username
|
|
360
|
-
|
|
470
|
+
|
|
471
|
+
if self.credentials.password:
|
|
472
|
+
request.authentication_info.password = self.credentials.password
|
|
473
|
+
|
|
474
|
+
# Set IAM credentials if present
|
|
475
|
+
if self.credentials.iam_config:
|
|
476
|
+
iam_config = self.credentials.iam_config
|
|
477
|
+
request.authentication_info.iam_credentials.cluster_name = (
|
|
478
|
+
iam_config.cluster_name
|
|
479
|
+
)
|
|
480
|
+
request.authentication_info.iam_credentials.region = iam_config.region
|
|
481
|
+
|
|
482
|
+
# Map ServiceType enum to protobuf ServiceType
|
|
483
|
+
if iam_config.service == ServiceType.ELASTICACHE:
|
|
484
|
+
from glide_shared.protobuf.connection_request_pb2 import (
|
|
485
|
+
ServiceType as ProtobufServiceType,
|
|
486
|
+
)
|
|
487
|
+
|
|
488
|
+
request.authentication_info.iam_credentials.service_type = (
|
|
489
|
+
ProtobufServiceType.ELASTICACHE
|
|
490
|
+
)
|
|
491
|
+
elif iam_config.service == ServiceType.MEMORYDB:
|
|
492
|
+
from glide_shared.protobuf.connection_request_pb2 import (
|
|
493
|
+
ServiceType as ProtobufServiceType,
|
|
494
|
+
)
|
|
495
|
+
|
|
496
|
+
request.authentication_info.iam_credentials.service_type = (
|
|
497
|
+
ProtobufServiceType.MEMORYDB
|
|
498
|
+
)
|
|
499
|
+
|
|
500
|
+
# Set optional refresh interval
|
|
501
|
+
if iam_config.refresh_interval_seconds is not None:
|
|
502
|
+
request.authentication_info.iam_credentials.refresh_interval_seconds = (
|
|
503
|
+
iam_config.refresh_interval_seconds
|
|
504
|
+
)
|
|
361
505
|
|
|
362
506
|
def _create_a_protobuf_conn_request(
|
|
363
507
|
self, cluster_mode: bool = False
|
|
@@ -581,14 +725,38 @@ class GlideClientConfiguration(BaseClientConfiguration):
|
|
|
581
725
|
class AdvancedGlideClusterClientConfiguration(AdvancedBaseClientConfiguration):
|
|
582
726
|
"""
|
|
583
727
|
Represents the advanced configuration settings for a Glide Cluster client.
|
|
728
|
+
|
|
729
|
+
Attributes:
|
|
730
|
+
connection_timeout (Optional[int]): The duration in milliseconds to wait for a TCP/TLS connection to complete.
|
|
731
|
+
This applies both during initial client creation and any reconnection that may occur during request processing.
|
|
732
|
+
**Note**: A high connection timeout may lead to prolonged blocking of the entire command pipeline.
|
|
733
|
+
If not explicitly set, a default value of 2000 milliseconds will be used.
|
|
734
|
+
tls_config (Optional[TlsAdvancedConfiguration]): The advanced TLS configuration settings.
|
|
735
|
+
This allows for more granular control of TLS behavior, such as enabling an insecure mode
|
|
736
|
+
that bypasses certificate validation.
|
|
737
|
+
refresh_topology_from_initial_nodes (bool): Enables refreshing the cluster topology using only the initial nodes.
|
|
738
|
+
When this option is enabled, all topology updates (both the periodic checks and on-demand refreshes
|
|
739
|
+
triggered by topology changes) will query only the initial nodes provided when creating the client, rather than using the internal cluster view.
|
|
584
740
|
"""
|
|
585
741
|
|
|
586
742
|
def __init__(
|
|
587
743
|
self,
|
|
588
744
|
connection_timeout: Optional[int] = None,
|
|
589
745
|
tls_config: Optional[TlsAdvancedConfiguration] = None,
|
|
746
|
+
refresh_topology_from_initial_nodes: bool = False,
|
|
590
747
|
):
|
|
591
748
|
super().__init__(connection_timeout, tls_config)
|
|
749
|
+
self.refresh_topology_from_initial_nodes = refresh_topology_from_initial_nodes
|
|
750
|
+
|
|
751
|
+
def _create_a_protobuf_conn_request(
|
|
752
|
+
self, request: ConnectionRequest
|
|
753
|
+
) -> ConnectionRequest:
|
|
754
|
+
super()._create_a_protobuf_conn_request(request)
|
|
755
|
+
|
|
756
|
+
request.refresh_topology_from_initial_nodes = (
|
|
757
|
+
self.refresh_topology_from_initial_nodes
|
|
758
|
+
)
|
|
759
|
+
return request
|
|
592
760
|
|
|
593
761
|
|
|
594
762
|
class GlideClusterClientConfiguration(BaseClientConfiguration):
|
|
@@ -764,3 +932,44 @@ class GlideClusterClientConfiguration(BaseClientConfiguration):
|
|
|
764
932
|
if self.pubsub_subscriptions:
|
|
765
933
|
return self.pubsub_subscriptions.callback, self.pubsub_subscriptions.context
|
|
766
934
|
return None, None
|
|
935
|
+
|
|
936
|
+
|
|
937
|
+
def load_root_certificates_from_file(path: str) -> bytes:
|
|
938
|
+
"""
|
|
939
|
+
Load PEM-encoded root certificates from a file.
|
|
940
|
+
|
|
941
|
+
This is a convenience function for loading custom root certificates from disk
|
|
942
|
+
to be used with TlsAdvancedConfiguration.
|
|
943
|
+
|
|
944
|
+
Args:
|
|
945
|
+
path (str): The file path to the PEM-encoded certificate file.
|
|
946
|
+
|
|
947
|
+
Returns:
|
|
948
|
+
bytes: The certificate data in PEM format.
|
|
949
|
+
|
|
950
|
+
Raises:
|
|
951
|
+
FileNotFoundError: If the certificate file does not exist.
|
|
952
|
+
ConfigurationError: If the certificate file is empty.
|
|
953
|
+
|
|
954
|
+
Example usage::
|
|
955
|
+
|
|
956
|
+
from glide_shared.config import load_root_certificates_from_file, TlsAdvancedConfiguration
|
|
957
|
+
|
|
958
|
+
# Load certificates from file
|
|
959
|
+
certs = load_root_certificates_from_file('/path/to/ca-cert.pem')
|
|
960
|
+
|
|
961
|
+
# Use in TLS configuration
|
|
962
|
+
tls_config = TlsAdvancedConfiguration(root_pem_cacerts=certs)
|
|
963
|
+
"""
|
|
964
|
+
try:
|
|
965
|
+
with open(path, "rb") as f:
|
|
966
|
+
data = f.read()
|
|
967
|
+
except FileNotFoundError:
|
|
968
|
+
raise FileNotFoundError(f"Certificate file not found: {path}")
|
|
969
|
+
except Exception as e:
|
|
970
|
+
raise ConfigurationError(f"Failed to read certificate file: {e}")
|
|
971
|
+
|
|
972
|
+
if len(data) == 0:
|
|
973
|
+
raise ConfigurationError(f"Certificate file is empty: {path}")
|
|
974
|
+
|
|
975
|
+
return data
|
|
@@ -14,19 +14,19 @@ _sym_db = _symbol_database.Default()
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eprotobuf/command_request.proto\x12\x0f\x63ommand_request\"M\n\x0bSlotIdRoute\x12-\n\tslot_type\x18\x01 \x01(\x0e\x32\x1a.command_request.SlotTypes\x12\x0f\n\x07slot_id\x18\x02 \x01(\x05\"O\n\x0cSlotKeyRoute\x12-\n\tslot_type\x18\x01 \x01(\x0e\x32\x1a.command_request.SlotTypes\x12\x10\n\x08slot_key\x18\x02 \x01(\t\",\n\x0e\x42yAddressRoute\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\xf6\x01\n\x06Routes\x12\x36\n\rsimple_routes\x18\x01 \x01(\x0e\x32\x1d.command_request.SimpleRoutesH\x00\x12\x37\n\x0eslot_key_route\x18\x02 \x01(\x0b\x32\x1d.command_request.SlotKeyRouteH\x00\x12\x35\n\rslot_id_route\x18\x03 \x01(\x0b\x32\x1c.command_request.SlotIdRouteH\x00\x12;\n\x10\x62y_address_route\x18\x04 \x01(\x0b\x32\x1f.command_request.ByAddressRouteH\x00\x42\x07\n\x05value\"\xb6\x01\n\x07\x43ommand\x12\x32\n\x0crequest_type\x18\x01 \x01(\x0e\x32\x1c.command_request.RequestType\x12\x38\n\nargs_array\x18\x02 \x01(\x0b\x32\".command_request.Command.ArgsArrayH\x00\x12\x1a\n\x10\x61rgs_vec_pointer\x18\x03 \x01(\x04H\x00\x1a\x19\n\tArgsArray\x12\x0c\n\x04\x61rgs\x18\x01 \x03(\x0c\x42\x06\n\x04\x61rgs\"\x80\x01\n\x18ScriptInvocationPointers\x12\x0c\n\x04hash\x18\x01 \x01(\t\x12\x19\n\x0ckeys_pointer\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x19\n\x0c\x61rgs_pointer\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\x0f\n\r_keys_pointerB\x0f\n\r_args_pointer\"<\n\x10ScriptInvocation\x12\x0c\n\x04hash\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\x0c\x12\x0c\n\x04\x61rgs\x18\x03 \x03(\x0c\"\x90\x02\n\x05\x42\x61tch\x12\x11\n\tis_atomic\x18\x01 \x01(\x08\x12*\n\x08\x63ommands\x18\x02 \x03(\x0b\x32\x18.command_request.Command\x12\x1b\n\x0eraise_on_error\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12retry_server_error\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12#\n\x16retry_connection_error\x18\x06 \x01(\x08H\x03\x88\x01\x01\x42\x11\n\x0f_raise_on_errorB\n\n\x08_timeoutB\x15\n\x13_retry_server_errorB\x19\n\x17_retry_connection_error\"\xb4\x01\n\x0b\x43lusterScan\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\t\x12\x1a\n\rmatch_pattern\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x0bobject_type\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x17\x61llow_non_covered_slots\x18\x05 \x01(\x08\x42\x10\n\x0e_match_patternB\x08\n\x06_countB\x0e\n\x0c_object_type\"V\n\x18UpdateConnectionPassword\x12\x15\n\x08password\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0eimmediate_auth\x18\x02 \x01(\x08\x42\x0b\n\t_password\"\xfc\x03\n\x0e\x43ommandRequest\x12\x14\n\x0c\x63\x61llback_idx\x18\x01 \x01(\r\x12\x32\n\x0esingle_command\x18\x02 \x01(\x0b\x32\x18.command_request.CommandH\x00\x12\'\n\x05\x62\x61tch\x18\x03 \x01(\x0b\x32\x16.command_request.BatchH\x00\x12>\n\x11script_invocation\x18\x04 \x01(\x0b\x32!.command_request.ScriptInvocationH\x00\x12O\n\x1ascript_invocation_pointers\x18\x05 \x01(\x0b\x32).command_request.ScriptInvocationPointersH\x00\x12\x34\n\x0c\x63luster_scan\x18\x06 \x01(\x0b\x32\x1c.command_request.ClusterScanH\x00\x12O\n\x1aupdate_connection_password\x18\x07 \x01(\x0b\x32).command_request.UpdateConnectionPasswordH\x00\x12&\n\x05route\x18\x08 \x01(\x0b\x32\x17.command_request.Routes\x12\x1a\n\rroot_span_ptr\x18\t \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07\x63ommandB\x10\n\x0e_root_span_ptr*:\n\x0cSimpleRoutes\x12\x0c\n\x08\x41llNodes\x10\x00\x12\x10\n\x0c\x41llPrimaries\x10\x01\x12\n\n\x06Random\x10\x02*%\n\tSlotTypes\x12\x0b\n\x07Primary\x10\x00\x12\x0b\n\x07Replica\x10\x01*\xea\x30\n\x0bRequestType\x12\x12\n\x0eInvalidRequest\x10\x00\x12\x11\n\rCustomCommand\x10\x01\x12\x0c\n\x08\x42itCount\x10\x65\x12\x0c\n\x08\x42itField\x10\x66\x12\x14\n\x10\x42itFieldReadOnly\x10g\x12\t\n\x05\x42itOp\x10h\x12\n\n\x06\x42itPos\x10i\x12\n\n\x06GetBit\x10j\x12\n\n\x06SetBit\x10k\x12\x0b\n\x06\x41sking\x10\xc9\x01\x12\x14\n\x0f\x43lusterAddSlots\x10\xca\x01\x12\x19\n\x14\x43lusterAddSlotsRange\x10\xcb\x01\x12\x15\n\x10\x43lusterBumpEpoch\x10\xcc\x01\x12\x1f\n\x1a\x43lusterCountFailureReports\x10\xcd\x01\x12\x1b\n\x16\x43lusterCountKeysInSlot\x10\xce\x01\x12\x14\n\x0f\x43lusterDelSlots\x10\xcf\x01\x12\x19\n\x14\x43lusterDelSlotsRange\x10\xd0\x01\x12\x14\n\x0f\x43lusterFailover\x10\xd1\x01\x12\x16\n\x11\x43lusterFlushSlots\x10\xd2\x01\x12\x12\n\rClusterForget\x10\xd3\x01\x12\x19\n\x14\x43lusterGetKeysInSlot\x10\xd4\x01\x12\x10\n\x0b\x43lusterInfo\x10\xd5\x01\x12\x13\n\x0e\x43lusterKeySlot\x10\xd6\x01\x12\x11\n\x0c\x43lusterLinks\x10\xd7\x01\x12\x10\n\x0b\x43lusterMeet\x10\xd8\x01\x12\x10\n\x0b\x43lusterMyId\x10\xd9\x01\x12\x15\n\x10\x43lusterMyShardId\x10\xda\x01\x12\x11\n\x0c\x43lusterNodes\x10\xdb\x01\x12\x14\n\x0f\x43lusterReplicas\x10\xdc\x01\x12\x15\n\x10\x43lusterReplicate\x10\xdd\x01\x12\x11\n\x0c\x43lusterReset\x10\xde\x01\x12\x16\n\x11\x43lusterSaveConfig\x10\xdf\x01\x12\x1a\n\x15\x43lusterSetConfigEpoch\x10\xe0\x01\x12\x13\n\x0e\x43lusterSetslot\x10\xe1\x01\x12\x12\n\rClusterShards\x10\xe2\x01\x12\x12\n\rClusterSlaves\x10\xe3\x01\x12\x11\n\x0c\x43lusterSlots\x10\xe4\x01\x12\r\n\x08ReadOnly\x10\xe5\x01\x12\x0e\n\tReadWrite\x10\xe6\x01\x12\t\n\x04\x41uth\x10\xad\x02\x12\x12\n\rClientCaching\x10\xae\x02\x12\x12\n\rClientGetName\x10\xaf\x02\x12\x13\n\x0e\x43lientGetRedir\x10\xb0\x02\x12\r\n\x08\x43lientId\x10\xb1\x02\x12\x0f\n\nClientInfo\x10\xb2\x02\x12\x15\n\x10\x43lientKillSimple\x10\xb3\x02\x12\x0f\n\nClientKill\x10\xb4\x02\x12\x0f\n\nClientList\x10\xb5\x02\x12\x12\n\rClientNoEvict\x10\xb6\x02\x12\x12\n\rClientNoTouch\x10\xb7\x02\x12\x10\n\x0b\x43lientPause\x10\xb8\x02\x12\x10\n\x0b\x43lientReply\x10\xb9\x02\x12\x12\n\rClientSetInfo\x10\xba\x02\x12\x12\n\rClientSetName\x10\xbb\x02\x12\x13\n\x0e\x43lientTracking\x10\xbc\x02\x12\x17\n\x12\x43lientTrackingInfo\x10\xbd\x02\x12\x12\n\rClientUnblock\x10\xbe\x02\x12\x12\n\rClientUnpause\x10\xbf\x02\x12\t\n\x04\x45\x63ho\x10\xc0\x02\x12\n\n\x05Hello\x10\xc1\x02\x12\t\n\x04Ping\x10\xc2\x02\x12\t\n\x04Quit\x10\xc3\x02\x12\n\n\x05Reset\x10\xc4\x02\x12\x0b\n\x06Select\x10\xc5\x02\x12\t\n\x04\x43opy\x10\x91\x03\x12\x08\n\x03\x44\x65l\x10\x92\x03\x12\t\n\x04\x44ump\x10\x93\x03\x12\x0b\n\x06\x45xists\x10\x94\x03\x12\x0b\n\x06\x45xpire\x10\x95\x03\x12\r\n\x08\x45xpireAt\x10\x96\x03\x12\x0f\n\nExpireTime\x10\x97\x03\x12\t\n\x04Keys\x10\x98\x03\x12\x0c\n\x07Migrate\x10\x99\x03\x12\t\n\x04Move\x10\x9a\x03\x12\x13\n\x0eObjectEncoding\x10\x9b\x03\x12\x0f\n\nObjectFreq\x10\x9c\x03\x12\x13\n\x0eObjectIdleTime\x10\x9d\x03\x12\x13\n\x0eObjectRefCount\x10\x9e\x03\x12\x0c\n\x07Persist\x10\x9f\x03\x12\x0c\n\x07PExpire\x10\xa0\x03\x12\x0e\n\tPExpireAt\x10\xa1\x03\x12\x10\n\x0bPExpireTime\x10\xa2\x03\x12\t\n\x04PTTL\x10\xa3\x03\x12\x0e\n\tRandomKey\x10\xa4\x03\x12\x0b\n\x06Rename\x10\xa5\x03\x12\r\n\x08RenameNX\x10\xa6\x03\x12\x0c\n\x07Restore\x10\xa7\x03\x12\t\n\x04Scan\x10\xa8\x03\x12\t\n\x04Sort\x10\xa9\x03\x12\x11\n\x0cSortReadOnly\x10\xaa\x03\x12\n\n\x05Touch\x10\xab\x03\x12\x08\n\x03TTL\x10\xac\x03\x12\t\n\x04Type\x10\xad\x03\x12\x0b\n\x06Unlink\x10\xae\x03\x12\t\n\x04Wait\x10\xaf\x03\x12\x0c\n\x07WaitAof\x10\xb0\x03\x12\x0b\n\x06GeoAdd\x10\xf5\x03\x12\x0c\n\x07GeoDist\x10\xf6\x03\x12\x0c\n\x07GeoHash\x10\xf7\x03\x12\x0b\n\x06GeoPos\x10\xf8\x03\x12\x0e\n\tGeoRadius\x10\xf9\x03\x12\x16\n\x11GeoRadiusReadOnly\x10\xfa\x03\x12\x16\n\x11GeoRadiusByMember\x10\xfb\x03\x12\x1e\n\x19GeoRadiusByMemberReadOnly\x10\xfc\x03\x12\x0e\n\tGeoSearch\x10\xfd\x03\x12\x13\n\x0eGeoSearchStore\x10\xfe\x03\x12\t\n\x04HDel\x10\xd9\x04\x12\x0c\n\x07HExists\x10\xda\x04\x12\t\n\x04HGet\x10\xdb\x04\x12\x0c\n\x07HGetAll\x10\xdc\x04\x12\x0c\n\x07HIncrBy\x10\xdd\x04\x12\x11\n\x0cHIncrByFloat\x10\xde\x04\x12\n\n\x05HKeys\x10\xdf\x04\x12\t\n\x04HLen\x10\xe0\x04\x12\n\n\x05HMGet\x10\xe1\x04\x12\n\n\x05HMSet\x10\xe2\x04\x12\x0f\n\nHRandField\x10\xe3\x04\x12\n\n\x05HScan\x10\xe4\x04\x12\t\n\x04HSet\x10\xe5\x04\x12\x0b\n\x06HSetNX\x10\xe6\x04\x12\x0c\n\x07HStrlen\x10\xe7\x04\x12\n\n\x05HVals\x10\xe8\x04\x12\x0b\n\x06HSetEx\x10\xe9\x04\x12\x0b\n\x06HGetEx\x10\xea\x04\x12\x0c\n\x07HExpire\x10\xeb\x04\x12\x0e\n\tHExpireAt\x10\xec\x04\x12\r\n\x08HPExpire\x10\xed\x04\x12\x0f\n\nHPExpireAt\x10\xee\x04\x12\r\n\x08HPersist\x10\xef\x04\x12\t\n\x04HTtl\x10\xf0\x04\x12\n\n\x05HPTtl\x10\xf1\x04\x12\x10\n\x0bHExpireTime\x10\xf2\x04\x12\x11\n\x0cHPExpireTime\x10\xf3\x04\x12\n\n\x05PfAdd\x10\xbd\x05\x12\x0c\n\x07PfCount\x10\xbe\x05\x12\x0c\n\x07PfMerge\x10\xbf\x05\x12\x0b\n\x06\x42LMove\x10\xa1\x06\x12\x0b\n\x06\x42LMPop\x10\xa2\x06\x12\n\n\x05\x42LPop\x10\xa3\x06\x12\n\n\x05\x42RPop\x10\xa4\x06\x12\x0f\n\nBRPopLPush\x10\xa5\x06\x12\x0b\n\x06LIndex\x10\xa6\x06\x12\x0c\n\x07LInsert\x10\xa7\x06\x12\t\n\x04LLen\x10\xa8\x06\x12\n\n\x05LMove\x10\xa9\x06\x12\n\n\x05LMPop\x10\xaa\x06\x12\t\n\x04LPop\x10\xab\x06\x12\t\n\x04LPos\x10\xac\x06\x12\n\n\x05LPush\x10\xad\x06\x12\x0b\n\x06LPushX\x10\xae\x06\x12\x0b\n\x06LRange\x10\xaf\x06\x12\t\n\x04LRem\x10\xb0\x06\x12\t\n\x04LSet\x10\xb1\x06\x12\n\n\x05LTrim\x10\xb2\x06\x12\t\n\x04RPop\x10\xb3\x06\x12\x0e\n\tRPopLPush\x10\xb4\x06\x12\n\n\x05RPush\x10\xb5\x06\x12\x0b\n\x06RPushX\x10\xb6\x06\x12\x0f\n\nPSubscribe\x10\x85\x07\x12\x0c\n\x07Publish\x10\x86\x07\x12\x13\n\x0ePubSubChannels\x10\x87\x07\x12\x11\n\x0cPubSubNumPat\x10\x88\x07\x12\x11\n\x0cPubSubNumSub\x10\x89\x07\x12\x18\n\x13PubSubShardChannels\x10\x8a\x07\x12\x16\n\x11PubSubShardNumSub\x10\x8b\x07\x12\x11\n\x0cPUnsubscribe\x10\x8c\x07\x12\r\n\x08SPublish\x10\x8d\x07\x12\x0f\n\nSSubscribe\x10\x8e\x07\x12\x0e\n\tSubscribe\x10\x8f\x07\x12\x11\n\x0cSUnsubscribe\x10\x90\x07\x12\x10\n\x0bUnsubscribe\x10\x91\x07\x12\t\n\x04\x45val\x10\xe9\x07\x12\x11\n\x0c\x45valReadOnly\x10\xea\x07\x12\x0c\n\x07\x45valSha\x10\xeb\x07\x12\x14\n\x0f\x45valShaReadOnly\x10\xec\x07\x12\n\n\x05\x46\x43\x61ll\x10\xed\x07\x12\x12\n\rFCallReadOnly\x10\xee\x07\x12\x13\n\x0e\x46unctionDelete\x10\xef\x07\x12\x11\n\x0c\x46unctionDump\x10\xf0\x07\x12\x12\n\rFunctionFlush\x10\xf1\x07\x12\x11\n\x0c\x46unctionKill\x10\xf2\x07\x12\x11\n\x0c\x46unctionList\x10\xf3\x07\x12\x11\n\x0c\x46unctionLoad\x10\xf4\x07\x12\x14\n\x0f\x46unctionRestore\x10\xf5\x07\x12\x12\n\rFunctionStats\x10\xf6\x07\x12\x10\n\x0bScriptDebug\x10\xf7\x07\x12\x11\n\x0cScriptExists\x10\xf8\x07\x12\x10\n\x0bScriptFlush\x10\xf9\x07\x12\x0f\n\nScriptKill\x10\xfa\x07\x12\x0f\n\nScriptLoad\x10\xfb\x07\x12\x0f\n\nScriptShow\x10\xfc\x07\x12\x0b\n\x06\x41\x63lCat\x10\xcd\x08\x12\x0f\n\nAclDelUser\x10\xce\x08\x12\x0e\n\tAclDryRun\x10\xcf\x08\x12\x0f\n\nAclGenPass\x10\xd0\x08\x12\x0f\n\nAclGetUser\x10\xd1\x08\x12\x0c\n\x07\x41\x63lList\x10\xd2\x08\x12\x0c\n\x07\x41\x63lLoad\x10\xd3\x08\x12\x0b\n\x06\x41\x63lLog\x10\xd4\x08\x12\x0c\n\x07\x41\x63lSave\x10\xd5\x08\x12\x0f\n\nAclSetSser\x10\xd6\x08\x12\r\n\x08\x41\x63lUsers\x10\xd7\x08\x12\x0e\n\tAclWhoami\x10\xd8\x08\x12\x11\n\x0c\x42gRewriteAof\x10\xd9\x08\x12\x0b\n\x06\x42gSave\x10\xda\x08\x12\r\n\x08\x43ommand_\x10\xdb\x08\x12\x11\n\x0c\x43ommandCount\x10\xdc\x08\x12\x10\n\x0b\x43ommandDocs\x10\xdd\x08\x12\x13\n\x0e\x43ommandGetKeys\x10\xde\x08\x12\x1b\n\x16\x43ommandGetKeysAndFlags\x10\xdf\x08\x12\x10\n\x0b\x43ommandInfo\x10\xe0\x08\x12\x10\n\x0b\x43ommandList\x10\xe1\x08\x12\x0e\n\tConfigGet\x10\xe2\x08\x12\x14\n\x0f\x43onfigResetStat\x10\xe3\x08\x12\x12\n\rConfigRewrite\x10\xe4\x08\x12\x0e\n\tConfigSet\x10\xe5\x08\x12\x0b\n\x06\x44\x42Size\x10\xe6\x08\x12\r\n\x08\x46\x61ilOver\x10\xe7\x08\x12\r\n\x08\x46lushAll\x10\xe8\x08\x12\x0c\n\x07\x46lushDB\x10\xe9\x08\x12\t\n\x04Info\x10\xea\x08\x12\r\n\x08LastSave\x10\xeb\x08\x12\x12\n\rLatencyDoctor\x10\xec\x08\x12\x11\n\x0cLatencyGraph\x10\xed\x08\x12\x15\n\x10LatencyHistogram\x10\xee\x08\x12\x13\n\x0eLatencyHistory\x10\xef\x08\x12\x12\n\rLatencyLatest\x10\xf0\x08\x12\x11\n\x0cLatencyReset\x10\xf1\x08\x12\x0b\n\x06Lolwut\x10\xf2\x08\x12\x11\n\x0cMemoryDoctor\x10\xf3\x08\x12\x16\n\x11MemoryMallocStats\x10\xf4\x08\x12\x10\n\x0bMemoryPurge\x10\xf5\x08\x12\x10\n\x0bMemoryStats\x10\xf6\x08\x12\x10\n\x0bMemoryUsage\x10\xf7\x08\x12\x0f\n\nModuleList\x10\xf8\x08\x12\x0f\n\nModuleLoad\x10\xf9\x08\x12\x11\n\x0cModuleLoadEx\x10\xfa\x08\x12\x11\n\x0cModuleUnload\x10\xfb\x08\x12\x0c\n\x07Monitor\x10\xfc\x08\x12\n\n\x05PSync\x10\xfd\x08\x12\r\n\x08ReplConf\x10\xfe\x08\x12\x0e\n\tReplicaOf\x10\xff\x08\x12\x12\n\rRestoreAsking\x10\x80\t\x12\t\n\x04Role\x10\x81\t\x12\t\n\x04Save\x10\x82\t\x12\r\n\x08ShutDown\x10\x83\t\x12\x0c\n\x07SlaveOf\x10\x84\t\x12\x0f\n\nSlowLogGet\x10\x85\t\x12\x0f\n\nSlowLogLen\x10\x86\t\x12\x11\n\x0cSlowLogReset\x10\x87\t\x12\x0b\n\x06SwapDb\x10\x88\t\x12\t\n\x04Sync\x10\x89\t\x12\t\n\x04Time\x10\x8a\t\x12\t\n\x04SAdd\x10\xb1\t\x12\n\n\x05SCard\x10\xb2\t\x12\n\n\x05SDiff\x10\xb3\t\x12\x0f\n\nSDiffStore\x10\xb4\t\x12\x0b\n\x06SInter\x10\xb5\t\x12\x0f\n\nSInterCard\x10\xb6\t\x12\x10\n\x0bSInterStore\x10\xb7\t\x12\x0e\n\tSIsMember\x10\xb8\t\x12\r\n\x08SMembers\x10\xb9\t\x12\x0f\n\nSMIsMember\x10\xba\t\x12\n\n\x05SMove\x10\xbb\t\x12\t\n\x04SPop\x10\xbc\t\x12\x10\n\x0bSRandMember\x10\xbd\t\x12\t\n\x04SRem\x10\xbe\t\x12\n\n\x05SScan\x10\xbf\t\x12\x0b\n\x06SUnion\x10\xc0\t\x12\x10\n\x0bSUnionStore\x10\xc1\t\x12\x0b\n\x06\x42ZMPop\x10\x95\n\x12\r\n\x08\x42ZPopMax\x10\x96\n\x12\r\n\x08\x42ZPopMin\x10\x97\n\x12\t\n\x04ZAdd\x10\x98\n\x12\n\n\x05ZCard\x10\x99\n\x12\x0b\n\x06ZCount\x10\x9a\n\x12\n\n\x05ZDiff\x10\x9b\n\x12\x0f\n\nZDiffStore\x10\x9c\n\x12\x0c\n\x07ZIncrBy\x10\x9d\n\x12\x0b\n\x06ZInter\x10\x9e\n\x12\x0f\n\nZInterCard\x10\x9f\n\x12\x10\n\x0bZInterStore\x10\xa0\n\x12\x0e\n\tZLexCount\x10\xa1\n\x12\n\n\x05ZMPop\x10\xa2\n\x12\x0c\n\x07ZMScore\x10\xa3\n\x12\x0c\n\x07ZPopMax\x10\xa4\n\x12\x0c\n\x07ZPopMin\x10\xa5\n\x12\x10\n\x0bZRandMember\x10\xa6\n\x12\x0b\n\x06ZRange\x10\xa7\n\x12\x10\n\x0bZRangeByLex\x10\xa8\n\x12\x12\n\rZRangeByScore\x10\xa9\n\x12\x10\n\x0bZRangeStore\x10\xaa\n\x12\n\n\x05ZRank\x10\xab\n\x12\t\n\x04ZRem\x10\xac\n\x12\x13\n\x0eZRemRangeByLex\x10\xad\n\x12\x14\n\x0fZRemRangeByRank\x10\xae\n\x12\x15\n\x10ZRemRangeByScore\x10\xaf\n\x12\x0e\n\tZRevRange\x10\xb0\n\x12\x13\n\x0eZRevRangeByLex\x10\xb1\n\x12\x15\n\x10ZRevRangeByScore\x10\xb2\n\x12\r\n\x08ZRevRank\x10\xb3\n\x12\n\n\x05ZScan\x10\xb4\n\x12\x0b\n\x06ZScore\x10\xb5\n\x12\x0b\n\x06ZUnion\x10\xb6\n\x12\x10\n\x0bZUnionStore\x10\xb7\n\x12\t\n\x04XAck\x10\xf9\n\x12\t\n\x04XAdd\x10\xfa\n\x12\x0f\n\nXAutoClaim\x10\xfb\n\x12\x0b\n\x06XClaim\x10\xfc\n\x12\t\n\x04XDel\x10\xfd\n\x12\x11\n\x0cXGroupCreate\x10\xfe\n\x12\x19\n\x14XGroupCreateConsumer\x10\xff\n\x12\x16\n\x11XGroupDelConsumer\x10\x80\x0b\x12\x12\n\rXGroupDestroy\x10\x81\x0b\x12\x10\n\x0bXGroupSetId\x10\x82\x0b\x12\x13\n\x0eXInfoConsumers\x10\x83\x0b\x12\x10\n\x0bXInfoGroups\x10\x84\x0b\x12\x10\n\x0bXInfoStream\x10\x85\x0b\x12\t\n\x04XLen\x10\x86\x0b\x12\r\n\x08XPending\x10\x87\x0b\x12\x0b\n\x06XRange\x10\x88\x0b\x12\n\n\x05XRead\x10\x89\x0b\x12\x0f\n\nXReadGroup\x10\x8a\x0b\x12\x0e\n\tXRevRange\x10\x8b\x0b\x12\x0b\n\x06XSetId\x10\x8c\x0b\x12\n\n\x05XTrim\x10\x8d\x0b\x12\x0b\n\x06\x41ppend\x10\xdd\x0b\x12\t\n\x04\x44\x65\x63r\x10\xde\x0b\x12\x0b\n\x06\x44\x65\x63rBy\x10\xdf\x0b\x12\x08\n\x03Get\x10\xe0\x0b\x12\x0b\n\x06GetDel\x10\xe1\x0b\x12\n\n\x05GetEx\x10\xe2\x0b\x12\r\n\x08GetRange\x10\xe3\x0b\x12\x0b\n\x06GetSet\x10\xe4\x0b\x12\t\n\x04Incr\x10\xe5\x0b\x12\x0b\n\x06IncrBy\x10\xe6\x0b\x12\x10\n\x0bIncrByFloat\x10\xe7\x0b\x12\x08\n\x03LCS\x10\xe8\x0b\x12\t\n\x04MGet\x10\xe9\x0b\x12\t\n\x04MSet\x10\xea\x0b\x12\x0b\n\x06MSetNX\x10\xeb\x0b\x12\x0b\n\x06PSetEx\x10\xec\x0b\x12\x08\n\x03Set\x10\xed\x0b\x12\n\n\x05SetEx\x10\xee\x0b\x12\n\n\x05SetNX\x10\xef\x0b\x12\r\n\x08SetRange\x10\xf0\x0b\x12\x0b\n\x06Strlen\x10\xf1\x0b\x12\x0b\n\x06Substr\x10\xf2\x0b\x12\x0c\n\x07\x44iscard\x10\xc1\x0c\x12\t\n\x04\x45xec\x10\xc2\x0c\x12\n\n\x05Multi\x10\xc3\x0c\x12\x0c\n\x07UnWatch\x10\xc4\x0c\x12\n\n\x05Watch\x10\xc5\x0c\x12\x12\n\rJsonArrAppend\x10\xd1\x0f\x12\x11\n\x0cJsonArrIndex\x10\xd2\x0f\x12\x12\n\rJsonArrInsert\x10\xd3\x0f\x12\x0f\n\nJsonArrLen\x10\xd4\x0f\x12\x0f\n\nJsonArrPop\x10\xd5\x0f\x12\x10\n\x0bJsonArrTrim\x10\xd6\x0f\x12\x0e\n\tJsonClear\x10\xd7\x0f\x12\x0e\n\tJsonDebug\x10\xd8\x0f\x12\x0c\n\x07JsonDel\x10\xd9\x0f\x12\x0f\n\nJsonForget\x10\xda\x0f\x12\x0c\n\x07JsonGet\x10\xdb\x0f\x12\r\n\x08JsonMGet\x10\xdc\x0f\x12\x12\n\rJsonNumIncrBy\x10\xdd\x0f\x12\x12\n\rJsonNumMultBy\x10\xde\x0f\x12\x10\n\x0bJsonObjKeys\x10\xdf\x0f\x12\x0f\n\nJsonObjLen\x10\xe0\x0f\x12\r\n\x08JsonResp\x10\xe1\x0f\x12\x0c\n\x07JsonSet\x10\xe2\x0f\x12\x12\n\rJsonStrAppend\x10\xe3\x0f\x12\x0f\n\nJsonStrLen\x10\xe4\x0f\x12\x0f\n\nJsonToggle\x10\xe5\x0f\x12\r\n\x08JsonType\x10\xe6\x0f\x12\x0b\n\x06\x46tList\x10\xb5\x10\x12\x10\n\x0b\x46tAggregate\x10\xb6\x10\x12\x0f\n\nFtAliasAdd\x10\xb7\x10\x12\x0f\n\nFtAliasDel\x10\xb8\x10\x12\x10\n\x0b\x46tAliasList\x10\xb9\x10\x12\x12\n\rFtAliasUpdate\x10\xba\x10\x12\r\n\x08\x46tCreate\x10\xbb\x10\x12\x10\n\x0b\x46tDropIndex\x10\xbc\x10\x12\x0e\n\tFtExplain\x10\xbd\x10\x12\x11\n\x0c\x46tExplainCli\x10\xbe\x10\x12\x0b\n\x06\x46tInfo\x10\xbf\x10\x12\x0e\n\tFtProfile\x10\xc0\x10\x12\r\n\x08\x46tSearch\x10\xc1\x10\x62\x06proto3')
|
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eprotobuf/command_request.proto\x12\x0f\x63ommand_request\"M\n\x0bSlotIdRoute\x12-\n\tslot_type\x18\x01 \x01(\x0e\x32\x1a.command_request.SlotTypes\x12\x0f\n\x07slot_id\x18\x02 \x01(\x05\"O\n\x0cSlotKeyRoute\x12-\n\tslot_type\x18\x01 \x01(\x0e\x32\x1a.command_request.SlotTypes\x12\x10\n\x08slot_key\x18\x02 \x01(\t\",\n\x0e\x42yAddressRoute\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\xf6\x01\n\x06Routes\x12\x36\n\rsimple_routes\x18\x01 \x01(\x0e\x32\x1d.command_request.SimpleRoutesH\x00\x12\x37\n\x0eslot_key_route\x18\x02 \x01(\x0b\x32\x1d.command_request.SlotKeyRouteH\x00\x12\x35\n\rslot_id_route\x18\x03 \x01(\x0b\x32\x1c.command_request.SlotIdRouteH\x00\x12;\n\x10\x62y_address_route\x18\x04 \x01(\x0b\x32\x1f.command_request.ByAddressRouteH\x00\x42\x07\n\x05value\"\xb6\x01\n\x07\x43ommand\x12\x32\n\x0crequest_type\x18\x01 \x01(\x0e\x32\x1c.command_request.RequestType\x12\x38\n\nargs_array\x18\x02 \x01(\x0b\x32\".command_request.Command.ArgsArrayH\x00\x12\x1a\n\x10\x61rgs_vec_pointer\x18\x03 \x01(\x04H\x00\x1a\x19\n\tArgsArray\x12\x0c\n\x04\x61rgs\x18\x01 \x03(\x0c\x42\x06\n\x04\x61rgs\"\x80\x01\n\x18ScriptInvocationPointers\x12\x0c\n\x04hash\x18\x01 \x01(\t\x12\x19\n\x0ckeys_pointer\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x19\n\x0c\x61rgs_pointer\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\x0f\n\r_keys_pointerB\x0f\n\r_args_pointer\"<\n\x10ScriptInvocation\x12\x0c\n\x04hash\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\x0c\x12\x0c\n\x04\x61rgs\x18\x03 \x03(\x0c\"\x90\x02\n\x05\x42\x61tch\x12\x11\n\tis_atomic\x18\x01 \x01(\x08\x12*\n\x08\x63ommands\x18\x02 \x03(\x0b\x32\x18.command_request.Command\x12\x1b\n\x0eraise_on_error\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x14\n\x07timeout\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12retry_server_error\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12#\n\x16retry_connection_error\x18\x06 \x01(\x08H\x03\x88\x01\x01\x42\x11\n\x0f_raise_on_errorB\n\n\x08_timeoutB\x15\n\x13_retry_server_errorB\x19\n\x17_retry_connection_error\"\xb4\x01\n\x0b\x43lusterScan\x12\x0e\n\x06\x63ursor\x18\x01 \x01(\t\x12\x1a\n\rmatch_pattern\x18\x02 \x01(\x0cH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x0bobject_type\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x1f\n\x17\x61llow_non_covered_slots\x18\x05 \x01(\x08\x42\x10\n\x0e_match_patternB\x08\n\x06_countB\x0e\n\x0c_object_type\"V\n\x18UpdateConnectionPassword\x12\x15\n\x08password\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0eimmediate_auth\x18\x02 \x01(\x08\x42\x0b\n\t_password\"\x11\n\x0fRefreshIamToken\"\xbb\x04\n\x0e\x43ommandRequest\x12\x14\n\x0c\x63\x61llback_idx\x18\x01 \x01(\r\x12\x32\n\x0esingle_command\x18\x02 \x01(\x0b\x32\x18.command_request.CommandH\x00\x12\'\n\x05\x62\x61tch\x18\x03 \x01(\x0b\x32\x16.command_request.BatchH\x00\x12>\n\x11script_invocation\x18\x04 \x01(\x0b\x32!.command_request.ScriptInvocationH\x00\x12O\n\x1ascript_invocation_pointers\x18\x05 \x01(\x0b\x32).command_request.ScriptInvocationPointersH\x00\x12\x34\n\x0c\x63luster_scan\x18\x06 \x01(\x0b\x32\x1c.command_request.ClusterScanH\x00\x12O\n\x1aupdate_connection_password\x18\x07 \x01(\x0b\x32).command_request.UpdateConnectionPasswordH\x00\x12=\n\x11refresh_iam_token\x18\x08 \x01(\x0b\x32 .command_request.RefreshIamTokenH\x00\x12&\n\x05route\x18\t \x01(\x0b\x32\x17.command_request.Routes\x12\x1a\n\rroot_span_ptr\x18\n \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07\x63ommandB\x10\n\x0e_root_span_ptr*:\n\x0cSimpleRoutes\x12\x0c\n\x08\x41llNodes\x10\x00\x12\x10\n\x0c\x41llPrimaries\x10\x01\x12\n\n\x06Random\x10\x02*%\n\tSlotTypes\x12\x0b\n\x07Primary\x10\x00\x12\x0b\n\x07Replica\x10\x01*\xea\x30\n\x0bRequestType\x12\x12\n\x0eInvalidRequest\x10\x00\x12\x11\n\rCustomCommand\x10\x01\x12\x0c\n\x08\x42itCount\x10\x65\x12\x0c\n\x08\x42itField\x10\x66\x12\x14\n\x10\x42itFieldReadOnly\x10g\x12\t\n\x05\x42itOp\x10h\x12\n\n\x06\x42itPos\x10i\x12\n\n\x06GetBit\x10j\x12\n\n\x06SetBit\x10k\x12\x0b\n\x06\x41sking\x10\xc9\x01\x12\x14\n\x0f\x43lusterAddSlots\x10\xca\x01\x12\x19\n\x14\x43lusterAddSlotsRange\x10\xcb\x01\x12\x15\n\x10\x43lusterBumpEpoch\x10\xcc\x01\x12\x1f\n\x1a\x43lusterCountFailureReports\x10\xcd\x01\x12\x1b\n\x16\x43lusterCountKeysInSlot\x10\xce\x01\x12\x14\n\x0f\x43lusterDelSlots\x10\xcf\x01\x12\x19\n\x14\x43lusterDelSlotsRange\x10\xd0\x01\x12\x14\n\x0f\x43lusterFailover\x10\xd1\x01\x12\x16\n\x11\x43lusterFlushSlots\x10\xd2\x01\x12\x12\n\rClusterForget\x10\xd3\x01\x12\x19\n\x14\x43lusterGetKeysInSlot\x10\xd4\x01\x12\x10\n\x0b\x43lusterInfo\x10\xd5\x01\x12\x13\n\x0e\x43lusterKeySlot\x10\xd6\x01\x12\x11\n\x0c\x43lusterLinks\x10\xd7\x01\x12\x10\n\x0b\x43lusterMeet\x10\xd8\x01\x12\x10\n\x0b\x43lusterMyId\x10\xd9\x01\x12\x15\n\x10\x43lusterMyShardId\x10\xda\x01\x12\x11\n\x0c\x43lusterNodes\x10\xdb\x01\x12\x14\n\x0f\x43lusterReplicas\x10\xdc\x01\x12\x15\n\x10\x43lusterReplicate\x10\xdd\x01\x12\x11\n\x0c\x43lusterReset\x10\xde\x01\x12\x16\n\x11\x43lusterSaveConfig\x10\xdf\x01\x12\x1a\n\x15\x43lusterSetConfigEpoch\x10\xe0\x01\x12\x13\n\x0e\x43lusterSetslot\x10\xe1\x01\x12\x12\n\rClusterShards\x10\xe2\x01\x12\x12\n\rClusterSlaves\x10\xe3\x01\x12\x11\n\x0c\x43lusterSlots\x10\xe4\x01\x12\r\n\x08ReadOnly\x10\xe5\x01\x12\x0e\n\tReadWrite\x10\xe6\x01\x12\t\n\x04\x41uth\x10\xad\x02\x12\x12\n\rClientCaching\x10\xae\x02\x12\x12\n\rClientGetName\x10\xaf\x02\x12\x13\n\x0e\x43lientGetRedir\x10\xb0\x02\x12\r\n\x08\x43lientId\x10\xb1\x02\x12\x0f\n\nClientInfo\x10\xb2\x02\x12\x15\n\x10\x43lientKillSimple\x10\xb3\x02\x12\x0f\n\nClientKill\x10\xb4\x02\x12\x0f\n\nClientList\x10\xb5\x02\x12\x12\n\rClientNoEvict\x10\xb6\x02\x12\x12\n\rClientNoTouch\x10\xb7\x02\x12\x10\n\x0b\x43lientPause\x10\xb8\x02\x12\x10\n\x0b\x43lientReply\x10\xb9\x02\x12\x12\n\rClientSetInfo\x10\xba\x02\x12\x12\n\rClientSetName\x10\xbb\x02\x12\x13\n\x0e\x43lientTracking\x10\xbc\x02\x12\x17\n\x12\x43lientTrackingInfo\x10\xbd\x02\x12\x12\n\rClientUnblock\x10\xbe\x02\x12\x12\n\rClientUnpause\x10\xbf\x02\x12\t\n\x04\x45\x63ho\x10\xc0\x02\x12\n\n\x05Hello\x10\xc1\x02\x12\t\n\x04Ping\x10\xc2\x02\x12\t\n\x04Quit\x10\xc3\x02\x12\n\n\x05Reset\x10\xc4\x02\x12\x0b\n\x06Select\x10\xc5\x02\x12\t\n\x04\x43opy\x10\x91\x03\x12\x08\n\x03\x44\x65l\x10\x92\x03\x12\t\n\x04\x44ump\x10\x93\x03\x12\x0b\n\x06\x45xists\x10\x94\x03\x12\x0b\n\x06\x45xpire\x10\x95\x03\x12\r\n\x08\x45xpireAt\x10\x96\x03\x12\x0f\n\nExpireTime\x10\x97\x03\x12\t\n\x04Keys\x10\x98\x03\x12\x0c\n\x07Migrate\x10\x99\x03\x12\t\n\x04Move\x10\x9a\x03\x12\x13\n\x0eObjectEncoding\x10\x9b\x03\x12\x0f\n\nObjectFreq\x10\x9c\x03\x12\x13\n\x0eObjectIdleTime\x10\x9d\x03\x12\x13\n\x0eObjectRefCount\x10\x9e\x03\x12\x0c\n\x07Persist\x10\x9f\x03\x12\x0c\n\x07PExpire\x10\xa0\x03\x12\x0e\n\tPExpireAt\x10\xa1\x03\x12\x10\n\x0bPExpireTime\x10\xa2\x03\x12\t\n\x04PTTL\x10\xa3\x03\x12\x0e\n\tRandomKey\x10\xa4\x03\x12\x0b\n\x06Rename\x10\xa5\x03\x12\r\n\x08RenameNX\x10\xa6\x03\x12\x0c\n\x07Restore\x10\xa7\x03\x12\t\n\x04Scan\x10\xa8\x03\x12\t\n\x04Sort\x10\xa9\x03\x12\x11\n\x0cSortReadOnly\x10\xaa\x03\x12\n\n\x05Touch\x10\xab\x03\x12\x08\n\x03TTL\x10\xac\x03\x12\t\n\x04Type\x10\xad\x03\x12\x0b\n\x06Unlink\x10\xae\x03\x12\t\n\x04Wait\x10\xaf\x03\x12\x0c\n\x07WaitAof\x10\xb0\x03\x12\x0b\n\x06GeoAdd\x10\xf5\x03\x12\x0c\n\x07GeoDist\x10\xf6\x03\x12\x0c\n\x07GeoHash\x10\xf7\x03\x12\x0b\n\x06GeoPos\x10\xf8\x03\x12\x0e\n\tGeoRadius\x10\xf9\x03\x12\x16\n\x11GeoRadiusReadOnly\x10\xfa\x03\x12\x16\n\x11GeoRadiusByMember\x10\xfb\x03\x12\x1e\n\x19GeoRadiusByMemberReadOnly\x10\xfc\x03\x12\x0e\n\tGeoSearch\x10\xfd\x03\x12\x13\n\x0eGeoSearchStore\x10\xfe\x03\x12\t\n\x04HDel\x10\xd9\x04\x12\x0c\n\x07HExists\x10\xda\x04\x12\t\n\x04HGet\x10\xdb\x04\x12\x0c\n\x07HGetAll\x10\xdc\x04\x12\x0c\n\x07HIncrBy\x10\xdd\x04\x12\x11\n\x0cHIncrByFloat\x10\xde\x04\x12\n\n\x05HKeys\x10\xdf\x04\x12\t\n\x04HLen\x10\xe0\x04\x12\n\n\x05HMGet\x10\xe1\x04\x12\n\n\x05HMSet\x10\xe2\x04\x12\x0f\n\nHRandField\x10\xe3\x04\x12\n\n\x05HScan\x10\xe4\x04\x12\t\n\x04HSet\x10\xe5\x04\x12\x0b\n\x06HSetNX\x10\xe6\x04\x12\x0c\n\x07HStrlen\x10\xe7\x04\x12\n\n\x05HVals\x10\xe8\x04\x12\x0b\n\x06HSetEx\x10\xe9\x04\x12\x0b\n\x06HGetEx\x10\xea\x04\x12\x0c\n\x07HExpire\x10\xeb\x04\x12\x0e\n\tHExpireAt\x10\xec\x04\x12\r\n\x08HPExpire\x10\xed\x04\x12\x0f\n\nHPExpireAt\x10\xee\x04\x12\r\n\x08HPersist\x10\xef\x04\x12\t\n\x04HTtl\x10\xf0\x04\x12\n\n\x05HPTtl\x10\xf1\x04\x12\x10\n\x0bHExpireTime\x10\xf2\x04\x12\x11\n\x0cHPExpireTime\x10\xf3\x04\x12\n\n\x05PfAdd\x10\xbd\x05\x12\x0c\n\x07PfCount\x10\xbe\x05\x12\x0c\n\x07PfMerge\x10\xbf\x05\x12\x0b\n\x06\x42LMove\x10\xa1\x06\x12\x0b\n\x06\x42LMPop\x10\xa2\x06\x12\n\n\x05\x42LPop\x10\xa3\x06\x12\n\n\x05\x42RPop\x10\xa4\x06\x12\x0f\n\nBRPopLPush\x10\xa5\x06\x12\x0b\n\x06LIndex\x10\xa6\x06\x12\x0c\n\x07LInsert\x10\xa7\x06\x12\t\n\x04LLen\x10\xa8\x06\x12\n\n\x05LMove\x10\xa9\x06\x12\n\n\x05LMPop\x10\xaa\x06\x12\t\n\x04LPop\x10\xab\x06\x12\t\n\x04LPos\x10\xac\x06\x12\n\n\x05LPush\x10\xad\x06\x12\x0b\n\x06LPushX\x10\xae\x06\x12\x0b\n\x06LRange\x10\xaf\x06\x12\t\n\x04LRem\x10\xb0\x06\x12\t\n\x04LSet\x10\xb1\x06\x12\n\n\x05LTrim\x10\xb2\x06\x12\t\n\x04RPop\x10\xb3\x06\x12\x0e\n\tRPopLPush\x10\xb4\x06\x12\n\n\x05RPush\x10\xb5\x06\x12\x0b\n\x06RPushX\x10\xb6\x06\x12\x0f\n\nPSubscribe\x10\x85\x07\x12\x0c\n\x07Publish\x10\x86\x07\x12\x13\n\x0ePubSubChannels\x10\x87\x07\x12\x11\n\x0cPubSubNumPat\x10\x88\x07\x12\x11\n\x0cPubSubNumSub\x10\x89\x07\x12\x18\n\x13PubSubShardChannels\x10\x8a\x07\x12\x16\n\x11PubSubShardNumSub\x10\x8b\x07\x12\x11\n\x0cPUnsubscribe\x10\x8c\x07\x12\r\n\x08SPublish\x10\x8d\x07\x12\x0f\n\nSSubscribe\x10\x8e\x07\x12\x0e\n\tSubscribe\x10\x8f\x07\x12\x11\n\x0cSUnsubscribe\x10\x90\x07\x12\x10\n\x0bUnsubscribe\x10\x91\x07\x12\t\n\x04\x45val\x10\xe9\x07\x12\x11\n\x0c\x45valReadOnly\x10\xea\x07\x12\x0c\n\x07\x45valSha\x10\xeb\x07\x12\x14\n\x0f\x45valShaReadOnly\x10\xec\x07\x12\n\n\x05\x46\x43\x61ll\x10\xed\x07\x12\x12\n\rFCallReadOnly\x10\xee\x07\x12\x13\n\x0e\x46unctionDelete\x10\xef\x07\x12\x11\n\x0c\x46unctionDump\x10\xf0\x07\x12\x12\n\rFunctionFlush\x10\xf1\x07\x12\x11\n\x0c\x46unctionKill\x10\xf2\x07\x12\x11\n\x0c\x46unctionList\x10\xf3\x07\x12\x11\n\x0c\x46unctionLoad\x10\xf4\x07\x12\x14\n\x0f\x46unctionRestore\x10\xf5\x07\x12\x12\n\rFunctionStats\x10\xf6\x07\x12\x10\n\x0bScriptDebug\x10\xf7\x07\x12\x11\n\x0cScriptExists\x10\xf8\x07\x12\x10\n\x0bScriptFlush\x10\xf9\x07\x12\x0f\n\nScriptKill\x10\xfa\x07\x12\x0f\n\nScriptLoad\x10\xfb\x07\x12\x0f\n\nScriptShow\x10\xfc\x07\x12\x0b\n\x06\x41\x63lCat\x10\xcd\x08\x12\x0f\n\nAclDelUser\x10\xce\x08\x12\x0e\n\tAclDryRun\x10\xcf\x08\x12\x0f\n\nAclGenPass\x10\xd0\x08\x12\x0f\n\nAclGetUser\x10\xd1\x08\x12\x0c\n\x07\x41\x63lList\x10\xd2\x08\x12\x0c\n\x07\x41\x63lLoad\x10\xd3\x08\x12\x0b\n\x06\x41\x63lLog\x10\xd4\x08\x12\x0c\n\x07\x41\x63lSave\x10\xd5\x08\x12\x0f\n\nAclSetSser\x10\xd6\x08\x12\r\n\x08\x41\x63lUsers\x10\xd7\x08\x12\x0e\n\tAclWhoami\x10\xd8\x08\x12\x11\n\x0c\x42gRewriteAof\x10\xd9\x08\x12\x0b\n\x06\x42gSave\x10\xda\x08\x12\r\n\x08\x43ommand_\x10\xdb\x08\x12\x11\n\x0c\x43ommandCount\x10\xdc\x08\x12\x10\n\x0b\x43ommandDocs\x10\xdd\x08\x12\x13\n\x0e\x43ommandGetKeys\x10\xde\x08\x12\x1b\n\x16\x43ommandGetKeysAndFlags\x10\xdf\x08\x12\x10\n\x0b\x43ommandInfo\x10\xe0\x08\x12\x10\n\x0b\x43ommandList\x10\xe1\x08\x12\x0e\n\tConfigGet\x10\xe2\x08\x12\x14\n\x0f\x43onfigResetStat\x10\xe3\x08\x12\x12\n\rConfigRewrite\x10\xe4\x08\x12\x0e\n\tConfigSet\x10\xe5\x08\x12\x0b\n\x06\x44\x42Size\x10\xe6\x08\x12\r\n\x08\x46\x61ilOver\x10\xe7\x08\x12\r\n\x08\x46lushAll\x10\xe8\x08\x12\x0c\n\x07\x46lushDB\x10\xe9\x08\x12\t\n\x04Info\x10\xea\x08\x12\r\n\x08LastSave\x10\xeb\x08\x12\x12\n\rLatencyDoctor\x10\xec\x08\x12\x11\n\x0cLatencyGraph\x10\xed\x08\x12\x15\n\x10LatencyHistogram\x10\xee\x08\x12\x13\n\x0eLatencyHistory\x10\xef\x08\x12\x12\n\rLatencyLatest\x10\xf0\x08\x12\x11\n\x0cLatencyReset\x10\xf1\x08\x12\x0b\n\x06Lolwut\x10\xf2\x08\x12\x11\n\x0cMemoryDoctor\x10\xf3\x08\x12\x16\n\x11MemoryMallocStats\x10\xf4\x08\x12\x10\n\x0bMemoryPurge\x10\xf5\x08\x12\x10\n\x0bMemoryStats\x10\xf6\x08\x12\x10\n\x0bMemoryUsage\x10\xf7\x08\x12\x0f\n\nModuleList\x10\xf8\x08\x12\x0f\n\nModuleLoad\x10\xf9\x08\x12\x11\n\x0cModuleLoadEx\x10\xfa\x08\x12\x11\n\x0cModuleUnload\x10\xfb\x08\x12\x0c\n\x07Monitor\x10\xfc\x08\x12\n\n\x05PSync\x10\xfd\x08\x12\r\n\x08ReplConf\x10\xfe\x08\x12\x0e\n\tReplicaOf\x10\xff\x08\x12\x12\n\rRestoreAsking\x10\x80\t\x12\t\n\x04Role\x10\x81\t\x12\t\n\x04Save\x10\x82\t\x12\r\n\x08ShutDown\x10\x83\t\x12\x0c\n\x07SlaveOf\x10\x84\t\x12\x0f\n\nSlowLogGet\x10\x85\t\x12\x0f\n\nSlowLogLen\x10\x86\t\x12\x11\n\x0cSlowLogReset\x10\x87\t\x12\x0b\n\x06SwapDb\x10\x88\t\x12\t\n\x04Sync\x10\x89\t\x12\t\n\x04Time\x10\x8a\t\x12\t\n\x04SAdd\x10\xb1\t\x12\n\n\x05SCard\x10\xb2\t\x12\n\n\x05SDiff\x10\xb3\t\x12\x0f\n\nSDiffStore\x10\xb4\t\x12\x0b\n\x06SInter\x10\xb5\t\x12\x0f\n\nSInterCard\x10\xb6\t\x12\x10\n\x0bSInterStore\x10\xb7\t\x12\x0e\n\tSIsMember\x10\xb8\t\x12\r\n\x08SMembers\x10\xb9\t\x12\x0f\n\nSMIsMember\x10\xba\t\x12\n\n\x05SMove\x10\xbb\t\x12\t\n\x04SPop\x10\xbc\t\x12\x10\n\x0bSRandMember\x10\xbd\t\x12\t\n\x04SRem\x10\xbe\t\x12\n\n\x05SScan\x10\xbf\t\x12\x0b\n\x06SUnion\x10\xc0\t\x12\x10\n\x0bSUnionStore\x10\xc1\t\x12\x0b\n\x06\x42ZMPop\x10\x95\n\x12\r\n\x08\x42ZPopMax\x10\x96\n\x12\r\n\x08\x42ZPopMin\x10\x97\n\x12\t\n\x04ZAdd\x10\x98\n\x12\n\n\x05ZCard\x10\x99\n\x12\x0b\n\x06ZCount\x10\x9a\n\x12\n\n\x05ZDiff\x10\x9b\n\x12\x0f\n\nZDiffStore\x10\x9c\n\x12\x0c\n\x07ZIncrBy\x10\x9d\n\x12\x0b\n\x06ZInter\x10\x9e\n\x12\x0f\n\nZInterCard\x10\x9f\n\x12\x10\n\x0bZInterStore\x10\xa0\n\x12\x0e\n\tZLexCount\x10\xa1\n\x12\n\n\x05ZMPop\x10\xa2\n\x12\x0c\n\x07ZMScore\x10\xa3\n\x12\x0c\n\x07ZPopMax\x10\xa4\n\x12\x0c\n\x07ZPopMin\x10\xa5\n\x12\x10\n\x0bZRandMember\x10\xa6\n\x12\x0b\n\x06ZRange\x10\xa7\n\x12\x10\n\x0bZRangeByLex\x10\xa8\n\x12\x12\n\rZRangeByScore\x10\xa9\n\x12\x10\n\x0bZRangeStore\x10\xaa\n\x12\n\n\x05ZRank\x10\xab\n\x12\t\n\x04ZRem\x10\xac\n\x12\x13\n\x0eZRemRangeByLex\x10\xad\n\x12\x14\n\x0fZRemRangeByRank\x10\xae\n\x12\x15\n\x10ZRemRangeByScore\x10\xaf\n\x12\x0e\n\tZRevRange\x10\xb0\n\x12\x13\n\x0eZRevRangeByLex\x10\xb1\n\x12\x15\n\x10ZRevRangeByScore\x10\xb2\n\x12\r\n\x08ZRevRank\x10\xb3\n\x12\n\n\x05ZScan\x10\xb4\n\x12\x0b\n\x06ZScore\x10\xb5\n\x12\x0b\n\x06ZUnion\x10\xb6\n\x12\x10\n\x0bZUnionStore\x10\xb7\n\x12\t\n\x04XAck\x10\xf9\n\x12\t\n\x04XAdd\x10\xfa\n\x12\x0f\n\nXAutoClaim\x10\xfb\n\x12\x0b\n\x06XClaim\x10\xfc\n\x12\t\n\x04XDel\x10\xfd\n\x12\x11\n\x0cXGroupCreate\x10\xfe\n\x12\x19\n\x14XGroupCreateConsumer\x10\xff\n\x12\x16\n\x11XGroupDelConsumer\x10\x80\x0b\x12\x12\n\rXGroupDestroy\x10\x81\x0b\x12\x10\n\x0bXGroupSetId\x10\x82\x0b\x12\x13\n\x0eXInfoConsumers\x10\x83\x0b\x12\x10\n\x0bXInfoGroups\x10\x84\x0b\x12\x10\n\x0bXInfoStream\x10\x85\x0b\x12\t\n\x04XLen\x10\x86\x0b\x12\r\n\x08XPending\x10\x87\x0b\x12\x0b\n\x06XRange\x10\x88\x0b\x12\n\n\x05XRead\x10\x89\x0b\x12\x0f\n\nXReadGroup\x10\x8a\x0b\x12\x0e\n\tXRevRange\x10\x8b\x0b\x12\x0b\n\x06XSetId\x10\x8c\x0b\x12\n\n\x05XTrim\x10\x8d\x0b\x12\x0b\n\x06\x41ppend\x10\xdd\x0b\x12\t\n\x04\x44\x65\x63r\x10\xde\x0b\x12\x0b\n\x06\x44\x65\x63rBy\x10\xdf\x0b\x12\x08\n\x03Get\x10\xe0\x0b\x12\x0b\n\x06GetDel\x10\xe1\x0b\x12\n\n\x05GetEx\x10\xe2\x0b\x12\r\n\x08GetRange\x10\xe3\x0b\x12\x0b\n\x06GetSet\x10\xe4\x0b\x12\t\n\x04Incr\x10\xe5\x0b\x12\x0b\n\x06IncrBy\x10\xe6\x0b\x12\x10\n\x0bIncrByFloat\x10\xe7\x0b\x12\x08\n\x03LCS\x10\xe8\x0b\x12\t\n\x04MGet\x10\xe9\x0b\x12\t\n\x04MSet\x10\xea\x0b\x12\x0b\n\x06MSetNX\x10\xeb\x0b\x12\x0b\n\x06PSetEx\x10\xec\x0b\x12\x08\n\x03Set\x10\xed\x0b\x12\n\n\x05SetEx\x10\xee\x0b\x12\n\n\x05SetNX\x10\xef\x0b\x12\r\n\x08SetRange\x10\xf0\x0b\x12\x0b\n\x06Strlen\x10\xf1\x0b\x12\x0b\n\x06Substr\x10\xf2\x0b\x12\x0c\n\x07\x44iscard\x10\xc1\x0c\x12\t\n\x04\x45xec\x10\xc2\x0c\x12\n\n\x05Multi\x10\xc3\x0c\x12\x0c\n\x07UnWatch\x10\xc4\x0c\x12\n\n\x05Watch\x10\xc5\x0c\x12\x12\n\rJsonArrAppend\x10\xd1\x0f\x12\x11\n\x0cJsonArrIndex\x10\xd2\x0f\x12\x12\n\rJsonArrInsert\x10\xd3\x0f\x12\x0f\n\nJsonArrLen\x10\xd4\x0f\x12\x0f\n\nJsonArrPop\x10\xd5\x0f\x12\x10\n\x0bJsonArrTrim\x10\xd6\x0f\x12\x0e\n\tJsonClear\x10\xd7\x0f\x12\x0e\n\tJsonDebug\x10\xd8\x0f\x12\x0c\n\x07JsonDel\x10\xd9\x0f\x12\x0f\n\nJsonForget\x10\xda\x0f\x12\x0c\n\x07JsonGet\x10\xdb\x0f\x12\r\n\x08JsonMGet\x10\xdc\x0f\x12\x12\n\rJsonNumIncrBy\x10\xdd\x0f\x12\x12\n\rJsonNumMultBy\x10\xde\x0f\x12\x10\n\x0bJsonObjKeys\x10\xdf\x0f\x12\x0f\n\nJsonObjLen\x10\xe0\x0f\x12\r\n\x08JsonResp\x10\xe1\x0f\x12\x0c\n\x07JsonSet\x10\xe2\x0f\x12\x12\n\rJsonStrAppend\x10\xe3\x0f\x12\x0f\n\nJsonStrLen\x10\xe4\x0f\x12\x0f\n\nJsonToggle\x10\xe5\x0f\x12\r\n\x08JsonType\x10\xe6\x0f\x12\x0b\n\x06\x46tList\x10\xb5\x10\x12\x10\n\x0b\x46tAggregate\x10\xb6\x10\x12\x0f\n\nFtAliasAdd\x10\xb7\x10\x12\x0f\n\nFtAliasDel\x10\xb8\x10\x12\x10\n\x0b\x46tAliasList\x10\xb9\x10\x12\x12\n\rFtAliasUpdate\x10\xba\x10\x12\r\n\x08\x46tCreate\x10\xbb\x10\x12\x10\n\x0b\x46tDropIndex\x10\xbc\x10\x12\x0e\n\tFtExplain\x10\xbd\x10\x12\x11\n\x0c\x46tExplainCli\x10\xbe\x10\x12\x0b\n\x06\x46tInfo\x10\xbf\x10\x12\x0e\n\tFtProfile\x10\xc0\x10\x12\r\n\x08\x46tSearch\x10\xc1\x10\x62\x06proto3')
|
|
18
18
|
|
|
19
19
|
_globals = globals()
|
|
20
20
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
21
21
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protobuf.command_request_pb2', _globals)
|
|
22
22
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
23
23
|
DESCRIPTOR._options = None
|
|
24
|
-
_globals['_SIMPLEROUTES']._serialized_start=
|
|
25
|
-
_globals['_SIMPLEROUTES']._serialized_end=
|
|
26
|
-
_globals['_SLOTTYPES']._serialized_start=
|
|
27
|
-
_globals['_SLOTTYPES']._serialized_end=
|
|
28
|
-
_globals['_REQUESTTYPE']._serialized_start=
|
|
29
|
-
_globals['_REQUESTTYPE']._serialized_end=
|
|
24
|
+
_globals['_SIMPLEROUTES']._serialized_start=2023
|
|
25
|
+
_globals['_SIMPLEROUTES']._serialized_end=2081
|
|
26
|
+
_globals['_SLOTTYPES']._serialized_start=2083
|
|
27
|
+
_globals['_SLOTTYPES']._serialized_end=2120
|
|
28
|
+
_globals['_REQUESTTYPE']._serialized_start=2123
|
|
29
|
+
_globals['_REQUESTTYPE']._serialized_end=8373
|
|
30
30
|
_globals['_SLOTIDROUTE']._serialized_start=51
|
|
31
31
|
_globals['_SLOTIDROUTE']._serialized_end=128
|
|
32
32
|
_globals['_SLOTKEYROUTE']._serialized_start=130
|
|
@@ -49,6 +49,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
49
49
|
_globals['_CLUSTERSCAN']._serialized_end=1340
|
|
50
50
|
_globals['_UPDATECONNECTIONPASSWORD']._serialized_start=1342
|
|
51
51
|
_globals['_UPDATECONNECTIONPASSWORD']._serialized_end=1428
|
|
52
|
-
_globals['
|
|
53
|
-
_globals['
|
|
52
|
+
_globals['_REFRESHIAMTOKEN']._serialized_start=1430
|
|
53
|
+
_globals['_REFRESHIAMTOKEN']._serialized_end=1447
|
|
54
|
+
_globals['_COMMANDREQUEST']._serialized_start=1450
|
|
55
|
+
_globals['_COMMANDREQUEST']._serialized_end=2021
|
|
54
56
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!protobuf/connection_request.proto\x12\x12\x63onnection_request\")\n\x0bNodeAddress\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\"
|
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!protobuf/connection_request.proto\x12\x12\x63onnection_request\")\n\x0bNodeAddress\x12\x0c\n\x04host\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\r\"\x8e\x01\n\x12\x41uthenticationInfo\x12\x10\n\x08password\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12@\n\x0fiam_credentials\x18\x03 \x01(\x0b\x32\".connection_request.IamCredentialsH\x00\x88\x01\x01\x42\x12\n\x10_iam_credentials\"\xb1\x01\n\x0eIamCredentials\x12\x14\n\x0c\x63luster_name\x18\x01 \x01(\t\x12\x0e\n\x06region\x18\x02 \x01(\t\x12\x35\n\x0cservice_type\x18\x03 \x01(\x0e\x32\x1f.connection_request.ServiceType\x12%\n\x18refresh_interval_seconds\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\x1b\n\x19_refresh_interval_seconds\"7\n\x1cPeriodicChecksManualInterval\x12\x17\n\x0f\x64uration_in_sec\x18\x01 \x01(\r\"\x18\n\x16PeriodicChecksDisabled\"8\n\x18PubSubChannelsOrPatterns\x12\x1c\n\x14\x63hannels_or_patterns\x18\x01 \x03(\x0c\"\xf1\x01\n\x13PubSubSubscriptions\x12k\n\x1c\x63hannels_or_patterns_by_type\x18\x01 \x03(\x0b\x32\x45.connection_request.PubSubSubscriptions.ChannelsOrPatternsByTypeEntry\x1am\n\x1d\x43hannelsOrPatternsByTypeEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12;\n\x05value\x18\x02 \x01(\x0b\x32,.connection_request.PubSubChannelsOrPatterns:\x02\x38\x01\"\x94\x07\n\x11\x43onnectionRequest\x12\x32\n\taddresses\x18\x01 \x03(\x0b\x32\x1f.connection_request.NodeAddress\x12-\n\x08tls_mode\x18\x02 \x01(\x0e\x32\x1b.connection_request.TlsMode\x12\x1c\n\x14\x63luster_mode_enabled\x18\x03 \x01(\x08\x12\x17\n\x0frequest_timeout\x18\x04 \x01(\r\x12/\n\tread_from\x18\x05 \x01(\x0e\x32\x1c.connection_request.ReadFrom\x12N\n\x19\x63onnection_retry_strategy\x18\x06 \x01(\x0b\x32+.connection_request.ConnectionRetryStrategy\x12\x43\n\x13\x61uthentication_info\x18\x07 \x01(\x0b\x32&.connection_request.AuthenticationInfo\x12\x13\n\x0b\x64\x61tabase_id\x18\x08 \x01(\r\x12\x35\n\x08protocol\x18\t \x01(\x0e\x32#.connection_request.ProtocolVersion\x12\x13\n\x0b\x63lient_name\x18\n \x01(\t\x12[\n\x1fperiodic_checks_manual_interval\x18\x0b \x01(\x0b\x32\x30.connection_request.PeriodicChecksManualIntervalH\x00\x12N\n\x18periodic_checks_disabled\x18\x0c \x01(\x0b\x32*.connection_request.PeriodicChecksDisabledH\x00\x12\x45\n\x14pubsub_subscriptions\x18\r \x01(\x0b\x32\'.connection_request.PubSubSubscriptions\x12\x1f\n\x17inflight_requests_limit\x18\x0e \x01(\r\x12\x11\n\tclient_az\x18\x0f \x01(\t\x12\x1a\n\x12\x63onnection_timeout\x18\x10 \x01(\r\x12\x14\n\x0clazy_connect\x18\x11 \x01(\x08\x12+\n#refresh_topology_from_initial_nodes\x18\x12 \x01(\x08\x12\x10\n\x08lib_name\x18\x13 \x01(\t\x12\x12\n\nroot_certs\x18\x14 \x03(\x0c\x42\x11\n\x0fperiodic_checks\"\x8b\x01\n\x17\x43onnectionRetryStrategy\x12\x19\n\x11number_of_retries\x18\x01 \x01(\r\x12\x0e\n\x06\x66\x61\x63tor\x18\x02 \x01(\r\x12\x15\n\rexponent_base\x18\x03 \x01(\r\x12\x1b\n\x0ejitter_percent\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_jitter_percent*o\n\x08ReadFrom\x12\x0b\n\x07Primary\x10\x00\x12\x11\n\rPreferReplica\x10\x01\x12\x11\n\rLowestLatency\x10\x02\x12\x0e\n\nAZAffinity\x10\x03\x12 \n\x1c\x41ZAffinityReplicasAndPrimary\x10\x04*4\n\x07TlsMode\x12\t\n\x05NoTls\x10\x00\x12\r\n\tSecureTls\x10\x01\x12\x0f\n\x0bInsecureTls\x10\x02*,\n\x0bServiceType\x12\x0f\n\x0b\x45LASTICACHE\x10\x00\x12\x0c\n\x08MEMORYDB\x10\x01*\'\n\x0fProtocolVersion\x12\t\n\x05RESP3\x10\x00\x12\t\n\x05RESP2\x10\x01*8\n\x11PubSubChannelType\x12\t\n\x05\x45xact\x10\x00\x12\x0b\n\x07Pattern\x10\x01\x12\x0b\n\x07Sharded\x10\x02\x62\x06proto3')
|
|
18
18
|
|
|
19
19
|
_globals = globals()
|
|
20
20
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -23,30 +23,34 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
23
23
|
DESCRIPTOR._options = None
|
|
24
24
|
_globals['_PUBSUBSUBSCRIPTIONS_CHANNELSORPATTERNSBYTYPEENTRY']._options = None
|
|
25
25
|
_globals['_PUBSUBSUBSCRIPTIONS_CHANNELSORPATTERNSBYTYPEENTRY']._serialized_options = b'8\001'
|
|
26
|
-
_globals['_READFROM']._serialized_start=
|
|
27
|
-
_globals['_READFROM']._serialized_end=
|
|
28
|
-
_globals['_TLSMODE']._serialized_start=
|
|
29
|
-
_globals['_TLSMODE']._serialized_end=
|
|
30
|
-
_globals['
|
|
31
|
-
_globals['
|
|
32
|
-
_globals['
|
|
33
|
-
_globals['
|
|
26
|
+
_globals['_READFROM']._serialized_start=1871
|
|
27
|
+
_globals['_READFROM']._serialized_end=1982
|
|
28
|
+
_globals['_TLSMODE']._serialized_start=1984
|
|
29
|
+
_globals['_TLSMODE']._serialized_end=2036
|
|
30
|
+
_globals['_SERVICETYPE']._serialized_start=2038
|
|
31
|
+
_globals['_SERVICETYPE']._serialized_end=2082
|
|
32
|
+
_globals['_PROTOCOLVERSION']._serialized_start=2084
|
|
33
|
+
_globals['_PROTOCOLVERSION']._serialized_end=2123
|
|
34
|
+
_globals['_PUBSUBCHANNELTYPE']._serialized_start=2125
|
|
35
|
+
_globals['_PUBSUBCHANNELTYPE']._serialized_end=2181
|
|
34
36
|
_globals['_NODEADDRESS']._serialized_start=57
|
|
35
37
|
_globals['_NODEADDRESS']._serialized_end=98
|
|
36
|
-
_globals['_AUTHENTICATIONINFO']._serialized_start=
|
|
37
|
-
_globals['_AUTHENTICATIONINFO']._serialized_end=
|
|
38
|
-
_globals['
|
|
39
|
-
_globals['
|
|
40
|
-
_globals['
|
|
41
|
-
_globals['
|
|
42
|
-
_globals['
|
|
43
|
-
_globals['
|
|
44
|
-
_globals['
|
|
45
|
-
_globals['
|
|
46
|
-
_globals['
|
|
47
|
-
_globals['
|
|
48
|
-
_globals['
|
|
49
|
-
_globals['
|
|
50
|
-
_globals['
|
|
51
|
-
_globals['
|
|
38
|
+
_globals['_AUTHENTICATIONINFO']._serialized_start=101
|
|
39
|
+
_globals['_AUTHENTICATIONINFO']._serialized_end=243
|
|
40
|
+
_globals['_IAMCREDENTIALS']._serialized_start=246
|
|
41
|
+
_globals['_IAMCREDENTIALS']._serialized_end=423
|
|
42
|
+
_globals['_PERIODICCHECKSMANUALINTERVAL']._serialized_start=425
|
|
43
|
+
_globals['_PERIODICCHECKSMANUALINTERVAL']._serialized_end=480
|
|
44
|
+
_globals['_PERIODICCHECKSDISABLED']._serialized_start=482
|
|
45
|
+
_globals['_PERIODICCHECKSDISABLED']._serialized_end=506
|
|
46
|
+
_globals['_PUBSUBCHANNELSORPATTERNS']._serialized_start=508
|
|
47
|
+
_globals['_PUBSUBCHANNELSORPATTERNS']._serialized_end=564
|
|
48
|
+
_globals['_PUBSUBSUBSCRIPTIONS']._serialized_start=567
|
|
49
|
+
_globals['_PUBSUBSUBSCRIPTIONS']._serialized_end=808
|
|
50
|
+
_globals['_PUBSUBSUBSCRIPTIONS_CHANNELSORPATTERNSBYTYPEENTRY']._serialized_start=699
|
|
51
|
+
_globals['_PUBSUBSUBSCRIPTIONS_CHANNELSORPATTERNSBYTYPEENTRY']._serialized_end=808
|
|
52
|
+
_globals['_CONNECTIONREQUEST']._serialized_start=811
|
|
53
|
+
_globals['_CONNECTIONREQUEST']._serialized_end=1727
|
|
54
|
+
_globals['_CONNECTIONRETRYSTRATEGY']._serialized_start=1730
|
|
55
|
+
_globals['_CONNECTIONRETRYSTRATEGY']._serialized_end=1869
|
|
52
56
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: valkey-glide
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.3rc1
|
|
4
4
|
Classifier: Topic :: Database
|
|
5
5
|
Classifier: Topic :: Utilities
|
|
6
6
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -11,6 +11,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
11
11
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
12
12
|
Requires-Dist: anyio>=4.9.0
|
|
13
13
|
Requires-Dist: protobuf>=6.20
|
|
14
|
+
Requires-Dist: sniffio
|
|
14
15
|
Requires-Dist: typing-extensions>=4.8.0; python_version < '3.11'
|
|
15
16
|
Summary: Valkey GLIDE Async client. Supports Valkey and Redis OSS.
|
|
16
17
|
Author: Valkey GLIDE Maintainers
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
valkey_glide-2.
|
|
2
|
-
valkey_glide-2.
|
|
1
|
+
valkey_glide-2.2.3rc1.dist-info/METADATA,sha256=SZCNw8l0gF7Q1dOD-ETowxPhV_sJSkI1XLMIa2Z9gmk,7001
|
|
2
|
+
valkey_glide-2.2.3rc1.dist-info/WHEEL,sha256=Kk4P7nsII_4mlcl0eERj4CEP9eqHVH-5YUb6eWcZ2G4,111
|
|
3
3
|
glide/async_commands/glide_json.py,sha256=H5dnB4vJkGPpNXJZhhVyPQoTSbkN_chq5Xw6tkP0wMQ,60410
|
|
4
4
|
glide/async_commands/ft.py,sha256=1v96sBCgiXtPbj85ZurY3ruLCmok3cPoaIXSiJBEv9Y,16849
|
|
5
5
|
glide/async_commands/__init__.py,sha256=_tbTAFATlzp4L2qe-H77PpAQK-16VsV-y7uKNUKLC_o,136
|
|
6
|
-
glide/async_commands/core.py,sha256=
|
|
7
|
-
glide/async_commands/standalone_commands.py,sha256=
|
|
8
|
-
glide/async_commands/cluster_commands.py,sha256=
|
|
9
|
-
glide/__init__.py,sha256=
|
|
6
|
+
glide/async_commands/core.py,sha256=x6lu7xt_pLR5drYDzNHTj0ORYX_oL73v2ZN4yxrTxGk,330289
|
|
7
|
+
glide/async_commands/standalone_commands.py,sha256=0YgOnH-8VVM8Cz_iJ2YxTeh8BdLpaxCjROkDhe_2Om8,38228
|
|
8
|
+
glide/async_commands/cluster_commands.py,sha256=NbRijIA22tDaBZg3VlBPUBGmgZ5elq5KnW-FEha9tfI,61045
|
|
9
|
+
glide/__init__.py,sha256=u_9M1dUNtZcI8AwbgnA_8Aox81Xbv_oLvn2ApSOmHCY,8843
|
|
10
10
|
glide/glide.pyi,sha256=6JIpAeADQ-1fU1Mp99pyh7aJORDxAAdtQebV5aByIVI,2093
|
|
11
11
|
glide/opentelemetry.py,sha256=vg9fTYXj7_rni7hVBkZBJ1ZN4-RSGde5fOH4DsnVx_4,7476
|
|
12
|
-
glide/glide_client.py,sha256=
|
|
12
|
+
glide/glide_client.py,sha256=dyfHPiDTjvvCcOEcR2HyHK95-9WfYflXXAcLfyetfMk,32981
|
|
13
13
|
glide/logger.py,sha256=5-bAhfH_6hYEXdcgBR9R_wdeffSLHqEN-aQeIyMHnYY,4103
|
|
14
|
-
|
|
14
|
+
glide/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
glide_shared/__init__.py,sha256=CWiz6vdOysZ-J8skev8VIXG2SPdNaJ8lk-5emGAzzE4,7217
|
|
15
16
|
glide_shared/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
glide_shared/commands/batch.py,sha256=
|
|
17
|
+
glide_shared/commands/batch.py,sha256=CYf12G6vQhUv2CcziwQJ5ZTE2c2DDvKEBlx2sgmi-K0,247356
|
|
17
18
|
glide_shared/commands/batch_options.py,sha256=i2lDCLhMzUvpArb2bxX16xu7X-im0hLPaLXALkxWeQ8,11130
|
|
18
19
|
glide_shared/commands/bitmap.py,sha256=ZHGLcKBP7RADtANqIR7PWdIW_gfDBFgpkIsQ-T4QFBQ,10125
|
|
19
20
|
glide_shared/commands/command_args.py,sha256=55vpSxeQr8wFU7olkFTEecl66wPk1g6vWxVYj16UvXs,2529
|
|
@@ -27,13 +28,13 @@ glide_shared/commands/server_modules/json_batch.py,sha256=uqkLXPCOkzp53GfffnII1x
|
|
|
27
28
|
glide_shared/commands/server_modules/json_options.py,sha256=0dFk3EEtcERpmkNoO8930MqfEHLVaQRBRcg3CpL7nmE,3042
|
|
28
29
|
glide_shared/commands/sorted_set.py,sha256=hnXud0Ewn1uBdM6T2xzfCneZWfTeP-2U0XfEDGNCqlI,11466
|
|
29
30
|
glide_shared/commands/stream.py,sha256=MlllDP3teVX8BOB4ANb0JFC4RkUp8SQLCGlGMSPU_s4,15589
|
|
30
|
-
glide_shared/config.py,sha256=
|
|
31
|
+
glide_shared/config.py,sha256=IScbmbbyemqw0TlkpqLgp2mFY48H2PtF2nE4K4mVGuc,43223
|
|
31
32
|
glide_shared/constants.py,sha256=pS7Xbjvq_qG3mlolVf51cCAGzXRhGdhvGIs2QK3R_b4,4375
|
|
32
33
|
glide_shared/exceptions.py,sha256=Z_szeAE-m1gsoBr5bPQymF6W6wiaunoHvBrt1dHbiYw,1852
|
|
33
|
-
glide_shared/protobuf/command_request_pb2.py,sha256=
|
|
34
|
-
glide_shared/protobuf/connection_request_pb2.py,sha256=
|
|
34
|
+
glide_shared/protobuf/command_request_pb2.py,sha256=FIumn0p54n24pNykzWOoSGHQqvaY8-XopLWO0VqqKSI,19539
|
|
35
|
+
glide_shared/protobuf/connection_request_pb2.py,sha256=wlY76aIWKdyETOjD0Xh_B3RsfXqFwzkT0-lymAkTOes,6228
|
|
35
36
|
glide_shared/protobuf/response_pb2.py,sha256=oT2GHUwjrxvBVdINRKCvb3_BFN0Fq2wqwHbTj7KAX2E,2110
|
|
36
37
|
glide_shared/protobuf_codec.py,sha256=xwt4-D4WbvNIY_vjOd-00c73HOyNjWq7nN-Z718PBVA,3667
|
|
37
38
|
glide_shared/routes.py,sha256=HFccxCzXQXSi6Y1HFsRUm9ZcbJgCrar6y6uOWpGJWe0,4746
|
|
38
|
-
glide/glide.pypy39-pp73-darwin.so,sha256=
|
|
39
|
-
valkey_glide-2.
|
|
39
|
+
glide/glide.pypy39-pp73-darwin.so,sha256=GvZvfMKUE_E6bdkBdk8-ho_LkPznffxXbNhTphO-dNU,13625088
|
|
40
|
+
valkey_glide-2.2.3rc1.dist-info/RECORD,,
|
|
File without changes
|