lib/ohai/plugins/solaris2/virtualization.rb in ohai-8.15.0 vs lib/ohai/plugins/solaris2/virtualization.rb in ohai-8.15.1

- old
+ new

@@ -1,92 +1,92 @@ -# -# Author:: Sean Walbran (<seanwalbran@gmail.com>) -# Author:: Kurt Yoder (<ktyopscode@yoderhome.com>) -# Copyright:: Copyright (c) 2009-2016 Chef Software, Inc. -# Copyright:: Copyright (c) 2010 Kurt Yoder -# 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/dmi_decode" -include Ohai::Mixin::DmiDecode - -Ohai.plugin(:Virtualization) do - provides "virtualization" - - def collect_solaris_guestid - command = "/usr/sbin/zoneadm list -p" - so = shell_out(command) - so.stdout.split(":").first - end - - collect_data(:solaris2) do - virtualization Mash.new - virtualization[:systems] = Mash.new - - # Detect paravirt KVM/QEMU from cpuinfo, report as KVM - psrinfo_path = Ohai.abs_path( "/usr/sbin/psrinfo" ) - if File.exist?(psrinfo_path) - so = shell_out("#{psrinfo_path} -pv") - if so.stdout =~ /QEMU Virtual CPU|Common KVM processor|Common 32-bit KVM processor/ - virtualization[:system] = "kvm" - virtualization[:role] = "guest" - virtualization[:systems][:kvm] = "guest" - end - end - - # Pass smbios information to the dmi_decode mixin to - # identify possible virtualization systems - smbios_path = Ohai.abs_path("/usr/sbin/smbios") - if File.exist?(smbios_path) - guest = guest_from_dmi(shell_out(smbios_path).stdout) - if guest - virtualization[:system] = guest - virtualization[:role] = "guest" - virtualization[:systems][guest.to_sym] = "guest" - end - end - - if File.executable?("/usr/sbin/zoneadm") - zones = Mash.new - so = shell_out("zoneadm list -pc") - so.stdout.lines do |line| - info = line.chomp.split(/:/) - zones[info[1]] = { - "id" => info[0], - "state" => info[2], - "root" => info[3], - "uuid" => info[4], - "brand" => info[5], - "ip" => info[6], - } - end - - if zones.length == 1 - first_zone = zones.keys[0] - unless first_zone == "global" - virtualization[:system] = "zone" - virtualization[:role] = "guest" - virtualization[:systems][:zone] = "guest" - virtualization[:guest_uuid] = zones[first_zone]["uuid"] - virtualization[:guest_id] = collect_solaris_guestid - end - elsif zones.length > 1 - virtualization[:system] = "zone" - virtualization[:role] = "host" - virtualization[:systems][:zone] = "host" - virtualization[:guests] = zones - end - end - end -end +# +# Author:: Sean Walbran (<seanwalbran@gmail.com>) +# Author:: Kurt Yoder (<ktyopscode@yoderhome.com>) +# Copyright:: Copyright (c) 2009-2016 Chef Software, Inc. +# Copyright:: Copyright (c) 2010 Kurt Yoder +# 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/dmi_decode" +include Ohai::Mixin::DmiDecode + +Ohai.plugin(:Virtualization) do + provides "virtualization" + + def collect_solaris_guestid + command = "/usr/sbin/zoneadm list -p" + so = shell_out(command) + so.stdout.split(":").first + end + + collect_data(:solaris2) do + virtualization Mash.new + virtualization[:systems] = Mash.new + + # Detect paravirt KVM/QEMU from cpuinfo, report as KVM + psrinfo_path = Ohai.abs_path( "/usr/sbin/psrinfo" ) + if File.exist?(psrinfo_path) + so = shell_out("#{psrinfo_path} -pv") + if so.stdout =~ /QEMU Virtual CPU|Common KVM processor|Common 32-bit KVM processor/ + virtualization[:system] = "kvm" + virtualization[:role] = "guest" + virtualization[:systems][:kvm] = "guest" + end + end + + # Pass smbios information to the dmi_decode mixin to + # identify possible virtualization systems + smbios_path = Ohai.abs_path("/usr/sbin/smbios") + if File.exist?(smbios_path) + guest = guest_from_dmi(shell_out(smbios_path).stdout) + if guest + virtualization[:system] = guest + virtualization[:role] = "guest" + virtualization[:systems][guest.to_sym] = "guest" + end + end + + if File.executable?("/usr/sbin/zoneadm") + zones = Mash.new + so = shell_out("zoneadm list -pc") + so.stdout.lines do |line| + info = line.chomp.split(/:/) + zones[info[1]] = { + "id" => info[0], + "state" => info[2], + "root" => info[3], + "uuid" => info[4], + "brand" => info[5], + "ip" => info[6], + } + end + + if zones.length == 1 + first_zone = zones.keys[0] + unless first_zone == "global" + virtualization[:system] = "zone" + virtualization[:role] = "guest" + virtualization[:systems][:zone] = "guest" + virtualization[:guest_uuid] = zones[first_zone]["uuid"] + virtualization[:guest_id] = collect_solaris_guestid + end + elsif zones.length > 1 + virtualization[:system] = "zone" + virtualization[:role] = "host" + virtualization[:systems][:zone] = "host" + virtualization[:guests] = zones + end + end + end +end