onering-report 0.6.5

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.
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: []