genesis_collector 0.1.34 → 0.1.35

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: 825342f7135006cad54940fcd7501f339645c380
4
- data.tar.gz: 3c34be19a20f3246fc13334ebf83f64f271a95f2
3
+ metadata.gz: 81ebf7384ad54b4ee6fcfc23278a31a7f07af62f
4
+ data.tar.gz: 9c251659cb6225b015bc173901ca12ad242c418a
5
5
  SHA512:
6
- metadata.gz: ea20c26a924eba62b0244e2df3d694edb157a387019ffe41a3fba4941bfa2c407680320df456f273d96df5276bffacf35e93c92831e12ba0c55a83dad1d83725
7
- data.tar.gz: 33634b2203fb849970a953e365d4b13083a5c01d19d68b8fbc43f38d991add78178dcd198e532d35d2c2a0552ccff9f20bcb9dd51802137c9c196f53d3c9b509
6
+ metadata.gz: 88799c61d5a82fba7d780ec0548e700e65b44ee8f04958151a58282b503e3648c03087e02545391222e9e5a098a4e9ae0c7d78d1d0f74c438d8275b8b5be3f3f
7
+ data.tar.gz: 480199c18c00d2db50c38252d83b437f74518f32a105826d50af75b3f59cda719c1a37758c726252c0fe400419070eb449851d81a06839f47f3c51c3ea6c0515
@@ -3,6 +3,7 @@ module GenesisCollector
3
3
 
4
4
  def collect_disks
5
5
  ensure_command('smartctl')
6
+ ensure_command('blkid')
6
7
  @payload[:disks] = enumerate_disks
7
8
  @payload[:disks].each do |d|
8
9
  info = get_disk_info(d.delete(:smartctl_cmd))
@@ -12,6 +13,7 @@ module GenesisCollector
12
13
  d[:serial_number] = info.match(/^Serial (?:n|N)umber:\s+(.*)$/)[1] rescue nil
13
14
  d[:size] = info.match(/^User Capacity:\s+(.*)$/)[1].split('bytes')[0].strip.gsub(',', '')
14
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
17
  end
16
18
  @payload[:disks].delete_if { |d| d[:serial_number].nil? }
17
19
  rescue StandardError => ex
@@ -38,6 +40,15 @@ module GenesisCollector
38
40
  shellout_with_timeout("smartctl -i #{cmd_params}", 5)
39
41
  end
40
42
 
43
+ def disk_uuid(drive)
44
+ blk_id = blkid.detect { |s| s.include? drive }
45
+ /UUID="([^ ]*)"/.match(blk_id, 1)[1]
46
+ end
47
+
48
+ def blkid
49
+ @blkid ||= shellout_with_timeout('blkid', 5).split("\n")
50
+ end
51
+
41
52
  # FIXME - we might want to handle raid devices differently by parsing megacli
42
53
  def get_scsi_slot(device)
43
54
  File.basename(File.readlink("/sys/class/block/#{File.basename(device)}/device"))
@@ -1,3 +1,3 @@
1
1
  module GenesisCollector
2
- VERSION = '0.1.34'
2
+ VERSION = '0.1.35'
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.34
4
+ version: 0.1.35
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-04 00:00:00.000000000 Z
11
+ date: 2016-10-18 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.5.1
119
+ rubygems_version: 2.4.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.