specinfra 2.0.0.beta17 → 2.0.0.beta18
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.rb +5 -2
- data/lib/specinfra/backend/ssh.rb +22 -6
- data/lib/specinfra/command/base.rb +1 -1
- data/lib/specinfra/command/base/file.rb +13 -0
- data/lib/specinfra/command/opensuse/base/service.rb +3 -1
- data/lib/specinfra/version.rb +1 -1
- data/spec/command/base/file_spec.rb +20 -2
- data/specinfra.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6af2a5fa821f3d2f51a4982137e50c24b32cec22
|
4
|
+
data.tar.gz: 630f65f9b762a5d48429a99931f3c612c420843b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85b58ab0d41c0327d9fbac11ff03787f82192e21a818bf8a224195c8615982015165a3d296922d9de69382bec2055e905871d83980926a2f7481640a5976dbc8
|
7
|
+
data.tar.gz: 342e63846bff9fb14ce8d2b601352e47f865ff7c2c0340cdf68505edc859c80863aaef63e2efd4f8036e0ad0937c1a864f815accccb7a6abd63d8ce01923558c
|
data/lib/specinfra.rb
CHANGED
@@ -19,8 +19,11 @@ module Specinfra
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def backend
|
22
|
-
type = Specinfra.configuration.backend
|
23
|
-
|
22
|
+
type = Specinfra.configuration.backend
|
23
|
+
if type.nil?
|
24
|
+
raise "No backend type is specified. Please specify backend type by `set :backend, :type'"
|
25
|
+
end
|
26
|
+
eval "Specinfra::Backend::#{type.to_s.to_camel_case}.instance"
|
24
27
|
end
|
25
28
|
end
|
26
29
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'specinfra/backend/exec'
|
2
2
|
require 'net/ssh'
|
3
|
-
|
3
|
+
require 'net/scp'
|
4
4
|
module Specinfra
|
5
5
|
module Backend
|
6
6
|
class Ssh < Exec
|
@@ -58,6 +58,10 @@ module Specinfra
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def copy_file(from, to)
|
61
|
+
if Specinfra.configuration.scp.nil?
|
62
|
+
Specinfra.configuration.scp = create_scp
|
63
|
+
end
|
64
|
+
|
61
65
|
scp = Specinfra.configuration.scp
|
62
66
|
begin
|
63
67
|
scp.upload!(from, to)
|
@@ -68,6 +72,22 @@ module Specinfra
|
|
68
72
|
end
|
69
73
|
|
70
74
|
private
|
75
|
+
def create_ssh
|
76
|
+
Net::SSH.start(
|
77
|
+
Specinfra.configuration.host,
|
78
|
+
Specinfra.configuration.ssh_options[:user],
|
79
|
+
Specinfra.configuration.ssh_options
|
80
|
+
)
|
81
|
+
end
|
82
|
+
|
83
|
+
def create_scp
|
84
|
+
ssh = Specinfra.configuration.ssh
|
85
|
+
if ssh.nil?
|
86
|
+
ssh = create_ssh
|
87
|
+
end
|
88
|
+
Net::SCP.new(ssh)
|
89
|
+
end
|
90
|
+
|
71
91
|
def ssh_exec!(command)
|
72
92
|
stdout_data = ''
|
73
93
|
stderr_data = ''
|
@@ -75,11 +95,7 @@ module Specinfra
|
|
75
95
|
exit_signal = nil
|
76
96
|
|
77
97
|
if Specinfra.configuration.ssh.nil?
|
78
|
-
Specinfra.configuration.ssh =
|
79
|
-
Specinfra.configuration.host,
|
80
|
-
Specinfra.configuration.ssh_options[:user],
|
81
|
-
Specinfra.configuration.ssh_options
|
82
|
-
)
|
98
|
+
Specinfra.configuration.ssh = create_ssh
|
83
99
|
end
|
84
100
|
|
85
101
|
ssh = Specinfra.configuration.ssh
|
@@ -36,7 +36,7 @@ class Specinfra::Command::Base
|
|
36
36
|
family = os[:family]
|
37
37
|
version = os[:release] ? "V#{os[:release].to_i}" : nil
|
38
38
|
|
39
|
-
common_class =
|
39
|
+
common_class = Specinfra::Command
|
40
40
|
base_class = common_class.const_get('Base')
|
41
41
|
os_class = family.nil? ? base_class : common_class.const_get(family.capitalize)
|
42
42
|
|
@@ -93,5 +93,18 @@ class Specinfra::Command::Base::File < Specinfra::Command::Base
|
|
93
93
|
def get_size(file)
|
94
94
|
"stat -c %s #{escape(file)}"
|
95
95
|
end
|
96
|
+
|
97
|
+
def change_mode(file, mode)
|
98
|
+
"chmod #{mode} #{escape(file)}"
|
99
|
+
end
|
100
|
+
|
101
|
+
def change_owner(file, owner, group=nil)
|
102
|
+
owner = "#{owner}:#{group}" if group
|
103
|
+
"chown #{owner} #{escape(file)}"
|
104
|
+
end
|
105
|
+
|
106
|
+
def change_group(file, group)
|
107
|
+
"chgrp #{group} #{escape(file)}"
|
108
|
+
end
|
96
109
|
end
|
97
110
|
end
|
data/lib/specinfra/version.rb
CHANGED
@@ -2,10 +2,28 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
set :os, { :family => nil }
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe 'File related commands' do
|
6
6
|
after do
|
7
7
|
property[:os_by_host] = nil
|
8
8
|
end
|
9
9
|
|
10
|
-
|
10
|
+
context Specinfra.command.check_file_is_directory('/tmp') do
|
11
|
+
it { should eq 'test -d /tmp' }
|
12
|
+
end
|
13
|
+
|
14
|
+
context Specinfra.command.change_file_mode('/tmp', '0644') do
|
15
|
+
it { should eq 'chmod 0644 /tmp' }
|
16
|
+
end
|
17
|
+
|
18
|
+
context Specinfra.command.change_file_owner('/tmp', 'root') do
|
19
|
+
it { should eq 'chown root /tmp' }
|
20
|
+
end
|
21
|
+
|
22
|
+
context Specinfra.command.change_file_owner('/tmp', 'root', 'root') do
|
23
|
+
it { should eq 'chown root:root /tmp' }
|
24
|
+
end
|
25
|
+
|
26
|
+
context Specinfra.command.change_file_group('/tmp', 'root') do
|
27
|
+
it { should eq 'chgrp root /tmp' }
|
28
|
+
end
|
11
29
|
end
|
data/specinfra.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency "net-ssh"
|
22
|
+
spec.add_runtime_dependency "net-scp"
|
22
23
|
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
25
|
spec.add_development_dependency "rake", "~> 10.1.1"
|
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: 2.0.0.
|
4
|
+
version: 2.0.0.beta18
|
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-08-
|
11
|
+
date: 2014-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
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'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|