onering-report 0.6.5 → 0.6.6

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: 2ec8274d268a961e2138cb05c7371610982db522
4
- data.tar.gz: 0faf9d2467b487596783743c9485940149016d89
3
+ metadata.gz: 52a32d9a3ce8d7cf810b725c475de4f73897be43
4
+ data.tar.gz: 2d9baebdcbc0bf1f33e9c13ad0aa8c1137f208c6
5
5
  SHA512:
6
- metadata.gz: 73c92ee34a7b60620f9c9d232a1ee11ea72d53dd5f23e32c29e3baeb74b995f1a3aee9eb2397181971a9fc2f755bea98f5cade44ce5bc9be3471c768b6a51d2e
7
- data.tar.gz: 9a79363d52c99399801d87206bf9171708f5930b698d5e2dea9174ab2468495329d9ffd2a2ecab3b53c60eb6418c531e7c2f132111498a9057d271a6e40eb664
6
+ metadata.gz: 68f3bf0756d41ac91af178c26c19dbfe06ae7e3bd4ef43407e4fcb039fe10e2b6b399199d075d5255efc360436aad6efd94849e2ae4a6a8f065c9995fdd5f118
7
+ data.tar.gz: 2ae2657444af6fdf86949cd232e381dc12fcb369e42da71fa21bdffce857bf533f51d877b35e8143f59afd79b01a2e2f3ccb2f3e5e061c94d85fcfd24b70fdb3
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Intro
2
+
3
+ A set of Pupppet Facter facts for onering agent.
@@ -1,22 +1,24 @@
1
+ require 'timeout'
2
+
1
3
  Facter.add('site') do
2
4
  setcode do
3
5
  if File.size?('/etc/onering/static/site')
4
- site = File.read('/etc/onering/static/site').strip.chomp
6
+ site = File.read('/etc/onering/static/site').strip.chomp
5
7
 
6
8
  else
7
- if File.exists?('/proc/cmdline')
8
- site = (File.read('/proc/cmdline').chomp.split(' ').select{|i| i =~ /^domain=/ }.first rescue nil)
9
- site = site.split('=', 2).last if site
10
- site = site.split('.').first if site
11
- end
9
+ if File.exists?('/proc/cmdline')
10
+ site = (File.read('/proc/cmdline').chomp.split(' ').select{|i| i =~ /^domain=/ }.first rescue nil)
11
+ site = site.split('=', 2).last if site
12
+ site = site.split('.').first if site
13
+ end
12
14
  end
13
15
 
14
16
  site = nil if ['test', 'hw', 'vm'].include?(site)
15
17
 
16
18
  if site
17
- site
19
+ site
18
20
  else
19
- Facter.value('fqdn').split('.')[-3].downcase rescue nil
21
+ Facter.value('fqdn').split('.')[-3].downcase rescue nil
20
22
  end
21
23
  end
22
24
  end
@@ -27,13 +29,13 @@ Facter.add('environment') do
27
29
 
28
30
  case env
29
31
  when 'dev'
30
- 'development'
32
+ 'development'
31
33
  when /(stg|stage)/
32
- 'staging'
34
+ 'staging'
33
35
  when 'prod'
34
- 'production'
36
+ 'production'
35
37
  else
36
- nil
38
+ nil
37
39
  end
38
40
  end
39
41
  end
@@ -46,42 +48,52 @@ Facter.add('slot') do
46
48
  end
47
49
  end
48
50
 
51
+ def ipmi_ok?
52
+ begin
53
+ ipmi = IPMI_PATH if defined? IPMI_PATH
54
+ ipmi ||= 'ipmiutil'
55
+ Timeout::timeout(1) {
56
+ Facter::Util::Resolution.exec("#{ipmi} health 2> /dev/null | tail -n1 | grep failed").nil?
57
+ }
58
+ rescue Timeout::Error
59
+ $stderr.puts "timed out while running #{ipmi}"
60
+ false
61
+ end
62
+ end
49
63
 
50
- ipmi_ok = (Facter::Util::Resolution.exec("ipmiutil health 2> /dev/null | tail -n1 | grep failed") === nil)
51
-
52
- if ipmi_ok
64
+ if ipmi_ok?
53
65
  ipmi_lan = Facter::Util::Resolution.exec("ipmitool lan print 1 2> /dev/null")
54
66
 
55
67
  if ipmi_lan
56
68
  ipmi_lan_data = {}
57
69
 
58
70
  ipmi_lan.lines.each do |line|
59
- key, value = line.split(/:/, 2)
60
- value = value.strip.squeeze(' ').chomp
71
+ key, value = line.split(/:/, 2)
72
+ value = value.strip.squeeze(' ').chomp
61
73
 
62
- case key
63
- when /^IP Address/i
64
- ipmi_lan_data[:ip] = value
74
+ case key
75
+ when /^IP Address/i
76
+ ipmi_lan_data[:ip] = value
65
77
 
66
- when /^Subnet Mask/i
67
- ipmi_lan_data[:netmask] = value
78
+ when /^Subnet Mask/i
79
+ ipmi_lan_data[:netmask] = value
68
80
 
69
- when /^MAC Address/i
70
- ipmi_lan_data[:macaddress] = value.upcase
81
+ when /^MAC Address/i
82
+ ipmi_lan_data[:macaddress] = value.upcase
71
83
 
72
- when /^Default Gateway IP/i
73
- ipmi_lan_data[:gateway] = value
84
+ when /^Default Gateway IP/i
85
+ ipmi_lan_data[:gateway] = value
74
86
 
75
- when /^SNMP Community String/i
76
- ipmi_lan_data[:snmp_community] = value
87
+ when /^SNMP Community String/i
88
+ ipmi_lan_data[:snmp_community] = value
77
89
 
78
- end
90
+ end
79
91
  end
80
92
 
81
93
  ipmi_lan_data.each do |key, value|
82
- Facter.add("ipmi_#{key}") do
83
- setcode { value }
84
- end
94
+ Facter.add("ipmi_#{key}") do
95
+ setcode { value }
96
+ end
85
97
  end
86
98
  end
87
99
  end
@@ -1,12 +1,12 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |gem|
3
3
  gem.name = 'onering-report'
4
- gem.version = "0.6.5"
4
+ gem.version = '0.6.6'
5
5
  gem.authors = ['rnarkis']
6
6
  gem.email = ['rnarkis@outbrain.com']
7
7
  gem.description = %q{Onering facter facts}
8
8
  gem.summary = %q{Onering facter facts}
9
- gem.homepage = ""
9
+ gem.homepage = ''
10
10
  gem.add_runtime_dependency 'onering-client'
11
11
  gem.add_development_dependency('puppet')
12
12
  gem.add_development_dependency('pry')
data/test/bin/ipmiutil ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bash
2
+ sleep 10
data/test/ipmi_test.rb ADDED
@@ -0,0 +1,37 @@
1
+
2
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
3
+
4
+ require 'minitest/autorun'
5
+ require_relative 'test_helper'
6
+ require 'facter'
7
+
8
+ IPMI_PATH = '/bin/bash test/bin/ipmiutil'
9
+
10
+ require 'facter/onering_properties_physical'
11
+
12
+ class IpmiTest < MiniTest::Unit::TestCase
13
+ include FileUtils
14
+
15
+ def setup
16
+ end
17
+
18
+ def teardown
19
+ rm_rf 'foo-sandbox'
20
+ end
21
+
22
+ def with_cwd(dir)
23
+ Dir.chdir dir do
24
+ yield
25
+ end
26
+ end
27
+
28
+ def test_sanity
29
+ # sanity
30
+ assert_match(/\d*.\d*.\d*.\d*/, Facter.fact(:netmask).value)
31
+ end
32
+
33
+ def test_ipmi_ok_timeout
34
+ assert_equal false, ipmi_ok?
35
+ end
36
+
37
+ end
@@ -0,0 +1,2 @@
1
+ require 'rubygems'
2
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onering-report
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - rnarkis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-30 00:00:00.000000000 Z
11
+ date: 2014-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: onering-client
@@ -65,6 +65,7 @@ files:
65
65
  - Gemfile
66
66
  - Gemfile.lock
67
67
  - Makefile
68
+ - README.md
68
69
  - Rakefile
69
70
  - lib/etc/facter.list
70
71
  - lib/facter/onering_disk_smart.rb
@@ -100,6 +101,9 @@ files:
100
101
  - lib/reporter/default/stats_virident.rb
101
102
  - lib/reporter/default/stats_zfs.rb
102
103
  - onering-report.gemspec
104
+ - test/bin/ipmiutil
105
+ - test/ipmi_test.rb
106
+ - test/test_helper.rb
103
107
  homepage: ''
104
108
  licenses: []
105
109
  metadata: {}
@@ -123,4 +127,7 @@ rubygems_version: 2.2.2
123
127
  signing_key:
124
128
  specification_version: 4
125
129
  summary: Onering facter facts
126
- test_files: []
130
+ test_files:
131
+ - test/bin/ipmiutil
132
+ - test/ipmi_test.rb
133
+ - test/test_helper.rb