specinfra 1.18.3 → 1.18.4
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/lib/specinfra/command/fedora.rb +4 -4
- data/lib/specinfra/helper/detect_os.rb +16 -5
- data/lib/specinfra/version.rb +1 -1
- data/spec/helper/detect_os_spec.rb +117 -0
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a8317b4e00efd9907dddad5e4d1340efac89d245
|
|
4
|
+
data.tar.gz: 0b54192a51afecf9c70db4dafb49a82a43cf924f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cdf9c71716d2d99b75c8c4933cac891e7a44a1dea10df3eb65f243d153ba4d9b4b75482d1a4e710dff06b687c72b3dc39cc4ecd58e72773ed730734fd0d7bab8
|
|
7
|
+
data.tar.gz: ab98c78e4600c2c099c9cc2dc0fdf910d44f7a54d83a0589cb6636f58c1ec2562972838058424080aa6a9649324170fd8f200a85052a00db99b739f7d54d5024
|
|
@@ -2,8 +2,8 @@ module SpecInfra
|
|
|
2
2
|
module Command
|
|
3
3
|
class Fedora < RedHat
|
|
4
4
|
def check_enabled(service, target="multi-user.target")
|
|
5
|
-
|
|
6
|
-
if property.has_key?(:os_by_host) && property[:os_by_host][
|
|
5
|
+
host_port = SpecInfra.configuration.ssh ? [SpecInfra.configuration.ssh.host, SpecInfra.configuration.ssh.options[:port]] : ['localhost', nil]
|
|
6
|
+
if property.has_key?(:os_by_host) && property[:os_by_host][host_port][:release].to_i < 15
|
|
7
7
|
super
|
|
8
8
|
else
|
|
9
9
|
# Fedora 15+ uses systemd which no longer has runlevels but targets
|
|
@@ -17,8 +17,8 @@ module SpecInfra
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def check_running(service)
|
|
20
|
-
|
|
21
|
-
if property.has_key?(:os_by_host) && property[:os_by_host][
|
|
20
|
+
host_port = SpecInfra.configuration.ssh ? [SpecInfra.configuration.ssh.host, SpecInfra.configuration.ssh.options[:port]] : ['localhost', nil]
|
|
21
|
+
if property.has_key?(:os_by_host) && property[:os_by_host][host_port][:release].to_i < 15
|
|
22
22
|
super
|
|
23
23
|
else
|
|
24
24
|
"systemctl is-active #{escape(service)}.service"
|
|
@@ -7,18 +7,29 @@ module SpecInfra
|
|
|
7
7
|
|
|
8
8
|
def os
|
|
9
9
|
property[:os_by_host] = {} if ! property[:os_by_host]
|
|
10
|
-
|
|
10
|
+
host_port = current_host_and_port
|
|
11
11
|
|
|
12
|
-
if property[:os_by_host][
|
|
13
|
-
os_by_host = property[:os_by_host][
|
|
12
|
+
if property[:os_by_host][host_port]
|
|
13
|
+
os_by_host = property[:os_by_host][host_port]
|
|
14
14
|
else
|
|
15
15
|
# Set command object explicitly to avoid `stack too deep`
|
|
16
16
|
os_by_host = backend(SpecInfra::Command::Base.new).check_os
|
|
17
|
-
property[:os_by_host][
|
|
17
|
+
property[:os_by_host][host_port] = os_by_host
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
os_by_host
|
|
21
21
|
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
# put this in a module for better reuse
|
|
26
|
+
def current_host_and_port
|
|
27
|
+
if SpecInfra.configuration.ssh
|
|
28
|
+
[SpecInfra.configuration.ssh.host, SpecInfra.configuration.ssh.options[:port]]
|
|
29
|
+
else
|
|
30
|
+
['localhost', nil]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
22
33
|
end
|
|
23
34
|
end
|
|
24
|
-
end
|
|
35
|
+
end
|
data/lib/specinfra/version.rb
CHANGED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe SpecInfra::Helper::DetectOS do
|
|
4
|
+
shared_context 'no ssh connection' do
|
|
5
|
+
before do
|
|
6
|
+
SpecInfra.stub_chain(:configuration, :ssh).and_return(nil)
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
shared_context 'existing ssh connection' do |hostname, port|
|
|
10
|
+
before do
|
|
11
|
+
ssh_session.stub(:host).and_return(hostname)
|
|
12
|
+
ssh_session.stub(:options).and_return({:port => port})
|
|
13
|
+
SpecInfra.stub_chain(:configuration, :ssh).and_return(ssh_session)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
shared_examples 'derive os from backend' do |os|
|
|
17
|
+
before do
|
|
18
|
+
backend.stub(:check_os).and_return(os)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'returns the os derived by the backend ' do
|
|
22
|
+
expect(subject.os).to eq os
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
shared_examples 'derive os from cached property' do |os|
|
|
26
|
+
it 'returns the os derived by the property ' do
|
|
27
|
+
expect(subject.os).to eq os
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
let(:subject) { Object.new.extend SpecInfra::Helper::DetectOS }
|
|
32
|
+
let(:backend) { double('backend') }
|
|
33
|
+
let(:ssh_session) { double('ssh') }
|
|
34
|
+
|
|
35
|
+
before do
|
|
36
|
+
subject.stub(:backend).and_return(backend)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe '#os' do
|
|
40
|
+
context 'using the backend to retrieve the os' do
|
|
41
|
+
context 'no cached values' do
|
|
42
|
+
before do
|
|
43
|
+
subject.property[:os_by_host] = nil
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
context 'with localhost' do
|
|
47
|
+
include_context 'no ssh connection'
|
|
48
|
+
after do
|
|
49
|
+
expect(subject.property[:os_by_host]).to eq({['localhost', nil] => 'test os'})
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
include_examples 'derive os from backend', 'test os'
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
context 'with ssh' do
|
|
56
|
+
include_context 'existing ssh connection', 'test.host', 123
|
|
57
|
+
after do
|
|
58
|
+
expect(subject.property[:os_by_host]).to eq({['test.host', 123] => 'test os'})
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
include_examples 'derive os from backend', 'test os'
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
context 'existing cached values' do
|
|
66
|
+
before do
|
|
67
|
+
subject.property[:os_by_host] = {['test.host', 123] => 'cached os'}
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
context 'with localhost' do
|
|
71
|
+
include_context 'no ssh connection'
|
|
72
|
+
after do
|
|
73
|
+
expect(property[:os_by_host]).to eq({['test.host', 123] => 'cached os', ['localhost', nil] => 'test os'})
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
include_examples 'derive os from backend', 'test os'
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
context 'with ssh' do
|
|
80
|
+
include_context 'existing ssh connection', 'test.another.host', 456
|
|
81
|
+
after do
|
|
82
|
+
expect(property[:os_by_host]).to eq({['test.host', 123] => 'cached os', ['test.another.host', 456] => 'test os'})
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
include_examples 'derive os from backend', 'test os'
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
context 'same host with different ports' do
|
|
89
|
+
include_context 'existing ssh connection', 'test.host', 456
|
|
90
|
+
|
|
91
|
+
after do
|
|
92
|
+
subject.property[:os_by_host] = {['test.host', 123] => 'cached os', ['test.host', 456] => 'test os'}
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
include_examples 'derive os from backend', 'test os'
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
context 'using cached values to retrieve the os' do
|
|
101
|
+
before do
|
|
102
|
+
subject.property[:os_by_host] = {['test.host', 123] => 'test os', ['localhost', nil] => 'local os'}
|
|
103
|
+
end
|
|
104
|
+
context 'with localhost' do
|
|
105
|
+
include_context 'no ssh connection'
|
|
106
|
+
|
|
107
|
+
include_examples 'derive os from cached property', 'local os'
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
context 'with ssh' do
|
|
111
|
+
include_context 'existing ssh connection', 'test.host', 123
|
|
112
|
+
|
|
113
|
+
include_examples 'derive os from cached property', 'test os'
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
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: 1.18.
|
|
4
|
+
version: 1.18.4
|
|
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-
|
|
11
|
+
date: 2014-07-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -132,6 +132,7 @@ files:
|
|
|
132
132
|
- spec/backend/ssh/build_command_spec.rb
|
|
133
133
|
- spec/configuration_spec.rb
|
|
134
134
|
- spec/helper/backend_spec.rb
|
|
135
|
+
- spec/helper/detect_os_spec.rb
|
|
135
136
|
- spec/helper/properties_spec.rb
|
|
136
137
|
- spec/spec_helper.rb
|
|
137
138
|
- specinfra.gemspec
|
|
@@ -165,5 +166,6 @@ test_files:
|
|
|
165
166
|
- spec/backend/ssh/build_command_spec.rb
|
|
166
167
|
- spec/configuration_spec.rb
|
|
167
168
|
- spec/helper/backend_spec.rb
|
|
169
|
+
- spec/helper/detect_os_spec.rb
|
|
168
170
|
- spec/helper/properties_spec.rb
|
|
169
171
|
- spec/spec_helper.rb
|