strongdm 15.27.0 → 15.28.0
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.
- checksums.yaml +4 -4
- data/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -3
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/{pack-2f001f36096dc7353c62b2636fea462250f028ca.idx → pack-57422f9648cd00a4b26afeacb8a0ba4bd5eb4b5b.idx} +0 -0
- data/.git/objects/pack/{pack-2f001f36096dc7353c62b2636fea462250f028ca.pack → pack-57422f9648cd00a4b26afeacb8a0ba4bd5eb4b5b.pack} +0 -0
- data/.git/packed-refs +3 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/drivers_pb.rb +2 -0
- data/lib/grpc/nodes_pb.rb +14 -0
- data/lib/grpc/nodes_services_pb.rb +8 -3
- data/lib/grpc/options_pb.rb +1 -0
- data/lib/grpc/plumbing.rb +44 -0
- data/lib/models/porcelain.rb +40 -0
- data/lib/strongdm.rb +11 -7
- data/lib/svc.rb +41 -3
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8f1147223e088e14c3dd89ba96393938a1711c229baa9c7a0186469bfd2953bf
|
|
4
|
+
data.tar.gz: ddd4c1052c4a212ad31b7694595ab1bc824b622f0d54587cd286b3087ce3a532
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4a782248d81c18bd016d1aba9f7534fa46f289ddab40e2a7516d723851ca112060d5810cad794efd6d67a3497a9f84af8807c4d16f0d313f7415d6589ef9071c
|
|
7
|
+
data.tar.gz: 787d75924565bf28110d6e22ba8c75c7a8027f373541182e5e3edd6b7bfacc18ceef1a9fdfb10776d90a2008c408bea157120c7b364a14ca8d1b8d509bc6b425
|
data/.git/ORIG_HEAD
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
25679d89a3cf0c95ce09a35f00dd9bb6425e0946
|
data/.git/index
CHANGED
|
Binary file
|
data/.git/logs/HEAD
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 25679d89a3cf0c95ce09a35f00dd9bb6425e0946 root <root@9c364c0f1ac7.(none)> 1762804882 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
25679d89a3cf0c95ce09a35f00dd9bb6425e0946 25679d89a3cf0c95ce09a35f00dd9bb6425e0946 root <root@9c364c0f1ac7.(none)> 1762804882 +0000 checkout: moving from master to master
|
|
3
|
+
25679d89a3cf0c95ce09a35f00dd9bb6425e0946 a19a5670f1583260058d10160faeee46ef5c6346 root <root@9c364c0f1ac7.(none)> 1762804882 +0000 merge origin/development: Fast-forward
|
data/.git/logs/refs/heads/master
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 25679d89a3cf0c95ce09a35f00dd9bb6425e0946 root <root@9c364c0f1ac7.(none)> 1762804882 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
25679d89a3cf0c95ce09a35f00dd9bb6425e0946 a19a5670f1583260058d10160faeee46ef5c6346 root <root@9c364c0f1ac7.(none)> 1762804882 +0000 merge origin/development: Fast-forward
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
1
|
+
0000000000000000000000000000000000000000 25679d89a3cf0c95ce09a35f00dd9bb6425e0946 root <root@9c364c0f1ac7.(none)> 1762804882 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
Binary file
|
|
Binary file
|
data/.git/packed-refs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pack-refs with: peeled fully-peeled sorted
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
a19a5670f1583260058d10160faeee46ef5c6346 refs/remotes/origin/development
|
|
3
|
+
25679d89a3cf0c95ce09a35f00dd9bb6425e0946 refs/remotes/origin/master
|
|
4
4
|
2e4fe8087177ddea9b3991ca499f758384839c89 refs/tags/untagged-84fd83a4484c785cce63
|
|
5
5
|
04f604866214fab4d5663b5171a3e596331577bd refs/tags/v0.9.4
|
|
6
6
|
6f9a7b75b345c65fb554884907b7060680c807b7 refs/tags/v0.9.5
|
|
@@ -117,6 +117,7 @@ dbc1e295841d51376c44f987d9eecf5c8427c478 refs/tags/v15.22.0
|
|
|
117
117
|
1fb12400f09101921542776d3887b93103dd9c5f refs/tags/v15.23.0
|
|
118
118
|
a4fd017725511cf32effc6426ca74b714644d37d refs/tags/v15.25.0
|
|
119
119
|
9a13de3384bb6d3b929209e8c93515c9a146bfc0 refs/tags/v15.26.0
|
|
120
|
+
25679d89a3cf0c95ce09a35f00dd9bb6425e0946 refs/tags/v15.27.0
|
|
120
121
|
cf3b15b82cb0c4229609c07c870c6cb4fd38ef75 refs/tags/v15.4.0
|
|
121
122
|
0be2c5e7f7a90c49077548cb3a9bce234219b9f0 refs/tags/v15.5.0
|
|
122
123
|
4b9cd43c5dda3f369b82b6a56132a5470ff9ff53 refs/tags/v15.6.0
|
data/.git/refs/heads/master
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
a19a5670f1583260058d10160faeee46ef5c6346
|
data/lib/grpc/drivers_pb.rb
CHANGED
|
@@ -1700,6 +1700,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
1700
1700
|
optional :subdomain, :string, 32775
|
|
1701
1701
|
optional :downgrade_nla_connections, :bool, 6
|
|
1702
1702
|
optional :hostname, :string, 1
|
|
1703
|
+
optional :identity_alias_healthcheck_username, :string, 12
|
|
1704
|
+
optional :identity_set_id, :string, 11
|
|
1703
1705
|
optional :lock_required, :bool, 10
|
|
1704
1706
|
optional :password, :string, 3
|
|
1705
1707
|
optional :port, :int32, 5
|
data/lib/grpc/nodes_pb.rb
CHANGED
|
@@ -70,6 +70,18 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
70
70
|
repeated :nodes, :message, 2, "v1.Node"
|
|
71
71
|
optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
|
|
72
72
|
end
|
|
73
|
+
add_message "v1.NodeTCPProbeRequest" do
|
|
74
|
+
optional :meta, :message, 1, "v1.CreateRequestMetadata"
|
|
75
|
+
optional :node_id, :string, 2
|
|
76
|
+
optional :host, :string, 3
|
|
77
|
+
optional :port, :int32, 4
|
|
78
|
+
end
|
|
79
|
+
add_message "v1.NodeTCPProbeResponse" do
|
|
80
|
+
optional :meta, :message, 1, "v1.CreateResponseMetadata"
|
|
81
|
+
optional :succeeded, :bool, 2
|
|
82
|
+
optional :error, :string, 3
|
|
83
|
+
optional :rate_limit, :message, 4, "v1.RateLimitMetadata"
|
|
84
|
+
end
|
|
73
85
|
add_message "v1.Node" do
|
|
74
86
|
oneof :node do
|
|
75
87
|
optional :relay, :message, 1, "v1.Relay"
|
|
@@ -139,6 +151,8 @@ module V1
|
|
|
139
151
|
NodeDeleteResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.NodeDeleteResponse").msgclass
|
|
140
152
|
NodeListRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.NodeListRequest").msgclass
|
|
141
153
|
NodeListResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.NodeListResponse").msgclass
|
|
154
|
+
NodeTCPProbeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.NodeTCPProbeRequest").msgclass
|
|
155
|
+
NodeTCPProbeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.NodeTCPProbeResponse").msgclass
|
|
142
156
|
Node = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Node").msgclass
|
|
143
157
|
Relay = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Relay").msgclass
|
|
144
158
|
Gateway = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Gateway").msgclass
|
|
@@ -20,9 +20,11 @@ require "nodes_pb"
|
|
|
20
20
|
|
|
21
21
|
module V1
|
|
22
22
|
module Nodes
|
|
23
|
-
# Nodes make up the
|
|
24
|
-
#
|
|
25
|
-
#
|
|
23
|
+
# Nodes make up the StrongDM network, and allow your users to connect securely to your resources.
|
|
24
|
+
# There are three types of nodes:
|
|
25
|
+
# 1. **Relay:** creates connectivity to your datasources, while maintaining the egress-only nature of your firewall
|
|
26
|
+
# 2. **Gateway:** a relay that also listens for connections from StrongDM clients
|
|
27
|
+
# 3. **Proxy Cluster:** a cluster of workers that together mediate access from clients to resources
|
|
26
28
|
class Service
|
|
27
29
|
include ::GRPC::GenericService
|
|
28
30
|
|
|
@@ -40,6 +42,9 @@ module V1
|
|
|
40
42
|
rpc :Delete, ::V1::NodeDeleteRequest, ::V1::NodeDeleteResponse
|
|
41
43
|
# List gets a list of Nodes matching a given set of criteria.
|
|
42
44
|
rpc :List, ::V1::NodeListRequest, ::V1::NodeListResponse
|
|
45
|
+
# TCPProbe instructs a Node to connect to an address via TCP and report the
|
|
46
|
+
# result.
|
|
47
|
+
rpc :TCPProbe, ::V1::NodeTCPProbeRequest, ::V1::NodeTCPProbeResponse
|
|
43
48
|
end
|
|
44
49
|
|
|
45
50
|
Stub = Service.rpc_stub_class
|
data/lib/grpc/options_pb.rb
CHANGED
|
@@ -36,6 +36,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
36
36
|
optional :url, :string, 1941301
|
|
37
37
|
optional :deprecation_date, :string, 1941302
|
|
38
38
|
repeated :targets, :string, 1941401
|
|
39
|
+
optional :custom, :message, 1941305, "v1.CustomOptions"
|
|
39
40
|
end
|
|
40
41
|
add_message "v1.MessageOptions" do
|
|
41
42
|
optional :porcelain, :bool, 1941301
|
data/lib/grpc/plumbing.rb
CHANGED
|
@@ -11585,6 +11585,46 @@ module SDM
|
|
|
11585
11585
|
end
|
|
11586
11586
|
items
|
|
11587
11587
|
end
|
|
11588
|
+
def self.convert_node_tcp_probe_response_to_porcelain(plumbing)
|
|
11589
|
+
if plumbing == nil
|
|
11590
|
+
return nil
|
|
11591
|
+
end
|
|
11592
|
+
porcelain = NodeTCPProbeResponse.new()
|
|
11593
|
+
porcelain.error = (plumbing.error)
|
|
11594
|
+
porcelain.meta = convert_create_response_metadata_to_porcelain(plumbing.meta)
|
|
11595
|
+
porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(plumbing.rate_limit)
|
|
11596
|
+
porcelain.succeeded = (plumbing.succeeded)
|
|
11597
|
+
porcelain
|
|
11598
|
+
end
|
|
11599
|
+
|
|
11600
|
+
def self.convert_node_tcp_probe_response_to_plumbing(porcelain)
|
|
11601
|
+
if porcelain == nil
|
|
11602
|
+
return nil
|
|
11603
|
+
end
|
|
11604
|
+
plumbing = V1::NodeTCPProbeResponse.new()
|
|
11605
|
+
plumbing.error = (porcelain.error)
|
|
11606
|
+
plumbing.meta = convert_create_response_metadata_to_plumbing(porcelain.meta)
|
|
11607
|
+
plumbing.rate_limit = convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit)
|
|
11608
|
+
plumbing.succeeded = (porcelain.succeeded)
|
|
11609
|
+
plumbing
|
|
11610
|
+
end
|
|
11611
|
+
def self.convert_repeated_node_tcp_probe_response_to_plumbing(porcelains)
|
|
11612
|
+
items = Array.new
|
|
11613
|
+
porcelains.each do |porcelain|
|
|
11614
|
+
plumbing = convert_node_tcp_probe_response_to_plumbing(porcelain)
|
|
11615
|
+
items.append(plumbing)
|
|
11616
|
+
end
|
|
11617
|
+
items
|
|
11618
|
+
end
|
|
11619
|
+
|
|
11620
|
+
def self.convert_repeated_node_tcp_probe_response_to_porcelain(plumbings)
|
|
11621
|
+
items = Array.new
|
|
11622
|
+
plumbings.each do |plumbing|
|
|
11623
|
+
porcelain = convert_node_tcp_probe_response_to_porcelain(plumbing)
|
|
11624
|
+
items.append(porcelain)
|
|
11625
|
+
end
|
|
11626
|
+
items
|
|
11627
|
+
end
|
|
11588
11628
|
def self.convert_node_update_response_to_porcelain(plumbing)
|
|
11589
11629
|
if plumbing == nil
|
|
11590
11630
|
return nil
|
|
@@ -13292,6 +13332,8 @@ module SDM
|
|
|
13292
13332
|
porcelain.healthy = (plumbing.healthy)
|
|
13293
13333
|
porcelain.hostname = (plumbing.hostname)
|
|
13294
13334
|
porcelain.id = (plumbing.id)
|
|
13335
|
+
porcelain.identity_alias_healthcheck_username = (plumbing.identity_alias_healthcheck_username)
|
|
13336
|
+
porcelain.identity_set_id = (plumbing.identity_set_id)
|
|
13295
13337
|
porcelain.lock_required = (plumbing.lock_required)
|
|
13296
13338
|
porcelain.name = (plumbing.name)
|
|
13297
13339
|
porcelain.password = (plumbing.password)
|
|
@@ -13316,6 +13358,8 @@ module SDM
|
|
|
13316
13358
|
plumbing.healthy = (porcelain.healthy)
|
|
13317
13359
|
plumbing.hostname = (porcelain.hostname)
|
|
13318
13360
|
plumbing.id = (porcelain.id)
|
|
13361
|
+
plumbing.identity_alias_healthcheck_username = (porcelain.identity_alias_healthcheck_username)
|
|
13362
|
+
plumbing.identity_set_id = (porcelain.identity_set_id)
|
|
13319
13363
|
plumbing.lock_required = (porcelain.lock_required)
|
|
13320
13364
|
plumbing.name = (porcelain.name)
|
|
13321
13365
|
plumbing.password = (porcelain.password)
|
data/lib/models/porcelain.rb
CHANGED
|
@@ -11175,6 +11175,38 @@ module SDM
|
|
|
11175
11175
|
end
|
|
11176
11176
|
end
|
|
11177
11177
|
|
|
11178
|
+
# NodeTCPProbeResponse reports the result of a TCP probe.
|
|
11179
|
+
class NodeTCPProbeResponse
|
|
11180
|
+
# The connection error reported by the node, or the empty string if the probe succeeded.
|
|
11181
|
+
attr_accessor :error
|
|
11182
|
+
# Reserved for future use.
|
|
11183
|
+
attr_accessor :meta
|
|
11184
|
+
# Rate limit information.
|
|
11185
|
+
attr_accessor :rate_limit
|
|
11186
|
+
# True if the node was able to connect to the target address.
|
|
11187
|
+
attr_accessor :succeeded
|
|
11188
|
+
|
|
11189
|
+
def initialize(
|
|
11190
|
+
error: nil,
|
|
11191
|
+
meta: nil,
|
|
11192
|
+
rate_limit: nil,
|
|
11193
|
+
succeeded: nil
|
|
11194
|
+
)
|
|
11195
|
+
@error = error == nil ? "" : error
|
|
11196
|
+
@meta = meta == nil ? nil : meta
|
|
11197
|
+
@rate_limit = rate_limit == nil ? nil : rate_limit
|
|
11198
|
+
@succeeded = succeeded == nil ? false : succeeded
|
|
11199
|
+
end
|
|
11200
|
+
|
|
11201
|
+
def to_json(options = {})
|
|
11202
|
+
hash = {}
|
|
11203
|
+
self.instance_variables.each do |var|
|
|
11204
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
11205
|
+
end
|
|
11206
|
+
hash.to_json
|
|
11207
|
+
end
|
|
11208
|
+
end
|
|
11209
|
+
|
|
11178
11210
|
# NodeUpdateResponse returns the fields of a Node after it has been updated by
|
|
11179
11211
|
# a NodeUpdateRequest.
|
|
11180
11212
|
class NodeUpdateResponse
|
|
@@ -12802,6 +12834,10 @@ module SDM
|
|
|
12802
12834
|
attr_accessor :hostname
|
|
12803
12835
|
# Unique identifier of the Resource.
|
|
12804
12836
|
attr_accessor :id
|
|
12837
|
+
# The username to use for healthchecks, when clients otherwise connect with their own identity alias username.
|
|
12838
|
+
attr_accessor :identity_alias_healthcheck_username
|
|
12839
|
+
# if provided use identity_set to map username to secret store path
|
|
12840
|
+
attr_accessor :identity_set_id
|
|
12805
12841
|
# When set, require a resource lock to access the resource to ensure it can only be used by one user at a time.
|
|
12806
12842
|
attr_accessor :lock_required
|
|
12807
12843
|
# Unique human-readable name of the Resource.
|
|
@@ -12830,6 +12866,8 @@ module SDM
|
|
|
12830
12866
|
healthy: nil,
|
|
12831
12867
|
hostname: nil,
|
|
12832
12868
|
id: nil,
|
|
12869
|
+
identity_alias_healthcheck_username: nil,
|
|
12870
|
+
identity_set_id: nil,
|
|
12833
12871
|
lock_required: nil,
|
|
12834
12872
|
name: nil,
|
|
12835
12873
|
password: nil,
|
|
@@ -12847,6 +12885,8 @@ module SDM
|
|
|
12847
12885
|
@healthy = healthy == nil ? false : healthy
|
|
12848
12886
|
@hostname = hostname == nil ? "" : hostname
|
|
12849
12887
|
@id = id == nil ? "" : id
|
|
12888
|
+
@identity_alias_healthcheck_username = identity_alias_healthcheck_username == nil ? "" : identity_alias_healthcheck_username
|
|
12889
|
+
@identity_set_id = identity_set_id == nil ? "" : identity_set_id
|
|
12850
12890
|
@lock_required = lock_required == nil ? false : lock_required
|
|
12851
12891
|
@name = name == nil ? "" : name
|
|
12852
12892
|
@password = password == nil ? "" : password
|
data/lib/strongdm.rb
CHANGED
|
@@ -30,7 +30,7 @@ module SDM #:nodoc:
|
|
|
30
30
|
DEFAULT_RETRY_FACTOR = 1.6
|
|
31
31
|
DEFAULT_RETRY_JITTER = 0.2
|
|
32
32
|
API_VERSION = "2025-04-14"
|
|
33
|
-
USER_AGENT = "strongdm-sdk-ruby/15.
|
|
33
|
+
USER_AGENT = "strongdm-sdk-ruby/15.28.0"
|
|
34
34
|
private_constant :DEFAULT_BASE_RETRY_DELAY, :DEFAULT_MAX_RETRY_DELAY, :DEFAULT_RETRY_FACTOR, :DEFAULT_RETRY_JITTER, :API_VERSION, :USER_AGENT
|
|
35
35
|
|
|
36
36
|
# Creates a new strongDM API client.
|
|
@@ -380,9 +380,11 @@ module SDM #:nodoc:
|
|
|
380
380
|
#
|
|
381
381
|
# See {ManagedSecrets}.
|
|
382
382
|
attr_reader :managed_secrets
|
|
383
|
-
# Nodes make up the
|
|
384
|
-
#
|
|
385
|
-
#
|
|
383
|
+
# Nodes make up the StrongDM network, and allow your users to connect securely to your resources.
|
|
384
|
+
# There are three types of nodes:
|
|
385
|
+
# 1. **Relay:** creates connectivity to your datasources, while maintaining the egress-only nature of your firewall
|
|
386
|
+
# 2. **Gateway:** a relay that also listens for connections from StrongDM clients
|
|
387
|
+
# 3. **Proxy Cluster:** a cluster of workers that together mediate access from clients to resources
|
|
386
388
|
#
|
|
387
389
|
# See {Nodes}.
|
|
388
390
|
attr_reader :nodes
|
|
@@ -694,9 +696,11 @@ module SDM #:nodoc:
|
|
|
694
696
|
#
|
|
695
697
|
# See {SnapshotIdentitySets}.
|
|
696
698
|
attr_reader :identity_sets
|
|
697
|
-
# Nodes make up the
|
|
698
|
-
#
|
|
699
|
-
#
|
|
699
|
+
# Nodes make up the StrongDM network, and allow your users to connect securely to your resources.
|
|
700
|
+
# There are three types of nodes:
|
|
701
|
+
# 1. **Relay:** creates connectivity to your datasources, while maintaining the egress-only nature of your firewall
|
|
702
|
+
# 2. **Gateway:** a relay that also listens for connections from StrongDM clients
|
|
703
|
+
# 3. **Proxy Cluster:** a cluster of workers that together mediate access from clients to resources
|
|
700
704
|
#
|
|
701
705
|
# See {SnapshotNodes}.
|
|
702
706
|
attr_reader :nodes
|
data/lib/svc.rb
CHANGED
|
@@ -4061,9 +4061,11 @@ module SDM #:nodoc:
|
|
|
4061
4061
|
end
|
|
4062
4062
|
end
|
|
4063
4063
|
|
|
4064
|
-
# Nodes make up the
|
|
4065
|
-
#
|
|
4066
|
-
#
|
|
4064
|
+
# Nodes make up the StrongDM network, and allow your users to connect securely to your resources.
|
|
4065
|
+
# There are three types of nodes:
|
|
4066
|
+
# 1. **Relay:** creates connectivity to your datasources, while maintaining the egress-only nature of your firewall
|
|
4067
|
+
# 2. **Gateway:** a relay that also listens for connections from StrongDM clients
|
|
4068
|
+
# 3. **Proxy Cluster:** a cluster of workers that together mediate access from clients to resources
|
|
4067
4069
|
#
|
|
4068
4070
|
# See:
|
|
4069
4071
|
# {Gateway}
|
|
@@ -4243,6 +4245,42 @@ module SDM #:nodoc:
|
|
|
4243
4245
|
}
|
|
4244
4246
|
resp
|
|
4245
4247
|
end
|
|
4248
|
+
|
|
4249
|
+
# TCPProbe instructs a Node to connect to an address via TCP and report the
|
|
4250
|
+
# result.
|
|
4251
|
+
def tcp_probe(
|
|
4252
|
+
node_id,
|
|
4253
|
+
host,
|
|
4254
|
+
port,
|
|
4255
|
+
deadline: nil
|
|
4256
|
+
)
|
|
4257
|
+
req = V1::NodeTCPProbeRequest.new()
|
|
4258
|
+
|
|
4259
|
+
req.node_id = (node_id)
|
|
4260
|
+
req.host = (host)
|
|
4261
|
+
req.port = (port)
|
|
4262
|
+
tries = 0
|
|
4263
|
+
plumbing_response = nil
|
|
4264
|
+
loop do
|
|
4265
|
+
begin
|
|
4266
|
+
plumbing_response = @stub.tcp_probe(req, metadata: @parent.get_metadata("Nodes.TCPProbe", req), deadline: deadline)
|
|
4267
|
+
rescue => exception
|
|
4268
|
+
if (@parent.shouldRetry(tries, exception, deadline))
|
|
4269
|
+
tries + +sleep(@parent.exponentialBackoff(tries, deadline))
|
|
4270
|
+
next
|
|
4271
|
+
end
|
|
4272
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
4273
|
+
end
|
|
4274
|
+
break
|
|
4275
|
+
end
|
|
4276
|
+
|
|
4277
|
+
resp = NodeTCPProbeResponse.new()
|
|
4278
|
+
resp.error = (plumbing_response.error)
|
|
4279
|
+
resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
|
|
4280
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
|
4281
|
+
resp.succeeded = (plumbing_response.succeeded)
|
|
4282
|
+
resp
|
|
4283
|
+
end
|
|
4246
4284
|
end
|
|
4247
4285
|
|
|
4248
4286
|
# SnapshotNodes exposes the read only methods of the Nodes
|
data/lib/version
CHANGED
data/lib/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: strongdm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 15.
|
|
4
|
+
version: 15.28.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- strongDM Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-10
|
|
11
|
+
date: 2025-11-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: grpc
|
|
@@ -81,8 +81,8 @@ files:
|
|
|
81
81
|
- "./.git/logs/HEAD"
|
|
82
82
|
- "./.git/logs/refs/heads/master"
|
|
83
83
|
- "./.git/logs/refs/remotes/origin/HEAD"
|
|
84
|
-
- "./.git/objects/pack/pack-
|
|
85
|
-
- "./.git/objects/pack/pack-
|
|
84
|
+
- "./.git/objects/pack/pack-57422f9648cd00a4b26afeacb8a0ba4bd5eb4b5b.idx"
|
|
85
|
+
- "./.git/objects/pack/pack-57422f9648cd00a4b26afeacb8a0ba4bd5eb4b5b.pack"
|
|
86
86
|
- "./.git/packed-refs"
|
|
87
87
|
- "./.git/refs/heads/master"
|
|
88
88
|
- "./.git/refs/remotes/origin/HEAD"
|