gnetclisdk 1.0.2__py3-none-any.whl → 1.0.33__py3-none-any.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.
- gnetclisdk/client.py +48 -17
- {gnetclisdk-1.0.2.dist-info → gnetclisdk-1.0.33.dist-info}/METADATA +1 -1
- {gnetclisdk-1.0.2.dist-info → gnetclisdk-1.0.33.dist-info}/RECORD +5 -5
- {gnetclisdk-1.0.2.dist-info → gnetclisdk-1.0.33.dist-info}/WHEEL +1 -1
- {gnetclisdk-1.0.2.dist-info → gnetclisdk-1.0.33.dist-info}/top_level.txt +0 -0
gnetclisdk/client.py
CHANGED
@@ -36,16 +36,22 @@ class QA:
|
|
36
36
|
question: str
|
37
37
|
answer: str
|
38
38
|
|
39
|
+
def make_pb(self) -> server_pb2.QA:
|
40
|
+
pb = server_pb2.QA()
|
41
|
+
pb.question = self.question
|
42
|
+
pb.answer = self.answer
|
43
|
+
return pb
|
44
|
+
|
39
45
|
|
40
46
|
@dataclass
|
41
47
|
class Credentials:
|
42
|
-
login: str
|
43
|
-
password: str
|
48
|
+
login: Optional[str] = None
|
49
|
+
password: Optional[str] = None
|
44
50
|
|
45
|
-
def make_pb(self) ->
|
51
|
+
def make_pb(self) -> server_pb2.Credentials:
|
46
52
|
pb = server_pb2.Credentials()
|
47
|
-
pb.login = self.login
|
48
|
-
pb.password = self.password
|
53
|
+
pb.login = self.login or ""
|
54
|
+
pb.password = self.password or ""
|
49
55
|
return pb
|
50
56
|
|
51
57
|
|
@@ -59,7 +65,22 @@ class File:
|
|
59
65
|
class HostParams:
|
60
66
|
device: str
|
61
67
|
port: Optional[int] = None
|
68
|
+
hostname: Optional[str] = None
|
62
69
|
credentials: Optional[Credentials] = None
|
70
|
+
ip: Optional[str] = None
|
71
|
+
|
72
|
+
def make_pb(self) -> server_pb2.HostParams:
|
73
|
+
creds_pb: Optional[server_pb2.Credentials] = None
|
74
|
+
if self.credentials:
|
75
|
+
creds_pb = self.credentials.make_pb()
|
76
|
+
pbcmd = server_pb2.HostParams(
|
77
|
+
host=self.hostname,
|
78
|
+
port=self.port,
|
79
|
+
credentials=creds_pb,
|
80
|
+
device=self.device,
|
81
|
+
ip=self.ip,
|
82
|
+
)
|
83
|
+
return pbcmd
|
63
84
|
|
64
85
|
|
65
86
|
def make_auth(auth_token: str) -> ClientAuthentication:
|
@@ -119,7 +140,8 @@ class Gnetcli:
|
|
119
140
|
qa: Optional[List[QA]] = None,
|
120
141
|
read_timeout: float = 0.0,
|
121
142
|
cmd_timeout: float = 0.0,
|
122
|
-
|
143
|
+
host_params: Optional[HostParams] = None,
|
144
|
+
) -> server_pb2.CMDResult:
|
123
145
|
pbcmd = make_cmd(
|
124
146
|
hostname=hostname,
|
125
147
|
cmd=cmd,
|
@@ -127,6 +149,7 @@ class Gnetcli:
|
|
127
149
|
qa=qa,
|
128
150
|
read_timeout=read_timeout,
|
129
151
|
cmd_timeout=cmd_timeout,
|
152
|
+
host_params=host_params,
|
130
153
|
)
|
131
154
|
if self._channel is None:
|
132
155
|
_logger.debug("connect to %s", self._server)
|
@@ -247,7 +270,7 @@ class GnetcliSession(ABC):
|
|
247
270
|
def __init__(
|
248
271
|
self,
|
249
272
|
hostname: str,
|
250
|
-
token: str,
|
273
|
+
token: str | None = None,
|
251
274
|
server: str = DEFAULT_SERVER,
|
252
275
|
target_name_override: Optional[str] = None,
|
253
276
|
cert_file: Optional[str] = None,
|
@@ -274,13 +297,17 @@ class GnetcliSession(ABC):
|
|
274
297
|
cert = get_cert(cert_file=cert_file)
|
275
298
|
channel_credentials = grpc.ssl_channel_credentials(root_certificates=cert)
|
276
299
|
authentication: ClientAuthentication
|
277
|
-
|
300
|
+
interceptors: [grpc.aio.ClientInterceptor] = list()
|
301
|
+
if not token:
|
302
|
+
pass
|
303
|
+
elif token.startswith("OAuth"):
|
278
304
|
authentication = OAuthClientAuthentication(token.split(" ")[1])
|
305
|
+
interceptors.append(get_auth_client_interceptors(authentication))
|
279
306
|
elif token.startswith("Basic"):
|
280
307
|
authentication = BasicClientAuthentication(token.split(" ")[1])
|
308
|
+
interceptors.append(get_auth_client_interceptors(authentication))
|
281
309
|
else:
|
282
310
|
raise Exception("unknown token type")
|
283
|
-
interceptors = get_auth_client_interceptors(authentication)
|
284
311
|
grpc_channel_fn = partial(grpc.aio.secure_channel, credentials=channel_credentials, interceptors=interceptors)
|
285
312
|
if insecure_grpc:
|
286
313
|
grpc_channel_fn = partial(grpc.aio.insecure_channel, interceptors=interceptors)
|
@@ -342,7 +369,8 @@ class GnetcliSessionCmd(GnetcliSession):
|
|
342
369
|
qa: Optional[List[QA]] = None,
|
343
370
|
cmd_timeout: float = 0.0,
|
344
371
|
read_timeout: float = 0.0,
|
345
|
-
|
372
|
+
host_params: Optional[HostParams] = None,
|
373
|
+
) -> server_pb2.CMDResult:
|
346
374
|
_logger.debug("session cmd %r", cmd)
|
347
375
|
pbcmd = make_cmd(
|
348
376
|
hostname=self._hostname,
|
@@ -351,6 +379,7 @@ class GnetcliSessionCmd(GnetcliSession):
|
|
351
379
|
qa=qa,
|
352
380
|
read_timeout=read_timeout,
|
353
381
|
cmd_timeout=cmd_timeout,
|
382
|
+
host_params=host_params,
|
354
383
|
)
|
355
384
|
return await self._cmd(pbcmd)
|
356
385
|
|
@@ -437,14 +466,15 @@ def make_cmd(
|
|
437
466
|
qa: Optional[List[QA]] = None,
|
438
467
|
read_timeout: float = 0.0,
|
439
468
|
cmd_timeout: float = 0.0,
|
440
|
-
|
441
|
-
|
469
|
+
host_params: Optional[HostParams] = None,
|
470
|
+
) -> server_pb2.CMD:
|
471
|
+
qa_cmd: List[server_pb2.QA] = []
|
442
472
|
if qa:
|
443
473
|
for item in qa:
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
474
|
+
qa_cmd.append(item.make_pb())
|
475
|
+
host_params_pb: Optional[server_pb2.HostParams] = None
|
476
|
+
if host_params:
|
477
|
+
host_params_pb = host_params.make_pb()
|
448
478
|
res = server_pb2.CMD(
|
449
479
|
host=hostname,
|
450
480
|
cmd=cmd,
|
@@ -452,8 +482,9 @@ def make_cmd(
|
|
452
482
|
qa=qa_cmd,
|
453
483
|
read_timeout=read_timeout,
|
454
484
|
cmd_timeout=cmd_timeout,
|
485
|
+
host_params=host_params_pb,
|
455
486
|
)
|
456
|
-
return res
|
487
|
+
return res
|
457
488
|
|
458
489
|
|
459
490
|
def make_files_request(files: Dict[str, File]) -> List[server_pb2.FileData]:
|
@@ -1,11 +1,11 @@
|
|
1
1
|
gnetclisdk/auth.py,sha256=GwM7H7Ecb-gwqUTkQorifNB_mtnZfgeS46gOW2Vx1U4,1246
|
2
|
-
gnetclisdk/client.py,sha256=
|
2
|
+
gnetclisdk/client.py,sha256=xtDbGJ3voTadmR7lt8WC-LKcBzk1v_otnaqG3LzKZjE,17899
|
3
3
|
gnetclisdk/exceptions.py,sha256=d0Bcq8tnAzemCuCCrGJEmL_A1IQxCCLFRCwDhr9zvkU,2683
|
4
4
|
gnetclisdk/interceptors.py,sha256=apj3l4lnR2ZcsA49odptrBC0kTDmP6Mp0EzYkeEJz9Y,7010
|
5
5
|
gnetclisdk/proto/server_pb2.py,sha256=YL1_7wubJbSp97OeRZ_L9qJjbM2U-PMcfOg-_QpkjWs,8360
|
6
6
|
gnetclisdk/proto/server_pb2.pyi,sha256=th-HnFVkR1ZEY-XmFmk8VMfDj_4uFAoSAXH61mSlVec,8295
|
7
7
|
gnetclisdk/proto/server_pb2_grpc.py,sha256=rjuNEIfeqwFw99oSiWUyvNKCKPgITJZKcL8pQPbUQvM,14967
|
8
|
-
gnetclisdk-1.0.
|
9
|
-
gnetclisdk-1.0.
|
10
|
-
gnetclisdk-1.0.
|
11
|
-
gnetclisdk-1.0.
|
8
|
+
gnetclisdk-1.0.33.dist-info/METADATA,sha256=5Rai2VnXAZWcMFERi82GeXQp6-jMolVVwOJu62RgqDU,1434
|
9
|
+
gnetclisdk-1.0.33.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
10
|
+
gnetclisdk-1.0.33.dist-info/top_level.txt,sha256=MNjS8LEt6d2rZ-dUbV2cnqkuTMu3EqEL2eiSvUZuUlA,11
|
11
|
+
gnetclisdk-1.0.33.dist-info/RECORD,,
|
File without changes
|