summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2017-01-24 10:18:11 -0800
committerGitHub <noreply@github.com>2017-01-24 10:18:11 -0800
commitd13bb0d38532328058b00c0d95a8ad45999093da (patch)
treedb4cc6496dfbdd4f27b80e480808257decfb0d3c /lib
parentcc969f8b7a05fed86147765c32766657abd8fce0 (diff)
parent9e85c83f36165612e85118091029d4332e6ce5d0 (diff)
downloadohai-d13bb0d38532328058b00c0d95a8ad45999093da.tar.gz
Merge pull request #930 from chef/sigar
Remove usage of the Sigar gem
Diffstat (limited to 'lib')
-rw-r--r--lib/ohai/mixin/network_constants.rb5
-rw-r--r--lib/ohai/plugins/hostname.rb17
-rw-r--r--lib/ohai/plugins/network_listeners.rb60
-rw-r--r--lib/ohai/plugins/sigar/cpu.rb44
-rw-r--r--lib/ohai/plugins/sigar/filesystem.rb50
-rw-r--r--lib/ohai/plugins/sigar/memory.rb39
-rw-r--r--lib/ohai/plugins/sigar/network.rb168
-rw-r--r--lib/ohai/plugins/sigar/network_route.rb64
-rw-r--r--lib/ohai/plugins/sigar/platform.rb30
-rw-r--r--lib/ohai/plugins/uptime.rb9
10 files changed, 1 insertions, 485 deletions
diff --git a/lib/ohai/mixin/network_constants.rb b/lib/ohai/mixin/network_constants.rb
index ed53bb8b..d740df95 100644
--- a/lib/ohai/mixin/network_constants.rb
+++ b/lib/ohai/mixin/network_constants.rb
@@ -24,11 +24,6 @@ module Ohai
"inet" => "default",
"inet6" => "default_inet6",
}
-
- # From sigar: include/sigar.h sigar_net_route_t
- SIGAR_ROUTE_METHODS = [:destination, :gateway, :mask, :flags,
- :refcnt, :use, :metric, :mtu, :window,
- :irtt, :ifname]
end
end
end
diff --git a/lib/ohai/plugins/hostname.rb b/lib/ohai/plugins/hostname.rb
index 32d95fb3..29df8813 100644
--- a/lib/ohai/plugins/hostname.rb
+++ b/lib/ohai/plugins/hostname.rb
@@ -76,24 +76,9 @@ Ohai.plugin(:Hostname) do
end
end
- def get_fqdn_from_sigar
- require "sigar"
- sigar = Sigar.new
- sigar.fqdn
- end
-
- def sigar_is_available?
- begin
- require "sigar"
- true
- rescue LoadError
- false
- end
- end
-
collect_data(:hpux, :default) do
machinename from_cmd("hostname")
- fqdn sigar_is_available? ? get_fqdn_from_sigar : resolve_fqdn
+ fqdn resolve_fqdn
collect_hostname
collect_domain
end
diff --git a/lib/ohai/plugins/network_listeners.rb b/lib/ohai/plugins/network_listeners.rb
deleted file mode 100644
index 292378d7..00000000
--- a/lib/ohai/plugins/network_listeners.rb
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Author:: Doug MacEachern <dougm@vmware.com>
-# Copyright:: Copyright (c) 2009 VMware, Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-Ohai.plugin(:NetworkListeners) do
- provides "network/listeners"
-
- depends "network", "counters/network"
-
- collect_data do
- begin
- require "sigar"
- flags = Sigar::NETCONN_TCP | Sigar::NETCONN_SERVER
-
- network Mash.new unless network
- listeners = Mash.new
-
- sigar = Sigar.new
- sigar.net_connection_list(flags).each do |conn|
- port = conn.local_port
- addr = conn.local_address.to_s
- if addr == "0.0.0.0" || addr == "::"
- addr = "*"
- end
- listeners[port] = Mash.new
- listeners[port][:address] = addr
- begin
- pid = sigar.proc_port(conn.type, port)
- # workaround for a failure of proc_state to throw
- # after the first 0 has been supplied to it
- #
- # no longer required when hyperic/sigar#48 is fixed
- throw ArgumentError.new("No such process") if pid == 0
- listeners[port][:pid] = pid
- listeners[port][:name] = sigar.proc_state(pid).name
- rescue
- end
- end
-
- network[:listeners] = Mash.new
- network[:listeners][:tcp] = listeners
- rescue LoadError
- Ohai::Log.debug("Could not load sigar gem. Skipping NetworkListeners plugin")
- end
- end
-end
diff --git a/lib/ohai/plugins/sigar/cpu.rb b/lib/ohai/plugins/sigar/cpu.rb
deleted file mode 100644
index 54f8387c..00000000
--- a/lib/ohai/plugins/sigar/cpu.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Author:: Doug MacEachern <dougm@vmware.com>
-# Copyright:: Copyright (c) 2010 VMware, Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-Ohai.plugin(:CPU) do
- provides "cpu"
-
- collect_data(:hpux, :default) do
- require "sigar"
-
- sigar = Sigar.new
-
- cpuinfo = Mash.new
- ix = 0
-
- sigar.cpu_info_list.each do |info|
- current_cpu = ix.to_s
- ix += 1
- cpuinfo[current_cpu] = Mash.new
- cpuinfo[current_cpu]["vendor_id"] = info.vendor
- cpuinfo[current_cpu]["model"] = info.model
- cpuinfo[current_cpu]["mhz"] = info.mhz.to_s
- cpuinfo[current_cpu]["cache_size"] = info.cache_size.to_s
- cpuinfo[:total] = info.total_cores
- cpuinfo[:real] = info.total_sockets
- end
-
- cpu cpuinfo
- end
-end
diff --git a/lib/ohai/plugins/sigar/filesystem.rb b/lib/ohai/plugins/sigar/filesystem.rb
deleted file mode 100644
index 234fc16f..00000000
--- a/lib/ohai/plugins/sigar/filesystem.rb
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Author:: Doug MacEachern <dougm@vmware.com>
-# Copyright:: Copyright (c) 2010 VMware, Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-Ohai.plugin(:Filesystem) do
- provides "filesystem"
-
- collect_data(:hpux, :default) do
- require "sigar"
- sigar = Sigar.new
-
- fs = Mash.new
-
- sigar.file_system_list.each do |fsys|
- filesystem = fsys.dev_name
- fs[filesystem] = Mash.new
- fs[filesystem][:mount] = fsys.dir_name
- fs[filesystem][:fs_type] = fsys.sys_type_name
- fs[filesystem][:mount_options] = fsys.options
- begin
- usage = sigar.file_system_usage(fsys.dir_name)
- fs[filesystem][:kb_size] = (usage.total / 1024).to_s
- fs[filesystem][:kb_used] = ((usage.total - usage.free) / 1024).to_s
- fs[filesystem][:kb_available] = (usage.free / 1024).to_s
- fs[filesystem][:percent_used] = (usage.use_percent * 100).to_s + "%"
- rescue SystemExit => e
- raise
- rescue Exception => e
- #e.g. floppy or cdrom drive
- end
- end
-
- # Set the filesystem data
- filesystem fs
- end
-end
diff --git a/lib/ohai/plugins/sigar/memory.rb b/lib/ohai/plugins/sigar/memory.rb
deleted file mode 100644
index 78f55199..00000000
--- a/lib/ohai/plugins/sigar/memory.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# Author:: Doug MacEachern <dougm@vmware.com>
-# Copyright:: Copyright (c) 2010 VMware, Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-Ohai.plugin(:Memory) do
- provides "memory"
-
- collect_data(:hpux, :default) do
- require "sigar"
- sigar = Sigar.new
-
- memory Mash.new
- memory[:swap] = Mash.new
-
- mem = sigar.mem
- swap = sigar.swap
-
- memory[:total] = (mem.total / 1024).to_s + "kB"
- memory[:free] = (mem.free / 1024).to_s + "kB"
- memory[:used] = (mem.used / 1024).to_s + "kB"
- memory[:swap][:total] = (swap.total / 1024).to_s + "kB"
- memory[:swap][:free] = (swap.free / 1024).to_s + "kB"
- memory[:swap][:used] = (swap.used / 1024).to_s + "kB"
- end
-end
diff --git a/lib/ohai/plugins/sigar/network.rb b/lib/ohai/plugins/sigar/network.rb
deleted file mode 100644
index 68ce3add..00000000
--- a/lib/ohai/plugins/sigar/network.rb
+++ /dev/null
@@ -1,168 +0,0 @@
-#
-# Author:: Matthew Kent (<mkent@magoazul.com>)
-# Copyright:: Copyright (c) 2009 Matthew Kent
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-require "ohai/mixin/network_constants"
-
-Ohai.plugin(:Network) do
- include Ohai::Mixin::NetworkConstants
-
- provides "network", "network/interfaces"
- provides "counters/network", "counters/network/interfaces"
-
- def sigar_encaps_lookup(encap)
- return "Loopback" if encap.eql?("Local Loopback")
- return "PPP" if encap.eql?("Point-to-Point Protocol")
- return "SLIP" if encap.eql?("Serial Line IP")
- return "VJSLIP" if encap.eql?("VJ Serial Line IP")
- return "IPIP" if encap.eql?("IPIP Tunnel")
- return "6to4" if encap.eql?("IPv6-in-IPv4")
- encap
- end
-
- def fetch_interfaces(sigar)
- iface = Mash.new
- net_counters = Mash.new
-
- sigar.net_interface_list.each do |cint|
- iface[cint] = Mash.new
-
- if cint =~ /^(\w+)(\d+.*)/
- iface[cint][:type] = $1
- iface[cint][:number] = $2
- end
-
- ifconfig = sigar.net_interface_config(cint)
- iface[cint][:encapsulation] = sigar_encaps_lookup(ifconfig.type)
-
- iface[cint][:addresses] = Mash.new
- # Backwards compat: loopback has no hwaddr
- if (ifconfig.flags & Sigar::IFF_LOOPBACK) == 0
- iface[cint][:addresses][ifconfig.hwaddr] = { "family" => "lladdr" }
- end
- if ifconfig.address != "0.0.0.0"
- iface[cint][:addresses][ifconfig.address] = { "family" => "inet" }
- # Backwards compat: no broadcast on tunnel or loopback dev
- if ((ifconfig.flags & Sigar::IFF_POINTOPOINT) == 0) &&
- ((ifconfig.flags & Sigar::IFF_LOOPBACK) == 0)
- iface[cint][:addresses][ifconfig.address]["broadcast"] = ifconfig.broadcast
- end
- iface[cint][:addresses][ifconfig.address]["netmask"] = ifconfig.netmask
- end
-
- if ifconfig.prefix6_length != 0
- iface[cint][:addresses][ifconfig.address6] = { "family" => "inet6" }
- iface[cint][:addresses][ifconfig.address6]["prefixlen"] = ifconfig.prefix6_length.to_s
- iface[cint][:addresses][ifconfig.address6]["scope"] = Sigar.net_scope_to_s(ifconfig.scope6)
- end
-
- iface[cint][:flags] = Sigar.net_interface_flags_to_s(ifconfig.flags).split(" ")
- iface[cint][:mtu] = ifconfig.mtu.to_s
- iface[cint][:queuelen] = ifconfig.tx_queue_len.to_s
-
- net_counters[cint] = Mash.new unless net_counters[cint]
- if !cint.include?(":")
- ifstat = sigar.net_interface_stat(cint)
- net_counters[cint][:rx] = { "packets" => ifstat.rx_packets.to_s, "errors" => ifstat.rx_errors.to_s,
- "drop" => ifstat.rx_dropped.to_s, "overrun" => ifstat.rx_overruns.to_s,
- "frame" => ifstat.rx_frame.to_s, "bytes" => ifstat.rx_bytes.to_s }
- net_counters[cint][:tx] = { "packets" => ifstat.tx_packets.to_s, "errors" => ifstat.tx_errors.to_s,
- "drop" => ifstat.tx_dropped.to_s, "overrun" => ifstat.tx_overruns.to_s,
- "carrier" => ifstat.tx_carrier.to_s, "collisions" => ifstat.tx_collisions.to_s,
- "bytes" => ifstat.tx_bytes.to_s }
- end
- end
-
- begin
- sigar.arp_list.each do |arp|
- next unless iface[arp.ifname] # this should never happen
- iface[arp.ifname][:arp] = Mash.new unless iface[arp.ifname][:arp]
- iface[arp.ifname][:arp][arp.address] = arp.hwaddr
- end
- rescue
- #64-bit AIX for example requires 64-bit caller
- end
-
- [iface, net_counters]
- end
-
- # sigar-only, from network_route plugin
- def flags(flags)
- f = ""
- if (flags & Sigar::RTF_UP) != 0
- f += "U"
- end
- if (flags & Sigar::RTF_GATEWAY) != 0
- f += "G"
- end
- if (flags & Sigar::RTF_HOST) != 0
- f += "H"
- end
- f
- end
-
- collect_data(:hpux) do
- require "sigar"
- sigar = Sigar.new
-
- network Mash.new unless network
- network[:interfaces] = Mash.new unless network[:interfaces]
- counters Mash.new unless counters
- counters[:network] = Mash.new unless counters[:network]
-
- ninfo = sigar.net_info
- network[:default_interface] = ninfo.default_gateway_interface
- network[:default_gateway] = ninfo.default_gateway
-
- iface, net_counters = fetch_interfaces(sigar)
- counters[:network][:interfaces] = net_counters
- network["interfaces"] = iface
- end
-
- collect_data(:default) do
- require "sigar"
- sigar = Sigar.new
-
- network Mash.new unless network
- network[:interfaces] = Mash.new unless network[:interfaces]
- counters Mash.new unless counters
- counters[:network] = Mash.new unless counters[:network]
-
- ninfo = sigar.net_info
- network[:default_interface] = ninfo.default_gateway_interface
- network[:default_gateway] = ninfo.default_gateway
-
- iface, net_counters = fetch_interfaces(sigar)
- counters[:network][:interfaces] = net_counters
- network[:interfaces] = iface
-
- sigar.net_route_list.each do |route|
- next unless network[:interfaces][route.ifname] # this
- # should never happen
- network[:interfaces][route.ifname][:route] = Mash.new unless network[:interfaces][route.ifname][:route]
- route_data = {}
- Ohai::Mixin::NetworkConstants::SIGAR_ROUTE_METHODS.each do |m|
- if m == :flags
- route_data[m] = flags(route.send(m))
- else
- route_data[m] = route.send(m)
- end
- end
- network[:interfaces][route.ifname][:route][route.destination] = route_data
- end
- end
-end
diff --git a/lib/ohai/plugins/sigar/network_route.rb b/lib/ohai/plugins/sigar/network_route.rb
deleted file mode 100644
index d41c1524..00000000
--- a/lib/ohai/plugins/sigar/network_route.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Author:: Toomas Pelberg (<toomas.pelberg@playtech.com>)
-# Copyright:: Copyright (c) 2011-2016 Chef Software, Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-require "ohai/mixin/network_constants"
-
-Ohai.plugin(:NetworkRoutes) do
- begin
- require "sigar"
-
- include Ohai::Mixin::NetworkConstants
-
- provides "network/interfaces/adapters/route"
- depends "network/interfaces"
-
- def flags(flags)
- f = ""
- if (flags & Sigar::RTF_UP) != 0
- f += "U"
- end
- if (flags & Sigar::RTF_GATEWAY) != 0
- f += "G"
- end
- if (flags & Sigar::RTF_HOST) != 0
- f += "H"
- end
- f
- end
-
- collect_data(:default) do
- sigar = Sigar.new
-
- sigar.net_route_list.each do |route|
- next unless network[:interfaces][route.ifname] # this should never happen
- network[:interfaces][route.ifname][:route] = Mash.new unless network[:interfaces][route.ifname][:route]
- route_data = {}
- Ohai::Mixin::NetworkConstants::SIGAR_ROUTE_METHODS.each do |m|
- if m == :flags
- route_data[m] = flags(route.send(m))
- else
- route_data[m] = route.send(m)
- end
- end
- network[:interfaces][route.ifname][:route][route.destination] = route_data
- end
- end
- rescue LoadError
- Ohai::Log.debug("Could not load sigar gem. Skipping NetworkRoutes plugin")
- end
-end
diff --git a/lib/ohai/plugins/sigar/platform.rb b/lib/ohai/plugins/sigar/platform.rb
deleted file mode 100644
index 454851da..00000000
--- a/lib/ohai/plugins/sigar/platform.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Author:: Doug MacEachern <dougm@vmware.com>
-# Copyright:: Copyright (c) 2010 VMware, Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-Ohai.plugin(:Platform) do
- provides "platform", "platform_version", "platform_family"
-
- collect_data(:hpux) do
- require "sigar"
- sys = Sigar.new.sys_info
-
- platform sys.name.downcase
- platform_version sys.version
- platform_family platform
- end
-end
diff --git a/lib/ohai/plugins/uptime.rb b/lib/ohai/plugins/uptime.rb
index e5866fa3..bc7d412c 100644
--- a/lib/ohai/plugins/uptime.rb
+++ b/lib/ohai/plugins/uptime.rb
@@ -43,15 +43,6 @@ Ohai.plugin(:Uptime) do
return [nil, nil]
end
- collect_data(:hpux, :default) do
- require "sigar"
-
- sigar = Sigar.new
- uptime = sigar.uptime.uptime
- uptime_seconds uptime.to_i * 1000
- uptime seconds_to_human(uptime.to_i)
- end
-
collect_data(:darwin) do
data = collect_uptime("/usr/sbin/sysctl")
uptime_seconds data.first