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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rollcall.rb +37 -3
  3. metadata +25 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c729a8c21ddcfe7ea559e4921a86941335ffb6df
4
- data.tar.gz: 75b278d39aa566b26a9c45f8ebeabd3d01faa683
3
+ metadata.gz: 9fc56162e3ceed2702f45cc517b9052ce1cd7332
4
+ data.tar.gz: 98d5e54d63a3c5ded22442dd03176130bf269318
5
5
  SHA512:
6
- metadata.gz: 95b3360831c1c8eda0c671800a7620ddf7ec2c4f27c2db9bac63ea716ad8945e31d1947326a255ec7996a17320c0e242de3f2cfd469c496fbef494e1f89cfbd7
7
- data.tar.gz: 423f6acfeab9c9c42c2d9a494b7cd4ffeb2901fa8d6288baa0d3ea86094633a7b7c873f1943e0bccc81611bb0054d54a67ef0229941b444dbeea816e1f52c351
6
+ metadata.gz: 741ff585de634e72d1890b4533f4abaaeb9c4f25becfaee133d76a607f7a270f5a4406dc2339614d24511302ad442a79d8f91f166ff7a6e61eade762019334f4
7
+ data.tar.gz: 58a9647541db8beb8e5f7397b26fd65b6d8f6c942f920f5a1ec6c0ce50ef83324aad8b6c97c82828f6a9c8f83607597376be882552f29d3df674e31a86336042
@@ -1,5 +1,39 @@
1
- class Rollcall
2
- def self.crickets
3
- puts "Chirp, chirp..."
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.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
- - Luke Inglis
7
+ - Andrew Duane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-23 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Train your classes and modules well and they'll come when you call
14
- email: ld.inglis@gmail.com
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.1.11
54
+ rubygems_version: 2.2.2
41
55
  signing_key:
42
56
  specification_version: 4
43
- summary: Hold Your Classes Accountable
57
+ summary: Roll Call!
44
58
  test_files: []