freighthop 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. checksums.yaml +7 -0
  2. data/Puppetfile +1 -1
  3. data/Puppetfile.lock +4 -5
  4. data/README.md +18 -7
  5. data/Vagrantfile +4 -0
  6. data/lib/freighthop/cli/help.rb +1 -0
  7. data/lib/freighthop/cli/init.rb +10 -10
  8. data/lib/freighthop/cli/version.rb +17 -0
  9. data/lib/freighthop/cli.rb +3 -1
  10. data/lib/freighthop/version.rb +1 -1
  11. data/lib/freighthop.rb +4 -0
  12. data/modules/apt/CHANGELOG +2 -36
  13. data/modules/apt/Gemfile +5 -6
  14. data/modules/apt/Gemfile.lock +7 -40
  15. data/modules/apt/Modulefile +1 -1
  16. data/modules/apt/README.md +1 -2
  17. data/modules/apt/Rakefile +0 -1
  18. data/modules/apt/manifests/init.pp +2 -5
  19. data/modules/apt/manifests/params.pp +1 -4
  20. data/modules/apt/manifests/pin.pp +1 -1
  21. data/modules/apt/manifests/ppa.pp +10 -24
  22. data/modules/apt/manifests/update.pp +0 -1
  23. data/modules/apt/metadata.json +19 -32
  24. data/modules/apt/spec/defines/ppa_spec.rb +2 -53
  25. data/modules/apt/spec/defines/source_spec.rb +2 -2
  26. data/modules/apt/templates/source.list.erb +2 -2
  27. data/modules/apt/tests/key.pp +3 -3
  28. data/modules/concat/CHANGELOG +73 -0
  29. data/modules/concat/Gemfile +20 -0
  30. data/modules/concat/Gemfile.lock +104 -0
  31. data/modules/concat/Modulefile +7 -6
  32. data/modules/concat/README.md +440 -0
  33. data/modules/concat/Rakefile +5 -1
  34. data/modules/concat/files/concatfragments.rb +137 -0
  35. data/modules/concat/files/concatfragments.sh +15 -4
  36. data/modules/concat/lib/facter/concat_basedir.rb +9 -3
  37. data/modules/concat/manifests/fragment.pp +108 -48
  38. data/modules/concat/manifests/init.pp +191 -210
  39. data/modules/concat/manifests/setup.pp +31 -31
  40. data/modules/concat/metadata.json +40 -21
  41. data/modules/{apt → concat}/spec/spec_helper_system.rb +11 -6
  42. data/modules/{firewall → concat}/spec/system/basic_spec.rb +1 -1
  43. data/modules/concat/spec/system/concat_spec.rb +154 -0
  44. data/modules/concat/spec/system/deprecation_warnings_spec.rb +247 -0
  45. data/modules/concat/spec/system/empty_spec.rb +27 -0
  46. data/modules/concat/spec/system/fragment_source_spec.rb +142 -0
  47. data/modules/concat/spec/system/replace_spec.rb +257 -0
  48. data/modules/concat/spec/system/symbolic_name_spec.rb +35 -0
  49. data/modules/concat/spec/system/warn_spec.rb +106 -0
  50. data/modules/concat/spec/unit/classes/concat_setup_spec.rb +42 -0
  51. data/modules/concat/spec/unit/defines/concat_fragment_spec.rb +267 -0
  52. data/modules/concat/spec/unit/defines/concat_spec.rb +380 -0
  53. data/modules/concat/spec/unit/facts/concat_basedir_spec.rb +18 -0
  54. data/modules/concat/tests/fragment.pp +19 -0
  55. data/modules/concat/tests/init.pp +7 -0
  56. data/modules/firewall/Changelog +38 -0
  57. data/modules/firewall/Gemfile +5 -2
  58. data/modules/firewall/Gemfile.lock +76 -26
  59. data/modules/firewall/Modulefile +1 -1
  60. data/modules/firewall/README.markdown +47 -15
  61. data/modules/firewall/Rakefile +0 -7
  62. data/modules/firewall/lib/puppet/provider/firewall/ip6tables.rb +50 -7
  63. data/modules/firewall/lib/puppet/provider/firewall/iptables.rb +147 -31
  64. data/modules/firewall/lib/puppet/provider/firewallchain/iptables_chain.rb +19 -8
  65. data/modules/firewall/lib/puppet/type/firewall.rb +207 -3
  66. data/modules/firewall/lib/puppet/type/firewallchain.rb +73 -2
  67. data/modules/firewall/lib/puppet/util/firewall.rb +14 -0
  68. data/modules/firewall/metadata.json +181 -76
  69. data/modules/firewall/spec/acceptance/basic_spec.rb +8 -0
  70. data/modules/firewall/spec/acceptance/change_source_spec.rb +77 -0
  71. data/modules/firewall/spec/acceptance/class_spec.rb +27 -0
  72. data/modules/firewall/spec/acceptance/firewall_spec.rb +1608 -0
  73. data/modules/firewall/spec/acceptance/firewallchain_spec.rb +125 -0
  74. data/modules/firewall/spec/acceptance/ip6_fragment_spec.rb +94 -0
  75. data/modules/firewall/spec/acceptance/isfragment_spec.rb +92 -0
  76. data/modules/firewall/spec/acceptance/nodesets/centos-59-x64.yml +10 -0
  77. data/modules/firewall/spec/acceptance/nodesets/centos-64-x64-fusion.yml +10 -0
  78. data/modules/firewall/spec/acceptance/nodesets/centos-64-x64-pe.yml +12 -0
  79. data/modules/firewall/spec/acceptance/nodesets/centos-64-x64.yml +10 -0
  80. data/modules/firewall/spec/acceptance/nodesets/debian-607-x64.yml +10 -0
  81. data/modules/firewall/spec/acceptance/nodesets/debian-70rc1-x64.yml +10 -0
  82. data/modules/firewall/spec/acceptance/nodesets/default.yml +10 -0
  83. data/modules/firewall/spec/acceptance/nodesets/fedora-18-x64.yml +10 -0
  84. data/modules/firewall/spec/acceptance/nodesets/sles-11sp1-x64.yml +10 -0
  85. data/modules/firewall/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml +10 -0
  86. data/modules/firewall/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml +10 -0
  87. data/modules/firewall/spec/{system → acceptance}/params_spec.rb +44 -52
  88. data/modules/firewall/spec/acceptance/purge_spec.rb +124 -0
  89. data/modules/firewall/spec/acceptance/resource_cmd_spec.rb +93 -0
  90. data/modules/firewall/spec/acceptance/rules_spec.rb +248 -0
  91. data/modules/firewall/spec/acceptance/socket_spec.rb +96 -0
  92. data/modules/firewall/spec/{system → acceptance}/standard_usage_spec.rb +6 -10
  93. data/modules/firewall/spec/fixtures/ip6tables/conversion_hash.rb +107 -0
  94. data/modules/firewall/spec/fixtures/iptables/conversion_hash.rb +56 -2
  95. data/modules/firewall/spec/spec_helper_acceptance.rb +38 -0
  96. data/modules/firewall/spec/unit/classes/firewall_spec.rb +2 -2
  97. data/modules/firewall/spec/unit/facter/iptables_persistent_version_spec.rb +8 -5
  98. data/modules/firewall/spec/unit/facter/iptables_spec.rb +6 -4
  99. data/modules/firewall/spec/unit/puppet/provider/iptables_chain_spec.rb +14 -4
  100. data/modules/firewall/spec/unit/puppet/provider/iptables_spec.rb +246 -5
  101. data/modules/firewall/spec/unit/puppet/type/firewall_spec.rb +99 -8
  102. data/modules/firewall/spec/unit/puppet/type/firewallchain_spec.rb +50 -6
  103. data/modules/firewall/spec/unit/puppet/util/firewall_spec.rb +21 -0
  104. data/modules/mysql/CHANGELOG +0 -30
  105. data/modules/mysql/Gemfile +0 -1
  106. data/modules/mysql/Gemfile.lock +30 -31
  107. data/modules/mysql/Modulefile +1 -1
  108. data/modules/mysql/README.md +2 -49
  109. data/modules/mysql/files/mysqltuner.pl +1 -1
  110. data/modules/mysql/lib/puppet/provider/database/mysql.rb +1 -1
  111. data/modules/mysql/lib/puppet/provider/database_grant/mysql.rb +1 -1
  112. data/modules/mysql/lib/puppet/provider/database_user/mysql.rb +1 -1
  113. data/modules/mysql/lib/puppet/provider/mysql.rb +1 -2
  114. data/modules/mysql/lib/puppet/provider/mysql_database/mysql.rb +13 -2
  115. data/modules/mysql/lib/puppet/provider/mysql_user/mysql.rb +12 -0
  116. data/modules/mysql/lib/puppet/type/database_user.rb +1 -1
  117. data/modules/mysql/lib/puppet/type/mysql_grant.rb +3 -5
  118. data/modules/mysql/manifests/client.pp +0 -7
  119. data/modules/mysql/manifests/server/root_password.pp +0 -2
  120. data/modules/mysql/manifests/server.pp +0 -6
  121. data/modules/mysql/metadata.json +79 -81
  122. data/modules/mysql/spec/classes/mysql_server_spec.rb +0 -74
  123. data/modules/mysql/spec/system/mysql_server_root_password_spec.rb +1 -7
  124. data/modules/mysql/spec/system/mysql_server_spec.rb +3 -6
  125. data/modules/mysql/spec/system/types/mysql_grant_spec.rb +0 -27
  126. data/modules/mysql/spec/unit/puppet/functions/mysql_deepmerge_spec.rb +1 -1
  127. data/modules/mysql/spec/unit/puppet/provider/database/mysql_spec.rb +4 -4
  128. data/modules/mysql/spec/unit/puppet/provider/database_grant/mysql_spec.rb +15 -15
  129. data/modules/mysql/spec/unit/puppet/provider/database_user/mysql_spec.rb +4 -4
  130. data/modules/mysql/spec/unit/puppet/provider/mysql_database/mysql_spec.rb +3 -3
  131. data/modules/mysql/spec/unit/puppet/provider/mysql_user/mysql_spec.rb +3 -3
  132. data/modules/mysql/templates/my.cnf.erb +2 -4
  133. data/modules/mysql/tests/mysql_grant.pp +1 -1
  134. data/modules/postgresql/Changelog +31 -0
  135. data/modules/postgresql/Gemfile +4 -2
  136. data/modules/postgresql/Modulefile +1 -1
  137. data/modules/postgresql/README.md +10 -4
  138. data/modules/postgresql/Rakefile +0 -1
  139. data/modules/postgresql/lib/puppet/provider/postgresql_psql/ruby.rb +25 -3
  140. data/modules/postgresql/manifests/globals.pp +2 -0
  141. data/modules/postgresql/manifests/params.pp +21 -0
  142. data/modules/postgresql/manifests/server/config.pp +0 -5
  143. data/modules/postgresql/manifests/server/config_entry.pp +1 -1
  144. data/modules/postgresql/manifests/server/database.pp +2 -1
  145. data/modules/postgresql/manifests/server/db.pp +2 -0
  146. data/modules/postgresql/manifests/server/grant.pp +20 -16
  147. data/modules/postgresql/manifests/server/initdb.pp +27 -3
  148. data/modules/postgresql/manifests/server/pg_hba_rule.pp +2 -4
  149. data/modules/postgresql/manifests/server/role.pp +8 -2
  150. data/modules/postgresql/manifests/server/service.pp +5 -0
  151. data/modules/postgresql/manifests/server.pp +2 -0
  152. data/modules/postgresql/metadata.json +88 -65
  153. data/modules/postgresql/spec/acceptance/client_spec.rb +18 -0
  154. data/modules/postgresql/spec/{system → acceptance}/common_patterns_spec.rb +8 -14
  155. data/modules/postgresql/spec/{system → acceptance}/contrib_spec.rb +4 -9
  156. data/modules/postgresql/spec/acceptance/lib/devel_spec.rb +17 -0
  157. data/modules/postgresql/spec/acceptance/lib/java_spec.rb +20 -0
  158. data/modules/postgresql/spec/acceptance/lib/python_spec.rb +19 -0
  159. data/modules/postgresql/spec/acceptance/nodesets/centos-510-x64.yml +10 -0
  160. data/modules/postgresql/spec/acceptance/nodesets/centos-59-x64.yml +10 -0
  161. data/modules/postgresql/spec/acceptance/nodesets/centos-64-x64-pe.yml +12 -0
  162. data/modules/postgresql/spec/acceptance/nodesets/centos-64-x64.yml +10 -0
  163. data/modules/postgresql/spec/acceptance/nodesets/debian-607-x64.yml +10 -0
  164. data/modules/postgresql/spec/acceptance/nodesets/debian-73-x64.yml +10 -0
  165. data/modules/postgresql/spec/acceptance/nodesets/default.yml +10 -0
  166. data/modules/postgresql/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml +10 -0
  167. data/modules/postgresql/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml +10 -0
  168. data/modules/postgresql/spec/{system → acceptance}/postgresql_psql_spec.rb +6 -14
  169. data/modules/postgresql/spec/{system → acceptance}/server/config_entry_spec.rb +6 -12
  170. data/modules/postgresql/spec/{system → acceptance}/server/database_grant_spec.rb +6 -12
  171. data/modules/postgresql/spec/{system → acceptance}/server/database_spec.rb +6 -12
  172. data/modules/postgresql/spec/{system → acceptance}/server/db_spec.rb +47 -42
  173. data/modules/postgresql/spec/{system → acceptance}/server/grant_spec.rb +6 -12
  174. data/modules/postgresql/spec/{system → acceptance}/server/pg_hba_rule_spec.rb +10 -23
  175. data/modules/postgresql/spec/{system → acceptance}/server/plperl_spec.rb +6 -10
  176. data/modules/postgresql/spec/{system → acceptance}/server/role_spec.rb +13 -28
  177. data/modules/postgresql/spec/acceptance/server/table_grant_spec.rb +124 -0
  178. data/modules/postgresql/spec/{system → acceptance}/server/tablespace_spec.rb +8 -22
  179. data/modules/postgresql/spec/{system → acceptance}/server_spec.rb +38 -61
  180. data/modules/postgresql/spec/{system → acceptance}/validate_db_connection_spec.rb +8 -20
  181. data/modules/postgresql/spec/spec_helper_acceptance.rb +70 -0
  182. data/modules/postgresql/spec/unit/classes/globals_spec.rb +2 -2
  183. data/modules/postgresql/spec/unit/classes/lib/devel_spec.rb +1 -1
  184. data/modules/postgresql/spec/unit/classes/params_spec.rb +1 -1
  185. data/modules/postgresql/spec/unit/classes/repo_spec.rb +1 -1
  186. data/modules/postgresql/spec/unit/classes/server/initdb_spec.rb +2 -1
  187. data/modules/postgresql/spec/unit/classes/server/plperl_spec.rb +2 -2
  188. data/modules/postgresql/spec/unit/classes/server_spec.rb +9 -2
  189. data/modules/postgresql/spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb +15 -17
  190. data/modules/rbenv/bin/autospec +0 -0
  191. data/modules/rbenv/bin/facter +0 -0
  192. data/modules/rbenv/bin/filebucket +0 -0
  193. data/modules/rbenv/bin/hiera +0 -0
  194. data/modules/rbenv/bin/htmldiff +0 -0
  195. data/modules/rbenv/bin/ldiff +0 -0
  196. data/modules/rbenv/bin/pi +0 -0
  197. data/modules/rbenv/bin/puppet +0 -0
  198. data/modules/rbenv/bin/puppet-lint +0 -0
  199. data/modules/rbenv/bin/puppet-module +0 -0
  200. data/modules/rbenv/bin/puppetca +0 -0
  201. data/modules/rbenv/bin/puppetd +0 -0
  202. data/modules/rbenv/bin/puppetdoc +0 -0
  203. data/modules/rbenv/bin/puppetmasterd +0 -0
  204. data/modules/rbenv/bin/puppetqd +0 -0
  205. data/modules/rbenv/bin/puppetrun +0 -0
  206. data/modules/rbenv/bin/rake +0 -0
  207. data/modules/rbenv/bin/ralsh +0 -0
  208. data/modules/rbenv/bin/rspec +0 -0
  209. data/modules/rbenv/bin/rspec-puppet-init +0 -0
  210. data/modules/stdlib/spec/monkey_patches/alias_should_to_must.rb +0 -0
  211. data/modules/stdlib/spec/monkey_patches/publicize_methods.rb +0 -0
  212. data/modules/stdlib/spec/unit/puppet/parser/functions/abs_spec.rb +0 -0
  213. data/modules/stdlib/spec/unit/puppet/parser/functions/bool2num_spec.rb +0 -0
  214. data/modules/stdlib/spec/unit/puppet/parser/functions/capitalize_spec.rb +0 -0
  215. data/modules/stdlib/spec/unit/puppet/parser/functions/chomp_spec.rb +0 -0
  216. data/modules/stdlib/spec/unit/puppet/parser/functions/chop_spec.rb +0 -0
  217. data/modules/stdlib/spec/unit/puppet/parser/functions/delete_at_spec.rb +0 -0
  218. data/modules/stdlib/spec/unit/puppet/parser/functions/delete_spec.rb +0 -0
  219. data/modules/stdlib/spec/unit/puppet/parser/functions/dirname_spec.rb +0 -0
  220. data/modules/stdlib/spec/unit/puppet/parser/functions/downcase_spec.rb +0 -0
  221. data/modules/stdlib/spec/unit/puppet/parser/functions/empty_spec.rb +0 -0
  222. data/modules/stdlib/spec/unit/puppet/parser/functions/flatten_spec.rb +0 -0
  223. data/modules/stdlib/spec/unit/puppet/parser/functions/grep_spec.rb +0 -0
  224. data/modules/stdlib/spec/unit/puppet/parser/functions/has_interface_with_spec.rb +0 -0
  225. data/modules/stdlib/spec/unit/puppet/parser/functions/has_ip_address_spec.rb +0 -0
  226. data/modules/stdlib/spec/unit/puppet/parser/functions/has_ip_network_spec.rb +0 -0
  227. data/modules/stdlib/spec/unit/puppet/parser/functions/max_spec.rb +0 -0
  228. data/modules/stdlib/spec/unit/puppet/parser/functions/min_spec.rb +0 -0
  229. data/modules/stdlib/spec/unit/puppet/parser/functions/reject_spec.rb +0 -0
  230. data/modules/stdlib/spec/unit/puppet/parser/functions/to_bytes_spec.rb +0 -0
  231. data/modules/stdlib/spec/unit/puppet/parser/functions/validate_slength_spec.rb +0 -0
  232. metadata +92 -77
  233. data/modules/apt/manifests/unattended_upgrades.pp +0 -68
  234. data/modules/apt/spec/classes/unattended_upgrades_spec.rb +0 -204
  235. data/modules/apt/spec/system/apt_builddep_spec.rb +0 -38
  236. data/modules/apt/spec/system/apt_key_spec.rb +0 -53
  237. data/modules/apt/spec/system/apt_ppa_spec.rb +0 -59
  238. data/modules/apt/spec/system/apt_source_spec.rb +0 -51
  239. data/modules/apt/spec/system/basic_spec.rb +0 -10
  240. data/modules/apt/spec/system/class_spec.rb +0 -20
  241. data/modules/apt/templates/10periodic.erb +0 -12
  242. data/modules/apt/templates/50unattended-upgrades.erb +0 -53
  243. data/modules/apt/tests/unattended-upgrades.pp +0 -1
  244. data/modules/concat/README.markdown +0 -150
  245. data/modules/concat/spec/defines/init_spec.rb +0 -115
  246. data/modules/concat/spec/fixtures/manifests/site.pp +0 -0
  247. data/modules/firewall/spec/spec_helper_system.rb +0 -49
  248. data/modules/firewall/spec/system/class_spec.rb +0 -39
  249. data/modules/firewall/spec/system/purge_spec.rb +0 -29
  250. data/modules/firewall/spec/system/resource_cmd_spec.rb +0 -53
  251. data/modules/mysql/manifests/server/providers.pp +0 -8
  252. data/modules/mysql/tests/bindings.pp +0 -3
  253. data/modules/postgresql/Gemfile.lock +0 -74
  254. data/modules/postgresql/spec/spec_helper_system.rb +0 -66
  255. data/modules/postgresql/spec/system/client_spec.rb +0 -22
  256. data/modules/postgresql/spec/system/lib/devel_spec.rb +0 -22
  257. data/modules/postgresql/spec/system/lib/java_spec.rb +0 -25
  258. data/modules/postgresql/spec/system/lib/python_spec.rb +0 -24
  259. data/modules/postgresql/spec/system/server/table_grant_spec.rb +0 -72
@@ -6,7 +6,7 @@ describe provider_class do
6
6
  subject { provider_class }
7
7
 
8
8
  let(:root_home) { '/root' }
9
- let(:defaults_file) { '--defaults-extra-file=/root/.my.cnf' }
9
+ let(:defaults_file) { '--defaults-file=/root/.my.cnf' }
10
10
  let(:newhash) { '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF5' }
11
11
 
12
12
  let(:raw_users) do
@@ -35,7 +35,7 @@ usvn_user@localhost
35
35
  Facter.stubs(:value).with(:root_home).returns(root_home)
36
36
  Puppet::Util.stubs(:which).with('mysql').returns('/usr/bin/mysql')
37
37
  subject.stubs(:which).with('mysql').returns('/usr/bin/mysql')
38
- subject.stubs(:defaults_file).returns('--defaults-extra-file=/root/.my.cnf')
38
+ subject.stubs(:defaults_file).returns('--defaults-file=/root/.my.cnf')
39
39
  end
40
40
 
41
41
  describe 'self.instances' do
@@ -110,9 +110,9 @@ usvn_user@localhost
110
110
  end
111
111
 
112
112
  describe 'self.defaults_file' do
113
- it 'sets --defaults-extra-file' do
113
+ it 'sets --defaults-file' do
114
114
  File.stubs(:file?).with('#{root_home}/.my.cnf').returns(true)
115
- @provider.defaults_file.should == '--defaults-extra-file=/root/.my.cnf'
115
+ @provider.defaults_file.should == '--defaults-file=/root/.my.cnf'
116
116
  end
117
117
  end
118
118
 
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Puppet::Type.type(:mysql_database).provider(:mysql) do
4
4
 
5
- let(:defaults_file) { '--defaults-extra-file=/root/.my.cnf' }
5
+ let(:defaults_file) { '--defaults-file=/root/.my.cnf' }
6
6
 
7
7
  let(:raw_databases) do
8
8
  <<-SQL_OUTPUT
@@ -77,9 +77,9 @@ test
77
77
  end
78
78
 
79
79
  describe 'self.defaults_file' do
80
- it 'sets --defaults-extra-file' do
80
+ it 'sets --defaults-file' do
81
81
  File.stubs(:file?).with('/root/.my.cnf').returns(true)
82
- provider.defaults_file.should eq '--defaults-extra-file=/root/.my.cnf'
82
+ provider.defaults_file.should eq '--defaults-file=/root/.my.cnf'
83
83
  end
84
84
  it 'fails if file missing' do
85
85
  File.stubs(:file?).with('/root/.my.cnf').returns(false)
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Puppet::Type.type(:mysql_user).provider(:mysql) do
4
- let(:defaults_file) { '--defaults-extra-file=/root/.my.cnf' }
4
+ let(:defaults_file) { '--defaults-file=/root/.my.cnf' }
5
5
  let(:newhash) { '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF5' }
6
6
 
7
7
  let(:raw_users) do
@@ -84,9 +84,9 @@ usvn_user@localhost
84
84
  end
85
85
 
86
86
  describe 'self.defaults_file' do
87
- it 'sets --defaults-extra-file' do
87
+ it 'sets --defaults-file' do
88
88
  File.stubs(:file?).with('/root/.my.cnf').returns(true)
89
- provider.defaults_file.should eq '--defaults-extra-file=/root/.my.cnf'
89
+ provider.defaults_file.should eq '--defaults-file=/root/.my.cnf'
90
90
  end
91
91
  it 'fails if file missing' do
92
92
  File.expects(:file?).with('/root/.my.cnf').returns(false)
@@ -2,11 +2,9 @@
2
2
  <% if v.is_a?(Hash) -%>
3
3
  [<%= k %>]
4
4
  <% @options[k].sort.map do |ki, vi| -%>
5
- <% if vi == true -%>
6
- <%= ki %>
7
- <% elsif vi and vi != '' -%>
5
+ <% if vi and vi != '' -%>
8
6
  <%= ki %> = <%= vi %>
9
- <% elsif vi -%>
7
+ <% else -%>
10
8
  <%= ki %>
11
9
  <% end -%>
12
10
  <% end -%>
@@ -1,4 +1,4 @@
1
- mysql_grant{'test1@localhost/redmine.*':
1
+ mysql_grant{'test1@localhost/redmine':
2
2
  user => 'test1@localhost',
3
3
  table => 'redmine.*',
4
4
  privileges => ['UPDATE'],
@@ -1,3 +1,34 @@
1
+ 2014-01-28 - Version 3.3.0
2
+
3
+ Summary:
4
+
5
+ This release rolls up a bunch of bugfixes our users have found and fixed for
6
+ us over the last few months. This improves things for 9.1 users, and makes
7
+ this module usable on FreeBSD.
8
+
9
+ This release is dedicated to 'bma', who's suffering with Puppet 3.4.1 issues
10
+ thanks to Puppet::Util::SUIDManager.run_and_capture.
11
+
12
+ Features:
13
+ - Add lc_ config entry settings
14
+ - Can pass template at database creation.
15
+ - Add FreeBSD support.
16
+ - Add support for customer `xlogdir` parameter.
17
+ - Switch tests from rspec-system to beaker. (This isn't really a feature)
18
+
19
+ Bugfixes:
20
+ - Properly fix the deprecated Puppet::Util::SUIDManager.run_and_capture errors.
21
+ - Fix NOREPLICATION option for Postgres 9.1
22
+ - Wrong parameter name: manage_pg_conf -> manage_pg_hba_conf
23
+ - Add $postgresql::server::client_package_name, referred to by install.pp
24
+ - Add missing service_provider/service_name descriptions in ::globals.
25
+ - Fix several smaller typos/issues throughout.
26
+ - Exec['postgresql_initdb'] needs to be done after $datadir exists
27
+ - Prevent defined resources from floating in the catalog.
28
+ - Fix granting all privileges on a table.
29
+ - Add some missing privileges.
30
+ - Remove deprecated and unused concat::fragment parameters.
31
+
1
32
  2013-11-05 - Version 3.2.0
2
33
 
3
34
  Summary:
@@ -3,9 +3,11 @@ source 'https://rubygems.org'
3
3
  group :development, :test do
4
4
  gem 'rake'
5
5
  gem 'puppetlabs_spec_helper', :require => false
6
- gem 'rspec-system-puppet', '~>2.0'
7
- gem 'rspec-system-serverspec', '~>1.0'
6
+ gem 'rspec-puppet', '< 1.0'
8
7
  gem 'puppet-lint', '~> 0.3.2'
8
+ gem 'beaker', :require => false
9
+ gem 'beaker-rspec', :require => false
10
+ gem 'serverspec', :require => false
9
11
  end
10
12
 
11
13
  if puppetversion = ENV['PUPPET_GEM_VERSION']
@@ -1,5 +1,5 @@
1
1
  name 'puppetlabs-postgresql'
2
- version '3.2.0'
2
+ version '3.3.0'
3
3
  source 'git://github.com/puppetlabs/puppet-postgresql.git'
4
4
  author 'Inkling/Puppet Labs'
5
5
  description 'PostgreSQL defined resource types'
@@ -284,10 +284,13 @@ This setting can be used to override the default postgresql PL/perl package name
284
284
  This setting can be used to override the default postgresql Python package name. If not specified, the module will use whatever package name is the default for your OS distro.
285
285
 
286
286
  ####`service_name`
287
- This setting can be used to override the default postgresql service provider. If not specified, the module will use whatever service name is the default for your OS distro.
287
+ This setting can be used to override the default postgresql service name. If not specified, the module will use whatever service name is the default for your OS distro.
288
+
289
+ ####`service_provider`
290
+ This setting can be used to override the default postgresql service provider. If not specified, the module will use whatever service provider is the default for your OS distro.
288
291
 
289
292
  ####`service_status`
290
- This setting can be used to override the default status check command for your PostgreSQL service. If not specified, the module will use whatever service name is the default for your OS distro.
293
+ This setting can be used to override the default status check command for your PostgreSQL service. If not specified, the module will use whatever service status is the default for your OS distro.
291
294
 
292
295
  ####`default_database`
293
296
  This setting is used to specify the name of the default database to connect with. On most systems this will be "postgres".
@@ -319,6 +322,9 @@ This setting can be used to override the default postgresql configuration direct
319
322
  ####`bindir`
320
323
  This setting can be used to override the default postgresql binaries directory for the target platform. If not specified, the module will use whatever directory is the default for your OS distro.
321
324
 
325
+ ####`xlogdir`
326
+ This setting can be used to override the default postgresql xlog directory. If not specified the module will use initdb's default path.
327
+
322
328
  ####`user`
323
329
  This setting can be used to override the default postgresql super user and owner of postgresql related files in the file system. If not specified, the module will use the user name 'postgres'.
324
330
 
@@ -393,7 +399,7 @@ List of strings for access control for connection method, users, databases, IPv4
393
399
  ####`ipv6acls`
394
400
  List of strings for access control for connection method, users, databases, IPv6 addresses; see [postgresql documentation](http://www.postgresql.org/docs/9.2/static/auth-pg-hba-conf.html) about `pg_hba.conf` for information (please note that the link will take you to documentation for the most recent version of Postgres, however links for earlier versions can be found on that page).
395
401
 
396
- ####`inidb_path`
402
+ ####`initdb_path`
397
403
  Path to the `initdb` command.
398
404
 
399
405
  ####`createdb_path`
@@ -451,7 +457,7 @@ The ensure parameter passed on to postgresql client package resource.
451
457
  Installs the postgresql contrib package.
452
458
 
453
459
  ####`package_name`
454
- The name of the postgresql client package.
460
+ The name of the postgresql contrib package.
455
461
 
456
462
  ####`package_ensure`
457
463
  The ensure parameter passed on to postgresql contrib package resource.
@@ -4,7 +4,6 @@ require 'bundler/setup'
4
4
  Bundler.require :default
5
5
 
6
6
  require 'puppetlabs_spec_helper/rake_tasks'
7
- require 'rspec-system/rake_task'
8
7
  require 'puppet-lint/tasks/puppet-lint'
9
8
 
10
9
  task :default do
@@ -16,9 +16,15 @@ Puppet::Type.type(:postgresql_psql).provide(:ruby) do
16
16
  return nil
17
17
  end
18
18
 
19
- output, status = run_unless_sql_command(resource[:unless])
19
+ if Puppet::PUPPETVERSION.to_f < 4
20
+ output, status = run_unless_sql_command(resource[:unless])
21
+ else
22
+ output = run_unless_sql_command(resource[:unless])
23
+ status = output.exitcode
24
+ end
20
25
 
21
26
  if status != 0
27
+ puts status
22
28
  self.fail("Error evaluating 'unless' clause: '#{output}'")
23
29
  end
24
30
  result_count = output.strip.to_i
@@ -61,10 +67,26 @@ Puppet::Type.type(:postgresql_psql).provide(:ruby) do
61
67
 
62
68
  if resource[:cwd]
63
69
  Dir.chdir resource[:cwd] do
64
- Puppet::Util::SUIDManager.run_and_capture(command, resource[:psql_user], resource[:psql_group])
70
+ run_command(command, resource[:psql_user], resource[:psql_group])
65
71
  end
66
72
  else
67
- Puppet::Util::SUIDManager.run_and_capture(command, resource[:psql_user], resource[:psql_group])
73
+ run_command(command, resource[:psql_user], resource[:psql_group])
74
+ end
75
+ end
76
+
77
+ def run_command(command, user, group)
78
+ if Puppet::PUPPETVERSION.to_f < 3.4
79
+ Puppet::Util::SUIDManager.run_and_capture(command, user, group)
80
+ else
81
+ output = Puppet::Util::Execution.execute(command, {
82
+ :uid => user,
83
+ :gid => group,
84
+ :failonfail => false,
85
+ :combine => true,
86
+ :override_locale => true,
87
+ :custom_environment => {}
88
+ })
89
+ [output, $CHILD_STATUS.dup]
68
90
  end
69
91
  end
70
92
 
@@ -27,6 +27,7 @@ class postgresql::globals (
27
27
  $datadir = undef,
28
28
  $confdir = undef,
29
29
  $bindir = undef,
30
+ $xlogdir = undef,
30
31
 
31
32
  $user = undef,
32
33
  $group = undef,
@@ -78,6 +79,7 @@ class postgresql::globals (
78
79
  /Archlinux/ => '9.2',
79
80
  default => '9.2',
80
81
  },
82
+ 'FreeBSD' => '93',
81
83
  default => undef,
82
84
  }
83
85
  $globals_version = pick($version, $default_version, 'unknown')
@@ -120,6 +120,27 @@ class postgresql::params inherits postgresql::globals {
120
120
  $firewall_supported = pick($firewall_supported, true)
121
121
  }
122
122
 
123
+ 'FreeBSD': {
124
+
125
+ $client_package_name = pick($client_package_name, "databases/postgresql${version}-client")
126
+ $server_package_name = pick($server_package_name, "databases/postgresql${version}-server")
127
+ $contrib_package_name = pick($contrib_package_name, "databases/postgresql${version}-contrib")
128
+ $devel_package_name = pick($devel_package_name, 'databases/postgresql-libpqxx3')
129
+ $java_package_name = pick($java_package_name, 'databases/postgresql-jdbc')
130
+ $plperl_package_name = pick($plperl_package_name, "databases/postgresql${version}-plperl")
131
+ $python_package_name = pick($python_package_name, 'databases/py-psycopg2')
132
+
133
+ $service_name = pick($service_name, 'postgresql')
134
+ $bindir = pick($bindir, '/usr/local/bin')
135
+ $datadir = pick($datadir, '/usr/local/pgsql/data')
136
+ $confdir = pick($confdir, '/usr/local/share/postgresql')
137
+ $service_status = pick($service_status, "/usr/local/etc/rc.d/${service_name} status")
138
+ $psql_path = pick($psql_path, "${bindir}/psql")
139
+
140
+ $firewall_supported = pick($firewall_supported, false)
141
+ $needs_initdb = pick($needs_initdb, true)
142
+ }
143
+
123
144
  default: {
124
145
  # Based on the existing version of the firewall module, this is normally
125
146
  # false for other OS, but this allows an escape hatch to override it.
@@ -14,11 +14,6 @@ class postgresql::server::config {
14
14
  $version = $postgresql::server::version
15
15
  $manage_pg_hba_conf = $postgresql::server::manage_pg_hba_conf
16
16
 
17
- File {
18
- owner => $user,
19
- group => $group,
20
- }
21
-
22
17
  if ($ensure == 'present' or $ensure == true) {
23
18
 
24
19
  if ($manage_pg_hba_conf == true) {
@@ -12,7 +12,7 @@ define postgresql::server::config_entry (
12
12
  }
13
13
 
14
14
  case $name {
15
- /data_directory|hba_file|ident_file|include|listen_addresses|port|max_connections|superuser_reserved_connections|unix_socket_directory|unix_socket_group|unix_socket_permissions|bonjour|bonjour_name|ssl|ssl_ciphers|shared_buffers|max_prepared_transactions|max_files_per_process|shared_preload_libraries|wal_level|wal_buffers|archive_mode|max_wal_senders|hot_standby|logging_collector|silent_mode|track_activity_query_size|autovacuum_max_workers|autovacuum_freeze_max_age|max_locks_per_transaction|max_pred_locks_per_transaction|restart_after_crash/: {
15
+ /data_directory|hba_file|ident_file|include|listen_addresses|port|max_connections|superuser_reserved_connections|unix_socket_directory|unix_socket_group|unix_socket_permissions|bonjour|bonjour_name|ssl|ssl_ciphers|shared_buffers|max_prepared_transactions|max_files_per_process|shared_preload_libraries|wal_level|wal_buffers|archive_mode|max_wal_senders|hot_standby|logging_collector|silent_mode|track_activity_query_size|autovacuum_max_workers|autovacuum_freeze_max_age|max_locks_per_transaction|max_pred_locks_per_transaction|restart_after_crash|lc_messages|lc_monetary|lc_numeric|lc_time/: {
16
16
  Postgresql_conf {
17
17
  notify => Class['postgresql::server::service'],
18
18
  before => Class['postgresql::server::reload'],
@@ -3,6 +3,7 @@ define postgresql::server::database(
3
3
  $dbname = $title,
4
4
  $owner = $postgresql::server::user,
5
5
  $tablespace = undef,
6
+ $template = 'template0',
6
7
  $encoding = $postgresql::server::encoding,
7
8
  $locale = $postgresql::server::locale,
8
9
  $istemplate = false
@@ -43,7 +44,7 @@ define postgresql::server::database(
43
44
  default => "--tablespace='${tablespace}' ",
44
45
  }
45
46
 
46
- $createdb_command = "${createdb_path} --owner='${owner}' --template=template0 ${encoding_option}${locale_option}${tablespace_option} '${dbname}'"
47
+ $createdb_command = "${createdb_path} --owner='${owner}' --template=${template} ${encoding_option}${locale_option}${tablespace_option} '${dbname}'"
47
48
 
48
49
  postgresql_psql { "Check for existence of db '${dbname}'":
49
50
  command => 'SELECT 1',
@@ -7,12 +7,14 @@ define postgresql::server::db (
7
7
  $locale = $postgresql::server::locale,
8
8
  $grant = 'ALL',
9
9
  $tablespace = undef,
10
+ $template = 'template0',
10
11
  $istemplate = false,
11
12
  $owner = undef
12
13
  ) {
13
14
  postgresql::server::database { $name:
14
15
  encoding => $encoding,
15
16
  tablespace => $tablespace,
17
+ template => $template,
16
18
  locale => $locale,
17
19
  istemplate => $istemplate,
18
20
  owner => $owner,
@@ -31,16 +31,32 @@ define postgresql::server::grant (
31
31
  )
32
32
 
33
33
  ## Validate that the object type's privilege is acceptable
34
+ # TODO: this is a terrible hack; if they pass "ALL" as the desired privilege,
35
+ # we need a way to test for it--and has_database_privilege does not
36
+ # recognize 'ALL' as a valid privilege name. So we probably need to
37
+ # hard-code a mapping between 'ALL' and the list of actual privileges that
38
+ # it entails, and loop over them to check them. That sort of thing will
39
+ # probably need to wait until we port this over to ruby, so, for now, we're
40
+ # just going to assume that if they have "CREATE" privileges on a database,
41
+ # then they have "ALL". (I told you that it was terrible!)
34
42
  case $_object_type {
35
43
  'DATABASE': {
36
- validate_string($_privilege,'CREATE','CONNECT','TEMPORARY','TEMP','ALL',
37
- 'ALL PRIVILEGES')
44
+ $unless_privilege = $_privilege ? {
45
+ 'ALL' => 'CREATE',
46
+ default => $_privilege,
47
+ }
48
+ validate_string($unless_privilege,'CREATE','CONNECT','TEMPORARY','TEMP',
49
+ 'ALL','ALL PRIVILEGES')
38
50
  $unless_function = 'has_database_privilege'
39
51
  $on_db = $psql_db
40
52
  }
41
53
  'TABLE': {
42
- validate_string($_privilege,'SELECT','INSERT','UPDATE','REFERENCES',
43
- 'ALL','ALL PRIVILEGES')
54
+ $unless_privilege = $_privilege ? {
55
+ 'ALL' => 'INSERT',
56
+ default => $_privilege,
57
+ }
58
+ validate_string($unless_privilege,'SELECT','INSERT','UPDATE','DELETE',
59
+ 'TRUNCATE','REFERENCES','TRIGGER','ALL','ALL PRIVILEGES')
44
60
  $unless_function = 'has_table_privilege'
45
61
  $on_db = $db
46
62
  }
@@ -49,18 +65,6 @@ define postgresql::server::grant (
49
65
  }
50
66
  }
51
67
 
52
- # TODO: this is a terrible hack; if they pass "ALL" as the desired privilege,
53
- # we need a way to test for it--and has_database_privilege does not
54
- # recognize 'ALL' as a valid privilege name. So we probably need to
55
- # hard-code a mapping between 'ALL' and the list of actual privileges that
56
- # it entails, and loop over them to check them. That sort of thing will
57
- # probably need to wait until we port this over to ruby, so, for now, we're
58
- # just going to assume that if they have "CREATE" privileges on a database,
59
- # then they have "ALL". (I told you that it was terrible!)
60
- $unless_privilege = $_privilege ? {
61
- 'ALL' => 'CREATE',
62
- default => $_privilege,
63
- }
64
68
  $grant_cmd = "GRANT ${_privilege} ON ${_object_type} \"${object_name}\" TO \"${role}\""
65
69
  postgresql_psql { $grant_cmd:
66
70
  db => $on_db,
@@ -4,6 +4,7 @@ class postgresql::server::initdb {
4
4
  $needs_initdb = $postgresql::server::needs_initdb
5
5
  $initdb_path = $postgresql::server::initdb_path
6
6
  $datadir = $postgresql::server::datadir
7
+ $xlogdir = $postgresql::server::xlogdir
7
8
  $encoding = $postgresql::server::encoding
8
9
  $locale = $postgresql::server::locale
9
10
  $group = $postgresql::server::group
@@ -18,6 +19,16 @@ class postgresql::server::initdb {
18
19
  mode => '0700',
19
20
  }
20
21
 
22
+ if($xlogdir) {
23
+ # Make sure the xlog directory exists, and has the correct permissions.
24
+ file { $xlogdir:
25
+ ensure => directory,
26
+ owner => $user,
27
+ group => $group,
28
+ mode => '0700',
29
+ }
30
+ }
31
+
21
32
  if($needs_initdb) {
22
33
  # Build up the initdb command.
23
34
  #
@@ -25,9 +36,13 @@ class postgresql::server::initdb {
25
36
  # initdb command don't accept this switch. So if the user didn't pass the
26
37
  # parameter, lets not pass the switch at all.
27
38
  $ic_base = "${initdb_path} --encoding '${encoding}' --pgdata '${datadir}'"
28
- $initdb_command = $locale ? {
39
+ $ic_xlog = $xlogdir ? {
29
40
  undef => $ic_base,
30
- default => "${ic_base} --locale '${locale}'"
41
+ default => "${ic_base} --xlogdir '${xlogdir}'"
42
+ }
43
+ $initdb_command = $locale ? {
44
+ undef => $ic_xlog,
45
+ default => "${ic_xlog} --locale '${locale}'"
31
46
  }
32
47
 
33
48
  # This runs the initdb command, we use the existance of the PG_VERSION
@@ -38,7 +53,7 @@ class postgresql::server::initdb {
38
53
  user => $user,
39
54
  group => $group,
40
55
  logoutput => on_failure,
41
- before => File[$datadir],
56
+ require => File[$datadir],
42
57
  }
43
58
  }
44
59
  } else {
@@ -48,5 +63,14 @@ class postgresql::server::initdb {
48
63
  recurse => true,
49
64
  force => true,
50
65
  }
66
+
67
+ if($xlogdir) {
68
+ # Make sure the xlog directory exists, and has the correct permissions.
69
+ file { $xlogdir:
70
+ ensure => absent,
71
+ recurse => true,
72
+ force => true,
73
+ }
74
+ }
51
75
  }
52
76
  }
@@ -15,8 +15,8 @@ define postgresql::server::pg_hba_rule(
15
15
  $target = $postgresql::server::pg_hba_conf_path
16
16
  ) {
17
17
 
18
- if $postgresql::server::manage_pga_conf == false {
19
- fail('postgresql::server::manage_pga_conf has been disabled, so this resource is now unused and redundant, either enable that option or remove this resource from your manifests')
18
+ if $postgresql::server::manage_pg_hba_conf == false {
19
+ fail('postgresql::server::manage_pg_hba_conf has been disabled, so this resource is now unused and redundant, either enable that option or remove this resource from your manifests')
20
20
  } else {
21
21
  validate_re($type, '^(local|host|hostssl|hostnossl)$',
22
22
  "The type you specified [${type}] must be one of: local, host, hostssl, hostnosssl")
@@ -47,8 +47,6 @@ define postgresql::server::pg_hba_rule(
47
47
  target => $target,
48
48
  content => template('postgresql/pg_hba_rule.conf'),
49
49
  order => $order,
50
- owner => $::id,
51
- mode => '0600',
52
50
  }
53
51
  }
54
52
  }
@@ -56,8 +56,14 @@ define postgresql::server::role(
56
56
  }
57
57
 
58
58
  if(versioncmp($version, '9.1') >= 0) {
59
- postgresql_psql {"ALTER ROLE \"${username}\" ${replication_sql}":
60
- unless => "SELECT rolname FROM pg_roles WHERE rolname='${username}' and rolreplication=${replication}",
59
+ if $replication_sql == '' {
60
+ postgresql_psql {"ALTER ROLE \"${username}\" NOREPLICATION":
61
+ unless => "SELECT rolname FROM pg_roles WHERE rolname='${username}' and rolreplication=${replication}",
62
+ }
63
+ } else {
64
+ postgresql_psql {"ALTER ROLE \"${username}\" ${replication_sql}":
65
+ unless => "SELECT rolname FROM pg_roles WHERE rolname='${username}' and rolreplication=${replication}",
66
+ }
61
67
  }
62
68
  }
63
69
 
@@ -13,6 +13,8 @@ class postgresql::server::service {
13
13
  default => $ensure
14
14
  }
15
15
 
16
+ anchor { 'postgresql::server::service::begin': }
17
+
16
18
  service { 'postgresqld':
17
19
  ensure => $service_ensure,
18
20
  name => $service_name,
@@ -35,6 +37,9 @@ class postgresql::server::service {
35
37
  tries => 60,
36
38
  create_db_first => false,
37
39
  require => Service['postgresqld'],
40
+ before => Anchor['postgresql::server::service::end']
38
41
  }
39
42
  }
43
+
44
+ anchor { 'postgresql::server::service::end': }
40
45
  }
@@ -7,6 +7,7 @@ class postgresql::server (
7
7
  $postgres_password = undef,
8
8
 
9
9
  $package_name = $postgresql::params::server_package_name,
10
+ $client_package_name = $postgresql::params::client_package_name,
10
11
  $package_ensure = $ensure,
11
12
 
12
13
  $plperl_package_name = $postgresql::params::plperl_package_name,
@@ -29,6 +30,7 @@ class postgresql::server (
29
30
  $postgresql_conf_path = $postgresql::params::postgresql_conf_path,
30
31
 
31
32
  $datadir = $postgresql::params::datadir,
33
+ $xlogdir = $postgresql::params::xlogdir,
32
34
 
33
35
  $pg_hba_conf_defaults = $postgresql::params::pg_hba_conf_defaults,
34
36