genesis_collector 0.1.45 → 1.0.0

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: f2d31c2c02165f66c5cd9a332d48f7f5c5fc0cf9
4
- data.tar.gz: 61758e8518bfeeaf105793e57506dd6bf6d1bcfb
3
+ metadata.gz: ca7b324782ded8c7434bb37ddf9827dfa274dae6
4
+ data.tar.gz: b9bb6794ba2612ddaddc1825864d1a92a8510a26
5
5
  SHA512:
6
- metadata.gz: f30e129ad37c1ce7ae1aca8884d0f2f37424c6b2d038f6f43fd244d28a97a6c5923006378f47277586f977d907725d37b66cb07d8b11e19aee6798eebb47a43a
7
- data.tar.gz: 5a90543bc051b925119f9c2381a233dad785107c36f7c90ac95aaabd81a1e80f3606c0d19e18fa4f06bf241c34f5559fd8c33923058deb35c3a51526746c7d1c
6
+ metadata.gz: a0e612affad5353b1c41a537b496e97186e0a7037236978f868dd56cd8d1a734fe5678db20360bc2bcf08d8b9996f9cd84842fea3433861d37a176824544a4d3
7
+ data.tar.gz: 0a8dc9e161a5c958ef1d4ef9568d0a1682b81eff43196043460460c1cb1f5001392917f1e6314dd66338ac8406e227cd6db694972e5c48190751574d11948759
@@ -7,6 +7,7 @@ require 'genesis_collector/chef'
7
7
  require 'genesis_collector/ipmi'
8
8
  require 'genesis_collector/disks'
9
9
  require 'genesis_collector/dmidecode'
10
+ require 'genesis_collector/megaraid'
10
11
  require 'English'
11
12
 
12
13
  module GenesisCollector
@@ -18,6 +19,7 @@ module GenesisCollector
18
19
  include GenesisCollector::IPMI
19
20
  include GenesisCollector::Disks
20
21
  include GenesisCollector::DmiDecode
22
+ include GenesisCollector::MegaRaid
21
23
 
22
24
  def initialize(config = {})
23
25
  @chef_node = config.delete(:chef_node)
@@ -34,6 +36,7 @@ module GenesisCollector
34
36
  safely { collect_disks }
35
37
  safely { collect_cpus }
36
38
  safely { collect_memories }
39
+ safely { collect_raids }
37
40
  @payload
38
41
  end
39
42
 
@@ -120,6 +123,10 @@ module GenesisCollector
120
123
  end.compact
121
124
  end
122
125
 
126
+ def collect_raids
127
+ collect_megaraid if megaraid?
128
+ end
129
+
123
130
  private
124
131
 
125
132
  def safely
@@ -0,0 +1,52 @@
1
+ module GenesisCollector
2
+ module MegaRaid
3
+
4
+ def collect_megaraid
5
+ @payload[:raids] ||= []
6
+ @payload[:properties] ||= {}
7
+ if megaraid?
8
+ @payload[:properties]['MEGARAID_TYPE'] = read_megacli_adapter_type
9
+ @payload[:properties]['MEGARAID_FW_PACKAGE'] = read_megacli_adapter_firmware
10
+ @payload[:raids].concat read_megacli_logical_disks
11
+ end
12
+ end
13
+
14
+ def megaraid?
15
+ return !read_megacli_adapter_type.nil?
16
+ end
17
+
18
+ private
19
+
20
+ def megacli_adapter_output()
21
+ @megacli_adapter_output ||= shellout_with_timeout('megacli -AdpAllInfo -aAll', 10)
22
+ end
23
+
24
+ def read_megacli_adapter_type()
25
+ match = megacli_adapter_output.match(/Product Name\s*:\s*(.+)\s*$/)
26
+ return nil if match.nil?
27
+ match[1]
28
+ end
29
+
30
+ def read_megacli_adapter_firmware()
31
+ match = megacli_adapter_output.match(/FW Package Build\s*:\s*(\S+)$/)
32
+ return nil if match.nil?
33
+ match[1]
34
+ end
35
+
36
+ def read_megacli_logical_disks()
37
+ @megacli_ld_output ||= shellout_with_timeout('megacli -LDInfo -Lall -aAll', 10)
38
+ lds = []
39
+ @megacli_ld_output.split(/^$/).each do |disk|
40
+ lines = disk.split(/\n+/)
41
+ next if lines.count < 5 # skip status and empty
42
+ record = {}
43
+ lines.each do |line|
44
+ match = line.match(/\s*(.+?)\s*:\s*(.+)\s*$/)
45
+ record[match[1]] = match[2] unless match.nil?
46
+ end
47
+ lds << record
48
+ end
49
+ lds
50
+ end
51
+ end
52
+ end
@@ -1,3 +1,3 @@
1
1
  module GenesisCollector
2
- VERSION = '0.1.45'
2
+ VERSION = '1.0.0'
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.45
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Radcliffe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-20 00:00:00.000000000 Z
11
+ date: 2017-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -93,6 +93,7 @@ files:
93
93
  - lib/genesis_collector/disks.rb
94
94
  - lib/genesis_collector/dmidecode.rb
95
95
  - lib/genesis_collector/ipmi.rb
96
+ - lib/genesis_collector/megaraid.rb
96
97
  - lib/genesis_collector/network_interfaces.rb
97
98
  - lib/genesis_collector/simple_http.rb
98
99
  - lib/genesis_collector/version.rb