hive-runner 2.1.3 → 2.1.4

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 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