kurchatov 0.3.6 → 0.3.7

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: 465cfbb25d231a3ffedaa85ac160858016fa0329
4
- data.tar.gz: a82edc6e0e929895e07de030da62b371facc5b17
3
+ metadata.gz: a8d6eb36e174f42d37ad9c7cba3c33dd0c60fff4
4
+ data.tar.gz: 59be76330cb9ffdab86f2ea892f3c399b49ce99d
5
5
  SHA512:
6
- metadata.gz: d67ebeb9d6914c97e7c791b67996ec784f8600226b695d2fb7def699365f25ebd7e334ee5c44d2f8c4323afab7256ff38e2848c2e8d2c98e1caae44344374ab1
7
- data.tar.gz: 710f443ae3d5b56ceaa81111880f178aea99e9c3deebc09d2a99e408c029b29771db59d0f9d0a5bbc1fe46935ea3209caf6289ab7b03d1be5a562d898a307878
6
+ metadata.gz: e94b9621f4315d9657375eeb8197a8b54dc22ed0a97b56c27188162b8208fa962342bce75af7caf0ab4b08a325d24ca69ef44180f69f1692cf8f660cff00179b
7
+ data.tar.gz: c07a3581a3e1dbff6925a52a4585c98b92a16205e599ed520e836d27a859c76d1f7f5fbd911babb16a19ddb8ea52879dda9273ccf7ffef948f14a361e257ba42
data/app/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "kurchatov", "= 0.3.5"
3
+ gem "kurchatov", "= 0.3.6"
4
4
  gem "beefcake", "=0.5.0"
5
5
  gem "sys-filesystem"
6
6
  gem "sys-proctable"
data/app/Gemfile.lock CHANGED
@@ -11,7 +11,7 @@ GEM
11
11
  file-tail (1.0.12)
12
12
  tins (~> 0.5)
13
13
  ipaddress (0.8.0)
14
- kurchatov (0.3.5)
14
+ kurchatov (0.3.6)
15
15
  beefcake (>= 0.3.5)
16
16
  ohai (~> 6.20.0)
17
17
  mixlib-cli (1.5.0)
@@ -46,7 +46,7 @@ DEPENDENCIES
46
46
  beefcake (= 0.5.0)
47
47
  ffi-rzmq
48
48
  file-tail
49
- kurchatov (= 0.3.5)
49
+ kurchatov (= 0.3.6)
50
50
  net-ntp
51
51
  net-ping
52
52
  parallel
data/debian/changelog CHANGED
@@ -1,3 +1,9 @@
1
+ riemann-client (1:0.3.6) stable; urgency=low
2
+
3
+ * Max queue size.
4
+
5
+ -- Undev DevOps Team <devops@undev.ru> Sun, 14 Aug 2014 05:13:45 +0000
6
+
1
7
  riemann-client (1:0.3.5) stable; urgency=low
2
8
 
3
9
  * Full ohai support.
@@ -108,8 +108,6 @@ module Kurchatov
108
108
  end
109
109
 
110
110
  def configure_defaults
111
- ::Ohai::Config[:plugin_path] = [::Ohai::Config[:plugin_path],
112
- File.expand_path(File.join('..', 'ohai', 'plugins'), File.dirname(__FILE__))].flatten.compact
113
111
  if Config[:ohai_plugins_paths]
114
112
  ::Ohai::Config[:plugin_path] += Config[:ohai_plugins_paths]
115
113
  end
@@ -1,3 +1,3 @@
1
1
  module Kurchatov
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kurchatov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasiliev Dmitry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-14 00:00:00.000000000 Z
11
+ date: 2014-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: beefcake
@@ -182,24 +182,6 @@ files:
182
182
  - lib/kurchatov/riemann/event.rb
183
183
  - lib/kurchatov/riemann/message.rb
184
184
  - lib/kurchatov/version.rb
185
- - lib/ohai/plugins/darwin/cpu.rb
186
- - lib/ohai/plugins/darwin/hostname.rb
187
- - lib/ohai/plugins/darwin/platform.rb
188
- - lib/ohai/plugins/freebsd/cpu.rb
189
- - lib/ohai/plugins/freebsd/hostname.rb
190
- - lib/ohai/plugins/freebsd/platform.rb
191
- - lib/ohai/plugins/freebsd/virtualization.rb
192
- - lib/ohai/plugins/hostname.rb
193
- - lib/ohai/plugins/linux/cpu.rb
194
- - lib/ohai/plugins/linux/hostname.rb
195
- - lib/ohai/plugins/linux/platform.rb
196
- - lib/ohai/plugins/linux/virtualization.rb
197
- - lib/ohai/plugins/os.rb
198
- - lib/ohai/plugins/platform.rb
199
- - lib/ohai/plugins/virtualization.rb
200
- - lib/ohai/plugins/windows/cpu.rb
201
- - lib/ohai/plugins/windows/hostname.rb
202
- - lib/ohai/plugins/windows/platform.rb
203
185
  - tests/data/config.yml
204
186
  - tests/data/event.yml
205
187
  - tests/data/plugins/plugin_data.rb
@@ -1,23 +0,0 @@
1
- #
2
- # Author:: Nathan L Smith (<nlloyds@gmail.com>)
3
- # Copyright:: Copyright (c) 2013 Opscode, 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
- provides 'cpu'
20
-
21
- cpu Mash.new
22
- cpu[:real] = from('sysctl -n hw.physicalcpu').to_i
23
- cpu[:total] = from('sysctl -n hw.logicalcpu').to_i
@@ -1,22 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@opscode.com>)
3
- # Copyright:: Copyright (c) 2008 Opscode, 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
- provides 'fqdn', 'hostname'
20
-
21
- hostname from('hostname -s')
22
- fqdn from('hostname')
@@ -1,38 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@opscode.com>)
3
- # Copyright:: Copyright (c) 2008 Opscode, 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
- provides 'platform', 'platform_version', 'platform_build', 'platform_family'
20
-
21
- popen4('/usr/bin/sw_vers') do |pid, stdin, stdout, stderr|
22
- stdin.close
23
- stdout.each do |line|
24
- case line
25
- when /^ProductName:\s+(.+)$/
26
- macname = $1
27
- macname.downcase!
28
- macname.gsub!(' ', '_')
29
- platform macname
30
- when /^ProductVersion:\s+(.+)$/
31
- platform_version $1
32
- when /^BuildVersion:\s+(.+)$/
33
- platform_build $1
34
- end
35
- end
36
- end
37
-
38
- platform_family 'mac_os_x'
@@ -1,52 +0,0 @@
1
- #
2
- # Author:: Bryan McLellan (btm@loftninjas.org)
3
- # Copyright:: Copyright (c) 2008 Bryan McLellan
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
- provides "cpu"
20
-
21
- # all dmesg output for smp I can find only provides info about a single processor
22
- # identical processors is probably a hardware requirement so we'll duplicate data for each cpu
23
- # old examples: http://www.bnv-bamberg.de/home/ba3294/smp/rbuild/index.htm
24
- cpuinfo = Mash.new
25
-
26
- # /var/run/dmesg.boot
27
- #CPU: QEMU Virtual CPU version 0.9.1 (1862.02-MHz 686-class CPU)
28
- # Origin = "GenuineIntel" Id = 0x623 Stepping = 3
29
- # Features=0x78bfbfd<FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
30
- # Features2=0x80000001<SSE3,<b31>>
31
-
32
- File.open("/var/run/dmesg.boot").each do |line|
33
- case line
34
- when /CPU:\s+(.+) \(([\d.]+).+\)/
35
- cpuinfo["model_name"] = $1
36
- cpuinfo["mhz"] = $2
37
- when /Origin = "(.+)"\s+Id = (.+)\s+Stepping = (.+)/
38
- cpuinfo["vendor_id"] = $1
39
- cpuinfo["stepping"] = $3
40
- # These _should_ match /AMD Features2?/ lines as well
41
- when /Features=.+<(.+)>/
42
- cpuinfo["flags"] = $1.downcase.split(',')
43
- # Features2=0x80000001<SSE3,<b31>>
44
- when /Features2=[a-f\dx]+<(.+)>/
45
- cpuinfo["flags"].concat($1.downcase.split(','))
46
- when /Logical CPUs per core: (\d+)/
47
- cpuinfo["cores"] = $1
48
- end
49
- end
50
-
51
- cpu cpuinfo
52
- cpu[:total] = from("sysctl -n hw.ncpu")
@@ -1,22 +0,0 @@
1
- #
2
- # Author:: Bryan McLellan (btm@loftninjas.org)
3
- # Copyright:: Copyright (c) 2009 Bryan McLellan
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
- provides "hostname", "fqdn"
20
-
21
- hostname from("hostname -s")
22
- fqdn from("hostname -f")
@@ -1,23 +0,0 @@
1
- #
2
- # Author:: Bryan McLellan (btm@loftninjas.org)
3
- # Copyright:: Copyright (c) 2009 Bryan McLellan
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
- provides "platform", "platform_version"
20
-
21
- platform from("uname -s").downcase
22
- platform_version from("uname -r")
23
-
@@ -1,93 +0,0 @@
1
- #
2
- # Author:: Bryan McLellan (btm@loftninjas.org)
3
- # Copyright:: Copyright (c) 2009 Bryan McLellan
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
- provides "virtualization"
20
-
21
- virtualization Mash.new
22
-
23
- if from("sysctl -n security.jail.jailed").to_i == 1
24
- virtualization[:system] = "jail"
25
- virtualization[:role] = "guest"
26
- end
27
-
28
- # detect from modules
29
- popen4("/sbin/kldstat") do |pid, stdin, stdout, stderr|
30
- stdin.close
31
- stdout.each do |line|
32
- case line
33
- when /vboxdrv/
34
- virtualization[:system] = "vbox"
35
- virtualization[:role] = "host"
36
- when /vboxguest/
37
- virtualization[:system] = "vbox"
38
- virtualization[:role] = "guest"
39
- end
40
- end
41
- end
42
-
43
-
44
- # XXX doesn't work when jail is there but not running (ezjail-admin stop)
45
- if from("jls -n \| wc -l").to_i >= 1
46
- virtualization[:system] = "jail"
47
- virtualization[:role] = "host"
48
- end
49
-
50
- # KVM Host support for FreeBSD is in development
51
- # http://feanor.sssup.it/~fabio/freebsd/lkvm/
52
-
53
- # Detect KVM/QEMU from cpu, report as KVM
54
- # hw.model: QEMU Virtual CPU version 0.9.1
55
- if from("sysctl -n hw.model") =~ /QEMU Virtual CPU/
56
- virtualization[:system] = "kvm"
57
- virtualization[:role] = "guest"
58
- end
59
-
60
- # http://www.dmo.ca/blog/detecting-virtualization-on-linux
61
- if File.exists?("/usr/local/sbin/dmidecode")
62
- popen4("dmidecode") do |pid, stdin, stdout, stderr|
63
- stdin.close
64
- found_virt_manufacturer = nil
65
- found_virt_product = nil
66
- stdout.each do |line|
67
- case line
68
- when /Manufacturer: Microsoft/
69
- found_virt_manufacturer = "microsoft"
70
- when /Product Name: Virtual Machine/
71
- found_virt_product = "microsoft"
72
- when /Version: 5.0/
73
- if found_virt_manufacturer == "microsoft" && found_virt_product == "microsoft"
74
- virtualization[:system] = "virtualpc"
75
- virtualization[:role] = "guest"
76
- end
77
- when /Version: VS2005R2/
78
- if found_virt_manufacturer == "microsoft" && found_virt_product == "microsoft"
79
- virtualization[:system] = "virtualserver"
80
- virtualization[:role] = "guest"
81
- end
82
- when /Manufacturer: VMware/
83
- found_virt_manufacturer = "vmware"
84
- when /Product Name: VMware Virtual Platform/
85
- if found_virt_manufacturer == "vmware"
86
- virtualization[:system] = "vmware"
87
- virtualization[:role] = "guest"
88
- end
89
- end
90
- end
91
- end
92
- end
93
-
@@ -1,27 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@opscode.com>)
3
- # Copyright:: Copyright (c) 2008 Opscode, 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
- provides 'fqdn', 'domain'
20
-
21
- require_plugin "#{os}::hostname"
22
-
23
- # Domain is everything after the first dot
24
- if fqdn
25
- fqdn =~ /.+?\.(.*)/
26
- domain $1
27
- end
@@ -1,60 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@opscode.com>)
3
- # Copyright:: Copyright (c) 2008 Opscode, 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
- provides 'cpu'
20
-
21
- cpuinfo = Mash.new
22
- real_cpu = Mash.new
23
- cpu_number = 0
24
- current_cpu = nil
25
-
26
- File.open('/proc/cpuinfo').each do |line|
27
- case line
28
- when /processor\s+:\s(.+)/
29
- cpuinfo[$1] = Mash.new
30
- current_cpu = $1
31
- cpu_number += 1
32
- when /vendor_id\s+:\s(.+)/
33
- cpuinfo[current_cpu]['vendor_id'] = $1
34
- when /cpu family\s+:\s(.+)/
35
- cpuinfo[current_cpu]['family'] = $1
36
- when /model\s+:\s(.+)/
37
- cpuinfo[current_cpu]['model'] = $1
38
- when /stepping\s+:\s(.+)/
39
- cpuinfo[current_cpu]['stepping'] = $1
40
- when /physical id\s+:\s(.+)/
41
- cpuinfo[current_cpu]['physical_id'] = $1
42
- real_cpu[$1] = true
43
- when /core id\s+:\s(.+)/
44
- cpuinfo[current_cpu]['core_id'] = $1
45
- when /cpu cores\s+:\s(.+)/
46
- cpuinfo[current_cpu]['cores'] = $1
47
- when /model name\s+:\s(.+)/
48
- cpuinfo[current_cpu]['model_name'] = $1
49
- when /cpu MHz\s+:\s(.+)/
50
- cpuinfo[current_cpu]['mhz'] = $1
51
- when /cache size\s+:\s(.+)/
52
- cpuinfo[current_cpu]['cache_size'] = $1
53
- when /flags\s+:\s(.+)/
54
- cpuinfo[current_cpu]['flags'] = $1.split(' ')
55
- end
56
- end
57
-
58
- cpu cpuinfo
59
- cpu[:total] = cpu_number
60
- cpu[:real] = real_cpu.keys.length
@@ -1,26 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@opscode.com>)
3
- # Copyright:: Copyright (c) 2008 Opscode, 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
- provides 'hostname', 'fqdn'
20
-
21
- hostname from('hostname -s')
22
- begin
23
- fqdn from('hostname --fqdn')
24
- rescue
25
- Ohai::Log.debug('hostname -f returned an error, probably no domain is set')
26
- end
@@ -1,113 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@opscode.com>)
3
- # Copyright:: Copyright (c) 2008 Opscode, 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
- def get_redhatish_platform(contents)
20
- contents[/^Red Hat/i] ? 'redhat' : contents[/(\w+)/i, 1].downcase
21
- end
22
-
23
- def get_redhatish_version(contents)
24
- contents[/Rawhide/i] ? contents[/((\d+) \(Rawhide\))/i, 1].downcase : contents[/release ([\d\.]+)/, 1]
25
- end
26
-
27
- provides 'platform', 'platform_version', 'platform_family'
28
-
29
- require_plugin 'linux::lsb'
30
-
31
- # platform [ and platform_version ? ] should be lower case to avoid dealing with RedHat/Redhat/redhat matching
32
- if File.exists?('/etc/oracle-release')
33
- contents = File.read('/etc/oracle-release').chomp
34
- platform 'oracle'
35
- platform_version get_redhatish_version(contents)
36
- elsif File.exists?('/etc/enterprise-release')
37
- contents = File.read('/etc/enterprise-release').chomp
38
- platform 'oracle'
39
- platform_version get_redhatish_version(contents)
40
- elsif File.exists?('/etc/debian_version')
41
- # Ubuntu and Debian both have /etc/debian_version
42
- # Ubuntu should always have a working lsb, debian does not by default
43
- if lsb[:id] =~ /Ubuntu/i
44
- platform 'ubuntu'
45
- platform_version lsb[:release]
46
- elsif lsb[:id] =~ /LinuxMint/i
47
- platform 'linuxmint'
48
- platform_version lsb[:release]
49
- else
50
- if File.exists?('/usr/bin/raspi-config')
51
- platform 'raspbian'
52
- else
53
- platform 'debian'
54
- end
55
- platform_version File.read('/etc/debian_version').chomp
56
- end
57
- elsif File.exists?('/etc/redhat-release')
58
- contents = File.read('/etc/redhat-release').chomp
59
- platform get_redhatish_platform(contents)
60
- platform_version get_redhatish_version(contents)
61
- elsif File.exists?('/etc/system-release')
62
- contents = File.read('/etc/system-release').chomp
63
- platform get_redhatish_platform(contents)
64
- platform_version get_redhatish_version(contents)
65
- elsif File.exists?('/etc/gentoo-release')
66
- platform 'gentoo'
67
- platform_version File.read('/etc/gentoo-release').scan(/(\d+|\.+)/).join
68
- elsif File.exists?('/etc/SuSE-release')
69
- platform 'suse'
70
- suse_release = File.read('/etc/SuSE-release')
71
- platform_version suse_release.scan(/VERSION = (\d+)\nPATCHLEVEL = (\d+)/).flatten.join('.')
72
- platform_version suse_release.scan(/VERSION = ([\d\.]{2,})/).flatten.join('.') if platform_version == ''
73
- elsif File.exists?('/etc/slackware-version')
74
- platform 'slackware'
75
- platform_version File.read('/etc/slackware-version').scan(/(\d+|\.+)/).join
76
- elsif File.exists?('/etc/arch-release')
77
- platform 'arch'
78
- # no way to determine platform_version in a rolling release distribution
79
- # kernel release will be used - ex. 2.6.32-ARCH
80
- elsif lsb[:id] =~ /RedHat/i
81
- platform 'redhat'
82
- platform_version lsb[:release]
83
- elsif lsb[:id] =~ /Amazon/i
84
- platform 'amazon'
85
- platform_version lsb[:release]
86
- elsif lsb[:id] =~ /ScientificSL/i
87
- platform 'scientific'
88
- platform_version lsb[:release]
89
- elsif lsb[:id] =~ /XenServer/i
90
- platform 'xenserver'
91
- platform_version lsb[:release]
92
- elsif lsb[:id] # LSB can provide odd data that changes between releases, so we currently fall back on it rather than dealing with its subtleties
93
- platform lsb[:id].downcase
94
- platform_version lsb[:release]
95
- end
96
-
97
-
98
- case platform
99
- when /debian/, /ubuntu/, /linuxmint/, /raspbian/
100
- platform_family 'debian'
101
- when /fedora/
102
- platform_family 'fedora'
103
- when /oracle/, /centos/, /redhat/, /scientific/, /enterpriseenterprise/, /amazon/, /xenserver/ # Note that 'enterpriseenterprise' is oracle's LSB "distributor ID"
104
- platform_family 'rhel'
105
- when /suse/
106
- platform_family 'suse'
107
- when /gentoo/
108
- platform_family 'gentoo'
109
- when /slackware/
110
- platform_family 'slackware'
111
- when /arch/
112
- platform_family 'arch'
113
- end
@@ -1,125 +0,0 @@
1
- #
2
- # Author:: Thom May (<thom@clearairturbulence.org>)
3
- # Copyright:: Copyright (c) 2009 Opscode, 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
- provides 'virtualization'
20
-
21
- virtualization Mash.new
22
-
23
- # if it is possible to detect paravirt vs hardware virt, it should be put in
24
- # virtualization[:mechanism]
25
-
26
- ## Xen
27
- # /proc/xen is an empty dir for EL6 + Linode Guests
28
- if File.exists?('/proc/xen')
29
- virtualization[:system] = 'xen'
30
- # Assume guest
31
- virtualization[:role] = 'guest'
32
-
33
- # This file should exist on most Xen systems, normally empty for guests
34
- if File.exists?('/proc/xen/capabilities')
35
- if File.read('/proc/xen/capabilities') =~ /control_d/i
36
- virtualization[:role] = 'host'
37
- end
38
- end
39
- end
40
-
41
- # Xen Notes:
42
- # - cpuid of guests, if we could get it, would also be a clue
43
- # - may be able to determine if under paravirt from /dev/xen/evtchn (See OHAI-253)
44
- # - EL6 guests carry a 'hypervisor' cpu flag
45
- # - Additional edge cases likely should not change the above assumptions
46
- # but rather be additive - btm
47
-
48
- # Detect from kernel module
49
- if File.exists?('/proc/modules')
50
- modules = File.read('/proc/modules')
51
- if modules =~ /^kvm/
52
- virtualization[:system] = 'kvm'
53
- virtualization[:role] = 'host'
54
- elsif modules =~ /^vboxdrv/
55
- virtualization[:system] = 'vbox'
56
- virtualization[:role] = 'host'
57
- elsif modules =~ /^vboxguest/
58
- virtualization[:system] = 'vbox'
59
- virtualization[:role] = 'guest'
60
- end
61
- end
62
-
63
- # Detect KVM/QEMU from cpuinfo, report as KVM
64
- # We could pick KVM from 'Booting paravirtualized kernel on KVM' in dmesg
65
- # 2.6.27-9-server (intrepid) has this / 2.6.18-6-amd64 (etch) does not
66
- # It would be great if we could read pv_info in the kernel
67
- # Wait for reply to: http://article.gmane.org/gmane.comp.emulators.kvm.devel/27885
68
- if File.exists?('/proc/cpuinfo')
69
- if File.read('/proc/cpuinfo') =~ /QEMU Virtual CPU/
70
- virtualization[:system] = 'kvm'
71
- virtualization[:role] = 'guest'
72
- end
73
- end
74
-
75
- # Detect OpenVZ / Virtuozzo.
76
- # http://wiki.openvz.org/BC_proc_entries
77
- if File.exists?('/proc/bc/0')
78
- virtualization[:system] = 'openvz'
79
- virtualization[:role] = 'host'
80
- elsif File.exists?('/proc/vz')
81
- virtualization[:system] = 'openvz'
82
- virtualization[:role] = 'guest'
83
- end
84
-
85
- # http://www.dmo.ca/blog/detecting-virtualization-on-linux
86
- if File.exists?('/usr/sbin/dmidecode')
87
- popen4('dmidecode') do |pid, stdin, stdout, stderr|
88
- stdin.close
89
- dmi_info = stdout.read
90
- case dmi_info
91
- when /Manufacturer: Microsoft/
92
- if dmi_info =~ /Product Name: Virtual Machine/
93
- virtualization[:system] = 'virtualpc'
94
- virtualization[:role] = 'guest'
95
- end
96
- when /Manufacturer: VMware/
97
- if dmi_info =~ /Product Name: VMware Virtual Platform/
98
- virtualization[:system] = 'vmware'
99
- virtualization[:role] = 'guest'
100
- end
101
- when /Manufacturer: Xen/
102
- if dmi_info =~ /Product Name: HVM domU/
103
- virtualization[:system] = 'xen'
104
- virtualization[:role] = 'guest'
105
- end
106
- else
107
- nil
108
- end
109
-
110
- end
111
- end
112
-
113
- # Detect Linux-VServer
114
- if File.exists?('/proc/self/status')
115
- proc_self_status = File.read('/proc/self/status')
116
- vxid = proc_self_status.match(/^(s_context|VxID): (\d+)$/)
117
- if vxid and vxid[2]
118
- virtualization[:system] = 'linux-vserver'
119
- if vxid[2] == '0'
120
- virtualization[:role] = 'host'
121
- else
122
- virtualization[:role] = 'guest'
123
- end
124
- end
125
- end
@@ -1,53 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@opscode.com>)
3
- # Copyright:: Copyright (c) 2008 Opscode, 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
- provides 'os', 'os_version'
20
-
21
- require 'rbconfig'
22
-
23
- require_plugin 'kernel'
24
-
25
- case ::RbConfig::CONFIG['host_os']
26
- when /aix(.+)$/
27
- os 'aix'
28
- when /darwin(.+)$/
29
- os 'darwin'
30
- when /hpux(.+)$/
31
- os 'hpux'
32
- when /linux/
33
- os 'linux'
34
- when /freebsd(.+)$/
35
- os 'freebsd'
36
- when /openbsd(.+)$/
37
- os 'openbsd'
38
- when /netbsd(.*)$/
39
- os 'netbsd'
40
- when /solaris2/
41
- os 'solaris2'
42
- when /mswin|mingw32|windows/
43
- # After long discussion in IRC the "powers that be" have come to a concensus
44
- # that there is no other Windows platforms exist that were not based on the
45
- # Windows_NT kernel, so we herby decree that "windows" will refer to all
46
- # platforms built upon the Windows_NT kernel and have access to win32 or win64
47
- # subsystems.
48
- os 'windows'
49
- else
50
- os ::RbConfig::CONFIG['host_os']
51
- end
52
-
53
- os_version kernel[:release]
@@ -1,28 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@opscode.com>)
3
- # Copyright:: Copyright (c) 2008 Opscode, 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
- provides 'platform', 'platform_version', 'platform_family'
20
-
21
- require_plugin "#{os}::platform"
22
-
23
- platform os unless attribute?('platform')
24
-
25
- platform_version os_version unless attribute?('platform_version')
26
-
27
- platform_family platform unless attribute?('platform_family')
28
-
@@ -1,86 +0,0 @@
1
- #
2
- # Author:: Benjamin Black (<bb@opscode.com>)
3
- # Copyright:: Copyright (c) 2009 Opscode, 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
- provides 'virtualization'
20
-
21
- require_plugin "#{os}::virtualization"
22
-
23
- unless virtualization.nil? || !(virtualization[:role].eql?('host'))
24
- begin
25
- require 'libvirt'
26
- require 'hpricot'
27
-
28
- emu = (virtualization[:system].eql?('kvm') ? 'qemu' : virtualization[:system])
29
- virtualization[:libvirt_version] = Libvirt::version(emu)[0].to_s
30
-
31
- virtconn = Libvirt::open_read_only("#{emu}:///system")
32
-
33
- virtualization[:uri] = virtconn.uri
34
- virtualization[:capabilities] = Mash.new
35
- virtualization[:capabilities][:xml_desc] = (virtconn.capabilities.split("\n").collect { |line| line.strip }).join
36
- #xdoc = Hpricot virtualization[:capabilities][:xml_desc]
37
-
38
- virtualization[:nodeinfo] = Mash.new
39
- ni = virtconn.node_get_info
40
- %w(cores cpus memory mhz model nodes sockets threads).each { |a| virtualization[:nodeinfo][a] = ni.send(a) }
41
-
42
- virtualization[:domains] = Mash.new
43
- virtconn.list_domains.each do |d|
44
- dv = virtconn.lookup_domain_by_id d
45
- virtualization[:domains][dv.name] = Mash.new
46
- virtualization[:domains][dv.name][:id] = d
47
- virtualization[:domains][dv.name][:xml_desc] = (dv.xml_desc.split("\n").collect { |line| line.strip }).join
48
- %w(os_type uuid).each { |a| virtualization[:domains][dv.name][a] = dv.send(a) }
49
- %w(cpu_time max_mem memory nr_virt_cpu state).each { |a| virtualization[:domains][dv.name][a] = dv.info.send(a) }
50
- #xdoc = Hpricot virtualization[:domains][dv.name][:xml_desc]
51
-
52
- end
53
-
54
- virtualization[:networks] = Mash.new
55
- virtconn.list_networks.each do |n|
56
- nv = virtconn.lookup_network_by_name n
57
- virtualization[:networks][n] = Mash.new
58
- virtualization[:networks][n][:xml_desc] = (nv.xml_desc.split("\n").collect { |line| line.strip }).join
59
- %w(bridge_name uuid).each { |a| virtualization[:networks][n][a] = nv.send(a) }
60
- #xdoc = Hpricot virtualization[:networks][n][:xml_desc]
61
-
62
- end
63
-
64
- virtualization[:storage] = Mash.new
65
- virtconn.list_storage_pools.each do |pool|
66
- sp = virtconn.lookup_storage_pool_by_name pool
67
- virtualization[:storage][pool] = Mash.new
68
- virtualization[:storage][pool][:xml_desc] = (sp.xml_desc.split("\n").collect { |line| line.strip }).join
69
- %w(autostart uuid).each { |a| virtualization[:storage][pool][a] = sp.send(a) }
70
- %w(allocation available capacity state).each { |a| virtualization[:storage][pool][a] = sp.info.send(a) }
71
- #xdoc = Hpricot virtualization[:storage][pool][:xml_desc]
72
-
73
- virtualization[:storage][pool][:volumes] = Mash.new
74
- sp.list_volumes.each do |v|
75
- virtualization[:storage][pool][:volumes][v] = Mash.new
76
- sv = sp.lookup_volume_by_name v
77
- %w(key name path).each { |a| virtualization[:storage][pool][:volumes][v][a] = sv.send(a) }
78
- %w(allocation capacity type).each { |a| virtualization[:storage][pool][:volumes][v][a] = sv.info.send(a) }
79
- end
80
- end
81
-
82
- virtconn.close
83
- rescue LoadError => e
84
- Ohai::Log.debug("Can't load gem: #{e}. virtualization plugin is disabled.")
85
- end
86
- end
@@ -1,64 +0,0 @@
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
- #
29
- # On Windows Server 2003 R2 (i.e. 5.2.*), numberofcores property
30
- # doesn't exist on the Win32_Processor class unless the user has
31
- # patched their system with:
32
- # http://support.microsoft.com/kb/932370
33
- #
34
- # We're returning nil for cpu["cores"] and cpu["count"]
35
- # when we don't see numberofcores property
36
- #
37
-
38
- number_of_cores = nil
39
- begin
40
- number_of_cores = processor.numberofcores
41
- cpu_number += number_of_cores
42
- rescue NoMethodError => e
43
- Ohai::Log.info('Can not find numberofcores property on Win32_Processor. Consider applying this patch: http://support.microsoft.com/kb/932370')
44
- end
45
-
46
- current_cpu = index.to_s
47
- index += 1
48
- cpuinfo[current_cpu] = Mash.new
49
- cpuinfo[current_cpu]['vendor_id'] = processor.manufacturer
50
- cpuinfo[current_cpu]['family'] = processor.family.to_s
51
- cpuinfo[current_cpu]['model'] = processor.revision.to_s
52
- cpuinfo[current_cpu]['stepping'] = processor.stepping
53
- cpuinfo[current_cpu]['physical_id'] = processor.deviceid
54
- #cpuinfo[current_cpu]["core_id"] = XXX
55
- cpuinfo[current_cpu]['cores'] = number_of_cores
56
- cpuinfo[current_cpu]['model_name'] = processor.description
57
- cpuinfo[current_cpu]['mhz'] = processor.maxclockspeed.to_s
58
- cpuinfo[current_cpu]['cache_size'] = "#{processor.l2cachesize} KB"
59
- #cpuinfo[current_cpu]["flags"] = XXX
60
- end
61
-
62
- cpu cpuinfo
63
- cpu[:total] = (cpu_number == 0) ? nil : cpu_number
64
- cpu[:real] = index
@@ -1,33 +0,0 @@
1
- #
2
- # Author:: James Gartrell (<jgartrel@gmail.com>)
3
- # Copyright:: Copyright (c) 2009 Opscode, 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
- require 'socket'
21
-
22
- host = WMI::Win32_ComputerSystem.find(:first)
23
- hostname "#{host.Name}"
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
-
@@ -1,27 +0,0 @@
1
- #
2
- # Author:: James Gartrell (<jgartrel@gmail.com>)
3
- # Copyright:: Copyright (c) 2009 Opscode, 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
- # After long discussion in IRC the "powers that be" have come to a concensus
20
- # that there is no other Windows platforms exist that were not based on the
21
- # Windows_NT kernel, so we herby decree that "windows" will refer to all
22
- # platforms built upon the Windows_NT kernel and have access to win32 or win64
23
- # subsystems.
24
- platform os
25
- platform_version kernel['release']
26
- platform_family 'windows'
27
-