strongdm 6.2.1__zip → 6.3.0__zip
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.
- {strongdm-6.2.1 → strongdm-6.3.0}/PKG-INFO +2 -2
- {strongdm-6.2.1 → strongdm-6.3.0}/setup.py +2 -2
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/client.py +7 -1
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/models.py +157 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/options_pb2.py +22 -22
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/plumbing.py +125 -0
- strongdm-6.3.0/strongdm/secret_store_healths_pb2.py +167 -0
- strongdm-6.3.0/strongdm/secret_store_healths_pb2_grpc.py +155 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/svc.py +81 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/SOURCES.txt +2 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/LICENSE +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/README.md +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/setup.cfg +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/__init__.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_request_events_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_requests_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_requests_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_grants_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/accounts_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/accounts_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/activities_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/constants.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/drivers_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/errors.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/nodes_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/organization_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_nodes_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_peers_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_resources_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_groups_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/queries_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identities_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identities_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identity_groups_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/replays_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/resources_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/roles_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/roles_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_store_types_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/spec_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/spec_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/tags_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/tags_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_approvers_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_assignments_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_roles_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_roles_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflows_history_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflows_pb2.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/requires.txt +0 -0
- {strongdm-6.2.1 → strongdm-6.3.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -0,0 +1,155 @@
|
|
1
|
+
# Copyright 2020 StrongDM Inc
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
#
|
15
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
16
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
17
|
+
import grpc
|
18
|
+
|
19
|
+
from . import secret_store_healths_pb2 as secret__store__healths__pb2
|
20
|
+
|
21
|
+
|
22
|
+
class SecretStoreHealthsStub(object):
|
23
|
+
"""SecretStoreHealths exposes health states for secret stores.
|
24
|
+
"""
|
25
|
+
|
26
|
+
def __init__(self, channel):
|
27
|
+
"""Constructor.
|
28
|
+
|
29
|
+
Args:
|
30
|
+
channel: A grpc.Channel.
|
31
|
+
"""
|
32
|
+
self.List = channel.unary_unary(
|
33
|
+
'/v1.SecretStoreHealths/List',
|
34
|
+
request_serializer=secret__store__healths__pb2.SecretStoreHealthListRequest.SerializeToString,
|
35
|
+
response_deserializer=secret__store__healths__pb2.SecretStoreHealthListResponse.FromString,
|
36
|
+
)
|
37
|
+
self.Check = channel.unary_unary(
|
38
|
+
'/v1.SecretStoreHealths/Check',
|
39
|
+
request_serializer=secret__store__healths__pb2.SecretStoreHealthCheckRequest.SerializeToString,
|
40
|
+
response_deserializer=secret__store__healths__pb2.SecretStoreHealthCheckResponse.FromString,
|
41
|
+
)
|
42
|
+
self.Healthcheck = channel.unary_unary(
|
43
|
+
'/v1.SecretStoreHealths/Healthcheck',
|
44
|
+
request_serializer=secret__store__healths__pb2.SecretStoreHealthcheckRequest.SerializeToString,
|
45
|
+
response_deserializer=secret__store__healths__pb2.SecretStoreHealthcheckResponse.FromString,
|
46
|
+
)
|
47
|
+
|
48
|
+
|
49
|
+
class SecretStoreHealthsServicer(object):
|
50
|
+
"""SecretStoreHealths exposes health states for secret stores.
|
51
|
+
"""
|
52
|
+
|
53
|
+
def List(self, request, context):
|
54
|
+
"""List reports the health status of node to secret store pairs.
|
55
|
+
"""
|
56
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
57
|
+
context.set_details('Method not implemented!')
|
58
|
+
raise NotImplementedError('Method not implemented!')
|
59
|
+
|
60
|
+
def Check(self, request, context):
|
61
|
+
"""Check pushes a healthcheck request for a secret store
|
62
|
+
Deprecated: use Healthcheck instead
|
63
|
+
"""
|
64
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
65
|
+
context.set_details('Method not implemented!')
|
66
|
+
raise NotImplementedError('Method not implemented!')
|
67
|
+
|
68
|
+
def Healthcheck(self, request, context):
|
69
|
+
"""Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
|
70
|
+
to propagate across a large network of Nodes. The call will return immediately, and the
|
71
|
+
updated health of the Secret Store can be retrieved via List.
|
72
|
+
"""
|
73
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
74
|
+
context.set_details('Method not implemented!')
|
75
|
+
raise NotImplementedError('Method not implemented!')
|
76
|
+
|
77
|
+
|
78
|
+
def add_SecretStoreHealthsServicer_to_server(servicer, server):
|
79
|
+
rpc_method_handlers = {
|
80
|
+
'List': grpc.unary_unary_rpc_method_handler(
|
81
|
+
servicer.List,
|
82
|
+
request_deserializer=secret__store__healths__pb2.SecretStoreHealthListRequest.FromString,
|
83
|
+
response_serializer=secret__store__healths__pb2.SecretStoreHealthListResponse.SerializeToString,
|
84
|
+
),
|
85
|
+
'Check': grpc.unary_unary_rpc_method_handler(
|
86
|
+
servicer.Check,
|
87
|
+
request_deserializer=secret__store__healths__pb2.SecretStoreHealthCheckRequest.FromString,
|
88
|
+
response_serializer=secret__store__healths__pb2.SecretStoreHealthCheckResponse.SerializeToString,
|
89
|
+
),
|
90
|
+
'Healthcheck': grpc.unary_unary_rpc_method_handler(
|
91
|
+
servicer.Healthcheck,
|
92
|
+
request_deserializer=secret__store__healths__pb2.SecretStoreHealthcheckRequest.FromString,
|
93
|
+
response_serializer=secret__store__healths__pb2.SecretStoreHealthcheckResponse.SerializeToString,
|
94
|
+
),
|
95
|
+
}
|
96
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
97
|
+
'v1.SecretStoreHealths', rpc_method_handlers)
|
98
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
99
|
+
|
100
|
+
|
101
|
+
# This class is part of an EXPERIMENTAL API.
|
102
|
+
class SecretStoreHealths(object):
|
103
|
+
"""SecretStoreHealths exposes health states for secret stores.
|
104
|
+
"""
|
105
|
+
|
106
|
+
@staticmethod
|
107
|
+
def List(request,
|
108
|
+
target,
|
109
|
+
options=(),
|
110
|
+
channel_credentials=None,
|
111
|
+
call_credentials=None,
|
112
|
+
insecure=False,
|
113
|
+
compression=None,
|
114
|
+
wait_for_ready=None,
|
115
|
+
timeout=None,
|
116
|
+
metadata=None):
|
117
|
+
return grpc.experimental.unary_unary(request, target, '/v1.SecretStoreHealths/List',
|
118
|
+
secret__store__healths__pb2.SecretStoreHealthListRequest.SerializeToString,
|
119
|
+
secret__store__healths__pb2.SecretStoreHealthListResponse.FromString,
|
120
|
+
options, channel_credentials,
|
121
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
122
|
+
|
123
|
+
@staticmethod
|
124
|
+
def Check(request,
|
125
|
+
target,
|
126
|
+
options=(),
|
127
|
+
channel_credentials=None,
|
128
|
+
call_credentials=None,
|
129
|
+
insecure=False,
|
130
|
+
compression=None,
|
131
|
+
wait_for_ready=None,
|
132
|
+
timeout=None,
|
133
|
+
metadata=None):
|
134
|
+
return grpc.experimental.unary_unary(request, target, '/v1.SecretStoreHealths/Check',
|
135
|
+
secret__store__healths__pb2.SecretStoreHealthCheckRequest.SerializeToString,
|
136
|
+
secret__store__healths__pb2.SecretStoreHealthCheckResponse.FromString,
|
137
|
+
options, channel_credentials,
|
138
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
139
|
+
|
140
|
+
@staticmethod
|
141
|
+
def Healthcheck(request,
|
142
|
+
target,
|
143
|
+
options=(),
|
144
|
+
channel_credentials=None,
|
145
|
+
call_credentials=None,
|
146
|
+
insecure=False,
|
147
|
+
compression=None,
|
148
|
+
wait_for_ready=None,
|
149
|
+
timeout=None,
|
150
|
+
metadata=None):
|
151
|
+
return grpc.experimental.unary_unary(request, target, '/v1.SecretStoreHealths/Healthcheck',
|
152
|
+
secret__store__healths__pb2.SecretStoreHealthcheckRequest.SerializeToString,
|
153
|
+
secret__store__healths__pb2.SecretStoreHealthcheckResponse.FromString,
|
154
|
+
options, channel_credentials,
|
155
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
@@ -92,6 +92,8 @@ from .roles_pb2 import *
|
|
92
92
|
from .roles_pb2_grpc import *
|
93
93
|
from .roles_history_pb2 import *
|
94
94
|
from .roles_history_pb2_grpc import *
|
95
|
+
from .secret_store_healths_pb2 import *
|
96
|
+
from .secret_store_healths_pb2_grpc import *
|
95
97
|
from .secret_store_types_pb2 import *
|
96
98
|
from .secret_store_types_pb2_grpc import *
|
97
99
|
from .secret_stores_pb2 import *
|
@@ -3510,6 +3512,85 @@ class RolesHistory:
|
|
3510
3512
|
return generator(self, req)
|
3511
3513
|
|
3512
3514
|
|
3515
|
+
class SecretStoreHealths:
|
3516
|
+
'''
|
3517
|
+
SecretStoreHealths exposes health states for secret stores.
|
3518
|
+
See `strongdm.models.SecretStoreHealth`.
|
3519
|
+
'''
|
3520
|
+
def __init__(self, channel, client):
|
3521
|
+
self.parent = client
|
3522
|
+
self.stub = SecretStoreHealthsStub(channel)
|
3523
|
+
|
3524
|
+
def list(self, filter, *args, timeout=None):
|
3525
|
+
'''
|
3526
|
+
List reports the health status of node to secret store pairs.
|
3527
|
+
'''
|
3528
|
+
req = SecretStoreHealthListRequest()
|
3529
|
+
req.meta.CopyFrom(ListRequestMetadata())
|
3530
|
+
if self.parent.page_limit > 0:
|
3531
|
+
req.meta.limit = self.parent.page_limit
|
3532
|
+
if self.parent.snapshot_datetime is not None:
|
3533
|
+
req.meta.snapshot_at.FromDatetime(self.parent.snapshot_datetime)
|
3534
|
+
|
3535
|
+
req.filter = plumbing.quote_filter_args(filter, *args)
|
3536
|
+
|
3537
|
+
def generator(svc, req):
|
3538
|
+
tries = 0
|
3539
|
+
while True:
|
3540
|
+
try:
|
3541
|
+
plumbing_response = svc.stub.List(
|
3542
|
+
req,
|
3543
|
+
metadata=svc.parent.get_metadata(
|
3544
|
+
'SecretStoreHealths.List', req),
|
3545
|
+
timeout=timeout)
|
3546
|
+
except Exception as e:
|
3547
|
+
if self.parent.shouldRetry(tries, e):
|
3548
|
+
tries += 1
|
3549
|
+
self.parent.jitterSleep(tries)
|
3550
|
+
continue
|
3551
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
3552
|
+
tries = 0
|
3553
|
+
for plumbing_item in plumbing_response.secret_store_healths:
|
3554
|
+
yield plumbing.convert_secret_store_health_to_porcelain(
|
3555
|
+
plumbing_item)
|
3556
|
+
if plumbing_response.meta.next_cursor == '':
|
3557
|
+
break
|
3558
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
3559
|
+
|
3560
|
+
return generator(self, req)
|
3561
|
+
|
3562
|
+
def healthcheck(self, secret_store_id, timeout=None):
|
3563
|
+
'''
|
3564
|
+
Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
|
3565
|
+
to propagate across a large network of Nodes. The call will return immediately, and the
|
3566
|
+
updated health of the Secret Store can be retrieved via List.
|
3567
|
+
'''
|
3568
|
+
req = SecretStoreHealthcheckRequest()
|
3569
|
+
|
3570
|
+
req.secret_store_id = (secret_store_id)
|
3571
|
+
tries = 0
|
3572
|
+
plumbing_response = None
|
3573
|
+
while True:
|
3574
|
+
try:
|
3575
|
+
plumbing_response = self.stub.Healthcheck(
|
3576
|
+
req,
|
3577
|
+
metadata=self.parent.get_metadata(
|
3578
|
+
'SecretStoreHealths.Healthcheck', req),
|
3579
|
+
timeout=timeout)
|
3580
|
+
except Exception as e:
|
3581
|
+
if self.parent.shouldRetry(tries, e):
|
3582
|
+
tries += 1
|
3583
|
+
self.parent.jitterSleep(tries)
|
3584
|
+
continue
|
3585
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
3586
|
+
break
|
3587
|
+
|
3588
|
+
resp = models.SecretStoreHealthcheckResponse()
|
3589
|
+
resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
|
3590
|
+
plumbing_response.rate_limit)
|
3591
|
+
return resp
|
3592
|
+
|
3593
|
+
|
3513
3594
|
class SecretStores:
|
3514
3595
|
'''
|
3515
3596
|
SecretStores are servers where resource secrets (passwords, keys) are stored.
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: strongdm
|
3
|
-
Version: 6.
|
3
|
+
Version: 6.3.0
|
4
4
|
Summary: strongDM SDK for the Python programming language.
|
5
5
|
Home-page: https://github.com/strongdm/strongdm-sdk-python
|
6
6
|
Author: strongDM Team
|
7
7
|
Author-email: sdk-feedback@strongdm.com
|
8
8
|
License: apache-2.0
|
9
|
-
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v6.
|
9
|
+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v6.3.0.tar.gz
|
10
10
|
Keywords: strongDM,sdm,api,automation,security,audit,database,server,ssh,rdp
|
11
11
|
Platform: UNKNOWN
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
@@ -77,6 +77,8 @@ strongdm/roles_history_pb2.py
|
|
77
77
|
strongdm/roles_history_pb2_grpc.py
|
78
78
|
strongdm/roles_pb2.py
|
79
79
|
strongdm/roles_pb2_grpc.py
|
80
|
+
strongdm/secret_store_healths_pb2.py
|
81
|
+
strongdm/secret_store_healths_pb2_grpc.py
|
80
82
|
strongdm/secret_store_types_pb2.py
|
81
83
|
strongdm/secret_store_types_pb2_grpc.py
|
82
84
|
strongdm/secret_stores_history_pb2.py
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|