freighthop 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (270) hide show
  1. data/Puppetfile +1 -0
  2. data/Puppetfile.lock +3 -0
  3. data/Vagrantfile +1 -1
  4. data/bin/fh +2 -78
  5. data/lib/freighthop/cli/help.rb +69 -0
  6. data/lib/freighthop/cli/ssh.rb +46 -0
  7. data/lib/freighthop/cli/vagrant.rb +26 -0
  8. data/lib/freighthop/cli.rb +40 -0
  9. data/lib/freighthop/config.rb +4 -0
  10. data/lib/freighthop/vagrant_env.rb +24 -0
  11. data/lib/freighthop/version.rb +1 -1
  12. data/lib/freighthop.rb +7 -4
  13. data/local_modules/freighthop/manifests/database/mysql.pp +20 -0
  14. data/local_modules/freighthop/manifests/database/postgres.pp +6 -6
  15. data/local_modules/freighthop/manifests/database.pp +6 -8
  16. data/local_modules/freighthop/manifests/init.pp +1 -8
  17. data/local_modules/freighthop/manifests/params.pp +0 -3
  18. data/modules/apt/CHANGELOG +12 -2
  19. data/modules/apt/Gemfile +6 -5
  20. data/modules/apt/Gemfile.lock +40 -5
  21. data/modules/apt/Modulefile +1 -1
  22. data/modules/apt/README.md +2 -1
  23. data/modules/apt/Rakefile +1 -0
  24. data/modules/apt/manifests/init.pp +4 -1
  25. data/modules/apt/manifests/ppa.pp +1 -1
  26. data/modules/apt/manifests/update.pp +1 -0
  27. data/modules/apt/metadata.json +21 -13
  28. data/modules/apt/spec/defines/ppa_spec.rb +3 -3
  29. data/modules/apt/spec/defines/source_spec.rb +2 -2
  30. data/modules/apt/spec/spec_helper_system.rb +30 -0
  31. data/modules/apt/spec/system/apt_builddep_spec.rb +38 -0
  32. data/modules/apt/spec/system/apt_key_spec.rb +53 -0
  33. data/modules/apt/spec/system/apt_ppa_spec.rb +59 -0
  34. data/modules/apt/spec/system/apt_source_spec.rb +51 -0
  35. data/modules/apt/spec/system/basic_spec.rb +10 -0
  36. data/modules/apt/spec/system/class_spec.rb +20 -0
  37. data/modules/apt/templates/source.list.erb +2 -2
  38. data/modules/freighthop/manifests/database/mysql.pp +20 -0
  39. data/modules/freighthop/manifests/database/postgres.pp +6 -6
  40. data/modules/freighthop/manifests/database.pp +6 -8
  41. data/modules/freighthop/manifests/init.pp +1 -8
  42. data/modules/freighthop/manifests/params.pp +0 -3
  43. data/modules/mysql/CHANGELOG +403 -0
  44. data/modules/mysql/Gemfile +24 -0
  45. data/modules/mysql/Gemfile.lock +129 -0
  46. data/modules/mysql/LICENSE +201 -0
  47. data/modules/mysql/Modulefile +9 -0
  48. data/modules/mysql/README.md +492 -0
  49. data/modules/mysql/Rakefile +2 -0
  50. data/modules/mysql/TODO +8 -0
  51. data/modules/mysql/files/mysqltuner.pl +966 -0
  52. data/modules/mysql/lib/puppet/parser/functions/mysql_deepmerge.rb +52 -0
  53. data/modules/mysql/lib/puppet/parser/functions/mysql_password.rb +15 -0
  54. data/modules/mysql/lib/puppet/parser/functions/mysql_strip_hash.rb +21 -0
  55. data/modules/mysql/lib/puppet/provider/database/mysql.rb +52 -0
  56. data/modules/mysql/lib/puppet/provider/database_grant/mysql.rb +210 -0
  57. data/modules/mysql/lib/puppet/provider/database_user/mysql.rb +76 -0
  58. data/modules/mysql/lib/puppet/provider/mysql.rb +67 -0
  59. data/modules/mysql/lib/puppet/provider/mysql_database/mysql.rb +68 -0
  60. data/modules/mysql/lib/puppet/provider/mysql_grant/mysql.rb +115 -0
  61. data/modules/mysql/lib/puppet/provider/mysql_user/mysql.rb +115 -0
  62. data/modules/mysql/lib/puppet/type/database.rb +21 -0
  63. data/modules/mysql/lib/puppet/type/database_grant.rb +79 -0
  64. data/modules/mysql/lib/puppet/type/database_user.rb +31 -0
  65. data/modules/mysql/lib/puppet/type/mysql_database.rb +22 -0
  66. data/modules/mysql/lib/puppet/type/mysql_grant.rb +72 -0
  67. data/modules/mysql/lib/puppet/type/mysql_user.rb +45 -0
  68. data/modules/mysql/manifests/backup.pp +31 -0
  69. data/modules/mysql/manifests/bindings/java.pp +10 -0
  70. data/modules/mysql/manifests/bindings/perl.pp +10 -0
  71. data/modules/mysql/manifests/bindings/php.pp +10 -0
  72. data/modules/mysql/manifests/bindings/python.pp +10 -0
  73. data/modules/mysql/manifests/bindings/ruby.pp +10 -0
  74. data/modules/mysql/manifests/bindings.pp +33 -0
  75. data/modules/mysql/manifests/client/install.pp +8 -0
  76. data/modules/mysql/manifests/client.pp +27 -0
  77. data/modules/mysql/manifests/db.pp +59 -0
  78. data/modules/mysql/manifests/init.pp +100 -0
  79. data/modules/mysql/manifests/params.pp +230 -0
  80. data/modules/mysql/manifests/server/account_security.pp +22 -0
  81. data/modules/mysql/manifests/server/backup.pp +56 -0
  82. data/modules/mysql/manifests/server/config.pp +31 -0
  83. data/modules/mysql/manifests/server/install.pp +9 -0
  84. data/modules/mysql/manifests/server/monitor.pp +24 -0
  85. data/modules/mysql/manifests/server/mysqltuner.pp +9 -0
  86. data/modules/mysql/manifests/server/providers.pp +8 -0
  87. data/modules/mysql/manifests/server/root_password.pp +21 -0
  88. data/modules/mysql/manifests/server/service.pp +19 -0
  89. data/modules/mysql/manifests/server.pp +69 -0
  90. data/modules/mysql/metadata.json +289 -0
  91. data/modules/mysql/spec/classes/mysql_bindings_spec.rb +58 -0
  92. data/modules/mysql/spec/classes/mysql_client_spec.rb +16 -0
  93. data/modules/mysql/spec/classes/mysql_server_account_security_spec.rb +41 -0
  94. data/modules/mysql/spec/classes/mysql_server_backup_spec.rb +112 -0
  95. data/modules/mysql/spec/classes/mysql_server_monitor_spec.rb +31 -0
  96. data/modules/mysql/spec/classes/mysql_server_mysqltuner_spec.rb +5 -0
  97. data/modules/mysql/spec/classes/mysql_server_spec.rb +162 -0
  98. data/modules/mysql/spec/defines/mysql_db_spec.rb +51 -0
  99. data/modules/mysql/spec/spec.opts +6 -0
  100. data/modules/mysql/spec/spec_helper.rb +5 -0
  101. data/modules/mysql/spec/spec_helper_system.rb +28 -0
  102. data/modules/mysql/spec/system/mysql_account_delete_spec.rb +35 -0
  103. data/modules/mysql/spec/system/mysql_backup_spec.rb +77 -0
  104. data/modules/mysql/spec/system/mysql_bindings_spec.rb +90 -0
  105. data/modules/mysql/spec/system/mysql_db_spec.rb +61 -0
  106. data/modules/mysql/spec/system/mysql_server_monitor_spec.rb +30 -0
  107. data/modules/mysql/spec/system/mysql_server_root_password_spec.rb +71 -0
  108. data/modules/mysql/spec/system/mysql_server_spec.rb +85 -0
  109. data/modules/mysql/spec/system/types/mysql_grant_spec.rb +314 -0
  110. data/modules/mysql/spec/system/types/mysql_user_spec.rb +35 -0
  111. data/modules/mysql/spec/unit/mysql_password_spec.rb +27 -0
  112. data/modules/mysql/spec/unit/puppet/functions/mysql_deepmerge_spec.rb +77 -0
  113. data/modules/mysql/spec/unit/puppet/provider/database/mysql_spec.rb +86 -0
  114. data/modules/mysql/spec/unit/puppet/provider/database_grant/mysql_spec.rb +95 -0
  115. data/modules/mysql/spec/unit/puppet/provider/database_user/mysql_spec.rb +119 -0
  116. data/modules/mysql/spec/unit/puppet/provider/mysql_database/mysql_spec.rb +118 -0
  117. data/modules/mysql/spec/unit/puppet/provider/mysql_user/mysql_spec.rb +130 -0
  118. data/modules/mysql/spec/unit/puppet/type/mysql_database_spec.rb +29 -0
  119. data/modules/mysql/spec/unit/puppet/type/mysql_user_spec.rb +30 -0
  120. data/modules/mysql/templates/my.cnf.erb +17 -0
  121. data/modules/mysql/templates/my.cnf.pass.erb +7 -0
  122. data/modules/mysql/templates/my.conf.cnf.erb +17 -0
  123. data/modules/mysql/templates/mysqlbackup.sh.erb +57 -0
  124. data/modules/mysql/tests/backup.pp +8 -0
  125. data/modules/mysql/tests/bindings.pp +3 -0
  126. data/modules/mysql/tests/init.pp +1 -0
  127. data/modules/mysql/tests/java.pp +1 -0
  128. data/modules/mysql/tests/mysql_database.pp +12 -0
  129. data/modules/mysql/tests/mysql_grant.pp +5 -0
  130. data/modules/mysql/tests/mysql_user.pp +23 -0
  131. data/modules/mysql/tests/perl.pp +1 -0
  132. data/modules/mysql/tests/python.pp +1 -0
  133. data/modules/mysql/tests/ruby.pp +1 -0
  134. data/modules/mysql/tests/server/account_security.pp +4 -0
  135. data/modules/mysql/tests/server/config.pp +11 -0
  136. data/modules/mysql/tests/server.pp +3 -0
  137. data/modules/postgresql/Changelog +191 -0
  138. data/modules/postgresql/Gemfile +1 -0
  139. data/modules/postgresql/Gemfile.lock +9 -0
  140. data/modules/postgresql/LICENSE +198 -12
  141. data/modules/postgresql/Modulefile +2 -2
  142. data/modules/postgresql/NOTICE +14 -0
  143. data/modules/postgresql/README.md +435 -184
  144. data/modules/postgresql/files/validate_postgresql_connection.sh +31 -0
  145. data/modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb +37 -0
  146. data/modules/postgresql/lib/puppet/provider/postgresql_psql/ruby.rb +4 -0
  147. data/modules/postgresql/lib/puppet/type/postgresql_conf.rb +31 -0
  148. data/modules/postgresql/lib/puppet/type/postgresql_psql.rb +4 -0
  149. data/modules/postgresql/manifests/client.pp +17 -16
  150. data/modules/postgresql/manifests/globals.pp +95 -0
  151. data/modules/postgresql/manifests/lib/devel.pp +15 -0
  152. data/modules/postgresql/manifests/lib/java.pp +15 -0
  153. data/modules/postgresql/manifests/lib/python.pp +13 -0
  154. data/modules/postgresql/manifests/params.pp +127 -222
  155. data/modules/postgresql/manifests/repo/apt_postgresql_org.pp +30 -0
  156. data/modules/postgresql/manifests/repo/yum_postgresql_org.pp +38 -0
  157. data/modules/postgresql/manifests/repo.pp +22 -0
  158. data/modules/postgresql/manifests/server/config.pp +113 -0
  159. data/modules/postgresql/manifests/server/config_entry.pp +43 -0
  160. data/modules/postgresql/manifests/server/contrib.pp +27 -0
  161. data/modules/postgresql/manifests/server/database.pp +75 -0
  162. data/modules/postgresql/manifests/server/database_grant.pp +18 -0
  163. data/modules/postgresql/manifests/server/db.pp +36 -0
  164. data/modules/postgresql/manifests/server/firewall.pp +21 -0
  165. data/modules/postgresql/manifests/server/grant.pp +81 -0
  166. data/modules/postgresql/manifests/server/initdb.pp +52 -0
  167. data/modules/postgresql/manifests/server/install.pp +49 -0
  168. data/modules/postgresql/manifests/server/passwd.pp +34 -0
  169. data/modules/postgresql/manifests/server/pg_hba_rule.pp +54 -0
  170. data/modules/postgresql/manifests/server/plperl.pp +27 -0
  171. data/modules/postgresql/manifests/server/reload.pp +15 -0
  172. data/modules/postgresql/manifests/{role.pp → server/role.pp} +19 -33
  173. data/modules/postgresql/manifests/server/service.pp +40 -0
  174. data/modules/postgresql/manifests/{table_grant.pp → server/table_grant.pp} +4 -4
  175. data/modules/postgresql/manifests/server/tablespace.pp +42 -0
  176. data/modules/postgresql/manifests/server.pp +61 -83
  177. data/modules/postgresql/manifests/validate_db_connection.pp +49 -50
  178. data/modules/postgresql/metadata.json +123 -73
  179. data/modules/postgresql/spec/spec_helper_system.rb +13 -1
  180. data/modules/postgresql/spec/system/client_spec.rb +22 -0
  181. data/modules/postgresql/spec/system/common_patterns_spec.rb +53 -0
  182. data/modules/postgresql/spec/system/contrib_spec.rb +33 -0
  183. data/modules/postgresql/spec/system/lib/devel_spec.rb +22 -0
  184. data/modules/postgresql/spec/system/lib/java_spec.rb +25 -0
  185. data/modules/postgresql/spec/system/lib/python_spec.rb +24 -0
  186. data/modules/postgresql/spec/system/postgresql_psql_spec.rb +51 -0
  187. data/modules/postgresql/spec/system/server/config_entry_spec.rb +32 -0
  188. data/modules/postgresql/spec/system/server/database_grant_spec.rb +54 -0
  189. data/modules/postgresql/spec/system/server/database_spec.rb +35 -0
  190. data/modules/postgresql/spec/system/server/db_spec.rb +143 -0
  191. data/modules/postgresql/spec/system/server/grant_spec.rb +55 -0
  192. data/modules/postgresql/spec/system/server/pg_hba_rule_spec.rb +85 -0
  193. data/modules/postgresql/spec/system/server/plperl_spec.rb +29 -0
  194. data/modules/postgresql/spec/system/server/role_spec.rb +103 -0
  195. data/modules/postgresql/spec/system/server/table_grant_spec.rb +72 -0
  196. data/modules/postgresql/spec/system/server/tablespace_spec.rb +74 -0
  197. data/modules/postgresql/spec/system/server_spec.rb +217 -0
  198. data/modules/postgresql/spec/system/validate_db_connection_spec.rb +91 -0
  199. data/modules/postgresql/spec/unit/classes/client_spec.rb +27 -2
  200. data/modules/postgresql/spec/unit/classes/globals_spec.rb +28 -0
  201. data/modules/postgresql/spec/unit/classes/lib/devel_spec.rb +12 -0
  202. data/modules/postgresql/spec/unit/classes/{postgresql_java_spec.rb → lib/java_spec.rb} +9 -19
  203. data/modules/postgresql/spec/unit/classes/lib/python_spec.rb +31 -0
  204. data/modules/postgresql/spec/unit/classes/params_spec.rb +2 -1
  205. data/modules/postgresql/spec/unit/classes/repo_spec.rb +17 -0
  206. data/modules/postgresql/spec/unit/classes/server/contrib_spec.rb +42 -0
  207. data/modules/postgresql/spec/unit/classes/server/initdb_spec.rb +28 -0
  208. data/modules/postgresql/spec/unit/classes/server/plperl_spec.rb +45 -0
  209. data/modules/postgresql/spec/unit/classes/server_spec.rb +83 -2
  210. data/modules/postgresql/spec/unit/defines/server/config_entry_spec.rb +23 -0
  211. data/modules/postgresql/spec/unit/defines/server/database_grant_spec.rb +26 -0
  212. data/modules/postgresql/spec/unit/defines/server/database_spec.rb +16 -0
  213. data/modules/postgresql/spec/unit/defines/server/db_spec.rb +28 -0
  214. data/modules/postgresql/spec/unit/defines/{database_grant_spec.rb → server/grant_spec.rb} +7 -4
  215. data/modules/postgresql/spec/unit/defines/{pg_hba_rule_spec.rb → server/pg_hba_rule_spec.rb} +59 -2
  216. data/modules/postgresql/spec/unit/defines/server/role_spec.rb +23 -0
  217. data/modules/postgresql/spec/unit/defines/server/table_grant_spec.rb +27 -0
  218. data/modules/postgresql/spec/unit/defines/server/tablespace_spec.rb +23 -0
  219. data/modules/postgresql/spec/unit/defines/validate_db_connection_spec.rb +22 -9
  220. data/modules/postgresql/spec/unit/provider/postgresql_conf/parsed_spec.rb +112 -0
  221. data/modules/postgresql/spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb +29 -0
  222. data/modules/postgresql/spec/unit/puppet/type/postgresql_psql_spec.rb +1 -0
  223. data/modules/postgresql/spec/unit/type/postgresql_conf_spec.rb +50 -0
  224. metadata +177 -53
  225. data/modules/postgresql/examples/init.pp +0 -1
  226. data/modules/postgresql/examples/official-postgresql-repos.pp +0 -19
  227. data/modules/postgresql/examples/postgresql_database.pp +0 -22
  228. data/modules/postgresql/examples/postgresql_db.pp +0 -30
  229. data/modules/postgresql/examples/postgresql_grant.pp +0 -14
  230. data/modules/postgresql/examples/postgresql_pg_hba_rule.pp +0 -18
  231. data/modules/postgresql/examples/postgresql_pgconf_extras.pp +0 -19
  232. data/modules/postgresql/examples/postgresql_tablespace.pp +0 -73
  233. data/modules/postgresql/examples/postgresql_user.pp +0 -28
  234. data/modules/postgresql/examples/server.pp +0 -10
  235. data/modules/postgresql/lib/facter/postgres_default_version.rb +0 -69
  236. data/modules/postgresql/manifests/config/afterservice.pp +0 -47
  237. data/modules/postgresql/manifests/config/beforeservice.pp +0 -171
  238. data/modules/postgresql/manifests/config.pp +0 -74
  239. data/modules/postgresql/manifests/contrib.pp +0 -29
  240. data/modules/postgresql/manifests/database.pp +0 -85
  241. data/modules/postgresql/manifests/database_grant.pp +0 -35
  242. data/modules/postgresql/manifests/database_user.pp +0 -60
  243. data/modules/postgresql/manifests/db.pp +0 -77
  244. data/modules/postgresql/manifests/devel.pp +0 -27
  245. data/modules/postgresql/manifests/grant.pp +0 -77
  246. data/modules/postgresql/manifests/init.pp +0 -145
  247. data/modules/postgresql/manifests/initdb.pp +0 -52
  248. data/modules/postgresql/manifests/java.pp +0 -29
  249. data/modules/postgresql/manifests/package_source/apt_postgresql_org.pp +0 -21
  250. data/modules/postgresql/manifests/package_source/yum_postgresql_org.pp +0 -30
  251. data/modules/postgresql/manifests/pg_hba.pp +0 -19
  252. data/modules/postgresql/manifests/pg_hba_rule.pp +0 -41
  253. data/modules/postgresql/manifests/plperl.pp +0 -24
  254. data/modules/postgresql/manifests/psql.pp +0 -56
  255. data/modules/postgresql/manifests/python.pp +0 -18
  256. data/modules/postgresql/manifests/tablespace.pp +0 -59
  257. data/modules/postgresql/spec/system/install_spec.rb +0 -707
  258. data/modules/postgresql/spec/system/non_defaults_spec.rb +0 -114
  259. data/modules/postgresql/spec/unit/classes/contrib_spec.rb +0 -11
  260. data/modules/postgresql/spec/unit/classes/devel_spec.rb +0 -11
  261. data/modules/postgresql/spec/unit/classes/init_spec.rb +0 -71
  262. data/modules/postgresql/spec/unit/classes/postgresql_python_spec.rb +0 -53
  263. data/modules/postgresql/spec/unit/defines/database_spec.rb +0 -14
  264. data/modules/postgresql/spec/unit/defines/database_user_spec.rb +0 -19
  265. data/modules/postgresql/spec/unit/defines/db_spec.rb +0 -20
  266. data/modules/postgresql/spec/unit/defines/pg_hba_spec.rb +0 -20
  267. data/modules/postgresql/spec/unit/defines/psql_spec.rb +0 -20
  268. data/modules/postgresql/spec/unit/defines/role_spec.rb +0 -14
  269. data/modules/postgresql/spec/unit/defines/tablespace_spec.rb +0 -19
  270. data/modules/postgresql/spec/unit/facts/postgres_default_version_spec.rb +0 -14
@@ -1,93 +1,71 @@
1
- # Class: postgresql::server
2
- #
3
- # == Class: postgresql::server
4
- # Manages the installation of the postgresql server. manages the package and
5
- # service.
6
- #
7
- # === Parameters:
8
- # [*package_name*] - name of package
9
- # [*service_name*] - name of service
10
- #
11
- # Configuration:
12
- # Advanced configuration setting parameters can be placed into 'postgresql_puppet_extras.conf' (located in the same
13
- # folder as 'postgresql.conf'). You can manage that file as a normal puppet file resource, or however you see fit;
14
- # which gives you complete control over the settings. Any value you specify in that file will override any existing
15
- # value set in the templated version.
16
- #
17
- # Actions:
18
- #
19
- # Requires:
20
- #
21
- # Sample Usage:
22
- #
1
+ # This installs a PostgreSQL server. See README.md for more details.
23
2
  class postgresql::server (
24
- $ensure = 'present',
25
- $package_name = $postgresql::params::server_package_name,
26
- $package_ensure = 'present',
27
- $service_name = $postgresql::params::service_name,
28
- $service_provider = $postgresql::params::service_provider,
29
- $service_status = $postgresql::params::service_status,
30
- $config_hash = {},
31
- $datadir = $postgresql::params::datadir
32
- ) inherits postgresql::params {
3
+ $ensure = $postgresql::params::ensure,
33
4
 
34
- if ($ensure == 'absent') {
35
- service { 'postgresqld':
36
- ensure => stopped,
37
- name => $service_name,
38
- enable => false,
39
- provider => $service_provider,
40
- hasstatus => true,
41
- status => $service_status,
42
- }->
43
- package { 'postgresql-server':
44
- ensure => purged,
45
- name => $package_name,
46
- tag => 'postgresql',
47
- }->
48
- file { $datadir:
49
- ensure => absent,
50
- recurse => true,
51
- force => true,
52
- }
53
- } else {
54
- package { 'postgresql-server':
55
- ensure => $package_ensure,
56
- name => $package_name,
57
- tag => 'postgresql',
58
- }
5
+ $version = $postgresql::params::version,
59
6
 
60
- $config_class = {
61
- 'postgresql::config' => $config_hash,
62
- }
7
+ $postgres_password = undef,
63
8
 
64
- create_resources( 'class', $config_class )
9
+ $package_name = $postgresql::params::server_package_name,
10
+ $package_ensure = $ensure,
65
11
 
66
- service { 'postgresqld':
67
- ensure => running,
68
- name => $service_name,
69
- enable => true,
70
- require => Package['postgresql-server'],
71
- provider => $service_provider,
72
- hasstatus => true,
73
- status => $service_status,
74
- }
12
+ $plperl_package_name = $postgresql::params::plperl_package_name,
75
13
 
76
- if ($postgresql::params::needs_initdb) {
77
- include postgresql::initdb
14
+ $service_name = $postgresql::params::service_name,
15
+ $service_provider = $postgresql::params::service_provider,
16
+ $service_status = $postgresql::params::service_status,
17
+ $default_database = $postgresql::params::default_database,
78
18
 
79
- Package['postgresql-server'] -> Class['postgresql::initdb'] -> Class['postgresql::config'] -> Service['postgresqld']
80
- }
81
- else {
82
- Package['postgresql-server'] -> Class['postgresql::config'] -> Service['postgresqld']
83
- }
19
+ $listen_addresses = $postgresql::params::listen_addresses,
20
+ $ip_mask_deny_postgres_user = $postgresql::params::ip_mask_deny_postgres_user,
21
+ $ip_mask_allow_all_users = $postgresql::params::ip_mask_allow_all_users,
22
+ $ipv4acls = $postgresql::params::ipv4acls,
23
+ $ipv6acls = $postgresql::params::ipv6acls,
84
24
 
85
- exec { 'reload_postgresql':
86
- path => '/usr/bin:/usr/sbin:/bin:/sbin',
87
- command => "service ${service_name} reload",
88
- onlyif => $service_status,
89
- refreshonly => true,
90
- }
91
- }
25
+ $initdb_path = $postgresql::params::initdb_path,
26
+ $createdb_path = $postgresql::params::createdb_path,
27
+ $psql_path = $postgresql::params::psql_path,
28
+ $pg_hba_conf_path = $postgresql::params::pg_hba_conf_path,
29
+ $postgresql_conf_path = $postgresql::params::postgresql_conf_path,
30
+
31
+ $datadir = $postgresql::params::datadir,
32
+
33
+ $pg_hba_conf_defaults = $postgresql::params::pg_hba_conf_defaults,
34
+
35
+ $user = $postgresql::params::user,
36
+ $group = $postgresql::params::group,
37
+
38
+ $needs_initdb = $postgresql::params::needs_initdb,
92
39
 
40
+ $encoding = $postgresql::params::encoding,
41
+ $locale = $postgresql::params::locale,
42
+
43
+ $manage_firewall = $postgresql::params::manage_firewall,
44
+ $manage_pg_hba_conf = $postgresql::params::manage_pg_hba_conf,
45
+ $firewall_supported = $postgresql::params::firewall_supported
46
+ ) inherits postgresql::params {
47
+ $pg = 'postgresql::server'
48
+
49
+ if ($ensure == 'present' or $ensure == true) {
50
+ # Reload has its own ordering, specified by other defines
51
+ class { "${pg}::reload": require => Class["${pg}::install"] }
52
+
53
+ anchor { "${pg}::start": }->
54
+ class { "${pg}::install": }->
55
+ class { "${pg}::initdb": }->
56
+ class { "${pg}::config": }->
57
+ class { "${pg}::service": }->
58
+ class { "${pg}::passwd": }->
59
+ class { "${pg}::firewall": }->
60
+ anchor { "${pg}::end": }
61
+ } else {
62
+ anchor { "${pg}::start": }->
63
+ class { "${pg}::firewall": }->
64
+ class { "${pg}::passwd": }->
65
+ class { "${pg}::service": }->
66
+ class { "${pg}::install": }->
67
+ class { "${pg}::initdb": }->
68
+ class { "${pg}::config": }->
69
+ anchor { "${pg}::end": }
70
+ }
93
71
  }
@@ -1,65 +1,62 @@
1
- # Define: postgresql::validate_db_connection
2
- #
3
1
  # This type validates that a successful postgres connection can be established
4
2
  # between the node on which this resource is run and a specified postgres
5
3
  # instance (host/port/user/password/database name).
6
4
  #
7
- # Parameters:
8
- # [*database_host*] - the hostname or IP address of the machine where the
9
- # postgres server should be running.
10
- # [*database_port*] - the port on which postgres server should be
11
- # listening (defaults to 5432).
12
- # [*database_username*] - the postgres username
13
- # [*database_password*] - the postgres user's password
14
- # [*database_name*] - the database name that the connection should be
15
- # established against
16
- #
17
- # NOTE: to some degree this type assumes that you've created the corresponding
18
- # postgres database instance that you are validating by using the
19
- # `postgresql::db` or `postgresql::database` type provided by this module
20
- # elsewhere in your manifests.
21
- #
22
- # Actions:
23
- #
24
- # Attempts to establish a connection to the specified postgres database. If
25
- # a connection cannot be established, the resource will fail; this allows you
26
- # to use it as a dependency for other resources that would be negatively
27
- # impacted if they were applied without the postgres connection being available.
28
- #
29
- # Requires:
30
- #
31
- # `psql` commandline tool (will automatically install the system's postgres
32
- # client package if it is not already installed.)
33
- #
34
- # Sample Usage:
35
- #
36
- # postgresql::validate_db_connection { 'validate my postgres connection':
37
- # database_host => 'my.postgres.host',
38
- # database_username => 'mydbuser',
39
- # database_password => 'mydbpassword',
40
- # database_name => 'mydbname',
41
- # }
42
- #
43
-
5
+ # See README.md for more details.
44
6
  define postgresql::validate_db_connection(
45
- $database_host,
46
- $database_name,
47
- $database_password,
48
- $database_username,
49
- $database_port = 5432
7
+ $database_host = undef,
8
+ $database_name = undef,
9
+ $database_password = undef,
10
+ $database_username = undef,
11
+ $database_port = undef,
12
+ $run_as = undef,
13
+ $sleep = 2,
14
+ $tries = 10,
15
+ $create_db_first = true
50
16
  ) {
51
17
  require postgresql::client
18
+ include postgresql::params
52
19
 
53
- # TODO: port to ruby
54
- $psql = "${postgresql::params::psql_path} --tuples-only --quiet -h ${database_host} -U ${database_username} -p ${database_port} --dbname ${database_name}"
20
+ $psql_path = $postgresql::params::psql_path
21
+
22
+ $cmd_init = "${psql_path} --tuples-only --quiet "
23
+ $cmd_host = $database_host ? {
24
+ default => "-h ${database_host} ",
25
+ undef => "",
26
+ }
27
+ $cmd_user = $database_username ? {
28
+ default => "-U ${database_username} ",
29
+ undef => "",
30
+ }
31
+ $cmd_port = $database_port ? {
32
+ default => "-p ${database_port} ",
33
+ undef => "",
34
+ }
35
+ $cmd_dbname = $database_name ? {
36
+ default => "--dbname ${database_name} ",
37
+ undef => "--dbname ${postgresql::params::default_database} ",
38
+ }
39
+ $env = $database_password ? {
40
+ default => "PGPASSWORD=${database_password}",
41
+ undef => undef,
42
+ }
43
+ $cmd = join([$cmd_init, $cmd_host, $cmd_user, $cmd_port, $cmd_dbname])
44
+ $validate_cmd = "/usr/local/bin/validate_postgresql_connection.sh ${sleep} ${tries} '${cmd}'"
45
+
46
+ # This is more of a safety valve, we add a little extra to compensate for the
47
+ # time it takes to run each psql command.
48
+ $timeout = (($sleep + 2) * $tries)
55
49
 
56
50
  $exec_name = "validate postgres connection for ${database_host}/${database_name}"
57
51
  exec { $exec_name:
58
- command => '/bin/false',
59
- unless => "/bin/echo \"SELECT 1\" | ${psql}",
52
+ command => "echo 'Unable to connect to defined database using: ${cmd}' && false",
53
+ unless => $validate_cmd,
60
54
  cwd => '/tmp',
61
- environment => "PGPASSWORD=${database_password}",
55
+ environment => $env,
62
56
  logoutput => 'on_failure',
57
+ user => $run_as,
58
+ path => '/bin',
59
+ timeout => $timeout,
63
60
  require => Package['postgresql-client'],
64
61
  }
65
62
 
@@ -72,5 +69,7 @@ define postgresql::validate_db_connection(
72
69
  # We accomplish this by using Puppet's resource collection syntax to search
73
70
  # for the Database resource in our current catalog; if it exists, the
74
71
  # appropriate relationship is created here.
75
- Database<|title == $database_name|> -> Exec[$exec_name]
72
+ if($create_db_first) {
73
+ Postgresql::Server::Database<|title == $database_name|> -> Exec[$exec_name]
74
+ }
76
75
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "puppetlabs-postgresql",
3
- "version": "2.5.0",
3
+ "version": "3.2.0",
4
4
  "source": "git://github.com/puppetlabs/puppet-postgresql.git",
5
5
  "author": "Inkling/Puppet Labs",
6
6
  "license": "ASL 2.0",
@@ -21,11 +21,41 @@
21
21
  "version_requirement": ">=1.1.0 <2.0.0"
22
22
  },
23
23
  {
24
- "name": "ripienaar/concat",
25
- "version_requirement": ">= 0.2.0"
24
+ "name": "puppetlabs/concat",
25
+ "version_requirement": ">= 1.0.0 <2.0.0"
26
26
  }
27
27
  ],
28
28
  "types": [
29
+ {
30
+ "name": "postgresql_conf",
31
+ "doc": "This type allows puppet to manage postgresql.conf parameters.",
32
+ "properties": [
33
+ {
34
+ "name": "ensure",
35
+ "doc": "The basic property that the resource should be in. Valid values are `present`, `absent`."
36
+ },
37
+ {
38
+ "name": "value",
39
+ "doc": "The value to set for this parameter."
40
+ },
41
+ {
42
+ "name": "target",
43
+ "doc": "The path to postgresql.conf"
44
+ }
45
+ ],
46
+ "parameters": [
47
+ {
48
+ "name": "name",
49
+ "doc": "The postgresql parameter name to manage. Values can match `/^[\\w\\.]+$/`."
50
+ }
51
+ ],
52
+ "providers": [
53
+ {
54
+ "name": "parsed",
55
+ "doc": "Set key/values in postgresql.conf."
56
+ }
57
+ ]
58
+ },
29
59
  {
30
60
  "name": "postgresql_psql",
31
61
  "doc": "",
@@ -48,6 +78,10 @@
48
78
  "name": "db",
49
79
  "doc": "The name of the database to execute the SQL command against."
50
80
  },
81
+ {
82
+ "name": "search_path",
83
+ "doc": "The schema search path to use when executing the SQL command"
84
+ },
51
85
  {
52
86
  "name": "psql_path",
53
87
  "doc": "The path to psql executable."
@@ -78,85 +112,101 @@
78
112
  }
79
113
  ],
80
114
  "checksums": {
81
- "Changelog": "194eda44c6768cc12209b73fc0c0f515",
82
- "Gemfile": "e8ed3cac67291082eab15484bcd125f1",
83
- "Gemfile.lock": "219b83deea2bcd02123f7d7443bfbcfd",
84
- "LICENSE": "a781715ebc5e3e0956ee6baec3140e58",
85
- "Modulefile": "4f7400eba827477bdfb51e62016ce0e0",
86
- "README.md": "c780052b0aba70c0dfb91a3910352b9d",
115
+ "Changelog": "3bff00e6b5ac42cd8055ee8d7337c4ff",
116
+ "Gemfile": "d29b809bd75c2aa7c160e45e66483d8c",
117
+ "Gemfile.lock": "9c04244f3ad5b505c9f36daf40a5677f",
118
+ "LICENSE": "746fe83ebbf8970af0a9ea13962293e9",
119
+ "Modulefile": "6a824d502980df77edf9d414b5e3e2f2",
120
+ "NOTICE": "d8ffc52f00e00877b45d2b77e709f69e",
121
+ "README.md": "049d45d3aa128c29e16e9a0dcf67517f",
87
122
  "Rakefile": "7e458ced5c7b798430ee6371f860057e",
88
- "examples/init.pp": "f7772943903ec859df2e43b61b700fd4",
89
- "examples/official-postgresql-repos.pp": "44e02f3c93b7d5edf1647d608c4e6310",
90
- "examples/postgresql_database.pp": "8c631bdc1a57c3e82b203ec3d5dde5e1",
91
- "examples/postgresql_db.pp": "2db756a3dea26055fd9aa8e63201ec4d",
92
- "examples/postgresql_grant.pp": "6f1e08c4f7394b32573a70acc314c3a7",
93
- "examples/postgresql_pg_hba_rule.pp": "4591748c68d75a1014991de70a83aaaa",
94
- "examples/postgresql_pgconf_extras.pp": "51b8d3bf9847a7d7c2a33b131705496f",
95
- "examples/postgresql_tablespace.pp": "f3f6b0c2b6ff09b73ff36138604e2b92",
96
- "examples/postgresql_user.pp": "974917490d130306d45fbb8edee2d6b6",
97
- "examples/server.pp": "7a44884738b92730cdcc0282a581dce2",
98
123
  "files/RPM-GPG-KEY-PGDG": "78b5db170d33f80ad5a47863a7476b22",
99
- "lib/facter/postgres_default_version.rb": "53c88744595fa06f0ce7f08211a46ae2",
124
+ "files/validate_postgresql_connection.sh": "20301932819f035492a30880f5bf335a",
100
125
  "lib/puppet/parser/functions/postgresql_acls_to_resources_hash.rb": "d518a7959b950874820a3b0a7a324488",
101
126
  "lib/puppet/parser/functions/postgresql_escape.rb": "2e136fcd653ab38d831c5b40806d47d1",
102
127
  "lib/puppet/parser/functions/postgresql_password.rb": "820da02a888ab42357fe9bc2352b1c37",
103
- "lib/puppet/provider/postgresql_psql/ruby.rb": "07b38b76285d3fc9cf073be6fca99889",
104
- "lib/puppet/type/postgresql_psql.rb": "66b00c51be519fa3f1a38e50d2284f27",
105
- "manifests/client.pp": "462bae5ffbcc40b1172e5fdbfdb909bf",
106
- "manifests/config/afterservice.pp": "c4f27044577799f9ed7af8f3c52fb0b4",
107
- "manifests/config/beforeservice.pp": "8f2a08efc5001bd63718d4e0c52c42ef",
108
- "manifests/config.pp": "b706fce0f64d6c8bd5ffd0b4925fb3f1",
109
- "manifests/contrib.pp": "98290abf6dd2aa4c6bac0e3746ab85c0",
110
- "manifests/database.pp": "b105ae2f6aafa1adc4f23e2e28a8819c",
111
- "manifests/database_grant.pp": "3f9c69a817be47d8bf940f6a1002d4d0",
112
- "manifests/database_user.pp": "b5f9fdff0bdbd751dfc5f493bddcf1e3",
113
- "manifests/db.pp": "e7b027d31c7ddcf73e435c5a8258fbc2",
114
- "manifests/devel.pp": "4ae7a114c635874555489c15a512b124",
115
- "manifests/grant.pp": "8d13bc521cd6396f69600a0fc94e0db1",
116
- "manifests/init.pp": "229910d441d3881e4389d3a2bcd37c3a",
117
- "manifests/initdb.pp": "9d14ae813bed54ad46d791ed490588d7",
118
- "manifests/java.pp": "be65d349b7657f3cc4b8dd4195e21a7c",
119
- "manifests/package_source/apt_postgresql_org.pp": "f2077dde857658cd3a12c9956ac879d7",
120
- "manifests/package_source/yum_postgresql_org.pp": "4a80fe043d9710da0bcc34a3450159ca",
121
- "manifests/params.pp": "fa3b81a7043a80c20c1dee5269aecb61",
122
- "manifests/pg_hba.pp": "d5e130f3a2e1023061dcfb8cff8fad07",
123
- "manifests/pg_hba_rule.pp": "032477ffac94d72b30c8108394568e89",
124
- "manifests/plperl.pp": "32802554a728f8e139a1c09fcc7856d6",
125
- "manifests/psql.pp": "339bae8e795f5bcf5550a88ad1e1105d",
126
- "manifests/python.pp": "cd2c8d7624ac6146fd0b9d4b8cc57ef5",
127
- "manifests/role.pp": "0696135a4cca68b718c9f46880ab3ddc",
128
- "manifests/server.pp": "c66e8ed7ae608f946eef777f989ffc46",
129
- "manifests/table_grant.pp": "10909deaf4f26d8ea265076275919a89",
130
- "manifests/tablespace.pp": "37d8393a8d92b3b7ba1a6236cba13a9b",
131
- "manifests/validate_db_connection.pp": "ce1ef5d7c00b191e31b422422cee1a4a",
128
+ "lib/puppet/provider/postgresql_conf/parsed.rb": "9c198422c0558faab1bedc00b68cfe45",
129
+ "lib/puppet/provider/postgresql_psql/ruby.rb": "506a07dc159de91fe212133103b9dcff",
130
+ "lib/puppet/type/postgresql_conf.rb": "4f333138a3689f9768e7fe4bc3cde9fd",
131
+ "lib/puppet/type/postgresql_psql.rb": "2c1270cfed4ffb2971059846a57cf983",
132
+ "manifests/client.pp": "f9bc3a578017fe8eb881de2255bdc023",
133
+ "manifests/globals.pp": "64d9cdb6894ba6334992e9365a1e2096",
134
+ "manifests/lib/devel.pp": "94ae7eac3acf1dd3072d481eca4d2d7f",
135
+ "manifests/lib/java.pp": "6e4a2187c2b4caecad8098b46e99c8e0",
136
+ "manifests/lib/python.pp": "90736f86301c4c6401ec1180c176b616",
137
+ "manifests/params.pp": "109138ba7df4ad7da71b302a20f33b29",
138
+ "manifests/repo/apt_postgresql_org.pp": "ef7012ea3c5429bea11b1114183d32c3",
139
+ "manifests/repo/yum_postgresql_org.pp": "e0c445f877cdb39774b735417c967d1d",
140
+ "manifests/repo.pp": "a18a5cb760dbb1e10bdd83730300c1fe",
141
+ "manifests/server/config.pp": "a05f4aeb3f09b2e5e9ee8b9467519afb",
142
+ "manifests/server/config_entry.pp": "a3823efa15fe96535335bd7b722fef9a",
143
+ "manifests/server/contrib.pp": "3112bd1edbed51b68e1402027f9d53b1",
144
+ "manifests/server/database.pp": "ebf356e8cadf5bef884e5597fd60724e",
145
+ "manifests/server/database_grant.pp": "66e5470bb932b087b540c444ee49941b",
146
+ "manifests/server/db.pp": "f35e4974ffee6136e2de1a3edc9cbf21",
147
+ "manifests/server/firewall.pp": "98632b073511a00926908c6951851052",
148
+ "manifests/server/grant.pp": "81c8d6b64a6b938fe57346ede5cdfeb7",
149
+ "manifests/server/initdb.pp": "91e27eaf448817c0f904e5267816a16a",
150
+ "manifests/server/install.pp": "8520e3a86c74e0587a46c4548097bab3",
151
+ "manifests/server/passwd.pp": "96214f099cfb97d361f9bdc0734baf38",
152
+ "manifests/server/pg_hba_rule.pp": "01a1bf9503f908531af9990909d8ba45",
153
+ "manifests/server/plperl.pp": "d6a2e2f0c93c7b543e9db64202c2e48d",
154
+ "manifests/server/reload.pp": "d62c048c8f25c167d266e99e36c0f227",
155
+ "manifests/server/role.pp": "43eeda8b6a40b587d688e2ce33c4e780",
156
+ "manifests/server/service.pp": "e1896d429a032c4522201e9048d204db",
157
+ "manifests/server/table_grant.pp": "bbc864f0ad8545837cf7782d1f7a1755",
158
+ "manifests/server/tablespace.pp": "beda12859757f7f677a711304dfd5185",
159
+ "manifests/server.pp": "d147bf997967eeb428c6e681dbe89d67",
160
+ "manifests/validate_db_connection.pp": "be61434836f7d25cc184126a91b2e3e6",
132
161
  "spec/spec_helper.rb": "d4e4a9a154ada34e7f13b0d8ece0f5db",
133
- "spec/spec_helper_system.rb": "56e45808e53c1259b10870621606a891",
134
- "spec/system/install_spec.rb": "9ca6ca7ff43534eebee2281037676a89",
135
- "spec/system/non_defaults_spec.rb": "356c383f0ca7253841437efb68b9c77b",
136
- "spec/unit/classes/client_spec.rb": "60e55a28a18b2370dac9c79fc175ba2f",
137
- "spec/unit/classes/contrib_spec.rb": "16713d2b385cb20b29d0cdb95480ed01",
138
- "spec/unit/classes/devel_spec.rb": "8f24f839c5ced188e5a373fe469d4f29",
139
- "spec/unit/classes/init_spec.rb": "d8fdd6f2b67570832606b56704fc48f6",
140
- "spec/unit/classes/params_spec.rb": "f35c148917971a3e50c48c22c17eab18",
141
- "spec/unit/classes/postgresql_java_spec.rb": "a073702d2443d45abba0b5e2a719c863",
142
- "spec/unit/classes/postgresql_python_spec.rb": "de978ff4029e0f7309b8a144553c01eb",
143
- "spec/unit/classes/server_spec.rb": "a89d34b468251a36ab7c55e7fb619a5f",
144
- "spec/unit/defines/database_grant_spec.rb": "b3ec60b58c6f917061bca0a48adbf0b7",
145
- "spec/unit/defines/database_spec.rb": "b9f0face88bc301d68f460208ba72df4",
146
- "spec/unit/defines/database_user_spec.rb": "2cb9eaf726859d82baeb6d4a6bf453c4",
147
- "spec/unit/defines/db_spec.rb": "9b99d7f4145b3081d1b025e30f13b3fc",
148
- "spec/unit/defines/pg_hba_rule_spec.rb": "9b7a77c48088d36f9a95b2d82caca8cf",
149
- "spec/unit/defines/pg_hba_spec.rb": "ea0c151170a9eab5398f66ca191b0383",
150
- "spec/unit/defines/psql_spec.rb": "c08ca62b81c68609cca83ec1c60fda55",
151
- "spec/unit/defines/role_spec.rb": "84def95468a82e156a01abfa5e5cb40d",
152
- "spec/unit/defines/tablespace_spec.rb": "fd65a12b4e447421ca0ef0f496aa7cf0",
153
- "spec/unit/defines/validate_db_connection_spec.rb": "1dfe61aca3e98cb96510b3d275097b02",
154
- "spec/unit/facts/postgres_default_version_spec.rb": "0a592d4c1a3948f9a661004cd22fcfc2",
162
+ "spec/spec_helper_system.rb": "ecedca722f54627ef2c5f8a0da5f2163",
163
+ "spec/system/client_spec.rb": "b477056c567ecc479a3bbc6e283df7ba",
164
+ "spec/system/common_patterns_spec.rb": "696033dd862db23f45e86b2099e47810",
165
+ "spec/system/contrib_spec.rb": "326208830a51cf74841bae361709863a",
166
+ "spec/system/lib/devel_spec.rb": "5e69579d3e2e4f854640e3afb1122162",
167
+ "spec/system/lib/java_spec.rb": "e88f705ae328f8a830ae027fca35a474",
168
+ "spec/system/lib/python_spec.rb": "2690f7530f806fa52cbedbb2c86988e6",
169
+ "spec/system/postgresql_psql_spec.rb": "6dd5c8ec1e0f493143fa2b89b044ee3d",
170
+ "spec/system/server/config_entry_spec.rb": "0a8a3c42efad84ab7aca367b8c3e8160",
171
+ "spec/system/server/database_grant_spec.rb": "f5736d6ac16ad1d2ed5f9f3442e3dda4",
172
+ "spec/system/server/database_spec.rb": "5405572c72b39d72d7975da02eef8569",
173
+ "spec/system/server/db_spec.rb": "5a6fcf61718af48e2b1fb79ba040da93",
174
+ "spec/system/server/grant_spec.rb": "fc629944a71faa1d871f3d3a7e4e4a83",
175
+ "spec/system/server/pg_hba_rule_spec.rb": "ff0c8c772ed60f8667dd2531029830b9",
176
+ "spec/system/server/plperl_spec.rb": "cd54753b2c8d5e4aaad13daeb8b61e7a",
177
+ "spec/system/server/role_spec.rb": "5b566002ba577f737d4e2a7b3fccb221",
178
+ "spec/system/server/table_grant_spec.rb": "260490ebb6c8b9b9f73551fb4eca8ea5",
179
+ "spec/system/server/tablespace_spec.rb": "48fed176f821c77d24366d70e9d15ff2",
180
+ "spec/system/server_spec.rb": "e93f4a14e5916eac7961e8d5215e16e2",
181
+ "spec/system/validate_db_connection_spec.rb": "1a454b555c6f0539d7e6e47e177a68cf",
182
+ "spec/unit/classes/client_spec.rb": "b26438da8906e68d17e568252c1e43b5",
183
+ "spec/unit/classes/globals_spec.rb": "952cba1463ca000e288cbfd56ec8c771",
184
+ "spec/unit/classes/lib/devel_spec.rb": "f660eb0afe4fa75e999ab192e39b58d8",
185
+ "spec/unit/classes/lib/java_spec.rb": "bdb60c3b379a3788b3bf1f6c29b31c0a",
186
+ "spec/unit/classes/lib/python_spec.rb": "677c763c1a43a0e33ef7e6e819ec9f0a",
187
+ "spec/unit/classes/params_spec.rb": "2661b999fc13cd3368b54549f3267be0",
188
+ "spec/unit/classes/repo_spec.rb": "a24b152315c86146881b6a39a7a22cd0",
189
+ "spec/unit/classes/server/contrib_spec.rb": "16528171ee3e058c06c5fea454dc9dbc",
190
+ "spec/unit/classes/server/initdb_spec.rb": "7f17f9cc6091c9e9ff789dc2f1653bff",
191
+ "spec/unit/classes/server/plperl_spec.rb": "120e0280679b21b4348dd992f39f83b3",
192
+ "spec/unit/classes/server_spec.rb": "244a793964c16cb3f4d819998e8f07a4",
193
+ "spec/unit/defines/server/config_entry_spec.rb": "cc2d9d0e4508d745f85c3446ccf76eb4",
194
+ "spec/unit/defines/server/database_grant_spec.rb": "e09254037c042efa5a29ba8d777c882f",
195
+ "spec/unit/defines/server/database_spec.rb": "090e9cf334843a4dc8b3f4eadce0109b",
196
+ "spec/unit/defines/server/db_spec.rb": "9f2181b0df771f4c6adf089b788adf42",
197
+ "spec/unit/defines/server/grant_spec.rb": "b8d8f46c7c4539747ee0b797a3a1834f",
198
+ "spec/unit/defines/server/pg_hba_rule_spec.rb": "3ed69d689bf28b56a030c543e7ce6775",
199
+ "spec/unit/defines/server/role_spec.rb": "fdb53fa637ccd79f8231e15383099137",
200
+ "spec/unit/defines/server/table_grant_spec.rb": "bb794a0b15dc74e8c8fa5d4878fd3c79",
201
+ "spec/unit/defines/server/tablespace_spec.rb": "68e7b9a193475491c58485debf1be220",
202
+ "spec/unit/defines/validate_db_connection_spec.rb": "88e57a8f780d381d75fe062f1178e1ce",
155
203
  "spec/unit/functions/postgresql_acls_to_resources_hash_spec.rb": "e7740c3cd2110e2fcebab8356012267c",
156
204
  "spec/unit/functions/postgresql_escape_spec.rb": "6e52e4f3ca56491f8ba2d1490a5fd1ad",
157
205
  "spec/unit/functions/postgresql_password_spec.rb": "76034569a5ff627073c5e6ff69176ac3",
158
- "spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb": "27b57d51cdabbbd94c2f304ca2718002",
159
- "spec/unit/puppet/type/postgresql_psql_spec.rb": "31b8beacb1b2614af1c2220dc25ac5b8",
206
+ "spec/unit/provider/postgresql_conf/parsed_spec.rb": "7295501a413d8cf99df6f40ea50a36fc",
207
+ "spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb": "deef7a3f574269889e7d050a55e847f4",
208
+ "spec/unit/puppet/type/postgresql_psql_spec.rb": "2af5b74f7f4b89ff246818cd79488b3e",
209
+ "spec/unit/type/postgresql_conf_spec.rb": "76f460e0dfc90a1f38c407e5a0d4f463",
160
210
  "templates/pg_hba_rule.conf": "13b46eecdfd359eddff71fa485ef2f54"
161
211
  }
162
212
  }
@@ -1,7 +1,19 @@
1
1
  require 'rspec-system/spec_helper'
2
2
  require 'rspec-system-puppet/helpers'
3
+ require 'rspec-system-serverspec/helpers'
3
4
  require 'tempfile'
4
5
 
6
+ include Serverspec::Helper::RSpecSystem
7
+ include Serverspec::Helper::DetectOS
8
+
9
+ class String
10
+ # Provide ability to remove indentation from strings, for the purpose of
11
+ # left justifying heredoc blocks.
12
+ def unindent
13
+ gsub(/^#{scan(/^\s*/).min_by{|l|l.length}}/, "")
14
+ end
15
+ end
16
+
5
17
  module LocalHelpers
6
18
  include RSpecSystem::Util
7
19
 
@@ -37,7 +49,7 @@ RSpec.configure do |c|
37
49
  shell('puppet module install puppetlabs/stdlib')
38
50
  shell('puppet module install puppetlabs/firewall')
39
51
  shell('puppet module install puppetlabs/apt')
40
- shell('puppet module install ripienaar/concat')
52
+ shell('puppet module install puppetlabs/concat')
41
53
 
42
54
  file = Tempfile.new('foo')
43
55
  begin
@@ -0,0 +1,22 @@
1
+ require 'spec_helper_system'
2
+
3
+ describe 'postgresql::client:' do
4
+ after :all do
5
+ # Cleanup after tests have ran
6
+ puppet_apply("class { 'postgresql::client': package_ensure => purged }") do |r|
7
+ r.exit_code.should_not == 1
8
+ end
9
+ end
10
+
11
+ it 'test loading class with no parameters' do
12
+ pp = <<-EOS.unindent
13
+ class { 'postgresql::client': }
14
+ EOS
15
+
16
+ puppet_apply(pp) do |r|
17
+ r.exit_code.should_not == 1
18
+ r.refresh
19
+ r.exit_code.should == 0
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper_system'
2
+
3
+ describe 'common patterns:' do
4
+ describe 'postgresql.conf include pattern' do
5
+ after :all do
6
+ pp = <<-EOS.unindent
7
+ class { 'postgresql::server': ensure => absent }
8
+
9
+ file { '/tmp/include.conf':
10
+ ensure => absent
11
+ }
12
+ EOS
13
+ puppet_apply(pp) do |r|
14
+ r.exit_code.should_not == 1
15
+ end
16
+ end
17
+
18
+ it "should support an 'include' directive at the end of postgresql.conf" do
19
+ pending('no support for include directive with centos 5/postgresql 8.1',
20
+ :if => (node.facts['osfamily'] == 'RedHat' and node.facts['lsbmajdistrelease'] == '5'))
21
+
22
+ pp = <<-EOS.unindent
23
+ class { 'postgresql::server': }
24
+
25
+ $extras = "/etc/postgresql-include.conf"
26
+
27
+ file { $extras:
28
+ content => 'max_connections = 123',
29
+ seltype => 'postgresql_db_t',
30
+ seluser => 'system_u',
31
+ notify => Class['postgresql::server::service'],
32
+ }
33
+
34
+ postgresql::server::config_entry { 'include':
35
+ value => $extras,
36
+ require => File[$extras],
37
+ }
38
+ EOS
39
+
40
+ puppet_apply(pp) do |r|
41
+ r.exit_code.should == 2
42
+ r.refresh
43
+ r.exit_code.should == 0
44
+ end
45
+
46
+ psql('--command="show max_connections" -t') do |r|
47
+ r.stdout.should =~ /123/
48
+ r.stderr.should == ''
49
+ r.exit_code.should == 0
50
+ end
51
+ end
52
+ end
53
+ end