ohai 0.5.4 → 0.5.6
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.
- data/Rakefile +1 -1
- data/lib/ohai.rb +1 -1
- data/lib/ohai/plugins/c.rb +107 -0
- data/lib/ohai/plugins/ec2.rb +7 -2
- data/lib/ohai/plugins/linux/block_device.rb +2 -2
- data/lib/ohai/plugins/linux/network.rb +1 -1
- data/lib/ohai/plugins/windows/cpu.rb +47 -0
- data/lib/ohai/plugins/windows/hostname.rb +10 -2
- data/spec/ohai/plugins/c_spec.rb +256 -0
- data/spec/ohai/plugins/ec2_spec.rb +5 -1
- metadata +7 -4
data/Rakefile
CHANGED
data/lib/ohai.rb
CHANGED
@@ -0,0 +1,107 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Doug MacEachern <dougm@vmware.com>
|
3
|
+
# Copyright:: Copyright (c) 2010 VMware, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'rbconfig'
|
20
|
+
|
21
|
+
provides "languages/c"
|
22
|
+
|
23
|
+
require_plugin "languages"
|
24
|
+
|
25
|
+
c = Mash.new
|
26
|
+
|
27
|
+
#gcc
|
28
|
+
status, stdout, stderr = run_command(:no_status_check => true, :command => "gcc -v")
|
29
|
+
if status == 0
|
30
|
+
description = stderr.split($/).last
|
31
|
+
output = description.split
|
32
|
+
if output.length >= 3
|
33
|
+
c[:gcc] = Mash.new
|
34
|
+
c[:gcc][:version] = output[2]
|
35
|
+
c[:gcc][:description] = description
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
#glibc
|
40
|
+
status, stdout, stderr = run_command(:no_status_check => true, :command => "/lib/libc.so.6")
|
41
|
+
if status == 0
|
42
|
+
description = stdout.split($/).first
|
43
|
+
if description =~ /(\d+\.\d+\.\d+)/
|
44
|
+
c[:glibc] = Mash.new
|
45
|
+
c[:glibc][:version] = $1
|
46
|
+
c[:glibc][:description] = description
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
#ms cl
|
51
|
+
status, stdout, stderr = run_command(:no_status_check => true, :command => "cl /?")
|
52
|
+
if status == 0
|
53
|
+
description = stderr.split($/).first
|
54
|
+
if description =~ /Compiler Version ([\d\.]+)/
|
55
|
+
c[:cl] = Mash.new
|
56
|
+
c[:cl][:version] = $1
|
57
|
+
c[:cl][:description] = description
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
#ms vs
|
62
|
+
status, stdout, stderr = run_command(:no_status_check => true, :command => "devenv.com /?")
|
63
|
+
if status == 0
|
64
|
+
lines = stdout.split($/)
|
65
|
+
description = lines[0].length == 0 ? lines[1] : lines[0]
|
66
|
+
if description =~ /Visual Studio Version ([\d\.]+)/
|
67
|
+
c[:vs] = Mash.new
|
68
|
+
c[:vs][:version] = $1.chop
|
69
|
+
c[:vs][:description] = description
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
#ibm xlc
|
74
|
+
status, stdout, stderr = run_command(:no_status_check => true, :command => "xlc -qversion")
|
75
|
+
if status == 0
|
76
|
+
lines = stdout.split($/)
|
77
|
+
if lines.size >= 2
|
78
|
+
c[:xlc] = Mash.new
|
79
|
+
c[:xlc][:version] = lines[1].split.last
|
80
|
+
c[:xlc][:description] = lines[0]
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
#sun pro
|
85
|
+
status, stdout, stderr = run_command(:no_status_check => true, :command => "cc -V -flags")
|
86
|
+
if status == 0
|
87
|
+
output = stderr.split
|
88
|
+
if output.size >= 4
|
89
|
+
c[:sunpro] = Mash.new
|
90
|
+
c[:sunpro][:version] = output[3]
|
91
|
+
c[:sunpro][:description] = stderr.chomp
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
#hpux cc
|
96
|
+
status, stdout, stderr = run_command(:no_status_check => true, :command => "what /opt/ansic/bin/cc")
|
97
|
+
if status == 0
|
98
|
+
description = stdout.split($/).select { |line| line =~ /HP C Compiler/ }.first
|
99
|
+
if description
|
100
|
+
output = description.split
|
101
|
+
c[:hpcc] = Mash.new
|
102
|
+
c[:hpcc][:version] = output[1] if output.size >= 1
|
103
|
+
c[:hpcc][:description] = description.strip
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
languages[:c] = c if c.keys.length > 0
|
data/lib/ohai/plugins/ec2.rb
CHANGED
@@ -29,6 +29,7 @@ require_plugin "network"
|
|
29
29
|
EC2_METADATA_ADDR = "169.254.169.254" unless defined?(EC2_METADATA_ADDR)
|
30
30
|
EC2_METADATA_URL = "http://#{EC2_METADATA_ADDR}/2008-02-01/meta-data" unless defined?(EC2_METADATA_URL)
|
31
31
|
EC2_USERDATA_URL = "http://#{EC2_METADATA_ADDR}/2008-02-01/user-data" unless defined?(EC2_USERDATA_URL)
|
32
|
+
EC2_ARRAY_VALUES = %w(security-groups)
|
32
33
|
|
33
34
|
def can_metadata_connect?(addr, port, timeout=2)
|
34
35
|
t = Socket.new(Socket::Constants::AF_INET, Socket::Constants::SOCK_STREAM, 0)
|
@@ -69,8 +70,12 @@ def metadata(id='')
|
|
69
70
|
OpenURI.open_uri("#{EC2_METADATA_URL}/#{id}").read.split("\n").each do |o|
|
70
71
|
key = "#{id}#{o.gsub(/\=.*$/, '/')}"
|
71
72
|
if key[-1..-1] != '/'
|
72
|
-
ec2[key.gsub(/\-|\//, '_').to_sym] =
|
73
|
-
|
73
|
+
ec2[key.gsub(/\-|\//, '_').to_sym] =
|
74
|
+
if EC2_ARRAY_VALUES.include? key
|
75
|
+
OpenURI.open_uri("#{EC2_METADATA_URL}/#{key}").read.split("\n")
|
76
|
+
else
|
77
|
+
OpenURI.open_uri("#{EC2_METADATA_URL}/#{key}").read
|
78
|
+
end
|
74
79
|
else
|
75
80
|
metadata(key)
|
76
81
|
end
|
@@ -25,12 +25,12 @@ if File.exists?("/sys/block")
|
|
25
25
|
block[dir] = Mash.new
|
26
26
|
%w{size removable}.each do |check|
|
27
27
|
if File.exists?("/sys/block/#{dir}/#{check}")
|
28
|
-
|
28
|
+
File.open("/sys/block/#{dir}/#{check}") { |f| block[dir][check] = f.read_nonblock(1024).strip }
|
29
29
|
end
|
30
30
|
end
|
31
31
|
%w{model rev state timeout vendor}.each do |check|
|
32
32
|
if File.exists?("/sys/block/#{dir}/device/#{check}")
|
33
|
-
|
33
|
+
File.open("/sys/block/#{dir}/device/#{check}") { |f| block[dir][check] = f.read_nonblock(1024).strip }
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -37,7 +37,7 @@ popen4("ifconfig -a") do |pid, stdin, stdout, stderr|
|
|
37
37
|
cint = nil
|
38
38
|
stdout.each do |line|
|
39
39
|
tmp_addr = nil
|
40
|
-
if line =~ /^([0-9a-zA-Z\.\:\-]+)\s+/
|
40
|
+
if line =~ /^([0-9a-zA-Z\.\:\-_]+)\s+/
|
41
41
|
cint = $1
|
42
42
|
iface[cint] = Mash.new
|
43
43
|
if cint =~ /^(\w+)(\d+.*)/
|
@@ -0,0 +1,47 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Doug MacEachern <dougm@vmware.com>
|
3
|
+
# Copyright:: Copyright (c) 2010 VMware, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'ruby-wmi'
|
20
|
+
|
21
|
+
provides "cpu"
|
22
|
+
|
23
|
+
cpuinfo = Mash.new
|
24
|
+
cpu_number = 0
|
25
|
+
index = 0
|
26
|
+
|
27
|
+
WMI::Win32_Processor.find(:all).each do |processor|
|
28
|
+
cpu_number += processor.numberofcores
|
29
|
+
current_cpu = index.to_s
|
30
|
+
index += 1
|
31
|
+
cpuinfo[current_cpu] = Mash.new
|
32
|
+
cpuinfo[current_cpu]["vendor_id"] = processor.manufacturer
|
33
|
+
cpuinfo[current_cpu]["family"] = processor.family.to_s
|
34
|
+
cpuinfo[current_cpu]["model"] = processor.revision.to_s
|
35
|
+
cpuinfo[current_cpu]["stepping"] = processor.stepping
|
36
|
+
cpuinfo[current_cpu]["physical_id"] = processor.deviceid
|
37
|
+
#cpuinfo[current_cpu]["core_id"] = XXX
|
38
|
+
cpuinfo[current_cpu]["cores"] = processor.numberofcores
|
39
|
+
cpuinfo[current_cpu]["model_name"] = processor.description
|
40
|
+
cpuinfo[current_cpu]["mhz"] = processor.maxclockspeed.to_s
|
41
|
+
cpuinfo[current_cpu]["cache_size"] = "#{processor.l2cachesize} KB"
|
42
|
+
#cpuinfo[current_cpu]["flags"] = XXX
|
43
|
+
end
|
44
|
+
|
45
|
+
cpu cpuinfo
|
46
|
+
cpu[:total] = cpu_number
|
47
|
+
cpu[:real] = index
|
@@ -21,5 +21,13 @@ require 'socket'
|
|
21
21
|
|
22
22
|
host = WMI::Win32_ComputerSystem.find(:first)
|
23
23
|
hostname "#{host.Name}"
|
24
|
-
|
25
|
-
|
24
|
+
|
25
|
+
info = Socket.gethostbyname(Socket.gethostname)
|
26
|
+
if info.first =~ /.+?\.(.*)/
|
27
|
+
fqdn info.first
|
28
|
+
else
|
29
|
+
#host is not in dns. optionally use:
|
30
|
+
#C:\WINDOWS\system32\drivers\etc\hosts
|
31
|
+
fqdn Socket.gethostbyaddr(info.last).first
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,256 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Doug MacEachern <dougm@vmware.com>
|
3
|
+
# Copyright:: Copyright (c) 2010 VMware, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'rbconfig'
|
20
|
+
|
21
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '/spec_helper.rb'))
|
22
|
+
|
23
|
+
C_GCC = <<EOF
|
24
|
+
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/specs
|
25
|
+
Configured with: ../configure --prefix=/usr ... --host=x86_64-redhat-linux
|
26
|
+
Thread model: posix
|
27
|
+
gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)
|
28
|
+
EOF
|
29
|
+
|
30
|
+
C_GLIBC = <<EOF
|
31
|
+
GNU C Library stable release version 2.3.4, by Roland McGrath et al.
|
32
|
+
Copyright (C) 2005 Free Software Foundation, Inc.
|
33
|
+
This is free software; see the source for copying conditions.
|
34
|
+
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
|
35
|
+
PARTICULAR PURPOSE.
|
36
|
+
Compiled by GNU CC version 3.4.6 20060404 (Red Hat 3.4.6-3).
|
37
|
+
Compiled on a Linux 2.4.20 system on 2006-08-12.
|
38
|
+
Available extensions:
|
39
|
+
GNU libio by Per Bothner
|
40
|
+
crypt add-on version 2.1 by Michael Glad and others
|
41
|
+
linuxthreads-0.10 by Xavier Leroy
|
42
|
+
The C stubs add-on version 2.1.2.
|
43
|
+
BIND-8.2.3-T5B
|
44
|
+
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
|
45
|
+
Glibc-2.0 compatibility add-on by Cristian Gafton
|
46
|
+
GNU Libidn by Simon Josefsson
|
47
|
+
libthread_db work sponsored by Alpha Processor Inc
|
48
|
+
Thread-local storage support included.
|
49
|
+
For bug reporting instructions, please see:
|
50
|
+
<http://www.gnu.org/software/libc/bugs.html>.
|
51
|
+
EOF
|
52
|
+
|
53
|
+
C_CL = <<EOF
|
54
|
+
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
|
55
|
+
Copyright (C) Microsoft Corporation. All rights reserved.
|
56
|
+
EOF
|
57
|
+
|
58
|
+
C_VS = <<EOF
|
59
|
+
|
60
|
+
Microsoft (R) Visual Studio Version 8.0.50727.762.
|
61
|
+
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.
|
62
|
+
EOF
|
63
|
+
|
64
|
+
C_XLC = <<EOF
|
65
|
+
IBM XL C/C++ Enterprise Edition for AIX, V9.0
|
66
|
+
Version: 09.00.0000.0000
|
67
|
+
EOF
|
68
|
+
|
69
|
+
C_SUN = <<EOF
|
70
|
+
cc: Sun C 5.8 Patch 121016-06 2007/08/01
|
71
|
+
EOF
|
72
|
+
|
73
|
+
C_HPUX = <<EOF
|
74
|
+
/opt/ansic/bin/cc:
|
75
|
+
$Revision: 92453-07 linker linker crt0.o B.11.47 051104 $
|
76
|
+
LINT B.11.11.16 CXREF B.11.11.16
|
77
|
+
HP92453-01 B.11.11.16 HP C Compiler
|
78
|
+
$ PATCH/11.00:PHCO_27774 Oct 3 2002 09:45:59 $
|
79
|
+
EOF
|
80
|
+
|
81
|
+
describe Ohai::System, "plugin c" do
|
82
|
+
|
83
|
+
before(:each) do
|
84
|
+
@ohai = Ohai::System.new
|
85
|
+
@ohai[:languages] = Mash.new
|
86
|
+
@ohai.stub!(:require_plugin).and_return(true)
|
87
|
+
#gcc
|
88
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"gcc -v"}).and_return([0, "", C_GCC])
|
89
|
+
#glibc
|
90
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"/lib/libc.so.6"}).and_return([0, C_GLIBC, ""])
|
91
|
+
#ms cl
|
92
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"cl /\?"}).and_return([0, "", C_CL])
|
93
|
+
#ms vs
|
94
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"devenv.com /\?"}).and_return([0, C_VS, ""])
|
95
|
+
#ibm xlc
|
96
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"xlc -qversion"}).and_return([0, C_XLC, ""])
|
97
|
+
#sun pro
|
98
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"cc -V -flags"}).and_return([0, "", C_SUN])
|
99
|
+
#hpux cc
|
100
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"what /opt/ansic/bin/cc"}).and_return([0, C_HPUX, ""])
|
101
|
+
end
|
102
|
+
|
103
|
+
#gcc
|
104
|
+
it "should get the gcc version from running gcc -v" do
|
105
|
+
@ohai.should_receive(:run_command).with({:no_status_check=>true, :command=>"gcc -v"}).and_return([0, "", C_GCC])
|
106
|
+
@ohai._require_plugin("c")
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should set languages[:c][:gcc][:version]" do
|
110
|
+
@ohai._require_plugin("c")
|
111
|
+
@ohai.languages[:c][:gcc][:version].should eql("3.4.6")
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should set languages[:c][:gcc][:description]" do
|
115
|
+
@ohai._require_plugin("c")
|
116
|
+
@ohai.languages[:c][:gcc][:description].should eql(C_GCC.split($/).last)
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should not set the languages[:c][:gcc] tree up if gcc command fails" do
|
120
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"gcc -v"}).and_return([1, "", ""])
|
121
|
+
@ohai._require_plugin("c")
|
122
|
+
@ohai[:languages][:c].should_not have_key(:gcc) if @ohai[:languages][:c]
|
123
|
+
end
|
124
|
+
|
125
|
+
#glibc
|
126
|
+
it "should get the glibc version from running gcc -v" do
|
127
|
+
@ohai.should_receive(:run_command).with({:no_status_check=>true, :command=>"/lib/libc.so.6"}).and_return([0, C_GLIBC, ""])
|
128
|
+
@ohai._require_plugin("c")
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should set languages[:c][:glibc][:version]" do
|
132
|
+
@ohai._require_plugin("c")
|
133
|
+
@ohai.languages[:c][:glibc][:version].should eql("2.3.4")
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should set languages[:c][:glibc][:description]" do
|
137
|
+
@ohai._require_plugin("c")
|
138
|
+
@ohai.languages[:c][:glibc][:description].should eql(C_GLIBC.split($/).first)
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should not set the languages[:c][:glibc] tree up if glibc command fails" do
|
142
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"/lib/libc.so.6"}).and_return([1, "", ""])
|
143
|
+
@ohai._require_plugin("c")
|
144
|
+
@ohai[:languages][:c].should_not have_key(:glibc) if @ohai[:languages][:c]
|
145
|
+
end
|
146
|
+
|
147
|
+
#ms cl
|
148
|
+
it "should get the cl version from running cl /?" do
|
149
|
+
@ohai.should_receive(:run_command).with({:no_status_check=>true, :command=>"cl /\?"}).and_return([0, "", C_CL])
|
150
|
+
@ohai._require_plugin("c")
|
151
|
+
end
|
152
|
+
|
153
|
+
it "should set languages[:c][:cl][:version]" do
|
154
|
+
@ohai._require_plugin("c")
|
155
|
+
@ohai.languages[:c][:cl][:version].should eql("14.00.50727.762")
|
156
|
+
end
|
157
|
+
|
158
|
+
it "should set languages[:c][:cl][:description]" do
|
159
|
+
@ohai._require_plugin("c")
|
160
|
+
@ohai.languages[:c][:cl][:description].should eql(C_CL.split($/).first)
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should not set the languages[:c][:cl] tree up if cl command fails" do
|
164
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"cl /\?"}).and_return([1, "", ""])
|
165
|
+
@ohai._require_plugin("c")
|
166
|
+
@ohai[:languages][:c].should_not have_key(:cl) if @ohai[:languages][:c]
|
167
|
+
end
|
168
|
+
|
169
|
+
#ms vs
|
170
|
+
it "should get the vs version from running devenv.com /?" do
|
171
|
+
@ohai.should_receive(:run_command).with({:no_status_check=>true, :command=>"devenv.com /\?"}).and_return([0, C_VS, ""])
|
172
|
+
@ohai._require_plugin("c")
|
173
|
+
end
|
174
|
+
|
175
|
+
it "should set languages[:c][:vs][:version]" do
|
176
|
+
@ohai._require_plugin("c")
|
177
|
+
@ohai.languages[:c][:vs][:version].should eql("8.0.50727.762")
|
178
|
+
end
|
179
|
+
|
180
|
+
it "should set languages[:c][:vs][:description]" do
|
181
|
+
@ohai._require_plugin("c")
|
182
|
+
@ohai.languages[:c][:vs][:description].should eql(C_VS.split($/)[1])
|
183
|
+
end
|
184
|
+
|
185
|
+
it "should not set the languages[:c][:vs] tree up if devenv command fails" do
|
186
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"devenv.com /\?"}).and_return([1, "", ""])
|
187
|
+
@ohai._require_plugin("c")
|
188
|
+
@ohai[:languages][:c].should_not have_key(:vs) if @ohai[:languages][:c]
|
189
|
+
end
|
190
|
+
|
191
|
+
#ibm xlc
|
192
|
+
it "should get the xlc version from running xlc -qversion" do
|
193
|
+
@ohai.should_receive(:run_command).with({:no_status_check=>true, :command=>"xlc -qversion"}).and_return([0, C_XLC, ""])
|
194
|
+
@ohai._require_plugin("c")
|
195
|
+
end
|
196
|
+
|
197
|
+
it "should set languages[:c][:xlc][:version]" do
|
198
|
+
@ohai._require_plugin("c")
|
199
|
+
@ohai.languages[:c][:xlc][:version].should eql("09.00.0000.0000")
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should set languages[:c][:xlc][:description]" do
|
203
|
+
@ohai._require_plugin("c")
|
204
|
+
@ohai.languages[:c][:xlc][:description].should eql(C_XLC.split($/).first)
|
205
|
+
end
|
206
|
+
|
207
|
+
it "should not set the languages[:c][:xlc] tree up if xlc command fails" do
|
208
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"xlc -qversion"}).and_return([1, "", ""])
|
209
|
+
@ohai._require_plugin("c")
|
210
|
+
@ohai[:languages][:c].should_not have_key(:xlc) if @ohai[:languages][:c]
|
211
|
+
end
|
212
|
+
|
213
|
+
#sun pro
|
214
|
+
it "should get the cc version from running cc -V -flags" do
|
215
|
+
@ohai.should_receive(:run_command).with({:no_status_check=>true, :command=>"cc -V -flags"}).and_return([0, "", C_SUN])
|
216
|
+
@ohai._require_plugin("c")
|
217
|
+
end
|
218
|
+
|
219
|
+
it "should set languages[:c][:sunpro][:version]" do
|
220
|
+
@ohai._require_plugin("c")
|
221
|
+
@ohai.languages[:c][:sunpro][:version].should eql("5.8")
|
222
|
+
end
|
223
|
+
|
224
|
+
it "should set languages[:c][:sunpro][:description]" do
|
225
|
+
@ohai._require_plugin("c")
|
226
|
+
@ohai.languages[:c][:sunpro][:description].should eql(C_SUN.chomp)
|
227
|
+
end
|
228
|
+
|
229
|
+
it "should not set the languages[:c][:sunpro] tree up if cc command fails" do
|
230
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"cc -V -flags"}).and_return([1, "", ""])
|
231
|
+
@ohai._require_plugin("c")
|
232
|
+
@ohai[:languages][:c].should_not have_key(:sunpro) if @ohai[:languages][:c]
|
233
|
+
end
|
234
|
+
|
235
|
+
#hpux cc
|
236
|
+
it "should get the cc version from running what cc" do
|
237
|
+
@ohai.should_receive(:run_command).with({:no_status_check=>true, :command=>"what /opt/ansic/bin/cc"}).and_return([0, C_HPUX, ""])
|
238
|
+
@ohai._require_plugin("c")
|
239
|
+
end
|
240
|
+
|
241
|
+
it "should set languages[:c][:hpcc][:version]" do
|
242
|
+
@ohai._require_plugin("c")
|
243
|
+
@ohai.languages[:c][:hpcc][:version].should eql("B.11.11.16")
|
244
|
+
end
|
245
|
+
|
246
|
+
it "should set languages[:c][:hpcc][:description]" do
|
247
|
+
@ohai._require_plugin("c")
|
248
|
+
@ohai.languages[:c][:hpcc][:description].should eql(C_HPUX.split($/)[3].strip)
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should not set the languages[:c][:hpcc] tree up if cc command fails" do
|
252
|
+
@ohai.stub!(:run_command).with({:no_status_check=>true, :command=>"what /opt/ansic/bin/cc"}).and_return([1, "", ""])
|
253
|
+
@ohai._require_plugin("c")
|
254
|
+
@ohai[:languages][:c].should_not have_key(:hpcc) if @ohai[:languages][:c]
|
255
|
+
end
|
256
|
+
end
|
@@ -38,13 +38,16 @@ describe Ohai::System, "plugin ec2" do
|
|
38
38
|
before(:each) do
|
39
39
|
OpenURI.stub!(:open_uri).
|
40
40
|
with("http://169.254.169.254/2008-02-01/meta-data/").
|
41
|
-
and_return(mock(IO, :read => "instance_type\nami_id\
|
41
|
+
and_return(mock(IO, :read => "instance_type\nami_id\nsecurity-groups"))
|
42
42
|
OpenURI.stub!(:open_uri).
|
43
43
|
with("http://169.254.169.254/2008-02-01/meta-data/instance_type").
|
44
44
|
and_return(mock(IO, :read => "c1.medium"))
|
45
45
|
OpenURI.stub!(:open_uri).
|
46
46
|
with("http://169.254.169.254/2008-02-01/meta-data/ami_id").
|
47
47
|
and_return(mock(IO, :read => "ami-5d2dc934"))
|
48
|
+
OpenURI.stub!(:open_uri).
|
49
|
+
with("http://169.254.169.254/2008-02-01/meta-data/security-groups").
|
50
|
+
and_return(mock(IO, :read => "group1\ngroup2"))
|
48
51
|
OpenURI.stub!(:open_uri).
|
49
52
|
with("http://169.254.169.254/2008-02-01/user-data/").
|
50
53
|
and_return(mock(IO, :gets => "By the pricking of my thumb..."))
|
@@ -59,6 +62,7 @@ describe Ohai::System, "plugin ec2" do
|
|
59
62
|
@ohai[:ec2].should_not be_nil
|
60
63
|
@ohai[:ec2]['instance_type'].should == "c1.medium"
|
61
64
|
@ohai[:ec2]['ami_id'].should == "ami-5d2dc934"
|
65
|
+
@ohai[:ec2]['security_groups'].should eql ['group1', 'group2']
|
62
66
|
end
|
63
67
|
end
|
64
68
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 5
|
8
|
-
-
|
9
|
-
version: 0.5.
|
8
|
+
- 6
|
9
|
+
version: 0.5.6
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Adam Jacob
|
@@ -14,7 +14,7 @@ autorequire: ohai
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-06-20 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -126,6 +126,7 @@ files:
|
|
126
126
|
- lib/ohai/plugins/aix/ps.rb
|
127
127
|
- lib/ohai/plugins/aix/ssh_host_key.rb
|
128
128
|
- lib/ohai/plugins/aix/uptime.rb
|
129
|
+
- lib/ohai/plugins/c.rb
|
129
130
|
- lib/ohai/plugins/chef.rb
|
130
131
|
- lib/ohai/plugins/cloud.rb
|
131
132
|
- lib/ohai/plugins/command.rb
|
@@ -232,6 +233,7 @@ files:
|
|
232
233
|
- lib/ohai/plugins/solaris2/ssh_host_key.rb
|
233
234
|
- lib/ohai/plugins/uptime.rb
|
234
235
|
- lib/ohai/plugins/virtualization.rb
|
236
|
+
- lib/ohai/plugins/windows/cpu.rb
|
235
237
|
- lib/ohai/plugins/windows/filesystem.rb
|
236
238
|
- lib/ohai/plugins/windows/hostname.rb
|
237
239
|
- lib/ohai/plugins/windows/kernel.rb
|
@@ -241,6 +243,7 @@ files:
|
|
241
243
|
- lib/ohai.rb
|
242
244
|
- spec/ohai/mixin/command_spec.rb
|
243
245
|
- spec/ohai/mixin/from_file_spec.rb
|
246
|
+
- spec/ohai/plugins/c_spec.rb
|
244
247
|
- spec/ohai/plugins/chef_spec.rb
|
245
248
|
- spec/ohai/plugins/cloud_spec.rb
|
246
249
|
- spec/ohai/plugins/darwin/hostname_spec.rb
|
@@ -318,7 +321,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
318
321
|
requirements: []
|
319
322
|
|
320
323
|
rubyforge_project:
|
321
|
-
rubygems_version: 1.3.
|
324
|
+
rubygems_version: 1.3.7
|
322
325
|
signing_key:
|
323
326
|
specification_version: 3
|
324
327
|
summary: Ohai profiles your system and emits JSON
|