onering-report 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +57 -0
  7. data/Makefile +2 -0
  8. data/Rakefile +8 -0
  9. data/lib/etc/facter.list +19 -0
  10. data/lib/facter/onering_disk_smart.rb +38 -0
  11. data/lib/facter/onering_properties_chef.rb +41 -0
  12. data/lib/facter/onering_properties_haproxy.rb +155 -0
  13. data/lib/facter/onering_properties_id.rb +69 -0
  14. data/lib/facter/onering_properties_netstat.rb +94 -0
  15. data/lib/facter/onering_properties_network.rb +253 -0
  16. data/lib/facter/onering_properties_onering.rb +17 -0
  17. data/lib/facter/onering_properties_openvz.rb +17 -0
  18. data/lib/facter/onering_properties_physical.rb +87 -0
  19. data/lib/facter/onering_properties_services.rb +25 -0
  20. data/lib/facter/onering_properties_system.rb +18 -0
  21. data/lib/facter/onering_properties_virident.rb +93 -0
  22. data/lib/facter/onering_properties_xen.rb +32 -0
  23. data/lib/facter/onering_properties_zfs.rb +174 -0
  24. data/lib/reporter/default/properties_chef.rb +15 -0
  25. data/lib/reporter/default/properties_facter.rb +51 -0
  26. data/lib/reporter/default/properties_haproxy.rb +8 -0
  27. data/lib/reporter/default/properties_ipmi.rb +10 -0
  28. data/lib/reporter/default/properties_network.rb +63 -0
  29. data/lib/reporter/default/properties_ohai.rb +62 -0
  30. data/lib/reporter/default/properties_openvz.rb +12 -0
  31. data/lib/reporter/default/properties_physical.rb +10 -0
  32. data/lib/reporter/default/properties_services.rb +6 -0
  33. data/lib/reporter/default/properties_system_cpu.rb +30 -0
  34. data/lib/reporter/default/properties_system_disk_block.rb +35 -0
  35. data/lib/reporter/default/properties_system_disk_lvm.rb +73 -0
  36. data/lib/reporter/default/properties_system_disk_mounts.rb +46 -0
  37. data/lib/reporter/default/properties_system_disk_smart.rb +3 -0
  38. data/lib/reporter/default/properties_system_memory.rb +111 -0
  39. data/lib/reporter/default/properties_xen.rb +16 -0
  40. data/lib/reporter/default/stats_virident.rb +8 -0
  41. data/lib/reporter/default/stats_zfs.rb +8 -0
  42. data/onering-report.gemspec +18 -0
  43. metadata +126 -0
@@ -0,0 +1,111 @@
1
+ report do
2
+ # ------------------------------------------------------------------------------
3
+ # memory
4
+ #
5
+ stats_mem = {}
6
+
7
+ File.open("/proc/meminfo").each do |line|
8
+ case line
9
+ when /^MemTotal:\s+(\d+)/
10
+ stats_mem[:total] = ($1.to_i * 1024)
11
+ when /^SwapTotal:\s+(\d+)/
12
+ stats_mem[:swap] = ($1.to_i * 1024)
13
+ end
14
+ end
15
+
16
+ # ------------------------------------------------------------------------------
17
+ # memory (hardware)
18
+ #
19
+ mode = nil
20
+ slot = nil
21
+ nilrx = /^(?:\s+|none|undefined|0+)$/
22
+
23
+ IO.popen("dmidecode -t memory").lines.each do |line|
24
+ case line.chomp
25
+ when /^Physical Memory Array$/
26
+ mode = :controller
27
+ next
28
+ when /^Memory Device$/
29
+ mode = :dimm
30
+ stats_mem[:@slots] ||= []
31
+ slot = {}
32
+ next
33
+
34
+ # subvalues
35
+ when /^\t([^\:]+): (.+)$/
36
+ key = $1.strip
37
+ value = $2.strip
38
+
39
+ case mode
40
+ when :controller
41
+ case key.upcase
42
+ when 'ERROR CORRECTION TYPE'
43
+ stats_mem[:ecc] = (value.downcase == 'none' ? false : true)
44
+ stats_mem[:ecc_type] = value.downcase.gsub('ecc','').strip.gsub(/[\W\s]+/,'_') if stats_mem[:ecc]
45
+
46
+ when 'NUMBER OF DEVICES'
47
+ i = Integer(value.strip) rescue nil
48
+ stats_mem[:slot_count] = i unless i.nil?
49
+
50
+ when 'MAXIMUM CAPACITY'
51
+ stats_mem[:capacity] = value.to_s.to_bytes
52
+
53
+ else
54
+ next
55
+ end
56
+
57
+ when :dimm
58
+ case key.upcase
59
+ when 'SIZE'
60
+ slot[:size] = value.to_s.to_bytes
61
+ when 'TYPE'
62
+ slot[:type] = value.strip
63
+ when 'BANK LOCATOR'
64
+ slot[:bank] = value.strip
65
+ when 'LOCATOR'
66
+ slot[:id] = value.strip
67
+ when 'SERIAL NUMBER'
68
+ slot[:serial] = (value.strip.downcase =~ nilrx ? nil : value)
69
+ when 'MANUFACTURER'
70
+ slot[:make] = (value.downcase =~ nilrx ? nil : value)
71
+ when 'PART NUMBER'
72
+ slot[:model] = (value.downcase =~ nilrx ? nil : value)
73
+ when 'SPEED'
74
+ slot[:speed] = value.split(/\s+/).first.to_i
75
+ when 'RANK'
76
+ slot[:rank] = (Integer(value) rescue nil)
77
+ slot[:empty] = false unless slot[:rank].nil?
78
+
79
+ else
80
+ next
81
+ end
82
+ else
83
+ next
84
+ end
85
+
86
+ when ''
87
+ if mode == :dimm and not slot.empty?
88
+ if slot[:rank].nil?
89
+ slot = {
90
+ :id => slot[:id],
91
+ :name => slot[:name],
92
+ :bank => slot[:bank],
93
+ :empty => true
94
+ }
95
+ end
96
+
97
+ stats_mem[:@slots] << slot.compact
98
+ end
99
+ end
100
+ end
101
+
102
+ unless stats_mem[:@slots].nil?
103
+ begin
104
+ stats_mem[:@slots] = stats_mem[:@slots].sort_by{|k,v| v[:id] unless v.nil? }
105
+ rescue
106
+ nil
107
+ end
108
+ end
109
+
110
+ stat :memory, stats_mem
111
+ end
@@ -0,0 +1,16 @@
1
+ # Onering Collector - Xen Properties plugin
2
+ # provides collection of Xen metadata
3
+ #
4
+ report do
5
+ xen_guests = Facter.value('xen_guests')
6
+ xen_guest_uuid = Facter.value('xen_uuid')
7
+ xen = {}
8
+
9
+ # xen host
10
+ xen[:@guests] = xen_guests if xen_guests
11
+
12
+ # xen guest
13
+ xen[:uuid] = xen_guest_uuid if xen_guest_uuid
14
+
15
+ property :xen, xen
16
+ end
@@ -0,0 +1,8 @@
1
+ # Onering Collector - Virident device information
2
+ # provides data on Virident flash mass storage devices
3
+ #
4
+
5
+ report do
6
+ virident = Facter.value('virident')
7
+ stat :@virident, virident unless virident.nil?
8
+ end
@@ -0,0 +1,8 @@
1
+ # Onering Collector - ZFS volume manager information
2
+ # provides data on ZFS pools, filesystems, and snapshots
3
+ #
4
+
5
+ report do
6
+ zfs = Facter.value('zfs')
7
+ stat :@zfs, zfs unless zfs.nil?
8
+ end
@@ -0,0 +1,18 @@
1
+ # -*- encoding: utf-8 -*-
2
+ Gem::Specification.new do |gem|
3
+ gem.name = 'onering-report'
4
+ gem.version = "0.6.5"
5
+ gem.authors = ['rnarkis']
6
+ gem.email = ['rnarkis@outbrain.com']
7
+ gem.description = %q{Onering facter facts}
8
+ gem.summary = %q{Onering facter facts}
9
+ gem.homepage = ""
10
+ gem.add_runtime_dependency 'onering-client'
11
+ gem.add_development_dependency('puppet')
12
+ gem.add_development_dependency('pry')
13
+
14
+ gem.files = `git ls-files`.split($/)
15
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
+ gem.require_paths = ["lib"]
18
+ end
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: onering-report
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.5
5
+ platform: ruby
6
+ authors:
7
+ - rnarkis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: onering-client
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: puppet
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Onering facter facts
56
+ email:
57
+ - rnarkis@outbrain.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".ruby-gemset"
64
+ - ".ruby-version"
65
+ - Gemfile
66
+ - Gemfile.lock
67
+ - Makefile
68
+ - Rakefile
69
+ - lib/etc/facter.list
70
+ - lib/facter/onering_disk_smart.rb
71
+ - lib/facter/onering_properties_chef.rb
72
+ - lib/facter/onering_properties_haproxy.rb
73
+ - lib/facter/onering_properties_id.rb
74
+ - lib/facter/onering_properties_netstat.rb
75
+ - lib/facter/onering_properties_network.rb
76
+ - lib/facter/onering_properties_onering.rb
77
+ - lib/facter/onering_properties_openvz.rb
78
+ - lib/facter/onering_properties_physical.rb
79
+ - lib/facter/onering_properties_services.rb
80
+ - lib/facter/onering_properties_system.rb
81
+ - lib/facter/onering_properties_virident.rb
82
+ - lib/facter/onering_properties_xen.rb
83
+ - lib/facter/onering_properties_zfs.rb
84
+ - lib/reporter/default/properties_chef.rb
85
+ - lib/reporter/default/properties_facter.rb
86
+ - lib/reporter/default/properties_haproxy.rb
87
+ - lib/reporter/default/properties_ipmi.rb
88
+ - lib/reporter/default/properties_network.rb
89
+ - lib/reporter/default/properties_ohai.rb
90
+ - lib/reporter/default/properties_openvz.rb
91
+ - lib/reporter/default/properties_physical.rb
92
+ - lib/reporter/default/properties_services.rb
93
+ - lib/reporter/default/properties_system_cpu.rb
94
+ - lib/reporter/default/properties_system_disk_block.rb
95
+ - lib/reporter/default/properties_system_disk_lvm.rb
96
+ - lib/reporter/default/properties_system_disk_mounts.rb
97
+ - lib/reporter/default/properties_system_disk_smart.rb
98
+ - lib/reporter/default/properties_system_memory.rb
99
+ - lib/reporter/default/properties_xen.rb
100
+ - lib/reporter/default/stats_virident.rb
101
+ - lib/reporter/default/stats_zfs.rb
102
+ - onering-report.gemspec
103
+ homepage: ''
104
+ licenses: []
105
+ metadata: {}
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 2.2.2
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: Onering facter facts
126
+ test_files: []