specinfra 2.0.0.beta3 → 2.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
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