specinfra 2.14.4 → 2.15.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/Rakefile +5 -1
- data/lib/specinfra/command.rb +2 -0
- data/lib/specinfra/command/base/bond.rb +2 -0
- data/lib/specinfra/command/linux/base/bond.rb +11 -0
- data/lib/specinfra/command/linux/base/inventory.rb +4 -0
- data/lib/specinfra/host_inventory.rb +1 -0
- data/lib/specinfra/host_inventory/cpu.rb +73 -0
- data/lib/specinfra/version.rb +1 -1
- data/spec/command/linux/bond_spec.rb +12 -0
- data/spec/command/linux/inventory_spec.rb +4 -0
- data/spec/host_inventory/cpu_spec.rb +122 -0
- data/spec/spec_helper.rb +1 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 361d8ffe8fa2b17b7b9eee8351881419f8f5379b
|
4
|
+
data.tar.gz: 330df612efb50b40068c034e33105196fa64aea0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0043e8d43ba0e507d13ff9ad7ddeb08489f926612396d264187e6e5ddd4b800072712bc348e2f588e287da58d552e4a7dcedcb1fc02e61e0ebf5b808ef5171a5
|
7
|
+
data.tar.gz: c7a2d8f61357127fd7d09929e9331c1f959ad15da7187313d0b247c86b5e953f7dfff2e9d910cf5172e499ee724d7fc66b8371d9f75fd75d01bfcbaccbc71e5d
|
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ if defined?(RSpec)
|
|
9
9
|
task :spec => 'spec:all'
|
10
10
|
|
11
11
|
namespace :spec do
|
12
|
-
task :all => [ :helper, :backend, :configuration, :command ]
|
12
|
+
task :all => [ :helper, :backend, :configuration, :command, :host_inventory ]
|
13
13
|
|
14
14
|
RSpec::Core::RakeTask.new(:helper) do |t|
|
15
15
|
t.pattern = "spec/helper/*_spec.rb"
|
@@ -35,5 +35,9 @@ if defined?(RSpec)
|
|
35
35
|
RSpec::Core::RakeTask.new(:command) do |t|
|
36
36
|
t.pattern = "spec/command/**/*.rb"
|
37
37
|
end
|
38
|
+
|
39
|
+
RSpec::Core::RakeTask.new(:host_inventory) do |t|
|
40
|
+
t.pattern = "spec/host_inventory/*_spec.rb"
|
41
|
+
end
|
38
42
|
end
|
39
43
|
end
|
data/lib/specinfra/command.rb
CHANGED
@@ -8,6 +8,7 @@ require 'specinfra/command/module/zfs'
|
|
8
8
|
# Base
|
9
9
|
require 'specinfra/command/base'
|
10
10
|
require 'specinfra/command/base/bridge'
|
11
|
+
require 'specinfra/command/base/bond'
|
11
12
|
require 'specinfra/command/base/cron'
|
12
13
|
require 'specinfra/command/base/file'
|
13
14
|
require 'specinfra/command/base/fstab'
|
@@ -39,6 +40,7 @@ require 'specinfra/command/base/zfs'
|
|
39
40
|
require 'specinfra/command/linux'
|
40
41
|
require 'specinfra/command/linux/base'
|
41
42
|
require 'specinfra/command/linux/base/bridge'
|
43
|
+
require 'specinfra/command/linux/base/bond'
|
42
44
|
require 'specinfra/command/linux/base/file'
|
43
45
|
require 'specinfra/command/linux/base/fstab'
|
44
46
|
require 'specinfra/command/linux/base/interface'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Specinfra::Command::Linux::Base::Bond < Specinfra::Command::Base::Bond
|
2
|
+
class << self
|
3
|
+
def check_exists(name)
|
4
|
+
"ip link show #{name}"
|
5
|
+
end
|
6
|
+
|
7
|
+
def check_has_interface(name, interface)
|
8
|
+
"grep -o 'Slave Interface: #{interface}' /proc/net/bonding/#{name}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -6,6 +6,7 @@ require 'specinfra/host_inventory/fqdn'
|
|
6
6
|
require 'specinfra/host_inventory/platform'
|
7
7
|
require 'specinfra/host_inventory/platform_version'
|
8
8
|
require 'specinfra/host_inventory/filesystem'
|
9
|
+
require 'specinfra/host_inventory/cpu'
|
9
10
|
|
10
11
|
module Specinfra
|
11
12
|
class HostInventory
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module Specinfra
|
2
|
+
class HostInventory
|
3
|
+
class Cpu
|
4
|
+
def self.get
|
5
|
+
cmd = Specinfra.command.get(:get_inventory_cpu)
|
6
|
+
ret = Specinfra.backend.run_command(cmd).stdout
|
7
|
+
parse(ret)
|
8
|
+
end
|
9
|
+
def self.parse(cmd_ret)
|
10
|
+
cpuinfo = {}
|
11
|
+
cpus = cmd_ret.split(/[^^]processor/)
|
12
|
+
cpuinfo['total'] = cpus.length.to_s
|
13
|
+
cpus.each_with_index do |cpu, idx|
|
14
|
+
idx = idx.to_s
|
15
|
+
cpuinfo[idx] = {}
|
16
|
+
cpu.each_line do |line|
|
17
|
+
case line
|
18
|
+
when /^vendor_id\s*:\s+(.+)$/
|
19
|
+
cpuinfo[idx]['vendor_id'] = $1
|
20
|
+
when /^cpu family\s*:\s+(\d+)$/
|
21
|
+
cpuinfo[idx]['cpu_family'] = $1
|
22
|
+
when /^model\s*:\s+(\d+)$/
|
23
|
+
cpuinfo[idx]['model'] = $1
|
24
|
+
when /^model\sname\s*:\s+(.+)$/
|
25
|
+
cpuinfo[idx]['model_name'] = $1
|
26
|
+
when /^stepping\s*:\s+(\d+)$/
|
27
|
+
cpuinfo[idx]['stepping'] = $1
|
28
|
+
when /^microcode\s*:\s+(.+)$/
|
29
|
+
cpuinfo[idx]['microcode'] = $1
|
30
|
+
when /^cpu MHz\s*:\s+(.+)$/
|
31
|
+
cpuinfo[idx]['cpu_mhz'] = $1
|
32
|
+
when /^cache size\s*:\s+(\d+) (.+)$/
|
33
|
+
cpuinfo[idx]['cache_size'] = "#{$1}#{$2}"
|
34
|
+
when /^physical id\s*:\s+(\d+)$/
|
35
|
+
cpuinfo[idx]['physical_id'] = $1
|
36
|
+
when /^siblings\s*:\s+(\d+)$/
|
37
|
+
cpuinfo[idx]['siblings'] = $1
|
38
|
+
when /^core id\s*:\s+(\d+)$/
|
39
|
+
cpuinfo[idx]['core_id'] = $1
|
40
|
+
when /^cpu cores\s*:\s+(\d+)$/
|
41
|
+
cpuinfo[idx]['cpu_cores'] = $1
|
42
|
+
when /^apicid\s*:\s+(\d+)$/
|
43
|
+
cpuinfo[idx]['apicid'] = $1
|
44
|
+
when /^initial apicid\s*:\s+(\d+)$/
|
45
|
+
cpuinfo[idx]['initial_apicid'] = $1
|
46
|
+
when /^fpu\s*:\s+(.+)$/
|
47
|
+
cpuinfo[idx]['fpu'] = $1
|
48
|
+
when /^fpu_exception\s*:\s+(.+)$/
|
49
|
+
cpuinfo[idx]['fpu_exception'] = $1
|
50
|
+
when /^cpuid level\s*:\s+(\d+)$/
|
51
|
+
cpuinfo[idx]['cpuid_level'] = $1
|
52
|
+
when /^wp\s*:\s+(.+)$/
|
53
|
+
cpuinfo[idx]['wp'] = $1
|
54
|
+
when /^flags\s*:\s+(.+)$/
|
55
|
+
cpuinfo[idx]['flags'] = $1.split(/\s/)
|
56
|
+
when /^bogomips\s*:\s+(.+)$/
|
57
|
+
cpuinfo[idx]['bogomips'] = $1
|
58
|
+
when /^clflush size\s*:\s+(\d+)$/
|
59
|
+
cpuinfo[idx]['clflush_size'] = $1
|
60
|
+
when /^cache_alignment\s*:\s+(\d+)$/
|
61
|
+
cpuinfo[idx]['cache_alignment'] = $1
|
62
|
+
when /^address sizes\s*:\s+(.+)$/
|
63
|
+
cpuinfo[idx]['address_sizes'] = $1
|
64
|
+
when /^power management\s*:\s+(.*)$/
|
65
|
+
cpuinfo[idx]['power_management'] = $1
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
cpuinfo
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
data/lib/specinfra/version.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
property[:os] = nil
|
4
|
+
set :os, :family => 'linux'
|
5
|
+
|
6
|
+
describe get_command(:check_bond_exists, 'bond0') do
|
7
|
+
it { should eq "ip link show bond0" }
|
8
|
+
end
|
9
|
+
|
10
|
+
describe get_command(:check_bond_has_interface, 'br0', 'eth0') do
|
11
|
+
it { should eq "grep -o 'Slave Interface: eth0' /proc/net/bonding/br0" }
|
12
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
str = <<-EOH
|
4
|
+
processor : 0
|
5
|
+
vendor_id : GenuineIntel
|
6
|
+
cpu family : 6
|
7
|
+
model : 60
|
8
|
+
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
|
9
|
+
stepping : 3
|
10
|
+
microcode : 0x19
|
11
|
+
cpu MHz : 3132.076
|
12
|
+
cache size : 6144 KB
|
13
|
+
physical id : 0
|
14
|
+
siblings : 2
|
15
|
+
core id : 0
|
16
|
+
cpu cores : 2
|
17
|
+
apicid : 0
|
18
|
+
initial apicid : 0
|
19
|
+
fpu : yes
|
20
|
+
fpu_exception : yes
|
21
|
+
cpuid level : 5
|
22
|
+
wp : yes
|
23
|
+
flags : fpu vme de pse
|
24
|
+
bogomips : 6264.15
|
25
|
+
clflush size : 64
|
26
|
+
cache_alignment : 64
|
27
|
+
address sizes : 39 bits physical, 48 bits virtual
|
28
|
+
power management:
|
29
|
+
|
30
|
+
processor : 1
|
31
|
+
vendor_id : GenuineIntel
|
32
|
+
cpu family : 6
|
33
|
+
model : 60
|
34
|
+
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
|
35
|
+
stepping : 3
|
36
|
+
microcode : 0x19
|
37
|
+
cpu MHz : 3132.076
|
38
|
+
cache size : 6144 KB
|
39
|
+
physical id : 0
|
40
|
+
siblings : 2
|
41
|
+
core id : 1
|
42
|
+
cpu cores : 2
|
43
|
+
apicid : 1
|
44
|
+
initial apicid : 1
|
45
|
+
fpu : yes
|
46
|
+
fpu_exception : yes
|
47
|
+
cpuid level : 5
|
48
|
+
wp : yes
|
49
|
+
flags : fpu vme de
|
50
|
+
bogomips : 6264.15
|
51
|
+
clflush size : 64
|
52
|
+
cache_alignment : 64
|
53
|
+
address sizes : 39 bits physical, 48 bits virtual
|
54
|
+
power management:
|
55
|
+
EOH
|
56
|
+
|
57
|
+
describe Specinfra::HostInventory::Cpu do
|
58
|
+
describe 'Example of Ubuntu 14.04.1 LTS Kernel version 3.13.11' do
|
59
|
+
ret = Specinfra::HostInventory::Cpu.parse(str)
|
60
|
+
example do
|
61
|
+
expect(ret["0"]).to include(
|
62
|
+
"vendor_id" => "GenuineIntel",
|
63
|
+
"cpu_family" => "6",
|
64
|
+
"model" => "60",
|
65
|
+
"model_name" => "Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz",
|
66
|
+
"stepping" => "3",
|
67
|
+
"microcode" => "0x19",
|
68
|
+
"cpu_mhz" => "3132.076",
|
69
|
+
"cache_size" => "6144KB",
|
70
|
+
"physical_id" => "0",
|
71
|
+
"siblings" => "2",
|
72
|
+
"core_id" => "0",
|
73
|
+
"cpu_cores" => "2",
|
74
|
+
"apicid" => "0",
|
75
|
+
"initial_apicid" => "0",
|
76
|
+
"fpu" => "yes",
|
77
|
+
"fpu_exception" => "yes",
|
78
|
+
"cpuid_level" => "5",
|
79
|
+
"wp" => "yes",
|
80
|
+
"flags" => ["fpu", "vme", "de", "pse"],
|
81
|
+
"bogomips" => "6264.15",
|
82
|
+
"clflush_size" => "64",
|
83
|
+
"cache_alignment" => "64",
|
84
|
+
"address_sizes" => "39 bits physical, 48 bits virtual",
|
85
|
+
"power_management" => ""
|
86
|
+
)
|
87
|
+
end
|
88
|
+
|
89
|
+
example do
|
90
|
+
expect(ret["1"]).to include(
|
91
|
+
"vendor_id" => "GenuineIntel",
|
92
|
+
"cpu_family" => "6",
|
93
|
+
"model" => "60",
|
94
|
+
"model_name" => "Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz",
|
95
|
+
"stepping" => "3",
|
96
|
+
"microcode" => "0x19",
|
97
|
+
"cpu_mhz" => "3132.076",
|
98
|
+
"cache_size" => "6144KB",
|
99
|
+
"physical_id" => "0",
|
100
|
+
"siblings" => "2",
|
101
|
+
"core_id" => "1",
|
102
|
+
"cpu_cores" => "2",
|
103
|
+
"apicid" => "1",
|
104
|
+
"initial_apicid" => "1",
|
105
|
+
"fpu" => "yes",
|
106
|
+
"fpu_exception" => "yes",
|
107
|
+
"cpuid_level" => "5",
|
108
|
+
"wp" => "yes",
|
109
|
+
"flags" => ["fpu", "vme", "de"],
|
110
|
+
"bogomips" => "6264.15",
|
111
|
+
"clflush_size" => "64",
|
112
|
+
"cache_alignment" => "64",
|
113
|
+
"address_sizes" => "39 bits physical, 48 bits virtual",
|
114
|
+
"power_management" => ""
|
115
|
+
)
|
116
|
+
end
|
117
|
+
|
118
|
+
example do
|
119
|
+
expect(ret["total"]).to eq "2"
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
data/spec/spec_helper.rb
CHANGED
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.15.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-02-
|
11
|
+
date: 2015-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|
@@ -151,6 +151,7 @@ files:
|
|
151
151
|
- lib/specinfra/command/arch/base/package.rb
|
152
152
|
- lib/specinfra/command/arch/base/service.rb
|
153
153
|
- lib/specinfra/command/base.rb
|
154
|
+
- lib/specinfra/command/base/bond.rb
|
154
155
|
- lib/specinfra/command/base/bridge.rb
|
155
156
|
- lib/specinfra/command/base/cron.rb
|
156
157
|
- lib/specinfra/command/base/file.rb
|
@@ -213,6 +214,7 @@ files:
|
|
213
214
|
- lib/specinfra/command/gentoo/base/service.rb
|
214
215
|
- lib/specinfra/command/linux.rb
|
215
216
|
- lib/specinfra/command/linux/base.rb
|
217
|
+
- lib/specinfra/command/linux/base/bond.rb
|
216
218
|
- lib/specinfra/command/linux/base/bridge.rb
|
217
219
|
- lib/specinfra/command/linux/base/file.rb
|
218
220
|
- lib/specinfra/command/linux/base/fstab.rb
|
@@ -338,6 +340,7 @@ files:
|
|
338
340
|
- lib/specinfra/helper/properties.rb
|
339
341
|
- lib/specinfra/helper/set.rb
|
340
342
|
- lib/specinfra/host_inventory.rb
|
343
|
+
- lib/specinfra/host_inventory/cpu.rb
|
341
344
|
- lib/specinfra/host_inventory/domain.rb
|
342
345
|
- lib/specinfra/host_inventory/ec2.rb
|
343
346
|
- lib/specinfra/host_inventory/filesystem.rb
|
@@ -362,6 +365,7 @@ files:
|
|
362
365
|
- spec/command/debian/service_spec.rb
|
363
366
|
- spec/command/factory_spec.rb
|
364
367
|
- spec/command/freebsd/file_spec.rb
|
368
|
+
- spec/command/linux/bond_spec.rb
|
365
369
|
- spec/command/linux/bridge_spec.rb
|
366
370
|
- spec/command/linux/interface_spec.rb
|
367
371
|
- spec/command/linux/inventory_spec.rb
|
@@ -378,6 +382,7 @@ files:
|
|
378
382
|
- spec/helper/os_spec.rb
|
379
383
|
- spec/helper/properties_spec.rb
|
380
384
|
- spec/helper/set_spec.rb
|
385
|
+
- spec/host_inventory/cpu_spec.rb
|
381
386
|
- spec/spec_helper.rb
|
382
387
|
- specinfra.gemspec
|
383
388
|
- wercker.yml
|
@@ -418,6 +423,7 @@ test_files:
|
|
418
423
|
- spec/command/debian/service_spec.rb
|
419
424
|
- spec/command/factory_spec.rb
|
420
425
|
- spec/command/freebsd/file_spec.rb
|
426
|
+
- spec/command/linux/bond_spec.rb
|
421
427
|
- spec/command/linux/bridge_spec.rb
|
422
428
|
- spec/command/linux/interface_spec.rb
|
423
429
|
- spec/command/linux/inventory_spec.rb
|
@@ -434,4 +440,5 @@ test_files:
|
|
434
440
|
- spec/helper/os_spec.rb
|
435
441
|
- spec/helper/properties_spec.rb
|
436
442
|
- spec/helper/set_spec.rb
|
443
|
+
- spec/host_inventory/cpu_spec.rb
|
437
444
|
- spec/spec_helper.rb
|