specinfra 2.0.0.beta6 → 2.0.0.beta7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -2
  3. data/lib/specinfra.rb +25 -0
  4. data/lib/specinfra/backend/exec.rb +15 -103
  5. data/lib/specinfra/backend/ssh.rb +1 -1
  6. data/lib/specinfra/command.rb +208 -29
  7. data/lib/specinfra/command/aix.rb +1 -66
  8. data/lib/specinfra/command/aix/base.rb +2 -0
  9. data/lib/specinfra/command/aix/base/file.rb +19 -0
  10. data/lib/specinfra/command/aix/base/group.rb +6 -0
  11. data/lib/specinfra/command/aix/base/package.rb +9 -0
  12. data/lib/specinfra/command/aix/base/port.rb +6 -0
  13. data/lib/specinfra/command/aix/base/service.rb +9 -0
  14. data/lib/specinfra/command/aix/base/user.rb +13 -0
  15. data/lib/specinfra/command/arch.rb +1 -38
  16. data/lib/specinfra/command/arch/base.rb +11 -0
  17. data/lib/specinfra/command/arch/base/file.rb +5 -0
  18. data/lib/specinfra/command/arch/base/package.rb +22 -0
  19. data/lib/specinfra/command/arch/base/service.rb +3 -0
  20. data/lib/specinfra/command/base.rb +74 -334
  21. data/lib/specinfra/command/base/cron.rb +10 -0
  22. data/lib/specinfra/command/base/file.rb +95 -0
  23. data/lib/specinfra/command/base/group.rb +10 -0
  24. data/lib/specinfra/command/base/host.rb +23 -0
  25. data/lib/specinfra/command/base/interface.rb +2 -0
  26. data/lib/specinfra/command/base/ipfilter.rb +2 -0
  27. data/lib/specinfra/command/base/ipnat.rb +2 -0
  28. data/lib/specinfra/command/base/iptables.rb +2 -0
  29. data/lib/specinfra/command/base/kernel_module.rb +2 -0
  30. data/lib/specinfra/command/base/lxc_container.rb +2 -0
  31. data/lib/specinfra/command/base/mail_alias.rb +6 -0
  32. data/lib/specinfra/command/base/package.rb +43 -0
  33. data/lib/specinfra/command/base/port.rb +8 -0
  34. data/lib/specinfra/command/base/ppa.rb +2 -0
  35. data/lib/specinfra/command/base/process.rb +14 -0
  36. data/lib/specinfra/command/base/routing_table.rb +5 -0
  37. data/lib/specinfra/command/base/selinux.rb +2 -0
  38. data/lib/specinfra/command/base/service.rb +25 -0
  39. data/lib/specinfra/command/base/user.rb +31 -0
  40. data/lib/specinfra/command/base/yumrepo.rb +3 -0
  41. data/lib/specinfra/command/base/zfs.rb +1 -0
  42. data/lib/specinfra/command/darwin.rb +1 -67
  43. data/lib/specinfra/command/darwin/base.rb +2 -0
  44. data/lib/specinfra/command/darwin/base/file.rb +37 -0
  45. data/lib/specinfra/command/darwin/base/package.rb +15 -0
  46. data/lib/specinfra/command/darwin/base/port.rb +6 -0
  47. data/lib/specinfra/command/darwin/base/service.rb +9 -0
  48. data/lib/specinfra/command/debian.rb +1 -31
  49. data/lib/specinfra/command/debian/base.rb +11 -0
  50. data/lib/specinfra/command/debian/base/package.rb +22 -0
  51. data/lib/specinfra/command/debian/base/ppa.rb +2 -0
  52. data/lib/specinfra/command/debian/base/service.rb +6 -0
  53. data/lib/specinfra/command/fedora.rb +1 -29
  54. data/lib/specinfra/command/fedora/base.rb +2 -0
  55. data/lib/specinfra/command/fedora/base/service.rb +10 -0
  56. data/lib/specinfra/command/fedora/v15.rb +1 -0
  57. data/lib/specinfra/command/fedora/v15/service.rb +3 -0
  58. data/lib/specinfra/command/freebsd.rb +1 -39
  59. data/lib/specinfra/command/freebsd/base.rb +3 -0
  60. data/lib/specinfra/command/freebsd/base/file.rb +10 -0
  61. data/lib/specinfra/command/freebsd/base/package.rb +17 -0
  62. data/lib/specinfra/command/freebsd/base/port.rb +6 -0
  63. data/lib/specinfra/command/freebsd/base/service.rb +5 -0
  64. data/lib/specinfra/command/freebsd/v10.rb +1 -0
  65. data/lib/specinfra/command/freebsd/v10/package.rb +17 -0
  66. data/lib/specinfra/command/gentoo.rb +1 -18
  67. data/lib/specinfra/command/gentoo/base.rb +2 -0
  68. data/lib/specinfra/command/gentoo/base/package.rb +5 -0
  69. data/lib/specinfra/command/gentoo/base/service.rb +17 -0
  70. data/lib/specinfra/command/linux.rb +1 -71
  71. data/lib/specinfra/command/linux/base.rb +2 -0
  72. data/lib/specinfra/command/linux/base/file.rb +13 -0
  73. data/lib/specinfra/command/linux/base/interface.rb +17 -0
  74. data/lib/specinfra/command/linux/base/iptables.rb +10 -0
  75. data/lib/specinfra/command/linux/base/kernel_module.rb +5 -0
  76. data/lib/specinfra/command/linux/base/lxc_container.rb +9 -0
  77. data/lib/specinfra/command/linux/base/package.rb +2 -0
  78. data/lib/specinfra/command/linux/base/ppa.rb +2 -0
  79. data/lib/specinfra/command/linux/base/selinux.rb +10 -0
  80. data/lib/specinfra/command/linux/base/service.rb +2 -0
  81. data/lib/specinfra/command/linux/base/yumrepo.rb +2 -0
  82. data/lib/specinfra/command/linux/base/zfs.rb +3 -0
  83. data/lib/specinfra/command/module.rb +2 -0
  84. data/lib/specinfra/command/module/systemd.rb +13 -0
  85. data/lib/specinfra/command/module/zfs.rb +14 -0
  86. data/lib/specinfra/command/nixos.rb +1 -28
  87. data/lib/specinfra/command/nixos/base.rb +2 -0
  88. data/lib/specinfra/command/nixos/base/package.rb +15 -0
  89. data/lib/specinfra/command/nixos/base/service.rb +3 -0
  90. data/lib/specinfra/command/openbsd.rb +1 -91
  91. data/lib/specinfra/command/openbsd/base.rb +4 -0
  92. data/lib/specinfra/command/openbsd/base/file.rb +39 -0
  93. data/lib/specinfra/command/openbsd/base/interface.rb +9 -0
  94. data/lib/specinfra/command/openbsd/base/mail_alias.rb +5 -0
  95. data/lib/specinfra/command/openbsd/base/package.rb +13 -0
  96. data/lib/specinfra/command/openbsd/base/port.rb +5 -0
  97. data/lib/specinfra/command/openbsd/base/service.rb +9 -0
  98. data/lib/specinfra/command/openbsd/base/user.rb +16 -0
  99. data/lib/specinfra/command/opensuse.rb +1 -14
  100. data/lib/specinfra/command/opensuse/base.rb +3 -0
  101. data/lib/specinfra/command/opensuse/base/service.rb +3 -0
  102. data/lib/specinfra/command/plamo.rb +1 -21
  103. data/lib/specinfra/command/plamo/base.rb +3 -0
  104. data/lib/specinfra/command/plamo/base/package.rb +9 -0
  105. data/lib/specinfra/command/plamo/base/service.rb +12 -0
  106. data/lib/specinfra/command/redhat.rb +1 -40
  107. data/lib/specinfra/command/redhat/base.rb +2 -0
  108. data/lib/specinfra/command/redhat/base/file.rb +6 -0
  109. data/lib/specinfra/command/redhat/base/iptables.rb +11 -0
  110. data/lib/specinfra/command/redhat/base/package.rb +28 -0
  111. data/lib/specinfra/command/redhat/base/service.rb +12 -0
  112. data/lib/specinfra/command/redhat/base/yumrepo.rb +11 -0
  113. data/lib/specinfra/command/redhat/v5.rb +2 -0
  114. data/lib/specinfra/command/redhat/v5/iptables.rb +8 -0
  115. data/lib/specinfra/command/redhat/v7.rb +2 -0
  116. data/lib/specinfra/command/redhat/v7/service.rb +3 -0
  117. data/lib/specinfra/command/smartos.rb +1 -25
  118. data/lib/specinfra/command/smartos/base.rb +3 -0
  119. data/lib/specinfra/command/smartos/base/package.rb +13 -0
  120. data/lib/specinfra/command/smartos/base/service.rb +9 -0
  121. data/lib/specinfra/command/smartos/tmp.rb +8 -0
  122. data/lib/specinfra/command/solaris.rb +1 -117
  123. data/lib/specinfra/command/solaris/base.rb +2 -0
  124. data/lib/specinfra/command/solaris/base/cron.rb +10 -0
  125. data/lib/specinfra/command/solaris/base/file.rb +17 -0
  126. data/lib/specinfra/command/solaris/base/group.rb +6 -0
  127. data/lib/specinfra/command/solaris/base/host.rb +12 -0
  128. data/lib/specinfra/command/solaris/base/ipfilter.rb +5 -0
  129. data/lib/specinfra/command/solaris/base/ipnat.rb +12 -0
  130. data/lib/specinfra/command/solaris/base/package.rb +12 -0
  131. data/lib/specinfra/command/solaris/base/port.rb +11 -0
  132. data/lib/specinfra/command/solaris/base/service.rb +19 -0
  133. data/lib/specinfra/command/solaris/base/user.rb +13 -0
  134. data/lib/specinfra/command/solaris/base/zfs.rb +11 -0
  135. data/lib/specinfra/command/solaris/v10.rb +1 -0
  136. data/lib/specinfra/command/solaris/v10/file.rb +40 -0
  137. data/lib/specinfra/command/solaris/v10/group.rb +5 -0
  138. data/lib/specinfra/command/solaris/v10/host.rb +11 -0
  139. data/lib/specinfra/command/solaris/v10/package.rb +9 -0
  140. data/lib/specinfra/command/solaris/v10/user.rb +16 -0
  141. data/lib/specinfra/command/suse.rb +1 -27
  142. data/lib/specinfra/command/suse/base.rb +2 -0
  143. data/lib/specinfra/command/suse/base/package.rb +19 -0
  144. data/lib/specinfra/command/suse/base/service.rb +12 -0
  145. data/lib/specinfra/command/ubuntu.rb +11 -23
  146. data/lib/specinfra/command/ubuntu/base.rb +2 -0
  147. data/lib/specinfra/command/ubuntu/base/ppa.rb +15 -0
  148. data/lib/specinfra/command/ubuntu/base/service.rb +5 -0
  149. data/lib/specinfra/command/windows.rb +1 -344
  150. data/lib/specinfra/command/windows/base.rb +14 -0
  151. data/lib/specinfra/command/windows/base/feature.rb +15 -0
  152. data/lib/specinfra/command/windows/base/file.rb +103 -0
  153. data/lib/specinfra/command/windows/base/group.rb +9 -0
  154. data/lib/specinfra/command/windows/base/host.rb +23 -0
  155. data/lib/specinfra/command/windows/base/hot_fix.rb +17 -0
  156. data/lib/specinfra/command/windows/base/iis_app_pool.rb +15 -0
  157. data/lib/specinfra/command/windows/base/iis_website.rb +36 -0
  158. data/lib/specinfra/command/windows/base/package.rb +9 -0
  159. data/lib/specinfra/command/windows/base/port.rb +15 -0
  160. data/lib/specinfra/command/windows/base/process.rb +7 -0
  161. data/lib/specinfra/command/windows/base/registry_key.rb +43 -0
  162. data/lib/specinfra/command/windows/base/scheduled_task.rb +8 -0
  163. data/lib/specinfra/command/windows/base/service.rb +29 -0
  164. data/lib/specinfra/command/windows/base/user.rb +20 -0
  165. data/lib/specinfra/configuration.rb +2 -1
  166. data/lib/specinfra/helper.rb +1 -1
  167. data/lib/specinfra/helper/backend.rb +1 -1
  168. data/lib/specinfra/helper/detect_os.rb +15 -21
  169. data/lib/specinfra/helper/detect_os/aix.rb +7 -0
  170. data/lib/specinfra/helper/detect_os/arch.rb +7 -0
  171. data/lib/specinfra/helper/detect_os/darwin.rb +7 -0
  172. data/lib/specinfra/helper/detect_os/debian.rb +24 -0
  173. data/lib/specinfra/helper/detect_os/freebsd.rb +11 -0
  174. data/lib/specinfra/helper/detect_os/gentoo.rb +7 -0
  175. data/lib/specinfra/helper/detect_os/nixos.rb +7 -0
  176. data/lib/specinfra/helper/detect_os/openbsd.rb +7 -0
  177. data/lib/specinfra/helper/detect_os/plamo.rb +7 -0
  178. data/lib/specinfra/helper/detect_os/redhat.rb +27 -0
  179. data/lib/specinfra/helper/detect_os/solaris.rb +15 -0
  180. data/lib/specinfra/helper/detect_os/suse.rb +15 -0
  181. data/lib/specinfra/helper/os.rb +47 -33
  182. data/lib/specinfra/version.rb +1 -1
  183. data/spec/backend/exec/build_command_spec.rb +16 -11
  184. data/spec/command/base/file_spec.rb +11 -0
  185. data/spec/command/base_spec.rb +28 -0
  186. data/spec/command/module/systemd_spec.rb +8 -0
  187. data/spec/command/redhat/package_spec.rb +12 -0
  188. data/spec/helper/os_spec.rb +58 -0
  189. metadata +163 -8
  190. data/lib/specinfra/command/freebsd10.rb +0 -21
  191. data/lib/specinfra/command/redhat7.rb +0 -9
  192. data/lib/specinfra/command/solaris10.rb +0 -78
  193. data/lib/specinfra/command/solaris11.rb +0 -7
  194. data/spec/command/base.rb +0 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c59de503cd2a6e1e99e571d21abe145d4901c62e
4
- data.tar.gz: 4c84a1001c9c5df401c3195fd9c957b33c43b8c0
3
+ metadata.gz: f2b797f05a2673cff2af1dfb512c2c1eccfba25e
4
+ data.tar.gz: 4be834e13201caddecb6396a37e3a5e07de85c62
5
5
  SHA512:
6
- metadata.gz: 4367b260c7854879384d8f9292fdd9ae4eda45693445d951e675c91140e0c068ff76e52df1b8f7b878b77063410f84680f7b51713b499219e0c543536fe02c4b
7
- data.tar.gz: c69205dad07e42abab0fab31fdfdd8873a3964cd50395ec4c9f9b2223154803d42da040407600b8d2511828b852575f9a25793ac6f9fdb6113893467641cf2d6
6
+ metadata.gz: 1e83591f78930f3b70ae8c5ddde2e64dd3103b7118e7137835d2d9d687340788748f7fe72e4f29eb10df44cc483d643914237af73b7839a589d7a7502d3237e7
7
+ data.tar.gz: 4f1fe283366bf8d44541120d9c60a2f5fcb7e976f40db6e046897ea027ac107f72a198f101b76b15a3eaaf2788abb7e0913df2c1aeb2002639c2647577794b89
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ if defined?(RSpec)
9
9
  task :spec => 'spec:all'
10
10
 
11
11
  namespace :spec do
12
- task :all => [ :helper, :backend, :configuration ]
12
+ task :all => [ :helper, :backend, :configuration, :command ]
13
13
 
14
14
  RSpec::Core::RakeTask.new(:helper) do |t|
15
15
  t.pattern = "spec/helper/*_spec.rb"
@@ -33,7 +33,7 @@ if defined?(RSpec)
33
33
  end
34
34
 
35
35
  RSpec::Core::RakeTask.new(:command) do |t|
36
- t.pattern = "spec/command/*.rb"
36
+ t.pattern = "spec/command/**/*.rb"
37
37
  end
38
38
  end
39
39
  end
data/lib/specinfra.rb CHANGED
@@ -35,3 +35,28 @@ if defined?(RSpec)
35
35
  end
36
36
  end
37
37
  end
38
+
39
+ class Class
40
+ def subclasses
41
+ result = []
42
+ ObjectSpace.each_object(Class) do |k|
43
+ result << k if k < self
44
+ end
45
+ result
46
+ end
47
+ end
48
+
49
+ class String
50
+ def to_snake_case
51
+ self.gsub(/::/, '/').
52
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
53
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
54
+ tr("-", "_").
55
+ downcase
56
+ end
57
+
58
+ def to_camel_case
59
+ return self if self !~ /_/ && self =~ /[A-Z]+.*/
60
+ split('_').map{|e| e.capitalize}.join
61
+ end
62
+ end
@@ -55,8 +55,8 @@ module Specinfra
55
55
  end
56
56
  end
57
57
 
58
- def check_running(process)
59
- ret = run_command(commands.check_running(process))
58
+ def check_service_is_running(service)
59
+ ret = run_command(commands.check_service_is_running(service))
60
60
 
61
61
  # In Ubuntu, some services are under upstart and "service foo status" returns
62
62
  # exit status 0 even though they are stopped.
@@ -65,14 +65,14 @@ module Specinfra
65
65
 
66
66
  # If the service is not registered, check by ps command
67
67
  if ret.exit_status == 1
68
- ret = run_command(commands.check_process(process))
68
+ ret = run_command(commands.check_process_is_running(service))
69
69
  end
70
70
 
71
71
  ret.success?
72
72
  end
73
73
 
74
- def check_monitored_by_monit(process)
75
- ret = run_command(commands.check_monitored_by_monit(process))
74
+ def check_service_is_monitored_by_monit(process)
75
+ ret = run_command(commands.check_service_is_monitored_by_monit(process))
76
76
  return false unless ret.stdout != nil && ret.success?
77
77
 
78
78
  retlines = ret.stdout.split(/[\r\n]+/).map(&:strip)
@@ -82,8 +82,8 @@ module Specinfra
82
82
  retlines[proc_index+2].match(/\Amonitoring status\s+monitored\Z/i) != nil
83
83
  end
84
84
 
85
- def check_readable(file, by_whom)
86
- mode = sprintf('%04s',run_command(commands.get_mode(file)).stdout.strip)
85
+ def check_file_is_readable(file, by_whom)
86
+ mode = sprintf('%04s',run_command(commands.get_file_mode(file)).stdout.strip)
87
87
  mode = mode.split('')
88
88
  mode_octal = mode[0].to_i * 512 + mode[1].to_i * 64 + mode[2].to_i * 8 + mode[3].to_i * 1
89
89
  case by_whom
@@ -98,8 +98,8 @@ module Specinfra
98
98
  end
99
99
  end
100
100
 
101
- def check_writable(file, by_whom)
102
- mode = sprintf('%04s',run_command(commands.get_mode(file)).stdout.strip)
101
+ def check_file_is_writable(file, by_whom)
102
+ mode = sprintf('%04s',run_command(commands.get_file_mode(file)).stdout.strip)
103
103
  mode = mode.split('')
104
104
  mode_octal = mode[0].to_i * 512 + mode[1].to_i * 64 + mode[2].to_i * 8 + mode[3].to_i * 1
105
105
  case by_whom
@@ -114,8 +114,8 @@ module Specinfra
114
114
  end
115
115
  end
116
116
 
117
- def check_executable(file, by_whom)
118
- mode = sprintf('%04s',run_command(commands.get_mode(file)).stdout.strip)
117
+ def check_file_is_executable(file, by_whom)
118
+ mode = sprintf('%04s',run_command(commands.get_file_mode(file)).stdout.strip)
119
119
  mode = mode.split('')
120
120
  mode_octal = mode[0].to_i * 512 + mode[1].to_i * 64 + mode[2].to_i * 8 + mode[3].to_i * 1
121
121
  case by_whom
@@ -130,8 +130,8 @@ module Specinfra
130
130
  end
131
131
  end
132
132
 
133
- def check_mounted(path, expected_attr, only_with)
134
- ret = run_command(commands.check_mounted(path))
133
+ def check_file_is_mounted(path, expected_attr, only_with)
134
+ ret = run_command(commands.check_file_is_mounted(path))
135
135
  if expected_attr.nil? || ret.failure?
136
136
  return ret.success?
137
137
  end
@@ -163,9 +163,9 @@ module Specinfra
163
163
  end
164
164
  end
165
165
 
166
- def check_routing_table(expected_attr)
166
+ def check_routing_table_has_entry(expected_attr)
167
167
  return false if ! expected_attr[:destination]
168
- ret = run_command(commands.check_routing_table(expected_attr[:destination]))
168
+ ret = run_command(commands.check_routing_table_has_entry(expected_attr[:destination]))
169
169
  return false if ret.failure?
170
170
 
171
171
  ret.stdout.gsub!(/\r\n/, "\n")
@@ -183,94 +183,6 @@ module Specinfra
183
183
  true
184
184
  end
185
185
 
186
- def check_os
187
- return Specinfra.configuration.os if Specinfra.configuration.os
188
- arch = run_command('uname -m').stdout.strip
189
- # Fedora also has an /etc/redhat-release so the Fedora check must
190
- # come before the RedHat check
191
- if run_command('ls /etc/fedora-release').success?
192
- line = run_command('cat /etc/redhat-release').stdout
193
- if line =~ /release (\d[\d]*)/
194
- release = $1
195
- end
196
- { :family => 'Fedora', :release => release }
197
- elsif run_command('ls /etc/redhat-release').success?
198
- line = run_command('cat /etc/redhat-release').stdout
199
- if line =~ /release (\d[\d.]*)/
200
- release = $1
201
- end
202
-
203
- if release =~ /7./
204
- { :family => 'RedHat7', :release => release, :arch => arch }
205
- else
206
- { :family => 'RedHat', :release => release, :arch => arch }
207
- end
208
- elsif run_command('ls /etc/system-release').success?
209
- { :family => 'RedHat', :release => nil, :arch => arch } # Amazon Linux
210
- elsif run_command('ls /etc/SuSE-release').success?
211
- line = run_command('cat /etc/SuSE-release').stdout
212
- if line =~ /SUSE Linux Enterprise Server (\d+)/
213
- release = $1
214
- family = 'SuSE'
215
- elsif line =~ /openSUSE (\d+\.\d+|\d+)/
216
- release = $1
217
- family = 'OpenSUSE'
218
- end
219
- { :family => family, :release => release, :arch => arch }
220
- elsif run_command('ls /etc/debian_version').success?
221
- lsb_release = run_command("lsb_release -ir")
222
- if lsb_release.success?
223
- if lsb_release.stdout =~ /:/
224
- distro = lsb_release.stdout.split("\n").first.split(':').last
225
- release = lsb_release.stdout.split("\n").last.split(':').last.strip
226
- end
227
- else
228
- lsb_release = run_command("cat /etc/lsb-release")
229
- if lsb_release.success?
230
- lsb_release.stdout.each_line do |line|
231
- distro = line.split('=').last if line =~ /^DISTRIB_ID=/
232
- release = line.split('=').last.strip if line =~ /^DISTRIB_RELEASE=/
233
- end
234
- end
235
- end
236
- distro ||= 'Debian'
237
- release ||= nil
238
- { :family => distro.strip, :release => release, :arch => arch }
239
- elsif run_command('ls /etc/gentoo-release').success?
240
- { :family => 'Gentoo', :release => nil, :arch => arch }
241
- elsif run_command('ls /usr/lib/setup/Plamo-*').success?
242
- { :family => 'Plamo', :release => nil, :arch => arch }
243
- elsif run_command('ls /var/run/current-system/sw').success?
244
- { :family => 'NixOS', :release => nil, :arch => arch }
245
- elsif run_command('uname -s').stdout =~ /AIX/i
246
- { :family => 'AIX', :release => nil, :arch => arch }
247
- elsif ( uname = run_command('uname -sr').stdout) && uname =~ /SunOS/i
248
- if uname =~ /5.10/
249
- { :family => 'Solaris10', :release => nil, :arch => arch }
250
- elsif run_command('grep -q "Oracle Solaris 11" /etc/release').success?
251
- { :family => 'Solaris11', :release => nil, :arch => arch }
252
- elsif run_command('grep -q SmartOS /etc/release').success?
253
- { :family => 'SmartOS', :release => nil, :arch => arch }
254
- else
255
- { :family => 'Solaris', :release => nil, :arch => arch }
256
- end
257
- elsif run_command('uname -s').stdout =~ /Darwin/i
258
- { :family => 'Darwin', :release => nil }
259
- elsif ( uname = run_command('uname -sr').stdout ) && uname =~ /FreeBSD/i
260
- if uname =~ /10./
261
- { :family => 'FreeBSD10', :release => nil, :arch => arch }
262
- else
263
- { :family => 'FreeBSD', :release => nil, :arch => arch }
264
- end
265
- elsif run_command('uname -sr').stdout =~ /Arch/i
266
- { :family => 'Arch', :release => nil, :arch => arch }
267
- elsif run_command('uname -s').stdout =~ /OpenBSD/i
268
- { :family => 'OpenBSD', :release => nil, :arch => arch }
269
- else
270
- { :family => 'Base', :release => nil, :arch => arch }
271
- end
272
- end
273
-
274
186
  def copy_file(from, to)
275
187
  begin
276
188
  FileUtils.cp(from, to)
@@ -77,7 +77,7 @@ module Specinfra
77
77
 
78
78
  channel.on_extended_data do |ch, type, data|
79
79
  if data.match /you must have a tty to run sudo/
80
- abort 'Please set "SpecInfra.configuration.request_pty = true" or "c.request_pty = true" in your spec_helper.rb or other appropriate file.'
80
+ abort 'Please set "Specinfra.configuration.request_pty = true" or "c.request_pty = true" in your spec_helper.rb or other appropriate file.'
81
81
  end
82
82
 
83
83
  if data.match /^sudo: no tty present and no askpass program specified/
@@ -1,29 +1,208 @@
1
- require "specinfra/command/base"
2
-
3
- # Linux
4
- require "specinfra/command/linux"
5
- require "specinfra/command/arch"
6
- require "specinfra/command/debian"
7
- require "specinfra/command/ubuntu"
8
- require "specinfra/command/gentoo"
9
- require "specinfra/command/plamo"
10
- require "specinfra/command/redhat"
11
- require "specinfra/command/redhat7"
12
- require "specinfra/command/suse"
13
- require "specinfra/command/opensuse"
14
- require "specinfra/command/fedora"
15
- require "specinfra/command/nixos"
16
-
17
- # Solaris
18
- require "specinfra/command/solaris"
19
- require "specinfra/command/solaris10"
20
- require "specinfra/command/solaris11"
21
- require "specinfra/command/smartos"
22
-
23
- # Others
24
- require "specinfra/command/aix"
25
- require "specinfra/command/darwin"
26
- require "specinfra/command/freebsd"
27
- require "specinfra/command/freebsd10"
28
- require "specinfra/command/openbsd"
29
- require "specinfra/command/windows"
1
+ module Specinfra::Command; end
2
+
3
+ # Module
4
+ require 'specinfra/command/module'
5
+ require 'specinfra/command/module/systemd'
6
+ require 'specinfra/command/module/zfs'
7
+
8
+ # Base
9
+ require 'specinfra/command/base'
10
+ require 'specinfra/command/base/cron'
11
+ require 'specinfra/command/base/file'
12
+ require 'specinfra/command/base/group'
13
+ require 'specinfra/command/base/host'
14
+ require 'specinfra/command/base/interface'
15
+ require 'specinfra/command/base/ipfilter'
16
+ require 'specinfra/command/base/ipnat'
17
+ require 'specinfra/command/base/iptables'
18
+ require 'specinfra/command/base/kernel_module'
19
+ require 'specinfra/command/base/lxc_container'
20
+ require 'specinfra/command/base/mail_alias'
21
+ require 'specinfra/command/base/package'
22
+ require 'specinfra/command/base/port'
23
+ require 'specinfra/command/base/ppa'
24
+ require 'specinfra/command/base/process'
25
+ require 'specinfra/command/base/routing_table'
26
+ require 'specinfra/command/base/selinux'
27
+ require 'specinfra/command/base/service'
28
+ require 'specinfra/command/base/user'
29
+ require 'specinfra/command/base/yumrepo'
30
+ require 'specinfra/command/base/zfs'
31
+
32
+ # Linux (inhefit Base)
33
+ require 'specinfra/command/linux'
34
+ require 'specinfra/command/linux/base'
35
+ require 'specinfra/command/linux/base/file'
36
+ require 'specinfra/command/linux/base/interface'
37
+ require 'specinfra/command/linux/base/iptables'
38
+ require 'specinfra/command/linux/base/kernel_module'
39
+ require 'specinfra/command/linux/base/lxc_container'
40
+ require 'specinfra/command/linux/base/package'
41
+ require 'specinfra/command/linux/base/ppa'
42
+ require 'specinfra/command/linux/base/selinux'
43
+ require 'specinfra/command/linux/base/service'
44
+ require 'specinfra/command/linux/base/yumrepo'
45
+ require 'specinfra/command/linux/base/zfs'
46
+
47
+ # RedHat (inherit Linux)
48
+ require 'specinfra/command/redhat'
49
+ require 'specinfra/command/redhat/base'
50
+ require 'specinfra/command/redhat/base/file'
51
+ require 'specinfra/command/redhat/base/iptables'
52
+ require 'specinfra/command/redhat/base/package'
53
+ require 'specinfra/command/redhat/base/service'
54
+ require 'specinfra/command/redhat/base/yumrepo'
55
+
56
+ # RedHat V5 (inherit RedHat)
57
+ require 'specinfra/command/redhat/v5'
58
+ require 'specinfra/command/redhat/v5/iptables'
59
+
60
+ # RedHat V7 (inherit RedHat)
61
+ require 'specinfra/command/redhat/v7'
62
+ require 'specinfra/command/redhat/v7/service'
63
+
64
+ # Fedora (inherit RedhHat)
65
+ require 'specinfra/command/fedora'
66
+ require 'specinfra/command/fedora/base'
67
+ require 'specinfra/command/fedora/base/service'
68
+
69
+ # Fedora >= V15 (inherit Fedora)
70
+ require 'specinfra/command/fedora/v15'
71
+ require 'specinfra/command/fedora/v15/service'
72
+
73
+ # AIX (inherit Base)
74
+ require 'specinfra/command/aix'
75
+ require 'specinfra/command/aix/base'
76
+ require 'specinfra/command/aix/base/file'
77
+ require 'specinfra/command/aix/base/group'
78
+ require 'specinfra/command/aix/base/package'
79
+ require 'specinfra/command/aix/base/port'
80
+ require 'specinfra/command/aix/base/service'
81
+ require 'specinfra/command/aix/base/user'
82
+
83
+ # Arch (inherit Linux)
84
+ require 'specinfra/command/arch'
85
+ require 'specinfra/command/arch/base'
86
+ require 'specinfra/command/arch/base/file'
87
+ require 'specinfra/command/arch/base/service'
88
+ require 'specinfra/command/arch/base/package'
89
+
90
+ # Darwin (inherit Base)
91
+ require 'specinfra/command/darwin'
92
+ require 'specinfra/command/darwin/base'
93
+ require 'specinfra/command/darwin/base/file'
94
+ require 'specinfra/command/darwin/base/service'
95
+ require 'specinfra/command/darwin/base/package'
96
+ require 'specinfra/command/darwin/base/port'
97
+
98
+ # Debian (inherit Linux)
99
+ require 'specinfra/command/debian'
100
+ require 'specinfra/command/debian/base'
101
+ require 'specinfra/command/debian/base/package'
102
+ require 'specinfra/command/debian/base/ppa'
103
+ require 'specinfra/command/debian/base/service'
104
+
105
+ # Ubuntu (inherit Debian)
106
+ require 'specinfra/command/ubuntu'
107
+ require 'specinfra/command/ubuntu/base'
108
+ require 'specinfra/command/ubuntu/base/ppa'
109
+ require 'specinfra/command/ubuntu/base/service'
110
+
111
+ # Gentoo (inherit Linux)
112
+ require 'specinfra/command/gentoo'
113
+ require 'specinfra/command/gentoo/base'
114
+ require 'specinfra/command/gentoo/base/package'
115
+ require 'specinfra/command/gentoo/base/service'
116
+
117
+ # Plamo (inherit Linux)
118
+ require 'specinfra/command/plamo'
119
+ require 'specinfra/command/plamo/base'
120
+ require 'specinfra/command/plamo/base/package'
121
+ require 'specinfra/command/plamo/base/service'
122
+
123
+ # NixOS (inherit Linux)
124
+ require 'specinfra/command/nixos'
125
+ require 'specinfra/command/nixos/base'
126
+ require 'specinfra/command/nixos/base/package'
127
+ require 'specinfra/command/nixos/base/service'
128
+
129
+ # SuSE (inherit Linux)
130
+ require 'specinfra/command/suse'
131
+ require 'specinfra/command/suse/base'
132
+ require 'specinfra/command/suse/base/package'
133
+ require 'specinfra/command/suse/base/service'
134
+
135
+ # OpenSuSE (inherit SuSE)
136
+ require 'specinfra/command/opensuse'
137
+ require 'specinfra/command/opensuse/base'
138
+ require 'specinfra/command/opensuse/base/service'
139
+
140
+ # FreeBSD (inherit Base)
141
+ require 'specinfra/command/freebsd'
142
+ require 'specinfra/command/freebsd/base'
143
+ require 'specinfra/command/freebsd/base/file'
144
+ require 'specinfra/command/freebsd/base/package'
145
+ require 'specinfra/command/freebsd/base/port'
146
+ require 'specinfra/command/freebsd/base/service'
147
+
148
+ # FreeBSD V10 (inherit FreeBSD)
149
+ require 'specinfra/command/freebsd/v10'
150
+ require 'specinfra/command/freebsd/v10/package'
151
+
152
+ # OpenBSD (inherit Base)
153
+ require 'specinfra/command/openbsd'
154
+ require 'specinfra/command/openbsd/base'
155
+ require 'specinfra/command/openbsd/base/file'
156
+ require 'specinfra/command/openbsd/base/interface'
157
+ require 'specinfra/command/openbsd/base/mail_alias'
158
+ require 'specinfra/command/openbsd/base/package'
159
+ require 'specinfra/command/openbsd/base/port'
160
+ require 'specinfra/command/openbsd/base/service'
161
+ require 'specinfra/command/openbsd/base/user'
162
+
163
+ # Solaris (inherit Base)
164
+ require 'specinfra/command/solaris'
165
+ require 'specinfra/command/solaris/base'
166
+ require 'specinfra/command/solaris/base/cron'
167
+ require 'specinfra/command/solaris/base/file'
168
+ require 'specinfra/command/solaris/base/group'
169
+ require 'specinfra/command/solaris/base/host'
170
+ require 'specinfra/command/solaris/base/ipfilter'
171
+ require 'specinfra/command/solaris/base/ipnat'
172
+ require 'specinfra/command/solaris/base/package'
173
+ require 'specinfra/command/solaris/base/port'
174
+ require 'specinfra/command/solaris/base/service'
175
+ require 'specinfra/command/solaris/base/user'
176
+ require 'specinfra/command/solaris/base/zfs'
177
+
178
+ # Solaris 10 (inherit Solaris)
179
+ require 'specinfra/command/solaris/v10'
180
+ require 'specinfra/command/solaris/v10/file'
181
+ require 'specinfra/command/solaris/v10/group'
182
+ require 'specinfra/command/solaris/v10/host'
183
+ require 'specinfra/command/solaris/v10/package'
184
+ require 'specinfra/command/solaris/v10/user'
185
+
186
+ # SmartOS (inherit Solaris)
187
+ require 'specinfra/command/smartos'
188
+ require 'specinfra/command/smartos/base'
189
+ require 'specinfra/command/smartos/base/package'
190
+ require 'specinfra/command/smartos/base/service'
191
+
192
+ # Windows (inherit nothing)
193
+ require 'specinfra/command/windows'
194
+ require 'specinfra/command/windows/base'
195
+ require 'specinfra/command/windows/base/feature'
196
+ require 'specinfra/command/windows/base/file'
197
+ require 'specinfra/command/windows/base/group'
198
+ require 'specinfra/command/windows/base/host'
199
+ require 'specinfra/command/windows/base/hot_fix'
200
+ require 'specinfra/command/windows/base/iis_app_pool'
201
+ require 'specinfra/command/windows/base/iis_website'
202
+ require 'specinfra/command/windows/base/package'
203
+ require 'specinfra/command/windows/base/port'
204
+ require 'specinfra/command/windows/base/process'
205
+ require 'specinfra/command/windows/base/service'
206
+ require 'specinfra/command/windows/base/user'
207
+ require 'specinfra/command/windows/base/registry_key'
208
+ require 'specinfra/command/windows/base/scheduled_task'