zyre 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Authentication.md +30 -0
- data/History.md +7 -0
- data/README.md +1 -1
- data/ext/zyre_ext/cert.c +504 -0
- data/ext/zyre_ext/event.c +17 -9
- data/ext/zyre_ext/extconf.rb +5 -0
- data/ext/zyre_ext/node.c +261 -22
- data/ext/zyre_ext/poller.c +6 -7
- data/ext/zyre_ext/zyre_ext.c +43 -1
- data/ext/zyre_ext/zyre_ext.h +19 -2
- data/lib/zyre.rb +38 -13
- data/lib/zyre/cert.rb +75 -0
- data/lib/zyre/event.rb +1 -0
- data/lib/zyre/event/stop.rb +5 -0
- data/lib/zyre/testing.rb +24 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/zyre/cert_spec.rb +218 -0
- data/spec/zyre/node_spec.rb +58 -0
- data/spec/zyre/testing_spec.rb +36 -0
- data/spec/zyre_spec.rb +12 -0
- metadata +21 -17
- metadata.gz.sig +0 -0
data/spec/zyre/node_spec.rb
CHANGED
@@ -481,5 +481,63 @@ RSpec.describe( Zyre::Node ) do
|
|
481
481
|
end
|
482
482
|
|
483
483
|
|
484
|
+
context "draft APIs", :draft_api do
|
485
|
+
|
486
|
+
it "can specify a port for the ROUTER socket" do
|
487
|
+
node = described_class.new
|
488
|
+
|
489
|
+
expect {
|
490
|
+
node.beacon_peer_port = 16181
|
491
|
+
}.to_not raise_error()
|
492
|
+
end
|
493
|
+
|
494
|
+
|
495
|
+
it "can specify that a node should try to assume leadership of a particular group" do
|
496
|
+
node1 = started_node( 'node1' ) do |node|
|
497
|
+
# node.verbose!
|
498
|
+
node.set_contest_in_group( "GROUP_1" )
|
499
|
+
node.join( 'GROUP_1' )
|
500
|
+
node.join( 'GROUP_2' )
|
501
|
+
node.join( 'GROUP_3' )
|
502
|
+
end
|
503
|
+
|
504
|
+
node2 = started_node( 'node2' ) do |node|
|
505
|
+
# node.verbose!
|
506
|
+
node.set_contest_in_group( 'GROUP_1' )
|
507
|
+
node.set_contest_in_group( 'GROUP_2' )
|
508
|
+
node.join( 'GROUP_1' )
|
509
|
+
node.join( 'GROUP_2' )
|
510
|
+
node.join( 'GROUP_3' )
|
511
|
+
end
|
512
|
+
|
513
|
+
poller = Zyre::Poller.new( node1, node2 )
|
514
|
+
|
515
|
+
leaders = {}
|
516
|
+
leadership_message_count = 0
|
517
|
+
while ( node = poller.wait(0.5) )
|
518
|
+
event = node.recv
|
519
|
+
|
520
|
+
if event.type == :LEADER
|
521
|
+
leadership_message_count += 1
|
522
|
+
leaders[ event.group ] = event.peer_uuid
|
523
|
+
end
|
524
|
+
end
|
525
|
+
|
526
|
+
expect( leadership_message_count ).to eq( 4 )
|
527
|
+
expect( leaders.keys ).to contain_exactly( 'GROUP_1', 'GROUP_2' )
|
528
|
+
expect( leaders['GROUP_1'] ).to eq( node1.uuid ).or( eq node2.uuid )
|
529
|
+
expect( leaders['GROUP_2'] ).to eq( node2.uuid )
|
530
|
+
end
|
531
|
+
|
532
|
+
|
533
|
+
it "supports CURVE authentication"
|
534
|
+
|
535
|
+
it "supports advertised_endpoint="
|
536
|
+
it "supports gossip_connect_curve"
|
537
|
+
it "supports gossip_unpublish"
|
538
|
+
it "supports require_peer"
|
539
|
+
|
540
|
+
end
|
541
|
+
|
484
542
|
end
|
485
543
|
|
data/spec/zyre/testing_spec.rb
CHANGED
@@ -266,6 +266,42 @@ RSpec.describe( Zyre::Testing ) do
|
|
266
266
|
end
|
267
267
|
|
268
268
|
|
269
|
+
it "can create a valid LEADER event" do
|
270
|
+
event = factory.leader
|
271
|
+
|
272
|
+
expect( event ).to be_a( Zyre::Event::Leader )
|
273
|
+
expect( event.peer_uuid ).to eq( factory.peer_uuid )
|
274
|
+
expect( event.peer_name ).to eq( 'lancer-6' )
|
275
|
+
expect( event.headers ).to be_empty
|
276
|
+
expect( event.msg ).to be_nil
|
277
|
+
expect( event.group ).to eq( 'default' )
|
278
|
+
end
|
279
|
+
|
280
|
+
|
281
|
+
it "can create a valid LEAVE event with overridden config" do
|
282
|
+
event = factory.leader( group: 'control' )
|
283
|
+
|
284
|
+
expect( event ).to be_a( Zyre::Event::Leader )
|
285
|
+
expect( event.peer_uuid ).to eq( factory.peer_uuid )
|
286
|
+
expect( event.peer_name ).to eq( 'lancer-6' )
|
287
|
+
expect( event.headers ).to be_empty
|
288
|
+
expect( event.msg ).to be_nil
|
289
|
+
expect( event.group ).to eq( 'control' )
|
290
|
+
end
|
291
|
+
|
292
|
+
|
293
|
+
it "can create a valid STOP event" do
|
294
|
+
event = factory.stop
|
295
|
+
|
296
|
+
expect( event ).to be_a( Zyre::Event::Stop )
|
297
|
+
expect( event.peer_uuid ).to eq( factory.peer_uuid )
|
298
|
+
expect( event.peer_name ).to eq( 'lancer-6' )
|
299
|
+
expect( event.headers ).to be_empty
|
300
|
+
expect( event.msg ).to be_nil
|
301
|
+
expect( event.group ).to be_nil
|
302
|
+
end
|
303
|
+
|
304
|
+
|
269
305
|
it "can create a valid EXIT event" do
|
270
306
|
event = factory.exit
|
271
307
|
|
data/spec/zyre_spec.rb
CHANGED
@@ -51,5 +51,17 @@ RSpec.describe Zyre do
|
|
51
51
|
expect( result['disposition'].encoding ).to eq( Encoding::US_ASCII )
|
52
52
|
end
|
53
53
|
|
54
|
+
|
55
|
+
it "can disable the CZMQ TERM/INT signal handler" do
|
56
|
+
expect {
|
57
|
+
described_class.disable_zsys_handler
|
58
|
+
}.to_not raise_error()
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
it "knows whether or not it's been built with draft APIs" do
|
63
|
+
expect( described_class.has_draft_apis? ).to eq( true ).or( eq false )
|
64
|
+
end
|
65
|
+
|
54
66
|
end
|
55
67
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zyre
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -10,9 +10,9 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
MIID+
|
14
|
-
|
15
|
-
|
13
|
+
MIID+DCCAmCgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
|
14
|
+
REM9RmFlcmllTVVEL0RDPW9yZzAeFw0yMDEyMjQyMDU1MjlaFw0yMTEyMjQyMDU1
|
15
|
+
MjlaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
|
16
16
|
hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
|
17
17
|
L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
|
18
18
|
M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
|
@@ -23,17 +23,17 @@ cert_chain:
|
|
23
23
|
ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
|
24
24
|
N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYD
|
25
25
|
VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DANBgkqhkiG
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
26
|
+
9w0BAQsFAAOCAYEAMYegZanJi8zq7QKPT7wqXefX4C88I5JWeBHR3PvvWK0CwyMV
|
27
|
+
peyiu5I13w/lYX+HUZjE4qsSpJMJFXWl4WZCOo+AMprOcf0PxfuJpxCej5D4tavf
|
28
|
+
vRfhahSw7XJrcZih/3J+/UgoH7R05MJ+8LTcy3HGrB3a0vTafjm8OY7Xpa0LJDoN
|
29
|
+
JDqxK321VIHyTibbKeA1hWSE6ljlQDvFbTqiCj3Ulp1jTv3TOlvRl8fqcfhxUJI0
|
30
|
+
+5Q82jJODjEN+GaWs0V+NlrbU94cXwS2PH5dXogftB5YYA5Ex8A0ikZ73xns4Hdo
|
31
|
+
XxdLdd92F5ovxA23j/rKe/IDwqr6FpDkU3nPXH/Qp0TVGv9zZnVJc/Z6ChkuWj8z
|
32
|
+
pW7JAyyiiHZgKKDReDrA2LA7Zs3o/7KA6UtUH0FHf8LYhcK+pfHk6RtjRe65ffw+
|
33
|
+
MCh97sQ/Z/MOusb5+QddBmB+k8EicXyGNl4b5L4XpL7fIQu+Y96TB3JEJlShxFD9
|
34
|
+
k9FjI4d9EP54gS/4
|
35
35
|
-----END CERTIFICATE-----
|
36
|
-
date:
|
36
|
+
date: 2021-02-19 00:00:00.000000000 Z
|
37
37
|
dependencies:
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: loggability
|
@@ -41,14 +41,14 @@ dependencies:
|
|
41
41
|
requirements:
|
42
42
|
- - "~>"
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: '0.
|
44
|
+
version: '0.18'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
47
|
version_requirements: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
49
|
- - "~>"
|
50
50
|
- !ruby/object:Gem::Version
|
51
|
-
version: '0.
|
51
|
+
version: '0.18'
|
52
52
|
- !ruby/object:Gem::Dependency
|
53
53
|
name: rake-deveiate
|
54
54
|
requirement: !ruby/object:Gem::Requirement
|
@@ -163,9 +163,11 @@ extensions:
|
|
163
163
|
- ext/zyre_ext/extconf.rb
|
164
164
|
extra_rdoc_files: []
|
165
165
|
files:
|
166
|
+
- Authentication.md
|
166
167
|
- History.md
|
167
168
|
- LICENSE.txt
|
168
169
|
- README.md
|
170
|
+
- ext/zyre_ext/cert.c
|
169
171
|
- ext/zyre_ext/event.c
|
170
172
|
- ext/zyre_ext/extconf.rb
|
171
173
|
- ext/zyre_ext/node.c
|
@@ -174,6 +176,7 @@ files:
|
|
174
176
|
- ext/zyre_ext/zyre_ext.h
|
175
177
|
- lib/observability/instrumentation/zyre.rb
|
176
178
|
- lib/zyre.rb
|
179
|
+
- lib/zyre/cert.rb
|
177
180
|
- lib/zyre/event.rb
|
178
181
|
- lib/zyre/event/enter.rb
|
179
182
|
- lib/zyre/event/evasive.rb
|
@@ -189,6 +192,7 @@ files:
|
|
189
192
|
- lib/zyre/testing.rb
|
190
193
|
- spec/observability/instrumentation/zyre_spec.rb
|
191
194
|
- spec/spec_helper.rb
|
195
|
+
- spec/zyre/cert_spec.rb
|
192
196
|
- spec/zyre/event_spec.rb
|
193
197
|
- spec/zyre/node_spec.rb
|
194
198
|
- spec/zyre/poller_spec.rb
|
@@ -217,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
221
|
- !ruby/object:Gem::Version
|
218
222
|
version: '0'
|
219
223
|
requirements: []
|
220
|
-
rubygems_version: 3.
|
224
|
+
rubygems_version: 3.2.11
|
221
225
|
signing_key:
|
222
226
|
specification_version: 4
|
223
227
|
summary: A ZRE library for Ruby.
|
metadata.gz.sig
CHANGED
Binary file
|