puppet 7.8.0-x64-mingw32 → 7.12.0-x64-mingw32

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 (379) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +5 -5
  3. data/Gemfile +2 -2
  4. data/Gemfile.lock +15 -15
  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/project_data.yaml +1 -0
  16. data/install.rb +0 -4
  17. data/lib/puppet/application/agent.rb +4 -0
  18. data/lib/puppet/application/apply.rb +20 -2
  19. data/lib/puppet/application/filebucket.rb +1 -0
  20. data/lib/puppet/application/resource.rb +30 -15
  21. data/lib/puppet/application/ssl.rb +1 -0
  22. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  23. data/lib/puppet/configurer.rb +176 -58
  24. data/lib/puppet/confine/variable.rb +1 -1
  25. data/lib/puppet/defaults.rb +67 -29
  26. data/lib/puppet/environments.rb +75 -25
  27. data/lib/puppet/face/help/action.erb +1 -0
  28. data/lib/puppet/face/help/face.erb +1 -0
  29. data/lib/puppet/face/node/clean.rb +1 -1
  30. data/lib/puppet/facter_impl.rb +96 -0
  31. data/lib/puppet/file_serving/configuration/parser.rb +2 -0
  32. data/lib/puppet/file_serving/configuration.rb +2 -0
  33. data/lib/puppet/file_serving/mount/file.rb +4 -4
  34. data/lib/puppet/file_serving/mount/scripts.rb +24 -0
  35. data/lib/puppet/file_system/file_impl.rb +3 -1
  36. data/lib/puppet/file_system/windows.rb +2 -2
  37. data/lib/puppet/file_system.rb +2 -1
  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/evaluator/closure.rb +7 -5
  65. data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
  66. data/lib/puppet/pops/model/ast.rb +1 -0
  67. data/lib/puppet/pops/model/factory.rb +14 -13
  68. data/lib/puppet/pops/parser/egrammar.ra +2 -2
  69. data/lib/puppet/pops/parser/eparser.rb +752 -753
  70. data/lib/puppet/pops/parser/lexer2.rb +69 -68
  71. data/lib/puppet/pops/parser/slurp_support.rb +1 -0
  72. data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
  73. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  74. data/lib/puppet/pops/types/type_formatter.rb +7 -6
  75. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  76. data/lib/puppet/pops/types/types.rb +1 -1
  77. data/lib/puppet/provider/aix_object.rb +1 -1
  78. data/lib/puppet/provider/exec/posix.rb +16 -4
  79. data/lib/puppet/provider/group/groupadd.rb +5 -2
  80. data/lib/puppet/provider/package/pip.rb +15 -3
  81. data/lib/puppet/provider/package/pkg.rb +19 -2
  82. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  83. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  84. data/lib/puppet/provider/package/windows/exe_package.rb +30 -1
  85. data/lib/puppet/provider/package/windows/package.rb +2 -1
  86. data/lib/puppet/provider/package/windows.rb +14 -1
  87. data/lib/puppet/provider/package/yum.rb +1 -1
  88. data/lib/puppet/provider/parsedfile.rb +3 -0
  89. data/lib/puppet/provider/service/base.rb +1 -1
  90. data/lib/puppet/provider/service/init.rb +5 -5
  91. data/lib/puppet/provider/service/launchd.rb +2 -2
  92. data/lib/puppet/provider/service/redhat.rb +1 -1
  93. data/lib/puppet/provider/service/smf.rb +3 -3
  94. data/lib/puppet/provider/service/systemd.rb +2 -2
  95. data/lib/puppet/provider/service/upstart.rb +5 -5
  96. data/lib/puppet/provider/user/aix.rb +44 -1
  97. data/lib/puppet/provider/user/directoryservice.rb +1 -1
  98. data/lib/puppet/provider/user/useradd.rb +72 -16
  99. data/lib/puppet/provider.rb +1 -1
  100. data/lib/puppet/reference/providers.rb +2 -2
  101. data/lib/puppet/resource/type_collection.rb +4 -1
  102. data/lib/puppet/runtime.rb +11 -1
  103. data/lib/puppet/settings/config_file.rb +1 -8
  104. data/lib/puppet/settings/file_setting.rb +3 -8
  105. data/lib/puppet/settings/value_translator.rb +0 -1
  106. data/lib/puppet/settings.rb +32 -9
  107. data/lib/puppet/test/test_helper.rb +4 -1
  108. data/lib/puppet/transaction/persistence.rb +11 -1
  109. data/lib/puppet/transaction/report.rb +15 -1
  110. data/lib/puppet/type/exec.rb +35 -5
  111. data/lib/puppet/type/file/mode.rb +6 -0
  112. data/lib/puppet/type/file.rb +6 -6
  113. data/lib/puppet/type/filebucket.rb +2 -2
  114. data/lib/puppet/type/group.rb +0 -1
  115. data/lib/puppet/type/resources.rb +1 -1
  116. data/lib/puppet/type/service.rb +8 -3
  117. data/lib/puppet/type/tidy.rb +1 -1
  118. data/lib/puppet/type/user.rb +1 -2
  119. data/lib/puppet/type.rb +1 -1
  120. data/lib/puppet/util/autoload.rb +1 -1
  121. data/lib/puppet/util/command_line.rb +1 -1
  122. data/lib/puppet/util/filetype.rb +2 -2
  123. data/lib/puppet/util/json.rb +3 -0
  124. data/lib/puppet/util/log.rb +1 -2
  125. data/lib/puppet/util/logging.rb +1 -25
  126. data/lib/puppet/util/monkey_patches.rb +2 -17
  127. data/lib/puppet/util/pidlock.rb +1 -1
  128. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  129. data/lib/puppet/util/suidmanager.rb +1 -2
  130. data/lib/puppet/util/symbolic_file_mode.rb +29 -17
  131. data/lib/puppet/util/tagging.rb +1 -0
  132. data/lib/puppet/util/windows/sid.rb +3 -1
  133. data/lib/puppet/util/windows/user.rb +0 -1
  134. data/lib/puppet/util.rb +4 -3
  135. data/lib/puppet/version.rb +1 -1
  136. data/lib/puppet/x509/cert_provider.rb +3 -21
  137. data/lib/puppet.rb +5 -9
  138. data/locales/puppet.pot +409 -329
  139. data/man/man5/puppet.conf.5 +73 -25
  140. data/man/man8/puppet-agent.8 +4 -1
  141. data/man/man8/puppet-apply.8 +1 -1
  142. data/man/man8/puppet-catalog.8 +9 -9
  143. data/man/man8/puppet-config.8 +1 -1
  144. data/man/man8/puppet-describe.8 +1 -1
  145. data/man/man8/puppet-device.8 +1 -1
  146. data/man/man8/puppet-doc.8 +1 -1
  147. data/man/man8/puppet-epp.8 +1 -1
  148. data/man/man8/puppet-facts.8 +7 -7
  149. data/man/man8/puppet-filebucket.8 +1 -1
  150. data/man/man8/puppet-generate.8 +1 -1
  151. data/man/man8/puppet-help.8 +1 -1
  152. data/man/man8/puppet-lookup.8 +1 -1
  153. data/man/man8/puppet-module.8 +3 -3
  154. data/man/man8/puppet-node.8 +5 -5
  155. data/man/man8/puppet-parser.8 +1 -1
  156. data/man/man8/puppet-plugin.8 +1 -1
  157. data/man/man8/puppet-report.8 +5 -5
  158. data/man/man8/puppet-resource.8 +1 -1
  159. data/man/man8/puppet-script.8 +1 -1
  160. data/man/man8/puppet-ssl.8 +1 -1
  161. data/man/man8/puppet.8 +2 -2
  162. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
  163. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
  164. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
  165. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
  166. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
  167. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
  168. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
  169. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
  170. data/spec/fixtures/ssl/127.0.0.1-key.pem +106 -106
  171. data/spec/fixtures/ssl/127.0.0.1.pem +48 -48
  172. data/spec/fixtures/ssl/bad-basic-constraints.pem +54 -54
  173. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +51 -51
  174. data/spec/fixtures/ssl/ca.pem +52 -52
  175. data/spec/fixtures/ssl/crl.pem +25 -25
  176. data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
  177. data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
  178. data/spec/fixtures/ssl/ec-key.pem +11 -11
  179. data/spec/fixtures/ssl/ec.pem +32 -32
  180. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  181. data/spec/fixtures/ssl/encrypted-key.pem +107 -107
  182. data/spec/fixtures/ssl/intermediate-agent-crl.pem +25 -25
  183. data/spec/fixtures/ssl/intermediate-agent.pem +54 -54
  184. data/spec/fixtures/ssl/intermediate-crl.pem +28 -28
  185. data/spec/fixtures/ssl/intermediate.pem +51 -51
  186. data/spec/fixtures/ssl/oid-key.pem +117 -0
  187. data/spec/fixtures/ssl/oid.pem +69 -0
  188. data/spec/fixtures/ssl/pluto-key.pem +106 -106
  189. data/spec/fixtures/ssl/pluto.pem +50 -50
  190. data/spec/fixtures/ssl/request-key.pem +106 -106
  191. data/spec/fixtures/ssl/request.pem +45 -45
  192. data/spec/fixtures/ssl/revoked-key.pem +106 -106
  193. data/spec/fixtures/ssl/revoked.pem +49 -49
  194. data/spec/fixtures/ssl/signed-key.pem +106 -106
  195. data/spec/fixtures/ssl/signed.pem +47 -47
  196. data/spec/fixtures/ssl/tampered-cert.pem +49 -49
  197. data/spec/fixtures/ssl/tampered-csr.pem +45 -45
  198. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  199. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +106 -106
  200. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -48
  201. data/spec/fixtures/ssl/unknown-ca-key.pem +106 -106
  202. data/spec/fixtures/ssl/unknown-ca.pem +52 -52
  203. data/spec/integration/application/agent_spec.rb +118 -52
  204. data/spec/integration/application/filebucket_spec.rb +16 -0
  205. data/spec/integration/application/module_spec.rb +21 -0
  206. data/spec/integration/application/resource_spec.rb +35 -1
  207. data/spec/integration/application/ssl_spec.rb +20 -0
  208. data/spec/integration/configurer_spec.rb +18 -2
  209. data/spec/integration/defaults_spec.rb +5 -0
  210. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  211. data/spec/integration/indirector/facts/facter_spec.rb +93 -39
  212. data/spec/integration/l10n/compiler_spec.rb +37 -0
  213. data/spec/integration/transaction/report_spec.rb +1 -1
  214. data/spec/integration/type/exec_spec.rb +70 -45
  215. data/spec/integration/type/file_spec.rb +2 -2
  216. data/spec/integration/type/package_spec.rb +6 -6
  217. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  218. data/spec/integration/util/windows/process_spec.rb +1 -9
  219. data/spec/lib/puppet/test_ca.rb +5 -0
  220. data/spec/lib/puppet_spec/modules.rb +13 -2
  221. data/spec/lib/puppet_spec/puppetserver.rb +15 -0
  222. data/spec/lib/puppet_spec/settings.rb +1 -0
  223. data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
  224. data/spec/shared_contexts/l10n.rb +27 -0
  225. data/spec/spec_helper.rb +1 -10
  226. data/spec/unit/application/apply_spec.rb +76 -56
  227. data/spec/unit/application/resource_spec.rb +29 -0
  228. data/spec/unit/configurer_spec.rb +291 -56
  229. data/spec/unit/environments_spec.rb +184 -0
  230. data/spec/unit/facter_impl_spec.rb +31 -0
  231. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  232. data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
  233. data/spec/unit/file_serving/configuration_spec.rb +12 -4
  234. data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
  235. data/spec/unit/file_system_spec.rb +13 -0
  236. data/spec/unit/functions/assert_type_spec.rb +1 -1
  237. data/spec/unit/functions/empty_spec.rb +10 -0
  238. data/spec/unit/functions/logging_spec.rb +1 -0
  239. data/spec/unit/functions/lookup_spec.rb +87 -0
  240. data/spec/unit/functions/unwrap_spec.rb +8 -0
  241. data/spec/unit/functions4_spec.rb +2 -2
  242. data/spec/unit/http/service/compiler_spec.rb +8 -0
  243. data/spec/unit/indirector/catalog/compiler_spec.rb +87 -0
  244. data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
  245. data/spec/unit/indirector/indirection_spec.rb +10 -3
  246. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  247. data/spec/unit/interface/action_spec.rb +0 -9
  248. data/spec/unit/module_spec.rb +14 -0
  249. data/spec/unit/module_tool/applications/installer_spec.rb +52 -14
  250. data/spec/unit/network/formats_spec.rb +6 -0
  251. data/spec/unit/parser/compiler_spec.rb +29 -0
  252. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  253. data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -9
  254. data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
  255. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
  256. data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
  257. data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
  258. data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
  259. data/spec/unit/provider/package/gem_spec.rb +1 -1
  260. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  261. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  262. data/spec/unit/provider/package/pip_spec.rb +38 -1
  263. data/spec/unit/provider/package/pkg_spec.rb +34 -5
  264. data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
  265. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  266. data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
  267. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  268. data/spec/unit/provider/service/launchd_spec.rb +11 -0
  269. data/spec/unit/provider/service/systemd_spec.rb +1 -1
  270. data/spec/unit/provider/user/aix_spec.rb +100 -0
  271. data/spec/unit/provider/user/directoryservice_spec.rb +1 -1
  272. data/spec/unit/provider/user/useradd_spec.rb +43 -2
  273. data/spec/unit/provider_spec.rb +4 -4
  274. data/spec/unit/puppet_spec.rb +12 -4
  275. data/spec/unit/resource/type_collection_spec.rb +16 -0
  276. data/spec/unit/resource/type_spec.rb +2 -2
  277. data/spec/unit/settings/config_file_spec.rb +1 -11
  278. data/spec/unit/settings/file_setting_spec.rb +10 -7
  279. data/spec/unit/settings/value_translator_spec.rb +4 -5
  280. data/spec/unit/settings_spec.rb +120 -79
  281. data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
  282. data/spec/unit/type/exec_spec.rb +76 -29
  283. data/spec/unit/type/file/source_spec.rb +4 -4
  284. data/spec/unit/type/service_spec.rb +27 -0
  285. data/spec/unit/type/tidy_spec.rb +7 -0
  286. data/spec/unit/type_spec.rb +2 -2
  287. data/spec/unit/util/autoload_spec.rb +25 -8
  288. data/spec/unit/util/ldap/connection_spec.rb +10 -10
  289. data/spec/unit/util/ldap/manager_spec.rb +2 -2
  290. data/spec/unit/util/logging_spec.rb +2 -0
  291. data/spec/unit/util/windows/sid_spec.rb +39 -4
  292. data/spec/unit/util_spec.rb +1 -3
  293. data/spec/unit/x509/cert_provider_spec.rb +9 -1
  294. data/tasks/generate_cert_fixtures.rake +10 -1
  295. data/tasks/parallel.rake +3 -3
  296. metadata +51 -95
  297. data/ext/README.environment +0 -8
  298. data/ext/dbfix.sql +0 -132
  299. data/ext/debian/README.Debian +0 -8
  300. data/ext/debian/README.source +0 -2
  301. data/ext/debian/TODO.Debian +0 -1
  302. data/ext/debian/changelog.erb +0 -1122
  303. data/ext/debian/compat +0 -1
  304. data/ext/debian/control +0 -144
  305. data/ext/debian/copyright +0 -339
  306. data/ext/debian/docs +0 -1
  307. data/ext/debian/fileserver.conf +0 -41
  308. data/ext/debian/puppet-common.dirs +0 -13
  309. data/ext/debian/puppet-common.install +0 -3
  310. data/ext/debian/puppet-common.lintian-overrides +0 -5
  311. data/ext/debian/puppet-common.manpages +0 -28
  312. data/ext/debian/puppet-common.postinst +0 -35
  313. data/ext/debian/puppet-common.postrm +0 -33
  314. data/ext/debian/puppet-el.dirs +0 -1
  315. data/ext/debian/puppet-el.emacsen-install +0 -25
  316. data/ext/debian/puppet-el.emacsen-remove +0 -11
  317. data/ext/debian/puppet-el.emacsen-startup +0 -9
  318. data/ext/debian/puppet-el.install +0 -1
  319. data/ext/debian/puppet-testsuite.install +0 -2
  320. data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
  321. data/ext/debian/puppet.lintian-overrides +0 -3
  322. data/ext/debian/puppet.logrotate +0 -20
  323. data/ext/debian/puppet.postinst +0 -20
  324. data/ext/debian/puppet.postrm +0 -20
  325. data/ext/debian/puppet.preinst +0 -20
  326. data/ext/debian/puppetmaster-common.install +0 -2
  327. data/ext/debian/puppetmaster-common.manpages +0 -2
  328. data/ext/debian/puppetmaster-common.postinst +0 -6
  329. data/ext/debian/puppetmaster-passenger.dirs +0 -4
  330. data/ext/debian/puppetmaster-passenger.postinst +0 -162
  331. data/ext/debian/puppetmaster-passenger.postrm +0 -61
  332. data/ext/debian/puppetmaster.README.debian +0 -17
  333. data/ext/debian/puppetmaster.default +0 -14
  334. data/ext/debian/puppetmaster.init +0 -137
  335. data/ext/debian/puppetmaster.lintian-overrides +0 -3
  336. data/ext/debian/puppetmaster.postinst +0 -20
  337. data/ext/debian/puppetmaster.postrm +0 -5
  338. data/ext/debian/puppetmaster.preinst +0 -22
  339. data/ext/debian/rules +0 -132
  340. data/ext/debian/source/format +0 -1
  341. data/ext/debian/source/options +0 -1
  342. data/ext/debian/vim-puppet.README.Debian +0 -13
  343. data/ext/debian/vim-puppet.dirs +0 -5
  344. data/ext/debian/vim-puppet.yaml +0 -7
  345. data/ext/debian/watch +0 -2
  346. data/ext/freebsd/puppetd +0 -26
  347. data/ext/freebsd/puppetmasterd +0 -26
  348. data/ext/gentoo/conf.d/puppet +0 -5
  349. data/ext/gentoo/conf.d/puppetmaster +0 -12
  350. data/ext/gentoo/init.d/puppet +0 -38
  351. data/ext/gentoo/init.d/puppetmaster +0 -51
  352. data/ext/gentoo/puppet/fileserver.conf +0 -41
  353. data/ext/ips/puppet-agent +0 -44
  354. data/ext/ips/puppet-master +0 -44
  355. data/ext/ips/puppet.p5m.erb +0 -12
  356. data/ext/ips/puppetagent.xml +0 -42
  357. data/ext/ips/puppetmaster.xml +0 -42
  358. data/ext/ips/rules +0 -19
  359. data/ext/ips/transforms +0 -34
  360. data/ext/ldap/puppet.schema +0 -24
  361. data/ext/logcheck/puppet +0 -23
  362. data/ext/osx/file_mapping.yaml +0 -28
  363. data/ext/osx/postflight.erb +0 -109
  364. data/ext/osx/preflight.erb +0 -52
  365. data/ext/osx/prototype.plist.erb +0 -38
  366. data/ext/redhat/fileserver.conf +0 -41
  367. data/ext/redhat/logrotate +0 -21
  368. data/ext/redhat/puppet.spec.erb +0 -841
  369. data/ext/redhat/server.init +0 -128
  370. data/ext/redhat/server.sysconfig +0 -13
  371. data/ext/solaris/pkginfo +0 -6
  372. data/ext/solaris/smf/puppetd.xml +0 -77
  373. data/ext/solaris/smf/puppetmasterd.xml +0 -77
  374. data/ext/solaris/smf/svc-puppetd +0 -71
  375. data/ext/solaris/smf/svc-puppetmasterd +0 -67
  376. data/ext/suse/puppet.spec +0 -310
  377. data/ext/suse/server.init +0 -173
  378. data/ext/yaml_nodes.rb +0 -105
  379. data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -18,6 +18,7 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
18
18
  facts: request.options[:facts_for_catalog],
19
19
  environment: request.environment.to_s,
20
20
  configured_environment: request.options[:configured_environment],
21
+ check_environment: request.options[:check_environment],
21
22
  transaction_uuid: request.options[:transaction_uuid],
22
23
  job_uuid: request.options[:job_id],
23
24
  static_catalog: request.options[:static_catalog],
@@ -20,10 +20,10 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
20
20
 
21
21
  # Lookup a host's facts up in Facter.
22
22
  def find(request)
23
- Facter.reset
23
+ Puppet.runtime[:facter].reset
24
24
 
25
25
  # Note: we need to setup puppet's external search paths before adding the puppetversion
26
- # fact. This is because in Facter 2.x, the first `Facter.add` causes Facter to create
26
+ # fact. This is because in Facter 2.x, the first `Puppet.runtime[:facter].add` causes Facter to create
27
27
  # its directory loaders which cannot be changed, meaning other external facts won't
28
28
  # be resolved. (PUP-4607)
29
29
  self.class.setup_external_search_paths(request)
@@ -36,7 +36,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
36
36
  raise(Puppet::Error, _("puppet facts show requires version 4.0.40 or greater of Facter.")) unless Facter.respond_to?(:resolve)
37
37
  find_with_options(request)
38
38
  else
39
- Puppet::Node::Facts.new(request.key, Facter.to_hash)
39
+ Puppet::Node::Facts.new(request.key, Puppet.runtime[:facter].to_hash)
40
40
  end
41
41
 
42
42
  result.add_local_facts unless request.options[:resolve_options]
@@ -68,7 +68,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
68
68
  true
69
69
  end
70
70
  dirs << request.options[:custom_dir] if request.options[:custom_dir]
71
- Facter.search(*dirs)
71
+ Puppet.runtime[:facter].search(*dirs)
72
72
  end
73
73
 
74
74
  def self.setup_external_search_paths(request)
@@ -90,7 +90,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
90
90
  end
91
91
 
92
92
  dirs << request.options[:external_dir] if request.options[:external_dir]
93
- Facter.search_external dirs
93
+ Puppet.runtime[:facter].search_external dirs
94
94
  end
95
95
 
96
96
  private
@@ -105,6 +105,6 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
105
105
  options_for_facter += " --no-cache" if options[:no_cache] == false
106
106
  options_for_facter += " --timing" if options[:timing]
107
107
 
108
- Puppet::Node::Facts.new(request.key, Facter.resolve(options_for_facter))
108
+ Puppet::Node::Facts.new(request.key, Puppet.runtime[:facter].resolve(options_for_facter))
109
109
  end
110
110
  end
@@ -313,7 +313,7 @@ class Puppet::Indirector::Indirection
313
313
  request = request(:save, key, instance, options)
314
314
  terminus = prepare(request)
315
315
 
316
- result = terminus.save(request)
316
+ result = terminus.save(request) if !request.ignore_terminus?
317
317
 
318
318
  # If caching is enabled, save our document there
319
319
  cache.save(request) if cache? && !request.ignore_cache_save?
@@ -24,7 +24,12 @@ class Puppet::Resource::Ral < Puppet::Indirector::Code
24
24
  type(request).instances.map do |res|
25
25
  res.to_resource
26
26
  end.find_all do |res|
27
- conditions.all? {|property, value| res.to_resource[property].to_s == value.to_s}
27
+ conditions.all? do |property, value|
28
+ # even though `res` is an instance of Puppet::Resource, calling
29
+ # `res[:name]` on it returns nil, and for some reason it is necessary
30
+ # to invoke the Puppet::Resource#copy_as_resource copy constructor...
31
+ res.copy_as_resource[property].to_s == value.to_s
32
+ end
28
33
  end.sort_by(&:title)
29
34
  end
30
35
 
@@ -143,6 +143,10 @@ class Puppet::Indirector::Terminus
143
143
  self.class.name
144
144
  end
145
145
 
146
+ def require_environment?
147
+ true
148
+ end
149
+
146
150
  def allow_remote_requests?
147
151
  true
148
152
  end
@@ -76,6 +76,7 @@ class Puppet::Interface
76
76
  s.text(" ")
77
77
 
78
78
  options.each do |option|
79
+ next if option == :extra
79
80
  option = get_option(option)
80
81
  wrap = option.required? ? %w{ < > } : %w{ [ ] }
81
82
 
@@ -50,7 +50,6 @@ class Puppet::Module
50
50
  RESERVED_DATA_TYPES = %w{any array boolean catalogentry class collection
51
51
  callable data default enum float hash integer numeric optional pattern
52
52
  resource runtime scalar string struct tuple type undef variant}
53
- MOUNTS = %w[lib files plans]
54
53
 
55
54
  def self.is_plan_name?(name)
56
55
  return true if name =~ /^[a-z][a-z0-9_]*$/
@@ -45,7 +45,7 @@ class Puppet::Module
45
45
  end
46
46
 
47
47
  FORBIDDEN_EXTENSIONS = %w{.conf .md}
48
- MOUNTS = %w[lib files tasks]
48
+ MOUNTS = %w[files lib scripts tasks]
49
49
 
50
50
  def self.is_task_name?(name)
51
51
  return true if name =~ /^[a-z][a-z0-9_]*$/
@@ -59,6 +59,10 @@ module Puppet::ModuleTool
59
59
  results = { :action => :install, :module_name => name, :module_version => version }
60
60
 
61
61
  begin
62
+ if !@local_tarball && name !~ /-/
63
+ raise InvalidModuleNameError.new(module_name: @name, suggestion: "puppetlabs-#{@name}", action: :install)
64
+ end
65
+
62
66
  installed_module = installed_modules[name]
63
67
  if installed_module
64
68
  unless forced?
@@ -134,7 +138,7 @@ module Puppet::ModuleTool
134
138
  rescue SemanticPuppet::Dependency::UnsatisfiableGraph => e
135
139
  unsatisfied = nil
136
140
 
137
- if e.respond_to?(:unsatisfied)
141
+ if e.respond_to?(:unsatisfied) && e.unsatisfied
138
142
  constraints = {}
139
143
  # If the module we're installing satisfies all its
140
144
  # dependencies, but would break an already installed
@@ -160,8 +164,12 @@ module Puppet::ModuleTool
160
164
  # If the module fails to satisfy one of its
161
165
  # dependencies, show the unsatisfiable module
162
166
  else
163
- unsatisfied_range = graph.dependencies[name].max.constraints[e.unsatisfied].first[1]
164
- constraints[e.unsatisfied] = unsatisfied_range
167
+ dep_constraints = graph.dependencies[name].max.constraints
168
+
169
+ if dep_constraints.key?(e.unsatisfied)
170
+ unsatisfied_range = dep_constraints[e.unsatisfied].first[1]
171
+ constraints[e.unsatisfied] = unsatisfied_range
172
+ end
165
173
  end
166
174
 
167
175
  installed_module = @environment.module_by_forge_name(e.unsatisfied.tr('-', '/'))
@@ -171,7 +179,7 @@ module Puppet::ModuleTool
171
179
  :name => e.unsatisfied,
172
180
  :constraints => constraints,
173
181
  :current_version => current_version
174
- }
182
+ } if constraints.any?
175
183
  end
176
184
 
177
185
  raise NoVersionsSatisfyError, results.merge(
@@ -89,7 +89,7 @@ module Puppet::ModuleTool
89
89
  mod = @installed.first
90
90
 
91
91
  unless @ignore_changes
92
- raise _("Either the `--ignore_changes` or `--force` argument must be specified to uninstall modules when running in FIPS mode.") if Facter.value(:fips_enabled)
92
+ raise _("Either the `--ignore_changes` or `--force` argument must be specified to uninstall modules when running in FIPS mode.") if Puppet.runtime[:facter].value(:fips_enabled)
93
93
 
94
94
  changes = begin
95
95
  Puppet::ModuleTool::Applications::Checksummer.run(mod.path)
@@ -27,7 +27,7 @@ module Puppet::ModuleTool
27
27
 
28
28
  def run
29
29
  # Disallow anything that invokes md5 to avoid un-friendly termination due to FIPS
30
- raise _("Module upgrade is prohibited in FIPS mode.") if Facter.value(:fips_enabled)
30
+ raise _("Module upgrade is prohibited in FIPS mode.") if Puppet.runtime[:facter].value(:fips_enabled)
31
31
 
32
32
  name = @name.tr('/', '-')
33
33
  version = options[:version] || '>= 0.0.0'
@@ -127,6 +127,23 @@ module Puppet::ModuleTool::Errors
127
127
  end
128
128
  end
129
129
 
130
+ class InvalidModuleNameError < ModuleToolError
131
+ def initialize(options)
132
+ @module_name = options[:module_name]
133
+ @suggestion = options[:suggestion]
134
+ @action = options[:action]
135
+ super _("Could not %{action} '%{module_name}', did you mean '%{suggestion}'?") % { action: @action, module_name: @module_name, suggestion: @suggestion }
136
+ end
137
+
138
+ def multiline
139
+ message = []
140
+ message << _("Could not %{action} module '%{module_name}'") % { action: @action, module_name: @module_name }
141
+ message << _(" The name '%{module_name}' is invalid") % { module_name: @module_name }
142
+ message << _(" Did you mean `puppet module %{action} %{suggestion}`?") % { action: @action, suggestion: @suggestion }
143
+ message.join("\n")
144
+ end
145
+ end
146
+
130
147
  class NotInstalledError < ModuleToolError
131
148
  def initialize(options)
132
149
  @module_name = options[:module_name]
@@ -107,7 +107,7 @@ class Puppet::ModuleTool::Tar::Mini
107
107
  raise Puppet::ModuleTool::Errors::InvalidPathInPackageError, :entry_path => path, :directory => destdir
108
108
  end
109
109
 
110
- path = File.expand_path File.join(destdir, path)
110
+ path = Pathname.new(File.join(destdir, path)).cleanpath.to_path
111
111
 
112
112
  if path !~ /\A#{Regexp.escape destdir}/
113
113
  raise Puppet::ModuleTool::Errors::InvalidPathInPackageError, :entry_path => path, :directory => destdir
@@ -98,7 +98,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
98
98
  params[:environment] = configured_environment
99
99
  end
100
100
 
101
- if configured_environment.nil?
101
+ if configured_environment.nil? && indirection.terminus.require_environment?
102
102
  raise Puppet::Network::HTTP::Error::HTTPNotFoundError.new(
103
103
  _("Could not find environment '%{environment}'") % { environment: environment })
104
104
  end
@@ -312,7 +312,9 @@ class Puppet::Node::Environment
312
312
  {}
313
313
  end
314
314
  modulepath.each do |path|
315
- Dir.entries(path).each do |name|
315
+ Puppet::FileSystem.children(path).map do |p|
316
+ Puppet::FileSystem.basename_string(p)
317
+ end.each do |name|
316
318
  next unless Puppet::Module.is_module_directory?(name, path)
317
319
  warn_about_mistaken_path(path, name)
318
320
  if not seen_modules[name]
@@ -357,9 +359,6 @@ class Puppet::Node::Environment
357
359
 
358
360
  # Modules broken out by directory in the modulepath
359
361
  #
360
- # @note This method _changes_ the current working directory while enumerating
361
- # the modules. This seems rather dangerous.
362
- #
363
362
  # @api public
364
363
  #
365
364
  # @return [Hash<String, Array<Puppet::Module>>] A hash whose keys are file
@@ -368,13 +367,13 @@ class Puppet::Node::Environment
368
367
  modules_by_path = {}
369
368
  modulepath.each do |path|
370
369
  if Puppet::FileSystem.exist?(path)
371
- Dir.chdir(path) do
372
- module_names = Dir.entries(path).select do |name|
373
- Puppet::Module.is_module_directory?(name, path)
374
- end
375
- modules_by_path[path] = module_names.sort.map do |name|
376
- Puppet::Module.new(name, File.join(path, name), self)
377
- end
370
+ module_names = Puppet::FileSystem.children(path).map do |p|
371
+ Puppet::FileSystem.basename_string(p)
372
+ end.select do |name|
373
+ Puppet::Module.is_module_directory?(name, path)
374
+ end
375
+ modules_by_path[path] = module_names.sort.map do |name|
376
+ Puppet::Module.new(name, File.join(path, name), self)
378
377
  end
379
378
  else
380
379
  modules_by_path[path] = []
@@ -415,7 +415,7 @@ module Pal
415
415
 
416
416
  # Puppet requires Facter, which initializes its lookup paths. Reset Facter to
417
417
  # pickup the new $LOAD_PATH.
418
- Facter.reset
418
+ Puppet.runtime[:facter].reset
419
419
 
420
420
  node = Puppet.lookup(:pal_current_node)
421
421
  pal_facts = Puppet.lookup(:pal_facts)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # The scope class, which handles storing and retrieving variables and types and
2
3
  # such.
3
4
  require 'forwardable'
@@ -15,7 +16,7 @@ class Puppet::Parser::Scope
15
16
  extend Forwardable
16
17
 
17
18
  # Variables that always exist with nil value even if not set
18
- BUILT_IN_VARS = ['module_name'.freeze, 'caller_module_name'.freeze].freeze
19
+ BUILT_IN_VARS = ['module_name', 'caller_module_name'].freeze
19
20
  EMPTY_HASH = {}.freeze
20
21
 
21
22
  Puppet::Util.logmethods(self)
@@ -512,7 +513,7 @@ class Puppet::Parser::Scope
512
513
  end
513
514
  end
514
515
 
515
- UNDEFINED_VARIABLES_KIND = 'undefined_variables'.freeze
516
+ UNDEFINED_VARIABLES_KIND = 'undefined_variables'
516
517
 
517
518
  # The exception raised when a throw is uncaught is different in different versions
518
519
  # of ruby. In >=2.2.0 it is UncaughtThrowError (which did not exist prior to this)
@@ -746,12 +747,12 @@ class Puppet::Parser::Scope
746
747
  end
747
748
  private :transform_setting
748
749
 
749
- VARNAME_TRUSTED = 'trusted'.freeze
750
- VARNAME_FACTS = 'facts'.freeze
751
- VARNAME_SERVER_FACTS = 'server_facts'.freeze
750
+ VARNAME_TRUSTED = 'trusted'
751
+ VARNAME_FACTS = 'facts'
752
+ VARNAME_SERVER_FACTS = 'server_facts'
752
753
  RESERVED_VARIABLE_NAMES = [VARNAME_TRUSTED, VARNAME_FACTS].freeze
753
- TYPENAME_CLASS = 'Class'.freeze
754
- TYPENAME_NODE = 'Node'.freeze
754
+ TYPENAME_CLASS = 'Class'
755
+ TYPENAME_NODE = 'Node'
755
756
 
756
757
  # Set a variable in the current scope. This will override settings
757
758
  # in scopes above, but will not allow variables in the current scope
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require_relative '../../puppet/parser/files'
2
3
  require 'erb'
3
4
  require_relative '../../puppet/file_system'
@@ -219,16 +219,15 @@ class Closure < CallableSignature
219
219
  def call_with_scope(scope, args)
220
220
  variable_bindings = combine_values_with_parameters(scope, args)
221
221
 
222
- tc = Types::TypeCalculator.singleton
223
- final_args = tc.infer_set(parameters.reduce([]) do |tmp_args, param|
222
+ final_args = parameters.reduce([]) do |tmp_args, param|
224
223
  if param.captures_rest
225
224
  tmp_args.concat(variable_bindings[param.name])
226
225
  else
227
226
  tmp_args << variable_bindings[param.name]
228
227
  end
229
- end)
228
+ end
230
229
 
231
- if type.callable?(final_args)
230
+ if type.callable_with?(final_args, block_type)
232
231
  result = catch(:next) do
233
232
  @evaluator.evaluate_block_with_bindings(scope, variable_bindings, @model.body)
234
233
  end
@@ -236,7 +235,9 @@ class Closure < CallableSignature
236
235
  "value returned from #{closure_name}"
237
236
  end
238
237
  else
239
- raise ArgumentError, Types::TypeMismatchDescriber.describe_signatures(closure_name, [self], final_args)
238
+ tc = Types::TypeCalculator.singleton
239
+ args_type = tc.infer_set(final_args)
240
+ raise ArgumentError, Types::TypeMismatchDescriber.describe_signatures(closure_name, [self], args_type)
240
241
  end
241
242
  end
242
243
 
@@ -309,6 +310,7 @@ class Closure < CallableSignature
309
310
  to += param_range[1]
310
311
  end
311
312
  param_types = Types::PTupleType.new(types, Types::PIntegerType.new(from, to))
313
+ # The block_type for a Closure is always nil for now, see comment in block_name above
312
314
  Types::PCallableType.new(param_types, nil, return_type)
313
315
  end
314
316
 
@@ -292,7 +292,8 @@ class LookupAdapter < DataAdapter
292
292
  PROVIDER_STACK = [:lookup_global, :lookup_in_environment, :lookup_in_module].freeze
293
293
 
294
294
  def validate_lookup_options(options, module_name)
295
- raise Puppet::DataBinding::LookupError.new(_("value of %{opts} must be a hash") % { opts: LOOKUP_OPTIONS }) unless options.is_a?(Hash) unless options.nil?
295
+ return nil if options.nil?
296
+ raise Puppet::DataBinding::LookupError.new(_("value of %{opts} must be a hash") % { opts: LOOKUP_OPTIONS }) unless options.is_a?(Hash)
296
297
  return options if module_name.nil?
297
298
 
298
299
  pfx = "#{module_name}::"
@@ -352,7 +353,7 @@ class LookupAdapter < DataAdapter
352
353
  module_opts = validate_lookup_options(lookup_in_module(LookupKey::LOOKUP_OPTIONS, meta_invocation, merge_strategy), module_name)
353
354
  opts = if opts.nil?
354
355
  module_opts
355
- else
356
+ elsif module_opts
356
357
  merge_strategy.lookup([GLOBAL_ENV_MERGE, "Module #{lookup_invocation.module_name}"], meta_invocation) do |n|
357
358
  meta_invocation.with(:scope, n) { meta_invocation.report_found(LOOKUP_OPTIONS, n == GLOBAL_ENV_MERGE ? opts : module_opts) }
358
359
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # # Generated by Puppet::Pops::Types::RubyGenerator from TypeSet Puppet::AST on -4712-01-01
2
3
 
3
4
  module Puppet
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Factory is a helper class that makes construction of a Pops Model
2
3
  # much more convenient. It can be viewed as a small internal DSL for model
3
4
  # constructions.
@@ -11,19 +12,19 @@ module Model
11
12
  class Factory
12
13
  # Shared build_visitor, since there are many instances of Factory being used
13
14
 
14
- KEY_LENGTH = 'length'.freeze
15
- KEY_OFFSET = 'offset'.freeze
16
- KEY_LOCATOR = 'locator'.freeze
17
- KEY_OPERATOR = 'operator'.freeze
15
+ KEY_LENGTH = 'length'
16
+ KEY_OFFSET = 'offset'
17
+ KEY_LOCATOR = 'locator'
18
+ KEY_OPERATOR = 'operator'
18
19
 
19
- KEY_VALUE = 'value'.freeze
20
- KEY_KEYS = 'keys'.freeze
21
- KEY_NAME = 'name'.freeze
22
- KEY_BODY = 'body'.freeze
23
- KEY_EXPR = 'expr'.freeze
24
- KEY_LEFT_EXPR = 'left_expr'.freeze
25
- KEY_RIGHT_EXPR = 'right_expr'.freeze
26
- KEY_PARAMETERS = 'parameters'.freeze
20
+ KEY_VALUE = 'value'
21
+ KEY_KEYS = 'keys'
22
+ KEY_NAME = 'name'
23
+ KEY_BODY = 'body'
24
+ KEY_EXPR = 'expr'
25
+ KEY_LEFT_EXPR = 'left_expr'
26
+ KEY_RIGHT_EXPR = 'right_expr'
27
+ KEY_PARAMETERS = 'parameters'
27
28
 
28
29
  BUILD_VISITOR = Visitor.new(self, 'build')
29
30
  INFER_VISITOR = Visitor.new(self, 'infer')
@@ -1111,7 +1112,7 @@ class Factory
1111
1112
  end
1112
1113
 
1113
1114
  def self.concat(*args)
1114
- result = ''
1115
+ result = ''.dup
1115
1116
  args.each do |e|
1116
1117
  if e.instance_of?(Factory) && e.model_class <= LiteralString
1117
1118
  result << e[KEY_VALUE]
@@ -870,8 +870,8 @@ nil
870
870
  end
871
871
 
872
872
  ---- header ----
873
- require 'puppet'
874
- require 'puppet/pops'
873
+ require_relative '../../../puppet'
874
+ require_relative '../../../puppet/pops'
875
875
 
876
876
  module Puppet
877
877
  class ParseError < Puppet::Error; end