zyre 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
 
@@ -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.3.1
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+DCCAmCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
14
- REM9RmFlcmllTVVEL0RDPW9yZzAeFw0xOTEyMjQyMDE5NTFaFw0yMDEyMjMyMDE5
15
- NTFaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
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
- 9w0BAQsFAAOCAYEAifxlz7x0EfT3fjhM520ZEIrWa+tLMuLKNefkY18u8tZnx4EX
27
- Xxwh3tna3fvNfrOrdY5leIj1dbv4FTRg+gIBnIxAySqvpGvI/Axg5EdYbwninCLL
28
- LAKCmRo+5QwaPMYN2zdHIjGrp8jg1neCo5zy6tVvyTv0DMI6FLrydVJYduMMDFSy
29
- gQKR1rVOcCJtnBnLCF9+kKEUKohAHOmGsE7OBZFnjMIpH5yUDUVJKByv0gIipFt0
30
- 1T6zff6oVU0w8WBiNKR381+6sF3wIZVnVY0XeJg6hNL+YecE8ILxLhHTmtT/BO0S
31
- 3xPze9uXDR+iD6HYl8KU5QEg/dXFPhfQb512vVkTJDZvMcwu6PxDUjHFChLjAji/
32
- AZXjg1C5E9znTkeUR8ieU9F1MOKoiH57a5lYSTI8Ga8PpsNXTxNeXc16Ob26CqrJ
33
- 83uuAYSy65yXDGXXPVBeKPVnYrqp91pqpS5Nh7wfuiCrE8lgU8PATh7K4BV1UhAT
34
- 0MHbAT42wTYkfUj3
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: 2020-11-23 00:00:00.000000000 Z
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.17'
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.17'
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.1.4
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