specinfra 2.43.11 → 2.44.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/appveyor.yml +7 -7
- data/lib/specinfra/command.rb +3 -0
- data/lib/specinfra/command/base/mail_alias.rb +5 -2
- data/lib/specinfra/command/linux/base/inventory.rb +5 -0
- data/lib/specinfra/command/openbsd/base/inventory.rb +5 -0
- data/lib/specinfra/command/openbsd/base/mail_alias.rb +2 -1
- data/lib/specinfra/command/raspbian.rb +1 -0
- data/lib/specinfra/command/solaris/base/inventory.rb +5 -0
- data/lib/specinfra/configuration.rb +1 -1
- data/lib/specinfra/helper/detect_os/solaris.rb +2 -0
- data/lib/specinfra/host_inventory/virtualization.rb +28 -22
- data/lib/specinfra/version.rb +1 -1
- data/spec/command/base/mail_alias.rb +17 -0
- data/spec/command/openbsd/mail_alias_spec.rb +19 -0
- data/spec/host_inventory/linux/virtualization_spec.rb +44 -0
- data/spec/host_inventory/openbsd/virtualization_spec.rb +27 -0
- data/spec/host_inventory/solaris/virtualization_spec.rb +28 -0
- metadata +14 -6
- data/spec/host_inventory/linux/virtualization_docker_spec.rb +0 -134
- data/spec/host_inventory/linux/virtualization_kvm_spec.rb +0 -132
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6e519f0626f5f595627c16d9f024957fc4e1227
|
4
|
+
data.tar.gz: 66b58a2652ad4670601157a2b0f2f26b285d697c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d91a924736f66bb7fa33c7e2bfe1992023670ef270ded8b395b0b9d21beaac52fcddb7a0cb19c0929fa2aa69a82099c0b0cc93e0067b532be75189cf4b325be
|
7
|
+
data.tar.gz: b3b2042aaac7c0dca6076f9bac4ed59a4ca3ad44018a1af1ba106574dc30e03c72544d0e540b206929a00c052dd07bbc008fc02ce2036cf3bc8cbc92af9d4d67
|
data/appveyor.yml
CHANGED
@@ -21,13 +21,13 @@ matrix:
|
|
21
21
|
clone_depth: 5
|
22
22
|
|
23
23
|
cache:
|
24
|
-
- C:\Ruby193\lib\ruby\gems\1.9.1
|
25
|
-
- C:\Ruby193\bin
|
26
|
-
- C:\Ruby200\lib\ruby\gems\2.0.0
|
27
|
-
- C:\Ruby200\bin
|
28
|
-
- C:\Ruby21\lib\ruby\gems\2.1.0
|
29
|
-
- C:\Ruby21\bin
|
30
|
-
- C:\Ruby22\lib\ruby\gems\2.2.0
|
24
|
+
- C:\Ruby193\lib\ruby\gems\1.9.1 -> appveyor.yml
|
25
|
+
- C:\Ruby193\bin -> appveyor.yml
|
26
|
+
- C:\Ruby200\lib\ruby\gems\2.0.0 -> appveyor.yml
|
27
|
+
- C:\Ruby200\bin -> appveyor.yml
|
28
|
+
- C:\Ruby21\lib\ruby\gems\2.1.0 -> appveyor.yml
|
29
|
+
- C:\Ruby21\bin -> appveyor.yml
|
30
|
+
- C:\Ruby22\lib\ruby\gems\2.2.0 -> appveyor.yml
|
31
31
|
- C:\Ruby22\bin
|
32
32
|
|
33
33
|
install:
|
data/lib/specinfra/command.rb
CHANGED
@@ -163,6 +163,9 @@ require 'specinfra/command/debian/base/service'
|
|
163
163
|
require 'specinfra/command/debian/v8'
|
164
164
|
require 'specinfra/command/debian/v8/service'
|
165
165
|
|
166
|
+
# Raspbian (inherit Debian)
|
167
|
+
require 'specinfra/command/raspbian'
|
168
|
+
|
166
169
|
# Ubuntu (inherit Debian)
|
167
170
|
require 'specinfra/command/ubuntu'
|
168
171
|
require 'specinfra/command/ubuntu/base'
|
@@ -1,8 +1,11 @@
|
|
1
1
|
class Specinfra::Command::Base::MailAlias < Specinfra::Command::Base
|
2
2
|
class << self
|
3
3
|
def check_is_aliased_to(mail_alias, recipient)
|
4
|
-
recipient
|
5
|
-
|
4
|
+
## if the recipient contains pipes escape them
|
5
|
+
## or egrep will interpret it as an OR
|
6
|
+
recipient = recipient.gsub(/\|/, '\|')
|
7
|
+
recipient = "[[:space:]]([\"']?)#{recipient}\\1(,|$)"
|
8
|
+
"getent aliases #{escape(mail_alias)} | egrep -- #{escape(recipient)}"
|
6
9
|
end
|
7
10
|
|
8
11
|
def add(mail_alias, recipient)
|
@@ -32,5 +32,10 @@ class Specinfra::Command::Linux::Base::Inventory < Specinfra::Command::Base::Inv
|
|
32
32
|
block_device_dirs = '/sys/block/*/{size,removable,device/{model,rev,state,timeout,vendor},queue/rotational}'
|
33
33
|
"for f in $(ls #{block_device_dirs}); do echo -e \"${f}\t$(cat ${f})\"; done"
|
34
34
|
end
|
35
|
+
|
36
|
+
def get_system_product_name
|
37
|
+
"dmidecode -s system-product-name"
|
38
|
+
end
|
39
|
+
|
35
40
|
end
|
36
41
|
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class Specinfra::Command::Openbsd::Base::MailAlias < Specinfra::Command::Base::MailAlias
|
2
2
|
class << self
|
3
3
|
def check_is_aliased_to(recipient, target)
|
4
|
-
|
4
|
+
target = %Q{([[:space:]]|,)["']?#{escape(target)}["']?(,|$)}
|
5
|
+
"egrep ^#{escape(recipient)}:.*#{escape(target)} /etc/mail/aliases"
|
5
6
|
end
|
6
7
|
end
|
7
8
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
class Specinfra::Command::Raspbian < Specinfra::Command::Debian; end
|
@@ -33,5 +33,10 @@ class Specinfra::Command::Solaris::Base::Inventory < Specinfra::Command::Base::I
|
|
33
33
|
# e.g. swap0, swap1 and so on.
|
34
34
|
%Q{df -k | nawk -v i=0 '$1 == "swap" { $1=$1i; i++ }; NF == 1 { printf($1); next }; { print }'}
|
35
35
|
end
|
36
|
+
|
37
|
+
def get_system_product_name
|
38
|
+
"prtdiag | grep 'System Configuration'"
|
39
|
+
end
|
40
|
+
|
36
41
|
end
|
37
42
|
end
|
@@ -29,7 +29,7 @@ module Specinfra
|
|
29
29
|
end
|
30
30
|
|
31
31
|
# Define os method explicitly to avoid stack level
|
32
|
-
# too deep caused by
|
32
|
+
# too deep caused by Helper::DetectOS#os
|
33
33
|
def os(value=nil)
|
34
34
|
@os = value if value
|
35
35
|
if @os.nil? && defined?(RSpec) && RSpec.configuration.respond_to?(:os)
|
@@ -5,6 +5,8 @@ class Specinfra::Helper::DetectOs::Solaris < Specinfra::Helper::DetectOs
|
|
5
5
|
{ :family => 'solaris', :release => 10 }
|
6
6
|
elsif run_command('grep -q "Oracle Solaris 11" /etc/release').success?
|
7
7
|
{ :family => 'solaris', :release => 11 }
|
8
|
+
elsif run_command('grep -q "OpenIndiana" /etc/release').success?
|
9
|
+
{ :family => 'solaris', :release => 11 }
|
8
10
|
elsif run_command('grep -q SmartOS /etc/release').success?
|
9
11
|
{ :family => 'smartos', :release => nil }
|
10
12
|
else
|
@@ -3,37 +3,43 @@ module Specinfra
|
|
3
3
|
class Virtualization < Base
|
4
4
|
def get
|
5
5
|
res = {}
|
6
|
+
## docker
|
6
7
|
if backend.run_command('ls /.dockerinit').success?
|
7
8
|
res[:system] = 'docker'
|
8
9
|
return res
|
9
10
|
end
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
12
|
+
## OpenVZ on Linux
|
13
|
+
if backend.run_command('test -d /proc/vz -a ! -d /proc/bc').success?
|
14
|
+
res[:system] = 'openvz'
|
15
|
+
return res
|
16
|
+
end
|
17
|
+
|
18
|
+
cmd = backend.command.get(:get_inventory_system_product_name)
|
19
|
+
ret = backend.run_command(cmd)
|
20
|
+
if ret.exit_status == 0
|
21
|
+
res[:system] = parse_system_product_name(ret.stdout)
|
22
|
+
end
|
23
|
+
|
24
|
+
res
|
25
|
+
end
|
26
|
+
|
27
|
+
def parse_system_product_name(ret)
|
28
|
+
product_name = case ret
|
29
|
+
when /.*VMware Virtual Platform/
|
30
|
+
'vmware'
|
31
|
+
when /.*VirtualBox/
|
32
|
+
'vbox'
|
33
|
+
when /.*KVM/
|
34
|
+
'kvm'
|
35
|
+
when /.*OpenStack/
|
36
|
+
'openstack'
|
30
37
|
else
|
31
38
|
nil
|
32
|
-
end
|
33
39
|
end
|
34
|
-
|
35
|
-
res
|
40
|
+
product_name
|
36
41
|
end
|
42
|
+
|
37
43
|
end
|
38
44
|
end
|
39
45
|
end
|
data/lib/specinfra/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
set :os, { :family => nil }
|
4
|
+
|
5
|
+
describe get_command(:check_mail_alias_is_aliased_to, 'pink', '|/pony') do
|
6
|
+
it do
|
7
|
+
should eq %Q{getent aliases pink | } +
|
8
|
+
%Q{egrep -- \\\[\\\[:space:\\\]\\\]\\\(\\\[\\\"\\'\\\]\\?\\)\\\\\\|/pony\\\\1\\\(,\\\|\\\$\\\)}
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe get_command(:check_mail_alias_is_aliased_to, 'pink', '|/pony, |/unicorn') do
|
13
|
+
it do
|
14
|
+
should eq %Q{getent aliases pink | } +
|
15
|
+
%Q{egrep -- \\\[\\\[:space:\\\]\\\]\\\(\\\[\\\"\\'\\\]\\?\\)\\\\\\|/pony,\\\ \\\\\\|/unicorn\\\\1\\\(,\\\|\\\$\\\)}
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
set :os, { :family => 'openbsd' }
|
4
|
+
|
5
|
+
describe get_command(:check_mail_alias_is_aliased_to, 'pink', '|/pony') do
|
6
|
+
it do
|
7
|
+
should eq %Q{egrep ^pink:.*\\(\\[\\[:space:\\]\\]\\|,\\)\\[\\\"\\'\\]\\?} +
|
8
|
+
%Q{\\\\\\|/pony\\[\\\"\\'\\]\\?\\(,\\|\\$\\) } +
|
9
|
+
%Q{/etc/mail/aliases}
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe get_command(:check_mail_alias_is_aliased_to, 'pink', '|/pony, |/unicorn') do
|
14
|
+
it do
|
15
|
+
should eq %Q{egrep ^pink:.*\\(\\[\\[:space:\\]\\]\\|,\\)\\[\\\"\\'\\]\\?} +
|
16
|
+
%Q{\\\\\\|/pony,\\\\\\ \\\\\\|/unicorn\\[\\\"\\'\\]\\?\\(,\\|\\$\\) } +
|
17
|
+
%Q{/etc/mail/aliases}
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
set :os, { :family => 'linux' }
|
4
|
+
|
5
|
+
describe Specinfra::HostInventory::Virtualization do
|
6
|
+
virt = Specinfra::HostInventory::Virtualization.new(host_inventory)
|
7
|
+
let(:host_inventory) { nil }
|
8
|
+
it 'Docker Image should return :system => "docker"' do
|
9
|
+
allow(virt.backend).to receive(:run_command).with('ls /.dockerinit') do
|
10
|
+
CommandResult.new(:stdout => '/.dockerinit', :exit_status => 0)
|
11
|
+
end
|
12
|
+
expect(virt.get).to include(:system => 'docker')
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:host_inventory) { nil }
|
16
|
+
it 'Debian Wheezy on OpenVZ should return :system => "openvz"' do
|
17
|
+
allow(virt.backend).to receive(:run_command).with('ls /.dockerinit') do
|
18
|
+
CommandResult.new(:stdout => '', :exit_status => 2)
|
19
|
+
end
|
20
|
+
allow(virt.backend).to receive(:run_command).with('test -d /proc/vz -a ! -d /proc/bc') do
|
21
|
+
CommandResult.new(:stdout => '', :exit_status => 0)
|
22
|
+
end
|
23
|
+
expect(virt.get).to include(:system => 'openvz')
|
24
|
+
end
|
25
|
+
|
26
|
+
let(:host_inventory) { nil }
|
27
|
+
it 'Debian Jessie on KVM should return :system => "kvm"' do
|
28
|
+
ret = virt.parse_system_product_name("KVM\n")
|
29
|
+
expect(ret).to include('kvm')
|
30
|
+
end
|
31
|
+
|
32
|
+
let(:host_inventory) { nil }
|
33
|
+
it 'CentOS 6.7 on VMware should return :system => "vmware"' do
|
34
|
+
ret = virt.parse_system_product_name("VMware Virtual Platform\n")
|
35
|
+
expect(ret).to include('vmware')
|
36
|
+
end
|
37
|
+
|
38
|
+
let(:host_inventory) { nil }
|
39
|
+
it 'Ubuntu 14.04 on VirtualBox should return :system => "vbox"' do
|
40
|
+
ret = virt.parse_system_product_name("VirtualBox\n")
|
41
|
+
expect(ret).to include('vbox')
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
set :os, { :family => 'openbsd' }
|
4
|
+
|
5
|
+
describe Specinfra::HostInventory::Virtualization do
|
6
|
+
virt = Specinfra::HostInventory::Virtualization.new(host_inventory)
|
7
|
+
|
8
|
+
let(:host_inventory) { nil }
|
9
|
+
it 'OpenBSD 5.7 on KVM should return :system => "kvm"' do
|
10
|
+
ret = virt.parse_system_product_name("KVM\n")
|
11
|
+
expect(ret).to include('kvm')
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:host_inventory) { nil }
|
15
|
+
it 'OpenBSD 5.7 on VMware should return :system => "vmware"' do
|
16
|
+
ret = virt.parse_system_product_name("VMware Virtual Platform\n")
|
17
|
+
expect(ret).to include('vmware')
|
18
|
+
end
|
19
|
+
|
20
|
+
let(:host_inventory) { nil }
|
21
|
+
it 'OpenBSD 5.7 on VirtualBox should return :system => "vbox"' do
|
22
|
+
ret = virt.parse_system_product_name("VirtualBox\n")
|
23
|
+
expect(ret).to include('vbox')
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
set :os, { :family => 'solaris' }
|
4
|
+
|
5
|
+
describe Specinfra::HostInventory::Virtualization do
|
6
|
+
virt = Specinfra::HostInventory::Virtualization.new(host_inventory)
|
7
|
+
|
8
|
+
let(:host_inventory) { nil }
|
9
|
+
it 'OpenIndiana on KVM should return :system => "kvm"' do
|
10
|
+
ret = virt.parse_system_product_name("System Configuration: Red Hat KVM")
|
11
|
+
expect(ret).to include('kvm')
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:host_inventory) { nil }
|
15
|
+
it 'OpenIndiana on VMware should return :system => "vmware"' do
|
16
|
+
ret = virt.parse_system_product_name("System Configuration: VMware, Inc. VMware Virtual Platform\n")
|
17
|
+
expect(ret).to include('vmware')
|
18
|
+
end
|
19
|
+
|
20
|
+
let(:host_inventory) { nil }
|
21
|
+
it 'OpenIndiana on VirtualBox should return :system => "vbox"' do
|
22
|
+
ret = virt.parse_system_product_name("System Configuration: innotek GmbH VirtualBox\n")
|
23
|
+
expect(ret).to include('vbox')
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: specinfra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.44.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gosuke Miyashita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-scp
|
@@ -336,6 +336,7 @@ files:
|
|
336
336
|
- lib/specinfra/command/poky/base/inventory.rb
|
337
337
|
- lib/specinfra/command/poky/base/package.rb
|
338
338
|
- lib/specinfra/command/poky/base/service.rb
|
339
|
+
- lib/specinfra/command/raspbian.rb
|
339
340
|
- lib/specinfra/command/redhat.rb
|
340
341
|
- lib/specinfra/command/redhat/base.rb
|
341
342
|
- lib/specinfra/command/redhat/base/file.rb
|
@@ -466,6 +467,7 @@ files:
|
|
466
467
|
- spec/command/base/group_spec.rb
|
467
468
|
- spec/command/base/host_spec.rb
|
468
469
|
- spec/command/base/localhost_spec.rb
|
470
|
+
- spec/command/base/mail_alias.rb
|
469
471
|
- spec/command/base/package_spec.rb
|
470
472
|
- spec/command/base/user_spec.rb
|
471
473
|
- spec/command/darwin/file_spec.rb
|
@@ -496,6 +498,7 @@ files:
|
|
496
498
|
- spec/command/openbsd/file_spec.rb
|
497
499
|
- spec/command/openbsd/host_spec.rb
|
498
500
|
- spec/command/openbsd/interface_spec.rb
|
501
|
+
- spec/command/openbsd/mail_alias_spec.rb
|
499
502
|
- spec/command/openbsd/service_spec.rb
|
500
503
|
- spec/command/openbsd57/service_spec.rb
|
501
504
|
- spec/command/redhat/package_spec.rb
|
@@ -523,10 +526,11 @@ files:
|
|
523
526
|
- spec/host_inventory/linux/filesystem_spec.rb
|
524
527
|
- spec/host_inventory/linux/kernel_spec.rb
|
525
528
|
- spec/host_inventory/linux/memory_spec.rb
|
526
|
-
- spec/host_inventory/linux/
|
527
|
-
- spec/host_inventory/linux/virtualization_kvm_spec.rb
|
529
|
+
- spec/host_inventory/linux/virtualization_spec.rb
|
528
530
|
- spec/host_inventory/openbsd/filesystem_spec.rb
|
531
|
+
- spec/host_inventory/openbsd/virtualization_spec.rb
|
529
532
|
- spec/host_inventory/solaris/filesystem_spec.rb
|
533
|
+
- spec/host_inventory/solaris/virtualization_spec.rb
|
530
534
|
- spec/spec_helper.rb
|
531
535
|
- specinfra.gemspec
|
532
536
|
homepage: ''
|
@@ -567,6 +571,7 @@ test_files:
|
|
567
571
|
- spec/command/base/group_spec.rb
|
568
572
|
- spec/command/base/host_spec.rb
|
569
573
|
- spec/command/base/localhost_spec.rb
|
574
|
+
- spec/command/base/mail_alias.rb
|
570
575
|
- spec/command/base/package_spec.rb
|
571
576
|
- spec/command/base/user_spec.rb
|
572
577
|
- spec/command/darwin/file_spec.rb
|
@@ -597,6 +602,7 @@ test_files:
|
|
597
602
|
- spec/command/openbsd/file_spec.rb
|
598
603
|
- spec/command/openbsd/host_spec.rb
|
599
604
|
- spec/command/openbsd/interface_spec.rb
|
605
|
+
- spec/command/openbsd/mail_alias_spec.rb
|
600
606
|
- spec/command/openbsd/service_spec.rb
|
601
607
|
- spec/command/openbsd57/service_spec.rb
|
602
608
|
- spec/command/redhat/package_spec.rb
|
@@ -624,8 +630,10 @@ test_files:
|
|
624
630
|
- spec/host_inventory/linux/filesystem_spec.rb
|
625
631
|
- spec/host_inventory/linux/kernel_spec.rb
|
626
632
|
- spec/host_inventory/linux/memory_spec.rb
|
627
|
-
- spec/host_inventory/linux/
|
628
|
-
- spec/host_inventory/linux/virtualization_kvm_spec.rb
|
633
|
+
- spec/host_inventory/linux/virtualization_spec.rb
|
629
634
|
- spec/host_inventory/openbsd/filesystem_spec.rb
|
635
|
+
- spec/host_inventory/openbsd/virtualization_spec.rb
|
630
636
|
- spec/host_inventory/solaris/filesystem_spec.rb
|
637
|
+
- spec/host_inventory/solaris/virtualization_spec.rb
|
631
638
|
- spec/spec_helper.rb
|
639
|
+
has_rdoc:
|
@@ -1,134 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
str = <<-EOH
|
4
|
-
# dmidecode 2.12
|
5
|
-
SMBIOS 2.4 present.
|
6
|
-
10 structures occupying 326 bytes.
|
7
|
-
Table at 0x000F1EF0.
|
8
|
-
|
9
|
-
Handle 0x0000, DMI type 0, 24 bytes
|
10
|
-
BIOS Information
|
11
|
-
Vendor: Seabios
|
12
|
-
Version: 0.5.1
|
13
|
-
Release Date: 01/01/2011
|
14
|
-
Address: 0xE8000
|
15
|
-
Runtime Size: 96 kB
|
16
|
-
ROM Size: 64 kB
|
17
|
-
Characteristics:
|
18
|
-
BIOS characteristics not supported
|
19
|
-
Targeted content distribution is supported
|
20
|
-
BIOS Revision: 1.0
|
21
|
-
|
22
|
-
Handle 0x0100, DMI type 1, 27 bytes
|
23
|
-
System Information
|
24
|
-
Manufacturer: Red Hat
|
25
|
-
Product Name: KVM
|
26
|
-
Version: RHEL 7.0.0 PC (i440FX + PIIX, 1996)
|
27
|
-
Serial Number: Not Specified
|
28
|
-
UUID: 5E317344-67C8-42D1-BD62-8587C8532251
|
29
|
-
Wake-up Type: Power Switch
|
30
|
-
SKU Number: Not Specified
|
31
|
-
Family: Red Hat Enterprise Linux
|
32
|
-
|
33
|
-
Handle 0x0300, DMI type 3, 20 bytes
|
34
|
-
Chassis Information
|
35
|
-
Manufacturer: Bochs
|
36
|
-
Type: Other
|
37
|
-
Lock: Not Present
|
38
|
-
Version: Not Specified
|
39
|
-
Serial Number: Not Specified
|
40
|
-
Asset Tag: Not Specified
|
41
|
-
Boot-up State: Safe
|
42
|
-
Power Supply State: Safe
|
43
|
-
Thermal State: Safe
|
44
|
-
Security Status: Unknown
|
45
|
-
OEM Information: 0x00000000
|
46
|
-
Height: Unspecified
|
47
|
-
Number Of Power Cords: Unspecified
|
48
|
-
|
49
|
-
Handle 0x0401, DMI type 4, 32 bytes
|
50
|
-
Processor Information
|
51
|
-
Socket Designation: CPU 1
|
52
|
-
Type: Central Processor
|
53
|
-
Family: Other
|
54
|
-
Manufacturer: Bochs
|
55
|
-
ID: D3 06 00 00 FD FB 8B 07
|
56
|
-
Version: Not Specified
|
57
|
-
Voltage: Unknown
|
58
|
-
External Clock: Unknown
|
59
|
-
Max Speed: 2000 MHz
|
60
|
-
Current Speed: 2000 MHz
|
61
|
-
Status: Populated, Enabled
|
62
|
-
Upgrade: Other
|
63
|
-
L1 Cache Handle: Not Provided
|
64
|
-
L2 Cache Handle: Not Provided
|
65
|
-
L3 Cache Handle: Not Provided
|
66
|
-
|
67
|
-
Handle 0x1000, DMI type 16, 15 bytes
|
68
|
-
Physical Memory Array
|
69
|
-
Location: Other
|
70
|
-
Use: System Memory
|
71
|
-
Error Correction Type: Multi-bit ECC
|
72
|
-
Maximum Capacity: 512 MB
|
73
|
-
Error Information Handle: Not Provided
|
74
|
-
Number Of Devices: 1
|
75
|
-
|
76
|
-
Handle 0x1100, DMI type 17, 21 bytes
|
77
|
-
Memory Device
|
78
|
-
Array Handle: 0x1000
|
79
|
-
Error Information Handle: 0x0000
|
80
|
-
Total Width: 64 bits
|
81
|
-
Data Width: 64 bits
|
82
|
-
Size: 512 MB
|
83
|
-
Form Factor: DIMM
|
84
|
-
Set: None
|
85
|
-
Locator: DIMM 0
|
86
|
-
Bank Locator: Not Specified
|
87
|
-
Type: RAM
|
88
|
-
Type Detail: None
|
89
|
-
|
90
|
-
Handle 0x1300, DMI type 19, 15 bytes
|
91
|
-
Memory Array Mapped Address
|
92
|
-
Starting Address: 0x00000000000
|
93
|
-
Ending Address: 0x0001FFFFFFF
|
94
|
-
Range Size: 512 MB
|
95
|
-
Physical Array Handle: 0x1000
|
96
|
-
Partition Width: 1
|
97
|
-
|
98
|
-
Handle 0x1400, DMI type 20, 19 bytes
|
99
|
-
Memory Device Mapped Address
|
100
|
-
Starting Address: 0x00000000000
|
101
|
-
Ending Address: 0x0001FFFFFFF
|
102
|
-
Range Size: 512 MB
|
103
|
-
Physical Device Handle: 0x1100
|
104
|
-
Memory Array Mapped Address Handle: 0x1300
|
105
|
-
Partition Row Position: 1
|
106
|
-
|
107
|
-
Handle 0x2000, DMI type 32, 11 bytes
|
108
|
-
System Boot Information
|
109
|
-
Status: No errors detected
|
110
|
-
|
111
|
-
Handle 0x7F00, DMI type 127, 4 bytes
|
112
|
-
End Of Table
|
113
|
-
EOH
|
114
|
-
|
115
|
-
describe Specinfra::HostInventory::Virtualization do
|
116
|
-
virt = Specinfra::HostInventory::Virtualization.new(host_inventory)
|
117
|
-
let(:host_inventory) { nil }
|
118
|
-
it 'Docker Image should return :system => "docker"' do
|
119
|
-
allow(virt.backend).to receive(:run_command).with('ls /.dockerinit') do
|
120
|
-
CommandResult.new(:stdout => '/.dockerinit', :exit_status => 0)
|
121
|
-
end
|
122
|
-
# although there is most likely no dmidecode on a docker image
|
123
|
-
# this is to make sure the code is only reporting docker
|
124
|
-
allow(virt.backend).to receive(:run_command).with('ls /usr/sbin/dmidecode') do
|
125
|
-
CommandResult.new(:stdout => '/usr/sbin/dmidecode', :exit_status => 0)
|
126
|
-
end
|
127
|
-
allow(virt.backend).to receive(:run_command).with('dmidecode') do
|
128
|
-
CommandResult.new(:stdout => str, :exit_status => 0)
|
129
|
-
end
|
130
|
-
expect(virt.get).to include(
|
131
|
-
:system => 'docker'
|
132
|
-
)
|
133
|
-
end
|
134
|
-
end
|
@@ -1,132 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
str = <<-EOH
|
4
|
-
# dmidecode 2.12
|
5
|
-
SMBIOS 2.4 present.
|
6
|
-
10 structures occupying 326 bytes.
|
7
|
-
Table at 0x000F1EF0.
|
8
|
-
|
9
|
-
Handle 0x0000, DMI type 0, 24 bytes
|
10
|
-
BIOS Information
|
11
|
-
Vendor: Seabios
|
12
|
-
Version: 0.5.1
|
13
|
-
Release Date: 01/01/2011
|
14
|
-
Address: 0xE8000
|
15
|
-
Runtime Size: 96 kB
|
16
|
-
ROM Size: 64 kB
|
17
|
-
Characteristics:
|
18
|
-
BIOS characteristics not supported
|
19
|
-
Targeted content distribution is supported
|
20
|
-
BIOS Revision: 1.0
|
21
|
-
|
22
|
-
Handle 0x0100, DMI type 1, 27 bytes
|
23
|
-
System Information
|
24
|
-
Manufacturer: Red Hat
|
25
|
-
Product Name: KVM
|
26
|
-
Version: RHEL 7.0.0 PC (i440FX + PIIX, 1996)
|
27
|
-
Serial Number: Not Specified
|
28
|
-
UUID: 5E317344-67C8-42D1-BD62-8587C8532251
|
29
|
-
Wake-up Type: Power Switch
|
30
|
-
SKU Number: Not Specified
|
31
|
-
Family: Red Hat Enterprise Linux
|
32
|
-
|
33
|
-
Handle 0x0300, DMI type 3, 20 bytes
|
34
|
-
Chassis Information
|
35
|
-
Manufacturer: Bochs
|
36
|
-
Type: Other
|
37
|
-
Lock: Not Present
|
38
|
-
Version: Not Specified
|
39
|
-
Serial Number: Not Specified
|
40
|
-
Asset Tag: Not Specified
|
41
|
-
Boot-up State: Safe
|
42
|
-
Power Supply State: Safe
|
43
|
-
Thermal State: Safe
|
44
|
-
Security Status: Unknown
|
45
|
-
OEM Information: 0x00000000
|
46
|
-
Height: Unspecified
|
47
|
-
Number Of Power Cords: Unspecified
|
48
|
-
|
49
|
-
Handle 0x0401, DMI type 4, 32 bytes
|
50
|
-
Processor Information
|
51
|
-
Socket Designation: CPU 1
|
52
|
-
Type: Central Processor
|
53
|
-
Family: Other
|
54
|
-
Manufacturer: Bochs
|
55
|
-
ID: D3 06 00 00 FD FB 8B 07
|
56
|
-
Version: Not Specified
|
57
|
-
Voltage: Unknown
|
58
|
-
External Clock: Unknown
|
59
|
-
Max Speed: 2000 MHz
|
60
|
-
Current Speed: 2000 MHz
|
61
|
-
Status: Populated, Enabled
|
62
|
-
Upgrade: Other
|
63
|
-
L1 Cache Handle: Not Provided
|
64
|
-
L2 Cache Handle: Not Provided
|
65
|
-
L3 Cache Handle: Not Provided
|
66
|
-
|
67
|
-
Handle 0x1000, DMI type 16, 15 bytes
|
68
|
-
Physical Memory Array
|
69
|
-
Location: Other
|
70
|
-
Use: System Memory
|
71
|
-
Error Correction Type: Multi-bit ECC
|
72
|
-
Maximum Capacity: 512 MB
|
73
|
-
Error Information Handle: Not Provided
|
74
|
-
Number Of Devices: 1
|
75
|
-
|
76
|
-
Handle 0x1100, DMI type 17, 21 bytes
|
77
|
-
Memory Device
|
78
|
-
Array Handle: 0x1000
|
79
|
-
Error Information Handle: 0x0000
|
80
|
-
Total Width: 64 bits
|
81
|
-
Data Width: 64 bits
|
82
|
-
Size: 512 MB
|
83
|
-
Form Factor: DIMM
|
84
|
-
Set: None
|
85
|
-
Locator: DIMM 0
|
86
|
-
Bank Locator: Not Specified
|
87
|
-
Type: RAM
|
88
|
-
Type Detail: None
|
89
|
-
|
90
|
-
Handle 0x1300, DMI type 19, 15 bytes
|
91
|
-
Memory Array Mapped Address
|
92
|
-
Starting Address: 0x00000000000
|
93
|
-
Ending Address: 0x0001FFFFFFF
|
94
|
-
Range Size: 512 MB
|
95
|
-
Physical Array Handle: 0x1000
|
96
|
-
Partition Width: 1
|
97
|
-
|
98
|
-
Handle 0x1400, DMI type 20, 19 bytes
|
99
|
-
Memory Device Mapped Address
|
100
|
-
Starting Address: 0x00000000000
|
101
|
-
Ending Address: 0x0001FFFFFFF
|
102
|
-
Range Size: 512 MB
|
103
|
-
Physical Device Handle: 0x1100
|
104
|
-
Memory Array Mapped Address Handle: 0x1300
|
105
|
-
Partition Row Position: 1
|
106
|
-
|
107
|
-
Handle 0x2000, DMI type 32, 11 bytes
|
108
|
-
System Boot Information
|
109
|
-
Status: No errors detected
|
110
|
-
|
111
|
-
Handle 0x7F00, DMI type 127, 4 bytes
|
112
|
-
End Of Table
|
113
|
-
EOH
|
114
|
-
|
115
|
-
describe Specinfra::HostInventory::Virtualization do
|
116
|
-
virt = Specinfra::HostInventory::Virtualization.new(host_inventory)
|
117
|
-
let(:host_inventory) { nil }
|
118
|
-
it 'Debian Jessie on KVM should return :system => "kvm"' do
|
119
|
-
allow(virt.backend).to receive(:run_command).with('ls /.dockerinit') do
|
120
|
-
CommandResult.new(:stdout => '', :exit_status => 2)
|
121
|
-
end
|
122
|
-
allow(virt.backend).to receive(:run_command).with('ls /usr/sbin/dmidecode') do
|
123
|
-
CommandResult.new(:stdout => '/usr/sbin/dmidecode', :exit_status => 0)
|
124
|
-
end
|
125
|
-
allow(virt.backend).to receive(:run_command).with('dmidecode') do
|
126
|
-
CommandResult.new(:stdout => str, :exit_status => 0)
|
127
|
-
end
|
128
|
-
expect(virt.get).to include(
|
129
|
-
:system => 'kvm'
|
130
|
-
)
|
131
|
-
end
|
132
|
-
end
|