specinfra 2.0.0.beta3 → 2.0.0.beta4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6f99779115167f0d7345a3ba9261f32f01754b5
4
- data.tar.gz: f9643ec0810fddd98b30816509711d7d6b64db09
3
+ metadata.gz: b9e3df085341c6a98609ce2cbeec6286def53483
4
+ data.tar.gz: 1d63bd9b0f96b59f4722625d023b07d737c5e6e6
5
5
  SHA512:
6
- metadata.gz: eb6aee27e06d5116f93650bec947195de18b01abc9d2be7eeabf4491827549e166e568cb2261187f15bc24001b6f56eee31cbb3332f455504c096e63c0a2a8fb
7
- data.tar.gz: 9c80d72827ac059467fcd71b34d562fb3232220a40cd5c204c9f9a7d5cbcb04761d1dc9cade8dc79deb8d1e56b43fc3333d966ba3cb7055622ed703b14eb4cc4
6
+ metadata.gz: a30812a5492202d26e6b0dfa88dd263a66c5ed70c051b100a03acdf408491cdf695c39195fa299b76a2dec455756b58fb5ea4237d0f5ba7e4fde2e088ed8e9a0
7
+ data.tar.gz: 2884c197f8e70a841d8f7f65bf5b929b745b3d8e3253a9ed3241cad4ba4e819d41838e4d9509bda6506a14aaf85bf120fccadb33cea960d8f42cc34a97500ce7
@@ -211,8 +211,12 @@ module Specinfra
211
211
  line = run_command('cat /etc/SuSE-release').stdout
212
212
  if line =~ /SUSE Linux Enterprise Server (\d+)/
213
213
  release = $1
214
+ family = 'SuSE'
215
+ elsif line =~ /openSUSE (\d+\.\d+|\d+)/
216
+ release = $1
217
+ family = 'OpenSUSE'
214
218
  end
215
- { :family => 'SuSE', :release => release, :arch => arch }
219
+ { :family => family, :release => release, :arch => arch }
216
220
  elsif run_command('ls /etc/debian_version').success?
217
221
  lsb_release = run_command("lsb_release -ir")
218
222
  if lsb_release.success?
@@ -1,4 +1,5 @@
1
1
  require 'specinfra/backend/exec'
2
+ require 'net/ssh'
2
3
 
3
4
  module Specinfra
4
5
  module Backend
@@ -20,7 +21,7 @@ module Specinfra
20
21
 
21
22
  def build_command(cmd)
22
23
  cmd = super(cmd)
23
- user = Specinfra.configuration.ssh.options[:user]
24
+ user = Specinfra.configuration.ssh_options[:user]
24
25
  disable_sudo = Specinfra.configuration.disable_sudo
25
26
  if user != 'root' && !disable_sudo
26
27
  cmd = "#{sudo} #{cmd}"
@@ -46,6 +47,14 @@ module Specinfra
46
47
  exit_signal = nil
47
48
  pass_prompt = Specinfra.configuration.pass_prompt || /^\[sudo\] password for/
48
49
 
50
+ if Specinfra.configuration.ssh.nil?
51
+ Specinfra.configuration.ssh = Net::SSH.start(
52
+ Specinfra.configuration.host,
53
+ Specinfra.configuration.ssh_options[:user],
54
+ Specinfra.configuration.ssh_options
55
+ )
56
+ end
57
+
49
58
  ssh = Specinfra.configuration.ssh
50
59
  ssh.open_channel do |channel|
51
60
  if Specinfra.configuration.sudo_password or Specinfra.configuration.request_pty
@@ -10,6 +10,7 @@ require "specinfra/command/plamo"
10
10
  require "specinfra/command/redhat"
11
11
  require "specinfra/command/redhat7"
12
12
  require "specinfra/command/suse"
13
+ require "specinfra/command/opensuse"
13
14
  require "specinfra/command/fedora"
14
15
 
15
16
  # Solaris
@@ -121,6 +121,10 @@ module Specinfra
121
121
  "ps aux | grep -w -- #{escape(process)} | grep -qv grep"
122
122
  end
123
123
 
124
+ def check_process_count(process,count)
125
+ "test $(ps aux | grep -w -- #{escape(process)} | grep -v grep | wc -l) -eq #{escape(count)}"
126
+ end
127
+
124
128
  def get_process(process, opts)
125
129
  "ps -C #{escape(process)} -o #{opts[:format]} | head -1"
126
130
  end
@@ -0,0 +1,14 @@
1
+ module Specinfra
2
+ module Command
3
+ class OpenSUSE < SuSE
4
+ def check_enabled(service, level=nil)
5
+ "systemctl is-enabled #{escape(service)}.service"
6
+ end
7
+
8
+ def check_running(service)
9
+ "systemctl is-active #{escape(service)}.service"
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -4,6 +4,20 @@ module Specinfra
4
4
  def check_running(service)
5
5
  "service #{escape(service)} status && service #{escape(service)} status | grep 'running'"
6
6
  end
7
+
8
+ def check_ppa(package)
9
+ %Q{find /etc/apt/ -name \*.list | xargs grep -o "deb http://ppa.launchpad.net/#{to_apt_line_uri(package)}"}
10
+ end
11
+
12
+ def check_ppa_enabled(package)
13
+ %Q{find /etc/apt/ -name \*.list | xargs grep -o "^deb http://ppa.launchpad.net/#{to_apt_line_uri(package)}"}
14
+ end
15
+
16
+ private
17
+
18
+ def to_apt_line_uri(repo)
19
+ escape(repo.gsub(/^ppa:/,''))
20
+ end
7
21
  end
8
22
  end
9
23
  end
@@ -14,6 +14,7 @@ module Specinfra
14
14
  :docker_image,
15
15
  :lxc,
16
16
  :request_pty,
17
+ :ssh_options,
17
18
  ].freeze
18
19
 
19
20
  def defaults
@@ -11,3 +11,6 @@ require 'specinfra/helper/configuration'
11
11
 
12
12
  require 'specinfra/helper/properties'
13
13
  include Specinfra::Helper::Properties
14
+
15
+ require 'specinfra/helper/set'
16
+ include Specinfra::Helper::Set
@@ -15,6 +15,7 @@ module Specinfra
15
15
  'RedHat',
16
16
  'RedHat7',
17
17
  'SuSE',
18
+ 'OpenSUSE',
18
19
  'SmartOS',
19
20
  'Solaris',
20
21
  'Solaris10',
@@ -0,0 +1,5 @@
1
+ module Specinfra::Helper::Set
2
+ def set(param, *value)
3
+ Specinfra.configuration.send(param, *value)
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module Specinfra
2
- VERSION = "2.0.0.beta3"
2
+ VERSION = "2.0.0.beta4"
3
3
  end
@@ -7,7 +7,8 @@ describe Specinfra::Backend::Ssh do
7
7
  context 'with root user' do
8
8
  before do
9
9
  RSpec.configure do |c|
10
- c.ssh = double(:ssh, :options => { :user => 'root' })
10
+ set :ssh_options, :user => 'root'
11
+ c.ssh = double(:ssh, Specinfra.configuration.ssh_options)
11
12
  end
12
13
  end
13
14
 
@@ -23,7 +24,8 @@ describe Specinfra::Backend::Ssh do
23
24
  context 'with non-root user' do
24
25
  before do
25
26
  RSpec.configure do |c|
26
- c.ssh = double(:ssh, :options => { :user => 'foo' })
27
+ set :ssh_options, :user => 'foo'
28
+ c.ssh = double(:ssh, Specinfra.configuration.ssh_options)
27
29
  end
28
30
  end
29
31
 
@@ -39,7 +41,8 @@ describe Specinfra::Backend::Ssh do
39
41
  context 'with custom sudo path' do
40
42
  before do
41
43
  RSpec.configure do |c|
42
- c.ssh = double(:ssh, :options => { :user => 'foo' })
44
+ set :ssh_options, :user => 'foo'
45
+ c.ssh = double(:ssh, Specinfra.configuration.ssh_options)
43
46
  c.sudo_path = '/usr/local/bin'
44
47
  end
45
48
  end
@@ -62,7 +65,8 @@ describe Specinfra::Backend::Ssh do
62
65
  context 'without sudo' do
63
66
  before do
64
67
  RSpec.configure do |c|
65
- c.ssh = double(:ssh, :options => { :user => 'foo' })
68
+ set :ssh_options, :user => 'foo'
69
+ c.ssh = double(:ssh, Specinfra.configuration.ssh_options)
66
70
  c.disable_sudo = true
67
71
  end
68
72
  end
@@ -87,7 +91,8 @@ describe Specinfra::Backend::Ssh do
87
91
  context 'with sudo on alternative path' do
88
92
  before do
89
93
  RSpec.configure do |c|
90
- c.ssh = double(:ssh, :options => { :user => 'foo' })
94
+ set :ssh_options, :user => 'foo'
95
+ c.ssh = double(:ssh, Specinfra.configuration.ssh_options)
91
96
  c.sudo_options = ['-p', '[sudo] password for']
92
97
  c.sudo_path = nil
93
98
  end
@@ -1,6 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'backend_for(:type) returns correct backend object' do
4
+ before do
5
+ RSpec.configure do |c|
6
+ c.ssh = double(:ssh, :options => { :user => 'root' })
7
+ end
8
+ end
9
+
4
10
  it 'backend_for(:exec) returns Specinfra::Backend::Exec' do
5
11
  expect(backend_for(:exec)).to be_an_instance_of Specinfra::Backend::Exec
6
12
  end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'set method set value to Specinfra.configuration' do
4
+ it 'set method handle string value correctly' do
5
+ set :host, 'localhost'
6
+ expect(Specinfra.configuration.host).to eq 'localhost'
7
+ end
8
+
9
+ it 'set method handle hash value correctly' do
10
+ set :ssh_options, :password => 'password', :port => 2222
11
+ ssh_options = { :password => 'password', :port => 2222 }
12
+ expect(Specinfra.configuration.ssh_options).to eq ssh_options
13
+ end
14
+ end
data/specinfra.gemspec CHANGED
@@ -18,6 +18,8 @@ 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
23
  spec.add_development_dependency "bundler", "~> 1.3"
22
24
  spec.add_development_dependency "rake", "~> 10.1.1"
23
25
  spec.add_development_dependency "rspec"
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: specinfra
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta3
4
+ version: 2.0.0.beta4
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-05-10 00:00:00.000000000 Z
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'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -132,6 +146,7 @@ files:
132
146
  - lib/specinfra/command/gentoo.rb
133
147
  - lib/specinfra/command/linux.rb
134
148
  - lib/specinfra/command/openbsd.rb
149
+ - lib/specinfra/command/opensuse.rb
135
150
  - lib/specinfra/command/plamo.rb
136
151
  - lib/specinfra/command/redhat.rb
137
152
  - lib/specinfra/command/redhat7.rb
@@ -152,6 +167,7 @@ files:
152
167
  - lib/specinfra/helper/lxc.rb
153
168
  - lib/specinfra/helper/os.rb
154
169
  - lib/specinfra/helper/properties.rb
170
+ - lib/specinfra/helper/set.rb
155
171
  - lib/specinfra/properties.rb
156
172
  - lib/specinfra/runner.rb
157
173
  - lib/specinfra/version.rb
@@ -160,6 +176,7 @@ files:
160
176
  - spec/configuration_spec.rb
161
177
  - spec/helper/backend_spec.rb
162
178
  - spec/helper/properties_spec.rb
179
+ - spec/helper/set_spec.rb
163
180
  - spec/spec_helper.rb
164
181
  - specinfra.gemspec
165
182
  - wercker.yml
@@ -193,4 +210,5 @@ test_files:
193
210
  - spec/configuration_spec.rb
194
211
  - spec/helper/backend_spec.rb
195
212
  - spec/helper/properties_spec.rb
213
+ - spec/helper/set_spec.rb
196
214
  - spec/spec_helper.rb