specinfra 2.0.0.beta50 → 2.0.0.beta51

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.
@@ -17,8 +17,14 @@ function FindIISAppPool
17
17
  param($name)
18
18
 
19
19
  Import-Module WebAdministration
20
-
21
- Get-Item "IIS:\AppPools\$name" -Erroraction silentlycontinue
20
+
21
+ Try {
22
+ Get-Item "IIS:\AppPools\$name" -Erroraction silentlycontinue
23
+ }
24
+ Catch [System.IO.FileNotFoundException] {
25
+ Get-Item "IIS:\AppPools\$name" -Erroraction silentlycontinue
26
+
27
+ }
22
28
  }
23
29
 
24
30
  function FindSiteBindings
@@ -26,8 +32,12 @@ function FindSiteBindings
26
32
  param($name, $protocol, $hostHeader, $port, $ipAddress)
27
33
 
28
34
  Import-Module WebAdministration
29
-
30
- Get-WebBinding -Name $name -Protocol $protocol -HostHeader $hostHeader -Port $port -IPAddress $ipAddress
35
+ Try {
36
+ Get-WebBinding -Name $name -Protocol $protocol -HostHeader $hostHeader -Port $port -IPAddress $ipAddress
37
+ }
38
+ Catch [System.IO.FileNotFoundException] {
39
+ Get-WebBinding -Name $name -Protocol $protocol -HostHeader $hostHeader -Port $port -IPAddress $ipAddress
40
+ }
31
41
  }
32
42
 
33
43
  function FindSiteVirtualDir
@@ -12,6 +12,7 @@ require 'specinfra/command/base/file'
12
12
  require 'specinfra/command/base/group'
13
13
  require 'specinfra/command/base/host'
14
14
  require 'specinfra/command/base/interface'
15
+ require 'specinfra/command/base/inventory'
15
16
  require 'specinfra/command/base/ipfilter'
16
17
  require 'specinfra/command/base/ipnat'
17
18
  require 'specinfra/command/base/iptables'
@@ -36,6 +37,7 @@ require 'specinfra/command/linux'
36
37
  require 'specinfra/command/linux/base'
37
38
  require 'specinfra/command/linux/base/file'
38
39
  require 'specinfra/command/linux/base/interface'
40
+ require 'specinfra/command/linux/base/inventory'
39
41
  require 'specinfra/command/linux/base/iptables'
40
42
  require 'specinfra/command/linux/base/ip6tables'
41
43
  require 'specinfra/command/linux/base/kernel_module'
@@ -160,7 +162,6 @@ require 'specinfra/command/openbsd/base/interface'
160
162
  require 'specinfra/command/openbsd/base/mail_alias'
161
163
  require 'specinfra/command/openbsd/base/package'
162
164
  require 'specinfra/command/openbsd/base/port'
163
- require 'specinfra/command/openbsd/base/routing_table'
164
165
  require 'specinfra/command/openbsd/base/service'
165
166
  require 'specinfra/command/openbsd/base/user'
166
167
 
@@ -2,9 +2,10 @@ class Specinfra::Command::Arch::Base::Package < Specinfra::Command::Linux::Base:
2
2
  class << self
3
3
  def check_is_installed(package,version=nil)
4
4
  if version
5
- "pacman -Q | grep #{escape(package)} #{escape(version)}"
5
+ grep = version.include?('-') ? "^#{escape(version)}$" : "^#{escape(version)}-"
6
+ "pacman -Q #{escape(package)} | awk '{print $2}' | grep '#{grep}'"
6
7
  else
7
- "pacman -Q | grep #{escape(package)}"
8
+ "pacman -Q #{escape(package)}"
8
9
  end
9
10
  end
10
11
 
@@ -0,0 +1,2 @@
1
+ class Specinfra::Command::Base::Inventory < Specinfra::Command::Base
2
+ end
@@ -0,0 +1,7 @@
1
+ class Specinfra::Command::Linux::Base::Inventory < Specinfra::Command::Base::Inventory
2
+ class << self
3
+ def get_memory
4
+ 'cat /proc/meminfo'
5
+ end
6
+ end
7
+ end
@@ -11,3 +11,6 @@ include Specinfra::Helper::Properties
11
11
 
12
12
  require 'specinfra/helper/set'
13
13
  include Specinfra::Helper::Set
14
+
15
+ require 'specinfra/helper/host_inventory'
16
+ include Specinfra::Helper::HostInventory
@@ -0,0 +1,12 @@
1
+ require 'specinfra/host_inventory'
2
+
3
+ module Specinfra
4
+ module Helper
5
+ module HostInventory
6
+ def host_inventory
7
+ Specinfra::HostInventory.instance
8
+ end
9
+ end
10
+ end
11
+ end
12
+
@@ -0,0 +1,18 @@
1
+ module Specinfra
2
+ class HostInventory
3
+ include Singleton
4
+
5
+ def initialize
6
+ property[:host_inventory] ||= {}
7
+ @inventory = property[:host_inventory]
8
+ end
9
+
10
+ def [](key)
11
+ @inventory[key.to_sym] ||= {}
12
+ if @inventory[key.to_sym].empty?
13
+ @inventory[key.to_sym] = Specinfra::Runner.send("get_inventory_#{key}")
14
+ end
15
+ @inventory[key.to_sym]
16
+ end
17
+ end
18
+ end
@@ -123,21 +123,12 @@ module Specinfra
123
123
 
124
124
  ret.stdout.gsub!(/\r\n/, "\n")
125
125
 
126
- if os[:family] == 'openbsd'
127
- match = ret.stdout.match(/^(?<destination>\S+)\s+(?<gateway>\S+).*?(?<interface>\S+[0-9]+)(\s*)$/)
128
- actual_attr = {
129
- :destination => match[:destination],
130
- :gateway => match[:gateway],
131
- :interface => expected_attr[:interface] ? match[:interface] : nil
132
- }
133
- else
134
- ret.stdout =~ /^(\S+)(?: via (\S+))? dev (\S+).+\n(?:default via (\S+))?/
135
- actual_attr = {
136
- :destination => $1,
137
- :gateway => $2 ? $2 : $4,
138
- :interface => expected_attr[:interface] ? $3 : nil
139
- }
140
- end
126
+ ret.stdout =~ /^(\S+)(?: via (\S+))? dev (\S+).+\n(?:default via (\S+))?/
127
+ actual_attr = {
128
+ :destination => $1,
129
+ :gateway => $2 ? $2 : $4,
130
+ :interface => expected_attr[:interface] ? $3 : nil
131
+ }
141
132
 
142
133
  expected_attr.each do |key, val|
143
134
  return false if actual_attr[key] != val
@@ -153,16 +144,31 @@ module Specinfra
153
144
  ret.stdout.gsub!(/\r\n/, "\n")
154
145
 
155
146
  if os[:family] == 'openbsd'
156
- match = ret.stdout.match(/^(?<destination>\S+)\s+(?<gateway>\S+).*?(?<interface>\S+[0-9]+)(\s*)$/)
157
- match[attr]
147
+ # This code does not work with Ruby 1.8.7.
148
+ # So commented out.
149
+ # match = ret.stdout.match(/^(?<destination>\S+)\s+(?<gateway>\S+).*?(?<interface>\S+[0-9]+)(\s*)$/)
150
+ # match[attr]
158
151
  else
159
152
  ret.stdout =~ /^(\S+)(?: via (\S+))? dev (\S+).+\n(?:default via (\S+))?/
160
- if attr == :gateway
161
- $2 ? $2 : $4
162
- elsif attr == :interface
163
- $3
164
- end
153
+ if attr == :gateway
154
+ $2 ? $2 : $4
155
+ elsif attr == :interface
156
+ $3
157
+ end
158
+ end
159
+ end
160
+
161
+ def self.get_inventory_memory
162
+ cmd = Specinfra.command.get(:get_inventory_memory)
163
+ ret = Specinfra.backend.run_command(cmd).stdout
164
+ memory = {}
165
+ ret.each_line do |line|
166
+ case line
167
+ when /^MemTotal:\s+(\d+) (.+)$/
168
+ memory[:total] = "#{$1}#{$2}"
169
+ end
165
170
  end
171
+ memory
166
172
  end
167
173
  end
168
174
  end
@@ -1,3 +1,3 @@
1
1
  module Specinfra
2
- VERSION = "2.0.0.beta50"
2
+ VERSION = "2.0.0.beta51"
3
3
  end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'linux'
4
+
5
+ describe get_command(:get_inventory_memory) do
6
+ it { should eq 'cat /proc/meminfo' }
7
+ end
metadata CHANGED
@@ -1,109 +1,125 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: specinfra
3
- version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta50
3
+ version: !ruby/object:Gem::Version
4
+ hash: -3009863172
5
+ prerelease: 6
6
+ segments:
7
+ - 2
8
+ - 0
9
+ - 0
10
+ - beta
11
+ - 51
12
+ version: 2.0.0.beta51
5
13
  platform: ruby
6
- authors:
14
+ authors:
7
15
  - Gosuke Miyashita
8
16
  autorequire:
9
17
  bindir: bin
10
18
  cert_chain: []
11
- date: 2014-09-19 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
19
+
20
+ date: 2014-10-02 00:00:00 +09:00
21
+ default_executable:
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
14
24
  name: net-ssh
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
25
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
26
+ requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
24
29
  - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: net-scp
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
30
+ - !ruby/object:Gem::Version
31
+ hash: 3
32
+ segments:
33
+ - 0
34
+ version: "0"
34
35
  type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: net-scp
35
39
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
38
43
  - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
42
52
  name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.3'
48
- type: :development
49
53
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.3'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 10.1.1
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 9
60
+ segments:
61
+ - 1
62
+ - 3
63
+ version: "1.3"
62
64
  type: :development
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: rake
63
68
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 73
75
+ segments:
76
+ - 10
77
+ - 1
78
+ - 1
68
79
  version: 10.1.1
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
80
  type: :development
81
+ version_requirements: *id004
82
+ - !ruby/object:Gem::Dependency
83
+ name: rspec
77
84
  prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
85
+ requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
80
88
  - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rspec-its
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
89
+ - !ruby/object:Gem::Version
90
+ hash: 3
91
+ segments:
92
+ - 0
93
+ version: "0"
90
94
  type: :development
95
+ version_requirements: *id005
96
+ - !ruby/object:Gem::Dependency
97
+ name: rspec-its
91
98
  prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
99
+ requirement: &id006 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
94
102
  - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
103
+ - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
107
+ version: "0"
108
+ type: :development
109
+ version_requirements: *id006
97
110
  description: Common layer for serverspec and itamae
98
- email:
111
+ email:
99
112
  - gosukenator@gmail.com
100
113
  executables: []
114
+
101
115
  extensions: []
116
+
102
117
  extra_rdoc_files: []
103
- files:
104
- - ".gitignore"
105
- - ".gitmodules"
106
- - ".travis.yml"
118
+
119
+ files:
120
+ - .gitignore
121
+ - .gitmodules
122
+ - .travis.yml
107
123
  - Gemfile
108
124
  - Guardfile
109
125
  - LICENSE.txt
@@ -155,6 +171,7 @@ files:
155
171
  - lib/specinfra/command/base/group.rb
156
172
  - lib/specinfra/command/base/host.rb
157
173
  - lib/specinfra/command/base/interface.rb
174
+ - lib/specinfra/command/base/inventory.rb
158
175
  - lib/specinfra/command/base/ip6tables.rb
159
176
  - lib/specinfra/command/base/ipfilter.rb
160
177
  - lib/specinfra/command/base/ipnat.rb
@@ -205,6 +222,7 @@ files:
205
222
  - lib/specinfra/command/linux/base.rb
206
223
  - lib/specinfra/command/linux/base/file.rb
207
224
  - lib/specinfra/command/linux/base/interface.rb
225
+ - lib/specinfra/command/linux/base/inventory.rb
208
226
  - lib/specinfra/command/linux/base/ip6tables.rb
209
227
  - lib/specinfra/command/linux/base/iptables.rb
210
228
  - lib/specinfra/command/linux/base/kernel_module.rb
@@ -229,7 +247,6 @@ files:
229
247
  - lib/specinfra/command/openbsd/base/mail_alias.rb
230
248
  - lib/specinfra/command/openbsd/base/package.rb
231
249
  - lib/specinfra/command/openbsd/base/port.rb
232
- - lib/specinfra/command/openbsd/base/routing_table.rb
233
250
  - lib/specinfra/command/openbsd/base/service.rb
234
251
  - lib/specinfra/command/openbsd/base/user.rb
235
252
  - lib/specinfra/command/opensuse.rb
@@ -316,10 +333,12 @@ files:
316
333
  - lib/specinfra/helper/detect_os/solaris.rb
317
334
  - lib/specinfra/helper/detect_os/suse.rb
318
335
  - lib/specinfra/helper/docker.rb
336
+ - lib/specinfra/helper/host_inventory.rb
319
337
  - lib/specinfra/helper/lxc.rb
320
338
  - lib/specinfra/helper/os.rb
321
339
  - lib/specinfra/helper/properties.rb
322
340
  - lib/specinfra/helper/set.rb
341
+ - lib/specinfra/host_inventory.rb
323
342
  - lib/specinfra/processor.rb
324
343
  - lib/specinfra/properties.rb
325
344
  - lib/specinfra/runner.rb
@@ -334,6 +353,7 @@ files:
334
353
  - spec/command/debian/service_spec.rb
335
354
  - spec/command/factory_spec.rb
336
355
  - spec/command/linux/interface_spec.rb
356
+ - spec/command/linux/inventory_spec.rb
337
357
  - spec/command/linux/ip6tables_spec.rb
338
358
  - spec/command/module/systemd_spec.rb
339
359
  - spec/command/redhat/interface_spec.rb
@@ -347,31 +367,43 @@ files:
347
367
  - spec/spec_helper.rb
348
368
  - specinfra.gemspec
349
369
  - wercker.yml
350
- homepage: ''
351
- licenses:
370
+ has_rdoc: true
371
+ homepage: ""
372
+ licenses:
352
373
  - MIT
353
- metadata: {}
354
374
  post_install_message:
355
375
  rdoc_options: []
356
- require_paths:
376
+
377
+ require_paths:
357
378
  - lib
358
- required_ruby_version: !ruby/object:Gem::Requirement
359
- requirements:
379
+ required_ruby_version: !ruby/object:Gem::Requirement
380
+ none: false
381
+ requirements:
360
382
  - - ">="
361
- - !ruby/object:Gem::Version
362
- version: '0'
363
- required_rubygems_version: !ruby/object:Gem::Requirement
364
- requirements:
383
+ - !ruby/object:Gem::Version
384
+ hash: 3
385
+ segments:
386
+ - 0
387
+ version: "0"
388
+ required_rubygems_version: !ruby/object:Gem::Requirement
389
+ none: false
390
+ requirements:
365
391
  - - ">"
366
- - !ruby/object:Gem::Version
392
+ - !ruby/object:Gem::Version
393
+ hash: 25
394
+ segments:
395
+ - 1
396
+ - 3
397
+ - 1
367
398
  version: 1.3.1
368
399
  requirements: []
400
+
369
401
  rubyforge_project:
370
- rubygems_version: 2.2.2
402
+ rubygems_version: 1.6.2
371
403
  signing_key:
372
- specification_version: 4
404
+ specification_version: 3
373
405
  summary: Common layer for serverspec and itamae
374
- test_files:
406
+ test_files:
375
407
  - spec/backend/exec/build_command_spec.rb
376
408
  - spec/backend/exec/env_spec.rb
377
409
  - spec/backend/ssh/build_command_spec.rb
@@ -382,6 +414,7 @@ test_files:
382
414
  - spec/command/debian/service_spec.rb
383
415
  - spec/command/factory_spec.rb
384
416
  - spec/command/linux/interface_spec.rb
417
+ - spec/command/linux/inventory_spec.rb
385
418
  - spec/command/linux/ip6tables_spec.rb
386
419
  - spec/command/module/systemd_spec.rb
387
420
  - spec/command/redhat/interface_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 84744a7a631801a67ee1cb4357dc3b19be41c06f
4
- data.tar.gz: 85a4c8ca8abdb1de2c532bbfc6a54d4aa994e3df
5
- SHA512:
6
- metadata.gz: 5ebe9832eb880d67db5c597465cae89c4b1aec7251af8e119153d20eeca7ee300796fe9faf8b8e29fc9c91fc8239508ccc9a15e813e9c958eeabb5a844057240
7
- data.tar.gz: 5c37468b41ed148f2512fc065b6f91125de428751ad5020fd51ba220ab4dd2869ab5e7535fb322f3d57d4af46c38dacd2a6b201cceb19ac386d620a2b789eb33
@@ -1,9 +0,0 @@
1
- class Specinfra::Command::Openbsd::Base::RoutingTable < Specinfra::Command::Base::RoutingTable
2
- class << self
3
- def check_has_entry(destination)
4
- "route -n show -gateway | egrep '^#{destination}' | head -1"
5
- end
6
-
7
- alias :get_entry :check_has_entry
8
- end
9
- end