strongdm 11.8.0__zip → 11.9.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-11.8.0 → strongdm-11.9.0}/PKG-INFO +2 -2
- {strongdm-11.8.0 → strongdm-11.9.0}/setup.py +2 -2
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/client.py +7 -7
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/constants.py +20 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/drivers_pb2.py +428 -172
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/models.py +309 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/plumbing.py +150 -1
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/spec_pb2.py +4 -2
- strongdm-11.9.0/strongdm/spec_pb2_grpc.py +18 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/svc.py +83 -81
- strongdm-11.9.0/strongdm/tags_pb2_grpc.py +18 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm.egg-info/PKG-INFO +2 -2
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm.egg-info/SOURCES.txt +2 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/LICENSE +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/README.md +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/setup.cfg +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/__init__.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/access_request_events_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/access_request_events_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/access_requests_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/access_requests_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/access_requests_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/access_requests_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_attachments_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_attachments_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_attachments_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_attachments_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_grants_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_grants_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_grants_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_grants_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_permissions_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_permissions_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_resources_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_resources_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_resources_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/account_resources_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/accounts_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/accounts_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/accounts_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/accounts_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/activities_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/activities_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_approvers_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_approvers_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_steps_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_steps_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_steps_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_steps_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflows_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflows_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflows_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflows_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/control_panel_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/control_panel_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/drivers_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/errors.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/identity_aliases_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/identity_aliases_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/identity_aliases_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/identity_aliases_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/identity_sets_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/identity_sets_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/identity_sets_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/identity_sets_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/nodes_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/nodes_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/nodes_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/nodes_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/options_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/options_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/organization_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/organization_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/peering_group_nodes_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/peering_group_nodes_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/peering_group_peers_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/peering_group_peers_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/peering_group_resources_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/peering_group_resources_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/peering_groups_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/peering_groups_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/policies_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/policies_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/policies_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/policies_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/queries_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/queries_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/remote_identities_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/remote_identities_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/remote_identities_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/remote_identities_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/remote_identity_groups_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/remote_identity_groups_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/remote_identity_groups_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/remote_identity_groups_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/replays_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/replays_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/resources_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/resources_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/resources_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/resources_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/role_resources_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/role_resources_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/role_resources_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/role_resources_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/roles_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/roles_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/roles_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/roles_pb2_grpc.py +0 -0
- /strongdm-11.8.0/strongdm/secret_store_types_pb2_grpc.py → /strongdm-11.9.0/strongdm/secret_engine_policy_pb2_grpc.py +0 -0
- /strongdm-11.8.0/strongdm/spec_pb2_grpc.py → /strongdm-11.9.0/strongdm/secret_engine_types_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/secret_store_healths_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/secret_store_healths_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/secret_store_types_pb2.py +0 -0
- /strongdm-11.8.0/strongdm/tags_pb2_grpc.py → /strongdm-11.9.0/strongdm/secret_store_types_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/secret_stores_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/secret_stores_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/secret_stores_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/secret_stores_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/tags_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_approvers_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_approvers_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_approvers_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_approvers_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_assignments_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_assignments_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_assignments_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_assignments_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_roles_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_roles_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_roles_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflow_roles_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflows_history_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflows_history_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflows_pb2.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm/workflows_pb2_grpc.py +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm.egg-info/dependency_links.txt +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm.egg-info/requires.txt +0 -0
- {strongdm-11.8.0 → strongdm-11.9.0}/strongdm.egg-info/top_level.txt +0 -0
@@ -116,12 +116,12 @@ from .roles_pb2 import *
|
|
116
116
|
from .roles_pb2_grpc import *
|
117
117
|
from .roles_history_pb2 import *
|
118
118
|
from .roles_history_pb2_grpc import *
|
119
|
-
from .secret_store_healths_pb2 import *
|
120
|
-
from .secret_store_healths_pb2_grpc import *
|
121
119
|
from .secret_store_types_pb2 import *
|
122
120
|
from .secret_store_types_pb2_grpc import *
|
123
121
|
from .secret_stores_pb2 import *
|
124
122
|
from .secret_stores_pb2_grpc import *
|
123
|
+
from .secret_store_healths_pb2 import *
|
124
|
+
from .secret_store_healths_pb2_grpc import *
|
125
125
|
from .secret_stores_history_pb2 import *
|
126
126
|
from .secret_stores_history_pb2_grpc import *
|
127
127
|
from .workflow_approvers_pb2 import *
|
@@ -4253,6 +4253,8 @@ class Resources:
|
|
4253
4253
|
`strongdm.models.Citus`
|
4254
4254
|
`strongdm.models.Clustrix`
|
4255
4255
|
`strongdm.models.Cockroach`
|
4256
|
+
`strongdm.models.CouchbaseDatabase`
|
4257
|
+
`strongdm.models.CouchbaseWebUI`
|
4256
4258
|
`strongdm.models.DB2I`
|
4257
4259
|
`strongdm.models.DB2LUW`
|
4258
4260
|
`strongdm.models.DocumentDBHost`
|
@@ -4982,85 +4984,6 @@ class RolesHistory:
|
|
4982
4984
|
return generator(self, req)
|
4983
4985
|
|
4984
4986
|
|
4985
|
-
class SecretStoreHealths:
|
4986
|
-
'''
|
4987
|
-
SecretStoreHealths exposes health states for secret stores.
|
4988
|
-
See `strongdm.models.SecretStoreHealth`.
|
4989
|
-
'''
|
4990
|
-
def __init__(self, channel, client):
|
4991
|
-
self.parent = client
|
4992
|
-
self.stub = SecretStoreHealthsStub(channel)
|
4993
|
-
|
4994
|
-
def list(self, filter, *args, timeout=None):
|
4995
|
-
'''
|
4996
|
-
List reports the health status of node to secret store pairs.
|
4997
|
-
'''
|
4998
|
-
req = SecretStoreHealthListRequest()
|
4999
|
-
req.meta.CopyFrom(ListRequestMetadata())
|
5000
|
-
if self.parent.page_limit > 0:
|
5001
|
-
req.meta.limit = self.parent.page_limit
|
5002
|
-
if self.parent.snapshot_datetime is not None:
|
5003
|
-
req.meta.snapshot_at.FromDatetime(self.parent.snapshot_datetime)
|
5004
|
-
|
5005
|
-
req.filter = plumbing.quote_filter_args(filter, *args)
|
5006
|
-
|
5007
|
-
def generator(svc, req):
|
5008
|
-
tries = 0
|
5009
|
-
while True:
|
5010
|
-
try:
|
5011
|
-
plumbing_response = svc.stub.List(
|
5012
|
-
req,
|
5013
|
-
metadata=svc.parent.get_metadata(
|
5014
|
-
'SecretStoreHealths.List', req),
|
5015
|
-
timeout=timeout)
|
5016
|
-
except Exception as e:
|
5017
|
-
if self.parent.shouldRetry(tries, e):
|
5018
|
-
tries += 1
|
5019
|
-
self.parent.jitterSleep(tries)
|
5020
|
-
continue
|
5021
|
-
raise plumbing.convert_error_to_porcelain(e) from e
|
5022
|
-
tries = 0
|
5023
|
-
for plumbing_item in plumbing_response.secret_store_healths:
|
5024
|
-
yield plumbing.convert_secret_store_health_to_porcelain(
|
5025
|
-
plumbing_item)
|
5026
|
-
if plumbing_response.meta.next_cursor == '':
|
5027
|
-
break
|
5028
|
-
req.meta.cursor = plumbing_response.meta.next_cursor
|
5029
|
-
|
5030
|
-
return generator(self, req)
|
5031
|
-
|
5032
|
-
def healthcheck(self, secret_store_id, timeout=None):
|
5033
|
-
'''
|
5034
|
-
Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
|
5035
|
-
to propagate across a large network of Nodes. The call will return immediately, and the
|
5036
|
-
updated health of the Secret Store can be retrieved via List.
|
5037
|
-
'''
|
5038
|
-
req = SecretStoreHealthcheckRequest()
|
5039
|
-
|
5040
|
-
req.secret_store_id = (secret_store_id)
|
5041
|
-
tries = 0
|
5042
|
-
plumbing_response = None
|
5043
|
-
while True:
|
5044
|
-
try:
|
5045
|
-
plumbing_response = self.stub.Healthcheck(
|
5046
|
-
req,
|
5047
|
-
metadata=self.parent.get_metadata(
|
5048
|
-
'SecretStoreHealths.Healthcheck', req),
|
5049
|
-
timeout=timeout)
|
5050
|
-
except Exception as e:
|
5051
|
-
if self.parent.shouldRetry(tries, e):
|
5052
|
-
tries += 1
|
5053
|
-
self.parent.jitterSleep(tries)
|
5054
|
-
continue
|
5055
|
-
raise plumbing.convert_error_to_porcelain(e) from e
|
5056
|
-
break
|
5057
|
-
|
5058
|
-
resp = models.SecretStoreHealthcheckResponse()
|
5059
|
-
resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
|
5060
|
-
plumbing_response.rate_limit)
|
5061
|
-
return resp
|
5062
|
-
|
5063
|
-
|
5064
4987
|
class SecretStores:
|
5065
4988
|
'''
|
5066
4989
|
SecretStores are servers where resource secrets (passwords, keys) are stored.
|
@@ -5286,6 +5209,85 @@ class SnapshotSecretStores:
|
|
5286
5209
|
return self.secret_stores.list(filter, *args, timeout=timeout)
|
5287
5210
|
|
5288
5211
|
|
5212
|
+
class SecretStoreHealths:
|
5213
|
+
'''
|
5214
|
+
SecretStoreHealths exposes health states for secret stores.
|
5215
|
+
See `strongdm.models.SecretStoreHealth`.
|
5216
|
+
'''
|
5217
|
+
def __init__(self, channel, client):
|
5218
|
+
self.parent = client
|
5219
|
+
self.stub = SecretStoreHealthsStub(channel)
|
5220
|
+
|
5221
|
+
def list(self, filter, *args, timeout=None):
|
5222
|
+
'''
|
5223
|
+
List reports the health status of node to secret store pairs.
|
5224
|
+
'''
|
5225
|
+
req = SecretStoreHealthListRequest()
|
5226
|
+
req.meta.CopyFrom(ListRequestMetadata())
|
5227
|
+
if self.parent.page_limit > 0:
|
5228
|
+
req.meta.limit = self.parent.page_limit
|
5229
|
+
if self.parent.snapshot_datetime is not None:
|
5230
|
+
req.meta.snapshot_at.FromDatetime(self.parent.snapshot_datetime)
|
5231
|
+
|
5232
|
+
req.filter = plumbing.quote_filter_args(filter, *args)
|
5233
|
+
|
5234
|
+
def generator(svc, req):
|
5235
|
+
tries = 0
|
5236
|
+
while True:
|
5237
|
+
try:
|
5238
|
+
plumbing_response = svc.stub.List(
|
5239
|
+
req,
|
5240
|
+
metadata=svc.parent.get_metadata(
|
5241
|
+
'SecretStoreHealths.List', req),
|
5242
|
+
timeout=timeout)
|
5243
|
+
except Exception as e:
|
5244
|
+
if self.parent.shouldRetry(tries, e):
|
5245
|
+
tries += 1
|
5246
|
+
self.parent.jitterSleep(tries)
|
5247
|
+
continue
|
5248
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
5249
|
+
tries = 0
|
5250
|
+
for plumbing_item in plumbing_response.secret_store_healths:
|
5251
|
+
yield plumbing.convert_secret_store_health_to_porcelain(
|
5252
|
+
plumbing_item)
|
5253
|
+
if plumbing_response.meta.next_cursor == '':
|
5254
|
+
break
|
5255
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
5256
|
+
|
5257
|
+
return generator(self, req)
|
5258
|
+
|
5259
|
+
def healthcheck(self, secret_store_id, timeout=None):
|
5260
|
+
'''
|
5261
|
+
Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
|
5262
|
+
to propagate across a large network of Nodes. The call will return immediately, and the
|
5263
|
+
updated health of the Secret Store can be retrieved via List.
|
5264
|
+
'''
|
5265
|
+
req = SecretStoreHealthcheckRequest()
|
5266
|
+
|
5267
|
+
req.secret_store_id = (secret_store_id)
|
5268
|
+
tries = 0
|
5269
|
+
plumbing_response = None
|
5270
|
+
while True:
|
5271
|
+
try:
|
5272
|
+
plumbing_response = self.stub.Healthcheck(
|
5273
|
+
req,
|
5274
|
+
metadata=self.parent.get_metadata(
|
5275
|
+
'SecretStoreHealths.Healthcheck', req),
|
5276
|
+
timeout=timeout)
|
5277
|
+
except Exception as e:
|
5278
|
+
if self.parent.shouldRetry(tries, e):
|
5279
|
+
tries += 1
|
5280
|
+
self.parent.jitterSleep(tries)
|
5281
|
+
continue
|
5282
|
+
raise plumbing.convert_error_to_porcelain(e) from e
|
5283
|
+
break
|
5284
|
+
|
5285
|
+
resp = models.SecretStoreHealthcheckResponse()
|
5286
|
+
resp.rate_limit = plumbing.convert_rate_limit_metadata_to_porcelain(
|
5287
|
+
plumbing_response.rate_limit)
|
5288
|
+
return resp
|
5289
|
+
|
5290
|
+
|
5289
5291
|
class SecretStoresHistory:
|
5290
5292
|
'''
|
5291
5293
|
SecretStoresHistory records all changes to the state of a SecretStore.
|
@@ -0,0 +1,18 @@
|
|
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
|
+
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: strongdm
|
3
|
-
Version: 11.
|
3
|
+
Version: 11.9.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/v11.
|
9
|
+
Download-URL: https://github.com/strongdm/strongdm-sdk-python/archive/v11.9.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
|
@@ -101,6 +101,8 @@ strongdm/roles_history_pb2.py
|
|
101
101
|
strongdm/roles_history_pb2_grpc.py
|
102
102
|
strongdm/roles_pb2.py
|
103
103
|
strongdm/roles_pb2_grpc.py
|
104
|
+
strongdm/secret_engine_policy_pb2_grpc.py
|
105
|
+
strongdm/secret_engine_types_pb2_grpc.py
|
104
106
|
strongdm/secret_store_healths_pb2.py
|
105
107
|
strongdm/secret_store_healths_pb2_grpc.py
|
106
108
|
strongdm/secret_store_types_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
|
{strongdm-11.8.0 → strongdm-11.9.0}/strongdm/approval_workflow_approvers_history_pb2_grpc.py
RENAMED
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
|