serverspec 2.0.0.beta5 → 2.0.0.beta6
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 +9 -4
- data/lib/serverspec/setup.rb +75 -63
- data/lib/serverspec/version.rb +1 -1
- data/serverspec.gemspec +1 -5
- metadata +4 -60
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa3da35f1496825983cc458a77052918cd8ed9fa
|
4
|
+
data.tar.gz: 63b88a49efb03e61d44c82b1908e9ad7c450b72e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8fc95f52f7e6f6e6571dbdca21935ca64345ac7bf1ccc6bc2971ea4fe4cdd56071b70457ca0f4918cc774737e8093ef0608a658b8caf7c4fd2a9980f43555ab
|
7
|
+
data.tar.gz: 5d96c7c90724bfcc0ce4a96c7960dde0a9998595f80670ccfb9f029fe63925d0569dbc460b20223e481506ff50a32b17f920defc7148fcff70e819cb9ea66e51
|
data/Rakefile
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
-
|
3
|
-
require "
|
2
|
+
begin
|
3
|
+
require "rspec/core/rake_task"
|
4
|
+
require "octorelease"
|
5
|
+
rescue LoadError
|
6
|
+
end
|
4
7
|
|
5
|
-
RSpec
|
6
|
-
|
8
|
+
if defined?(RSpec)
|
9
|
+
RSpec::Core::RakeTask.new('spec') do |t|
|
10
|
+
t.pattern = 'spec/*/*_spec.rb'
|
11
|
+
end
|
7
12
|
end
|
data/lib/serverspec/setup.rb
CHANGED
@@ -94,22 +94,26 @@ EOF
|
|
94
94
|
content = <<-EOF
|
95
95
|
require 'spec_helper'
|
96
96
|
|
97
|
-
describe package('httpd') do
|
97
|
+
describe package('httpd'), :if => os[:family] == 'RedHat' do
|
98
98
|
it { should be_installed }
|
99
99
|
end
|
100
100
|
|
101
|
-
describe
|
101
|
+
describe package('apache2'), :if => os[:family] == 'Ubuntu' do
|
102
|
+
it { should be_installed }
|
103
|
+
end
|
104
|
+
|
105
|
+
describe service('httpd'), :if => os[:family] == 'RedHat' do
|
102
106
|
it { should be_enabled }
|
103
107
|
it { should be_running }
|
104
108
|
end
|
105
109
|
|
106
|
-
describe
|
107
|
-
it { should
|
110
|
+
describe service('apache2'), :if => os[:family] == 'Ubuntu' do
|
111
|
+
it { should be_enabled }
|
112
|
+
it { should be_running }
|
108
113
|
end
|
109
114
|
|
110
|
-
describe
|
111
|
-
it { should
|
112
|
-
its(:content) { should match /ServerName #{@hostname}/ }
|
115
|
+
describe port(80) do
|
116
|
+
it { should be_listening }
|
113
117
|
end
|
114
118
|
EOF
|
115
119
|
|
@@ -157,11 +161,27 @@ EOF
|
|
157
161
|
require 'rake'
|
158
162
|
require 'rspec/core/rake_task'
|
159
163
|
|
160
|
-
|
161
|
-
t.pattern = 'spec/*/*_spec.rb'
|
162
|
-
end
|
163
|
-
|
164
|
+
task :spec => 'spec:all'
|
164
165
|
task :default => :spec
|
166
|
+
|
167
|
+
namespace :spec do
|
168
|
+
targets = []
|
169
|
+
Dir.glob('./spec/*').each do |dir|
|
170
|
+
next unless File.directory?(dir)
|
171
|
+
targets << File.basename(dir)
|
172
|
+
end
|
173
|
+
|
174
|
+
task :all => targets
|
175
|
+
task :default => :all
|
176
|
+
|
177
|
+
targets.each do |target|
|
178
|
+
desc "Run serverspec tests to #{target}"
|
179
|
+
RSpec::Core::RakeTask.new(target.to_sym) do |t|
|
180
|
+
ENV['TARGET_HOST'] = target
|
181
|
+
t.pattern = "spec/#{target}/*_spec.rb"
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
165
185
|
EOF
|
166
186
|
if File.exists? 'Rakefile'
|
167
187
|
old_content = File.read('Rakefile')
|
@@ -190,7 +210,7 @@ task :default => :spec
|
|
190
210
|
list_of_vms = []
|
191
211
|
if vagrant_list != ''
|
192
212
|
vagrant_list.each_line do |line|
|
193
|
-
if match = /([\w-]+[\s]+)(created|not created|poweroff|running|saved)[\s](\(virtualbox\)|\(vmware\))/.match(line)
|
213
|
+
if match = /([\w-]+[\s]+)(created|aborted|not created|poweroff|running|saved)[\s](\(virtualbox\)|\(vmware\))/.match(line)
|
194
214
|
list_of_vms << match[1].strip!
|
195
215
|
end
|
196
216
|
end
|
@@ -215,9 +235,6 @@ task :default => :spec
|
|
215
235
|
def self.spec_helper_template
|
216
236
|
template = <<-EOF
|
217
237
|
require 'serverspec'
|
218
|
-
<% if @os_type == 'UN*X' && @backend_type == 'Ssh' -%>
|
219
|
-
require 'pathname'
|
220
|
-
<% end -%>
|
221
238
|
<% if @backend_type == 'Ssh' -%>
|
222
239
|
require 'net/ssh'
|
223
240
|
<% end -%>
|
@@ -228,64 +245,59 @@ require 'winrm'
|
|
228
245
|
include Specinfra::Helper::<%= @backend_type %>
|
229
246
|
<% if @os_type == 'UN*X' -%>
|
230
247
|
include Specinfra::Helper::DetectOS
|
231
|
-
<% else
|
248
|
+
<% else -%>
|
232
249
|
include Specinfra::Helper::Windows
|
233
250
|
<% end -%>
|
234
251
|
|
235
|
-
<% if @os_type == 'UN*X' -%>
|
236
|
-
|
237
|
-
|
252
|
+
<% if @os_type == 'UN*X' && @backend_type == 'Ssh' -%>
|
253
|
+
if ENV['ASK_SUDO_PASSWORD']
|
254
|
+
begin
|
238
255
|
require 'highline/import'
|
239
|
-
|
240
|
-
|
241
|
-
c.sudo_password = ENV['SUDO_PASSWORD']
|
256
|
+
rescue LoadError
|
257
|
+
fail "highline is not available. Try installing it."
|
242
258
|
end
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
elsif match = /IdentityFile (.*)/.match(line)
|
267
|
-
options[:keys] = [match[1].gsub(/\"/,'')]
|
268
|
-
elsif match = /Port (.*)/.match(line)
|
269
|
-
options[:port] = match[1]
|
270
|
-
end
|
271
|
-
end
|
272
|
-
end
|
273
|
-
<%- end -%>
|
274
|
-
c.ssh = Net::SSH.start(host, user, options)
|
259
|
+
set :sudo_password, ask("Enter sudo password: ") { |q| q.echo = false }
|
260
|
+
else
|
261
|
+
set :sudo_password, ENV['SUDO_PASSWORD']
|
262
|
+
end
|
263
|
+
|
264
|
+
<%- if @backend_type == 'Ssh' -%>
|
265
|
+
host = ENV['TARGET_HOST']
|
266
|
+
options = Net::SSH::Config.for(host)
|
267
|
+
|
268
|
+
<%- if @vagrant -%>
|
269
|
+
`vagrant up \#{ENV['TARGET_HOST']}`
|
270
|
+
|
271
|
+
config = `vagrant ssh-config \#{ENV['TARGET_HOST']}`
|
272
|
+
if config != ''
|
273
|
+
config.each_line do |line|
|
274
|
+
if match = /HostName (.*)/.match(line)
|
275
|
+
host = match[1]
|
276
|
+
elsif match = /User (.*)/.match(line)
|
277
|
+
options[:user] = match[1]
|
278
|
+
elsif match = /IdentityFile (.*)/.match(line)
|
279
|
+
options[:keys] = [match[1].gsub(/\"/,'')]
|
280
|
+
elsif match = /Port (.*)/.match(line)
|
281
|
+
options[:port] = match[1]
|
275
282
|
end
|
276
283
|
end
|
277
|
-
<%- end -%>
|
278
284
|
end
|
279
|
-
|
285
|
+
|
286
|
+
<%- end -%>
|
287
|
+
options[:user] ||= Etc.getlogin
|
288
|
+
|
289
|
+
set :host, host
|
290
|
+
set :ssh_options, options
|
291
|
+
<%- end -%>
|
292
|
+
<%- end -%>
|
293
|
+
|
280
294
|
<% if @backend_type == 'WinRM'-%>
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
endpoint = "http://<hostname>:5985/wsman"
|
295
|
+
user = <username>
|
296
|
+
pass = <password>
|
297
|
+
endpoint = "http://<hostname>:5985/wsman"
|
285
298
|
|
286
|
-
|
287
|
-
|
288
|
-
end
|
299
|
+
c.winrm = ::WinRM::WinRMWebService.new(endpoint, :ssl, :user => user, :pass => pass, :basic_auth_only => true)
|
300
|
+
c.winrm.set_timeout 300 # 5 minutes max timeout for any operation
|
289
301
|
<% end -%>
|
290
302
|
EOF
|
291
303
|
template
|
data/lib/serverspec/version.rb
CHANGED
data/serverspec.gemspec
CHANGED
@@ -18,13 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency "net-ssh"
|
22
21
|
spec.add_runtime_dependency "rspec", "~> 3.0.0"
|
23
22
|
spec.add_runtime_dependency "rspec-its"
|
24
|
-
spec.add_runtime_dependency "
|
25
|
-
spec.add_runtime_dependency "specinfra", "~> 2.0.0.beta2"
|
23
|
+
spec.add_runtime_dependency "specinfra", "~> 2.0.0.beta4"
|
26
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
27
25
|
spec.add_development_dependency "rake", "~> 10.1.1"
|
28
|
-
spec.add_development_dependency "octokit", "~> 2.7.2"
|
29
|
-
spec.add_development_dependency "octorelease"
|
30
26
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serverspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.beta6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gosuke Miyashita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: net-ssh
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: rspec
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,34 +38,20 @@ dependencies:
|
|
52
38
|
- - ">="
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: highline
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
42
|
name: specinfra
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
72
44
|
requirements:
|
73
45
|
- - "~>"
|
74
46
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.0.0.
|
47
|
+
version: 2.0.0.beta4
|
76
48
|
type: :runtime
|
77
49
|
prerelease: false
|
78
50
|
version_requirements: !ruby/object:Gem::Requirement
|
79
51
|
requirements:
|
80
52
|
- - "~>"
|
81
53
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.0.0.
|
54
|
+
version: 2.0.0.beta4
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
56
|
name: bundler
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,34 +80,6 @@ dependencies:
|
|
108
80
|
- - "~>"
|
109
81
|
- !ruby/object:Gem::Version
|
110
82
|
version: 10.1.1
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: octokit
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 2.7.2
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 2.7.2
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: octorelease
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
83
|
description: RSpec tests for your servers configured by Puppet, Chef or anything else
|
140
84
|
email:
|
141
85
|
- gosukenator@gmail.com
|