puppet 7.7.0-universal-darwin → 7.11.0-universal-darwin

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (386) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +7 -7
  3. data/Gemfile +4 -3
  4. data/Gemfile.lock +18 -18
  5. data/README.md +4 -4
  6. data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
  7. data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
  8. data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
  9. data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
  10. data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
  11. data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
  12. data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +0 -0
  13. data/{ext → examples}/nagios/check_puppet.rb +2 -2
  14. data/ext/README.md +13 -0
  15. data/ext/osx/puppet.plist +2 -0
  16. data/ext/project_data.yaml +1 -0
  17. data/install.rb +0 -4
  18. data/lib/puppet/application/agent.rb +4 -0
  19. data/lib/puppet/application/apply.rb +20 -2
  20. data/lib/puppet/application/filebucket.rb +1 -0
  21. data/lib/puppet/application/resource.rb +30 -15
  22. data/lib/puppet/application/ssl.rb +1 -0
  23. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  24. data/lib/puppet/configurer.rb +169 -50
  25. data/lib/puppet/confine/variable.rb +1 -1
  26. data/lib/puppet/defaults.rb +70 -30
  27. data/lib/puppet/environments.rb +75 -25
  28. data/lib/puppet/face/help/action.erb +1 -0
  29. data/lib/puppet/face/help/face.erb +1 -0
  30. data/lib/puppet/face/node/clean.rb +1 -1
  31. data/lib/puppet/facter_impl.rb +96 -0
  32. data/lib/puppet/file_serving/configuration/parser.rb +2 -0
  33. data/lib/puppet/file_serving/configuration.rb +2 -0
  34. data/lib/puppet/file_serving/mount/file.rb +4 -4
  35. data/lib/puppet/file_serving/mount/scripts.rb +24 -0
  36. data/lib/puppet/file_system/file_impl.rb +3 -1
  37. data/lib/puppet/file_system/windows.rb +2 -2
  38. data/lib/puppet/forge/cache.rb +1 -1
  39. data/lib/puppet/forge.rb +4 -4
  40. data/lib/puppet/functions/empty.rb +8 -0
  41. data/lib/puppet/functions/find_template.rb +2 -2
  42. data/lib/puppet/functions/strftime.rb +1 -0
  43. data/lib/puppet/functions/unwrap.rb +17 -2
  44. data/lib/puppet/http/service/compiler.rb +6 -1
  45. data/lib/puppet/indirector/catalog/compiler.rb +24 -6
  46. data/lib/puppet/indirector/catalog/rest.rb +1 -0
  47. data/lib/puppet/indirector/facts/facter.rb +6 -6
  48. data/lib/puppet/indirector/indirection.rb +1 -1
  49. data/lib/puppet/indirector/resource/ral.rb +6 -1
  50. data/lib/puppet/indirector/terminus.rb +4 -0
  51. data/lib/puppet/interface/documentation.rb +1 -0
  52. data/lib/puppet/module/plan.rb +0 -1
  53. data/lib/puppet/module/task.rb +1 -1
  54. data/lib/puppet/module_tool/applications/installer.rb +12 -4
  55. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  56. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  57. data/lib/puppet/module_tool/errors/shared.rb +17 -0
  58. data/lib/puppet/module_tool/tar/mini.rb +1 -1
  59. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  60. data/lib/puppet/node/environment.rb +10 -11
  61. data/lib/puppet/pal/pal_impl.rb +1 -1
  62. data/lib/puppet/parser/scope.rb +8 -7
  63. data/lib/puppet/parser/templatewrapper.rb +1 -0
  64. data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
  65. data/lib/puppet/pops/model/ast.rb +1 -0
  66. data/lib/puppet/pops/model/factory.rb +14 -13
  67. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  68. data/lib/puppet/pops/parser/eparser.rb +752 -753
  69. data/lib/puppet/pops/parser/lexer2.rb +69 -68
  70. data/lib/puppet/pops/parser/slurp_support.rb +1 -0
  71. data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
  72. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  73. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
  74. data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
  75. data/lib/puppet/pops/types/type_formatter.rb +7 -6
  76. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  77. data/lib/puppet/pops/types/types.rb +1 -1
  78. data/lib/puppet/provider/aix_object.rb +1 -1
  79. data/lib/puppet/provider/exec/posix.rb +16 -4
  80. data/lib/puppet/provider/group/groupadd.rb +5 -2
  81. data/lib/puppet/provider/package/apt.rb +3 -3
  82. data/lib/puppet/provider/package/nim.rb +11 -6
  83. data/lib/puppet/provider/package/pip.rb +15 -3
  84. data/lib/puppet/provider/package/pkg.rb +9 -2
  85. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  86. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  87. data/lib/puppet/provider/package/windows/exe_package.rb +30 -1
  88. data/lib/puppet/provider/package/windows/package.rb +2 -1
  89. data/lib/puppet/provider/package/windows.rb +14 -1
  90. data/lib/puppet/provider/package/yum.rb +4 -4
  91. data/lib/puppet/provider/package/zypper.rb +3 -3
  92. data/lib/puppet/provider/parsedfile.rb +3 -0
  93. data/lib/puppet/provider/service/base.rb +1 -1
  94. data/lib/puppet/provider/service/freebsd.rb +1 -1
  95. data/lib/puppet/provider/service/init.rb +5 -5
  96. data/lib/puppet/provider/service/launchd.rb +2 -2
  97. data/lib/puppet/provider/service/redhat.rb +1 -1
  98. data/lib/puppet/provider/service/smf.rb +3 -3
  99. data/lib/puppet/provider/service/systemd.rb +8 -3
  100. data/lib/puppet/provider/service/upstart.rb +5 -5
  101. data/lib/puppet/provider/user/aix.rb +44 -1
  102. data/lib/puppet/provider/user/directoryservice.rb +25 -12
  103. data/lib/puppet/provider/user/useradd.rb +52 -16
  104. data/lib/puppet/provider.rb +1 -1
  105. data/lib/puppet/reference/providers.rb +2 -2
  106. data/lib/puppet/resource/type_collection.rb +4 -1
  107. data/lib/puppet/runtime.rb +11 -1
  108. data/lib/puppet/settings/config_file.rb +1 -8
  109. data/lib/puppet/settings/file_setting.rb +3 -8
  110. data/lib/puppet/settings/value_translator.rb +0 -1
  111. data/lib/puppet/settings.rb +32 -9
  112. data/lib/puppet/test/test_helper.rb +4 -1
  113. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  114. data/lib/puppet/transaction/persistence.rb +11 -1
  115. data/lib/puppet/transaction/report.rb +15 -1
  116. data/lib/puppet/type/exec.rb +35 -5
  117. data/lib/puppet/type/file/mode.rb +6 -0
  118. data/lib/puppet/type/file.rb +6 -6
  119. data/lib/puppet/type/filebucket.rb +2 -2
  120. data/lib/puppet/type/group.rb +0 -1
  121. data/lib/puppet/type/resources.rb +1 -1
  122. data/lib/puppet/type/service.rb +8 -9
  123. data/lib/puppet/type/tidy.rb +1 -1
  124. data/lib/puppet/type/user.rb +39 -22
  125. data/lib/puppet/type.rb +1 -1
  126. data/lib/puppet/util/command_line.rb +1 -1
  127. data/lib/puppet/util/filetype.rb +2 -2
  128. data/lib/puppet/util/log.rb +1 -2
  129. data/lib/puppet/util/logging.rb +1 -25
  130. data/lib/puppet/util/monkey_patches.rb +2 -17
  131. data/lib/puppet/util/pidlock.rb +1 -1
  132. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  133. data/lib/puppet/util/suidmanager.rb +1 -2
  134. data/lib/puppet/util/symbolic_file_mode.rb +29 -17
  135. data/lib/puppet/util/tagging.rb +1 -0
  136. data/lib/puppet/util/windows/sid.rb +3 -1
  137. data/lib/puppet/util/windows/user.rb +0 -1
  138. data/lib/puppet/util.rb +4 -3
  139. data/lib/puppet/version.rb +1 -1
  140. data/lib/puppet/x509/cert_provider.rb +3 -21
  141. data/lib/puppet.rb +5 -9
  142. data/locales/puppet.pot +346 -274
  143. data/man/man5/puppet.conf.5 +76 -25
  144. data/man/man8/puppet-agent.8 +4 -1
  145. data/man/man8/puppet-apply.8 +1 -1
  146. data/man/man8/puppet-catalog.8 +9 -9
  147. data/man/man8/puppet-config.8 +1 -1
  148. data/man/man8/puppet-describe.8 +1 -1
  149. data/man/man8/puppet-device.8 +1 -1
  150. data/man/man8/puppet-doc.8 +1 -1
  151. data/man/man8/puppet-epp.8 +1 -1
  152. data/man/man8/puppet-facts.8 +7 -7
  153. data/man/man8/puppet-filebucket.8 +1 -1
  154. data/man/man8/puppet-generate.8 +1 -1
  155. data/man/man8/puppet-help.8 +1 -1
  156. data/man/man8/puppet-lookup.8 +1 -1
  157. data/man/man8/puppet-module.8 +3 -3
  158. data/man/man8/puppet-node.8 +5 -5
  159. data/man/man8/puppet-parser.8 +1 -1
  160. data/man/man8/puppet-plugin.8 +1 -1
  161. data/man/man8/puppet-report.8 +5 -5
  162. data/man/man8/puppet-resource.8 +1 -1
  163. data/man/man8/puppet-script.8 +1 -1
  164. data/man/man8/puppet-ssl.8 +1 -1
  165. data/man/man8/puppet.8 +2 -2
  166. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
  167. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
  168. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
  169. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
  170. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
  171. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
  172. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
  173. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
  174. data/spec/fixtures/ssl/127.0.0.1-key.pem +106 -106
  175. data/spec/fixtures/ssl/127.0.0.1.pem +48 -48
  176. data/spec/fixtures/ssl/bad-basic-constraints.pem +54 -54
  177. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +51 -51
  178. data/spec/fixtures/ssl/ca.pem +52 -52
  179. data/spec/fixtures/ssl/crl.pem +25 -25
  180. data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
  181. data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
  182. data/spec/fixtures/ssl/ec-key.pem +11 -11
  183. data/spec/fixtures/ssl/ec.pem +32 -32
  184. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  185. data/spec/fixtures/ssl/encrypted-key.pem +107 -107
  186. data/spec/fixtures/ssl/intermediate-agent-crl.pem +25 -25
  187. data/spec/fixtures/ssl/intermediate-agent.pem +54 -54
  188. data/spec/fixtures/ssl/intermediate-crl.pem +28 -28
  189. data/spec/fixtures/ssl/intermediate.pem +51 -51
  190. data/spec/fixtures/ssl/oid-key.pem +117 -0
  191. data/spec/fixtures/ssl/oid.pem +69 -0
  192. data/spec/fixtures/ssl/pluto-key.pem +106 -106
  193. data/spec/fixtures/ssl/pluto.pem +50 -50
  194. data/spec/fixtures/ssl/request-key.pem +106 -106
  195. data/spec/fixtures/ssl/request.pem +45 -45
  196. data/spec/fixtures/ssl/revoked-key.pem +106 -106
  197. data/spec/fixtures/ssl/revoked.pem +49 -49
  198. data/spec/fixtures/ssl/signed-key.pem +106 -106
  199. data/spec/fixtures/ssl/signed.pem +47 -47
  200. data/spec/fixtures/ssl/tampered-cert.pem +49 -49
  201. data/spec/fixtures/ssl/tampered-csr.pem +45 -45
  202. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  203. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +106 -106
  204. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -48
  205. data/spec/fixtures/ssl/unknown-ca-key.pem +106 -106
  206. data/spec/fixtures/ssl/unknown-ca.pem +52 -52
  207. data/spec/integration/application/agent_spec.rb +118 -52
  208. data/spec/integration/application/filebucket_spec.rb +16 -0
  209. data/spec/integration/application/module_spec.rb +21 -0
  210. data/spec/integration/application/resource_spec.rb +64 -0
  211. data/spec/integration/application/ssl_spec.rb +20 -0
  212. data/spec/integration/configurer_spec.rb +18 -2
  213. data/spec/integration/defaults_spec.rb +5 -0
  214. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  215. data/spec/integration/indirector/facts/facter_spec.rb +93 -39
  216. data/spec/integration/l10n/compiler_spec.rb +37 -0
  217. data/spec/integration/transaction/report_spec.rb +1 -1
  218. data/spec/integration/type/exec_spec.rb +70 -45
  219. data/spec/integration/type/file_spec.rb +2 -2
  220. data/spec/integration/type/package_spec.rb +6 -6
  221. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  222. data/spec/integration/util/windows/process_spec.rb +1 -9
  223. data/spec/lib/puppet/test_ca.rb +5 -0
  224. data/spec/lib/puppet_spec/modules.rb +13 -2
  225. data/spec/lib/puppet_spec/puppetserver.rb +15 -0
  226. data/spec/lib/puppet_spec/settings.rb +1 -0
  227. data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
  228. data/spec/shared_contexts/l10n.rb +27 -0
  229. data/spec/spec_helper.rb +1 -10
  230. data/spec/unit/application/apply_spec.rb +76 -56
  231. data/spec/unit/application/resource_spec.rb +29 -0
  232. data/spec/unit/configurer_spec.rb +277 -56
  233. data/spec/unit/environments_spec.rb +184 -0
  234. data/spec/unit/facter_impl_spec.rb +31 -0
  235. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  236. data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
  237. data/spec/unit/file_serving/configuration_spec.rb +12 -4
  238. data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
  239. data/spec/unit/file_system_spec.rb +13 -0
  240. data/spec/unit/functions/assert_type_spec.rb +1 -1
  241. data/spec/unit/functions/empty_spec.rb +10 -0
  242. data/spec/unit/functions/logging_spec.rb +1 -0
  243. data/spec/unit/functions/lookup_spec.rb +87 -0
  244. data/spec/unit/functions/unwrap_spec.rb +8 -0
  245. data/spec/unit/functions4_spec.rb +19 -10
  246. data/spec/unit/http/service/compiler_spec.rb +8 -0
  247. data/spec/unit/indirector/catalog/compiler_spec.rb +87 -0
  248. data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
  249. data/spec/unit/indirector/indirection_spec.rb +10 -3
  250. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  251. data/spec/unit/interface/action_spec.rb +0 -9
  252. data/spec/unit/module_spec.rb +14 -0
  253. data/spec/unit/module_tool/applications/installer_spec.rb +52 -14
  254. data/spec/unit/parser/compiler_spec.rb +29 -0
  255. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  256. data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -9
  257. data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
  258. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
  259. data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
  260. data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
  261. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  262. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  263. data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
  264. data/spec/unit/provider/package/gem_spec.rb +1 -1
  265. data/spec/unit/provider/package/nim_spec.rb +42 -0
  266. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  267. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  268. data/spec/unit/provider/package/pip_spec.rb +38 -1
  269. data/spec/unit/provider/package/pkg_spec.rb +19 -5
  270. data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
  271. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  272. data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
  273. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  274. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  275. data/spec/unit/provider/service/launchd_spec.rb +11 -0
  276. data/spec/unit/provider/service/systemd_spec.rb +13 -1
  277. data/spec/unit/provider/user/aix_spec.rb +100 -0
  278. data/spec/unit/provider/user/directoryservice_spec.rb +68 -36
  279. data/spec/unit/provider/user/useradd_spec.rb +3 -2
  280. data/spec/unit/provider_spec.rb +4 -4
  281. data/spec/unit/puppet_spec.rb +12 -4
  282. data/spec/unit/resource/type_collection_spec.rb +16 -0
  283. data/spec/unit/resource/type_spec.rb +2 -2
  284. data/spec/unit/settings/config_file_spec.rb +1 -11
  285. data/spec/unit/settings/file_setting_spec.rb +10 -7
  286. data/spec/unit/settings/value_translator_spec.rb +4 -5
  287. data/spec/unit/settings_spec.rb +120 -79
  288. data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
  289. data/spec/unit/type/exec_spec.rb +76 -29
  290. data/spec/unit/type/file/source_spec.rb +4 -4
  291. data/spec/unit/type/service_spec.rb +49 -34
  292. data/spec/unit/type/tidy_spec.rb +7 -0
  293. data/spec/unit/type/user_spec.rb +45 -0
  294. data/spec/unit/type_spec.rb +2 -2
  295. data/spec/unit/util/ldap/connection_spec.rb +10 -10
  296. data/spec/unit/util/ldap/manager_spec.rb +2 -2
  297. data/spec/unit/util/logging_spec.rb +2 -0
  298. data/spec/unit/util/windows/sid_spec.rb +39 -4
  299. data/spec/unit/util_spec.rb +1 -3
  300. data/spec/unit/x509/cert_provider_spec.rb +9 -1
  301. data/tasks/generate_cert_fixtures.rake +10 -1
  302. data/tasks/parallel.rake +3 -3
  303. metadata +53 -95
  304. data/ext/README.environment +0 -8
  305. data/ext/dbfix.sql +0 -132
  306. data/ext/debian/README.Debian +0 -8
  307. data/ext/debian/README.source +0 -2
  308. data/ext/debian/TODO.Debian +0 -1
  309. data/ext/debian/changelog.erb +0 -1122
  310. data/ext/debian/compat +0 -1
  311. data/ext/debian/control +0 -144
  312. data/ext/debian/copyright +0 -339
  313. data/ext/debian/docs +0 -1
  314. data/ext/debian/fileserver.conf +0 -41
  315. data/ext/debian/puppet-common.dirs +0 -13
  316. data/ext/debian/puppet-common.install +0 -3
  317. data/ext/debian/puppet-common.lintian-overrides +0 -5
  318. data/ext/debian/puppet-common.manpages +0 -28
  319. data/ext/debian/puppet-common.postinst +0 -35
  320. data/ext/debian/puppet-common.postrm +0 -33
  321. data/ext/debian/puppet-el.dirs +0 -1
  322. data/ext/debian/puppet-el.emacsen-install +0 -25
  323. data/ext/debian/puppet-el.emacsen-remove +0 -11
  324. data/ext/debian/puppet-el.emacsen-startup +0 -9
  325. data/ext/debian/puppet-el.install +0 -1
  326. data/ext/debian/puppet-testsuite.install +0 -2
  327. data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
  328. data/ext/debian/puppet.lintian-overrides +0 -3
  329. data/ext/debian/puppet.logrotate +0 -20
  330. data/ext/debian/puppet.postinst +0 -20
  331. data/ext/debian/puppet.postrm +0 -20
  332. data/ext/debian/puppet.preinst +0 -20
  333. data/ext/debian/puppetmaster-common.install +0 -2
  334. data/ext/debian/puppetmaster-common.manpages +0 -2
  335. data/ext/debian/puppetmaster-common.postinst +0 -6
  336. data/ext/debian/puppetmaster-passenger.dirs +0 -4
  337. data/ext/debian/puppetmaster-passenger.postinst +0 -162
  338. data/ext/debian/puppetmaster-passenger.postrm +0 -61
  339. data/ext/debian/puppetmaster.README.debian +0 -17
  340. data/ext/debian/puppetmaster.default +0 -14
  341. data/ext/debian/puppetmaster.init +0 -137
  342. data/ext/debian/puppetmaster.lintian-overrides +0 -3
  343. data/ext/debian/puppetmaster.postinst +0 -20
  344. data/ext/debian/puppetmaster.postrm +0 -5
  345. data/ext/debian/puppetmaster.preinst +0 -22
  346. data/ext/debian/rules +0 -132
  347. data/ext/debian/source/format +0 -1
  348. data/ext/debian/source/options +0 -1
  349. data/ext/debian/vim-puppet.README.Debian +0 -13
  350. data/ext/debian/vim-puppet.dirs +0 -5
  351. data/ext/debian/vim-puppet.yaml +0 -7
  352. data/ext/debian/watch +0 -2
  353. data/ext/freebsd/puppetd +0 -26
  354. data/ext/freebsd/puppetmasterd +0 -26
  355. data/ext/gentoo/conf.d/puppet +0 -5
  356. data/ext/gentoo/conf.d/puppetmaster +0 -12
  357. data/ext/gentoo/init.d/puppet +0 -38
  358. data/ext/gentoo/init.d/puppetmaster +0 -51
  359. data/ext/gentoo/puppet/fileserver.conf +0 -41
  360. data/ext/ips/puppet-agent +0 -44
  361. data/ext/ips/puppet-master +0 -44
  362. data/ext/ips/puppet.p5m.erb +0 -12
  363. data/ext/ips/puppetagent.xml +0 -42
  364. data/ext/ips/puppetmaster.xml +0 -42
  365. data/ext/ips/rules +0 -19
  366. data/ext/ips/transforms +0 -34
  367. data/ext/ldap/puppet.schema +0 -24
  368. data/ext/logcheck/puppet +0 -23
  369. data/ext/osx/file_mapping.yaml +0 -28
  370. data/ext/osx/postflight.erb +0 -109
  371. data/ext/osx/preflight.erb +0 -52
  372. data/ext/osx/prototype.plist.erb +0 -38
  373. data/ext/redhat/fileserver.conf +0 -41
  374. data/ext/redhat/logrotate +0 -21
  375. data/ext/redhat/puppet.spec.erb +0 -841
  376. data/ext/redhat/server.init +0 -128
  377. data/ext/redhat/server.sysconfig +0 -13
  378. data/ext/solaris/pkginfo +0 -6
  379. data/ext/solaris/smf/puppetd.xml +0 -77
  380. data/ext/solaris/smf/puppetmasterd.xml +0 -77
  381. data/ext/solaris/smf/svc-puppetd +0 -71
  382. data/ext/solaris/smf/svc-puppetmasterd +0 -67
  383. data/ext/suse/puppet.spec +0 -310
  384. data/ext/suse/server.init +0 -173
  385. data/ext/yaml_nodes.rb +0 -105
  386. data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -5,6 +5,14 @@ require 'puppet/file_system'
5
5
  describe Puppet::Environments do
6
6
  FS = Puppet::FileSystem
7
7
 
8
+ module FsRemove
9
+ def remove
10
+ @properties[:directory?] = false
11
+ @properties[:exist?] = false
12
+ @properties[:executable?] = false
13
+ end
14
+ end
15
+
8
16
  before(:each) do
9
17
  Puppet.settings.initialize_global_settings
10
18
  Puppet[:environment_timeout] = "unlimited"
@@ -131,6 +139,14 @@ describe Puppet::Environments do
131
139
  end
132
140
  end
133
141
 
142
+ it "implements guard and unguard" do
143
+ loader_from(:filesystem => [directory_tree],
144
+ :directory => directory_tree.children.first) do |loader|
145
+ expect(loader.guard('env1')).to be_nil
146
+ expect(loader.unguard('env1')).to be_nil
147
+ end
148
+ end
149
+
134
150
  context "with an environment.conf" do
135
151
  let(:envdir) do
136
152
  FS::MemoryFile.a_directory(File.expand_path("envdir"), [
@@ -607,6 +623,78 @@ config_version=$vardir/random/scripts
607
623
  cached.get(:cached)
608
624
  end
609
625
 
626
+ it "does not list deleted environments" do
627
+ env3 = FS::MemoryFile.a_directory("env3", [
628
+ FS::MemoryFile.a_regular_file_containing("environment.conf", '')
629
+ ])
630
+
631
+ envdir = FS::MemoryFile.a_directory(File.expand_path("envdir"), [
632
+ FS::MemoryFile.a_directory("env1", [
633
+ FS::MemoryFile.a_regular_file_containing("environment.conf", '')
634
+ ]),
635
+ FS::MemoryFile.a_directory("env2", [
636
+ FS::MemoryFile.a_regular_file_containing("environment.conf", '')
637
+ ]),
638
+ env3
639
+ ])
640
+
641
+ loader_from(:filesystem => [envdir], :directory => envdir) do |loader|
642
+ cached = Puppet::Environments::Cached.new(loader)
643
+ cached.get(:env1)
644
+ cached.get(:env2)
645
+ cached.get(:env3)
646
+ env3.extend(FsRemove).remove
647
+
648
+ expect(cached.list).to contain_exactly(environment(:env1),environment(:env2))
649
+ expect(cached.get(:env3)).to be_nil
650
+ end
651
+ end
652
+
653
+ it "normalizes environment name to symbol" do
654
+ env = Puppet::Node::Environment.create(:cached, [])
655
+ mocked_loader = double('loader')
656
+
657
+ expect(mocked_loader).not_to receive(:get).with('cached')
658
+ expect(mocked_loader).to receive(:get).with(:cached).and_return(env).once
659
+ expect(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20)).once
660
+
661
+ cached = Puppet::Environments::Cached.new(mocked_loader)
662
+ cached.get('cached')
663
+ cached.get(:cached)
664
+ end
665
+
666
+ it "caches environment name as symbol and only once" do
667
+ mocked_loader = double('loader')
668
+
669
+ env = Puppet::Node::Environment.create(:cached, [])
670
+ allow(mocked_loader).to receive(:get).with(:cached).and_return(env)
671
+ allow(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20))
672
+
673
+ cached = Puppet::Environments::Cached.new(mocked_loader)
674
+ cached.get(:cached)
675
+ cached.get('cached')
676
+
677
+ expect(cached.instance_variable_get(:@cache).keys).to eq([:cached])
678
+ end
679
+
680
+ it "is able to cache multiple environments" do
681
+ mocked_loader = double('loader')
682
+
683
+ env1 = Puppet::Node::Environment.create(:env1, [])
684
+ allow(mocked_loader).to receive(:get).with(:env1).and_return(env1)
685
+ allow(mocked_loader).to receive(:get_conf).with(:env1).and_return(Puppet::Settings::EnvironmentConf.static_for(env1, 20))
686
+
687
+ env2 = Puppet::Node::Environment.create(:env2, [])
688
+ allow(mocked_loader).to receive(:get).with(:env2).and_return(env2)
689
+ allow(mocked_loader).to receive(:get_conf).with(:env2).and_return(Puppet::Settings::EnvironmentConf.static_for(env2, 20))
690
+
691
+ cached = Puppet::Environments::Cached.new(mocked_loader)
692
+ cached.get('env1')
693
+ cached.get('env2')
694
+
695
+ expect(cached.instance_variable_get(:@cache).keys).to eq([:env1, :env2])
696
+ end
697
+
610
698
  it "returns nil if env not found" do
611
699
  cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
612
700
  expect(loader.get(:doesnotexist)).to be_nil
@@ -662,6 +750,17 @@ config_version=$vardir/random/scripts
662
750
  cached.get_conf(:cached)
663
751
  end
664
752
 
753
+ it "normalizes environment name to symbol" do
754
+ env = Puppet::Node::Environment.create(:cached, [])
755
+ mocked_loader = double('loader')
756
+ expect(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20)).twice
757
+
758
+ cached = Puppet::Environments::Cached.new(mocked_loader)
759
+
760
+ cached.get_conf('cached')
761
+ cached.get_conf(:cached)
762
+ end
763
+
665
764
  it "returns nil if environment is not found" do
666
765
  cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
667
766
  expect(loader.get_conf(:doesnotexist)).to be_nil
@@ -751,6 +850,83 @@ config_version=$vardir/random/scripts
751
850
 
752
851
  expect(service.evicted_envs).to eq([:an_environment])
753
852
  end
853
+
854
+ context "when guarding an environment" do
855
+ before :each do
856
+ Puppet[:environment_timeout] = 0
857
+ end
858
+
859
+ let(:name) { :an_environment }
860
+
861
+ def with_guard(cached, name, &block)
862
+ cached.guard(name)
863
+ begin
864
+ yield
865
+ ensure
866
+ cached.unguard(name)
867
+ end
868
+ end
869
+
870
+ it "evicts an expired and unguarded environment" do
871
+ with_environment_loaded(service) do |cached|
872
+ cached.get!(name)
873
+ end
874
+
875
+ expect(service.created_envs).to eq([name, name])
876
+ expect(service.evicted_envs).to eq([name])
877
+ end
878
+
879
+ it "does not evict an expired, but guarded environment" do
880
+ with_environment_loaded(service) do |cached|
881
+ with_guard(cached, name) do
882
+ cached.get!(name) # these shouldn't reload
883
+ cached.get!(name)
884
+ end
885
+ end
886
+
887
+ expect(service.created_envs).to eq([name])
888
+ expect(service.evicted_envs).to eq([])
889
+ end
890
+
891
+ it "does not evict an environment marked for expiration, but is guarded" do
892
+ Puppet[:environment_timeout] = 'unlimited'
893
+
894
+ expect(service).to receive(:expired?).never
895
+
896
+ with_environment_loaded(service) do |cached|
897
+ with_guard(cached, name) do
898
+ cached.get!(name)
899
+ end
900
+ end
901
+
902
+ expect(service.created_envs).to eq([name])
903
+ expect(service.evicted_envs).to eq([])
904
+ end
905
+
906
+ it "evicts an environment that is no longer guarded" do
907
+ with_environment_loaded(service) do |cached|
908
+ with_guard(cached, name) {}
909
+
910
+ cached.get!(name) # this reloads
911
+ end
912
+
913
+ expect(service.created_envs).to eq([name, name])
914
+ expect(service.evicted_envs).to eq([name])
915
+ end
916
+
917
+ it "can nest guards" do
918
+ with_environment_loaded(service) do |cached|
919
+ with_guard(cached, name) do
920
+ with_guard(cached, name) do
921
+ cached.get!(name) # doesn't reload
922
+ end
923
+ end
924
+ end
925
+
926
+ expect(service.created_envs).to eq([name])
927
+ expect(service.evicted_envs).to eq([])
928
+ end
929
+ end
754
930
  end
755
931
 
756
932
  context '#clear' do
@@ -763,6 +939,14 @@ config_version=$vardir/random/scripts
763
939
 
764
940
  expect(service.evicted_envs).to eq([:an_environment])
765
941
  end
942
+
943
+ it "normalizes environment name to symbol" do
944
+ with_environment_loaded(service) do |cached|
945
+ cached.clear('an_environment')
946
+ end
947
+
948
+ expect(service.evicted_envs).to eq([:an_environment])
949
+ end
766
950
  end
767
951
 
768
952
  context '#clear_all' do
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Puppet::FacterImpl' do
4
+ subject(:facter_impl) { Puppet::FacterImpl.new }
5
+
6
+ it { is_expected.to respond_to(:value) }
7
+ it { is_expected.to respond_to(:add) }
8
+
9
+ describe '.value' do
10
+ let(:method_name) { :value }
11
+
12
+ before { allow(Facter).to receive(method_name) }
13
+
14
+ it 'delegates to Facter API' do
15
+ facter_impl.value('test_fact')
16
+ expect(Facter).to have_received(method_name).with('test_fact')
17
+ end
18
+ end
19
+
20
+ describe '.add' do
21
+ let(:block) { Proc.new { setcode 'test' } }
22
+ let(:method_name) { :add }
23
+
24
+ before { allow(Facter).to receive(method_name) }
25
+
26
+ it 'delegates to Facter API' do
27
+ facter_impl.add('test_fact', &block)
28
+ expect(Facter).to have_received(method_name).with('test_fact', &block)
29
+ end
30
+ end
31
+ end
@@ -104,8 +104,8 @@ describe Puppet::FileBucket::Dipper, :uses_checksums => true do
104
104
  # Diff without the context
105
105
  # Lines we need to see match 'Content' instead of trimming diff output filter out
106
106
  # surrounding noise...or hard code the check values
107
- if Facter.value(:osfamily) == 'Solaris' &&
108
- Puppet::Util::Package.versioncmp(Facter.value(:operatingsystemrelease), '11.0') >= 0
107
+ if Puppet.runtime[:facter].value(:osfamily) == 'Solaris' &&
108
+ Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value(:operatingsystemrelease), '11.0') >= 0
109
109
  # Use gdiff on Solaris
110
110
  diff12 = Puppet::Util::Execution.execute("gdiff -uN #{file1} #{file2}| grep Content")
111
111
  diff21 = Puppet::Util::Execution.execute("gdiff -uN #{file2} #{file1}| grep Content")
@@ -159,6 +159,29 @@ describe Puppet::FileServing::Configuration::Parser do
159
159
  end
160
160
  end
161
161
 
162
+ describe Puppet::FileServing::Configuration::Parser, " when parsing the scripts mount" do
163
+ include FSConfigurationParserTesting
164
+
165
+ before do
166
+ @mount = double('scriptsmount', :name => "scripts", :validate => true)
167
+ end
168
+
169
+ it "should create an instance of the Scripts Mount class" do
170
+ write_config_file "[scripts]\n"
171
+
172
+ expect(Puppet::FileServing::Mount::Scripts).to receive(:new).with("scripts").and_return(@mount)
173
+ @parser.parse
174
+ end
175
+
176
+ it "should warn if a path is set" do
177
+ write_config_file "[scripts]\npath /some/path\n"
178
+ expect(Puppet::FileServing::Mount::Scripts).to receive(:new).with("scripts").and_return(@mount)
179
+
180
+ expect(Puppet).to receive(:warning)
181
+ @parser.parse
182
+ end
183
+ end
184
+
162
185
  describe Puppet::FileServing::Configuration::Parser, " when parsing the plugins mount" do
163
186
  include FSConfigurationParserTesting
164
187
 
@@ -80,15 +80,16 @@ describe Puppet::FileServing::Configuration do
80
80
  expect(config.mounted?("one")).to be_truthy
81
81
  end
82
82
 
83
- it "should add modules, plugins, and tasks mounts even if the file does not exist" do
83
+ it "should add modules, plugins, scripts, and tasks mounts even if the file does not exist" do
84
84
  expect(Puppet::FileSystem).to receive(:exist?).and_return(false) # the file doesn't exist
85
85
  config = Puppet::FileServing::Configuration.configuration
86
86
  expect(config.mounted?("modules")).to be_truthy
87
87
  expect(config.mounted?("plugins")).to be_truthy
88
+ expect(config.mounted?("scripts")).to be_truthy
88
89
  expect(config.mounted?("tasks")).to be_truthy
89
90
  end
90
91
 
91
- it "should allow all access to modules, plugins, and tasks if no fileserver.conf exists" do
92
+ it "should allow all access to modules, plugins, scripts, and tasks if no fileserver.conf exists" do
92
93
  expect(Puppet::FileSystem).to receive(:exist?).and_return(false) # the file doesn't exist
93
94
  modules = double('modules')
94
95
  allow(Puppet::FileServing::Mount::Modules).to receive(:new).and_return(modules)
@@ -99,10 +100,13 @@ describe Puppet::FileServing::Configuration do
99
100
  tasks = double('tasks')
100
101
  allow(Puppet::FileServing::Mount::Tasks).to receive(:new).and_return(tasks)
101
102
 
103
+ scripts = double('scripts')
104
+ allow(Puppet::FileServing::Mount::Scripts).to receive(:new).and_return(scripts)
105
+
102
106
  Puppet::FileServing::Configuration.configuration
103
107
  end
104
108
 
105
- it "should not allow access from all to modules, plugins, and tasks if the fileserver.conf provided some rules" do
109
+ it "should not allow access from all to modules, plugins, scripts, and tasks if the fileserver.conf provided some rules" do
106
110
  expect(Puppet::FileSystem).to receive(:exist?).and_return(false) # the file doesn't exist
107
111
 
108
112
  modules = double('modules')
@@ -114,15 +118,19 @@ describe Puppet::FileServing::Configuration do
114
118
  tasks = double('tasks')
115
119
  allow(Puppet::FileServing::Mount::Tasks).to receive(:new).and_return(tasks)
116
120
 
121
+ scripts = double('scripts', :empty? => false)
122
+ allow(Puppet::FileServing::Mount::Scripts).to receive(:new).and_return(scripts)
123
+
117
124
  Puppet::FileServing::Configuration.configuration
118
125
  end
119
126
 
120
- it "should add modules, plugins, and tasks mounts even if they are not returned by the parser" do
127
+ it "should add modules, plugins, scripts, and tasks mounts even if they are not returned by the parser" do
121
128
  expect(@parser).to receive(:parse).and_return("one" => double("mount"))
122
129
  expect(Puppet::FileSystem).to receive(:exist?).and_return(true) # the file doesn't exist
123
130
  config = Puppet::FileServing::Configuration.configuration
124
131
  expect(config.mounted?("modules")).to be_truthy
125
132
  expect(config.mounted?("plugins")).to be_truthy
133
+ expect(config.mounted?("scripts")).to be_truthy
126
134
  expect(config.mounted?("tasks")).to be_truthy
127
135
  end
128
136
  end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ require 'puppet/file_serving/mount/scripts'
3
+
4
+ describe Puppet::FileServing::Mount::Scripts do
5
+ before do
6
+ @mount = Puppet::FileServing::Mount::Scripts.new("scripts")
7
+
8
+ @environment = double('environment', :module => nil)
9
+ @request = double('request', :environment => @environment)
10
+ end
11
+
12
+ describe "when finding files" do
13
+ it "should fail if no module is specified" do
14
+ expect { @mount.find("", @request) }.to raise_error(/No module specified/)
15
+ end
16
+
17
+ it "should use the provided environment to find the module" do
18
+ expect(@environment).to receive(:module)
19
+
20
+ @mount.find("foo", @request)
21
+ end
22
+
23
+ it "should treat the first field of the relative path as the module name" do
24
+ expect(@environment).to receive(:module).with("foo")
25
+ @mount.find("foo/bar/baz", @request)
26
+ end
27
+
28
+ it "should return nil if the specified module does not exist" do
29
+ expect(@environment).to receive(:module).with("foo")
30
+ @mount.find("foo/bar/baz", @request)
31
+ end
32
+
33
+ it "should return the file path from the module" do
34
+ mod = double('module')
35
+ expect(mod).to receive(:script).with("bar/baz").and_return("eh")
36
+ expect(@environment).to receive(:module).with("foo").and_return(mod)
37
+ expect(@mount.find("foo/bar/baz", @request)).to eq("eh")
38
+ end
39
+ end
40
+
41
+ describe "when searching for files" do
42
+ it "should fail if no module is specified" do
43
+ expect { @mount.search("", @request) }.to raise_error(/No module specified/)
44
+ end
45
+
46
+ it "should use the node's environment to search the module" do
47
+ expect(@environment).to receive(:module)
48
+
49
+ @mount.search("foo", @request)
50
+ end
51
+
52
+ it "should treat the first field of the relative path as the module name" do
53
+ expect(@environment).to receive(:module).with("foo")
54
+ @mount.search("foo/bar/baz", @request)
55
+ end
56
+
57
+ it "should return nil if the specified module does not exist" do
58
+ expect(@environment).to receive(:module).with("foo").and_return(nil)
59
+ @mount.search("foo/bar/baz", @request)
60
+ end
61
+
62
+ it "should return the script path as an array from the module" do
63
+ mod = double('module')
64
+ expect(mod).to receive(:script).with("bar/baz").and_return("eh")
65
+ expect(@environment).to receive(:module).with("foo").and_return(mod)
66
+ expect(@mount.search("foo/bar/baz", @request)).to eq(["eh"])
67
+ end
68
+ end
69
+ end
@@ -290,6 +290,19 @@ describe "Puppet::FileSystem" do
290
290
  expect(Puppet::FileSystem.read_preserve_line_endings(file)).to eq("file content \r\nsecond line \n")
291
291
  end
292
292
  end
293
+
294
+ it "should ignore leading BOM" do
295
+ with_file_content("\uFEFFfile content \n") do |file|
296
+ expect(Puppet::FileSystem.read_preserve_line_endings(file)).to eq("file content \n")
297
+ end
298
+ end
299
+
300
+ it "should not warn about misusage of BOM with non-UTF encoding" do
301
+ allow(Encoding).to receive(:default_external).and_return(Encoding::US_ASCII)
302
+ with_file_content("file content \n") do |file|
303
+ expect{ Puppet::FileSystem.read_preserve_line_endings(file) }.not_to output(/BOM with non-UTF encoding US-ASCII is nonsense/).to_stderr
304
+ end
305
+ end
293
306
  end
294
307
 
295
308
  context "read without an encoding specified" do
@@ -28,7 +28,7 @@ describe 'the assert_type function' do
28
28
  it 'checks that first argument is a type' do
29
29
  expect do
30
30
  func.call({}, 10, 10)
31
- end.to raise_error(ArgumentError, "'assert_type' expects one of:
31
+ end.to raise_error(ArgumentError, "The function 'assert_type' was called with arguments it does not accept. It expects one of:
32
32
  (Type type, Any value, Callable[Type, Type] block?)
33
33
  rejected: parameter 'type' expects a Type value, got Integer
34
34
  (String type_string, Any value, Callable[Type, Type] block?)