specinfra 2.0.0.beta6 → 2.0.0.beta7

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.
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'