specinfra 2.11.10 → 2.12.0
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.rb +2 -0
- data/lib/specinfra/command/base/cron.rb +3 -2
- data/lib/specinfra/command/base/fstab.rb +2 -0
- data/lib/specinfra/command/base/group.rb +15 -0
- data/lib/specinfra/command/linux/base/fstab.rb +9 -0
- data/lib/specinfra/processor.rb +35 -0
- data/lib/specinfra/version.rb +1 -1
- data/spec/command/base/group_spec.rb +16 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45b0dd4144407ae23367d089d595d93e24a52780
|
4
|
+
data.tar.gz: e2fc78cba42b70f379fb8c1b45d6a6bdb92c5035
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf3bbf50b30218cb9d286804b16121f7b2a6d5180dc14c7e2e96e14d1596e9c7139963a44749fee7657f784a4a5d2afa19255a13f71b09e5d22127fde91c3800
|
7
|
+
data.tar.gz: 86c4208d0fedd6178c15f7f4d5b97b77be7f8090ef786bf4bf52890182f8eddd9d43ea0237129aa3061c4268c4e608bac7a7a3e93e495d1f11a4ce933b7a0c4a
|
data/lib/specinfra/command.rb
CHANGED
@@ -10,6 +10,7 @@ require 'specinfra/command/base'
|
|
10
10
|
require 'specinfra/command/base/bridge'
|
11
11
|
require 'specinfra/command/base/cron'
|
12
12
|
require 'specinfra/command/base/file'
|
13
|
+
require 'specinfra/command/base/fstab'
|
13
14
|
require 'specinfra/command/base/group'
|
14
15
|
require 'specinfra/command/base/host'
|
15
16
|
require 'specinfra/command/base/interface'
|
@@ -39,6 +40,7 @@ require 'specinfra/command/linux'
|
|
39
40
|
require 'specinfra/command/linux/base'
|
40
41
|
require 'specinfra/command/linux/base/bridge'
|
41
42
|
require 'specinfra/command/linux/base/file'
|
43
|
+
require 'specinfra/command/linux/base/fstab'
|
42
44
|
require 'specinfra/command/linux/base/interface'
|
43
45
|
require 'specinfra/command/linux/base/inventory'
|
44
46
|
require 'specinfra/command/linux/base/iptables'
|
@@ -2,10 +2,11 @@ class Specinfra::Command::Base::Cron < Specinfra::Command::Base
|
|
2
2
|
class << self
|
3
3
|
def check_has_entry(user, entry)
|
4
4
|
entry_escaped = entry.gsub(/\*/, '\\*').gsub(/\[/, '\\[').gsub(/\]/, '\\]')
|
5
|
+
grep_command = "grep -v '^[[:space:]]*#' | grep -- ^#{escape(entry_escaped)}$"
|
5
6
|
if user.nil?
|
6
|
-
"crontab -l |
|
7
|
+
"crontab -l | #{grep_command}"
|
7
8
|
else
|
8
|
-
"crontab -u #{escape(user)} -l |
|
9
|
+
"crontab -u #{escape(user)} -l | #{grep_command}"
|
9
10
|
end
|
10
11
|
end
|
11
12
|
end
|
@@ -8,5 +8,20 @@ class Specinfra::Command::Base::Group < Specinfra::Command::Base
|
|
8
8
|
regexp = "^#{group}"
|
9
9
|
"getent group | grep -w -- #{escape(regexp)} | cut -f 3 -d ':' | grep -w -- #{escape(gid)}"
|
10
10
|
end
|
11
|
+
|
12
|
+
def get_gid(group)
|
13
|
+
"getent group #{escape(group)} | cut -f 3 -d ':'"
|
14
|
+
end
|
15
|
+
|
16
|
+
def update_gid(group, gid)
|
17
|
+
"groupmod -g #{escape(gid)} #{escape(group)}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def add(group, options)
|
21
|
+
command = ['groupadd']
|
22
|
+
command << '-g' << escape(options[:gid]) if options[:gid]
|
23
|
+
command << escape(group)
|
24
|
+
command.join(' ')
|
25
|
+
end
|
11
26
|
end
|
12
27
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class Specinfra::Command::Linux::Base::Fstab < Specinfra::Command::Base::Fstab
|
2
|
+
class << self
|
3
|
+
def check_has_entry(mount_point)
|
4
|
+
%Q(awk '{if($2=="#{escape(mount_point)}")print}' /etc/fstab | grep -v '^[[:space:]]*#')
|
5
|
+
end
|
6
|
+
|
7
|
+
alias :get_entry :check_has_entry
|
8
|
+
end
|
9
|
+
end
|
data/lib/specinfra/processor.rb
CHANGED
@@ -117,6 +117,41 @@ module Specinfra
|
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
120
|
+
def self.check_fstab_has_entry(expected_attr)
|
121
|
+
return false unless expected_attr[:mount_point]
|
122
|
+
cmd = Specinfra.command.get(:get_fstab_entry, expected_attr[:mount_point])
|
123
|
+
ret = Specinfra.backend.run_command(cmd)
|
124
|
+
return false if ret.failure?
|
125
|
+
|
126
|
+
fstab = ret.stdout.scan(/\S+/)
|
127
|
+
actual_attr = {
|
128
|
+
:device => fstab[0],
|
129
|
+
:mount_point => fstab[1],
|
130
|
+
:type => fstab[2],
|
131
|
+
:dump => fstab[4].to_i,
|
132
|
+
:pass => fstab[5].to_i
|
133
|
+
}
|
134
|
+
fstab[3].split(',').each do |option|
|
135
|
+
name, val = option.split('=')
|
136
|
+
if val.nil?
|
137
|
+
actual_attr[name.to_sym] = true
|
138
|
+
else
|
139
|
+
val = val.to_i if val.match(/^\d+$/)
|
140
|
+
actual_attr[name.to_sym] = val
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
unless expected_attr[:options].nil?
|
145
|
+
expected_attr.merge!(expected_attr[:options])
|
146
|
+
expected_attr.delete(:options)
|
147
|
+
end
|
148
|
+
|
149
|
+
expected_attr.each do |key, val|
|
150
|
+
return false if actual_attr[key] != val
|
151
|
+
end
|
152
|
+
true
|
153
|
+
end
|
154
|
+
|
120
155
|
def self.check_routing_table_has_entry(expected_attr)
|
121
156
|
return false if ! expected_attr[:destination]
|
122
157
|
cmd = Specinfra.command.get(:get_routing_table_entry, expected_attr[:destination])
|
data/lib/specinfra/version.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
set :os, { :family => nil }
|
4
|
+
|
5
|
+
describe get_command(:get_group_gid, 'foo') do
|
6
|
+
it { should eq "getent group foo | cut -f 3 -d ':'" }
|
7
|
+
end
|
8
|
+
|
9
|
+
describe get_command(:update_group_gid, 'foo', 1234) do
|
10
|
+
it { should eq "groupmod -g 1234 foo" }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe get_command(:add_group, 'foo', :gid => 1234) do
|
14
|
+
it { should eq 'groupadd -g 1234 foo' }
|
15
|
+
end
|
16
|
+
|
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.
|
4
|
+
version: 2.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gosuke Miyashita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|
@@ -153,6 +153,7 @@ files:
|
|
153
153
|
- lib/specinfra/command/base/bridge.rb
|
154
154
|
- lib/specinfra/command/base/cron.rb
|
155
155
|
- lib/specinfra/command/base/file.rb
|
156
|
+
- lib/specinfra/command/base/fstab.rb
|
156
157
|
- lib/specinfra/command/base/group.rb
|
157
158
|
- lib/specinfra/command/base/host.rb
|
158
159
|
- lib/specinfra/command/base/interface.rb
|
@@ -212,6 +213,7 @@ files:
|
|
212
213
|
- lib/specinfra/command/linux/base.rb
|
213
214
|
- lib/specinfra/command/linux/base/bridge.rb
|
214
215
|
- lib/specinfra/command/linux/base/file.rb
|
216
|
+
- lib/specinfra/command/linux/base/fstab.rb
|
215
217
|
- lib/specinfra/command/linux/base/interface.rb
|
216
218
|
- lib/specinfra/command/linux/base/inventory.rb
|
217
219
|
- lib/specinfra/command/linux/base/ip6tables.rb
|
@@ -347,6 +349,7 @@ files:
|
|
347
349
|
- spec/backend/exec/env_spec.rb
|
348
350
|
- spec/backend/ssh/build_command_spec.rb
|
349
351
|
- spec/command/base/file_spec.rb
|
352
|
+
- spec/command/base/group_spec.rb
|
350
353
|
- spec/command/base/localhost_spec.rb
|
351
354
|
- spec/command/base/package_spec.rb
|
352
355
|
- spec/command/base/user_spec.rb
|
@@ -402,6 +405,7 @@ test_files:
|
|
402
405
|
- spec/backend/exec/env_spec.rb
|
403
406
|
- spec/backend/ssh/build_command_spec.rb
|
404
407
|
- spec/command/base/file_spec.rb
|
408
|
+
- spec/command/base/group_spec.rb
|
405
409
|
- spec/command/base/localhost_spec.rb
|
406
410
|
- spec/command/base/package_spec.rb
|
407
411
|
- spec/command/base/user_spec.rb
|