rollcall 0.0.0 → 0.0.1
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/lib/rollcall.rb +37 -3
- metadata +25 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fc56162e3ceed2702f45cc517b9052ce1cd7332
|
4
|
+
data.tar.gz: 98d5e54d63a3c5ded22442dd03176130bf269318
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 741ff585de634e72d1890b4533f4abaaeb9c4f25becfaee133d76a607f7a270f5a4406dc2339614d24511302ad442a79d8f91f166ff7a6e61eade762019334f4
|
7
|
+
data.tar.gz: 58a9647541db8beb8e5f7397b26fd65b6d8f6c942f920f5a1ec6c0ce50ef83324aad8b6c97c82828f6a9c8f83607597376be882552f29d3df674e31a86336042
|
data/lib/rollcall.rb
CHANGED
@@ -1,5 +1,39 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'socket'
|
2
|
+
|
3
|
+
class RollCall
|
4
|
+
def self.call_roll
|
5
|
+
addr = ['<broadcast>', 33333]# broadcast address
|
6
|
+
|
7
|
+
sending_sock = UDPSocket.new
|
8
|
+
sending_sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true)
|
9
|
+
data = 'roll call!'
|
10
|
+
sending_sock.send(data, 0, addr[0], addr[1])
|
11
|
+
|
12
|
+
addr = ['0.0.0.0', 33334] # host, port
|
13
|
+
BasicSocket.do_not_reverse_lookup = true
|
14
|
+
#
|
15
|
+
# Create socket and bind to address
|
16
|
+
receiving_sock = UDPSocket.new
|
17
|
+
receiving_sock.bind(addr[0], addr[1])
|
18
|
+
|
19
|
+
server_info = {}
|
20
|
+
|
21
|
+
# listen for 2 seconds
|
22
|
+
loop do
|
23
|
+
got_something_that_time = nil
|
24
|
+
if IO.select([receiving_sock], nil, nil, 2) # 2 seconds
|
25
|
+
data, addr = receiving_sock.recvfrom(1024) #1024 = max packet size
|
26
|
+
|
27
|
+
got_something_that_time = true
|
28
|
+
hostname,num_cores = data.split
|
29
|
+
info = {cores: num_cores.to_i, role: "test_#{server_info.count}".to_sym}
|
30
|
+
server_info.store(hostname, info)
|
31
|
+
end
|
32
|
+
break unless got_something_that_time # stop receiving if we haven't seen any data in a while
|
33
|
+
end
|
34
|
+
receiving_sock.close
|
35
|
+
|
36
|
+
sending_sock.close
|
37
|
+
server_info
|
4
38
|
end
|
5
39
|
end
|
metadata
CHANGED
@@ -1,23 +1,37 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollcall
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Andrew Duane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
|
11
|
+
date: 2015-02-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: daemons
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.1.9
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.1.9
|
27
|
+
description: Look for test servers
|
28
|
+
email: andrew.m.duane@gmail.com
|
15
29
|
executables: []
|
16
30
|
extensions: []
|
17
31
|
extra_rdoc_files: []
|
18
32
|
files:
|
19
33
|
- lib/rollcall.rb
|
20
|
-
homepage:
|
34
|
+
homepage: https://github.com/aduane/rollcall
|
21
35
|
licenses:
|
22
36
|
- MIT
|
23
37
|
metadata: {}
|
@@ -27,18 +41,18 @@ require_paths:
|
|
27
41
|
- lib
|
28
42
|
required_ruby_version: !ruby/object:Gem::Requirement
|
29
43
|
requirements:
|
30
|
-
- -
|
44
|
+
- - ">="
|
31
45
|
- !ruby/object:Gem::Version
|
32
46
|
version: '0'
|
33
47
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
48
|
requirements:
|
35
|
-
- -
|
49
|
+
- - ">="
|
36
50
|
- !ruby/object:Gem::Version
|
37
51
|
version: '0'
|
38
52
|
requirements: []
|
39
53
|
rubyforge_project:
|
40
|
-
rubygems_version: 2.
|
54
|
+
rubygems_version: 2.2.2
|
41
55
|
signing_key:
|
42
56
|
specification_version: 4
|
43
|
-
summary:
|
57
|
+
summary: Roll Call!
|
44
58
|
test_files: []
|