hive-runner 2.1.3 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 55e51a2e63a369604683a34ee74662fa61d40be6
4
- data.tar.gz: c84a6365d382d09fd5b65455ab2e9ad1edd30f5d
3
+ metadata.gz: 5e1f35dfb194e15da69701c3783c9b361aae8cce
4
+ data.tar.gz: 550ad209950c448230265ce37253a2b60647415f
5
5
  SHA512:
6
- metadata.gz: 34826fc6647770fc07e2c1a5d54c87a6da1ced54dba570d0ba8ff446b6232e1005b9aa44efb6c50aa9b5b8d4b8345dd0f2b7c8b81b3319d041c848015d64c1e4
7
- data.tar.gz: a76541f4f0b1d922c13e941875b53281fad16ef30f19458455ad3c8ad0a56fdb159bd495f684c2455917ab8b29bdc7c267bcd702749f3ea146c20417152cbea8
6
+ metadata.gz: 87e9b16b957655c865f843b4a1c108216ca081be9483b85fb49767aebd0524f8483a36e3dab66e81dba69e53d61b540b17246a535e0488dc39f1aa58fc694c8f
7
+ data.tar.gz: 61deca7a2e6f35f91046d2d1fdd010382921d9d79a97fecf96eabccf42ea5841fc5d6b881db410d42c7d7f2eb9f8c5f30125154530834d9d3d9cf36040540d5b
data/bin/start_hive CHANGED
@@ -35,7 +35,7 @@ Signal.trap('USR1') do
35
35
 
36
36
  client.puts " Software versions:"
37
37
  client.puts " * hive-runner: #{gems['hive-runner']}"
38
- gems.except('hive-runner').sort.each do |name, version|
38
+ gems.select{|k, v| k != 'hive-runner'}.sort.each do |name, version|
39
39
  client.puts " * #{name}: #{version}"
40
40
  end
41
41
 
data/lib/hive.rb CHANGED
@@ -5,6 +5,7 @@ require 'mind_meld/hive'
5
5
  require 'macaddr'
6
6
  require 'socket'
7
7
  require 'sys/uname'
8
+ require 'sys/cpu'
8
9
  require 'airbrake-ruby'
9
10
 
10
11
  # The Hive automated testing framework
@@ -88,13 +89,23 @@ module Hive
88
89
  Hive.logger.debug "Polling hive"
89
90
  rtn = Hive.hive_mind.poll
90
91
  Hive.logger.debug "Return data: #{rtn}"
91
- if rtn['error'].present?
92
+ if rtn.has_key? 'error'
92
93
  Hive.logger.warn "Hive polling failed: #{rtn['error']}"
93
94
  else
94
95
  Hive.logger.info "Successfully polled hive"
95
96
  end
96
97
  end
97
98
 
99
+ # Gather and send statistics
100
+ def self.send_statistics
101
+ Hive.hive_mind.add_statistics(
102
+ label: 'Load average',
103
+ value: Sys::CPU.load_avg[0],
104
+ format: 'float'
105
+ )
106
+ Hive.hive_mind.flush_statistics
107
+ end
108
+
98
109
  # Get the IP address of the Hive
99
110
  def self.ip_address
100
111
  ip = Socket.ip_address_list.detect { |intf| intf.ipv4_private? }
data/lib/hive/register.rb CHANGED
@@ -30,17 +30,20 @@ module Hive
30
30
  end
31
31
 
32
32
  def instantiate_controllers(controller_details = Hive.config.controllers)
33
- controller_details.each do |type, opts|
34
- Hive.logger.info("Adding controller for '#{type}'")
35
- require "hive/controller/#{type}"
36
- controller = Object.const_get('Hive').const_get('Controller').const_get(type.capitalize).new(opts.to_hash)
37
- @controllers << controller
33
+ if controller_details
34
+ controller_details.each do |type, opts|
35
+ Hive.logger.info("Adding controller for '#{type}'")
36
+ require "hive/controller/#{type}"
37
+ controller = Object.const_get('Hive').const_get('Controller').const_get(type.capitalize).new(opts.to_hash)
38
+ @controllers << controller
39
+ end
38
40
  end
39
41
  check_controllers
40
42
  @controllers
41
43
  end
42
44
 
43
45
  def run
46
+ @next_stat_update = Time.now
44
47
  loop do
45
48
  Hive.poll
46
49
  housekeeping
@@ -98,6 +101,11 @@ module Hive
98
101
 
99
102
  def housekeeping
100
103
  clear_workspaces
104
+
105
+ if Hive.config.timings.stats_update_interval? && @next_stat_update < Time.now
106
+ Hive.send_statistics
107
+ @next_stat_update += Hive.config.timings.stats_update_interval
108
+ end
101
109
  end
102
110
 
103
111
  def clear_workspaces
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hive-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Haig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-07 00:00:00.000000000 Z
11
+ date: 2016-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chamber
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.1.2
131
+ version: 0.1.8
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.1.2
138
+ version: 0.1.8
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: code_cache
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '1.0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: sys-cpu
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.7'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.7'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: airbrake-ruby
169
183
  requirement: !ruby/object:Gem::Requirement