lib/ohai/plugins/solaris2/virtualization.rb in ohai-8.5.0 vs lib/ohai/plugins/solaris2/virtualization.rb in ohai-8.5.1
- old
+ new
@@ -1,93 +1,93 @@
-#
-# Author:: Sean Walbran (<seanwalbran@gmail.com>)
-# Author:: Kurt Yoder (<ktyopscode@yoderhome.com>)
-# Copyright:: Copyright (c) 2009 Opscode, 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
- 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
-
- # Detect KVM/QEMU from cpuinfo, report as KVM
- psrinfo_path = Ohai.abs_path( "/usr/sbin/psrinfo" )
- if File.exists?(psrinfo_path)
- so = shell_out("#{psrinfo_path} -pv")
- if so.stdout =~ /QEMU Virtual CPU/
- virtualization[:system] = "kvm"
- virtualization[:role] = "guest"
- end
- end
-
- # http://www.dmo.ca/blog/detecting-virtualization-on-linux
- smbios_path= Ohai.abs_path( "/usr/sbin/smbios" )
- if File.exists?(smbios_path)
- so = shell_out(smbios_path)
- case so.stdout
- when /Manufacturer: Microsoft/
- if so.stdout =~ /Product: Virtual Machine/
- virtualization[:system] = "virtualpc"
- virtualization[:role] = "guest"
- end
- when /Manufacturer: VMware/
- if so.stdout =~ /Product: VMware Virtual Platform/
- virtualization[:system] = "vmware"
- virtualization[:role] = "guest"
- end
- else
- nil
- 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[:guest_uuid] = zones[first_zone]['uuid']
- virtualization[:guest_id] = collect_solaris_guestid
- end
- elsif (zones.length > 1)
- virtualization[:system] = 'zone'
- virtualization[:role] = 'host'
- virtualization[:guests] = zones
- end
- end
- end
-end
+#
+# Author:: Sean Walbran (<seanwalbran@gmail.com>)
+# Author:: Kurt Yoder (<ktyopscode@yoderhome.com>)
+# Copyright:: Copyright (c) 2009 Opscode, 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
+ 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
+
+ # Detect KVM/QEMU from cpuinfo, report as KVM
+ psrinfo_path = Ohai.abs_path( "/usr/sbin/psrinfo" )
+ if File.exists?(psrinfo_path)
+ so = shell_out("#{psrinfo_path} -pv")
+ if so.stdout =~ /QEMU Virtual CPU/
+ virtualization[:system] = "kvm"
+ virtualization[:role] = "guest"
+ end
+ end
+
+ # http://www.dmo.ca/blog/detecting-virtualization-on-linux
+ smbios_path= Ohai.abs_path( "/usr/sbin/smbios" )
+ if File.exists?(smbios_path)
+ so = shell_out(smbios_path)
+ case so.stdout
+ when /Manufacturer: Microsoft/
+ if so.stdout =~ /Product: Virtual Machine/
+ virtualization[:system] = "virtualpc"
+ virtualization[:role] = "guest"
+ end
+ when /Manufacturer: VMware/
+ if so.stdout =~ /Product: VMware Virtual Platform/
+ virtualization[:system] = "vmware"
+ virtualization[:role] = "guest"
+ end
+ else
+ nil
+ 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[:guest_uuid] = zones[first_zone]['uuid']
+ virtualization[:guest_id] = collect_solaris_guestid
+ end
+ elsif (zones.length > 1)
+ virtualization[:system] = 'zone'
+ virtualization[:role] = 'host'
+ virtualization[:guests] = zones
+ end
+ end
+ end
+end