lib/ohai/plugins/solaris2/virtualization.rb in ohai-18.0.26 vs lib/ohai/plugins/solaris2/virtualization.rb in ohai-18.1.0
- old
+ new
@@ -1,90 +1,90 @@
-# frozen_string_literal: true
-#
-# Author:: Sean Walbran (<seanwalbran@gmail.com>)
-# Author:: Kurt Yoder (<ktyopscode@yoderhome.com>)
-# Copyright:: Copyright (c) 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.
-#
-
-Ohai.plugin(:Virtualization) do
- require_relative "../../mixin/dmi_decode"
- include Ohai::Mixin::DmiDecode
- provides "virtualization"
- depends "dmi"
-
- def collect_solaris_guestid
- shell_out("/usr/sbin/zoneadm list -p").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 /QEMU Virtual CPU|Common KVM processor|Common 32-bit KVM processor/.match?(so.stdout)
- virtualization[:system] = "kvm"
- virtualization[:role] = "guest"
- virtualization[:systems][:kvm] = "guest"
- end
- end
-
- # parse dmi to discover various virtualization guests
- guest = guest_from_dmi_data(get_attribute(:dmi, :system, :manufacturer), get_attribute(:dmi, :system, :product), get_attribute(:dmi, :system, :version))
- if guest
- logger.trace("Plugin Virtualization: DMI data indicates #{guest} guest")
- virtualization[:system] = guest
- virtualization[:role] = "guest"
- virtualization[:systems][guest.to_sym] = "guest"
- end
-
- if File.executable?("/usr/sbin/zoneadm")
- zones = Mash.new
- shell_out("zoneadm list -pc").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]
- virtualization[:system] = "zone"
- if first_zone == "global"
- virtualization[:role] = "host"
- virtualization[:systems][:zone] = "host"
- else
- 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
+# frozen_string_literal: true
+#
+# Author:: Sean Walbran (<seanwalbran@gmail.com>)
+# Author:: Kurt Yoder (<ktyopscode@yoderhome.com>)
+# Copyright:: Copyright (c) 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.
+#
+
+Ohai.plugin(:Virtualization) do
+ require_relative "../../mixin/dmi_decode"
+ include Ohai::Mixin::DmiDecode
+ provides "virtualization"
+ depends "dmi"
+
+ def collect_solaris_guestid
+ shell_out("/usr/sbin/zoneadm list -p").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 /QEMU Virtual CPU|Common KVM processor|Common 32-bit KVM processor/.match?(so.stdout)
+ virtualization[:system] = "kvm"
+ virtualization[:role] = "guest"
+ virtualization[:systems][:kvm] = "guest"
+ end
+ end
+
+ # parse dmi to discover various virtualization guests
+ guest = guest_from_dmi_data(get_attribute(:dmi, :system, :manufacturer), get_attribute(:dmi, :system, :product), get_attribute(:dmi, :system, :version))
+ if guest
+ logger.trace("Plugin Virtualization: DMI data indicates #{guest} guest")
+ virtualization[:system] = guest
+ virtualization[:role] = "guest"
+ virtualization[:systems][guest.to_sym] = "guest"
+ end
+
+ if File.executable?("/usr/sbin/zoneadm")
+ zones = Mash.new
+ shell_out("zoneadm list -pc").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]
+ virtualization[:system] = "zone"
+ if first_zone == "global"
+ virtualization[:role] = "host"
+ virtualization[:systems][:zone] = "host"
+ else
+ 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