puppet 6.16.0-x64-mingw32 → 6.20.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 (458) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -16
  3. data/Gemfile +6 -2
  4. data/Gemfile.lock +40 -36
  5. data/README.md +3 -4
  6. data/Rakefile +4 -12
  7. data/lib/puppet/agent.rb +2 -2
  8. data/lib/puppet/agent/locker.rb +0 -7
  9. data/lib/puppet/application.rb +10 -6
  10. data/lib/puppet/application/agent.rb +23 -6
  11. data/lib/puppet/application/apply.rb +20 -21
  12. data/lib/puppet/application/device.rb +1 -0
  13. data/lib/puppet/application/doc.rb +1 -1
  14. data/lib/puppet/application/filebucket.rb +2 -2
  15. data/lib/puppet/application/lookup.rb +16 -4
  16. data/lib/puppet/application/script.rb +1 -0
  17. data/lib/puppet/application_support.rb +7 -0
  18. data/lib/puppet/configurer.rb +70 -20
  19. data/lib/puppet/configurer/downloader.rb +31 -10
  20. data/lib/puppet/confine.rb +2 -2
  21. data/lib/puppet/confine/any.rb +1 -1
  22. data/lib/puppet/defaults.rb +113 -46
  23. data/lib/puppet/environments.rb +84 -59
  24. data/lib/puppet/face/catalog.rb +1 -1
  25. data/lib/puppet/face/config.rb +56 -16
  26. data/lib/puppet/face/epp.rb +12 -2
  27. data/lib/puppet/face/facts.rb +60 -0
  28. data/lib/puppet/face/node.rb +3 -3
  29. data/lib/puppet/face/node/clean.rb +2 -2
  30. data/lib/puppet/face/status.rb +1 -1
  31. data/lib/puppet/feature/base.rb +1 -1
  32. data/lib/puppet/ffi/posix.rb +10 -0
  33. data/lib/puppet/ffi/posix/constants.rb +14 -0
  34. data/lib/puppet/ffi/posix/functions.rb +24 -0
  35. data/lib/puppet/file_bucket/dipper.rb +1 -1
  36. data/lib/puppet/file_serving/http_metadata.rb +13 -1
  37. data/lib/puppet/file_serving/metadata.rb +4 -1
  38. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  39. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  40. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  41. data/lib/puppet/file_serving/terminus_selector.rb +7 -8
  42. data/lib/puppet/file_system/file_impl.rb +4 -4
  43. data/lib/puppet/file_system/uniquefile.rb +8 -16
  44. data/lib/puppet/forge.rb +1 -1
  45. data/lib/puppet/forge/cache.rb +1 -1
  46. data/lib/puppet/forge/repository.rb +3 -7
  47. data/lib/puppet/functions/epp.rb +1 -0
  48. data/lib/puppet/functions/inline_epp.rb +1 -0
  49. data/lib/puppet/functions/lstrip.rb +4 -4
  50. data/lib/puppet/functions/new.rb +8 -3
  51. data/lib/puppet/functions/reverse_each.rb +1 -1
  52. data/lib/puppet/functions/rstrip.rb +4 -4
  53. data/lib/puppet/functions/step.rb +1 -1
  54. data/lib/puppet/functions/strip.rb +4 -4
  55. data/lib/puppet/gettext/config.rb +5 -5
  56. data/lib/puppet/gettext/module_translations.rb +4 -4
  57. data/lib/puppet/http.rb +1 -0
  58. data/lib/puppet/http/client.rb +6 -1
  59. data/lib/puppet/http/redirector.rb +9 -7
  60. data/lib/puppet/http/resolver.rb +5 -8
  61. data/lib/puppet/http/resolver/server_list.rb +18 -36
  62. data/lib/puppet/http/resolver/settings.rb +4 -4
  63. data/lib/puppet/http/resolver/srv.rb +5 -5
  64. data/lib/puppet/http/response.rb +19 -0
  65. data/lib/puppet/http/service.rb +3 -1
  66. data/lib/puppet/http/service/compiler.rb +1 -1
  67. data/lib/puppet/http/service/file_server.rb +1 -1
  68. data/lib/puppet/http/service/puppetserver.rb +39 -0
  69. data/lib/puppet/http/session.rb +5 -4
  70. data/lib/puppet/indirector.rb +1 -1
  71. data/lib/puppet/indirector/catalog/compiler.rb +1 -1
  72. data/lib/puppet/indirector/exec.rb +1 -1
  73. data/lib/puppet/indirector/fact_search.rb +60 -0
  74. data/lib/puppet/indirector/facts/facter.rb +3 -3
  75. data/lib/puppet/indirector/facts/json.rb +27 -0
  76. data/lib/puppet/indirector/facts/yaml.rb +4 -59
  77. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  78. data/lib/puppet/indirector/file_metadata/http.rb +25 -5
  79. data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
  80. data/lib/puppet/indirector/hiera.rb +4 -0
  81. data/lib/puppet/indirector/indirection.rb +1 -1
  82. data/lib/puppet/indirector/json.rb +5 -1
  83. data/lib/puppet/indirector/msgpack.rb +1 -1
  84. data/lib/puppet/indirector/node/json.rb +8 -0
  85. data/lib/puppet/indirector/report/json.rb +34 -0
  86. data/lib/puppet/indirector/report/processor.rb +2 -2
  87. data/lib/puppet/indirector/request.rb +5 -5
  88. data/lib/puppet/indirector/yaml.rb +1 -1
  89. data/lib/puppet/module.rb +1 -2
  90. data/lib/puppet/module_tool/applications/installer.rb +48 -2
  91. data/lib/puppet/module_tool/errors/shared.rb +17 -2
  92. data/lib/puppet/network/format_support.rb +2 -2
  93. data/lib/puppet/network/formats.rb +2 -1
  94. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  95. data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
  96. data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
  97. data/lib/puppet/network/http/connection_adapter.rb +6 -4
  98. data/lib/puppet/network/http/route.rb +2 -2
  99. data/lib/puppet/node/environment.rb +12 -5
  100. data/lib/puppet/node/facts.rb +17 -0
  101. data/lib/puppet/pal/pal_impl.rb +90 -13
  102. data/lib/puppet/parameter.rb +1 -1
  103. data/lib/puppet/parser/ast/leaf.rb +7 -6
  104. data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
  105. data/lib/puppet/parser/compiler.rb +1 -1
  106. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  107. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  108. data/lib/puppet/parser/environment_compiler.rb +4 -1
  109. data/lib/puppet/parser/functions.rb +21 -17
  110. data/lib/puppet/parser/functions/create_resources.rb +11 -7
  111. data/lib/puppet/parser/resource.rb +3 -2
  112. data/lib/puppet/parser/resource/param.rb +6 -0
  113. data/lib/puppet/parser/templatewrapper.rb +1 -1
  114. data/lib/puppet/parser/type_loader.rb +2 -2
  115. data/lib/puppet/pops/adaptable.rb +7 -13
  116. data/lib/puppet/pops/adapters.rb +8 -4
  117. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  118. data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
  119. data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -8
  120. data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
  121. data/lib/puppet/pops/issues.rb +5 -0
  122. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
  123. data/lib/puppet/pops/loaders.rb +18 -11
  124. data/lib/puppet/pops/lookup/context.rb +1 -1
  125. data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
  126. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  127. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  128. data/lib/puppet/pops/types/iterable.rb +34 -8
  129. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  130. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  131. data/lib/puppet/pops/validation/checker4_0.rb +29 -15
  132. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  133. data/lib/puppet/provider/file/windows.rb +1 -1
  134. data/lib/puppet/provider/package/apt.rb +38 -0
  135. data/lib/puppet/provider/package/aptitude.rb +1 -1
  136. data/lib/puppet/provider/package/dpkg.rb +1 -1
  137. data/lib/puppet/provider/package/gem.rb +4 -2
  138. data/lib/puppet/provider/package/pip2.rb +17 -0
  139. data/lib/puppet/provider/package/puppet_gem.rb +5 -0
  140. data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
  141. data/lib/puppet/provider/package/yum.rb +2 -1
  142. data/lib/puppet/provider/package/zypper.rb +3 -0
  143. data/lib/puppet/provider/service/windows.rb +23 -7
  144. data/lib/puppet/provider/user/aix.rb +3 -3
  145. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  146. data/lib/puppet/provider/user/useradd.rb +11 -4
  147. data/lib/puppet/provider/user/windows_adsi.rb +18 -1
  148. data/lib/puppet/reference/configuration.rb +6 -5
  149. data/lib/puppet/reports/http.rb +2 -0
  150. data/lib/puppet/resource.rb +2 -1
  151. data/lib/puppet/resource/type.rb +10 -1
  152. data/lib/puppet/rest/route.rb +2 -2
  153. data/lib/puppet/settings.rb +63 -21
  154. data/lib/puppet/settings/alias_setting.rb +37 -0
  155. data/lib/puppet/settings/base_setting.rb +26 -2
  156. data/lib/puppet/ssl/ssl_context.rb +2 -2
  157. data/lib/puppet/ssl/ssl_provider.rb +20 -1
  158. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  159. data/lib/puppet/test/test_helper.rb +18 -13
  160. data/lib/puppet/transaction.rb +2 -2
  161. data/lib/puppet/transaction/persistence.rb +1 -1
  162. data/lib/puppet/transaction/report.rb +12 -8
  163. data/lib/puppet/trusted_external.rb +29 -1
  164. data/lib/puppet/type.rb +15 -7
  165. data/lib/puppet/type/file.rb +40 -15
  166. data/lib/puppet/type/file/checksum.rb +4 -4
  167. data/lib/puppet/type/file/source.rb +32 -12
  168. data/lib/puppet/type/filebucket.rb +1 -1
  169. data/lib/puppet/type/notify.rb +2 -2
  170. data/lib/puppet/type/service.rb +53 -0
  171. data/lib/puppet/type/user.rb +18 -3
  172. data/lib/puppet/util.rb +41 -3
  173. data/lib/puppet/util/autoload.rb +10 -15
  174. data/lib/puppet/util/character_encoding.rb +9 -5
  175. data/lib/puppet/util/checksums.rb +19 -4
  176. data/lib/puppet/util/connection.rb +8 -8
  177. data/lib/puppet/util/execution.rb +2 -2
  178. data/lib/puppet/util/fact_dif.rb +62 -0
  179. data/lib/puppet/util/fileparsing.rb +2 -2
  180. data/lib/puppet/util/posix.rb +54 -5
  181. data/lib/puppet/util/provider_features.rb +1 -1
  182. data/lib/puppet/util/reference.rb +1 -1
  183. data/lib/puppet/util/rubygems.rb +5 -1
  184. data/lib/puppet/util/run_mode.rb +5 -1
  185. data/lib/puppet/util/windows.rb +1 -0
  186. data/lib/puppet/util/windows/api_types.rb +60 -33
  187. data/lib/puppet/util/windows/eventlog.rb +1 -6
  188. data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
  189. data/lib/puppet/util/windows/principal.rb +8 -6
  190. data/lib/puppet/util/windows/registry.rb +11 -11
  191. data/lib/puppet/util/windows/security.rb +4 -4
  192. data/lib/puppet/util/windows/service.rb +43 -26
  193. data/lib/puppet/util/windows/user.rb +242 -8
  194. data/lib/puppet/version.rb +1 -1
  195. data/locales/puppet.pot +501 -443
  196. data/man/man5/puppet.conf.5 +70 -24
  197. data/man/man8/puppet-agent.8 +8 -5
  198. data/man/man8/puppet-apply.8 +2 -2
  199. data/man/man8/puppet-catalog.8 +1 -1
  200. data/man/man8/puppet-config.8 +6 -6
  201. data/man/man8/puppet-describe.8 +1 -1
  202. data/man/man8/puppet-device.8 +2 -2
  203. data/man/man8/puppet-doc.8 +1 -1
  204. data/man/man8/puppet-epp.8 +1 -1
  205. data/man/man8/puppet-facts.8 +32 -1
  206. data/man/man8/puppet-filebucket.8 +3 -3
  207. data/man/man8/puppet-generate.8 +1 -1
  208. data/man/man8/puppet-help.8 +1 -1
  209. data/man/man8/puppet-key.8 +1 -1
  210. data/man/man8/puppet-lookup.8 +2 -2
  211. data/man/man8/puppet-man.8 +1 -1
  212. data/man/man8/puppet-module.8 +1 -1
  213. data/man/man8/puppet-node.8 +7 -4
  214. data/man/man8/puppet-parser.8 +1 -1
  215. data/man/man8/puppet-plugin.8 +1 -1
  216. data/man/man8/puppet-report.8 +4 -1
  217. data/man/man8/puppet-resource.8 +1 -1
  218. data/man/man8/puppet-script.8 +2 -2
  219. data/man/man8/puppet-ssl.8 +1 -1
  220. data/man/man8/puppet-status.8 +2 -2
  221. data/man/man8/puppet.8 +2 -2
  222. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
  223. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
  224. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
  225. data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
  226. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  227. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
  228. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
  229. data/spec/integration/application/agent_spec.rb +263 -54
  230. data/spec/integration/application/apply_spec.rb +168 -149
  231. data/spec/integration/application/doc_spec.rb +16 -6
  232. data/spec/integration/application/filebucket_spec.rb +70 -21
  233. data/spec/integration/application/help_spec.rb +42 -0
  234. data/spec/integration/application/lookup_spec.rb +13 -0
  235. data/spec/integration/application/module_spec.rb +68 -0
  236. data/spec/integration/application/plugin_spec.rb +53 -3
  237. data/spec/integration/configurer_spec.rb +14 -0
  238. data/spec/integration/data_binding_spec.rb +82 -0
  239. data/spec/integration/defaults_spec.rb +20 -3
  240. data/spec/integration/directory_environments_spec.rb +17 -17
  241. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  242. data/spec/integration/indirector/facts/facter_spec.rb +8 -6
  243. data/spec/integration/network/http_pool_spec.rb +26 -9
  244. data/spec/integration/node/environment_spec.rb +1 -1
  245. data/spec/integration/parser/compiler_spec.rb +11 -0
  246. data/spec/integration/resource/type_collection_spec.rb +2 -6
  247. data/spec/integration/transaction_spec.rb +4 -9
  248. data/spec/integration/type/file_spec.rb +1 -1
  249. data/spec/integration/util/execution_spec.rb +22 -0
  250. data/spec/integration/util/windows/adsi_spec.rb +5 -3
  251. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
  252. data/spec/integration/util/windows/process_spec.rb +26 -32
  253. data/spec/integration/util/windows/registry_spec.rb +7 -17
  254. data/spec/integration/util/windows/user_spec.rb +47 -5
  255. data/spec/integration/util_spec.rb +7 -33
  256. data/spec/lib/puppet_spec/matchers.rb +0 -80
  257. data/spec/lib/puppet_spec/puppetserver.rb +8 -0
  258. data/spec/lib/puppet_spec/settings.rb +6 -1
  259. data/spec/shared_contexts/types_setup.rb +2 -0
  260. data/spec/spec_helper.rb +1 -4
  261. data/spec/unit/agent_spec.rb +8 -6
  262. data/spec/unit/application/agent_spec.rb +3 -5
  263. data/spec/unit/application/config_spec.rb +224 -4
  264. data/spec/unit/application/doc_spec.rb +2 -2
  265. data/spec/unit/application/face_base_spec.rb +6 -4
  266. data/spec/unit/application/facts_spec.rb +41 -10
  267. data/spec/unit/application/filebucket_spec.rb +0 -2
  268. data/spec/unit/application/man_spec.rb +52 -0
  269. data/spec/unit/application/resource_spec.rb +3 -1
  270. data/spec/unit/application/ssl_spec.rb +15 -2
  271. data/spec/unit/application_spec.rb +60 -13
  272. data/spec/unit/configurer/downloader_spec.rb +10 -0
  273. data/spec/unit/configurer/fact_handler_spec.rb +4 -4
  274. data/spec/unit/configurer_spec.rb +86 -37
  275. data/spec/unit/confine/feature_spec.rb +1 -1
  276. data/spec/unit/confine_spec.rb +10 -3
  277. data/spec/unit/context/trusted_information_spec.rb +10 -4
  278. data/spec/unit/defaults_spec.rb +20 -1
  279. data/spec/unit/environments_spec.rb +176 -32
  280. data/spec/unit/face/config_spec.rb +65 -12
  281. data/spec/unit/face/node_spec.rb +2 -13
  282. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
  283. data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
  284. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  285. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  286. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  287. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  288. data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
  289. data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
  290. data/spec/unit/file_system/uniquefile_spec.rb +18 -0
  291. data/spec/unit/file_system_spec.rb +1 -2
  292. data/spec/unit/forge/module_release_spec.rb +2 -7
  293. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  294. data/spec/unit/http/client_spec.rb +64 -9
  295. data/spec/unit/http/resolver_spec.rb +24 -5
  296. data/spec/unit/http/response_spec.rb +6 -0
  297. data/spec/unit/http/service/ca_spec.rb +2 -3
  298. data/spec/unit/http/service/compiler_spec.rb +51 -3
  299. data/spec/unit/http/service/file_server_spec.rb +2 -3
  300. data/spec/unit/http/service/puppetserver_spec.rb +82 -0
  301. data/spec/unit/http/service/report_spec.rb +2 -3
  302. data/spec/unit/http/service_spec.rb +1 -2
  303. data/spec/unit/http/session_spec.rb +8 -21
  304. data/spec/unit/indirector/catalog/json_spec.rb +1 -1
  305. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  306. data/spec/unit/indirector/face_spec.rb +0 -1
  307. data/spec/unit/indirector/facts/facter_spec.rb +0 -1
  308. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  309. data/spec/unit/indirector/facts/rest_spec.rb +1 -1
  310. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
  311. data/spec/unit/indirector/file_metadata/http_spec.rb +27 -0
  312. data/spec/unit/indirector/indirection_spec.rb +8 -12
  313. data/spec/unit/indirector/json_spec.rb +8 -8
  314. data/spec/unit/indirector/key/file_spec.rb +0 -1
  315. data/spec/unit/indirector/msgpack_spec.rb +8 -8
  316. data/spec/unit/indirector/node/json_spec.rb +33 -0
  317. data/spec/unit/indirector/node/rest_spec.rb +1 -1
  318. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  319. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  320. data/spec/unit/indirector/request_spec.rb +5 -5
  321. data/spec/unit/indirector/rest_spec.rb +1 -1
  322. data/spec/unit/indirector/status/rest_spec.rb +1 -1
  323. data/spec/unit/indirector/yaml_spec.rb +7 -7
  324. data/spec/unit/indirector_spec.rb +2 -2
  325. data/spec/unit/interface_spec.rb +3 -3
  326. data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
  327. data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
  328. data/spec/unit/network/authconfig_spec.rb +0 -3
  329. data/spec/unit/network/format_support_spec.rb +3 -2
  330. data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -10
  331. data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
  332. data/spec/unit/network/http/connection_spec.rb +42 -32
  333. data/spec/unit/network/http/handler_spec.rb +0 -5
  334. data/spec/unit/node/environment_spec.rb +18 -1
  335. data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
  336. data/spec/unit/parser/compiler_spec.rb +3 -19
  337. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  338. data/spec/unit/parser/resource_spec.rb +14 -8
  339. data/spec/unit/parser/scope_spec.rb +1 -1
  340. data/spec/unit/parser/templatewrapper_spec.rb +4 -3
  341. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
  342. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
  343. data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
  344. data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
  345. data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
  346. data/spec/unit/property_spec.rb +1 -0
  347. data/spec/unit/provider/exec_spec.rb +4 -3
  348. data/spec/unit/provider/nameservice_spec.rb +66 -65
  349. data/spec/unit/provider/package/apt_spec.rb +76 -3
  350. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  351. data/spec/unit/provider/package/base_spec.rb +6 -5
  352. data/spec/unit/provider/package/dpkg_spec.rb +22 -7
  353. data/spec/unit/provider/package/openbsd_spec.rb +2 -0
  354. data/spec/unit/provider/package/pacman_spec.rb +18 -12
  355. data/spec/unit/provider/package/pip2_spec.rb +36 -0
  356. data/spec/unit/provider/package/pip_spec.rb +6 -11
  357. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
  358. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
  359. data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
  360. data/spec/unit/provider/package/yum_spec.rb +31 -0
  361. data/spec/unit/provider/package/zypper_spec.rb +14 -0
  362. data/spec/unit/provider/service/base_spec.rb +2 -4
  363. data/spec/unit/provider/service/bsd_spec.rb +5 -1
  364. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  365. data/spec/unit/provider/service/debian_spec.rb +3 -5
  366. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  367. data/spec/unit/provider/service/gentoo_spec.rb +4 -5
  368. data/spec/unit/provider/service/init_spec.rb +45 -5
  369. data/spec/unit/provider/service/launchd_spec.rb +5 -6
  370. data/spec/unit/provider/service/openrc_spec.rb +4 -5
  371. data/spec/unit/provider/service/openwrt_spec.rb +1 -1
  372. data/spec/unit/provider/service/redhat_spec.rb +1 -1
  373. data/spec/unit/provider/service/runit_spec.rb +2 -1
  374. data/spec/unit/provider/service/smf_spec.rb +1 -1
  375. data/spec/unit/provider/service/src_spec.rb +3 -5
  376. data/spec/unit/provider/service/systemd_spec.rb +3 -6
  377. data/spec/unit/provider/service/upstart_spec.rb +4 -5
  378. data/spec/unit/provider/service/windows_spec.rb +50 -14
  379. data/spec/unit/provider/user/aix_spec.rb +5 -0
  380. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  381. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  382. data/spec/unit/provider/user/pw_spec.rb +2 -0
  383. data/spec/unit/provider/user/useradd_spec.rb +23 -16
  384. data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
  385. data/spec/unit/provider_spec.rb +8 -10
  386. data/spec/unit/puppet_pal_2pec.rb +40 -0
  387. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  388. data/spec/unit/reports/store_spec.rb +17 -13
  389. data/spec/unit/resource/capability_finder_spec.rb +6 -1
  390. data/spec/unit/resource/type_spec.rb +1 -1
  391. data/spec/unit/resource_spec.rb +14 -13
  392. data/spec/unit/rest/route_spec.rb +4 -4
  393. data/spec/unit/settings_spec.rb +576 -239
  394. data/spec/unit/ssl/base_spec.rb +0 -1
  395. data/spec/unit/ssl/host_spec.rb +0 -5
  396. data/spec/unit/ssl/ssl_provider_spec.rb +82 -50
  397. data/spec/unit/test/test_helper_spec.rb +17 -0
  398. data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
  399. data/spec/unit/transaction/event_manager_spec.rb +14 -11
  400. data/spec/unit/transaction/persistence_spec.rb +15 -0
  401. data/spec/unit/transaction/report_spec.rb +3 -1
  402. data/spec/unit/transaction_spec.rb +13 -4
  403. data/spec/unit/type/file/content_spec.rb +0 -1
  404. data/spec/unit/type/file/selinux_spec.rb +0 -2
  405. data/spec/unit/type/file/source_spec.rb +4 -4
  406. data/spec/unit/type/file_spec.rb +122 -102
  407. data/spec/unit/type/filebucket_spec.rb +1 -1
  408. data/spec/unit/type/group_spec.rb +13 -6
  409. data/spec/unit/type/resources_spec.rb +7 -7
  410. data/spec/unit/type/service_spec.rb +210 -1
  411. data/spec/unit/type/tidy_spec.rb +0 -1
  412. data/spec/unit/type/user_spec.rb +31 -2
  413. data/spec/unit/type_spec.rb +52 -2
  414. data/spec/unit/util/at_fork_spec.rb +2 -2
  415. data/spec/unit/util/autoload_spec.rb +5 -1
  416. data/spec/unit/util/backups_spec.rb +1 -2
  417. data/spec/unit/util/character_encoding_spec.rb +4 -4
  418. data/spec/unit/util/checksums_spec.rb +16 -0
  419. data/spec/unit/util/command_line_spec.rb +11 -6
  420. data/spec/unit/util/execution_spec.rb +15 -11
  421. data/spec/unit/util/inifile_spec.rb +6 -14
  422. data/spec/unit/util/log_spec.rb +8 -7
  423. data/spec/unit/util/logging_spec.rb +3 -3
  424. data/spec/unit/util/posix_spec.rb +363 -15
  425. data/spec/unit/util/rubygems_spec.rb +2 -2
  426. data/spec/unit/util/run_mode_spec.rb +6 -6
  427. data/spec/unit/util/selinux_spec.rb +76 -52
  428. data/spec/unit/util/storage_spec.rb +3 -1
  429. data/spec/unit/util/suidmanager_spec.rb +44 -41
  430. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  431. data/spec/unit/util/windows/service_spec.rb +4 -4
  432. data/spec/unit/util_spec.rb +16 -9
  433. data/spec/unit/x509/cert_provider_spec.rb +1 -1
  434. metadata +52 -53
  435. data/spec/integration/faces/config_spec.rb +0 -91
  436. data/spec/integration/faces/documentation_spec.rb +0 -57
  437. data/spec/integration/file_bucket/file_spec.rb +0 -50
  438. data/spec/integration/file_serving/content_spec.rb +0 -7
  439. data/spec/integration/file_serving/fileset_spec.rb +0 -12
  440. data/spec/integration/file_serving/metadata_spec.rb +0 -8
  441. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
  442. data/spec/integration/file_system/uniquefile_spec.rb +0 -26
  443. data/spec/integration/module_tool/forge_spec.rb +0 -51
  444. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  445. data/spec/integration/provider/service/init_spec.rb +0 -48
  446. data/spec/integration/provider/service/systemd_spec.rb +0 -25
  447. data/spec/integration/provider/service/windows_spec.rb +0 -50
  448. data/spec/integration/reference/providers_spec.rb +0 -21
  449. data/spec/integration/reports_spec.rb +0 -13
  450. data/spec/integration/ssl/certificate_request_spec.rb +0 -44
  451. data/spec/integration/ssl/host_spec.rb +0 -72
  452. data/spec/integration/ssl/key_spec.rb +0 -99
  453. data/spec/integration/test/test_helper_spec.rb +0 -31
  454. data/spec/shared_behaviours/file_serving_model.rb +0 -51
  455. data/spec/unit/face/catalog_spec.rb +0 -6
  456. data/spec/unit/face/man_spec.rb +0 -25
  457. data/spec/unit/face/module_spec.rb +0 -3
  458. data/spec/unit/man_spec.rb +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3a7a8d9f5e59c53d78089e8fdc1d61d1ba216fb732406789fb304af9935516a
4
- data.tar.gz: 1a98e05686ec1449d24775a721952199bb252ba3f0eed92bb65938d628577748
3
+ metadata.gz: 55a6f08a7f859bdae79b2d9875f1741e5c4000cd0f6a8ad0a478749763652c72
4
+ data.tar.gz: 15987f0b22c92fa498ff607f3f50a346d1892644101b67f855dd6b7cea1624b5
5
5
  SHA512:
6
- metadata.gz: f631fb0ec5643b5a6d311d31f28e369c147ae9f0f94e75bfffb85ac8e6bea0f80c2d5cfbb272f34da32f54938622b64ffab02d402dc08a7d69674c59277ccf4a
7
- data.tar.gz: 15f5f8fb076ff59fdf6287685caa3c1334609fe7ee109d4b33f297503d34c7a2827a90248d40b7a04dabe9c97e9d658d772e477005d5a11c0ebf0ad6d8457c2a
6
+ metadata.gz: 59466321be99dd978165b3071e6c9d815626d925bed7ce598ebf53739292d23deeeee94180e1bbbffea94bb35e4377589111ebb02a4faf01717d106db2d95066
7
+ data.tar.gz: 779146d13523704e31fd977f43d22fc93e29e5c7750701d1317238d4208b50096ca64358ddefc765f691d2f6f522e6e19f66b4786767364364915ea523075aea
data/CODEOWNERS CHANGED
@@ -1,23 +1,9 @@
1
- # default to platform-core
2
- * @puppetlabs/platform-core @puppetlabs/puppetserver-maintainers
3
-
4
- # Night's Watch
5
- /lib/puppet/type/group @puppetlabs/night-s-watch
6
- /lib/puppet/type/package @puppetlabs/night-s-watch
7
- /lib/puppet/type/service @puppetlabs/night-s-watch
8
- /lib/puppet/type/user @puppetlabs/night-s-watch
9
- /lib/puppet/provider/group @puppetlabs/night-s-watch
10
- /lib/puppet/provider/package @puppetlabs/night-s-watch
11
- /lib/puppet/provider/service @puppetlabs/night-s-watch
12
- /lib/puppet/provider/user @puppetlabs/night-s-watch
1
+ # defaults
2
+ * @puppetlabs/platform-core @puppetlabs/puppetserver-maintainers @puppetlabs/night-s-watch
13
3
 
14
4
  # PAL
15
5
  /lib/puppet/pal @puppetlabs/bolt
16
6
 
17
- # puppet device
18
- /lib/puppet/application/device.rb @puppetlabs/networking
19
- /lib/puppet/util/network_device @puppetlabs/networking
20
-
21
7
  # puppet module
22
8
  /lib/puppet/application/module.rb @puppetlabs/pdk
23
9
  /lib/puppet/face/module @puppetlabs/pdk
data/Gemfile CHANGED
@@ -3,9 +3,9 @@ source ENV['GEM_SOURCE'] || "https://rubygems.org"
3
3
  gemspec
4
4
 
5
5
  def location_for(place, fake_version = nil)
6
- if place =~ /^(git[:@][^#]*)#(.*)/
6
+ if place.is_a?(String) && place =~ /^(git[:@][^#]*)#(.*)/
7
7
  [fake_version, { git: $1, branch: $2, require: false }].compact
8
- elsif place =~ /^file:\/\/(.*)/
8
+ elsif place.is_a?(String) && place =~ /^file:\/\/(.*)/
9
9
  ['>= 0', { path: File.expand_path($1), require: false }]
10
10
  else
11
11
  [place, { require: false }]
@@ -19,6 +19,8 @@ gem "hiera", *location_for(ENV['HIERA_LOCATION']) if ENV.has_key?('HIERA_LOCATIO
19
19
  gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ["~> 1.0"])
20
20
  gem "puppet-resource_api", *location_for(ENV['RESOURCE_API_LOCATION'] || ["~> 1.5"])
21
21
 
22
+ gem "scanf" if RUBY_VERSION.to_f >= 2.7
23
+
22
24
  group(:features) do
23
25
  gem 'diff-lcs', '~> 1.3', require: false
24
26
  gem 'hiera-eyaml', *location_for(ENV['HIERA_EYAML_LOCATION'])
@@ -36,9 +38,11 @@ group(:features) do
36
38
  end
37
39
 
38
40
  group(:test) do
41
+ gem "ffi", require: false
39
42
  gem "json-schema", "~> 2.0", require: false
40
43
  gem "rake", *location_for(ENV['RAKE_LOCATION'] || '~> 12.2')
41
44
  gem "rspec", "~> 3.1", require: false
45
+ gem "rspec-expectations", ["~> 3.9", "!= 3.9.3"]
42
46
  gem "rspec-its", "~> 1.1", require: false
43
47
  gem 'vcr', '~> 5.0', require: false
44
48
  gem 'webmock', '~> 3.0', require: false
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- puppet (6.16.0)
4
+ puppet (6.20.0)
5
5
  CFPropertyList (~> 2.2)
6
6
  concurrent-ruby (~> 1.0)
7
7
  deep_merge (~> 1.0)
@@ -20,19 +20,20 @@ GEM
20
20
  addressable (2.7.0)
21
21
  public_suffix (>= 2.0.2, < 5.0)
22
22
  artifactory (2.8.2)
23
- ast (2.4.0)
24
- coderay (1.1.2)
25
- concurrent-ruby (1.1.6)
26
- crack (0.4.3)
27
- safe_yaml (~> 1.0.0)
23
+ ast (2.4.1)
24
+ coderay (1.1.3)
25
+ concurrent-ruby (1.1.7)
26
+ crack (0.4.5)
27
+ rexml
28
28
  csv (3.1.5)
29
29
  deep_merge (1.2.1)
30
- diff-lcs (1.3)
30
+ diff-lcs (1.4.4)
31
31
  docopt (0.6.1)
32
- facter (4.0.25)
32
+ facter (4.0.49)
33
33
  hocon (~> 1.3)
34
34
  thor (>= 1.0.1, < 2.0)
35
35
  fast_gettext (1.1.2)
36
+ ffi (1.14.2)
36
37
  gettext (3.2.9)
37
38
  locale (>= 2.0.5)
38
39
  text (>= 1.3.0)
@@ -52,58 +53,60 @@ GEM
52
53
  json-schema (2.8.1)
53
54
  addressable (>= 2.4)
54
55
  locale (2.1.3)
55
- memory_profiler (0.9.14)
56
+ memory_profiler (1.0.0)
56
57
  method_source (1.0.0)
57
58
  minitar (0.9)
58
59
  msgpack (1.3.3)
59
- multi_json (1.14.1)
60
+ multi_json (1.15.0)
60
61
  mustache (1.1.1)
61
62
  optimist (3.0.1)
62
- packaging (0.99.61)
63
+ packaging (0.99.75)
63
64
  artifactory (~> 2)
65
+ csv (= 3.1.5)
64
66
  rake (>= 12.3)
65
67
  release-metrics
66
- parallel (1.19.1)
67
- parser (2.7.1.3)
68
- ast (~> 2.4.0)
69
- powerpack (0.1.2)
68
+ parallel (1.20.1)
69
+ parser (2.7.2.0)
70
+ ast (~> 2.4.1)
71
+ powerpack (0.1.3)
70
72
  pry (0.13.1)
71
73
  coderay (~> 1.1)
72
74
  method_source (~> 1.0)
73
- public_suffix (4.0.5)
75
+ public_suffix (4.0.6)
74
76
  puppet-resource_api (1.8.13)
75
77
  hocon (>= 1.0)
76
- puppetserver-ca (1.8.0)
78
+ puppetserver-ca (1.9.1)
77
79
  facter (>= 2.0.1, < 5)
78
80
  racc (1.4.9)
79
81
  rainbow (2.2.2)
80
82
  rake
81
83
  rake (12.3.3)
82
- rdiscount (2.2.0.1)
83
- rdoc (6.2.1)
84
+ rdiscount (2.2.0.2)
85
+ rdoc (6.3.0)
84
86
  release-metrics (1.1.0)
85
87
  csv
86
88
  docopt
89
+ rexml (3.2.4)
87
90
  ronn (0.7.3)
88
91
  hpricot (>= 0.8.2)
89
92
  mustache (>= 0.7.0)
90
93
  rdiscount (>= 1.5.8)
91
- rspec (3.9.0)
92
- rspec-core (~> 3.9.0)
93
- rspec-expectations (~> 3.9.0)
94
- rspec-mocks (~> 3.9.0)
95
- rspec-core (3.9.2)
96
- rspec-support (~> 3.9.3)
97
- rspec-expectations (3.9.2)
94
+ rspec (3.10.0)
95
+ rspec-core (~> 3.10.0)
96
+ rspec-expectations (~> 3.10.0)
97
+ rspec-mocks (~> 3.10.0)
98
+ rspec-core (3.10.1)
99
+ rspec-support (~> 3.10.0)
100
+ rspec-expectations (3.10.1)
98
101
  diff-lcs (>= 1.2.0, < 2.0)
99
- rspec-support (~> 3.9.0)
102
+ rspec-support (~> 3.10.0)
100
103
  rspec-its (1.3.0)
101
104
  rspec-core (>= 3.0.0)
102
105
  rspec-expectations (>= 3.0.0)
103
- rspec-mocks (3.9.1)
106
+ rspec-mocks (3.10.1)
104
107
  diff-lcs (>= 1.2.0, < 2.0)
105
- rspec-support (~> 3.9.0)
106
- rspec-support (3.9.3)
108
+ rspec-support (~> 3.10.0)
109
+ rspec-support (3.10.1)
107
110
  rubocop (0.49.1)
108
111
  parallel (~> 1.10)
109
112
  parser (>= 2.3.3.1, < 3.0)
@@ -113,25 +116,25 @@ GEM
113
116
  unicode-display_width (~> 1.0, >= 1.0.1)
114
117
  rubocop-i18n (1.2.0)
115
118
  rubocop (~> 0.49.0)
116
- ruby-prof (1.4.1)
117
- ruby-progressbar (1.10.1)
118
- safe_yaml (1.0.5)
119
- semantic_puppet (1.0.2)
119
+ ruby-prof (1.4.2)
120
+ ruby-progressbar (1.11.0)
121
+ semantic_puppet (1.0.3)
120
122
  text (1.3.1)
121
123
  thor (1.0.1)
122
124
  unicode-display_width (1.7.0)
123
125
  vcr (5.1.0)
124
- webmock (3.8.3)
126
+ webmock (3.11.1)
125
127
  addressable (>= 2.3.6)
126
128
  crack (>= 0.3.2)
127
129
  hashdiff (>= 0.4.0, < 2.0.0)
128
- yard (0.9.25)
130
+ yard (0.9.26)
129
131
 
130
132
  PLATFORMS
131
133
  ruby
132
134
 
133
135
  DEPENDENCIES
134
136
  diff-lcs (~> 1.3)
137
+ ffi
135
138
  gettext-setup (~> 0.28)
136
139
  hiera-eyaml
137
140
  hocon (~> 1.0)
@@ -149,6 +152,7 @@ DEPENDENCIES
149
152
  rdoc (~> 6.0)
150
153
  ronn (~> 0.7.3)
151
154
  rspec (~> 3.1)
155
+ rspec-expectations (~> 3.9, != 3.9.3)
152
156
  rspec-its (~> 1.1)
153
157
  rubocop (~> 0.49)
154
158
  rubocop-i18n (~> 1.2.0)
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Puppet
2
2
 
3
- [![Travis Status](https://travis-ci.com/puppetlabs/puppet.svg?branch=master)](https://travis-ci.com/puppetlabs/puppet)
4
- [![Appveyor Status](https://ci.appveyor.com/api/projects/status/cvhpypd4504sevqq/branch/master?svg=true)](https://ci.appveyor.com/project/puppetlabs/puppet/branch/master)
3
+ ![RSpec tests](https://github.com/puppetlabs/puppet/workflows/RSpec%20tests/badge.svg)
5
4
  [![Gem Version](https://badge.fury.io/rb/puppet.svg)](https://badge.fury.io/rb/puppet)
6
5
  [![Inline docs](https://inch-ci.org/github/puppetlabs/puppet.svg)](https://inch-ci.org/github/puppetlabs/puppet)
7
6
 
@@ -25,10 +24,10 @@ which also includes orchestration features, a web console, and professional supp
25
24
  The PE documentation is [available here.](https://puppet.com/docs/pe/latest)
26
25
 
27
26
  To install an open source release of Puppet,
28
- [see the installation guide on the docs site.](https://puppet.com/docs/puppet/5.5/install_pre.html)
27
+ [see the installation guide on the docs site.](https://puppet.com/docs/puppet/latest/installing_and_upgrading.html)
29
28
 
30
29
  If you need to run Puppet from source as a tester or developer,
31
- see the [Running Puppet from Source](https://docs.puppet.com/puppet/3.8/from_source.html) guide on the docs site.
30
+ see the [Quick Start to Developing on Puppet](docs/quickstart.md) guide.
32
31
 
33
32
  ## Developing and Contributing
34
33
 
data/Rakefile CHANGED
@@ -61,12 +61,8 @@ end
61
61
  desc "verify that commit messages match CONTRIBUTING.md requirements"
62
62
  task(:commits) do
63
63
  # This rake task looks at the summary from every commit from this branch not
64
- # in the branch targeted for a PR. This is accomplished by using the
65
- # TRAVIS_COMMIT_RANGE environment variable, which is present in travis CI and
66
- # populated with the range of commits the PR contains. If not available, this
67
- # falls back to `master..HEAD` as a next best bet as `master` is unlikely to
68
- # ever be absent.
69
- commit_range = ENV['TRAVIS_COMMIT_RANGE'].nil? ? 'master..HEAD' : ENV['TRAVIS_COMMIT_RANGE'].sub(/\.\.\./, '..')
64
+ # in the branch targeted for a PR.
65
+ commit_range = 'HEAD^..HEAD'
70
66
  puts "Checking commits #{commit_range}"
71
67
  %x{git log --no-merges --pretty=%s #{commit_range}}.each_line do |commit_summary|
72
68
  # This regex tests for the currently supported commit summary tokens: maint, doc, packaging, or pup-<number>.
@@ -91,12 +87,8 @@ end
91
87
 
92
88
  desc "verify that changed files are clean of Ruby warnings"
93
89
  task(:warnings) do
94
- # This rake task looks at all files modified in this branch. This is
95
- # accomplished by using the TRAVIS_COMMIT_RANGE environment variable, which
96
- # is present in travis CI and populated with the range of commits the PR
97
- # contains. If not available, this falls back to `master..HEAD` as a next
98
- # best bet as `master` is unlikely to ever be absent.
99
- commit_range = ENV['TRAVIS_COMMIT_RANGE'].nil? ? 'master...HEAD' : ENV['TRAVIS_COMMIT_RANGE']
90
+ # This rake task looks at all files modified in this branch.
91
+ commit_range = 'HEAD^..HEAD'
100
92
  ruby_files_ok = true
101
93
  puts "Checking modified files #{commit_range}"
102
94
  %x{git diff --diff-filter=ACM --name-only #{commit_range}}.each_line do |modified_file|
@@ -64,10 +64,10 @@ class Puppet::Agent
64
64
  now = Time.now.to_i
65
65
  wait_for_lock_deadline ||= now + Puppet[:maxwaitforlock]
66
66
 
67
- if Puppet[:waitforlock] < 1
67
+ if Puppet[:waitforlock] < 1
68
68
  Puppet.notice _("Run of %{client_class} already in progress; skipping (%{lockfile_path} exists)") % { client_class: client_class, lockfile_path: lockfile_path }
69
69
  nil
70
- elsif now > wait_for_lock_deadline
70
+ elsif now >= wait_for_lock_deadline
71
71
  Puppet.notice _("Exiting now because the maxwaitforlock timeout has been exceeded.")
72
72
  nil
73
73
  else
@@ -27,14 +27,7 @@ module Puppet::Agent::Locker
27
27
  end
28
28
  end
29
29
 
30
- # @deprecated
31
30
  def running?
32
- #TRANSLATORS 'Puppet::Agent::Locker.running?' is a method name and should not be translated
33
- message = _('Puppet::Agent::Locker.running? is deprecated as it is inherently unsafe.')
34
- #TRANSLATORS 'LockError' should not be translated
35
- message += ' ' + _('The only safe way to know if the lock is locked is to try lock and perform some '\
36
- 'action and then handle the LockError that may result.')
37
- Puppet.deprecation_warning(message)
38
31
  lockfile.locked?
39
32
  end
40
33
 
@@ -420,12 +420,16 @@ class Application
420
420
  def handle_logdest_arg(arg)
421
421
  return if arg.nil?
422
422
 
423
- begin
424
- Puppet[:logdest] = arg
425
- Puppet::Util::Log.newdestination(arg)
426
- options[:setdest] = true
427
- rescue => detail
428
- Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
423
+ logdest = arg.split(',').map!(&:strip)
424
+ Puppet[:logdest] = arg
425
+
426
+ logdest.each do |dest|
427
+ begin
428
+ Puppet::Util::Log.newdestination(dest)
429
+ options[:setdest] = true
430
+ rescue => detail
431
+ Puppet.log_and_raise(detail, _("Could not set logdest to %{dest}.") % { dest: arg })
432
+ end
429
433
  end
430
434
  end
431
435
 
@@ -103,7 +103,7 @@ USAGE
103
103
  puppet agent [--certname <NAME>] [-D|--daemonize|--no-daemonize]
104
104
  [-d|--debug] [--detailed-exitcodes] [--digest <DIGEST>] [--disable [MESSAGE]] [--enable]
105
105
  [--fingerprint] [-h|--help] [-l|--logdest syslog|eventlog|<ABS FILEPATH>|console]
106
- [--masterport <PORT>] [--noop] [-o|--onetime] [--sourceaddress <IP_ADDRESS>] [-t|--test]
106
+ [--serverport <PORT>] [--noop] [-o|--onetime] [--sourceaddress <IP_ADDRESS>] [-t|--test]
107
107
  [-v|--verbose] [-V|--version] [-w|--waitforcert <SECONDS>]
108
108
 
109
109
 
@@ -258,13 +258,16 @@ generated by running puppet agent with '--genconfig'.
258
258
 
259
259
  * --job-id:
260
260
  Attach the specified job id to the catalog request and the report used for
261
- this agent run. This option only works when '--onetime' is used.
261
+ this agent run. This option only works when '--onetime' is used. When using
262
+ Puppet Enterprise this flag should not be used as the orchestrator sets the
263
+ job-id for you and it must be unique.
262
264
 
263
265
  * --logdest:
264
266
  Where to send log messages. Choose between 'syslog' (the POSIX syslog
265
267
  service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
266
268
  file. If debugging or verbosity is enabled, this defaults to 'console'.
267
269
  Otherwise, it defaults to 'syslog' on POSIX systems and 'eventlog' on Windows.
270
+ Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
268
271
 
269
272
  A path ending with '.json' will receive structured output in JSON format. The
270
273
  log file will not have an ending ']' automatically written to it due to the
@@ -275,8 +278,9 @@ generated by running puppet agent with '--genconfig'.
275
278
  format.
276
279
 
277
280
  * --masterport:
278
- The port on which to contact the puppet master.
279
- (This is a Puppet setting, and can go in puppet.conf.)
281
+ The port on which to contact the Puppet Server.
282
+ (This is a Puppet setting, and can go in puppet.conf.
283
+ Deprecated in favor of the 'serverport' setting.)
280
284
 
281
285
  * --noop:
282
286
  Use 'noop' mode where the daemon runs in a no-op or dry-run mode. This
@@ -292,6 +296,10 @@ generated by running puppet agent with '--genconfig'.
292
296
  (This is a Puppet setting, and can go in puppet.conf. Note the special 'no-'
293
297
  prefix for boolean settings on the command line.)
294
298
 
299
+ * --serverport:
300
+ The port on which to contact the Puppet Server.
301
+ (This is a Puppet setting, and can go in puppet.conf.)
302
+
295
303
  * --sourceaddress:
296
304
  Set the source IP address for transactions. This defaults to automatically selected.
297
305
  (This is a Puppet setting, and can go in puppet.conf.)
@@ -363,8 +371,17 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
363
371
  daemon.set_signal_traps
364
372
 
365
373
  log_config if Puppet[:daemonize]
366
-
367
- Puppet.override(ssl_context: wait_for_certificates) do
374
+
375
+ # run ssl state machine, waiting if needed
376
+ ssl_context = wait_for_certificates
377
+
378
+ # Each application is responsible for pushing loaders onto the context.
379
+ # Use the current environment that has already been established, though
380
+ # it may change later during the configurer run.
381
+ env = Puppet.lookup(:current_environment)
382
+ Puppet.override(ssl_context: ssl_context,
383
+ current_environment: env,
384
+ loaders: Puppet::Pops::Loaders.new(env, true)) do
368
385
  if Puppet[:onetime]
369
386
  onetime(daemon)
370
387
  else
@@ -113,6 +113,7 @@ configuration options by running puppet with
113
113
  Where to send log messages. Choose between 'syslog' (the POSIX syslog
114
114
  service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
115
115
  file. Defaults to 'console'.
116
+ Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
116
117
 
117
118
  A path ending with '.json' will receive structured output in JSON format. The
118
119
  log file will not have an ending ']' automatically written to it due to the
@@ -190,7 +191,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
190
191
  text = Puppet::FileSystem.read(options[:catalog], :encoding => 'utf-8')
191
192
  end
192
193
  env = Puppet.lookup(:environments).get(Puppet[:environment])
193
- Puppet.override(:current_environment => env, :loaders => Puppet::Pops::Loaders.new(env)) do
194
+ Puppet.override(:current_environment => env, :loaders => create_loaders(env)) do
194
195
  catalog = read_catalog(text)
195
196
  apply_catalog(catalog)
196
197
  end
@@ -204,7 +205,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
204
205
  apply_environment = get_configured_environment(node, manifest)
205
206
 
206
207
  # TRANSLATORS "puppet apply" is a program command and should not be translated
207
- Puppet.override({:current_environment => apply_environment}, _("For puppet apply")) do
208
+ Puppet.override({:current_environment => apply_environment, :loaders => create_loaders(apply_environment)}, _("For puppet apply")) do
208
209
  configure_node_facts(node, facts)
209
210
 
210
211
  # Allow users to load the classes that puppet agent creates.
@@ -235,30 +236,23 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
235
236
  exit(1)
236
237
  end
237
238
 
238
- # Loaders are required when resolving deferred values and at the end
239
- # when apply_catalog is called - it is therefore used around all of the
240
- # required steps as it is expensive to set up loaders twice (once for
241
- # resolution and once for the apply).
242
- #
243
- exit_status = Puppet.override(:loaders => Puppet::Pops::Loaders.new(apply_environment)) do
239
+ # Resolve all deferred values and replace them / mutate the catalog
240
+ Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog, apply_environment)
244
241
 
245
- # Resolve all deferred values and replace them / mutate the catalog
246
- Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog)
242
+ # Translate it to a RAL catalog
243
+ catalog = catalog.to_ral
247
244
 
248
- # Translate it to a RAL catalog
249
- catalog = catalog.to_ral
245
+ catalog.finalize
250
246
 
251
- catalog.finalize
247
+ catalog.retrieval_duration = Time.now - starttime
252
248
 
253
- catalog.retrieval_duration = Time.now - starttime
249
+ if options[:write_catalog_summary]
250
+ catalog.write_class_file
251
+ catalog.write_resource_file
252
+ end
254
253
 
255
- if options[:write_catalog_summary]
256
- catalog.write_class_file
257
- catalog.write_resource_file
258
- end
254
+ exit_status = apply_catalog(catalog)
259
255
 
260
- apply_catalog(catalog)
261
- end
262
256
  if not exit_status
263
257
  exit(1)
264
258
  elsif options[:detailed_exitcodes] then
@@ -313,6 +307,11 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
313
307
 
314
308
  private
315
309
 
310
+ def create_loaders(env)
311
+ # Ignore both 'cached_puppet_lib' and pcore resource type loaders
312
+ Puppet::Pops::Loaders.new(env, false, false)
313
+ end
314
+
316
315
  def read_catalog(text)
317
316
  facts = get_facts()
318
317
  node = get_node()
@@ -332,7 +331,7 @@ Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0 License
332
331
  raise Puppet::Error, _("Could not deserialize catalog from %{format}: %{detail}") % { format: format, detail: detail }, detail.backtrace
333
332
  end
334
333
  # Resolve all deferred values and replace them / mutate the catalog
335
- Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog)
334
+ Puppet::Pops::Evaluator::DeferredResolver.resolve_and_replace(node.facts, catalog, configured_environment)
336
335
 
337
336
  catalog.to_ral
338
337
  end