cuboid 0.0.3alpha → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/Gemfile +1 -1
  4. data/README.md +14 -13
  5. data/cuboid.gemspec +1 -1
  6. data/lib/cuboid/application.rb +10 -10
  7. data/lib/cuboid/option_groups/agent.rb +54 -0
  8. data/lib/cuboid/option_groups/paths.rb +13 -4
  9. data/lib/cuboid/options.rb +1 -1
  10. data/lib/cuboid/processes/{dispatchers.rb → agents.rb} +40 -26
  11. data/lib/cuboid/processes/executables/agent.rb +5 -0
  12. data/lib/cuboid/processes/helpers/agents.rb +23 -0
  13. data/lib/cuboid/processes/helpers/instances.rb +4 -4
  14. data/lib/cuboid/processes/helpers.rb +1 -1
  15. data/lib/cuboid/processes/instances.rb +22 -10
  16. data/lib/cuboid/processes/schedulers.rb +16 -3
  17. data/lib/cuboid/processes.rb +2 -2
  18. data/lib/cuboid/rest/server/instance_helpers.rb +13 -13
  19. data/lib/cuboid/rest/server/routes/dispatcher.rb +11 -11
  20. data/lib/cuboid/rest/server/routes/grid.rb +8 -8
  21. data/lib/cuboid/rest/server/routes/instances.rb +1 -1
  22. data/lib/cuboid/rest/server.rb +5 -5
  23. data/lib/cuboid/rpc/client/{dispatcher.rb → agent.rb} +4 -4
  24. data/lib/cuboid/rpc/client/instance.rb +2 -2
  25. data/lib/cuboid/rpc/client.rb +1 -1
  26. data/lib/cuboid/rpc/server/agent/node.rb +247 -0
  27. data/lib/cuboid/rpc/server/{dispatcher → agent}/service.rb +13 -13
  28. data/lib/cuboid/rpc/server/{dispatcher.rb → agent.rb} +62 -32
  29. data/lib/cuboid/rpc/server/application_wrapper.rb +5 -4
  30. data/lib/cuboid/rpc/server/instance.rb +4 -4
  31. data/lib/cuboid/rpc/server/scheduler.rb +13 -12
  32. data/lib/version +1 -1
  33. data/spec/cuboid/option_groups/dispatcher_spec.rb +2 -2
  34. data/spec/cuboid/option_groups/paths_spec.rb +6 -3
  35. data/spec/cuboid/rest/server_spec.rb +45 -45
  36. data/spec/cuboid/rpc/client/dispatcher_spec.rb +2 -2
  37. data/spec/cuboid/rpc/server/dispatcher/node_spec.rb +65 -65
  38. data/spec/cuboid/rpc/server/dispatcher/service_spec.rb +16 -16
  39. data/spec/cuboid/rpc/server/dispatcher_spec.rb +187 -72
  40. data/spec/cuboid/rpc/server/scheduler_spec.rb +8 -8
  41. data/spec/support/fixtures/executables/node.rb +3 -3
  42. data/spec/support/fixtures/mock_app/test_service.rb +8 -8
  43. data/spec/support/fixtures/mock_app.rb +1 -1
  44. data/spec/support/fixtures/services/echo.rb +6 -6
  45. data/spec/support/helpers/resets.rb +1 -1
  46. data/spec/support/lib/web_server_client.rb +2 -2
  47. data/spec/support/lib/web_server_dispatcher.rb +1 -1
  48. metadata +18 -58
  49. data/lib/cuboid/option_groups/dispatcher.rb +0 -38
  50. data/lib/cuboid/processes/executables/dispatcher.rb +0 -5
  51. data/lib/cuboid/processes/helpers/dispatchers.rb +0 -23
  52. data/lib/cuboid/rpc/server/dispatcher/node.rb +0 -247
  53. data/spec/support/logs/Dispatcher - 51489-29703.log +0 -6
  54. data/spec/support/logs/Scheduler - 51474-42556.log +0 -3
  55. data/spec/support/logs/Scheduler - 51477-63074.log +0 -6
  56. data/spec/support/logs/Scheduler - 51496-16039.log +0 -3
  57. data/spec/support/logs/Scheduler - 51499-40309.log +0 -6
  58. data/spec/support/logs/Scheduler - 51521-54983.log +0 -4
  59. data/spec/support/logs/Scheduler - 51533-50145.log +0 -1
  60. data/spec/support/logs/Scheduler - 51537-26476.log +0 -3
  61. data/spec/support/logs/Scheduler - 51541-33347.log +0 -6
  62. data/spec/support/logs/Scheduler - 51556-5765.log +0 -3
  63. data/spec/support/logs/Scheduler - 51559-22349.log +0 -6
  64. data/spec/support/logs/Scheduler - 51567-20476.log +0 -3
  65. data/spec/support/logs/Scheduler - 51570-37548.log +0 -6
  66. data/spec/support/logs/Scheduler - 52668-26175.log +0 -3
  67. data/spec/support/reports/3480c2e4463df854d3457b247e3ba679.crf +0 -0
  68. data/spec/support/reports/45958408cb49a7f3391a973e05bf673b.crf +0 -0
  69. data/spec/support/reports/62a7f8d6c8914bb086e7e5f8c418d974.crf +0 -0
  70. data/spec/support/reports/6363927e13ec27b5cbd973b86bd8e52c.crf +0 -0
  71. data/spec/support/reports/b68f94be3aa96d0c27477dcfe1e25143.crf +0 -0
  72. data/spec/support/reports/bbb7496056393de17e72855a63d3acfb.crf +0 -0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuboid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3alpha
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tasos Laskos
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-13 00:00:00.000000000 Z
11
+ date: 2022-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 5.3.2
145
+ version: 5.5.2
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 5.3.2
152
+ version: 5.5.2
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rack
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -278,8 +278,8 @@ files:
278
278
  - lib/cuboid/error.rb
279
279
  - lib/cuboid/option_group.rb
280
280
  - lib/cuboid/option_groups.rb
281
+ - lib/cuboid/option_groups/agent.rb
281
282
  - lib/cuboid/option_groups/datastore.rb
282
- - lib/cuboid/option_groups/dispatcher.rb
283
283
  - lib/cuboid/option_groups/output.rb
284
284
  - lib/cuboid/option_groups/paths.rb
285
285
  - lib/cuboid/option_groups/report.rb
@@ -289,14 +289,14 @@ files:
289
289
  - lib/cuboid/option_groups/system.rb
290
290
  - lib/cuboid/options.rb
291
291
  - lib/cuboid/processes.rb
292
- - lib/cuboid/processes/dispatchers.rb
292
+ - lib/cuboid/processes/agents.rb
293
+ - lib/cuboid/processes/executables/agent.rb
293
294
  - lib/cuboid/processes/executables/base.rb
294
- - lib/cuboid/processes/executables/dispatcher.rb
295
295
  - lib/cuboid/processes/executables/instance.rb
296
296
  - lib/cuboid/processes/executables/rest_service.rb
297
297
  - lib/cuboid/processes/executables/scheduler.rb
298
298
  - lib/cuboid/processes/helpers.rb
299
- - lib/cuboid/processes/helpers/dispatchers.rb
299
+ - lib/cuboid/processes/helpers/agents.rb
300
300
  - lib/cuboid/processes/helpers/instances.rb
301
301
  - lib/cuboid/processes/helpers/processes.rb
302
302
  - lib/cuboid/processes/helpers/schedulers.rb
@@ -311,18 +311,18 @@ files:
311
311
  - lib/cuboid/rest/server/routes/instances.rb
312
312
  - lib/cuboid/rest/server/routes/scheduler.rb
313
313
  - lib/cuboid/rpc/client.rb
314
+ - lib/cuboid/rpc/client/agent.rb
314
315
  - lib/cuboid/rpc/client/base.rb
315
- - lib/cuboid/rpc/client/dispatcher.rb
316
316
  - lib/cuboid/rpc/client/instance.rb
317
317
  - lib/cuboid/rpc/client/instance/service.rb
318
318
  - lib/cuboid/rpc/client/scheduler.rb
319
319
  - lib/cuboid/rpc/serializer.rb
320
320
  - lib/cuboid/rpc/server/active_options.rb
321
+ - lib/cuboid/rpc/server/agent.rb
322
+ - lib/cuboid/rpc/server/agent/node.rb
323
+ - lib/cuboid/rpc/server/agent/service.rb
321
324
  - lib/cuboid/rpc/server/application_wrapper.rb
322
325
  - lib/cuboid/rpc/server/base.rb
323
- - lib/cuboid/rpc/server/dispatcher.rb
324
- - lib/cuboid/rpc/server/dispatcher/node.rb
325
- - lib/cuboid/rpc/server/dispatcher/service.rb
326
326
  - lib/cuboid/rpc/server/instance.rb
327
327
  - lib/cuboid/rpc/server/output.rb
328
328
  - lib/cuboid/rpc/server/scheduler.rb
@@ -457,20 +457,6 @@ files:
457
457
  - spec/support/lib/web_server_client.rb
458
458
  - spec/support/lib/web_server_dispatcher.rb
459
459
  - spec/support/lib/web_server_manager.rb
460
- - spec/support/logs/Dispatcher - 51489-29703.log
461
- - spec/support/logs/Scheduler - 51474-42556.log
462
- - spec/support/logs/Scheduler - 51477-63074.log
463
- - spec/support/logs/Scheduler - 51496-16039.log
464
- - spec/support/logs/Scheduler - 51499-40309.log
465
- - spec/support/logs/Scheduler - 51521-54983.log
466
- - spec/support/logs/Scheduler - 51533-50145.log
467
- - spec/support/logs/Scheduler - 51537-26476.log
468
- - spec/support/logs/Scheduler - 51541-33347.log
469
- - spec/support/logs/Scheduler - 51556-5765.log
470
- - spec/support/logs/Scheduler - 51559-22349.log
471
- - spec/support/logs/Scheduler - 51567-20476.log
472
- - spec/support/logs/Scheduler - 51570-37548.log
473
- - spec/support/logs/Scheduler - 52668-26175.log
474
460
  - spec/support/logs/placeholder
475
461
  - spec/support/pems/cacert.pem
476
462
  - spec/support/pems/client/cert.pem
@@ -479,12 +465,6 @@ files:
479
465
  - spec/support/pems/client/key.pem
480
466
  - spec/support/pems/server/cert.pem
481
467
  - spec/support/pems/server/key.pem
482
- - spec/support/reports/3480c2e4463df854d3457b247e3ba679.crf
483
- - spec/support/reports/45958408cb49a7f3391a973e05bf673b.crf
484
- - spec/support/reports/62a7f8d6c8914bb086e7e5f8c418d974.crf
485
- - spec/support/reports/6363927e13ec27b5cbd973b86bd8e52c.crf
486
- - spec/support/reports/b68f94be3aa96d0c27477dcfe1e25143.crf
487
- - spec/support/reports/bbb7496056393de17e72855a63d3acfb.crf
488
468
  - spec/support/reports/placeholder
489
469
  - spec/support/shared/application.rb
490
470
  - spec/support/shared/component.rb
@@ -499,7 +479,7 @@ homepage: https://github.com/qadron/cuboid
499
479
  licenses:
500
480
  - MIT
501
481
  metadata: {}
502
- post_install_message:
482
+ post_install_message:
503
483
  rdoc_options:
504
484
  - "--charset=UTF-8"
505
485
  require_paths:
@@ -511,12 +491,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
511
491
  version: '0'
512
492
  required_rubygems_version: !ruby/object:Gem::Requirement
513
493
  requirements:
514
- - - ">"
494
+ - - ">="
515
495
  - !ruby/object:Gem::Version
516
- version: 1.3.1
496
+ version: '0'
517
497
  requirements: []
518
- rubygems_version: 3.2.15
519
- signing_key:
498
+ rubygems_version: 3.3.3
499
+ signing_key:
520
500
  specification_version: 4
521
501
  summary: An application-centric, decentralised and distributed computing solution.
522
502
  test_files:
@@ -597,20 +577,6 @@ test_files:
597
577
  - spec/support/lib/web_server_client.rb
598
578
  - spec/support/lib/web_server_dispatcher.rb
599
579
  - spec/support/lib/web_server_manager.rb
600
- - spec/support/logs/Dispatcher - 51489-29703.log
601
- - spec/support/logs/Scheduler - 51474-42556.log
602
- - spec/support/logs/Scheduler - 51477-63074.log
603
- - spec/support/logs/Scheduler - 51496-16039.log
604
- - spec/support/logs/Scheduler - 51499-40309.log
605
- - spec/support/logs/Scheduler - 51521-54983.log
606
- - spec/support/logs/Scheduler - 51533-50145.log
607
- - spec/support/logs/Scheduler - 51537-26476.log
608
- - spec/support/logs/Scheduler - 51541-33347.log
609
- - spec/support/logs/Scheduler - 51556-5765.log
610
- - spec/support/logs/Scheduler - 51559-22349.log
611
- - spec/support/logs/Scheduler - 51567-20476.log
612
- - spec/support/logs/Scheduler - 51570-37548.log
613
- - spec/support/logs/Scheduler - 52668-26175.log
614
580
  - spec/support/logs/placeholder
615
581
  - spec/support/pems/cacert.pem
616
582
  - spec/support/pems/client/cert.pem
@@ -619,12 +585,6 @@ test_files:
619
585
  - spec/support/pems/client/key.pem
620
586
  - spec/support/pems/server/cert.pem
621
587
  - spec/support/pems/server/key.pem
622
- - spec/support/reports/3480c2e4463df854d3457b247e3ba679.crf
623
- - spec/support/reports/45958408cb49a7f3391a973e05bf673b.crf
624
- - spec/support/reports/62a7f8d6c8914bb086e7e5f8c418d974.crf
625
- - spec/support/reports/6363927e13ec27b5cbd973b86bd8e52c.crf
626
- - spec/support/reports/b68f94be3aa96d0c27477dcfe1e25143.crf
627
- - spec/support/reports/bbb7496056393de17e72855a63d3acfb.crf
628
588
  - spec/support/reports/placeholder
629
589
  - spec/support/shared/application.rb
630
590
  - spec/support/shared/component/options/base.rb
@@ -1,38 +0,0 @@
1
- module Cuboid::OptionGroups
2
-
3
- # Holds options for {RPC::Server::Dispatcher} servers.
4
- #
5
- # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
6
- class Dispatcher < Cuboid::OptionGroup
7
-
8
- # @return [String]
9
- # URL of a {RPC::Server::Dispatcher}.
10
- attr_accessor :url
11
-
12
- # @return [Array<Integer>]
13
- # Range of ports to use when spawning instances, first entry should be
14
- # the lowest port number, last the max port number.
15
- attr_accessor :instance_port_range
16
-
17
- # @return [String]
18
- # The URL of a neighbouring {RPC::Server::Dispatcher}, applicable when
19
- # {RPC::Server::Dispatcher} are connected to each other to form a Grid.
20
- #
21
- # @see RPC::Server::Dispatcher::Node
22
- attr_accessor :neighbour
23
-
24
- # @return [Float]
25
- # How regularly to check for neighbour statuses.
26
- attr_accessor :ping_interval
27
-
28
- # @return [String]
29
- # Dispatcher name.
30
- attr_accessor :name
31
-
32
- set_defaults(
33
- ping_interval: 5.0,
34
- instance_port_range: [1025, 65535]
35
- )
36
-
37
- end
38
- end
@@ -1,5 +0,0 @@
1
- require Options.paths.lib + 'rpc/server/dispatcher'
2
-
3
- Arachni::Reactor.global.run do
4
- RPC::Server::Dispatcher.new
5
- end
@@ -1,23 +0,0 @@
1
- # @param (see Cuboid::Processes::Dispatchers#spawn)
2
- # @return (see Cuboid::Processes::Dispatchers#spawn)
3
- def dispatcher_spawn( *args )
4
- Cuboid::Processes::Dispatchers.spawn( *args )
5
- end
6
-
7
- # @param (see Cuboid::Processes::Dispatchers#kill)
8
- # @return (see Cuboid::Processes::Dispatchers#kill)
9
- def dispatcher_kill( *args )
10
- Cuboid::Processes::Dispatchers.kill( *args )
11
- end
12
-
13
- # @param (see Cuboid::Processes::Dispatchers#killall)
14
- # @return (see Cuboid::Processes::Dispatchers#killall)
15
- def dispatcher_killall
16
- Cuboid::Processes::Dispatchers.killall
17
- end
18
-
19
- # @param (see Cuboid::Processes::Dispatchers#connect)
20
- # @return (see Cuboid::Processes::Dispatchers#connect)
21
- def dispatcher_connect( *args )
22
- Cuboid::Processes::Dispatchers.connect( *args )
23
- end
@@ -1,247 +0,0 @@
1
- module Cuboid
2
-
3
- require Options.paths.lib + 'rpc/server/output'
4
-
5
- module RPC
6
-
7
- # Dispatcher node class, helps maintain a list of all available Dispatchers in
8
- # the grid and announce itself to neighbouring Dispatchers.
9
- #
10
- # As soon as a new Node is fired up it checks-in with its neighbour and grabs
11
- # a list of all available peers.
12
- #
13
- # As soon as it receives the peer list it then announces itself to them.
14
- #
15
- # Upon convergence there will be a grid of Dispatchers each one with its own
16
- # copy of all available Dispatcher URLs.
17
- #
18
- # @author Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
19
- class Server::Dispatcher::Node
20
- include UI::Output
21
-
22
- # Initializes the node by:
23
- #
24
- # * Adding the neighbour (if the user has supplied one) to the peer list.
25
- # * Getting the neighbour's peer list and appending them to its own.
26
- # * Announces itself to the neighbour and instructs it to propagate our URL
27
- # to the others.
28
- #
29
- # @param [Cuboid::Options] options
30
- # @param [Server::Base] server
31
- # Dispatcher's RPC server.
32
- # @param [String] logfile
33
- # Where to send the output.
34
- def initialize( options, server, logfile = nil )
35
- @options = options
36
- @server = server
37
- @url = @server.url
38
-
39
- reroute_to_file( logfile ) if logfile
40
-
41
- print_status 'Initializing grid node...'
42
-
43
- @dead_nodes = Set.new
44
- @neighbours = Set.new
45
- @nodes_info_cache = []
46
-
47
- if (neighbour = @options.dispatcher.neighbour)
48
- # Grab the neighbour's neighbours.
49
- connect_to_peer( neighbour ).neighbours do |urls|
50
- if urls.rpc_exception?
51
- add_dead_neighbour( neighbour )
52
- print_info "Neighbour seems dead: #{neighbour}"
53
- add_dead_neighbour( neighbour )
54
- next
55
- end
56
-
57
- # Add neighbour and announce it to everyone.
58
- add_neighbour( neighbour, true )
59
-
60
- urls.each { |url| @neighbours << url if url != @url }
61
- end
62
- end
63
-
64
- print_status 'Node ready.'
65
-
66
- log_updated_neighbours
67
-
68
- Arachni::Reactor.global.at_interval( @options.dispatcher.ping_interval ) do
69
- ping
70
- check_for_comebacks
71
- end
72
- end
73
-
74
- # @return [Boolean]
75
- # `true` if grid member, `false` otherwise.
76
- def grid_member?
77
- @neighbours.any?
78
- end
79
-
80
- def unplug
81
- @neighbours.each do |peer|
82
- connect_to_peer( peer ).remove_neighbour( @url ) {}
83
- end
84
-
85
- @neighbours.clear
86
- @dead_nodes.clear
87
-
88
- nil
89
- end
90
-
91
- # Adds a neighbour to the peer list.
92
- #
93
- # @param [String] node_url
94
- # URL of a neighbouring node.
95
- # @param [Boolean] propagate
96
- # Whether or not to announce the new node to the peers.
97
- def add_neighbour( node_url, propagate = false )
98
- # we don't want ourselves in the Set
99
- return false if node_url == @url
100
- return false if @neighbours.include?( node_url )
101
-
102
- print_status "Adding neighbour: #{node_url}"
103
-
104
- @neighbours << node_url
105
- log_updated_neighbours
106
- announce( node_url ) if propagate
107
-
108
- connect_to_peer( node_url ).add_neighbour( @url, propagate ) do |res|
109
- next if !res.rpc_exception?
110
- add_dead_neighbour( node_url )
111
- print_status "Neighbour seems dead: #{node_url}"
112
- end
113
- true
114
- end
115
-
116
- def remove_neighbour( url )
117
- @neighbours.delete url
118
- @dead_nodes.delete url
119
- nil
120
- end
121
-
122
- # @return [Array]
123
- # Neighbour/node/peer URLs.
124
- def neighbours
125
- @neighbours.to_a
126
- end
127
-
128
- def neighbours_with_info( &block )
129
- fail 'This method requires a block!' if !block_given?
130
-
131
- @neighbours_cmp = ''
132
-
133
- if @nodes_info_cache.empty? || @neighbours_cmp != neighbours.to_s
134
- @neighbours_cmp = neighbours.to_s
135
-
136
- each = proc do |neighbour, iter|
137
- connect_to_peer( neighbour ).info do |info|
138
- if info.rpc_exception?
139
- print_info "Neighbour seems dead: #{neighbour}"
140
- add_dead_neighbour( neighbour )
141
- log_updated_neighbours
142
-
143
- iter.return( nil )
144
- else
145
- iter.return( info )
146
- end
147
- end
148
- end
149
-
150
- after = proc do |nodes|
151
- @nodes_info_cache = nodes.compact
152
- block.call( @nodes_info_cache )
153
- end
154
-
155
- Arachni::Reactor.global.create_iterator( neighbours ).map( each, after )
156
- else
157
- block.call( @nodes_info_cache )
158
- end
159
- end
160
-
161
- # @return [Hash]
162
- #
163
- # * `url` -- This node's URL.
164
- # * `name` -- Nickname
165
- # * `neighbours` -- Array of neighbours.
166
- def info
167
- {
168
- 'url' => @url,
169
- 'name' => @options.dispatcher.name,
170
- 'neighbours' => @neighbours.to_a,
171
- 'unreachable_neighbours' => @dead_nodes.to_a
172
- }
173
- end
174
-
175
- def alive?
176
- true
177
- end
178
-
179
- private
180
-
181
- def add_dead_neighbour( url )
182
- remove_neighbour( url )
183
- @dead_nodes << url
184
- end
185
-
186
- def log_updated_neighbours
187
- print_info 'Updated neighbours:'
188
-
189
- if !neighbours.empty?
190
- neighbours.each { |node| print_info( '---- ' + node ) }
191
- else
192
- print_info '<empty>'
193
- end
194
- end
195
-
196
- def ping
197
- neighbours.each do |neighbour|
198
- connect_to_peer( neighbour ).alive? do |res|
199
- next if !res.rpc_exception?
200
- add_dead_neighbour( neighbour )
201
- print_status "Found dead neighbour: #{neighbour} "
202
- end
203
- end
204
- end
205
-
206
- def check_for_comebacks
207
- @dead_nodes.dup.each do |url|
208
- neighbour = connect_to_peer( url )
209
- neighbour.alive? do |res|
210
- next if res.rpc_exception?
211
-
212
- print_status "Dispatcher came back to life: #{url}"
213
- ([@url] | neighbours).each do |node|
214
- neighbour.add_neighbour( node ){}
215
- end
216
-
217
- add_neighbour( url )
218
- @dead_nodes.delete url
219
- end
220
- end
221
- end
222
-
223
- # Announces the node to the ones in the peer list
224
- #
225
- # @param [String] node
226
- # URL
227
- def announce( node )
228
- print_status "Advertising: #{node}"
229
-
230
- neighbours.each do |peer|
231
- next if peer == node
232
-
233
- print_info '---- to: ' + peer
234
- connect_to_peer( peer ).add_neighbour( node ) do |res|
235
- add_dead_neighbour( peer ) if res.rpc_exception?
236
- end
237
- end
238
- end
239
-
240
- def connect_to_peer( url )
241
- @rpc_clients ||= {}
242
- @rpc_clients[url] ||= Client::Dispatcher.new( url ).node
243
- end
244
-
245
- end
246
- end
247
- end
@@ -1,6 +0,0 @@
1
- [Sun Jun 13 13:47:26 2021] [status] Starting the RPC Server...
2
- [Sun Jun 13 13:47:26 2021] [status] Initializing grid node...
3
- [Sun Jun 13 13:47:26 2021] [status] Node ready.
4
- [Sun Jun 13 13:47:26 2021] [info] Updated neighbours:
5
- [Sun Jun 13 13:47:26 2021] [info] <empty>
6
- [Sun Jun 13 13:47:26 2021] [status] Ready
@@ -1,3 +0,0 @@
1
- [Sun Jun 13 13:47:06 2021] [status] Ready
2
- [Sun Jun 13 13:47:08 2021] [status] [be666febc31f3e225e84b99f910f664e] Got Instance: 127.0.0.1:19990/1baf258a6c776fba2b8434e426b17205
3
- [Sun Jun 13 13:47:08 2021] [status] [be666febc31f3e225e84b99f910f664e] Instance started.
@@ -1,6 +0,0 @@
1
- [Sun Jun 13 13:47:09 2021] [status] Ready
2
- [Sun Jun 13 13:47:10 2021] [status] [6363927e13ec27b5cbd973b86bd8e52c] Got Instance: 127.0.0.1:17977/e610c59b0aa7a307b431b61efa883ac0
3
- [Sun Jun 13 13:47:10 2021] [status] [6363927e13ec27b5cbd973b86bd8e52c] Instance started.
4
- [Sun Jun 13 13:47:19 2021] [status] [6363927e13ec27b5cbd973b86bd8e52c] Grabbing report.
5
- [Sun Jun 13 13:47:19 2021] [status] [6363927e13ec27b5cbd973b86bd8e52c] Report saved at: /Users/zapotek/workspace/qadron/cuboid/spec/support/reports/6363927e13ec27b5cbd973b86bd8e52c.crf
6
- [Sun Jun 13 13:47:19 2021] [status] [6363927e13ec27b5cbd973b86bd8e52c] Completed.
@@ -1,3 +0,0 @@
1
- [Sun Jun 13 13:47:37 2021] [status] Ready
2
- [Sun Jun 13 13:47:38 2021] [status] [d36ac6ebdc2c2a11c81df6f415fad863] Got Instance: 127.0.0.1:43810/79ad3e00b9b2ddc360f918a2834685b1
3
- [Sun Jun 13 13:47:38 2021] [status] [d36ac6ebdc2c2a11c81df6f415fad863] Instance started.
@@ -1,6 +0,0 @@
1
- [Sun Jun 13 13:47:41 2021] [status] Ready
2
- [Sun Jun 13 13:47:42 2021] [status] [b68f94be3aa96d0c27477dcfe1e25143] Got Instance: 127.0.0.1:7851/49330a40129711b1e0df8f6165975d75
3
- [Sun Jun 13 13:47:42 2021] [status] [b68f94be3aa96d0c27477dcfe1e25143] Instance started.
4
- [Sun Jun 13 13:47:51 2021] [status] [b68f94be3aa96d0c27477dcfe1e25143] Grabbing report.
5
- [Sun Jun 13 13:47:51 2021] [status] [b68f94be3aa96d0c27477dcfe1e25143] Report saved at: /Users/zapotek/workspace/qadron/cuboid/spec/support/reports/b68f94be3aa96d0c27477dcfe1e25143.crf
6
- [Sun Jun 13 13:47:51 2021] [status] [b68f94be3aa96d0c27477dcfe1e25143] Completed.
@@ -1,4 +0,0 @@
1
- [Sun Jun 13 13:47:53 2021] [status] Ready
2
- [Sun Jun 13 13:47:59 2021] [status] [62a7f8d6c8914bb086e7e5f8c418d974] Grabbing report.
3
- [Sun Jun 13 13:47:59 2021] [status] [62a7f8d6c8914bb086e7e5f8c418d974] Report saved at: /Users/zapotek/workspace/qadron/cuboid/spec/support/reports/62a7f8d6c8914bb086e7e5f8c418d974.crf
4
- [Sun Jun 13 13:47:59 2021] [status] [62a7f8d6c8914bb086e7e5f8c418d974] Completed.
@@ -1 +0,0 @@
1
- [Sun Jun 13 13:48:06 2021] [status] Ready
@@ -1,3 +0,0 @@
1
- [Sun Jun 13 13:48:11 2021] [status] Ready
2
- [Sun Jun 13 13:48:12 2021] [status] [f2503d55e7c6126a0db05b752c407eb9] Got Instance: 127.0.0.1:22424/ca54c5ca0ea9173559fd9d387a8c4dd5
3
- [Sun Jun 13 13:48:12 2021] [status] [f2503d55e7c6126a0db05b752c407eb9] Instance started.
@@ -1,6 +0,0 @@
1
- [Sun Jun 13 13:48:15 2021] [status] Ready
2
- [Sun Jun 13 13:48:16 2021] [status] [bbb7496056393de17e72855a63d3acfb] Got Instance: 127.0.0.1:41407/12cd58e1c57385cbd6f7cb3bc6296ab7
3
- [Sun Jun 13 13:48:16 2021] [status] [bbb7496056393de17e72855a63d3acfb] Instance started.
4
- [Sun Jun 13 13:48:25 2021] [status] [bbb7496056393de17e72855a63d3acfb] Grabbing report.
5
- [Sun Jun 13 13:48:25 2021] [status] [bbb7496056393de17e72855a63d3acfb] Report saved at: /Users/zapotek/workspace/qadron/cuboid/spec/support/reports/bbb7496056393de17e72855a63d3acfb.crf
6
- [Sun Jun 13 13:48:25 2021] [status] [bbb7496056393de17e72855a63d3acfb] Completed.
@@ -1,3 +0,0 @@
1
- [Sun Jun 13 13:48:37 2021] [status] Ready
2
- [Sun Jun 13 13:48:38 2021] [status] [23f228ba6bc6a4a697f184d6aa9edeae] Got Instance: 127.0.0.1:50170/29a9f63030da50511cae29f0e0750fa6
3
- [Sun Jun 13 13:48:38 2021] [status] [23f228ba6bc6a4a697f184d6aa9edeae] Instance started.
@@ -1,6 +0,0 @@
1
- [Sun Jun 13 13:48:41 2021] [status] Ready
2
- [Sun Jun 13 13:48:42 2021] [status] [45958408cb49a7f3391a973e05bf673b] Got Instance: 127.0.0.1:45676/c4c69dad5b76f1a221862ecf84327fb9
3
- [Sun Jun 13 13:48:42 2021] [status] [45958408cb49a7f3391a973e05bf673b] Instance started.
4
- [Sun Jun 13 13:48:51 2021] [status] [45958408cb49a7f3391a973e05bf673b] Grabbing report.
5
- [Sun Jun 13 13:48:51 2021] [status] [45958408cb49a7f3391a973e05bf673b] Report saved at: /Users/zapotek/workspace/qadron/cuboid/spec/support/reports/45958408cb49a7f3391a973e05bf673b.crf
6
- [Sun Jun 13 13:48:51 2021] [status] [45958408cb49a7f3391a973e05bf673b] Completed.
@@ -1,3 +0,0 @@
1
- [Sun Jun 13 13:48:55 2021] [status] Ready
2
- [Sun Jun 13 13:48:57 2021] [status] [c8338ff79a4360bf7ca627360f73544e] Got Instance: 127.0.0.1:14604/23bf17cadc6f98745c7b72bb46c79acd
3
- [Sun Jun 13 13:48:57 2021] [status] [c8338ff79a4360bf7ca627360f73544e] Instance started.
@@ -1,6 +0,0 @@
1
- [Sun Jun 13 13:48:59 2021] [status] Ready
2
- [Sun Jun 13 13:49:01 2021] [status] [3480c2e4463df854d3457b247e3ba679] Got Instance: 127.0.0.1:27498/5be27ef9735a138bbb6e1aa718562e14
3
- [Sun Jun 13 13:49:01 2021] [status] [3480c2e4463df854d3457b247e3ba679] Instance started.
4
- [Sun Jun 13 13:49:09 2021] [status] [3480c2e4463df854d3457b247e3ba679] Grabbing report.
5
- [Sun Jun 13 13:49:09 2021] [status] [3480c2e4463df854d3457b247e3ba679] Report saved at: /Users/zapotek/workspace/qadron/cuboid/spec/support/reports/3480c2e4463df854d3457b247e3ba679.crf
6
- [Sun Jun 13 13:49:10 2021] [status] [3480c2e4463df854d3457b247e3ba679] Completed.
@@ -1,3 +0,0 @@
1
- [Sun Jun 13 13:49:24 2021] [status] Ready
2
- [Sun Jun 13 13:49:25 2021] [status] [faebdb08eac7b06ecef1d378325c7ece] Got Instance: 127.0.0.1:31394/0b0dc347bd177d93610299ff28cad972
3
- [Sun Jun 13 13:49:25 2021] [status] [faebdb08eac7b06ecef1d378325c7ece] Instance started.