genesis_collector 0.1.36 → 0.1.37

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: ce87366c59fccca2d9f884676913480682b5b3d0
4
- data.tar.gz: 15177ff8523d78cd9d931c47df9ea6abcb3cd032
3
+ metadata.gz: ca15da7c07b0645913ad2130c17de497adb68417
4
+ data.tar.gz: c55108b2bb2f6bbaa1abcc87f34ba254379c3cce
5
5
  SHA512:
6
- metadata.gz: ea5f89bdcd53b78fa1c09019008c286a9312b9e73be481bfe11661c938a4a6bfaaa7cd1f499c2cc293dee81f323a99fef0536babc7202ec12a1a6d9320a8c845
7
- data.tar.gz: c840d94827a58ad2a9dac0f3744166ae74ad547cbc64a272b8595ff2fd769be17c754044eb913fc4f3c30f6c13890f8a6e8a0aa2d8a06428556f4cab57f5bca7
6
+ metadata.gz: edf68752cf4410409e8d6ebc067621f0a11e74e0a38b0ef59c4c179697473759b2749bbeb9ddfde5c58150a7d04e44877318c9c2d93f1f91287eb263749be9f8
7
+ data.tar.gz: 908e0e74058165dfa17404240848f793d14759dc1ec34e5c5e00f1f474224b20f2d8bf2551da93568beaaec19d4ecb1260d2164a7c957ed40ce68c9b7d900c55
@@ -12,8 +12,12 @@ module GenesisCollector
12
12
  d[:product] = info.match(/^(?:Device Model|Product):\s+(.*)$/)[1]
13
13
  d[:serial_number] = info.match(/^Serial (?:n|N)umber:\s+(.*)$/)[1] rescue nil
14
14
  d[:size] = info.match(/^User Capacity:\s+(.*)$/)[1].split('bytes')[0].strip.gsub(',', '')
15
- d[:slot] = get_scsi_slot(d[:dev]) if d[:dev] =~ /^\/dev\/sd/
16
- d[:uuid] = disk_uuid(d[:dev]) if d[:dev] =~ /^\/dev\/sd/
15
+
16
+ if d[:dev].start_with?("/dev/sd")
17
+ d[:slot] = get_scsi_slot(d[:dev])
18
+ d[:uuid] = disk_uuid(d[:dev])
19
+ d[:status] = "unhealthy" unless disk_healthy(d[:dev])
20
+ end
17
21
  end
18
22
  @payload[:disks].delete_if { |d| d[:serial_number].nil? }
19
23
  rescue StandardError => ex
@@ -24,6 +28,14 @@ module GenesisCollector
24
28
 
25
29
  private
26
30
 
31
+ def disk_healthy(disk)
32
+ short_tests = shellout_with_timeout("smartctl -H #{disk}", 5)
33
+
34
+ short_tests =~ /result: PASSED/
35
+ rescue
36
+ true
37
+ end
38
+
27
39
  def enumerate_disks
28
40
  raw = shellout_with_timeout('smartctl --scan').strip
29
41
  raw.split("\n").map do |line|
@@ -1,3 +1,3 @@
1
1
  module GenesisCollector
2
- VERSION = '0.1.36'
2
+ VERSION = '0.1.37'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genesis_collector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.36
4
+ version: 0.1.37
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Radcliffe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-18 00:00:00.000000000 Z
11
+ date: 2016-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  version: '0'
117
117
  requirements: []
118
118
  rubyforge_project:
119
- rubygems_version: 2.4.5.1
119
+ rubygems_version: 2.5.1
120
120
  signing_key:
121
121
  specification_version: 4
122
122
  summary: Agent to collect information about bare metal servers and send it to Genesis.