specinfra 2.43.11 → 2.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|