zyre 0.3.1 → 0.4.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.
@@ -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