lib/ohai/plugins/netbsd/virtualization.rb in ohai-6.24.2 vs lib/ohai/plugins/netbsd/virtualization.rb in ohai-7.0.0.rc.0

- old
+ new

@@ -14,51 +14,54 @@ # 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. # -provides "virtualization" +Ohai.plugin(:Virtualization) do + provides "virtualization" -virtualization Mash.new + collect_data(:netbsd) do + virtualization Mash.new -# KVM Host support for FreeBSD is in development -# http://feanor.sssup.it/~fabio/freebsd/lkvm/ + # KVM Host support for FreeBSD is in development + # http://feanor.sssup.it/~fabio/freebsd/lkvm/ -# Detect KVM/QEMU from cpu, report as KVM -# hw.model: QEMU Virtual CPU version 0.9.1 -if from("sysctl -n hw.model") =~ /QEMU Virtual CPU/ - virtualization[:system] = "kvm" - virtualization[:role] = "guest" -end + # Detect KVM/QEMU from cpu, report as KVM + # hw.model: QEMU Virtual CPU version 0.9.1 + so = shell_out("sysctl -n hw.model") + if so.stdout.split($/)[0] =~ /QEMU Virtual CPU/ + virtualization[:system] = "kvm" + virtualization[:role] = "guest" + end -# http://www.dmo.ca/blog/detecting-virtualization-on-linux -if File.exists?("/usr/pkg/sbin/dmidecode") - popen4("dmidecode") do |pid, stdin, stdout, stderr| - stdin.close - found_virt_manufacturer = nil - found_virt_product = nil - stdout.each do |line| - case line - when /Manufacturer: Microsoft/ - found_virt_manufacturer = "microsoft" - when /Product Name: Virtual Machine/ - found_virt_product = "microsoft" - when /Version: 5.0/ - if found_virt_manufacturer == "microsoft" && found_virt_product == "microsoft" - virtualization[:system] = "virtualpc" - virtualization[:role] = "guest" - end - when /Version: VS2005R2/ - if found_virt_manufacturer == "microsoft" && found_virt_product == "microsoft" - virtualization[:system] = "virtualserver" - virtualization[:role] = "guest" - end - when /Manufacturer: VMware/ - found_virt_manufacturer = "vmware" - when /Product Name: VMware Virtual Platform/ - if found_virt_manufacturer == "vmware" - virtualization[:system] = "vmware" - virtualization[:role] = "guest" + # http://www.dmo.ca/blog/detecting-virtualization-on-linux + if File.exists?("/usr/pkg/sbin/dmidecode") + so = shell_out("dmidecode") + found_virt_manufacturer = nil + found_virt_product = nil + so.stdout.lines do |line| + case line + when /Manufacturer: Microsoft/ + found_virt_manufacturer = "microsoft" + when /Product Name: Virtual Machine/ + found_virt_product = "microsoft" + when /Version: 5.0/ + if found_virt_manufacturer == "microsoft" && found_virt_product == "microsoft" + virtualization[:system] = "virtualpc" + virtualization[:role] = "guest" + end + when /Version: VS2005R2/ + if found_virt_manufacturer == "microsoft" && found_virt_product == "microsoft" + virtualization[:system] = "virtualserver" + virtualization[:role] = "guest" + end + when /Manufacturer: VMware/ + found_virt_manufacturer = "vmware" + when /Product Name: VMware Virtual Platform/ + if found_virt_manufacturer == "vmware" + virtualization[:system] = "vmware" + virtualization[:role] = "guest" + end end end end end end