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 +4 -4
- data/lib/genesis_collector/disks.rb +14 -2
- data/lib/genesis_collector/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca15da7c07b0645913ad2130c17de497adb68417
|
4
|
+
data.tar.gz: c55108b2bb2f6bbaa1abcc87f34ba254379c3cce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
16
|
-
|
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|
|
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.
|
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-
|
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.
|
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.
|