puppet 5.3.4 → 6.29.0

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 (2105) hide show
  1. checksums.yaml +7 -0
  2. data/CODEOWNERS +11 -0
  3. data/CODE_OF_CONDUCT.md +70 -0
  4. data/CONTRIBUTING.md +59 -55
  5. data/Gemfile +52 -70
  6. data/Gemfile.lock +251 -0
  7. data/Guardfile.example +76 -0
  8. data/LICENSE +189 -4
  9. data/README.md +31 -37
  10. data/Rakefile +53 -52
  11. data/conf/auth.conf +7 -2
  12. data/conf/environment.conf +1 -1
  13. data/conf/fileserver.conf +1 -1
  14. data/conf/puppet.conf +4 -4
  15. data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
  16. data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
  17. data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
  18. data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
  19. data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
  20. data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
  21. data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +19 -20
  22. data/{ext → examples}/nagios/check_puppet.rb +2 -2
  23. data/ext/README.md +13 -0
  24. data/ext/build_defaults.yaml +1 -2
  25. data/ext/hiera/hiera.yaml +1 -1
  26. data/ext/osx/puppet.plist +2 -0
  27. data/ext/project_data.yaml +16 -12
  28. data/ext/redhat/client.init +2 -2
  29. data/ext/solaris/smf/puppet +11 -11
  30. data/ext/solaris/smf/puppet.xml +2 -0
  31. data/ext/windows/service/daemon.rb +40 -10
  32. data/install.rb +8 -27
  33. data/lib/hiera/puppet_function.rb +1 -1
  34. data/lib/hiera/scope.rb +31 -2
  35. data/lib/hiera_puppet.rb +2 -1
  36. data/lib/puppet/agent/locker.rb +0 -7
  37. data/lib/puppet/agent.rb +68 -26
  38. data/lib/puppet/application/agent.rb +107 -59
  39. data/lib/puppet/application/apply.rb +144 -74
  40. data/lib/puppet/application/cert.rb +27 -285
  41. data/lib/puppet/application/describe.rb +10 -15
  42. data/lib/puppet/application/device.rb +241 -89
  43. data/lib/puppet/application/doc.rb +8 -5
  44. data/lib/puppet/application/face_base.rb +23 -16
  45. data/lib/puppet/application/facts.rb +5 -0
  46. data/lib/puppet/application/filebucket.rb +51 -16
  47. data/lib/puppet/application/lookup.rb +92 -20
  48. data/lib/puppet/application/plugin.rb +1 -0
  49. data/lib/puppet/application/resource.rb +39 -23
  50. data/lib/puppet/application/script.rb +264 -0
  51. data/lib/puppet/application/ssl.rb +288 -0
  52. data/lib/puppet/application.rb +25 -9
  53. data/lib/puppet/application_support.rb +9 -3
  54. data/lib/puppet/concurrent/lock.rb +16 -0
  55. data/lib/puppet/concurrent/synchronized.rb +15 -0
  56. data/lib/puppet/concurrent/thread_local_singleton.rb +17 -0
  57. data/lib/puppet/concurrent.rb +2 -0
  58. data/lib/puppet/configurer/downloader.rb +36 -18
  59. data/lib/puppet/configurer/fact_handler.rb +5 -1
  60. data/lib/puppet/configurer/plugin_handler.rb +36 -11
  61. data/lib/puppet/configurer.rb +367 -152
  62. data/lib/puppet/confine/any.rb +1 -1
  63. data/lib/puppet/confine/boolean.rb +45 -0
  64. data/lib/puppet/confine/false.rb +7 -1
  65. data/lib/puppet/confine/true.rb +7 -1
  66. data/lib/puppet/confine/variable.rb +1 -1
  67. data/lib/puppet/confine.rb +6 -3
  68. data/lib/puppet/confine_collection.rb +2 -1
  69. data/lib/puppet/context/trusted_information.rb +48 -4
  70. data/lib/puppet/context.rb +120 -48
  71. data/lib/puppet/daemon.rb +17 -30
  72. data/lib/puppet/datatypes/error.rb +21 -0
  73. data/lib/puppet/datatypes/impl/error.rb +40 -0
  74. data/lib/puppet/datatypes.rb +213 -0
  75. data/lib/puppet/defaults.rb +651 -371
  76. data/lib/puppet/environments.rb +218 -105
  77. data/lib/puppet/error.rb +52 -4
  78. data/lib/puppet/etc.rb +26 -7
  79. data/lib/puppet/external/dot.rb +23 -24
  80. data/lib/puppet/external/pson/pure/generator.rb +1 -1
  81. data/lib/puppet/external/pson/pure/parser.rb +3 -2
  82. data/lib/puppet/face/catalog.rb +20 -1
  83. data/lib/puppet/face/config.rb +167 -32
  84. data/lib/puppet/face/epp.rb +52 -15
  85. data/lib/puppet/face/facts.rb +210 -0
  86. data/lib/puppet/face/generate.rb +2 -0
  87. data/lib/puppet/face/help/action.erb +5 -1
  88. data/lib/puppet/face/help/face.erb +2 -1
  89. data/lib/puppet/face/help/global.erb +2 -2
  90. data/lib/puppet/face/help/man.erb +1 -1
  91. data/lib/puppet/face/help.rb +80 -41
  92. data/lib/puppet/face/key.rb +1 -1
  93. data/lib/puppet/face/man.rb +55 -12
  94. data/lib/puppet/face/module/build.rb +5 -54
  95. data/lib/puppet/face/module/changes.rb +2 -1
  96. data/lib/puppet/face/module/generate.rb +6 -243
  97. data/lib/puppet/face/module/install.rb +1 -4
  98. data/lib/puppet/face/module/list.rb +5 -10
  99. data/lib/puppet/face/module/search.rb +13 -4
  100. data/lib/puppet/face/module/uninstall.rb +2 -5
  101. data/lib/puppet/face/module/upgrade.rb +2 -5
  102. data/lib/puppet/face/node/clean.rb +26 -12
  103. data/lib/puppet/face/node.rb +3 -3
  104. data/lib/puppet/face/parser.rb +78 -12
  105. data/lib/puppet/face/plugin.rb +9 -4
  106. data/lib/puppet/face/status.rb +3 -3
  107. data/lib/puppet/facter_impl.rb +96 -0
  108. data/lib/puppet/feature/base.rb +9 -28
  109. data/lib/puppet/feature/bolt.rb +3 -0
  110. data/lib/puppet/feature/eventlog.rb +1 -1
  111. data/lib/puppet/ffi/posix/constants.rb +14 -0
  112. data/lib/puppet/ffi/posix/functions.rb +24 -0
  113. data/lib/puppet/ffi/posix.rb +10 -0
  114. data/lib/puppet/file_bucket/dipper.rb +5 -5
  115. data/lib/puppet/file_bucket/file.rb +0 -2
  116. data/lib/puppet/file_serving/base.rb +16 -16
  117. data/lib/puppet/file_serving/configuration/parser.rb +2 -0
  118. data/lib/puppet/file_serving/configuration.rb +5 -1
  119. data/lib/puppet/file_serving/fileset.rb +17 -5
  120. data/lib/puppet/file_serving/http_metadata.rb +19 -5
  121. data/lib/puppet/file_serving/metadata.rb +12 -4
  122. data/lib/puppet/file_serving/mount/file.rb +6 -5
  123. data/lib/puppet/file_serving/mount/locales.rb +3 -3
  124. data/lib/puppet/file_serving/mount/modules.rb +4 -2
  125. data/lib/puppet/file_serving/mount/pluginfacts.rb +3 -3
  126. data/lib/puppet/file_serving/mount/plugins.rb +3 -3
  127. data/lib/puppet/file_serving/mount/scripts.rb +24 -0
  128. data/lib/puppet/file_serving/mount/tasks.rb +4 -2
  129. data/lib/puppet/file_serving/terminus_selector.rb +7 -8
  130. data/lib/puppet/file_system/file_impl.rb +45 -11
  131. data/lib/puppet/file_system/jruby.rb +23 -0
  132. data/lib/puppet/file_system/memory_file.rb +15 -2
  133. data/lib/puppet/file_system/memory_impl.rb +13 -0
  134. data/lib/puppet/file_system/posix.rb +3 -2
  135. data/lib/puppet/file_system/uniquefile.rb +15 -17
  136. data/lib/puppet/file_system/windows.rb +85 -2
  137. data/lib/puppet/file_system.rb +29 -15
  138. data/lib/puppet/forge/cache.rb +1 -1
  139. data/lib/puppet/forge/errors.rb +5 -5
  140. data/lib/puppet/forge/repository.rb +28 -87
  141. data/lib/puppet/forge.rb +45 -22
  142. data/lib/puppet/functions/abs.rb +61 -0
  143. data/lib/puppet/functions/alert.rb +1 -1
  144. data/lib/puppet/functions/all.rb +15 -11
  145. data/lib/puppet/functions/annotate.rb +11 -11
  146. data/lib/puppet/functions/any.rb +15 -11
  147. data/lib/puppet/functions/assert_type.rb +7 -7
  148. data/lib/puppet/functions/binary_file.rb +14 -2
  149. data/lib/puppet/functions/break.rb +34 -9
  150. data/lib/puppet/functions/call.rb +43 -5
  151. data/lib/puppet/functions/camelcase.rb +62 -0
  152. data/lib/puppet/functions/capitalize.rb +61 -0
  153. data/lib/puppet/functions/ceiling.rb +37 -0
  154. data/lib/puppet/functions/chomp.rb +57 -0
  155. data/lib/puppet/functions/chop.rb +67 -0
  156. data/lib/puppet/functions/compare.rb +125 -0
  157. data/lib/puppet/functions/contain.rb +25 -3
  158. data/lib/puppet/functions/convert_to.rb +34 -0
  159. data/lib/puppet/functions/crit.rb +1 -1
  160. data/lib/puppet/functions/debug.rb +1 -1
  161. data/lib/puppet/functions/defined.rb +11 -12
  162. data/lib/puppet/functions/dig.rb +47 -3
  163. data/lib/puppet/functions/downcase.rb +89 -0
  164. data/lib/puppet/functions/each.rb +20 -16
  165. data/lib/puppet/functions/emerg.rb +1 -1
  166. data/lib/puppet/functions/empty.rb +85 -0
  167. data/lib/puppet/functions/epp.rb +5 -4
  168. data/lib/puppet/functions/err.rb +1 -1
  169. data/lib/puppet/functions/eyaml_lookup_key.rb +21 -15
  170. data/lib/puppet/functions/filter.rb +31 -23
  171. data/lib/puppet/functions/find_file.rb +15 -2
  172. data/lib/puppet/functions/find_template.rb +63 -0
  173. data/lib/puppet/functions/flatten.rb +64 -0
  174. data/lib/puppet/functions/floor.rb +37 -0
  175. data/lib/puppet/functions/get.rb +150 -0
  176. data/lib/puppet/functions/getvar.rb +87 -0
  177. data/lib/puppet/functions/group_by.rb +62 -0
  178. data/lib/puppet/functions/hiera.rb +11 -11
  179. data/lib/puppet/functions/hiera_array.rb +11 -11
  180. data/lib/puppet/functions/hiera_hash.rb +12 -12
  181. data/lib/puppet/functions/hiera_include.rb +15 -15
  182. data/lib/puppet/functions/hocon_data.rb +1 -1
  183. data/lib/puppet/functions/include.rb +34 -2
  184. data/lib/puppet/functions/index.rb +167 -0
  185. data/lib/puppet/functions/info.rb +1 -1
  186. data/lib/puppet/functions/inline_epp.rb +8 -7
  187. data/lib/puppet/functions/join.rb +56 -0
  188. data/lib/puppet/functions/json_data.rb +3 -3
  189. data/lib/puppet/functions/keys.rb +25 -0
  190. data/lib/puppet/functions/length.rb +44 -0
  191. data/lib/puppet/functions/lest.rb +39 -1
  192. data/lib/puppet/functions/lookup.rb +3 -2
  193. data/lib/puppet/functions/lstrip.rb +58 -0
  194. data/lib/puppet/functions/map.rb +22 -18
  195. data/lib/puppet/functions/match.rb +19 -9
  196. data/lib/puppet/functions/max.rb +183 -0
  197. data/lib/puppet/functions/min.rb +182 -0
  198. data/lib/puppet/functions/module_directory.rb +41 -0
  199. data/lib/puppet/functions/new.rb +987 -8
  200. data/lib/puppet/functions/next.rb +20 -10
  201. data/lib/puppet/functions/notice.rb +1 -1
  202. data/lib/puppet/functions/partition.rb +62 -0
  203. data/lib/puppet/functions/reduce.rb +9 -11
  204. data/lib/puppet/functions/regsubst.rb +60 -35
  205. data/lib/puppet/functions/require.rb +42 -2
  206. data/lib/puppet/functions/return.rb +2 -9
  207. data/lib/puppet/functions/reverse_each.rb +72 -3
  208. data/lib/puppet/functions/round.rb +24 -0
  209. data/lib/puppet/functions/rstrip.rb +58 -0
  210. data/lib/puppet/functions/size.rb +15 -0
  211. data/lib/puppet/functions/slice.rb +23 -9
  212. data/lib/puppet/functions/sort.rb +74 -0
  213. data/lib/puppet/functions/split.rb +12 -10
  214. data/lib/puppet/functions/step.rb +74 -2
  215. data/lib/puppet/functions/strftime.rb +179 -10
  216. data/lib/puppet/functions/strip.rb +58 -0
  217. data/lib/puppet/functions/then.rb +65 -2
  218. data/lib/puppet/functions/tree_each.rb +32 -35
  219. data/lib/puppet/functions/type.rb +42 -1
  220. data/lib/puppet/functions/unique.rb +13 -13
  221. data/lib/puppet/functions/unwrap.rb +25 -6
  222. data/lib/puppet/functions/upcase.rb +89 -0
  223. data/lib/puppet/functions/values.rb +25 -0
  224. data/lib/puppet/functions/versioncmp.rb +7 -3
  225. data/lib/puppet/functions/warning.rb +1 -1
  226. data/lib/puppet/functions/with.rb +9 -7
  227. data/lib/puppet/functions/yaml_data.rb +11 -9
  228. data/lib/puppet/functions.rb +208 -91
  229. data/lib/puppet/generate/type.rb +12 -2
  230. data/lib/puppet/gettext/config.rb +31 -8
  231. data/lib/puppet/gettext/module_translations.rb +5 -5
  232. data/lib/puppet/gettext/stubs.rb +1 -1
  233. data/lib/puppet/graph/rb_tree_map.rb +2 -2
  234. data/lib/puppet/graph/relationship_graph.rb +2 -1
  235. data/lib/puppet/graph/simple_graph.rb +16 -10
  236. data/lib/puppet/graph.rb +0 -2
  237. data/lib/puppet/http/client.rb +468 -0
  238. data/lib/puppet/http/errors.rb +32 -0
  239. data/lib/puppet/http/external_client.rb +90 -0
  240. data/lib/puppet/http/redirector.rb +89 -0
  241. data/lib/puppet/http/resolver/server_list.rb +91 -0
  242. data/lib/puppet/http/resolver/settings.rb +26 -0
  243. data/lib/puppet/http/resolver/srv.rb +45 -0
  244. data/lib/puppet/http/resolver.rb +58 -0
  245. data/lib/puppet/http/response.rb +120 -0
  246. data/lib/puppet/http/retry_after_handler.rb +86 -0
  247. data/lib/puppet/http/service/ca.rb +112 -0
  248. data/lib/puppet/http/service/compiler.rb +393 -0
  249. data/lib/puppet/http/service/file_server.rb +207 -0
  250. data/lib/puppet/http/service/puppetserver.rb +39 -0
  251. data/lib/puppet/http/service/report.rb +66 -0
  252. data/lib/puppet/http/service.rb +196 -0
  253. data/lib/puppet/http/session.rb +131 -0
  254. data/lib/puppet/http.rb +37 -0
  255. data/lib/puppet/indirector/catalog/compiler.rb +60 -22
  256. data/lib/puppet/indirector/catalog/json.rb +14 -3
  257. data/lib/puppet/indirector/catalog/rest.rb +35 -0
  258. data/lib/puppet/indirector/catalog/yaml.rb +0 -16
  259. data/lib/puppet/indirector/certificate/file.rb +1 -1
  260. data/lib/puppet/indirector/certificate/rest.rb +3 -1
  261. data/lib/puppet/indirector/certificate_request/file.rb +1 -0
  262. data/lib/puppet/indirector/certificate_request/memory.rb +1 -0
  263. data/lib/puppet/indirector/certificate_request/rest.rb +1 -0
  264. data/lib/puppet/indirector/exec.rb +1 -1
  265. data/lib/puppet/indirector/face.rb +2 -2
  266. data/lib/puppet/indirector/fact_search.rb +60 -0
  267. data/lib/puppet/indirector/facts/facter.rb +31 -12
  268. data/lib/puppet/indirector/facts/json.rb +27 -0
  269. data/lib/puppet/indirector/facts/rest.rb +63 -0
  270. data/lib/puppet/indirector/facts/yaml.rb +7 -64
  271. data/lib/puppet/indirector/file_bucket_file/file.rb +7 -3
  272. data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
  273. data/lib/puppet/indirector/file_content/http.rb +8 -1
  274. data/lib/puppet/indirector/file_content/rest.rb +30 -0
  275. data/lib/puppet/indirector/file_metadata/http.rb +28 -8
  276. data/lib/puppet/indirector/file_metadata/rest.rb +53 -0
  277. data/lib/puppet/indirector/file_server.rb +5 -3
  278. data/lib/puppet/indirector/hiera.rb +6 -0
  279. data/lib/puppet/indirector/indirection.rb +59 -31
  280. data/lib/puppet/indirector/json.rb +6 -2
  281. data/lib/puppet/indirector/key/file.rb +2 -6
  282. data/lib/puppet/indirector/key/memory.rb +1 -0
  283. data/lib/puppet/indirector/msgpack.rb +2 -2
  284. data/lib/puppet/indirector/node/exec.rb +4 -5
  285. data/lib/puppet/indirector/node/json.rb +8 -0
  286. data/lib/puppet/indirector/node/rest.rb +24 -0
  287. data/lib/puppet/indirector/node/yaml.rb +0 -6
  288. data/lib/puppet/indirector/report/json.rb +34 -0
  289. data/lib/puppet/indirector/report/processor.rb +4 -3
  290. data/lib/puppet/indirector/report/rest.rb +19 -0
  291. data/lib/puppet/indirector/report/yaml.rb +23 -0
  292. data/lib/puppet/indirector/request.rb +49 -28
  293. data/lib/puppet/indirector/resource/ral.rb +7 -4
  294. data/lib/puppet/indirector/resource/validator.rb +1 -1
  295. data/lib/puppet/indirector/rest.rb +30 -66
  296. data/lib/puppet/indirector/ssl_file.rb +13 -52
  297. data/lib/puppet/indirector/status/rest.rb +18 -0
  298. data/lib/puppet/indirector/terminus.rb +11 -4
  299. data/lib/puppet/indirector/yaml.rb +5 -5
  300. data/lib/puppet/indirector.rb +3 -3
  301. data/lib/puppet/info_service/class_information_service.rb +1 -1
  302. data/lib/puppet/info_service/plan_information_service.rb +36 -0
  303. data/lib/puppet/info_service/task_information_service.rb +7 -3
  304. data/lib/puppet/info_service.rb +9 -0
  305. data/lib/puppet/interface/action.rb +23 -10
  306. data/lib/puppet/interface/action_builder.rb +8 -0
  307. data/lib/puppet/interface/action_manager.rb +2 -1
  308. data/lib/puppet/interface/documentation.rb +11 -7
  309. data/lib/puppet/interface/face_collection.rb +9 -4
  310. data/lib/puppet/interface/option.rb +4 -2
  311. data/lib/puppet/interface/option_manager.rb +5 -3
  312. data/lib/puppet/interface.rb +5 -3
  313. data/lib/puppet/loaders.rb +10 -1
  314. data/lib/puppet/metatype/manager.rb +81 -83
  315. data/lib/puppet/module/plan.rb +159 -0
  316. data/lib/puppet/module/task.rb +216 -32
  317. data/lib/puppet/module.rb +51 -39
  318. data/lib/puppet/module_tool/applications/application.rb +7 -6
  319. data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
  320. data/lib/puppet/module_tool/applications/installer.rb +72 -13
  321. data/lib/puppet/module_tool/applications/uninstaller.rb +6 -5
  322. data/lib/puppet/module_tool/applications/unpacker.rb +4 -4
  323. data/lib/puppet/module_tool/applications/upgrader.rb +12 -8
  324. data/lib/puppet/module_tool/applications.rb +0 -1
  325. data/lib/puppet/module_tool/contents_description.rb +2 -1
  326. data/lib/puppet/module_tool/dependency.rb +1 -1
  327. data/lib/puppet/module_tool/errors/shared.rb +34 -2
  328. data/lib/puppet/module_tool/installed_modules.rb +3 -3
  329. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  330. data/lib/puppet/module_tool/metadata.rb +5 -8
  331. data/lib/puppet/module_tool/shared_behaviors.rb +8 -7
  332. data/lib/puppet/module_tool/tar/mini.rb +14 -4
  333. data/lib/puppet/module_tool.rb +4 -6
  334. data/lib/puppet/network/authconfig.rb +5 -16
  335. data/lib/puppet/network/authstore.rb +3 -2
  336. data/lib/puppet/network/format_support.rb +15 -10
  337. data/lib/puppet/network/formats.rb +168 -10
  338. data/lib/puppet/network/http/api/indirected_routes.rb +31 -20
  339. data/lib/puppet/network/http/api/master/v3/environment.rb +5 -2
  340. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -3
  341. data/lib/puppet/network/http/api.rb +1 -10
  342. data/lib/puppet/network/http/base_pool.rb +36 -0
  343. data/lib/puppet/network/http/compression.rb +8 -1
  344. data/lib/puppet/network/http/connection.rb +59 -36
  345. data/lib/puppet/network/http/connection_adapter.rb +184 -0
  346. data/lib/puppet/network/http/error.rb +3 -3
  347. data/lib/puppet/network/http/factory.rb +16 -18
  348. data/lib/puppet/network/http/handler.rb +60 -27
  349. data/lib/puppet/network/http/nocache_pool.rb +11 -4
  350. data/lib/puppet/network/http/pool.rb +24 -16
  351. data/lib/puppet/network/http/request.rb +2 -1
  352. data/lib/puppet/network/http/route.rb +4 -3
  353. data/lib/puppet/network/http/session.rb +3 -2
  354. data/lib/puppet/network/http/site.rb +5 -1
  355. data/lib/puppet/network/http.rb +2 -7
  356. data/lib/puppet/network/http_pool.rb +35 -1
  357. data/lib/puppet/network/resolver.rb +140 -67
  358. data/lib/puppet/network/rights.rb +3 -2
  359. data/lib/puppet/network/uri.rb +18 -0
  360. data/lib/puppet/node/environment.rb +65 -62
  361. data/lib/puppet/node/facts.rb +28 -1
  362. data/lib/puppet/node.rb +65 -8
  363. data/lib/puppet/pal/catalog_compiler.rb +108 -0
  364. data/lib/puppet/pal/compiler.rb +222 -0
  365. data/lib/puppet/pal/function_signature.rb +52 -0
  366. data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
  367. data/lib/puppet/pal/pal_api.rb +15 -0
  368. data/lib/puppet/pal/pal_impl.rb +588 -0
  369. data/lib/puppet/pal/plan_signature.rb +71 -0
  370. data/lib/puppet/pal/script_compiler.rb +73 -0
  371. data/lib/puppet/pal/task_signature.rb +58 -0
  372. data/lib/puppet/parameter/boolean.rb +1 -1
  373. data/lib/puppet/parameter/value_collection.rb +8 -8
  374. data/lib/puppet/parameter.rb +17 -10
  375. data/lib/puppet/parser/abstract_compiler.rb +36 -0
  376. data/lib/puppet/parser/ast/branch.rb +4 -4
  377. data/lib/puppet/parser/ast/leaf.rb +10 -4
  378. data/lib/puppet/parser/ast/pops_bridge.rb +34 -68
  379. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  380. data/lib/puppet/parser/ast.rb +5 -9
  381. data/lib/puppet/parser/catalog_compiler.rb +56 -0
  382. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +3 -1
  383. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +9 -2
  384. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  385. data/lib/puppet/parser/compiler.rb +73 -93
  386. data/lib/puppet/parser/environment_compiler.rb +4 -1
  387. data/lib/puppet/parser/files.rb +2 -1
  388. data/lib/puppet/parser/functions/assert_type.rb +3 -3
  389. data/lib/puppet/parser/functions/create_resources.rb +18 -14
  390. data/lib/puppet/parser/functions/each.rb +2 -2
  391. data/lib/puppet/parser/functions/epp.rb +3 -3
  392. data/lib/puppet/parser/functions/fail.rb +8 -1
  393. data/lib/puppet/parser/functions/filter.rb +3 -2
  394. data/lib/puppet/parser/functions/fqdn_rand.rb +27 -4
  395. data/lib/puppet/parser/functions/generate.rb +8 -7
  396. data/lib/puppet/parser/functions/hiera.rb +4 -4
  397. data/lib/puppet/parser/functions/hiera_array.rb +5 -5
  398. data/lib/puppet/parser/functions/hiera_hash.rb +6 -6
  399. data/lib/puppet/parser/functions/hiera_include.rb +10 -11
  400. data/lib/puppet/parser/functions/inline_epp.rb +5 -5
  401. data/lib/puppet/parser/functions/inline_template.rb +7 -1
  402. data/lib/puppet/parser/functions/lest.rb +1 -1
  403. data/lib/puppet/parser/functions/lookup.rb +1 -1
  404. data/lib/puppet/parser/functions/map.rb +1 -1
  405. data/lib/puppet/parser/functions/new.rb +32 -47
  406. data/lib/puppet/parser/functions/realize.rb +6 -0
  407. data/lib/puppet/parser/functions/reduce.rb +1 -1
  408. data/lib/puppet/parser/functions/return.rb +22 -1
  409. data/lib/puppet/parser/functions/reverse_each.rb +2 -2
  410. data/lib/puppet/parser/functions/scanf.rb +1 -1
  411. data/lib/puppet/parser/functions/sha256.rb +5 -0
  412. data/lib/puppet/parser/functions/sprintf.rb +12 -1
  413. data/lib/puppet/parser/functions/step.rb +1 -1
  414. data/lib/puppet/parser/functions/tag.rb +6 -0
  415. data/lib/puppet/parser/functions/tagged.rb +6 -3
  416. data/lib/puppet/parser/functions/template.rb +5 -0
  417. data/lib/puppet/parser/functions/then.rb +1 -1
  418. data/lib/puppet/parser/functions/with.rb +4 -4
  419. data/lib/puppet/parser/functions.rb +60 -17
  420. data/lib/puppet/parser/parser_factory.rb +1 -1
  421. data/lib/puppet/parser/relationship.rb +2 -1
  422. data/lib/puppet/parser/resource/param.rb +18 -5
  423. data/lib/puppet/parser/resource.rb +11 -8
  424. data/lib/puppet/parser/scope.rb +48 -22
  425. data/lib/puppet/parser/script_compiler.rb +123 -0
  426. data/lib/puppet/parser/templatewrapper.rb +4 -2
  427. data/lib/puppet/parser/type_loader.rb +15 -14
  428. data/lib/puppet/parser.rb +1 -0
  429. data/lib/puppet/plugins/configuration.rb +5 -1
  430. data/lib/puppet/pops/adaptable.rb +8 -17
  431. data/lib/puppet/pops/adapters.rb +22 -4
  432. data/lib/puppet/pops/evaluator/access_operator.rb +39 -5
  433. data/lib/puppet/pops/evaluator/closure.rb +19 -9
  434. data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
  435. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +4 -4
  436. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
  437. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +3 -2
  438. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +2 -1
  439. data/lib/puppet/pops/evaluator/compare_operator.rb +7 -5
  440. data/lib/puppet/pops/evaluator/deferred_resolver.rb +132 -0
  441. data/lib/puppet/pops/evaluator/epp_evaluator.rb +15 -2
  442. data/lib/puppet/pops/evaluator/evaluator_impl.rb +82 -16
  443. data/lib/puppet/pops/evaluator/external_syntax_support.rb +6 -5
  444. data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
  445. data/lib/puppet/pops/evaluator/runtime3_converter.rb +24 -5
  446. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +5 -3
  447. data/lib/puppet/pops/evaluator/runtime3_support.rb +18 -21
  448. data/lib/puppet/pops/functions/dispatch.rb +13 -6
  449. data/lib/puppet/pops/functions/function.rb +2 -2
  450. data/lib/puppet/pops/issue_reporter.rb +18 -1
  451. data/lib/puppet/pops/issues.rb +73 -10
  452. data/lib/puppet/pops/loader/base_loader.rb +14 -2
  453. data/lib/puppet/pops/loader/dependency_loader.rb +11 -2
  454. data/lib/puppet/pops/loader/gem_support.rb +4 -2
  455. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +28 -0
  456. data/lib/puppet/pops/loader/loader.rb +26 -5
  457. data/lib/puppet/pops/loader/loader_paths.rb +221 -32
  458. data/lib/puppet/pops/loader/module_loaders.rb +242 -40
  459. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +93 -0
  460. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +9 -9
  461. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +39 -0
  462. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
  463. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +121 -0
  464. data/lib/puppet/pops/loader/runtime3_type_loader.rb +10 -3
  465. data/lib/puppet/pops/loader/static_loader.rb +23 -44
  466. data/lib/puppet/pops/loader/task_instantiator.rb +44 -0
  467. data/lib/puppet/pops/loader/type_definition_instantiator.rb +8 -1
  468. data/lib/puppet/pops/loaders.rb +169 -50
  469. data/lib/puppet/pops/lookup/context.rb +1 -1
  470. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  471. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  472. data/lib/puppet/pops/lookup/hiera_config.rb +16 -2
  473. data/lib/puppet/pops/lookup/interpolation.rb +3 -2
  474. data/lib/puppet/pops/lookup/invocation.rb +10 -3
  475. data/lib/puppet/pops/lookup/key_recorder.rb +18 -0
  476. data/lib/puppet/pops/lookup/lookup_adapter.rb +65 -9
  477. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  478. data/lib/puppet/pops/lookup.rb +1 -0
  479. data/lib/puppet/pops/merge_strategy.rb +22 -18
  480. data/lib/puppet/pops/model/ast.pp +19 -0
  481. data/lib/puppet/pops/model/ast.rb +129 -1
  482. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  483. data/lib/puppet/pops/model/factory.rb +93 -13
  484. data/lib/puppet/pops/model/model_label_provider.rb +9 -1
  485. data/lib/puppet/pops/model/model_tree_dumper.rb +16 -1
  486. data/lib/puppet/pops/model/pn_transformer.rb +401 -0
  487. data/lib/puppet/pops/model/tree_dumper.rb +1 -1
  488. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  489. data/lib/puppet/pops/parser/egrammar.ra +60 -18
  490. data/lib/puppet/pops/parser/eparser.rb +1926 -1745
  491. data/lib/puppet/pops/parser/epp_parser.rb +1 -1
  492. data/lib/puppet/pops/parser/epp_support.rb +9 -6
  493. data/lib/puppet/pops/parser/evaluating_parser.rb +9 -12
  494. data/lib/puppet/pops/parser/heredoc_support.rb +20 -10
  495. data/lib/puppet/pops/parser/interpolation_support.rb +16 -11
  496. data/lib/puppet/pops/parser/lexer2.rb +109 -100
  497. data/lib/puppet/pops/parser/lexer_support.rb +5 -4
  498. data/lib/puppet/pops/parser/locatable.rb +1 -1
  499. data/lib/puppet/pops/parser/locator.rb +116 -103
  500. data/lib/puppet/pops/parser/parser_support.rb +14 -5
  501. data/lib/puppet/pops/parser/pn_parser.rb +317 -0
  502. data/lib/puppet/pops/parser/slurp_support.rb +1 -3
  503. data/lib/puppet/pops/pcore.rb +43 -10
  504. data/lib/puppet/pops/pn.rb +236 -0
  505. data/lib/puppet/pops/puppet_stack.rb +55 -37
  506. data/lib/puppet/pops/resource/param.rb +1 -1
  507. data/lib/puppet/pops/resource/resource_type_impl.rb +4 -2
  508. data/lib/puppet/pops/serialization/abstract_reader.rb +4 -0
  509. data/lib/puppet/pops/serialization/abstract_writer.rb +6 -0
  510. data/lib/puppet/pops/serialization/extension.rb +1 -0
  511. data/lib/puppet/pops/serialization/from_data_converter.rb +68 -13
  512. data/lib/puppet/pops/serialization/json.rb +7 -7
  513. data/lib/puppet/pops/serialization/json_path.rb +5 -4
  514. data/lib/puppet/pops/serialization/object.rb +3 -4
  515. data/lib/puppet/pops/serialization/serializer.rb +2 -1
  516. data/lib/puppet/pops/serialization/to_data_converter.rb +24 -12
  517. data/lib/puppet/pops/serialization/to_stringified_converter.rb +226 -0
  518. data/lib/puppet/pops/serialization.rb +4 -2
  519. data/lib/puppet/pops/time/timespan.rb +4 -6
  520. data/lib/puppet/pops/types/class_loader.rb +6 -3
  521. data/lib/puppet/pops/types/implementation_registry.rb +28 -35
  522. data/lib/puppet/pops/types/iterable.rb +68 -13
  523. data/lib/puppet/pops/types/p_binary_type.rb +1 -2
  524. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  525. data/lib/puppet/pops/types/p_meta_type.rb +5 -1
  526. data/lib/puppet/pops/types/p_object_type.rb +152 -17
  527. data/lib/puppet/pops/types/p_object_type_extension.rb +228 -0
  528. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +0 -1
  529. data/lib/puppet/pops/types/p_sem_ver_type.rb +18 -4
  530. data/lib/puppet/pops/types/p_sensitive_type.rb +11 -1
  531. data/lib/puppet/pops/types/p_timespan_type.rb +4 -4
  532. data/lib/puppet/pops/types/p_type_set_type.rb +28 -2
  533. data/lib/puppet/pops/types/p_uri_type.rb +190 -0
  534. data/lib/puppet/pops/types/puppet_object.rb +15 -1
  535. data/lib/puppet/pops/types/ruby_generator.rb +49 -58
  536. data/lib/puppet/pops/types/string_converter.rb +55 -23
  537. data/lib/puppet/pops/types/tree_iterators.rb +5 -1
  538. data/lib/puppet/pops/types/type_acceptor.rb +1 -1
  539. data/lib/puppet/pops/types/type_calculator.rb +45 -16
  540. data/lib/puppet/pops/types/type_factory.rb +46 -9
  541. data/lib/puppet/pops/types/type_formatter.rb +79 -17
  542. data/lib/puppet/pops/types/type_mismatch_describer.rb +3 -3
  543. data/lib/puppet/pops/types/type_parser.rb +112 -15
  544. data/lib/puppet/pops/types/type_with_members.rb +43 -0
  545. data/lib/puppet/pops/types/types.rb +231 -115
  546. data/lib/puppet/pops/utils.rb +2 -2
  547. data/lib/puppet/pops/validation/checker4_0.rb +181 -12
  548. data/lib/puppet/pops/validation/tasks_checker.rb +105 -0
  549. data/lib/puppet/pops/validation/validator_factory_4_0.rb +14 -8
  550. data/lib/puppet/pops/validation.rb +13 -20
  551. data/lib/puppet/pops/visitor.rb +12 -6
  552. data/lib/puppet/pops.rb +2 -1
  553. data/lib/puppet/property/ensure.rb +3 -2
  554. data/lib/puppet/property/keyvalue.rb +72 -9
  555. data/lib/puppet/property/list.rb +3 -2
  556. data/lib/puppet/property.rb +21 -18
  557. data/lib/puppet/provider/aix_object.rb +485 -0
  558. data/lib/puppet/provider/exec/posix.rb +16 -4
  559. data/lib/puppet/provider/exec.rb +71 -64
  560. data/lib/puppet/provider/file/posix.rb +11 -3
  561. data/lib/puppet/provider/file/windows.rb +50 -2
  562. data/lib/puppet/provider/group/aix.rb +69 -113
  563. data/lib/puppet/provider/group/groupadd.rb +92 -24
  564. data/lib/puppet/provider/group/ldap.rb +7 -4
  565. data/lib/puppet/provider/group/pw.rb +4 -2
  566. data/lib/puppet/provider/group/windows_adsi.rb +12 -8
  567. data/lib/puppet/provider/ldap.rb +8 -4
  568. data/lib/puppet/provider/nameservice/directoryservice.rb +12 -8
  569. data/lib/puppet/provider/nameservice/objectadd.rb +13 -24
  570. data/lib/puppet/provider/nameservice/pw.rb +14 -14
  571. data/lib/puppet/provider/nameservice.rb +20 -29
  572. data/lib/puppet/provider/network_device.rb +4 -2
  573. data/lib/puppet/provider/package/aix.rb +21 -4
  574. data/lib/puppet/provider/package/appdmg.rb +4 -3
  575. data/lib/puppet/provider/package/apple.rb +2 -2
  576. data/lib/puppet/provider/package/apt.rb +156 -10
  577. data/lib/puppet/provider/package/aptitude.rb +7 -1
  578. data/lib/puppet/provider/package/blastwave.rb +2 -1
  579. data/lib/puppet/provider/package/dnf.rb +7 -4
  580. data/lib/puppet/provider/package/dnfmodule.rb +141 -0
  581. data/lib/puppet/provider/package/dpkg.rb +51 -14
  582. data/lib/puppet/provider/package/fink.rb +22 -4
  583. data/lib/puppet/provider/package/gem.rb +151 -53
  584. data/lib/puppet/provider/package/macports.rb +8 -5
  585. data/lib/puppet/provider/package/nim.rb +19 -10
  586. data/lib/puppet/provider/package/openbsd.rb +30 -12
  587. data/lib/puppet/provider/package/opkg.rb +2 -1
  588. data/lib/puppet/provider/package/pacman.rb +9 -12
  589. data/lib/puppet/provider/package/pip.rb +271 -115
  590. data/lib/puppet/provider/package/pip2.rb +17 -0
  591. data/lib/puppet/provider/package/pip3.rb +2 -5
  592. data/lib/puppet/provider/package/pkg.rb +57 -10
  593. data/lib/puppet/provider/package/pkgdmg.rb +8 -7
  594. data/lib/puppet/provider/package/pkgng.rb +56 -26
  595. data/lib/puppet/provider/package/pkgutil.rb +4 -3
  596. data/lib/puppet/provider/package/portage.rb +32 -23
  597. data/lib/puppet/provider/package/portupgrade.rb +2 -1
  598. data/lib/puppet/provider/package/puppet_gem.rb +12 -3
  599. data/lib/puppet/provider/package/puppetserver_gem.rb +171 -0
  600. data/lib/puppet/provider/package/rpm.rb +87 -242
  601. data/lib/puppet/provider/package/sun.rb +2 -2
  602. data/lib/puppet/provider/package/windows/exe_package.rb +45 -10
  603. data/lib/puppet/provider/package/windows/msi_package.rb +8 -0
  604. data/lib/puppet/provider/package/windows/package.rb +14 -4
  605. data/lib/puppet/provider/package/windows.rb +21 -4
  606. data/lib/puppet/provider/package/yum.rb +143 -39
  607. data/lib/puppet/provider/package/zypper.rb +68 -7
  608. data/lib/puppet/provider/package.rb +4 -1
  609. data/lib/puppet/provider/package_targetable.rb +69 -0
  610. data/lib/puppet/provider/parsedfile.rb +43 -12
  611. data/lib/puppet/provider/service/base.rb +10 -7
  612. data/lib/puppet/provider/service/daemontools.rb +9 -9
  613. data/lib/puppet/provider/service/debian.rb +3 -0
  614. data/lib/puppet/provider/service/init.rb +11 -9
  615. data/lib/puppet/provider/service/launchd.rb +49 -17
  616. data/lib/puppet/provider/service/openbsd.rb +1 -1
  617. data/lib/puppet/provider/service/rcng.rb +2 -2
  618. data/lib/puppet/provider/service/redhat.rb +3 -2
  619. data/lib/puppet/provider/service/runit.rb +2 -8
  620. data/lib/puppet/provider/service/service.rb +2 -1
  621. data/lib/puppet/provider/service/smf.rb +60 -6
  622. data/lib/puppet/provider/service/systemd.rb +70 -26
  623. data/lib/puppet/provider/service/upstart.rb +39 -13
  624. data/lib/puppet/provider/service/windows.rb +117 -41
  625. data/lib/puppet/provider/user/aix.rb +223 -244
  626. data/lib/puppet/provider/user/directoryservice.rb +72 -16
  627. data/lib/puppet/provider/user/hpux.rb +2 -2
  628. data/lib/puppet/provider/user/ldap.rb +8 -4
  629. data/lib/puppet/provider/user/openbsd.rb +3 -2
  630. data/lib/puppet/provider/user/pw.rb +15 -5
  631. data/lib/puppet/provider/user/user_role_add.rb +17 -5
  632. data/lib/puppet/provider/user/useradd.rb +237 -62
  633. data/lib/puppet/provider/user/windows_adsi.rb +26 -2
  634. data/lib/puppet/provider.rb +41 -19
  635. data/lib/puppet/reference/configuration.rb +12 -3
  636. data/lib/puppet/reference/indirection.rb +2 -2
  637. data/lib/puppet/reference/metaparameter.rb +1 -3
  638. data/lib/puppet/reference/providers.rb +6 -7
  639. data/lib/puppet/reference/report.rb +1 -1
  640. data/lib/puppet/reference/type.rb +14 -19
  641. data/lib/puppet/relationship.rb +4 -9
  642. data/lib/puppet/reports/http.rb +15 -8
  643. data/lib/puppet/reports/store.rb +1 -1
  644. data/lib/puppet/reports.rb +3 -3
  645. data/lib/puppet/resource/capability_finder.rb +18 -14
  646. data/lib/puppet/resource/catalog.rb +49 -64
  647. data/lib/puppet/resource/status.rb +11 -3
  648. data/lib/puppet/resource/type.rb +28 -11
  649. data/lib/puppet/resource/type_collection.rb +27 -20
  650. data/lib/puppet/resource.rb +100 -24
  651. data/lib/puppet/rest/errors.rb +15 -0
  652. data/lib/puppet/rest/response.rb +35 -0
  653. data/lib/puppet/rest/route.rb +85 -0
  654. data/lib/puppet/rest/routes.rb +135 -0
  655. data/lib/puppet/runtime.rb +66 -0
  656. data/lib/puppet/settings/alias_setting.rb +37 -0
  657. data/lib/puppet/settings/base_setting.rb +34 -4
  658. data/lib/puppet/settings/config_file.rb +5 -5
  659. data/lib/puppet/settings/environment_conf.rb +12 -2
  660. data/lib/puppet/settings/file_setting.rb +3 -2
  661. data/lib/puppet/settings/http_extra_headers_setting.rb +25 -0
  662. data/lib/puppet/settings/ini_file.rb +67 -12
  663. data/lib/puppet/settings/server_list_setting.rb +9 -0
  664. data/lib/puppet/settings/ttl_setting.rb +5 -0
  665. data/lib/puppet/settings.rb +220 -67
  666. data/lib/puppet/ssl/base.rb +4 -11
  667. data/lib/puppet/ssl/certificate.rb +11 -4
  668. data/lib/puppet/ssl/certificate_request.rb +31 -23
  669. data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
  670. data/lib/puppet/ssl/certificate_signer.rb +11 -0
  671. data/lib/puppet/ssl/error.rb +26 -0
  672. data/lib/puppet/ssl/host.rb +291 -186
  673. data/lib/puppet/ssl/key.rb +5 -7
  674. data/lib/puppet/ssl/oids.rb +4 -3
  675. data/lib/puppet/ssl/openssl_loader.rb +24 -0
  676. data/lib/puppet/ssl/ssl_context.rb +30 -0
  677. data/lib/puppet/ssl/ssl_provider.rb +333 -0
  678. data/lib/puppet/ssl/state_machine.rb +472 -0
  679. data/lib/puppet/ssl/validator/default_validator.rb +61 -25
  680. data/lib/puppet/ssl/validator/no_validator.rb +3 -1
  681. data/lib/puppet/ssl/validator.rb +2 -1
  682. data/lib/puppet/ssl/verifier.rb +140 -0
  683. data/lib/puppet/ssl/verifier_adapter.rb +58 -0
  684. data/lib/puppet/ssl.rb +9 -3
  685. data/lib/puppet/syntax_checkers/base64.rb +1 -1
  686. data/lib/puppet/syntax_checkers/epp.rb +34 -0
  687. data/lib/puppet/syntax_checkers/json.rb +1 -1
  688. data/lib/puppet/syntax_checkers/pp.rb +34 -0
  689. data/lib/puppet/test/test_helper.rb +33 -18
  690. data/lib/puppet/thread_local.rb +7 -0
  691. data/lib/puppet/transaction/additional_resource_generator.rb +3 -3
  692. data/lib/puppet/transaction/event.rb +40 -16
  693. data/lib/puppet/transaction/event_manager.rb +17 -5
  694. data/lib/puppet/transaction/persistence.rb +22 -2
  695. data/lib/puppet/transaction/report.rb +57 -34
  696. data/lib/puppet/transaction/resource_harness.rb +9 -4
  697. data/lib/puppet/transaction.rb +77 -23
  698. data/lib/puppet/trusted_external.rb +41 -0
  699. data/lib/puppet/type/component.rb +2 -1
  700. data/lib/puppet/type/exec.rb +156 -66
  701. data/lib/puppet/type/file/checksum.rb +10 -4
  702. data/lib/puppet/type/file/checksum_value.rb +4 -3
  703. data/lib/puppet/type/file/content.rb +24 -8
  704. data/lib/puppet/type/file/ctime.rb +2 -1
  705. data/lib/puppet/type/file/data_sync.rb +8 -3
  706. data/lib/puppet/type/file/ensure.rb +11 -8
  707. data/lib/puppet/type/file/mode.rb +15 -3
  708. data/lib/puppet/type/file/mtime.rb +2 -1
  709. data/lib/puppet/type/file/selcontext.rb +2 -1
  710. data/lib/puppet/type/file/source.rb +98 -75
  711. data/lib/puppet/type/file/target.rb +2 -1
  712. data/lib/puppet/type/file/type.rb +2 -1
  713. data/lib/puppet/type/file.rb +146 -51
  714. data/lib/puppet/type/filebucket.rb +15 -11
  715. data/lib/puppet/type/group.rb +43 -12
  716. data/lib/puppet/type/notify.rb +6 -5
  717. data/lib/puppet/type/package.rb +185 -35
  718. data/lib/puppet/type/resources.rb +15 -4
  719. data/lib/puppet/type/schedule.rb +59 -99
  720. data/lib/puppet/type/service.rb +76 -25
  721. data/lib/puppet/type/stage.rb +1 -1
  722. data/lib/puppet/type/tidy.rb +57 -18
  723. data/lib/puppet/type/user.rb +186 -101
  724. data/lib/puppet/type.rb +159 -90
  725. data/lib/puppet/util/at_fork.rb +1 -1
  726. data/lib/puppet/util/autoload.rb +51 -62
  727. data/lib/puppet/util/backups.rb +1 -1
  728. data/lib/puppet/util/character_encoding.rb +11 -29
  729. data/lib/puppet/util/checksums.rb +101 -7
  730. data/lib/puppet/util/classgen.rb +12 -12
  731. data/lib/puppet/util/command_line/trollop.rb +1 -1
  732. data/lib/puppet/util/command_line.rb +16 -10
  733. data/lib/puppet/util/connection.rb +88 -0
  734. data/lib/puppet/util/diff.rb +4 -2
  735. data/lib/puppet/util/errors.rb +0 -2
  736. data/lib/puppet/util/execution.rb +28 -11
  737. data/lib/puppet/util/fact_dif.rb +81 -0
  738. data/lib/puppet/util/feature.rb +77 -43
  739. data/lib/puppet/util/fileparsing.rb +79 -46
  740. data/lib/puppet/util/filetype.rb +62 -13
  741. data/lib/puppet/util/http_proxy.rb +37 -25
  742. data/lib/puppet/util/inifile.rb +3 -4
  743. data/lib/puppet/util/instance_loader.rb +16 -29
  744. data/lib/puppet/util/json.rb +89 -0
  745. data/lib/puppet/util/json_lockfile.rb +3 -3
  746. data/lib/puppet/util/ldap/connection.rb +11 -9
  747. data/lib/puppet/util/ldap/manager.rb +6 -3
  748. data/lib/puppet/util/log/destinations.rb +21 -17
  749. data/lib/puppet/util/log.rb +26 -17
  750. data/lib/puppet/util/logging.rb +36 -47
  751. data/lib/puppet/util/metric.rb +4 -3
  752. data/lib/puppet/util/monkey_patches.rb +76 -23
  753. data/lib/puppet/util/network_device/base.rb +1 -1
  754. data/lib/puppet/util/network_device/config.rb +2 -3
  755. data/lib/puppet/util/package/version/debian.rb +175 -0
  756. data/lib/puppet/util/package/version/gem.rb +15 -0
  757. data/lib/puppet/util/package/version/pip.rb +167 -0
  758. data/lib/puppet/util/package/version/range/eq.rb +14 -0
  759. data/lib/puppet/util/package/version/range/gt.rb +14 -0
  760. data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
  761. data/lib/puppet/util/package/version/range/lt.rb +14 -0
  762. data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
  763. data/lib/puppet/util/package/version/range/min_max.rb +21 -0
  764. data/lib/puppet/util/package/version/range/simple.rb +11 -0
  765. data/lib/puppet/util/package/version/range.rb +53 -0
  766. data/lib/puppet/util/package/version/rpm.rb +73 -0
  767. data/lib/puppet/util/package.rb +25 -16
  768. data/lib/puppet/util/pidlock.rb +45 -5
  769. data/lib/puppet/util/platform.rb +48 -0
  770. data/lib/puppet/util/plist.rb +10 -4
  771. data/lib/puppet/util/posix.rb +69 -3
  772. data/lib/puppet/util/provider_features.rb +5 -10
  773. data/lib/puppet/util/rdoc/code_objects.rb +2 -1
  774. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +6 -4
  775. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -2
  776. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  777. data/lib/puppet/util/rdoc.rb +2 -2
  778. data/lib/puppet/util/reference.rb +10 -16
  779. data/lib/puppet/util/resource_template.rb +1 -1
  780. data/lib/puppet/util/rpm_compare.rb +193 -0
  781. data/lib/puppet/util/rubygems.rb +6 -14
  782. data/lib/puppet/util/run_mode.rb +6 -2
  783. data/lib/puppet/util/selinux.rb +41 -8
  784. data/lib/puppet/util/skip_tags.rb +4 -0
  785. data/lib/puppet/util/ssl.rb +31 -1
  786. data/lib/puppet/util/storage.rb +13 -2
  787. data/lib/puppet/util/suidmanager.rb +8 -7
  788. data/lib/puppet/util/symbolic_file_mode.rb +29 -17
  789. data/lib/puppet/util/tag_set.rb +1 -1
  790. data/lib/puppet/util/tagging.rb +19 -5
  791. data/lib/puppet/util/warnings.rb +0 -2
  792. data/lib/puppet/util/windows/adsi.rb +305 -206
  793. data/lib/puppet/util/windows/api_types.rb +60 -33
  794. data/lib/puppet/util/windows/com.rb +2 -1
  795. data/lib/puppet/util/windows/eventlog.rb +1 -6
  796. data/lib/puppet/util/windows/file.rb +20 -2
  797. data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
  798. data/lib/puppet/util/windows/principal.rb +24 -14
  799. data/lib/puppet/util/windows/process.rb +93 -4
  800. data/lib/puppet/util/windows/registry.rb +48 -16
  801. data/lib/puppet/util/windows/root_certs.rb +1 -1
  802. data/lib/puppet/util/windows/security.rb +66 -16
  803. data/lib/puppet/util/windows/service.rb +1147 -0
  804. data/lib/puppet/util/windows/sid.rb +68 -12
  805. data/lib/puppet/util/windows/user.rb +254 -14
  806. data/lib/puppet/util/windows.rb +23 -2
  807. data/lib/puppet/util/yaml.rb +62 -7
  808. data/lib/puppet/util.rb +130 -55
  809. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +18 -18
  810. data/lib/puppet/vendor/require_vendored.rb +0 -1
  811. data/lib/puppet/vendor.rb +1 -1
  812. data/lib/puppet/version.rb +2 -5
  813. data/lib/puppet/x509/cert_provider.rb +355 -0
  814. data/lib/puppet/x509/pem_store.rb +55 -0
  815. data/lib/puppet/x509.rb +7 -0
  816. data/lib/puppet.rb +83 -36
  817. data/lib/puppet_pal.rb +8 -0
  818. data/locales/puppet.pot +5 -9763
  819. data/man/man5/puppet.conf.5 +651 -390
  820. data/man/man8/puppet-agent.8 +88 -67
  821. data/man/man8/puppet-apply.8 +8 -5
  822. data/man/man8/puppet-catalog.8 +39 -11
  823. data/man/man8/puppet-config.8 +42 -8
  824. data/man/man8/puppet-describe.8 +1 -1
  825. data/man/man8/puppet-device.8 +55 -22
  826. data/man/man8/puppet-doc.8 +1 -1
  827. data/man/man8/puppet-epp.8 +35 -13
  828. data/man/man8/puppet-facts.8 +144 -6
  829. data/man/man8/puppet-filebucket.8 +58 -12
  830. data/man/man8/puppet-generate.8 +2 -2
  831. data/man/man8/puppet-help.8 +7 -4
  832. data/man/man8/puppet-key.8 +9 -15
  833. data/man/man8/puppet-lookup.8 +10 -7
  834. data/man/man8/puppet-man.8 +11 -5
  835. data/man/man8/puppet-module.8 +28 -106
  836. data/man/man8/puppet-node.8 +13 -13
  837. data/man/man8/puppet-parser.8 +32 -9
  838. data/man/man8/puppet-plugin.8 +2 -2
  839. data/man/man8/puppet-report.8 +9 -6
  840. data/man/man8/puppet-resource.8 +2 -2
  841. data/man/man8/puppet-script.8 +70 -0
  842. data/man/man8/puppet-ssl.8 +59 -0
  843. data/man/man8/puppet-status.8 +7 -7
  844. data/man/man8/puppet.8 +12 -3
  845. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +92 -0
  846. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
  847. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
  848. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
  849. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
  850. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
  851. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
  852. data/{lib/puppet/vendor/semantic_puppet → spec/fixtures/integration/l10n/envs/prod/modules/demo}/locales/config.yaml +8 -4
  853. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
  854. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
  855. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
  856. data/spec/fixtures/ssl/127.0.0.1-key.pem +117 -0
  857. data/spec/fixtures/ssl/127.0.0.1.pem +69 -0
  858. data/spec/fixtures/ssl/bad-basic-constraints.pem +81 -0
  859. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +81 -0
  860. data/spec/fixtures/ssl/ca.pem +81 -0
  861. data/spec/fixtures/ssl/crl.pem +40 -0
  862. data/spec/fixtures/ssl/ec-key.pem +18 -0
  863. data/spec/fixtures/ssl/ec.pem +49 -0
  864. data/spec/fixtures/ssl/encrypted-ec-key.pem +21 -0
  865. data/spec/fixtures/ssl/encrypted-key.pem +120 -0
  866. data/spec/fixtures/ssl/intermediate-agent-crl.pem +40 -0
  867. data/spec/fixtures/ssl/intermediate-agent.pem +81 -0
  868. data/spec/fixtures/ssl/intermediate-crl.pem +46 -0
  869. data/spec/fixtures/ssl/intermediate.pem +81 -0
  870. data/spec/fixtures/ssl/netlock-arany-utf8.pem +23 -0
  871. data/spec/fixtures/ssl/oid-key.pem +117 -0
  872. data/spec/fixtures/ssl/oid.pem +69 -0
  873. data/spec/fixtures/ssl/pluto-key.pem +117 -0
  874. data/spec/fixtures/ssl/pluto.pem +66 -0
  875. data/spec/fixtures/ssl/request-key.pem +117 -0
  876. data/spec/fixtures/ssl/request.pem +60 -0
  877. data/spec/fixtures/ssl/revoked-key.pem +117 -0
  878. data/spec/fixtures/ssl/revoked.pem +66 -0
  879. data/spec/fixtures/ssl/signed-key.pem +117 -0
  880. data/spec/fixtures/ssl/signed.pem +66 -0
  881. data/spec/fixtures/ssl/tampered-cert.pem +66 -0
  882. data/spec/fixtures/ssl/tampered-csr.pem +60 -0
  883. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  884. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +117 -0
  885. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +69 -0
  886. data/spec/fixtures/ssl/unknown-ca-key.pem +117 -0
  887. data/spec/fixtures/ssl/unknown-ca.pem +81 -0
  888. data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
  889. data/spec/fixtures/unit/forge/bacula.json +76 -0
  890. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  891. data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +22 -0
  892. data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +18 -0
  893. data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +7 -0
  894. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
  895. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +6 -6
  896. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load.rb +11 -0
  897. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +11 -0
  898. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +11 -0
  899. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +11 -0
  900. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +12 -0
  901. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/func_with_syntax_error.rb +9 -0
  902. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +9 -0
  903. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_input.out +1 -0
  904. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_output.out +1 -0
  905. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +19 -0
  906. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
  907. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
  908. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
  909. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
  910. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
  911. data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
  912. data/spec/fixtures/unit/provider/parsedfile/aliases.txt +2 -0
  913. data/spec/fixtures/unit/provider/service/smf/svcs_fmri.out +6 -0
  914. data/spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out +13 -0
  915. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
  916. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
  917. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +36 -0
  918. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +1 -102
  919. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +1 -106
  920. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +1 -106
  921. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +1 -102
  922. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +1 -98
  923. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +1 -102
  924. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +1 -102
  925. data/spec/integration/agent/logging_spec.rb +7 -9
  926. data/spec/integration/application/agent_spec.rb +848 -0
  927. data/spec/integration/application/apply_spec.rb +338 -178
  928. data/spec/integration/application/doc_spec.rb +16 -7
  929. data/spec/integration/application/filebucket_spec.rb +255 -0
  930. data/spec/integration/application/help_spec.rb +42 -0
  931. data/spec/integration/application/lookup_spec.rb +105 -40
  932. data/spec/integration/application/module_spec.rb +89 -0
  933. data/spec/integration/application/plugin_spec.rb +123 -0
  934. data/spec/integration/application/resource_spec.rb +68 -0
  935. data/spec/integration/application/ssl_spec.rb +20 -0
  936. data/spec/integration/configurer_spec.rb +109 -12
  937. data/spec/integration/data_binding_spec.rb +83 -0
  938. data/spec/integration/defaults_spec.rb +30 -19
  939. data/spec/integration/directory_environments_spec.rb +17 -17
  940. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  941. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  942. data/spec/integration/http/client_spec.rb +213 -0
  943. data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
  944. data/spec/integration/indirector/direct_file_server_spec.rb +2 -4
  945. data/spec/integration/indirector/facts/facter_spec.rb +112 -63
  946. data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
  947. data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
  948. data/spec/integration/l10n/compiler_spec.rb +37 -0
  949. data/spec/integration/network/authconfig_spec.rb +23 -24
  950. data/spec/integration/network/formats_spec.rb +0 -1
  951. data/spec/integration/network/http/api/indirected_routes_spec.rb +9 -38
  952. data/spec/integration/network/http_pool_spec.rb +293 -0
  953. data/spec/integration/node/environment_spec.rb +16 -2
  954. data/spec/integration/node/facts_spec.rb +9 -10
  955. data/spec/integration/node_spec.rb +6 -11
  956. data/spec/integration/parser/catalog_spec.rb +8 -8
  957. data/spec/integration/parser/collection_spec.rb +6 -11
  958. data/spec/integration/parser/compiler_spec.rb +60 -30
  959. data/spec/integration/parser/pcore_resource_spec.rb +13 -3
  960. data/spec/integration/parser/scope_spec.rb +3 -3
  961. data/spec/integration/parser/script_compiler_spec.rb +113 -0
  962. data/spec/integration/parser/undef_param_spec.rb +1 -1
  963. data/spec/integration/provider/file/windows_spec.rb +162 -0
  964. data/spec/integration/resource/catalog_spec.rb +14 -17
  965. data/spec/integration/resource/type_collection_spec.rb +3 -8
  966. data/spec/integration/transaction/report_spec.rb +12 -17
  967. data/spec/integration/transaction_spec.rb +37 -39
  968. data/spec/integration/type/exec_spec.rb +71 -47
  969. data/spec/integration/type/file_spec.rb +142 -42
  970. data/spec/integration/type/notify_spec.rb +46 -0
  971. data/spec/integration/type/package_spec.rb +27 -31
  972. data/spec/integration/type/tidy_spec.rb +1 -2
  973. data/spec/integration/type_spec.rb +1 -3
  974. data/spec/integration/util/autoload_spec.rb +10 -8
  975. data/spec/integration/util/execution_spec.rb +54 -5
  976. data/spec/integration/util/rdoc/parser_spec.rb +14 -25
  977. data/spec/integration/util/settings_spec.rb +2 -2
  978. data/spec/integration/util/windows/adsi_spec.rb +116 -8
  979. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
  980. data/spec/integration/util/windows/principal_spec.rb +33 -4
  981. data/spec/integration/util/windows/process_spec.rb +28 -44
  982. data/spec/integration/util/windows/registry_spec.rb +130 -53
  983. data/spec/integration/util/windows/security_spec.rb +103 -12
  984. data/spec/integration/util/windows/user_spec.rb +108 -29
  985. data/spec/integration/util_spec.rb +9 -38
  986. data/spec/lib/matchers/json.rb +13 -19
  987. data/{lib/puppet/ssl → spec/lib/puppet}/certificate_factory.rb +7 -8
  988. data/spec/lib/puppet/test_ca.rb +164 -0
  989. data/spec/lib/puppet_spec/compiler.rb +28 -1
  990. data/spec/lib/puppet_spec/files.rb +28 -24
  991. data/spec/lib/puppet_spec/fixtures.rb +24 -0
  992. data/spec/lib/puppet_spec/https.rb +95 -0
  993. data/spec/lib/puppet_spec/language.rb +34 -35
  994. data/spec/lib/puppet_spec/matchers.rb +0 -93
  995. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +3 -3
  996. data/spec/lib/puppet_spec/modules.rb +39 -4
  997. data/spec/lib/puppet_spec/puppetserver.rb +179 -0
  998. data/spec/lib/puppet_spec/scope.rb +1 -2
  999. data/spec/lib/puppet_spec/settings.rb +7 -1
  1000. data/spec/lib/puppet_spec/ssl.rb +265 -0
  1001. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  1002. data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
  1003. data/spec/shared_behaviours/file_server_terminus.rb +8 -11
  1004. data/spec/shared_behaviours/file_serving.rb +6 -8
  1005. data/spec/shared_behaviours/hiera_indirections.rb +3 -4
  1006. data/spec/shared_behaviours/iterative_functions.rb +0 -1
  1007. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  1008. data/spec/shared_behaviours/path_parameters.rb +1 -1
  1009. data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
  1010. data/spec/shared_contexts/checksum.rb +4 -1
  1011. data/spec/shared_contexts/digests.rb +46 -1
  1012. data/spec/shared_contexts/https.rb +29 -0
  1013. data/spec/shared_contexts/l10n.rb +32 -0
  1014. data/spec/shared_contexts/types_setup.rb +10 -3
  1015. data/spec/shared_examples/rhel_package_provider.rb +112 -70
  1016. data/spec/spec_helper.rb +49 -22
  1017. data/spec/unit/agent/disabler_spec.rb +4 -5
  1018. data/spec/unit/agent/locker_spec.rb +12 -13
  1019. data/spec/unit/agent_spec.rb +181 -104
  1020. data/spec/unit/application/agent_spec.rb +159 -130
  1021. data/spec/unit/application/apply_spec.rb +199 -145
  1022. data/spec/unit/application/config_spec.rb +224 -5
  1023. data/spec/unit/application/describe_spec.rb +88 -51
  1024. data/spec/unit/application/device_spec.rb +424 -300
  1025. data/spec/unit/application/doc_spec.rb +46 -48
  1026. data/spec/unit/application/face_base_spec.rb +69 -68
  1027. data/spec/unit/application/facts_spec.rb +518 -9
  1028. data/spec/unit/application/filebucket_spec.rb +98 -74
  1029. data/spec/unit/application/indirection_base_spec.rb +8 -6
  1030. data/spec/unit/application/lookup_spec.rb +176 -47
  1031. data/spec/unit/application/man_spec.rb +52 -0
  1032. data/spec/unit/application/resource_spec.rb +76 -51
  1033. data/spec/unit/application/ssl_spec.rb +458 -0
  1034. data/spec/unit/application_spec.rb +171 -94
  1035. data/spec/unit/capability_spec.rb +17 -15
  1036. data/spec/unit/{ssl/certificate_factory_spec.rb → certificate_factory_spec.rb} +11 -22
  1037. data/spec/unit/concurrent/lock_spec.rb +29 -0
  1038. data/spec/unit/concurrent/thread_local_singleton_spec.rb +39 -0
  1039. data/spec/unit/configurer/downloader_spec.rb +41 -21
  1040. data/spec/unit/configurer/fact_handler_spec.rb +6 -11
  1041. data/spec/unit/configurer/plugin_handler_spec.rb +71 -48
  1042. data/spec/unit/configurer_spec.rb +851 -480
  1043. data/spec/unit/confine/exists_spec.rb +17 -15
  1044. data/spec/unit/confine/false_spec.rb +32 -6
  1045. data/spec/unit/confine/feature_spec.rb +7 -5
  1046. data/spec/unit/confine/true_spec.rb +32 -6
  1047. data/spec/unit/confine/variable_spec.rb +14 -15
  1048. data/spec/unit/confine_collection_spec.rb +28 -29
  1049. data/spec/unit/confine_spec.rb +36 -14
  1050. data/spec/unit/confiner_spec.rb +10 -11
  1051. data/spec/unit/context/trusted_information_spec.rb +68 -5
  1052. data/spec/unit/context_spec.rb +119 -38
  1053. data/spec/unit/daemon_spec.rb +39 -107
  1054. data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
  1055. data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -5
  1056. data/spec/unit/datatypes_spec.rb +352 -0
  1057. data/spec/unit/defaults_spec.rb +182 -19
  1058. data/spec/unit/environments_spec.rb +592 -104
  1059. data/spec/unit/etc_spec.rb +52 -29
  1060. data/spec/unit/external/pson_spec.rb +0 -1
  1061. data/spec/unit/face/config_spec.rb +247 -33
  1062. data/spec/unit/face/epp_face_spec.rb +63 -9
  1063. data/spec/unit/face/facts_spec.rb +70 -1
  1064. data/spec/unit/face/generate_spec.rb +68 -5
  1065. data/spec/unit/face/help_spec.rb +67 -74
  1066. data/spec/unit/face/key_spec.rb +0 -1
  1067. data/spec/unit/face/module/install_spec.rb +3 -5
  1068. data/spec/unit/face/module/list_spec.rb +2 -73
  1069. data/spec/unit/face/module/search_spec.rb +39 -9
  1070. data/spec/unit/face/module/uninstall_spec.rb +4 -8
  1071. data/spec/unit/face/node_spec.rb +22 -59
  1072. data/spec/unit/face/parser_spec.rb +177 -25
  1073. data/spec/unit/face/plugin_spec.rb +56 -19
  1074. data/spec/unit/face/status_spec.rb +0 -1
  1075. data/spec/unit/facter_impl_spec.rb +31 -0
  1076. data/spec/unit/file_bucket/dipper_spec.rb +39 -28
  1077. data/spec/unit/file_bucket/file_spec.rb +0 -2
  1078. data/spec/unit/file_serving/base_spec.rb +17 -21
  1079. data/spec/unit/file_serving/configuration/parser_spec.rb +49 -28
  1080. data/spec/unit/file_serving/configuration_spec.rb +77 -70
  1081. data/spec/unit/file_serving/content_spec.rb +10 -12
  1082. data/spec/unit/file_serving/fileset_spec.rb +123 -59
  1083. data/spec/unit/file_serving/http_metadata_spec.rb +38 -14
  1084. data/spec/unit/file_serving/metadata_spec.rb +41 -42
  1085. data/spec/unit/file_serving/mount/file_spec.rb +31 -32
  1086. data/spec/unit/file_serving/mount/locales_spec.rb +25 -26
  1087. data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
  1088. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +25 -26
  1089. data/spec/unit/file_serving/mount/plugins_spec.rb +25 -26
  1090. data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
  1091. data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
  1092. data/spec/unit/file_serving/mount_spec.rb +0 -1
  1093. data/spec/unit/file_serving/terminus_helper_spec.rb +47 -45
  1094. data/spec/unit/file_serving/terminus_selector_spec.rb +45 -29
  1095. data/spec/unit/file_system/path_pattern_spec.rb +1 -1
  1096. data/spec/unit/file_system/uniquefile_spec.rb +41 -6
  1097. data/spec/unit/file_system_spec.rb +330 -9
  1098. data/spec/unit/forge/errors_spec.rb +1 -1
  1099. data/spec/unit/forge/forge_spec.rb +14 -57
  1100. data/spec/unit/forge/module_release_spec.rb +161 -48
  1101. data/spec/unit/forge/repository_spec.rb +66 -163
  1102. data/spec/unit/forge_spec.rb +47 -114
  1103. data/spec/unit/functions/abs_spec.rb +70 -0
  1104. data/spec/unit/functions/assert_type_spec.rb +2 -2
  1105. data/spec/unit/functions/binary_file_spec.rb +3 -3
  1106. data/spec/unit/functions/break_spec.rb +34 -2
  1107. data/spec/unit/functions/call_spec.rb +59 -5
  1108. data/spec/unit/functions/camelcase_spec.rb +34 -0
  1109. data/spec/unit/functions/capitalize_spec.rb +34 -0
  1110. data/spec/unit/functions/ceiling_spec.rb +65 -0
  1111. data/spec/unit/functions/chomp_spec.rb +46 -0
  1112. data/spec/unit/functions/chop_spec.rb +38 -0
  1113. data/spec/unit/functions/compare_spec.rb +147 -0
  1114. data/spec/unit/functions/contain_spec.rb +2 -3
  1115. data/spec/unit/functions/convert_to_spec.rb +25 -0
  1116. data/spec/unit/functions/defined_spec.rb +0 -1
  1117. data/spec/unit/functions/downcase_spec.rb +34 -0
  1118. data/spec/unit/functions/empty_spec.rb +87 -0
  1119. data/spec/unit/functions/epp_spec.rb +13 -5
  1120. data/spec/unit/functions/filter_spec.rb +4 -4
  1121. data/spec/unit/functions/find_file_spec.rb +7 -7
  1122. data/spec/unit/functions/find_template_spec.rb +69 -0
  1123. data/spec/unit/functions/flatten_spec.rb +31 -0
  1124. data/spec/unit/functions/floor_spec.rb +65 -0
  1125. data/spec/unit/functions/get_spec.rb +135 -0
  1126. data/spec/unit/functions/getvar_spec.rb +121 -0
  1127. data/spec/unit/functions/group_by_spec.rb +40 -0
  1128. data/spec/unit/functions/hiera_spec.rb +14 -48
  1129. data/spec/unit/functions/include_spec.rb +16 -5
  1130. data/spec/unit/functions/index_spec.rb +184 -0
  1131. data/spec/unit/functions/inline_epp_spec.rb +27 -2
  1132. data/spec/unit/functions/join_spec.rb +33 -0
  1133. data/spec/unit/functions/keys_spec.rb +31 -0
  1134. data/spec/unit/functions/length_spec.rb +50 -0
  1135. data/spec/unit/functions/logging_spec.rb +11 -3
  1136. data/spec/unit/functions/lookup_fixture_spec.rb +1 -2
  1137. data/spec/unit/functions/lookup_spec.rb +165 -63
  1138. data/spec/unit/functions/lstrip_spec.rb +30 -0
  1139. data/spec/unit/functions/match_spec.rb +21 -4
  1140. data/spec/unit/functions/max_spec.rb +129 -0
  1141. data/spec/unit/functions/min_spec.rb +129 -0
  1142. data/spec/unit/functions/module_directory_spec.rb +43 -0
  1143. data/spec/unit/functions/new_spec.rb +30 -14
  1144. data/spec/unit/functions/partition_spec.rb +40 -0
  1145. data/spec/unit/functions/regsubst_spec.rb +3 -4
  1146. data/spec/unit/functions/require_spec.rb +1 -2
  1147. data/spec/unit/functions/round_spec.rb +41 -0
  1148. data/spec/unit/functions/rstrip_spec.rb +30 -0
  1149. data/spec/unit/functions/shared.rb +15 -6
  1150. data/spec/unit/functions/size_spec.rb +50 -0
  1151. data/spec/unit/functions/sort_spec.rb +79 -0
  1152. data/spec/unit/functions/split_spec.rb +3 -4
  1153. data/spec/unit/functions/step_spec.rb +1 -1
  1154. data/spec/unit/functions/strftime_spec.rb +2 -2
  1155. data/spec/unit/functions/strip_spec.rb +30 -0
  1156. data/spec/unit/functions/tree_each_spec.rb +49 -0
  1157. data/spec/unit/functions/unwrap_spec.rb +8 -0
  1158. data/spec/unit/functions/upcase_spec.rb +34 -0
  1159. data/spec/unit/functions/values_spec.rb +30 -0
  1160. data/spec/unit/functions/versioncmp_spec.rb +43 -9
  1161. data/spec/unit/functions4_spec.rb +154 -86
  1162. data/spec/unit/gettext/config_spec.rb +45 -14
  1163. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  1164. data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
  1165. data/spec/unit/graph/relationship_graph_spec.rb +1 -2
  1166. data/spec/unit/graph/simple_graph_spec.rb +51 -12
  1167. data/spec/unit/hiera/scope_spec.rb +7 -0
  1168. data/spec/unit/hiera_puppet_spec.rb +20 -20
  1169. data/spec/unit/http/client_spec.rb +938 -0
  1170. data/spec/unit/http/external_client_spec.rb +201 -0
  1171. data/spec/unit/http/resolver_spec.rb +133 -0
  1172. data/spec/unit/http/response_spec.rb +75 -0
  1173. data/spec/unit/http/service/ca_spec.rb +198 -0
  1174. data/spec/unit/http/service/compiler_spec.rb +806 -0
  1175. data/spec/unit/http/service/file_server_spec.rb +307 -0
  1176. data/spec/unit/http/service/puppetserver_spec.rb +82 -0
  1177. data/spec/unit/http/service/report_spec.rb +117 -0
  1178. data/spec/unit/http/service_spec.rb +144 -0
  1179. data/spec/unit/http/session_spec.rb +307 -0
  1180. data/spec/unit/indirector/catalog/compiler_spec.rb +343 -194
  1181. data/spec/unit/indirector/catalog/json_spec.rb +10 -5
  1182. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
  1183. data/spec/unit/indirector/catalog/rest_spec.rb +67 -3
  1184. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
  1185. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
  1186. data/spec/unit/indirector/certificate/file_spec.rb +0 -9
  1187. data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
  1188. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
  1189. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
  1190. data/spec/unit/indirector/direct_file_server_spec.rb +47 -50
  1191. data/spec/unit/indirector/envelope_spec.rb +1 -2
  1192. data/spec/unit/indirector/exec_spec.rb +29 -24
  1193. data/spec/unit/indirector/face_spec.rb +8 -9
  1194. data/spec/unit/indirector/facts/facter_spec.rb +131 -43
  1195. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  1196. data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
  1197. data/spec/unit/indirector/facts/rest_spec.rb +99 -0
  1198. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
  1199. data/spec/unit/indirector/facts/yaml_spec.rb +95 -79
  1200. data/spec/unit/indirector/file_bucket_file/file_spec.rb +156 -100
  1201. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -3
  1202. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -9
  1203. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
  1204. data/spec/unit/indirector/file_content/file_spec.rb +0 -1
  1205. data/spec/unit/indirector/file_content/rest_spec.rb +53 -3
  1206. data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
  1207. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
  1208. data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
  1209. data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
  1210. data/spec/unit/indirector/file_metadata/rest_spec.rb +110 -3
  1211. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
  1212. data/spec/unit/indirector/file_server_spec.rb +143 -137
  1213. data/spec/unit/indirector/indirection_spec.rb +296 -231
  1214. data/spec/unit/indirector/json_spec.rb +10 -12
  1215. data/spec/unit/indirector/key/file_spec.rb +20 -39
  1216. data/spec/unit/indirector/memory_spec.rb +6 -7
  1217. data/spec/unit/indirector/msgpack_spec.rb +10 -12
  1218. data/spec/unit/indirector/node/exec_spec.rb +43 -23
  1219. data/spec/unit/indirector/node/json_spec.rb +33 -0
  1220. data/spec/unit/indirector/node/memory_spec.rb +2 -4
  1221. data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
  1222. data/spec/unit/indirector/node/plain_spec.rb +2 -4
  1223. data/spec/unit/indirector/node/rest_spec.rb +57 -3
  1224. data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
  1225. data/spec/unit/indirector/node/yaml_spec.rb +0 -1
  1226. data/spec/unit/indirector/none_spec.rb +5 -5
  1227. data/spec/unit/indirector/plain_spec.rb +7 -8
  1228. data/spec/unit/indirector/report/json_spec.rb +72 -0
  1229. data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
  1230. data/spec/unit/indirector/report/processor_spec.rb +21 -22
  1231. data/spec/unit/indirector/report/rest_spec.rb +58 -52
  1232. data/spec/unit/indirector/report/yaml_spec.rb +72 -9
  1233. data/spec/unit/indirector/request_spec.rb +27 -29
  1234. data/spec/unit/indirector/resource/ral_spec.rb +40 -82
  1235. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
  1236. data/spec/unit/indirector/rest_spec.rb +166 -107
  1237. data/spec/unit/indirector/ssl_file_spec.rb +99 -122
  1238. data/spec/unit/indirector/status/local_spec.rb +0 -1
  1239. data/spec/unit/indirector/status/rest_spec.rb +43 -3
  1240. data/spec/unit/indirector/terminus_spec.rb +29 -29
  1241. data/spec/unit/indirector/yaml_spec.rb +92 -70
  1242. data/spec/unit/indirector_spec.rb +2 -4
  1243. data/spec/unit/info_service_spec.rb +195 -11
  1244. data/spec/unit/interface/action_builder_spec.rb +0 -1
  1245. data/spec/unit/interface/action_manager_spec.rb +1 -2
  1246. data/spec/unit/interface/action_spec.rb +36 -13
  1247. data/spec/unit/interface/documentation_spec.rb +0 -1
  1248. data/spec/unit/interface/face_collection_spec.rb +19 -12
  1249. data/spec/unit/interface_spec.rb +6 -6
  1250. data/spec/unit/module_spec.rb +135 -113
  1251. data/spec/unit/module_tool/applications/installer_spec.rb +116 -13
  1252. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  1253. data/spec/unit/module_tool/applications/uninstaller_spec.rb +16 -0
  1254. data/spec/unit/module_tool/applications/unpacker_spec.rb +17 -17
  1255. data/spec/unit/module_tool/applications/upgrader_spec.rb +11 -5
  1256. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  1257. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  1258. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  1259. data/spec/unit/module_tool/tar/mini_spec.rb +32 -12
  1260. data/spec/unit/module_tool/tar_spec.rb +12 -13
  1261. data/spec/unit/module_tool_spec.rb +7 -34
  1262. data/spec/unit/network/auth_config_parser_spec.rb +11 -13
  1263. data/spec/unit/network/authconfig_spec.rb +16 -20
  1264. data/spec/unit/network/authorization_spec.rb +4 -5
  1265. data/spec/unit/network/authstore_spec.rb +0 -16
  1266. data/spec/unit/network/format_handler_spec.rb +0 -1
  1267. data/spec/unit/network/format_spec.rb +9 -10
  1268. data/spec/unit/network/format_support_spec.rb +29 -29
  1269. data/spec/unit/network/formats_spec.rb +82 -18
  1270. data/spec/unit/network/http/api/indirected_routes_spec.rb +54 -48
  1271. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +7 -9
  1272. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -2
  1273. data/spec/unit/network/http/api/master/v3/environments_spec.rb +11 -23
  1274. data/spec/unit/network/http/api_spec.rb +0 -28
  1275. data/spec/unit/network/http/compression_spec.rb +27 -25
  1276. data/spec/unit/network/http/connection_spec.rb +537 -275
  1277. data/spec/unit/network/http/factory_spec.rb +82 -36
  1278. data/spec/unit/network/http/handler_spec.rb +10 -23
  1279. data/spec/unit/network/http/nocache_pool_spec.rb +32 -11
  1280. data/spec/unit/network/http/pool_spec.rb +166 -59
  1281. data/spec/unit/network/http/request_spec.rb +0 -2
  1282. data/spec/unit/network/http/response_spec.rb +11 -13
  1283. data/spec/unit/network/http/route_spec.rb +0 -1
  1284. data/spec/unit/network/http/session_spec.rb +9 -3
  1285. data/spec/unit/network/http/site_spec.rb +7 -1
  1286. data/spec/unit/network/http_pool_spec.rb +99 -48
  1287. data/spec/unit/network/http_spec.rb +1 -2
  1288. data/spec/unit/network/resolver_spec.rb +103 -29
  1289. data/spec/unit/network/rights_spec.rb +52 -53
  1290. data/spec/unit/network/uri_spec.rb +47 -0
  1291. data/spec/unit/node/environment_spec.rb +72 -24
  1292. data/spec/unit/node/facts_spec.rb +20 -8
  1293. data/spec/unit/node_spec.rb +38 -23
  1294. data/spec/unit/other/selinux_spec.rb +0 -72
  1295. data/spec/unit/parameter/boolean_spec.rb +1 -2
  1296. data/spec/unit/parameter/package_options_spec.rb +1 -2
  1297. data/spec/unit/parameter/path_spec.rb +0 -1
  1298. data/spec/unit/parameter/value_collection_spec.rb +0 -1
  1299. data/spec/unit/parameter/value_spec.rb +0 -1
  1300. data/spec/unit/parameter_spec.rb +9 -9
  1301. data/spec/unit/parser/ast/block_expression_spec.rb +7 -9
  1302. data/spec/unit/parser/ast/leaf_spec.rb +20 -21
  1303. data/spec/unit/parser/compiler_spec.rb +93 -114
  1304. data/spec/unit/parser/environment_compiler_spec.rb +67 -23
  1305. data/spec/unit/parser/files_spec.rb +0 -1
  1306. data/spec/unit/parser/functions/create_resources_spec.rb +10 -1
  1307. data/spec/unit/parser/functions/digest_spec.rb +0 -5
  1308. data/spec/unit/parser/functions/fail_spec.rb +2 -7
  1309. data/spec/unit/parser/functions/file_spec.rb +13 -18
  1310. data/spec/unit/parser/functions/fqdn_rand_spec.rb +39 -2
  1311. data/spec/unit/parser/functions/generate_spec.rb +36 -39
  1312. data/spec/unit/parser/functions/inline_template_spec.rb +7 -5
  1313. data/spec/unit/parser/functions/realize_spec.rb +9 -0
  1314. data/spec/unit/parser/functions/regsubst_spec.rb +0 -5
  1315. data/spec/unit/parser/functions/scanf_spec.rb +0 -5
  1316. data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
  1317. data/spec/unit/parser/functions/split_spec.rb +0 -5
  1318. data/spec/unit/parser/functions/sprintf_spec.rb +0 -5
  1319. data/spec/unit/parser/functions/tag_spec.rb +8 -6
  1320. data/spec/unit/parser/functions/tagged_spec.rb +36 -0
  1321. data/spec/unit/parser/functions/template_spec.rb +21 -17
  1322. data/spec/unit/parser/functions/versioncmp_spec.rb +1 -6
  1323. data/spec/unit/parser/functions_spec.rb +28 -4
  1324. data/spec/unit/parser/relationship_spec.rb +0 -1
  1325. data/spec/unit/parser/resource/param_spec.rb +1 -1
  1326. data/spec/unit/parser/resource_spec.rb +53 -48
  1327. data/spec/unit/parser/scope_spec.rb +72 -39
  1328. data/spec/unit/parser/templatewrapper_spec.rb +25 -15
  1329. data/spec/unit/parser/type_loader_spec.rb +18 -20
  1330. data/spec/unit/plan_spec.rb +65 -0
  1331. data/spec/unit/pops/adaptable_spec.rb +0 -2
  1332. data/spec/unit/pops/benchmark_spec.rb +0 -1
  1333. data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
  1334. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +10 -1
  1335. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
  1336. data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
  1337. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
  1338. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -2
  1339. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
  1340. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +133 -17
  1341. data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
  1342. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +24 -11
  1343. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
  1344. data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
  1345. data/spec/unit/pops/factory_rspec_helper.rb +1 -1
  1346. data/spec/unit/pops/factory_spec.rb +8 -9
  1347. data/spec/unit/pops/issues_spec.rb +40 -26
  1348. data/spec/unit/pops/loaders/dependency_loader_spec.rb +2 -2
  1349. data/spec/unit/pops/loaders/loader_spec.rb +516 -0
  1350. data/spec/unit/pops/loaders/loaders_spec.rb +294 -46
  1351. data/spec/unit/pops/loaders/module_loaders_spec.rb +112 -0
  1352. data/spec/unit/pops/loaders/static_loader_spec.rb +16 -44
  1353. data/spec/unit/pops/lookup/context_spec.rb +0 -1
  1354. data/spec/unit/pops/lookup/interpolation_spec.rb +7 -3
  1355. data/spec/unit/pops/lookup/lookup_spec.rb +81 -0
  1356. data/spec/unit/pops/merge_strategy_spec.rb +0 -1
  1357. data/spec/unit/pops/migration_spec.rb +3 -5
  1358. data/spec/unit/pops/model/model_spec.rb +5 -1
  1359. data/spec/unit/pops/model/pn_transformer_spec.rb +56 -0
  1360. data/spec/unit/pops/parser/lexer2_spec.rb +89 -26
  1361. data/spec/unit/pops/parser/locator_spec.rb +63 -1
  1362. data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
  1363. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +42 -10
  1364. data/spec/unit/pops/parser/parse_calls_spec.rb +28 -1
  1365. data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
  1366. data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -1
  1367. data/spec/unit/pops/parser/parse_containers_spec.rb +2 -14
  1368. data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
  1369. data/spec/unit/pops/parser/parse_heredoc_spec.rb +124 -12
  1370. data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
  1371. data/spec/unit/pops/parser/parse_plan_spec.rb +47 -0
  1372. data/spec/unit/pops/parser/parse_resource_spec.rb +35 -36
  1373. data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
  1374. data/spec/unit/pops/parser/pn_parser_spec.rb +100 -0
  1375. data/spec/unit/pops/pn_spec.rb +147 -0
  1376. data/spec/unit/pops/puppet_stack_spec.rb +38 -9
  1377. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
  1378. data/spec/unit/pops/serialization/packer_spec.rb +8 -0
  1379. data/spec/unit/pops/serialization/serialization_spec.rb +37 -5
  1380. data/spec/unit/pops/serialization/to_from_hr_spec.rb +74 -4
  1381. data/spec/unit/pops/serialization/to_stringified_spec.rb +162 -0
  1382. data/spec/unit/pops/types/deferred_spec.rb +87 -0
  1383. data/spec/unit/pops/types/error_spec.rb +207 -0
  1384. data/spec/unit/pops/types/iterable_spec.rb +1 -1
  1385. data/spec/unit/pops/types/p_init_type_spec.rb +98 -0
  1386. data/spec/unit/pops/types/p_object_type_spec.rb +298 -13
  1387. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  1388. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  1389. data/spec/unit/pops/types/p_timespan_type_spec.rb +33 -4
  1390. data/spec/unit/pops/types/p_timestamp_type_spec.rb +28 -2
  1391. data/spec/unit/pops/types/p_type_set_type_spec.rb +106 -2
  1392. data/spec/unit/pops/types/p_uri_type_spec.rb +191 -0
  1393. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  1394. data/spec/unit/pops/types/ruby_generator_spec.rb +87 -54
  1395. data/spec/unit/pops/types/string_converter_spec.rb +39 -6
  1396. data/spec/unit/pops/types/task_spec.rb +411 -0
  1397. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  1398. data/spec/unit/pops/types/type_calculator_spec.rb +120 -53
  1399. data/spec/unit/pops/types/type_formatter_spec.rb +31 -13
  1400. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +9 -0
  1401. data/spec/unit/pops/types/type_parser_spec.rb +26 -14
  1402. data/spec/unit/pops/types/types_spec.rb +99 -6
  1403. data/spec/unit/pops/validator/validator_spec.rb +455 -7
  1404. data/spec/unit/pops/visitor_spec.rb +0 -1
  1405. data/spec/unit/property/boolean_spec.rb +1 -1
  1406. data/spec/unit/property/ensure_spec.rb +0 -1
  1407. data/spec/unit/property/keyvalue_spec.rb +127 -38
  1408. data/spec/unit/property/list_spec.rb +26 -27
  1409. data/spec/unit/property/ordered_list_spec.rb +10 -14
  1410. data/spec/unit/property_spec.rb +55 -46
  1411. data/spec/unit/provider/aix_object_spec.rb +821 -0
  1412. data/spec/unit/provider/command_spec.rb +9 -9
  1413. data/spec/unit/provider/exec/posix_spec.rb +38 -15
  1414. data/spec/unit/provider/exec/shell_spec.rb +2 -2
  1415. data/spec/unit/provider/exec/windows_spec.rb +4 -6
  1416. data/spec/unit/provider/exec_spec.rb +210 -1
  1417. data/spec/unit/provider/file/posix_spec.rb +22 -24
  1418. data/spec/unit/provider/file/windows_spec.rb +17 -19
  1419. data/spec/unit/provider/group/aix_spec.rb +91 -0
  1420. data/spec/unit/provider/group/groupadd_spec.rb +237 -29
  1421. data/spec/unit/provider/group/ldap_spec.rb +33 -36
  1422. data/spec/unit/provider/group/pw_spec.rb +15 -18
  1423. data/spec/unit/provider/group/windows_adsi_spec.rb +173 -68
  1424. data/spec/unit/provider/ldap_spec.rb +61 -63
  1425. data/spec/unit/provider/nameservice/directoryservice_spec.rb +102 -109
  1426. data/spec/unit/provider/nameservice_spec.rb +99 -100
  1427. data/spec/unit/provider/package/aix_spec.rb +48 -22
  1428. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  1429. data/spec/unit/provider/package/apt_spec.rb +174 -37
  1430. data/spec/unit/provider/package/aptitude_spec.rb +8 -7
  1431. data/spec/unit/provider/package/aptrpm_spec.rb +8 -13
  1432. data/spec/unit/provider/package/base_spec.rb +7 -6
  1433. data/spec/unit/provider/package/dnf_spec.rb +43 -18
  1434. data/spec/unit/provider/package/dnfmodule_spec.rb +256 -0
  1435. data/spec/unit/provider/package/dpkg_spec.rb +348 -137
  1436. data/spec/unit/provider/package/freebsd_spec.rb +15 -18
  1437. data/spec/unit/provider/package/gem_spec.rb +210 -83
  1438. data/spec/unit/provider/package/hpux_spec.rb +15 -18
  1439. data/spec/unit/provider/package/macports_spec.rb +56 -54
  1440. data/spec/unit/provider/package/nim_spec.rb +76 -59
  1441. data/spec/unit/provider/package/openbsd_spec.rb +62 -49
  1442. data/spec/unit/provider/package/opkg_spec.rb +23 -26
  1443. data/spec/unit/provider/package/pacman_spec.rb +103 -133
  1444. data/spec/unit/provider/package/pip2_spec.rb +36 -0
  1445. data/spec/unit/provider/package/pip3_spec.rb +20 -6
  1446. data/spec/unit/provider/package/pip_spec.rb +252 -157
  1447. data/spec/unit/provider/package/pkg_spec.rb +194 -98
  1448. data/spec/unit/provider/package/pkgdmg_spec.rb +64 -66
  1449. data/spec/unit/provider/package/pkgin_spec.rb +21 -24
  1450. data/spec/unit/provider/package/pkgng_spec.rb +80 -38
  1451. data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
  1452. data/spec/unit/provider/package/portage_spec.rb +89 -74
  1453. data/spec/unit/provider/package/puppet_gem_spec.rb +53 -21
  1454. data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
  1455. data/spec/unit/provider/package/rpm_spec.rb +280 -261
  1456. data/spec/unit/provider/package/sun_spec.rb +16 -18
  1457. data/spec/unit/provider/package/tdnf_spec.rb +9 -12
  1458. data/spec/unit/provider/package/up2date_spec.rb +2 -4
  1459. data/spec/unit/provider/package/urpmi_spec.rb +18 -14
  1460. data/spec/unit/provider/package/windows/exe_package_spec.rb +32 -18
  1461. data/spec/unit/provider/package/windows/msi_package_spec.rb +20 -23
  1462. data/spec/unit/provider/package/windows/package_spec.rb +38 -43
  1463. data/spec/unit/provider/package/windows_spec.rb +51 -36
  1464. data/spec/unit/provider/package/yum_spec.rb +442 -13
  1465. data/spec/unit/provider/package/zypper_spec.rb +202 -106
  1466. data/spec/unit/provider/package_targetable_spec.rb +60 -0
  1467. data/spec/unit/provider/parsedfile_spec.rb +81 -46
  1468. data/spec/unit/provider/service/base_spec.rb +6 -11
  1469. data/spec/unit/provider/service/bsd_spec.rb +52 -51
  1470. data/spec/unit/provider/service/daemontools_spec.rb +71 -52
  1471. data/spec/unit/provider/service/debian_spec.rb +51 -53
  1472. data/spec/unit/provider/service/freebsd_spec.rb +21 -21
  1473. data/spec/unit/provider/service/gentoo_spec.rb +78 -82
  1474. data/spec/unit/provider/service/init_spec.rb +117 -67
  1475. data/spec/unit/provider/service/launchd_spec.rb +196 -114
  1476. data/spec/unit/provider/service/openbsd_spec.rb +98 -92
  1477. data/spec/unit/provider/service/openrc_spec.rb +73 -75
  1478. data/spec/unit/provider/service/openwrt_spec.rb +36 -44
  1479. data/spec/unit/provider/service/rcng_spec.rb +20 -21
  1480. data/spec/unit/provider/service/redhat_spec.rb +76 -58
  1481. data/spec/unit/provider/service/runit_spec.rb +62 -43
  1482. data/spec/unit/provider/service/smf_spec.rb +143 -73
  1483. data/spec/unit/provider/service/src_spec.rb +60 -69
  1484. data/spec/unit/provider/service/systemd_spec.rb +330 -155
  1485. data/spec/unit/provider/service/upstart_spec.rb +106 -84
  1486. data/spec/unit/provider/service/windows_spec.rb +336 -91
  1487. data/spec/unit/provider/user/aix_spec.rb +263 -112
  1488. data/spec/unit/provider/user/directoryservice_spec.rb +229 -124
  1489. data/spec/unit/provider/user/hpux_spec.rb +19 -20
  1490. data/spec/unit/provider/user/ldap_spec.rb +80 -83
  1491. data/spec/unit/provider/user/openbsd_spec.rb +11 -12
  1492. data/spec/unit/provider/user/pw_spec.rb +82 -44
  1493. data/spec/unit/provider/user/user_role_add_spec.rb +109 -92
  1494. data/spec/unit/provider/user/useradd_spec.rb +479 -90
  1495. data/spec/unit/provider/user/windows_adsi_spec.rb +144 -63
  1496. data/spec/unit/provider_spec.rb +241 -47
  1497. data/spec/unit/puppet_pal_2pec.rb +1033 -0
  1498. data/spec/unit/puppet_pal_catalog_spec.rb +962 -0
  1499. data/spec/unit/puppet_pal_spec.rb +3 -0
  1500. data/spec/unit/puppet_spec.rb +58 -25
  1501. data/spec/unit/relationship_spec.rb +0 -1
  1502. data/spec/unit/reports/http_spec.rb +70 -54
  1503. data/spec/unit/reports/store_spec.rb +20 -17
  1504. data/spec/unit/reports_spec.rb +12 -14
  1505. data/spec/unit/resource/capability_finder_spec.rb +31 -29
  1506. data/spec/unit/resource/catalog_spec.rb +104 -82
  1507. data/spec/unit/resource/status_spec.rb +23 -12
  1508. data/spec/unit/resource/type_collection_spec.rb +19 -17
  1509. data/spec/unit/resource/type_spec.rb +52 -38
  1510. data/spec/unit/resource_spec.rb +207 -49
  1511. data/spec/unit/rest/route_spec.rb +132 -0
  1512. data/spec/unit/scheduler/job_spec.rb +0 -1
  1513. data/spec/unit/scheduler/scheduler_spec.rb +0 -1
  1514. data/spec/unit/scheduler/splay_job_spec.rb +1 -2
  1515. data/spec/unit/settings/array_setting_spec.rb +1 -1
  1516. data/spec/unit/settings/autosign_setting_spec.rb +11 -11
  1517. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  1518. data/spec/unit/settings/config_file_spec.rb +9 -1
  1519. data/spec/unit/settings/directory_setting_spec.rb +2 -7
  1520. data/spec/unit/settings/duration_setting_spec.rb +1 -2
  1521. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  1522. data/spec/unit/settings/environment_conf_spec.rb +4 -6
  1523. data/spec/unit/settings/file_setting_spec.rb +54 -48
  1524. data/spec/unit/settings/http_extra_headers_spec.rb +64 -0
  1525. data/spec/unit/settings/ini_file_spec.rb +314 -5
  1526. data/spec/unit/settings/path_setting_spec.rb +2 -3
  1527. data/spec/unit/settings/priority_setting_spec.rb +1 -2
  1528. data/spec/unit/settings/server_list_setting_spec.rb +21 -0
  1529. data/spec/unit/settings/string_setting_spec.rb +14 -15
  1530. data/spec/unit/settings/terminus_setting_spec.rb +1 -2
  1531. data/spec/unit/settings/value_translator_spec.rb +0 -1
  1532. data/spec/unit/settings_spec.rb +905 -448
  1533. data/spec/unit/ssl/base_spec.rb +13 -15
  1534. data/spec/unit/ssl/certificate_request_attributes_spec.rb +21 -8
  1535. data/spec/unit/ssl/certificate_request_spec.rb +84 -65
  1536. data/spec/unit/ssl/certificate_spec.rb +34 -32
  1537. data/spec/unit/ssl/digest_spec.rb +0 -1
  1538. data/spec/unit/ssl/host_spec.rb +336 -649
  1539. data/spec/unit/ssl/key_spec.rb +31 -49
  1540. data/spec/unit/ssl/oids_spec.rb +1 -0
  1541. data/spec/unit/ssl/ssl_provider_spec.rb +630 -0
  1542. data/spec/unit/ssl/state_machine_spec.rb +983 -0
  1543. data/spec/unit/ssl/validator_spec.rb +74 -214
  1544. data/spec/unit/ssl/verifier_spec.rb +123 -0
  1545. data/spec/unit/task_spec.rb +216 -27
  1546. data/spec/unit/test/test_helper_spec.rb +17 -0
  1547. data/spec/unit/transaction/additional_resource_generator_spec.rb +66 -72
  1548. data/spec/unit/transaction/event_manager_spec.rb +114 -89
  1549. data/spec/unit/transaction/event_spec.rb +16 -15
  1550. data/spec/unit/transaction/persistence_spec.rb +83 -27
  1551. data/spec/unit/transaction/report_spec.rb +55 -27
  1552. data/spec/unit/transaction/resource_harness_spec.rb +72 -33
  1553. data/spec/unit/transaction_spec.rb +328 -115
  1554. data/spec/unit/type/component_spec.rb +0 -1
  1555. data/spec/unit/type/exec_spec.rb +210 -95
  1556. data/spec/unit/type/file/checksum_spec.rb +29 -10
  1557. data/spec/unit/type/file/checksum_value_spec.rb +31 -32
  1558. data/spec/unit/type/file/content_spec.rb +72 -58
  1559. data/spec/unit/type/file/ctime_spec.rb +0 -1
  1560. data/spec/unit/type/file/ensure_spec.rb +13 -15
  1561. data/spec/unit/type/file/group_spec.rb +5 -7
  1562. data/spec/unit/type/file/mode_spec.rb +4 -6
  1563. data/spec/unit/type/file/mtime_spec.rb +0 -1
  1564. data/spec/unit/type/file/owner_spec.rb +6 -8
  1565. data/spec/unit/type/file/selinux_spec.rb +16 -21
  1566. data/spec/unit/type/file/source_spec.rb +186 -126
  1567. data/spec/unit/type/file/type_spec.rb +0 -1
  1568. data/spec/unit/type/file_spec.rb +321 -267
  1569. data/spec/unit/type/filebucket_spec.rb +12 -11
  1570. data/spec/unit/type/group_spec.rb +32 -11
  1571. data/spec/unit/type/noop_metaparam_spec.rb +1 -2
  1572. data/spec/unit/type/package/package_settings_spec.rb +44 -23
  1573. data/spec/unit/type/package_spec.rb +76 -54
  1574. data/spec/unit/type/resources_spec.rb +105 -75
  1575. data/spec/unit/type/schedule_spec.rb +29 -29
  1576. data/spec/unit/type/service_spec.rb +252 -76
  1577. data/spec/unit/type/stage_spec.rb +0 -1
  1578. data/spec/unit/type/tidy_spec.rb +92 -61
  1579. data/spec/unit/type/user_spec.rb +79 -143
  1580. data/spec/unit/type/whit_spec.rb +0 -1
  1581. data/spec/unit/type_spec.rb +288 -140
  1582. data/spec/unit/util/at_fork_spec.rb +21 -21
  1583. data/spec/unit/util/autoload_spec.rb +126 -94
  1584. data/spec/unit/util/backups_spec.rb +33 -35
  1585. data/spec/unit/util/character_encoding_spec.rb +5 -48
  1586. data/spec/unit/util/checksums_spec.rb +57 -42
  1587. data/spec/unit/util/colors_spec.rb +1 -2
  1588. data/spec/unit/util/command_line_spec.rb +50 -25
  1589. data/spec/unit/util/constant_inflector_spec.rb +0 -1
  1590. data/spec/unit/util/diff_spec.rb +12 -5
  1591. data/spec/unit/util/docs_spec.rb +1 -1
  1592. data/spec/unit/util/errors_spec.rb +0 -1
  1593. data/spec/unit/util/execution_spec.rb +288 -167
  1594. data/spec/unit/util/execution_stub_spec.rb +2 -3
  1595. data/spec/unit/util/feature_spec.rb +56 -29
  1596. data/spec/unit/util/filetype_spec.rb +62 -50
  1597. data/spec/unit/util/http_proxy_spec.rb +178 -17
  1598. data/spec/unit/util/inifile_spec.rb +70 -52
  1599. data/spec/unit/util/json_lockfile_spec.rb +3 -5
  1600. data/spec/unit/util/json_spec.rb +126 -0
  1601. data/spec/unit/util/ldap/connection_spec.rb +26 -25
  1602. data/spec/unit/util/ldap/generator_spec.rb +0 -1
  1603. data/spec/unit/util/ldap/manager_spec.rb +100 -129
  1604. data/spec/unit/util/lockfile_spec.rb +1 -2
  1605. data/spec/unit/util/log/destinations_spec.rb +68 -37
  1606. data/spec/unit/util/log_spec.rb +55 -151
  1607. data/spec/unit/util/logging_spec.rb +323 -105
  1608. data/spec/unit/util/metric_spec.rb +0 -1
  1609. data/spec/unit/util/monkey_patches_spec.rb +23 -13
  1610. data/spec/unit/util/multi_match_spec.rb +0 -1
  1611. data/spec/unit/util/network_device/config_spec.rb +0 -1
  1612. data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
  1613. data/spec/unit/util/network_device_spec.rb +7 -9
  1614. data/spec/unit/util/package/version/debian_spec.rb +83 -0
  1615. data/spec/unit/util/package/version/pip_spec.rb +464 -0
  1616. data/spec/unit/util/package/version/range_spec.rb +175 -0
  1617. data/spec/unit/util/package/version/rpm_spec.rb +121 -0
  1618. data/spec/unit/util/package_spec.rb +0 -1
  1619. data/spec/unit/util/pidlock_spec.rb +130 -15
  1620. data/spec/unit/util/plist_spec.rb +66 -33
  1621. data/spec/unit/util/posix_spec.rb +426 -47
  1622. data/spec/unit/util/profiler/object_counts_spec.rb +2 -1
  1623. data/spec/unit/util/rdoc_spec.rb +9 -10
  1624. data/spec/unit/util/reference_spec.rb +0 -1
  1625. data/spec/unit/util/resource_template_spec.rb +20 -20
  1626. data/spec/unit/util/retry_action_spec.rb +7 -8
  1627. data/spec/unit/util/rpm_compare_spec.rb +196 -0
  1628. data/spec/unit/util/rubygems_spec.rb +8 -43
  1629. data/spec/unit/util/run_mode_spec.rb +16 -17
  1630. data/spec/unit/util/selinux_spec.rb +204 -98
  1631. data/spec/unit/util/skip_tags_spec.rb +14 -0
  1632. data/spec/unit/util/splayer_spec.rb +8 -9
  1633. data/spec/unit/util/ssl_spec.rb +0 -1
  1634. data/spec/unit/util/storage_spec.rb +125 -12
  1635. data/spec/unit/util/suidmanager_spec.rb +83 -91
  1636. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
  1637. data/spec/unit/util/tag_set_spec.rb +8 -2
  1638. data/spec/unit/util/tagging_spec.rb +27 -9
  1639. data/spec/unit/util/terminal_spec.rb +9 -10
  1640. data/spec/unit/util/user_attr_spec.rb +1 -2
  1641. data/spec/unit/util/warnings_spec.rb +3 -4
  1642. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  1643. data/spec/unit/util/watcher_spec.rb +51 -21
  1644. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -2
  1645. data/spec/unit/util/windows/access_control_list_spec.rb +1 -2
  1646. data/spec/unit/util/windows/adsi_spec.rb +285 -137
  1647. data/spec/unit/util/windows/api_types_spec.rb +105 -42
  1648. data/spec/unit/util/windows/eventlog_spec.rb +10 -13
  1649. data/spec/unit/util/windows/file_spec.rb +0 -1
  1650. data/spec/unit/util/windows/root_certs_spec.rb +1 -2
  1651. data/spec/unit/util/windows/security_descriptor_spec.rb +1 -3
  1652. data/spec/unit/util/windows/service_spec.rb +677 -0
  1653. data/spec/unit/util/windows/sid_spec.rb +131 -21
  1654. data/spec/unit/util/windows/string_spec.rb +1 -2
  1655. data/spec/unit/util/windows_spec.rb +23 -0
  1656. data/spec/unit/util/yaml_spec.rb +193 -34
  1657. data/spec/unit/util_spec.rb +110 -130
  1658. data/spec/unit/version_spec.rb +6 -6
  1659. data/spec/unit/x509/cert_provider_spec.rb +606 -0
  1660. data/spec/unit/x509/pem_store_spec.rb +160 -0
  1661. data/tasks/benchmark.rake +41 -0
  1662. data/tasks/ci.rake +0 -5
  1663. data/tasks/generate_cert_fixtures.rake +194 -0
  1664. data/tasks/manpages.rake +15 -36
  1665. data/tasks/parallel.rake +3 -3
  1666. data/tasks/parser.rake +11 -3
  1667. metadata +3497 -3514
  1668. data/COMMITTERS.md +0 -244
  1669. data/MAINTAINERS +0 -66
  1670. data/ext/README.environment +0 -8
  1671. data/ext/autotest/Rakefile +0 -8
  1672. data/ext/autotest/config +0 -43
  1673. data/ext/autotest/readme.rst +0 -16
  1674. data/ext/cert_inspector +0 -140
  1675. data/ext/dbfix.sql +0 -132
  1676. data/ext/debian/README.Debian +0 -8
  1677. data/ext/debian/README.source +0 -2
  1678. data/ext/debian/TODO.Debian +0 -1
  1679. data/ext/debian/changelog.erb +0 -1122
  1680. data/ext/debian/compat +0 -1
  1681. data/ext/debian/control +0 -144
  1682. data/ext/debian/copyright +0 -361
  1683. data/ext/debian/docs +0 -1
  1684. data/ext/debian/fileserver.conf +0 -41
  1685. data/ext/debian/puppet-common.dirs +0 -13
  1686. data/ext/debian/puppet-common.install +0 -3
  1687. data/ext/debian/puppet-common.lintian-overrides +0 -5
  1688. data/ext/debian/puppet-common.manpages +0 -28
  1689. data/ext/debian/puppet-common.postinst +0 -35
  1690. data/ext/debian/puppet-common.postrm +0 -33
  1691. data/ext/debian/puppet-el.dirs +0 -1
  1692. data/ext/debian/puppet-el.emacsen-install +0 -25
  1693. data/ext/debian/puppet-el.emacsen-remove +0 -11
  1694. data/ext/debian/puppet-el.emacsen-startup +0 -9
  1695. data/ext/debian/puppet-el.install +0 -1
  1696. data/ext/debian/puppet-testsuite.install +0 -2
  1697. data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
  1698. data/ext/debian/puppet.lintian-overrides +0 -3
  1699. data/ext/debian/puppet.logrotate +0 -20
  1700. data/ext/debian/puppet.postinst +0 -20
  1701. data/ext/debian/puppet.postrm +0 -20
  1702. data/ext/debian/puppet.preinst +0 -20
  1703. data/ext/debian/puppetmaster-common.install +0 -2
  1704. data/ext/debian/puppetmaster-common.manpages +0 -2
  1705. data/ext/debian/puppetmaster-common.postinst +0 -6
  1706. data/ext/debian/puppetmaster-passenger.dirs +0 -4
  1707. data/ext/debian/puppetmaster-passenger.postinst +0 -162
  1708. data/ext/debian/puppetmaster-passenger.postrm +0 -61
  1709. data/ext/debian/puppetmaster.README.debian +0 -17
  1710. data/ext/debian/puppetmaster.default +0 -14
  1711. data/ext/debian/puppetmaster.init +0 -137
  1712. data/ext/debian/puppetmaster.lintian-overrides +0 -3
  1713. data/ext/debian/puppetmaster.postinst +0 -20
  1714. data/ext/debian/puppetmaster.postrm +0 -5
  1715. data/ext/debian/puppetmaster.preinst +0 -22
  1716. data/ext/debian/rules +0 -132
  1717. data/ext/debian/source/format +0 -1
  1718. data/ext/debian/source/options +0 -1
  1719. data/ext/debian/vim-puppet.README.Debian +0 -13
  1720. data/ext/debian/vim-puppet.dirs +0 -5
  1721. data/ext/debian/vim-puppet.yaml +0 -7
  1722. data/ext/debian/watch +0 -2
  1723. data/ext/envpuppet +0 -139
  1724. data/ext/envpuppet.bat +0 -14
  1725. data/ext/freebsd/puppetd +0 -26
  1726. data/ext/freebsd/puppetmasterd +0 -26
  1727. data/ext/gentoo/conf.d/puppet +0 -5
  1728. data/ext/gentoo/conf.d/puppetmaster +0 -12
  1729. data/ext/gentoo/init.d/puppet +0 -38
  1730. data/ext/gentoo/init.d/puppetmaster +0 -51
  1731. data/ext/gentoo/puppet/fileserver.conf +0 -41
  1732. data/ext/ips/puppet-agent +0 -44
  1733. data/ext/ips/puppet-master +0 -44
  1734. data/ext/ips/puppet.p5m.erb +0 -12
  1735. data/ext/ips/puppetagent.xml +0 -42
  1736. data/ext/ips/puppetmaster.xml +0 -42
  1737. data/ext/ips/rules +0 -19
  1738. data/ext/ips/transforms +0 -34
  1739. data/ext/ldap/puppet.schema +0 -24
  1740. data/ext/logcheck/puppet +0 -23
  1741. data/ext/osx/file_mapping.yaml +0 -33
  1742. data/ext/osx/postflight.erb +0 -109
  1743. data/ext/osx/preflight.erb +0 -52
  1744. data/ext/osx/prototype.plist.erb +0 -38
  1745. data/ext/puppet-test +0 -477
  1746. data/ext/pure_ruby_dsl/dsl_test.rb +0 -7
  1747. data/ext/rack/config.ru +0 -44
  1748. data/ext/rack/example-passenger-vhost.conf +0 -57
  1749. data/ext/redhat/fileserver.conf +0 -41
  1750. data/ext/redhat/logrotate +0 -21
  1751. data/ext/redhat/puppet.spec.erb +0 -846
  1752. data/ext/redhat/server.init +0 -128
  1753. data/ext/redhat/server.sysconfig +0 -13
  1754. data/ext/solaris/pkginfo +0 -6
  1755. data/ext/solaris/smf/puppetd.xml +0 -77
  1756. data/ext/solaris/smf/puppetmasterd.xml +0 -77
  1757. data/ext/solaris/smf/svc-puppetd +0 -64
  1758. data/ext/solaris/smf/svc-puppetmasterd +0 -60
  1759. data/ext/suse/puppet.spec +0 -310
  1760. data/ext/suse/server.init +0 -173
  1761. data/ext/upload_facts.rb +0 -119
  1762. data/ext/windows/eventlog/Rakefile +0 -32
  1763. data/ext/windows/eventlog/puppetres.dll +0 -0
  1764. data/ext/windows/eventlog/puppetres.mc +0 -18
  1765. data/ext/yaml_nodes.rb +0 -105
  1766. data/lib/puppet/application/ca.rb +0 -11
  1767. data/lib/puppet/application/certificate.rb +0 -17
  1768. data/lib/puppet/application/certificate_request.rb +0 -7
  1769. data/lib/puppet/application/certificate_revocation_list.rb +0 -7
  1770. data/lib/puppet/application/master.rb +0 -317
  1771. data/lib/puppet/bindings.rb +0 -148
  1772. data/lib/puppet/configurer/downloader_factory.rb +0 -44
  1773. data/lib/puppet/external/nagios/base.rb +0 -472
  1774. data/lib/puppet/external/nagios/grammar.ry +0 -248
  1775. data/lib/puppet/external/nagios/makefile +0 -9
  1776. data/lib/puppet/external/nagios/parser.rb +0 -400
  1777. data/lib/puppet/external/nagios.rb +0 -46
  1778. data/lib/puppet/face/ca.rb +0 -266
  1779. data/lib/puppet/face/certificate.rb +0 -165
  1780. data/lib/puppet/face/certificate_request.rb +0 -56
  1781. data/lib/puppet/face/certificate_revocation_list.rb +0 -56
  1782. data/lib/puppet/feature/rack.rb +0 -19
  1783. data/lib/puppet/graph/random_prioritizer.rb +0 -16
  1784. data/lib/puppet/graph/title_hash_prioritizer.rb +0 -16
  1785. data/lib/puppet/indirector/certificate/ca.rb +0 -9
  1786. data/lib/puppet/indirector/certificate/disabled_ca.rb +0 -22
  1787. data/lib/puppet/indirector/certificate_request/ca.rb +0 -22
  1788. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +0 -22
  1789. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +0 -8
  1790. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +0 -22
  1791. data/lib/puppet/indirector/certificate_revocation_list/file.rb +0 -8
  1792. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +0 -22
  1793. data/lib/puppet/indirector/certificate_status/file.rb +0 -91
  1794. data/lib/puppet/indirector/certificate_status/rest.rb +0 -11
  1795. data/lib/puppet/indirector/certificate_status.rb +0 -4
  1796. data/lib/puppet/indirector/key/ca.rb +0 -16
  1797. data/lib/puppet/indirector/key/disabled_ca.rb +0 -22
  1798. data/lib/puppet/indirector/ldap.rb +0 -80
  1799. data/lib/puppet/indirector/node/ldap.rb +0 -259
  1800. data/lib/puppet/indirector/node/write_only_yaml.rb +0 -39
  1801. data/lib/puppet/module_tool/applications/builder.rb +0 -148
  1802. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +0 -18
  1803. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +0 -89
  1804. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +0 -32
  1805. data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +0 -12
  1806. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +0 -48
  1807. data/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +0 -1
  1808. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +0 -6
  1809. data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +0 -1
  1810. data/lib/puppet/network/http/api/ca/v1.rb +0 -11
  1811. data/lib/puppet/network/http/api/ca.rb +0 -2
  1812. data/lib/puppet/network/http/rack/rest.rb +0 -162
  1813. data/lib/puppet/network/http/rack.rb +0 -33
  1814. data/lib/puppet/network/http/webrick/rest.rb +0 -114
  1815. data/lib/puppet/network/http/webrick.rb +0 -123
  1816. data/lib/puppet/network/server.rb +0 -39
  1817. data/lib/puppet/pops/loader/null_loader.rb +0 -60
  1818. data/lib/puppet/provider/aixobject.rb +0 -392
  1819. data/lib/puppet/provider/augeas/augeas.rb +0 -567
  1820. data/lib/puppet/provider/cisco.rb +0 -9
  1821. data/lib/puppet/provider/computer/computer.rb +0 -20
  1822. data/lib/puppet/provider/cron/crontab.rb +0 -297
  1823. data/lib/puppet/provider/host/parsed.rb +0 -46
  1824. data/lib/puppet/provider/interface/cisco.rb +0 -27
  1825. data/lib/puppet/provider/macauthorization/macauthorization.rb +0 -298
  1826. data/lib/puppet/provider/mailalias/aliases.rb +0 -50
  1827. data/lib/puppet/provider/maillist/mailman.rb +0 -108
  1828. data/lib/puppet/provider/mcx/mcxcontent.rb +0 -173
  1829. data/lib/puppet/provider/mount/parsed.rb +0 -282
  1830. data/lib/puppet/provider/mount.rb +0 -59
  1831. data/lib/puppet/provider/naginator.rb +0 -63
  1832. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +0 -590
  1833. data/lib/puppet/provider/selboolean/getsetsebool.rb +0 -47
  1834. data/lib/puppet/provider/selmodule/semodule.rb +0 -140
  1835. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +0 -105
  1836. data/lib/puppet/provider/sshkey/parsed.rb +0 -50
  1837. data/lib/puppet/provider/vlan/cisco.rb +0 -28
  1838. data/lib/puppet/provider/yumrepo/inifile.rb +0 -305
  1839. data/lib/puppet/provider/zfs/zfs.rb +0 -88
  1840. data/lib/puppet/provider/zone/solaris.rb +0 -364
  1841. data/lib/puppet/provider/zpool/zpool.rb +0 -125
  1842. data/lib/puppet/ssl/certificate_authority/autosign_command.rb +0 -45
  1843. data/lib/puppet/ssl/certificate_authority/interface.rb +0 -324
  1844. data/lib/puppet/ssl/certificate_authority.rb +0 -553
  1845. data/lib/puppet/ssl/certificate_revocation_list.rb +0 -110
  1846. data/lib/puppet/ssl/configuration.rb +0 -61
  1847. data/lib/puppet/ssl/inventory.rb +0 -55
  1848. data/lib/puppet/type/augeas.rb +0 -211
  1849. data/lib/puppet/type/computer.rb +0 -66
  1850. data/lib/puppet/type/cron.rb +0 -475
  1851. data/lib/puppet/type/host.rb +0 -95
  1852. data/lib/puppet/type/interface.rb +0 -121
  1853. data/lib/puppet/type/k5login.rb +0 -88
  1854. data/lib/puppet/type/macauthorization.rb +0 -167
  1855. data/lib/puppet/type/mailalias.rb +0 -46
  1856. data/lib/puppet/type/maillist.rb +0 -62
  1857. data/lib/puppet/type/mcx.rb +0 -98
  1858. data/lib/puppet/type/mount.rb +0 -310
  1859. data/lib/puppet/type/nagios_command.rb +0 -3
  1860. data/lib/puppet/type/nagios_contact.rb +0 -3
  1861. data/lib/puppet/type/nagios_contactgroup.rb +0 -3
  1862. data/lib/puppet/type/nagios_host.rb +0 -3
  1863. data/lib/puppet/type/nagios_hostdependency.rb +0 -3
  1864. data/lib/puppet/type/nagios_hostescalation.rb +0 -3
  1865. data/lib/puppet/type/nagios_hostextinfo.rb +0 -3
  1866. data/lib/puppet/type/nagios_hostgroup.rb +0 -3
  1867. data/lib/puppet/type/nagios_service.rb +0 -3
  1868. data/lib/puppet/type/nagios_servicedependency.rb +0 -3
  1869. data/lib/puppet/type/nagios_serviceescalation.rb +0 -3
  1870. data/lib/puppet/type/nagios_serviceextinfo.rb +0 -3
  1871. data/lib/puppet/type/nagios_servicegroup.rb +0 -3
  1872. data/lib/puppet/type/nagios_timeperiod.rb +0 -3
  1873. data/lib/puppet/type/router.rb +0 -17
  1874. data/lib/puppet/type/scheduled_task.rb +0 -183
  1875. data/lib/puppet/type/selboolean.rb +0 -26
  1876. data/lib/puppet/type/selmodule.rb +0 -59
  1877. data/lib/puppet/type/ssh_authorized_key.rb +0 -143
  1878. data/lib/puppet/type/sshkey.rb +0 -83
  1879. data/lib/puppet/type/vlan.rb +0 -26
  1880. data/lib/puppet/type/yumrepo.rb +0 -409
  1881. data/lib/puppet/type/zfs.rb +0 -150
  1882. data/lib/puppet/type/zone.rb +0 -382
  1883. data/lib/puppet/type/zpool.rb +0 -91
  1884. data/lib/puppet/util/methodhelper.rb +0 -32
  1885. data/lib/puppet/util/nagios_maker.rb +0 -85
  1886. data/lib/puppet/util/network_device/cisco/device.rb +0 -285
  1887. data/lib/puppet/util/network_device/cisco/facts.rb +0 -72
  1888. data/lib/puppet/util/network_device/cisco/interface.rb +0 -94
  1889. data/lib/puppet/util/network_device/cisco.rb +0 -4
  1890. data/lib/puppet/util/network_device/ipcalc.rb +0 -68
  1891. data/lib/puppet/util/network_device/transport/ssh.rb +0 -126
  1892. data/lib/puppet/util/network_device/transport/telnet.rb +0 -47
  1893. data/lib/puppet/util/windows/taskscheduler.rb +0 -1276
  1894. data/lib/puppet/vendor/deep_merge/CHANGELOG +0 -45
  1895. data/lib/puppet/vendor/deep_merge/Gemfile +0 -3
  1896. data/lib/puppet/vendor/deep_merge/LICENSE +0 -21
  1897. data/lib/puppet/vendor/deep_merge/PUPPET_README.md +0 -6
  1898. data/lib/puppet/vendor/deep_merge/README.md +0 -113
  1899. data/lib/puppet/vendor/deep_merge/Rakefile +0 -19
  1900. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +0 -35
  1901. data/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +0 -210
  1902. data/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +0 -28
  1903. data/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +0 -27
  1904. data/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +0 -2
  1905. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +0 -608
  1906. data/lib/puppet/vendor/load_deep_merge.rb +0 -1
  1907. data/lib/puppet/vendor/load_semantic.rb +0 -1
  1908. data/lib/puppet/vendor/load_semantic_puppet.rb +0 -1
  1909. data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -5
  1910. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph.rb +0 -60
  1911. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph_node.rb +0 -117
  1912. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +0 -58
  1913. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/source.rb +0 -25
  1914. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/unsatisfiable_graph.rb +0 -31
  1915. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency.rb +0 -181
  1916. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +0 -3
  1917. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +0 -203
  1918. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +0 -758
  1919. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +0 -11
  1920. data/locales/ja/puppet.po +0 -11234
  1921. data/man/man8/puppet-ca.8 +0 -196
  1922. data/man/man8/puppet-cert.8 +0 -118
  1923. data/man/man8/puppet-certificate.8 +0 -240
  1924. data/man/man8/puppet-certificate_request.8 +0 -161
  1925. data/man/man8/puppet-certificate_revocation_list.8 +0 -139
  1926. data/man/man8/puppet-master.8 +0 -85
  1927. data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +0 -19
  1928. data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +0 -18
  1929. data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +0 -15
  1930. data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +0 -4
  1931. data/spec/fixtures/integration/provider/cron/crontab/modify_entry +0 -13
  1932. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +0 -15
  1933. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +0 -6
  1934. data/spec/fixtures/integration/provider/cron/crontab/purged +0 -8
  1935. data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +0 -12
  1936. data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +0 -14
  1937. data/spec/fixtures/integration/provider/cron/crontab/unspecialized +0 -15
  1938. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +0 -31
  1939. data/spec/fixtures/integration/provider/sshkey/sample +0 -21
  1940. data/spec/fixtures/unit/provider/augeas/augeas/augeas/lenses/test.aug +0 -13
  1941. data/spec/fixtures/unit/provider/augeas/augeas/etc/fstab +0 -10
  1942. data/spec/fixtures/unit/provider/augeas/augeas/etc/hosts +0 -6
  1943. data/spec/fixtures/unit/provider/augeas/augeas/etc/test +0 -3
  1944. data/spec/fixtures/unit/provider/augeas/augeas/test.aug +0 -13
  1945. data/spec/fixtures/unit/provider/host/parsed/valid_hosts +0 -19
  1946. data/spec/fixtures/unit/provider/mount/mount-output.aix.txt +0 -7
  1947. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +0 -152
  1948. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +0 -11
  1949. data/spec/fixtures/unit/provider/mount/parsed/darwin.mount +0 -6
  1950. data/spec/fixtures/unit/provider/mount/parsed/freebsd.fstab +0 -8
  1951. data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +0 -3
  1952. data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +0 -17
  1953. data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +0 -11
  1954. data/spec/fixtures/unit/provider/mount/parsed/linux.mount +0 -5
  1955. data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +0 -9
  1956. data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +0 -8
  1957. data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +0 -4
  1958. data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +0 -4
  1959. data/spec/fixtures/unit/provider/mount/parsed/solaris.fstab +0 -11
  1960. data/spec/fixtures/unit/provider/mount/parsed/solaris.mount +0 -6
  1961. data/spec/fixtures/unit/provider/naginator/define_empty_param +0 -6
  1962. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -8
  1963. data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
  1964. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys +0 -7
  1965. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys1 +0 -3
  1966. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys2 +0 -1
  1967. data/spec/fixtures/unit/provider/sshkey/parsed/sample +0 -21
  1968. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +0 -8
  1969. data/spec/fixtures/unit/provider/zfs/zfs/zfs-list.out +0 -2
  1970. data/spec/fixtures/unit/provider/zpool/zpool/zpool-list.out +0 -2
  1971. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +0 -24
  1972. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +0 -24
  1973. data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +0 -24
  1974. data/spec/integration/faces/ca_spec.rb +0 -354
  1975. data/spec/integration/faces/config_spec.rb +0 -80
  1976. data/spec/integration/faces/documentation_spec.rb +0 -58
  1977. data/spec/integration/faces/plugin_spec.rb +0 -59
  1978. data/spec/integration/file_bucket/file_spec.rb +0 -69
  1979. data/spec/integration/file_serving/content_spec.rb +0 -8
  1980. data/spec/integration/file_serving/fileset_spec.rb +0 -13
  1981. data/spec/integration/file_serving/metadata_spec.rb +0 -9
  1982. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -21
  1983. data/spec/integration/file_system/uniquefile_spec.rb +0 -29
  1984. data/spec/integration/indirector/node/ldap_spec.rb +0 -14
  1985. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  1986. data/spec/integration/provider/cron/crontab_spec.rb +0 -242
  1987. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -10
  1988. data/spec/integration/provider/mount_spec.rb +0 -161
  1989. data/spec/integration/provider/service/init_spec.rb +0 -46
  1990. data/spec/integration/provider/service/systemd_spec.rb +0 -20
  1991. data/spec/integration/provider/service/windows_spec.rb +0 -49
  1992. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -219
  1993. data/spec/integration/provider/sshkey_spec.rb +0 -159
  1994. data/spec/integration/provider/yumrepo_spec.rb +0 -130
  1995. data/spec/integration/reference/providers_spec.rb +0 -16
  1996. data/spec/integration/reports_spec.rb +0 -14
  1997. data/spec/integration/ssl/autosign_spec.rb +0 -145
  1998. data/spec/integration/ssl/certificate_authority_spec.rb +0 -162
  1999. data/spec/integration/ssl/certificate_request_spec.rb +0 -47
  2000. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -34
  2001. data/spec/integration/ssl/host_spec.rb +0 -81
  2002. data/spec/integration/ssl/key_spec.rb +0 -104
  2003. data/spec/integration/test/test_helper_spec.rb +0 -32
  2004. data/spec/integration/type/nagios_spec.rb +0 -71
  2005. data/spec/integration/type/user_spec.rb +0 -64
  2006. data/spec/lib/matchers/include.rb +0 -27
  2007. data/spec/lib/matchers/include_spec.rb +0 -32
  2008. data/spec/shared_behaviours/file_serving_model.rb +0 -72
  2009. data/spec/unit/application/cert_spec.rb +0 -240
  2010. data/spec/unit/application/certificate_spec.rb +0 -22
  2011. data/spec/unit/application/master_spec.rb +0 -404
  2012. data/spec/unit/configurer/downloader_factory_spec.rb +0 -129
  2013. data/spec/unit/face/ca_spec.rb +0 -10
  2014. data/spec/unit/face/catalog_spec.rb +0 -7
  2015. data/spec/unit/face/certificate_request_spec.rb +0 -10
  2016. data/spec/unit/face/certificate_revocation_list_spec.rb +0 -10
  2017. data/spec/unit/face/certificate_spec.rb +0 -231
  2018. data/spec/unit/face/module/build_spec.rb +0 -69
  2019. data/spec/unit/face/module_spec.rb +0 -3
  2020. data/spec/unit/graph/title_hash_prioritizer_spec.rb +0 -49
  2021. data/spec/unit/indirector/certificate/ca_spec.rb +0 -23
  2022. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -33
  2023. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -57
  2024. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -33
  2025. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -16
  2026. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -33
  2027. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -17
  2028. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -34
  2029. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -191
  2030. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -18
  2031. data/spec/unit/indirector/code_spec.rb +0 -31
  2032. data/spec/unit/indirector/key/ca_spec.rb +0 -23
  2033. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -33
  2034. data/spec/unit/indirector/ldap_spec.rb +0 -137
  2035. data/spec/unit/indirector/node/ldap_spec.rb +0 -462
  2036. data/spec/unit/indirector/node/write_only_yaml_spec.rb +0 -12
  2037. data/spec/unit/indirector/store_configs_spec.rb +0 -8
  2038. data/spec/unit/man_spec.rb +0 -32
  2039. data/spec/unit/module_tool/applications/builder_spec.rb +0 -432
  2040. data/spec/unit/network/http/api/ca/v1_spec.rb +0 -26
  2041. data/spec/unit/network/http/rack/rest_spec.rb +0 -325
  2042. data/spec/unit/network/http/rack_spec.rb +0 -43
  2043. data/spec/unit/network/http/webrick/rest_spec.rb +0 -231
  2044. data/spec/unit/network/http/webrick_spec.rb +0 -280
  2045. data/spec/unit/network/server_spec.rb +0 -95
  2046. data/spec/unit/provider/aixobject_spec.rb +0 -101
  2047. data/spec/unit/provider/augeas/augeas_spec.rb +0 -1025
  2048. data/spec/unit/provider/cisco_spec.rb +0 -15
  2049. data/spec/unit/provider/cron/crontab_spec.rb +0 -207
  2050. data/spec/unit/provider/cron/parsed_spec.rb +0 -358
  2051. data/spec/unit/provider/host/parsed_spec.rb +0 -233
  2052. data/spec/unit/provider/interface/cisco_spec.rb +0 -57
  2053. data/spec/unit/provider/macauthorization_spec.rb +0 -155
  2054. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -192
  2055. data/spec/unit/provider/mount/parsed_spec.rb +0 -317
  2056. data/spec/unit/provider/mount_spec.rb +0 -165
  2057. data/spec/unit/provider/naginator_spec.rb +0 -79
  2058. data/spec/unit/provider/network_device_spec.rb +0 -152
  2059. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +0 -2060
  2060. data/spec/unit/provider/selboolean_spec.rb +0 -36
  2061. data/spec/unit/provider/selmodule-example.pp +0 -0
  2062. data/spec/unit/provider/selmodule_spec.rb +0 -79
  2063. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -277
  2064. data/spec/unit/provider/sshkey/parsed_spec.rb +0 -95
  2065. data/spec/unit/provider/vlan/cisco_spec.rb +0 -55
  2066. data/spec/unit/provider/yumrepo/inifile_spec.rb +0 -326
  2067. data/spec/unit/provider/zfs/zfs_spec.rb +0 -112
  2068. data/spec/unit/provider/zone/solaris_spec.rb +0 -247
  2069. data/spec/unit/provider/zpool/zpool_spec.rb +0 -251
  2070. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +0 -30
  2071. data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -560
  2072. data/spec/unit/ssl/certificate_authority_spec.rb +0 -1184
  2073. data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -196
  2074. data/spec/unit/ssl/configuration_spec.rb +0 -141
  2075. data/spec/unit/ssl/inventory_spec.rb +0 -151
  2076. data/spec/unit/type/augeas_spec.rb +0 -119
  2077. data/spec/unit/type/computer_spec.rb +0 -80
  2078. data/spec/unit/type/cron_spec.rb +0 -543
  2079. data/spec/unit/type/host_spec.rb +0 -681
  2080. data/spec/unit/type/interface_spec.rb +0 -129
  2081. data/spec/unit/type/k5login_spec.rb +0 -115
  2082. data/spec/unit/type/macauthorization_spec.rb +0 -113
  2083. data/spec/unit/type/mailalias_spec.rb +0 -49
  2084. data/spec/unit/type/maillist_spec.rb +0 -41
  2085. data/spec/unit/type/mcx_spec.rb +0 -79
  2086. data/spec/unit/type/mount_spec.rb +0 -634
  2087. data/spec/unit/type/nagios_spec.rb +0 -313
  2088. data/spec/unit/type/scheduled_task_spec.rb +0 -103
  2089. data/spec/unit/type/selboolean_spec.rb +0 -44
  2090. data/spec/unit/type/selmodule_spec.rb +0 -17
  2091. data/spec/unit/type/ssh_authorized_key_spec.rb +0 -258
  2092. data/spec/unit/type/sshkey_spec.rb +0 -77
  2093. data/spec/unit/type/vlan_spec.rb +0 -44
  2094. data/spec/unit/type/yumrepo_spec.rb +0 -398
  2095. data/spec/unit/type/zfs_spec.rb +0 -46
  2096. data/spec/unit/type/zone_spec.rb +0 -172
  2097. data/spec/unit/type/zpool_spec.rb +0 -109
  2098. data/spec/unit/util/nagios_maker_spec.rb +0 -122
  2099. data/spec/unit/util/network_device/cisco/device_spec.rb +0 -482
  2100. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -64
  2101. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -88
  2102. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -62
  2103. data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -218
  2104. data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -86
  2105. data/spec/watchr.rb +0 -138
@@ -1,13 +1,75 @@
1
+ require 'puppet/util/platform'
2
+
1
3
  module Puppet
2
4
 
3
5
  def self.default_diffargs
4
- if (Facter.value(:kernel) == "AIX" && Facter.value(:kernelmajversion) == "5300")
6
+ if (Puppet.runtime[:facter].value(:kernel) == "AIX" && Puppet.runtime[:facter].value(:kernelmajversion) == "5300")
5
7
  ""
6
8
  else
7
9
  "-u"
8
10
  end
9
11
  end
10
12
 
13
+ def self.default_digest_algorithm
14
+ Puppet::Util::Platform.fips_enabled? ? 'sha256' : 'md5'
15
+ end
16
+
17
+ def self.valid_digest_algorithms
18
+ Puppet::Util::Platform.fips_enabled? ?
19
+ %w[sha256 sha384 sha512 sha224] :
20
+ %w[md5 sha256 sha384 sha512 sha224]
21
+ end
22
+
23
+ def self.default_file_checksum_types
24
+ Puppet::Util::Platform.fips_enabled? ?
25
+ %w[sha256 sha384 sha512 sha224] :
26
+ %w[md5 sha256 sha384 sha512 sha224]
27
+ end
28
+
29
+ def self.valid_file_checksum_types
30
+ Puppet::Util::Platform.fips_enabled? ?
31
+ %w[sha256 sha256lite sha384 sha512 sha224 sha1 sha1lite mtime ctime] :
32
+ %w[md5 md5lite sha256 sha256lite sha384 sha512 sha224 sha1 sha1lite mtime ctime]
33
+ end
34
+
35
+ def self.default_basemodulepath
36
+ if Puppet::Util::Platform.windows?
37
+ path = ['$codedir/modules']
38
+ installdir = ENV["FACTER_env_windows_installdir"]
39
+ if installdir
40
+ path << "#{installdir}/puppet/modules"
41
+ end
42
+ path.join(File::PATH_SEPARATOR)
43
+ else
44
+ '$codedir/modules:/opt/puppetlabs/puppet/modules'
45
+ end
46
+ end
47
+
48
+ def self.default_vendormoduledir
49
+ if Puppet::Util::Platform.windows?
50
+ installdir = ENV["FACTER_env_windows_installdir"]
51
+ if installdir
52
+ "#{installdir}\\puppet\\vendor_modules"
53
+ else
54
+ nil
55
+ end
56
+ else
57
+ '/opt/puppetlabs/puppet/vendor_modules'
58
+ end
59
+ end
60
+
61
+ def self.default_cadir
62
+ return "" if Puppet::Util::Platform.windows?
63
+ old_ca_dir = "#{Puppet[:ssldir]}/ca"
64
+ new_ca_dir = '/etc/puppetlabs/puppetserver/ca'
65
+
66
+ if File.exist?("#{new_ca_dir}/ca_crt.pem")
67
+ new_ca_dir
68
+ else
69
+ old_ca_dir
70
+ end
71
+ end
72
+
11
73
  ############################################################################################
12
74
  # NOTE: For information about the available values for the ":type" property of settings,
13
75
  # see the docs for Settings.define_settings
@@ -15,7 +77,34 @@ module Puppet
15
77
 
16
78
  AS_DURATION = %q{This setting can be a time interval in seconds (30 or 30s), minutes (30m), hours (6h), days (2d), or years (5y).}
17
79
 
18
- define_settings(:main,
80
+ # @api public
81
+ # @param args [Puppet::Settings] the settings object to define default settings for
82
+ # @return void
83
+ def self.initialize_default_settings!(settings)
84
+ settings.define_settings(:main,
85
+ :facterng => {
86
+ :default => false,
87
+ :type => :boolean,
88
+ :desc => 'Whether to enable a pre-Facter 4.0 release of Facter (distributed as
89
+ the "facter-ng" gem). This is not necessary if Facter 3.x or later is installed.
90
+ This setting is still experimental.',
91
+ :hook => proc do |value|
92
+ value = munge(value)
93
+ if value && Puppet::Util::Package.versioncmp(Puppet.runtime[:facter].value('facterversion'), '4.0.0') < 0
94
+ begin
95
+ original_facter = Object.const_get(:Facter)
96
+ Object.send(:remove_const, :Facter)
97
+
98
+ require 'facter-ng'
99
+ # It is required to re-setup logger for facter-ng
100
+ Puppet::Util::Logging.setup_facter_logging!
101
+ rescue LoadError
102
+ Object.const_set(:Facter, original_facter)
103
+ raise ArgumentError, 'facter-ng could not be loaded'
104
+ end
105
+ end
106
+ end
107
+ },
19
108
  :confdir => {
20
109
  :default => nil,
21
110
  :type => :directory,
@@ -52,7 +141,7 @@ module Puppet
52
141
  }
53
142
  )
54
143
 
55
- define_settings(:main,
144
+ settings.define_settings(:main,
56
145
  :logdir => {
57
146
  :default => nil,
58
147
  :type => :directory,
@@ -99,11 +188,24 @@ module Puppet
99
188
  valid = %w[deprecations undefined_variables undefined_resources]
100
189
  invalid = values - (values & valid)
101
190
  if not invalid.empty?
102
- raise ArgumentError, _("Cannot disable unrecognized warning types %{invalid}.") % { invalid: invalid.inspect } +
103
- ' ' + _("Valid values are %{values}.") % { values: valid.inspect}
191
+ raise ArgumentError, _("Cannot disable unrecognized warning types '%{invalid}'.") % { invalid: invalid.join(',') } +
192
+ ' ' + _("Valid values are '%{values}'.") % { values: valid.join(', ') }
104
193
  end
105
194
  end
106
195
  },
196
+ :merge_dependency_warnings => {
197
+ :default => false,
198
+ :type => :boolean,
199
+ :desc => "Whether to merge class-level dependency failure warnings.
200
+
201
+ When a class has a failed dependency, every resource in the class
202
+ generates a notice level message about the dependency failure,
203
+ and a warning level message about skipping the resource.
204
+
205
+ If true, all messages caused by a class dependency failure are merged
206
+ into one message associated with the class.
207
+ ",
208
+ },
107
209
  :strict => {
108
210
  :default => :warning,
109
211
  :type => :symbolic_enum,
@@ -116,7 +218,7 @@ module Puppet
116
218
 
117
219
  The strictness level is for both language semantics and runtime
118
220
  evaluation validation. In addition to controlling the behavior with
119
- this master switch some individual warnings may also be controlled
221
+ this primary server switch some individual warnings may also be controlled
120
222
  by the disable_warnings setting.
121
223
 
122
224
  No new validations will be added to a micro (x.y.z) release,
@@ -143,7 +245,7 @@ module Puppet
143
245
  }
144
246
  )
145
247
 
146
- define_settings(:main,
248
+ settings.define_settings(:main,
147
249
  :priority => {
148
250
  :default => nil,
149
251
  :type => :priority,
@@ -156,12 +258,19 @@ module Puppet
156
258
  :trace => {
157
259
  :default => false,
158
260
  :type => :boolean,
159
- :desc => "Whether to print stack traces on some errors",
261
+ :desc => "Whether to print stack traces on some errors. Will print
262
+ internal Ruby stack trace interleaved with Puppet function frames.",
160
263
  :hook => proc do |value|
161
264
  # Enable or disable Facter's trace option too
162
- Facter.trace(value) if Facter.respond_to? :trace
265
+ Puppet.runtime[:facter].trace(value)
163
266
  end
164
267
  },
268
+ :puppet_trace => {
269
+ :default => false,
270
+ :type => :boolean,
271
+ :desc => "Whether to print the Puppet stack trace on some errors.
272
+ This is a noop if `trace` is also set.",
273
+ },
165
274
  :profile => {
166
275
  :default => false,
167
276
  :type => :boolean,
@@ -174,10 +283,19 @@ module Puppet
174
283
  major releases of Puppet. Should be used with caution, as in development
175
284
  features are experimental and can have unexpected effects."
176
285
  },
286
+ :versioned_environment_dirs => {
287
+ :default => false,
288
+ :type => :boolean,
289
+ :desc => "Whether or not to look for versioned environment directories,
290
+ symlinked from `$environmentpath/<environment>`. This is an experimental
291
+ feature and should be used with caution."
292
+ },
177
293
  :static_catalogs => {
178
294
  :default => true,
179
295
  :type => :boolean,
180
- :desc => "Whether to compile a static catalog."
296
+ :desc => "Whether to compile a [static catalog](https://puppet.com/docs/puppet/latest/static_catalogs.html#enabling-or-disabling-static-catalogs),
297
+ which occurs only on Puppet Server when the `code-id-command` and
298
+ `code-content-command` settings are configured in its `puppetserver.conf` file.",
181
299
  },
182
300
  :strict_environment_mode => {
183
301
  :default => false,
@@ -231,18 +349,18 @@ module Puppet
231
349
  on the CLI.",
232
350
  },
233
351
  :configprint => {
234
- :default => "",
235
- :desc => "Print the value of a specific configuration setting. If the name of a
352
+ :default => "",
353
+ :deprecated => :completely,
354
+ :desc => "Prints the value of a specific configuration setting. If the name of a
236
355
  setting is provided for this, then the value is printed and puppet
237
356
  exits. Comma-separate multiple values. For a list of all values,
238
- specify 'all'.",
357
+ specify 'all'. This setting is deprecated, the 'puppet config' command replaces this functionality.",
239
358
  },
240
359
  :color => {
241
360
  :default => "ansi",
242
361
  :type => :string,
243
362
  :desc => "Whether to use colors when logging to the console. Valid values are
244
- `ansi` (equivalent to `true`), `html`, and `false`, which produces no color.
245
- Defaults to false on Windows, as its console does not support ansi colors.",
363
+ `ansi` (equivalent to `true`), `html`, and `false`, which produces no color."
246
364
  },
247
365
  :mkusers => {
248
366
  :default => false,
@@ -250,9 +368,10 @@ module Puppet
250
368
  :desc => "Whether to create the necessary user and group that puppet agent will run as.",
251
369
  },
252
370
  :manage_internal_file_permissions => {
253
- :default => true,
371
+ :default => ! Puppet::Util::Platform.windows?,
254
372
  :type => :boolean,
255
- :desc => "Whether Puppet should manage the owner, group, and mode of files it uses internally",
373
+ :desc => "Whether Puppet should manage the owner, group, and mode of files it uses internally.
374
+ **Note**: For Windows agents, the default is `false` for versions 4.10.13 and greater, versions 5.5.6 and greater, and versions 6.0 and greater.",
256
375
  },
257
376
  :onetime => {
258
377
  :default => false,
@@ -268,7 +387,7 @@ module Puppet
268
387
  from the parent process.
269
388
 
270
389
  This setting can only be set in the `[main]` section of puppet.conf; it cannot
271
- be set in `[master]`, `[agent]`, or an environment config section.",
390
+ be set in `[server]`, `[agent]`, or an environment config section.",
272
391
  :call_hook => :on_define_and_write,
273
392
  :hook => proc do |value|
274
393
  Puppet::Util.set_env('PATH', '') if Puppet::Util.get_env('PATH').nil?
@@ -287,25 +406,19 @@ module Puppet
287
406
  for those files that Puppet will load on demand, and is only
288
407
  guaranteed to work for those cases. In fact, the autoload
289
408
  mechanism is responsible for making sure this directory
290
- is in Ruby's search path\n",
291
- :call_hook => :on_initialize_and_write,
292
- :hook => proc do |value|
293
- $LOAD_PATH.delete(@oldlibdir) if defined?(@oldlibdir) && $LOAD_PATH.include?(@oldlibdir)
294
- @oldlibdir = value
295
- $LOAD_PATH << value
296
- end
409
+ is in Ruby's search path\n"
297
410
  },
298
411
  :environment => {
299
412
  :default => "production",
300
413
  :desc => "The environment in which Puppet is running. For clients,
301
414
  such as `puppet agent`, this determines the environment itself, which
302
- Puppet uses to find modules and much more. For servers, such as `puppet master`,
415
+ Puppet uses to find modules and much more. For servers, such as `puppet server`,
303
416
  this provides the default environment for nodes that Puppet knows nothing about.
304
417
 
305
418
  When defining an environment in the `[agent]` section, this refers to the
306
- environment that the agent requests from the master. The environment doesn't
419
+ environment that the agent requests from the primary server. The environment doesn't
307
420
  have to exist on the local filesystem because the agent fetches it from the
308
- master. This definition is used when running `puppet agent`.
421
+ primary server. This definition is used when running `puppet agent`.
309
422
 
310
423
  When defined in the `[user]` section, the environment refers to the path that
311
424
  Puppet uses to search for code and modules related to its execution. This
@@ -326,9 +439,20 @@ module Puppet
326
439
 
327
440
  This setting must have a value set to enable **directory environments.** The
328
441
  recommended value is `$codedir/environments`. For more details, see
329
- <https://docs.puppet.com/puppet/latest/reference/environments.html>",
442
+ <https://puppet.com/docs/puppet/latest/environments_about.html>",
330
443
  :type => :path,
331
444
  },
445
+ :use_last_environment => {
446
+ :type => :boolean,
447
+ :default => true,
448
+ :desc => <<-'EOT'
449
+ Puppet saves both the initial and converged environment in the last_run_summary file.
450
+ If they differ, and this setting is set to true, we will use the last converged
451
+ environment and skip the node request.
452
+
453
+ When set to false, we will do the node request and ignore the environment data from the last_run_summary file.
454
+ EOT
455
+ },
332
456
  :always_retry_plugins => {
333
457
  :type => :boolean,
334
458
  :default => true,
@@ -356,7 +480,7 @@ module Puppet
356
480
  files. The command to use can be chosen with the `diff` setting.",
357
481
  },
358
482
  :diff => {
359
- :default => (Puppet.features.microsoft_windows? ? "" : "diff"),
483
+ :default => (Puppet::Util::Platform.windows? ? "" : "diff"),
360
484
  :desc => "Which diff command to use when printing differences between files. This setting
361
485
  has no default value on Windows, as standard `diff` is not available, but Puppet can use many
362
486
  third-party diff tools.",
@@ -373,13 +497,13 @@ module Puppet
373
497
  },
374
498
  :daemonize => {
375
499
  :type => :boolean,
376
- :default => (Puppet.features.microsoft_windows? ? false : true),
500
+ :default => (Puppet::Util::Platform.windows? ? false : true),
377
501
  :desc => "Whether to send the process into the background. This defaults
378
502
  to true on POSIX systems, and to false on Windows (where Puppet
379
503
  currently cannot daemonize).",
380
504
  :short => "D",
381
505
  :hook => proc do |value|
382
- if value and Puppet.features.microsoft_windows?
506
+ if value and Puppet::Util::Platform.windows?
383
507
  raise "Cannot daemonize on Windows"
384
508
  end
385
509
  end
@@ -415,7 +539,7 @@ module Puppet
415
539
 
416
540
  * `plain` --- Returns no data, so that the main manifest controls all node configuration.
417
541
  * `exec` --- Uses an
418
- [external node classifier (ENC)](https://docs.puppet.com/puppet/latest/nodes_external.html),
542
+ [external node classifier (ENC)](https://puppet.com/docs/puppet/latest/nodes_external.html),
419
543
  configured by the `external_nodes` setting. This lets you pull a list of Puppet classes
420
544
  from any external system, using a small glue script to perform the request and format the
421
545
  result as YAML.
@@ -427,7 +551,7 @@ module Puppet
427
551
  :type => :terminus,
428
552
  :default => nil,
429
553
  :desc => "How to store cached nodes.
430
- Valid values are (none), 'json', 'msgpack', 'yaml' or write only yaml ('write_only_yaml').",
554
+ Valid values are (none), 'json', 'msgpack', or 'yaml'.",
431
555
  },
432
556
  :data_binding_terminus => {
433
557
  :type => :terminus,
@@ -454,15 +578,15 @@ module Puppet
454
578
  :hiera_config => {
455
579
  :default => lambda do
456
580
  config = nil
457
- codedir = Puppet.settings[:codedir]
581
+ codedir = settings[:codedir]
458
582
  if codedir.is_a?(String)
459
583
  config = File.expand_path(File.join(codedir, 'hiera.yaml'))
460
584
  config = nil unless Puppet::FileSystem.exist?(config)
461
585
  end
462
- config = File.expand_path(File.join(Puppet.settings[:confdir], 'hiera.yaml')) if config.nil?
586
+ config = File.expand_path(File.join(settings[:confdir], 'hiera.yaml')) if config.nil?
463
587
  config
464
588
  end,
465
- :desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet master every time you edit it.",
589
+ :desc => "The hiera configuration file. Puppet only reads this file on startup, so you must restart the puppet server every time you edit it.",
466
590
  :type => :file,
467
591
  },
468
592
  :binder_config => {
@@ -487,6 +611,25 @@ module Puppet
487
611
  :default => 'facter',
488
612
  :desc => "The node facts terminus.",
489
613
  },
614
+ :trusted_external_command => {
615
+ :default => nil,
616
+ :type => :file_or_directory,
617
+ :desc => "The external trusted facts script or directory to use.
618
+ This setting's value can be set to the path to an executable command that
619
+ can produce external trusted facts or to a directory containing those
620
+ executable commands. The command(s) must:
621
+
622
+ * Take the name of a node as a command-line argument.
623
+ * Return a JSON hash with the external trusted facts for this node.
624
+ * For unknown or invalid nodes, exit with a non-zero exit code.
625
+
626
+ If the setting points to an executable command, then the external trusted
627
+ facts will be stored in the 'external' key of the trusted facts hash. Otherwise
628
+ for each executable file in the directory, the external trusted facts will be
629
+ stored in the `<basename>` key of the `trusted['external']` hash. For example,
630
+ if the files foo.rb and bar.sh are in the directory, then `trusted['external']`
631
+ will be the hash `{ 'foo' => <foo.rb output>, 'bar' => <bar.sh output> }`.",
632
+ },
490
633
  :default_file_terminus => {
491
634
  :type => :terminus,
492
635
  :default => "rest",
@@ -497,9 +640,10 @@ module Puppet
497
640
  },
498
641
  :http_proxy_host => {
499
642
  :default => "none",
500
- :desc => "The HTTP proxy host to use for outgoing connections. Note: You
643
+ :desc => "The HTTP proxy host to use for outgoing connections. The proxy will be bypassed if
644
+ the server's hostname matches the NO_PROXY environment variable or `no_proxy` setting. Note: You
501
645
  may need to use a FQDN for the server hostname when using a proxy. Environment variable
502
- http_proxy or HTTP_PROXY will override this value",
646
+ http_proxy or HTTP_PROXY will override this value. ",
503
647
  },
504
648
  :http_proxy_port => {
505
649
  :default => 3128,
@@ -512,7 +656,7 @@ module Puppet
512
656
  :http_proxy_password =>{
513
657
  :default => "none",
514
658
  :hook => proc do |value|
515
- if Puppet.settings[:http_proxy_password] =~ /[@!# \/]/
659
+ if value =~ /[@!# \/]/
516
660
  raise "Passwords set in the http_proxy_password setting must be valid as part of a URL, and any reserved characters must be URL-encoded. We received: #{value}"
517
661
  end
518
662
  end,
@@ -523,6 +667,10 @@ module Puppet
523
667
  contains any characters with special meanings in URLs (as specified by RFC 3986
524
668
  section 2.2), they must be URL-encoded. (For example, `#` would become `%23`.)",
525
669
  },
670
+ :no_proxy => {
671
+ :default => "localhost, 127.0.0.1",
672
+ :desc => "List of host or domain names that should not go through `http_proxy_host`. Environment variable no_proxy or NO_PROXY will override this value. Names can be specified as an FQDN `host.example.com`, wildcard `*.example.com`, dotted domain `.example.com`, or suffix `example.com`.",
673
+ },
526
674
  :http_keepalive_timeout => {
527
675
  :default => "4s",
528
676
  :type => :duration,
@@ -542,9 +690,10 @@ module Puppet
542
690
  #{AS_DURATION}",
543
691
  },
544
692
  :http_read_timeout => {
693
+ :default => "10m",
545
694
  :type => :duration,
546
- :desc => "The time to wait for one block to be read from an HTTP connection. If nothing is
547
- read after the elapsed interval then the connection will be closed. The default value is unlimited.
695
+ :desc => "The time to wait for data to be read from an HTTP connection. If nothing is
696
+ read after the elapsed interval then the connection will be closed. The default value is 10 minutes.
548
697
  #{AS_DURATION}",
549
698
  },
550
699
  :http_user_agent => {
@@ -556,38 +705,72 @@ module Puppet
556
705
  :type => :duration,
557
706
  :desc => "The minimum time to wait between checking for updates in
558
707
  configuration files. This timeout determines how quickly Puppet checks whether
559
- a file (such as manifests or templates) has changed on disk. #{AS_DURATION}",
708
+ a file (such as manifests or puppet.conf) has changed on disk. The default will
709
+ change in a future release to be 'unlimited', requiring a reload of the Puppet
710
+ service to pick up changes to its internal configuration. Currently we do not
711
+ accept a value of 'unlimited'. To reparse files within an environment in
712
+ Puppet Server please use the environment_cache endpoint",
713
+ :hook => proc do |val|
714
+ unless [0, 15, '15s'].include?(val)
715
+ Puppet.deprecation_warning(<<-WARNING)
716
+ Fine grained control of filetimeouts is deprecated. In future
717
+ releases this value will only determine if file content is cached.
718
+
719
+ Valid values are 0 (never cache) and 15 (15 second minimum wait time).
720
+ WARNING
721
+ end
722
+ end
560
723
  },
561
724
  :environment_timeout => {
562
725
  :default => "0",
563
726
  :type => :ttl,
564
- :desc => "How long the Puppet master should cache data it loads from an
727
+ :desc => "How long the Puppet server should cache data it loads from an
565
728
  environment.
566
- #{AS_DURATION}
729
+
567
730
  A value of `0` will disable caching. This setting can also be set to
568
- `unlimited`, which will cache environments until the master is restarted
569
- or told to refresh the cache.
731
+ `unlimited`, which will cache environments until the server is restarted
732
+ or told to refresh the cache. All other values will result in Puppet
733
+ server evicting expired environments. The expiration time is computed
734
+ based on either when the environment was created or last accessed, see
735
+ `environment_timeout_mode`.
570
736
 
571
737
  You should change this setting once your Puppet deployment is doing
572
738
  non-trivial work. We chose the default value of `0` because it lets new
573
739
  users update their code without any extra steps, but it lowers the
574
- performance of your Puppet master.
575
-
576
- We recommend setting this to `unlimited` and explicitly refreshing your
577
- Puppet master as part of your code deployment process.
578
-
579
- * With Puppet Server, you should refresh environments by calling the
580
- `environment-cache` API endpoint. See the docs for the Puppet Server
581
- administrative API.
582
- * With a Rack Puppet master, you should restart the web server or the
583
- application server. Passenger lets you touch a `restart.txt` file to
584
- refresh an application without restarting Apache; see the Passenger docs
585
- for details.
586
-
587
- We don't recommend using any value other than `0` or `unlimited`, since
588
- most Puppet masters use a pool of Ruby interpreters which all have their
589
- own cache timers. When these timers drift out of sync, agents can be served
590
- inconsistent catalogs."
740
+ performance of your Puppet server. We recommend either:
741
+
742
+ * Setting this to `unlimited` and explicitly refreshing your Puppet server
743
+ as part of your code deployment process.
744
+
745
+ * Setting this to a number that will keep your most actively used
746
+ environments cached, but allow testing environments to fall out of the
747
+ cache and reduce memory usage. A value of 3 minutes (3m) is a reasonable
748
+ value. This option requires setting `environment_timeout_mode` to
749
+ `from_last_used`.
750
+
751
+ Once you set `environment_timeout` to a non-zero value, you need to tell
752
+ Puppet server to read new code from disk using the `environment-cache` API
753
+ endpoint after you deploy new code. See the docs for the Puppet Server
754
+ [administrative API](https://puppet.com/docs/puppetserver/latest/admin-api/v1/environment-cache.html).
755
+ ",
756
+ :hook => proc do |val|
757
+ if Puppet[:environment_timeout_mode] == :from_created
758
+ unless [0, 'unlimited', Float::INFINITY].include?(val)
759
+ Puppet.deprecation_warning("Evicting environments based on their creation time is deprecated, please set `environment_timeout_mode` to `from_last_used` instead.")
760
+ end
761
+ end
762
+ end
763
+ },
764
+ :environment_timeout_mode => {
765
+ :default => :from_created,
766
+ :type => :symbolic_enum,
767
+ :values => [:from_created, :from_last_used],
768
+ :desc => "How Puppet interprets the `environment_timeout` setting when
769
+ `environment_timeout` is neither `0` nor `unlimited`. If set to
770
+ `from_created`, then the environment will be evicted `environment_timeout`
771
+ seconds from when it was created. If set to `from_last_used` then the
772
+ environment will be evicted `environment_timeout` seconds from when it
773
+ was last used."
591
774
  },
592
775
  :environment_data_provider => {
593
776
  :desc => "The name of a registered environment data provider used when obtaining environment
@@ -621,13 +804,6 @@ module Puppet
621
804
  essentially means that you can't have any code outside of a node,
622
805
  class, or definition other than in the site manifest.",
623
806
  },
624
- :trusted_server_facts => {
625
- :default => true,
626
- :type => :boolean,
627
- :deprecated => :completely,
628
- :desc => "The 'trusted_server_facts' setting is deprecated and has no effect as the
629
- feature this enabled is now always on. The setting will be removed in a future version of puppet.",
630
- },
631
807
  :preview_outputdir => {
632
808
  :default => '$vardir/preview',
633
809
  :type => :directory,
@@ -635,32 +811,24 @@ module Puppet
635
811
  :owner => "service",
636
812
  :group => "service",
637
813
  :desc => "The directory where catalog previews per node are generated."
814
+ },
815
+ :location_trusted => {
816
+ :default => false,
817
+ :type => :boolean,
818
+ :desc => "This will allow sending the name + password and the cookie header to all hosts that puppet may redirect to.
819
+ This may or may not introduce a security breach if puppet redirects you to a site to which you'll send your authentication info and cookies."
638
820
  }
639
821
  )
640
822
 
641
- define_settings(:main,
642
- # Whether the application management feature is on or off - now deprecated and always on.
643
- :app_management => {
644
- :default => false,
645
- :type => :boolean,
646
- :desc => "This setting has no effect and will be removed in a future Puppet version.",
647
- :deprecated => :completely,
648
- }
649
- )
650
-
651
- Puppet.define_settings(:module_tool,
823
+ settings.define_settings(:module_tool,
652
824
  :module_repository => {
653
825
  :default => 'https://forgeapi.puppet.com',
654
826
  :desc => "The module repository",
655
827
  },
656
828
  :module_working_dir => {
657
- :default => (Puppet.features.microsoft_windows? ? Dir.tmpdir() : '$vardir/puppet-module'),
829
+ :default => (Puppet::Util::Platform.windows? ? Dir.tmpdir() : '$vardir/puppet-module'),
658
830
  :desc => "The directory into which module tool data is stored",
659
831
  },
660
- :module_skeleton_dir => {
661
- :default => '$module_working_dir/skeleton',
662
- :desc => "The directory which the skeleton for module tool generate is stored.",
663
- },
664
832
  :forge_authorization => {
665
833
  :default => nil,
666
834
  :desc => "The authorization key to connect to the Puppet Forge. Leave blank for unauthorized or license based connections",
@@ -671,7 +839,7 @@ module Puppet
671
839
  }
672
840
  )
673
841
 
674
- Puppet.define_settings(
842
+ settings.define_settings(
675
843
  :main,
676
844
 
677
845
  # We have to downcase the fqdn, because the current ssl stuff (as opposed to in master) doesn't have good facilities for
@@ -679,37 +847,42 @@ module Puppet
679
847
  :certname => {
680
848
  :default => lambda { Puppet::Settings.default_certname.downcase },
681
849
  :desc => "The name to use when handling certificates. When a node
682
- requests a certificate from the CA puppet master, it uses the value of the
850
+ requests a certificate from the CA Puppet Server, it uses the value of the
683
851
  `certname` setting as its requested Subject CN.
684
852
 
685
853
  This is the name used when managing a node's permissions in
686
- [auth.conf](https://docs.puppetlabs.com/puppet/latest/reference/config_file_auth.html).
854
+ [auth.conf](https://puppet.com/docs/puppet/latest/config_file_auth.html).
687
855
  In most cases, it is also used as the node's name when matching
688
- [node definitions](https://docs.puppetlabs.com/puppet/latest/reference/lang_node_definitions.html)
856
+ [node definitions](https://puppet.com/docs/puppet/latest/lang_node_definitions.html)
689
857
  and requesting data from an ENC. (This can be changed with the `node_name_value`
690
858
  and `node_name_fact` settings, although you should only do so if you have
691
859
  a compelling reason.)
692
860
 
693
861
  A node's certname is available in Puppet manifests as `$trusted['certname']`. (See
694
- [Facts and Built-In Variables](https://docs.puppetlabs.com/puppet/latest/reference/lang_facts_and_builtin_vars.html)
862
+ [Facts and Built-In Variables](https://puppet.com/docs/puppet/latest/lang_facts_and_builtin_vars.html)
695
863
  for more details.)
696
864
 
697
865
  * For best compatibility, you should limit the value of `certname` to
698
866
  only use lowercase letters, numbers, periods, underscores, and dashes. (That is,
699
867
  it should match `/\A[a-z0-9._-]+\Z/`.)
700
868
  * The special value `ca` is reserved, and can't be used as the certname
701
- for a normal node.
869
+ for a normal node.
870
+
871
+ **Note:** You must set the certname in the main section of the puppet.conf file. Setting it in a different section causes errors.
702
872
 
703
873
  Defaults to the node's fully qualified domain name.",
704
- :hook => proc { |value| raise(ArgumentError, _("Certificate names must be lower case")) unless value == value.downcase }},
874
+ :call_hook => :on_initialize_and_write,
875
+ :hook => proc { |value|
876
+ raise(ArgumentError, _("Certificate names must be lower case")) unless value == value.downcase
877
+ }},
705
878
  :dns_alt_names => {
706
879
  :default => '',
707
880
  :desc => <<EOT,
708
881
  A comma-separated list of alternate DNS names for Puppet Server. These are extra
709
882
  hostnames (in addition to its `certname`) that the server is allowed to use when
710
- serving agents. Puppet checks this setting when automatically requesting a
711
- certificate for Puppet agent or Puppet Server, and when manually generating a
712
- certificate with `puppet cert generate`.
883
+ serving agents. Puppet checks this setting when automatically creating a
884
+ certificate for Puppet agent or Puppet Server. These can be either IP or DNS, and the type
885
+ should be specified and followed with a colon. Untyped inputs will default to DNS.
713
886
 
714
887
  In order to handle agent requests at a given hostname (like
715
888
  "puppet.example.com"), Puppet Server needs a certificate that proves it's
@@ -721,20 +894,12 @@ names.
721
894
 
722
895
  **Note:** The list of alternate names is locked in when the server's
723
896
  certificate is signed. If you need to change the list later, you can't just
724
- change this setting; you also need to:
725
-
726
- * On the server: Stop Puppet Server.
727
- * On the CA server: Revoke and clean the server's old certificate. (`puppet cert clean <NAME>`)
728
- * On the server: Delete the old certificate (and any old certificate signing requests)
729
- from the [ssldir](https://docs.puppetlabs.com/puppet/latest/reference/dirs_ssldir.html).
730
- * On the server: Run `puppet agent -t --ca_server <CA HOSTNAME>` to request a new certificate
731
- * On the CA server: Sign the certificate request, explicitly allowing alternate names
732
- (`puppet cert sign --allow-dns-alt-names <NAME>`).
733
- * On the server: Run `puppet agent -t --ca_server <CA HOSTNAME>` to retrieve the cert.
734
- * On the server: Start Puppet Server again.
897
+ change this setting; you also need to regenerate the certificate. For more
898
+ information on that process, see the
899
+ [cert regen docs](https://puppet.com/docs/puppet/latest/ssl_regenerate_certificates.html).
735
900
 
736
901
  To see all the alternate names your servers are using, log into your CA server
737
- and run `puppet cert list -a`, then check the output for `(alt names: ...)`.
902
+ and run `puppetserver ca list --all`, then check the output for `(alt names: ...)`.
738
903
  Most agent nodes should NOT have alternate names; the only certs that should
739
904
  have them are Puppet Server nodes that you want other agents to trust.
740
905
  EOT
@@ -745,8 +910,8 @@ EOT
745
910
  :desc => <<EOT
746
911
  An optional file containing custom attributes to add to certificate signing
747
912
  requests (CSRs). You should ensure that this file does not exist on your CA
748
- puppet master; if it does, unwanted certificate extensions may leak into
749
- certificates created with the `puppet cert generate` command.
913
+ Puppet Server; if it does, unwanted certificate extensions may leak into
914
+ certificates created with the `puppetserver ca generate` command.
750
915
 
751
916
  If present, this file must be a YAML hash containing a `custom_attributes` key
752
917
  and/or an `extension_requests` key. The value of each key must be a hash, where
@@ -760,13 +925,17 @@ This is useful for embedding a pre-shared key for autosigning policy executables
760
925
  ("challenge password") OID.
761
926
 
762
927
  Extension requests will be permanently embedded in the final certificate.
763
- Extension OIDs must be in the "ppRegCertExt" (`1.3.6.1.4.1.34380.1.1`) or
764
- "ppPrivCertExt" (`1.3.6.1.4.1.34380.1.2`) OID arcs. The ppRegCertExt arc is
928
+ Extension OIDs must be in the "ppRegCertExt" (`1.3.6.1.4.1.34380.1.1`),
929
+ "ppPrivCertExt" (`1.3.6.1.4.1.34380.1.2`), or
930
+ "ppAuthCertExt" (`1.3.6.1.4.1.34380.1.3`) OID arcs. The ppRegCertExt arc is
765
931
  reserved for four of the most common pieces of data to embed: `pp_uuid` (`.1`),
766
932
  `pp_instance_id` (`.2`), `pp_image_name` (`.3`), and `pp_preshared_key` (`.4`)
767
933
  --- in the YAML file, these can be referred to by their short descriptive names
768
934
  instead of their full OID. The ppPrivCertExt arc is unregulated, and can be used
769
- for site-specific extensions.
935
+ for site-specific extensions. The ppAuthCert arc is reserved for two pieces of
936
+ data to embed: `pp_authorization` (`.1`) and `pp_auth_role` (`.13`). As with
937
+ ppRegCertExt, in the YAML file, these can be referred to by their short
938
+ descriptive name instead of their full OID.
770
939
  EOT
771
940
  },
772
941
  :certdir => {
@@ -785,6 +954,11 @@ EOT
785
954
  :group => "service",
786
955
  :desc => "Where SSL certificates are kept."
787
956
  },
957
+ :ssl_lockfile => {
958
+ :default => "$ssldir/ssl.lock",
959
+ :type => :string,
960
+ :desc => "A lock file to indicate that the ssl bootstrap process is currently in progress.",
961
+ },
788
962
  :publickeydir => {
789
963
  :default => "$ssldir/public_keys",
790
964
  :type => :directory,
@@ -832,7 +1006,8 @@ EOT
832
1006
  :mode => "0644",
833
1007
  :owner => "service",
834
1008
  :group => "service",
835
- :desc => "Where individual hosts store and look for their certificate requests."
1009
+ :deprecated => :completely,
1010
+ :desc => "This setting is deprecated."
836
1011
  },
837
1012
  :hostcert => {
838
1013
  :default => "$certdir/$certname.pem",
@@ -866,6 +1041,23 @@ EOT
866
1041
  :group => "service",
867
1042
  :desc => "Where each client stores the CA certificate."
868
1043
  },
1044
+ :ca_fingerprint => {
1045
+ :default => nil,
1046
+ :type => :string,
1047
+ :desc => "The expected fingerprint of the CA certificate. If specified, the agent
1048
+ will compare the CA certificate fingerprint that it downloads against this value
1049
+ and reject the CA certificate if the values do not match. This only applies
1050
+ during the first download of the CA certificate."
1051
+ },
1052
+ :ssl_trust_store => {
1053
+ :default => nil,
1054
+ :type => :file,
1055
+ :desc => "A file containing CA certificates in PEM format that puppet should trust
1056
+ when making HTTPS requests. This **only** applies to https requests to non-puppet
1057
+ infrastructure, such as retrieving file metadata and content from https file sources,
1058
+ puppet module tool and the 'http' report processor. This setting is ignored when
1059
+ making requests to puppet:// URLs such as catalog and report requests.",
1060
+ },
869
1061
  :ssl_client_ca_auth => {
870
1062
  :type => :file,
871
1063
  :mode => "0644",
@@ -874,17 +1066,20 @@ EOT
874
1066
  :desc => "Certificate authorities who issue server certificates. SSL servers will not be
875
1067
  considered authentic unless they possess a certificate issued by an authority
876
1068
  listed in this file. If this setting has no value then the Puppet master's CA
877
- certificate (localcacert) will be used."
1069
+ certificate (localcacert) will be used.",
1070
+ :hook => proc do |val|
1071
+ Puppet.deprecation_warning(_("Setting 'ssl_client_ca_auth' is deprecated."))
1072
+ end
878
1073
  },
879
1074
  :ssl_server_ca_auth => {
880
1075
  :type => :file,
881
1076
  :mode => "0644",
882
1077
  :owner => "service",
883
1078
  :group => "service",
884
- :desc => "Certificate authorities who issue client certificates. SSL clients will not be
885
- considered authentic unless they possess a certificate issued by an authority
886
- listed in this file. If this setting has no value then the Puppet master's CA
887
- certificate (localcacert) will be used."
1079
+ :deprecated => :completely,
1080
+ :desc => "The setting is deprecated and has no effect. Ensure all root and
1081
+ intermediate certificate authorities used to issue client certificates are
1082
+ contained in the server's `cacert` file on the server."
888
1083
  },
889
1084
  :hostcrl => {
890
1085
  :default => "$ssldir/crl.pem",
@@ -898,142 +1093,136 @@ EOT
898
1093
  :certificate_revocation => {
899
1094
  :default => 'chain',
900
1095
  :type => :certificate_revocation,
901
- :desc => <<EOT
902
- Whether certificate revocation checking should be enabled, and what level of checking should be performed.
903
-
904
- When certificate_revocation is set to 'true' or 'chain', Puppet will download the CA CRL and will perform revocation
905
- checking against each certificate in the chain.
906
-
907
- Puppet is unable to load multiple CRLs, so if certificate_revocation is set to 'chain' and Puppet attempts to verify
908
- a certificate signed by a root CA the behavior is equivalent to the 'leaf' setting, and if Puppet attempts to verify
909
- a certificate signed by an intermediate CA then verification will fail as Puppet will be unable to load the multiple
910
- CRLs required for full chain checking. As such the 'chain' setting is limited in functionality and is meant as a stand
911
- in pending the implementation of full chain checking.
912
-
913
- When certificate_revocation is set to 'leaf', Puppet will download the CA CRL and will verify the leaf certificate
914
- against that CRL. CRLs will not be fetched or checked for the rest of the certificates in the chain. If you are using
915
- an intermediate CA certificate and want to enable certificate revocation checking, this setting must be set to 'leaf'.
916
-
917
- When certificate_revocation is set to 'false', Puppet will disable all certificate revocation checking and will not
918
- attempt to download the CRL.
919
- EOT
1096
+ :desc => <<-'EOT'
1097
+ Whether certificate revocation checking should be enabled, and what level of
1098
+ checking should be performed.
1099
+
1100
+ When certificate revocation is enabled, Puppet expects the contents of its CRL
1101
+ to be one or more PEM-encoded CRLs concatenated together. When using a cert
1102
+ bundle, CRLs for all CAs in the chain of trust must be included in the crl file.
1103
+ The chain should be ordered from least to most authoritative, with the first CRL
1104
+ listed being for the root of the chain and the last being for the leaf CA.
1105
+
1106
+ When certificate_revocation is set to 'true' or 'chain', Puppet ensures
1107
+ that each CA in the chain of trust has not been revoked by its issuing CA.
1108
+
1109
+ When certificate_revocation is set to 'leaf', Puppet verifies certs against
1110
+ the issuing CA's revocation list, but it does not verify the revocation status
1111
+ of the issuing CA or any CA above it within the chain of trust.
1112
+
1113
+ When certificate_revocation is set to 'false', Puppet disables all
1114
+ certificate revocation checking and does not attempt to download the CRL.
1115
+ EOT
1116
+ },
1117
+ :ciphers => {
1118
+ :default => 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256',
1119
+ :type => :string,
1120
+ :desc => "The list of ciphersuites for TLS connections initiated by puppet. The
1121
+ default value is chosen to support TLS 1.0 and up, but can be made
1122
+ more restrictive if needed. The ciphersuites must be specified in OpenSSL
1123
+ format, not IANA."
1124
+ },
1125
+ :key_type => {
1126
+ :default => 'rsa',
1127
+ :type => :enum,
1128
+ :values => %w[rsa ec],
1129
+ :desc => "The type of private key. Valid values are `rsa` and `ec`. Default is `rsa`."
1130
+ },
1131
+ :named_curve => {
1132
+ :default => 'prime256v1',
1133
+ :type => :string,
1134
+ :desc => "The short name for the EC curve used to generate the EC private key. Valid
1135
+ values must be one of the curves in `OpenSSL::PKey::EC.builtin_curves`.
1136
+ Default is `prime256v1`."
920
1137
  },
921
1138
  :digest_algorithm => {
922
- :default => 'md5',
1139
+ :default => lambda { default_digest_algorithm },
923
1140
  :type => :enum,
924
- :values => ["md5", "sha256"],
925
- :desc => 'Which digest algorithm to use for file resources and the filebucket.
926
- Valid values are md5, sha256. Default is md5.',
1141
+ :values => valid_digest_algorithms,
1142
+ :desc => "Which digest algorithm to use for file resources and the filebucket.
1143
+ Valid values are #{valid_digest_algorithms.join(', ')}. Default is
1144
+ #{default_digest_algorithm}.",
927
1145
  },
928
1146
  :supported_checksum_types => {
929
- :default => ['md5', 'sha256'],
1147
+ :default => lambda { default_file_checksum_types },
930
1148
  :type => :array,
931
- :desc => 'Checksum types supported by this agent for use in file resources of a
932
- static catalog. Values must be comma-separated. Valid types are md5,
933
- md5lite, sha256, sha256lite, sha1, sha1lite, mtime, ctime.',
1149
+ :desc => "Checksum types supported by this agent for use in file resources of a
1150
+ static catalog. Values must be comma-separated. Valid types are
1151
+ #{valid_file_checksum_types.join(', ')}. Default is
1152
+ #{default_file_checksum_types.join(', ')}.",
934
1153
  :hook => proc do |value|
935
1154
  values = munge(value)
936
- valid = ['md5', 'md5lite', 'sha256', 'sha256lite', 'sha1', 'sha1lite', 'mtime', 'ctime']
937
- invalid = values.reject {|alg| valid.include?(alg)}
1155
+
1156
+ invalid = values - Puppet.valid_file_checksum_types
938
1157
  if not invalid.empty?
939
- raise ArgumentError, _("Unrecognized checksum types %{invalid} are not supported.") % { invalid: invalid } +
940
- ' ' + _("Valid values are %{values}.") % { values: valid }
1158
+ raise ArgumentError, _("Invalid value '%{value}' for parameter %{name}. Allowed values are '%{allowed_values}'") % {
1159
+ value: invalid.first, name: @name, allowed_values: Puppet.valid_file_checksum_types.join("', '")
1160
+ }
941
1161
  end
942
1162
  end
1163
+ },
1164
+ :logdest => {
1165
+ :type => :string,
1166
+ :desc => "Where to send log messages. Choose between 'syslog' (the POSIX syslog
1167
+ service), 'eventlog' (the Windows Event Log), 'console', or the path to a log
1168
+ file. Multiple destinations can be set using a comma separated list (eg: `/path/file1,console,/path/file2`)"
1169
+ # Sure would be nice to set the Puppet::Util::Log destination here in an :on_initialize_and_write hook,
1170
+ # unfortunately we have a large number of tests that rely on the logging not resetting itself when the
1171
+ # settings are initialized as they test what gets logged during settings initialization.
943
1172
  }
944
1173
  )
945
1174
 
946
- define_settings(
1175
+ settings.define_settings(
947
1176
  :ca,
948
1177
  :ca_name => {
949
- :default => "Puppet CA: $certname",
950
- :desc => "The name to use the Certificate Authority certificate.",
1178
+ :default => "Puppet CA: $certname",
1179
+ :desc => "The name to use the Certificate Authority certificate.",
951
1180
  },
952
1181
  :cadir => {
953
- :default => "$ssldir/ca",
1182
+ :default => lambda { default_cadir },
954
1183
  :type => :directory,
955
- :owner => "service",
956
- :group => "service",
957
- :mode => "0755",
958
- :desc => "The root directory for the certificate authority."
1184
+ :desc => "The root directory for the certificate authority.",
959
1185
  },
960
1186
  :cacert => {
961
1187
  :default => "$cadir/ca_crt.pem",
962
1188
  :type => :file,
963
- :owner => "service",
964
- :group => "service",
965
- :mode => "0644",
966
- :desc => "The CA certificate."
1189
+ :desc => "The CA certificate.",
967
1190
  },
968
1191
  :cakey => {
969
1192
  :default => "$cadir/ca_key.pem",
970
1193
  :type => :file,
971
- :owner => "service",
972
- :group => "service",
973
- :mode => "0640",
974
- :desc => "The CA private key."
1194
+ :desc => "The CA private key.",
975
1195
  },
976
1196
  :capub => {
977
1197
  :default => "$cadir/ca_pub.pem",
978
1198
  :type => :file,
979
- :owner => "service",
980
- :group => "service",
981
- :mode => "0644",
982
- :desc => "The CA public key."
1199
+ :desc => "The CA public key.",
983
1200
  },
984
1201
  :cacrl => {
985
1202
  :default => "$cadir/ca_crl.pem",
986
1203
  :type => :file,
987
- :owner => "service",
988
- :group => "service",
989
- :mode => "0644",
990
- :desc => "The certificate revocation list (CRL) for the CA. Will be used if present but otherwise ignored.",
991
- },
992
- :caprivatedir => {
993
- :default => "$cadir/private",
994
- :type => :directory,
995
- :owner => "service",
996
- :group => "service",
997
- :mode => "0750",
998
- :desc => "Where the CA stores private certificate information."
1204
+ :desc => "The certificate revocation list (CRL) for the CA.",
999
1205
  },
1000
1206
  :csrdir => {
1001
1207
  :default => "$cadir/requests",
1002
1208
  :type => :directory,
1003
- :owner => "service",
1004
- :group => "service",
1005
- :mode => "0755",
1006
- :desc => "Where the CA stores certificate requests"
1209
+ :desc => "Where the CA stores certificate requests.",
1007
1210
  },
1008
1211
  :signeddir => {
1009
1212
  :default => "$cadir/signed",
1010
1213
  :type => :directory,
1011
- :owner => "service",
1012
- :group => "service",
1013
- :mode => "0755",
1014
- :desc => "Where the CA stores signed certificates."
1015
- },
1016
- :capass => {
1017
- :default => "$caprivatedir/ca.pass",
1018
- :type => :file,
1019
- :owner => "service",
1020
- :group => "service",
1021
- :mode => "0640",
1022
- :desc => "Where the CA stores the password for the private key."
1214
+ :desc => "Where the CA stores signed certificates.",
1023
1215
  },
1024
1216
  :serial => {
1025
1217
  :default => "$cadir/serial",
1026
1218
  :type => :file,
1027
- :owner => "service",
1028
- :group => "service",
1029
- :mode => "0644",
1030
- :desc => "Where the serial number for certificates is stored."
1219
+ :desc => "Where the serial number for certificates is stored.",
1031
1220
  },
1032
1221
  :autosign => {
1033
1222
  :default => "$confdir/autosign.conf",
1034
1223
  :type => :autosign,
1035
1224
  :desc => "Whether (and how) to autosign certificate requests. This setting
1036
- is only relevant on a puppet master acting as a certificate authority (CA).
1225
+ is only relevant on a Puppet Server acting as a certificate authority (CA).
1037
1226
 
1038
1227
  Valid values are true (autosigns all certificate requests; not recommended),
1039
1228
  false (disables autosigning certificates), or the absolute path to a file.
@@ -1044,30 +1233,48 @@ EOT
1044
1233
  file, it will be treated as a policy executable; otherwise, it will be
1045
1234
  treated as a config file.
1046
1235
 
1047
- If a custom policy executable is configured, the CA puppet master will run it
1236
+ If a custom policy executable is configured, the CA Puppet Server will run it
1048
1237
  every time it receives a CSR. The executable will be passed the subject CN of the
1049
1238
  request _as a command line argument,_ and the contents of the CSR in PEM format
1050
1239
  _on stdin._ It should exit with a status of 0 if the cert should be autosigned
1051
1240
  and non-zero if the cert should not be autosigned.
1052
1241
 
1053
1242
  If a certificate request is not autosigned, it will persist for review. An admin
1054
- user can use the `puppet cert sign` command to manually sign it, or can delete
1243
+ user can use the `puppetserver ca sign` command to manually sign it, or can delete
1055
1244
  the request.
1056
1245
 
1057
1246
  For info on autosign configuration files, see
1058
- [the guide to Puppet's config files](https://docs.puppetlabs.com/puppet/latest/reference/config_about_settings.html).",
1247
+ [the guide to Puppet's config files](https://puppet.com/docs/puppet/latest/config_file_autosign.html).",
1059
1248
  },
1060
1249
  :allow_duplicate_certs => {
1061
1250
  :default => false,
1062
1251
  :type => :boolean,
1063
- :desc => "Whether to allow a new certificate
1064
- request to overwrite an existing certificate.",
1252
+ :desc => "Whether to allow a new certificate request to overwrite an existing
1253
+ certificate request. If true, then the old certificate must be cleaned using
1254
+ `puppetserver ca clean`, and the new request signed using `puppetserver ca sign`."
1065
1255
  },
1066
1256
  :ca_ttl => {
1067
1257
  :default => "5y",
1068
1258
  :type => :duration,
1069
1259
  :desc => "The default TTL for new certificates.
1070
- #{AS_DURATION}"
1260
+ #{AS_DURATION}",
1261
+ },
1262
+ :crl_refresh_interval => {
1263
+ :type => :duration,
1264
+ :desc => "How often the Puppet agent refreshes its local CRL. By
1265
+ default the CRL is only downloaded once, and never refreshed. If a
1266
+ duration is specified, then the agent will refresh its CRL whenever it
1267
+ next runs and the elapsed time since the CRL was last refreshed exceeds
1268
+ the duration.
1269
+
1270
+ In general, the duration should be greater than the `runinterval`.
1271
+ Setting it to an equal or lesser value will cause the CRL to be
1272
+ refreshed on every run.
1273
+
1274
+ If the agent downloads a new CRL, the agent will use it for subsequent
1275
+ network requests. If the refresh request fails or if the CRL is
1276
+ unchanged on the server, then the agent run will continue using the
1277
+ local CRL it already has.#{AS_DURATION}",
1071
1278
  },
1072
1279
  :keylength => {
1073
1280
  :default => 4096,
@@ -1076,17 +1283,14 @@ EOT
1076
1283
  :cert_inventory => {
1077
1284
  :default => "$cadir/inventory.txt",
1078
1285
  :type => :file,
1079
- :mode => "0644",
1080
- :owner => "service",
1081
- :group => "service",
1082
1286
  :desc => "The inventory file. This is a text file to which the CA writes a
1083
- complete listing of all certificates."
1287
+ complete listing of all certificates.",
1084
1288
  }
1085
1289
  )
1086
1290
 
1087
1291
  # Define the config default.
1088
1292
 
1089
- define_settings(:application,
1293
+ settings.define_settings(:application,
1090
1294
  :config_file_name => {
1091
1295
  :type => :string,
1092
1296
  :default => Puppet::Settings.default_config_file_name,
@@ -1109,17 +1313,13 @@ EOT
1109
1313
  :default => nil,
1110
1314
  :desc => "The address the agent should use to initiate requests.",
1111
1315
  },
1112
- :bindaddress => {
1113
- :default => "*",
1114
- :desc => "The address a listening server should bind to.",
1115
- }
1116
1316
  )
1117
1317
 
1118
- define_settings(:environment,
1318
+ settings.define_settings(:environment,
1119
1319
  :manifest => {
1120
1320
  :default => nil,
1121
1321
  :type => :file_or_directory,
1122
- :desc => "The entry-point manifest for puppet master. This can be one file
1322
+ :desc => "The entry-point manifest for the primary server. This can be one file
1123
1323
  or a directory of manifests to be evaluated in alphabetical order. Puppet manages
1124
1324
  this path as a directory if one exists or if the path ends with a / or \\.
1125
1325
 
@@ -1128,7 +1328,7 @@ EOT
1128
1328
  directory environments instead. If you need to use something other than the
1129
1329
  environment's `manifests` directory as the main manifest, you can set
1130
1330
  `manifest` in environment.conf. For more info, see
1131
- <https://docs.puppet.com/puppet/latest/reference/environments.html>",
1331
+ <https://puppet.com/docs/puppet/latest/environments_about.html>",
1132
1332
  },
1133
1333
  :modulepath => {
1134
1334
  :default => "",
@@ -1142,7 +1342,7 @@ EOT
1142
1342
  directory environments instead. If you need to use something other than the
1143
1343
  default modulepath of `<ACTIVE ENVIRONMENT'S MODULES DIR>:$basemodulepath`,
1144
1344
  you can set `modulepath` in environment.conf. For more info, see
1145
- <https://docs.puppet.com/puppet/latest/reference/environments.html>",
1345
+ <https://puppet.com/docs/puppet/latest/environments_about.html>",
1146
1346
  },
1147
1347
  :config_version => {
1148
1348
  :default => "",
@@ -1154,18 +1354,22 @@ EOT
1154
1354
  Setting a global value for config_version in puppet.conf is not allowed
1155
1355
  (but it can be overridden from the commandline). Please set a
1156
1356
  per-environment value in environment.conf instead. For more info, see
1157
- <https://docs.puppet.com/puppet/latest/reference/environments.html>",
1357
+ <https://puppet.com/docs/puppet/latest/environments_about.html>",
1158
1358
  }
1159
1359
  )
1160
1360
 
1161
- define_settings(:master,
1361
+ settings.define_settings(:server,
1162
1362
  :user => {
1163
1363
  :default => "puppet",
1164
- :desc => "The user puppet master should run as.",
1364
+ :desc => "The user Puppet Server will run as. Used to ensure
1365
+ the agent side processes (agent, apply, etc) create files and
1366
+ directories readable by Puppet Server when necessary.",
1165
1367
  },
1166
1368
  :group => {
1167
1369
  :default => "puppet",
1168
- :desc => "The group puppet master should run as.",
1370
+ :desc => "The group Puppet Server will run as. Used to ensure
1371
+ the agent side processes (agent, apply, etc) create files and
1372
+ directories readable by Puppet Server when necessary.",
1169
1373
  },
1170
1374
  :default_manifest => {
1171
1375
  :default => "./manifests",
@@ -1204,32 +1408,34 @@ EOT
1204
1408
  by `puppet`, and should only be set if you're writing your own Puppet
1205
1409
  executable.",
1206
1410
  },
1207
- :masterhttplog => {
1208
- :default => "$logdir/masterhttp.log",
1209
- :type => :file,
1210
- :owner => "service",
1211
- :group => "service",
1212
- :mode => "0660",
1213
- :create => true,
1214
- :desc => "Where the puppet master web server saves its access log. This is
1215
- only used when running a WEBrick puppet master. When puppet master is
1216
- running under a Rack server like Passenger, that web server will have
1217
- its own logging behavior."
1218
- },
1219
1411
  :masterport => {
1220
1412
  :default => 8140,
1221
- :desc => "The port for puppet master traffic. For puppet master,
1222
- this is the port to listen on; for puppet agent, this is the port
1223
- to make requests on. Both applications use this setting to get the port.",
1413
+ :desc => "The default port puppet subcommands use to communicate
1414
+ with Puppet Server. (eg `puppet facts upload`, `puppet agent`). May be
1415
+ overridden by more specific settings (see `ca_port`, `report_port`).",
1416
+ },
1417
+ :serverport => {
1418
+ :type => :alias,
1419
+ :alias_for => :masterport
1224
1420
  },
1225
1421
  :node_name => {
1226
- :default => "cert",
1422
+ :default => 'cert',
1423
+ :type => :enum,
1424
+ :values => ['cert', 'facter'],
1425
+ :deprecated => :completely,
1426
+ :hook => proc { |val|
1427
+ if val != 'cert'
1428
+ Puppet.deprecation_warning("The node_name setting is deprecated and will be removed in a future release.")
1429
+ end
1430
+ },
1227
1431
  :desc => "How the puppet master determines the client's identity
1228
1432
  and sets the 'hostname', 'fqdn' and 'domain' facts for use in the manifest,
1229
1433
  in particular for determining which 'node' statement applies to the client.
1230
1434
  Possible values are 'cert' (use the subject's CN in the client's
1231
1435
  certificate) and 'facter' (use the hostname that the client
1232
- reported in its facts)",
1436
+ reported in its facts).
1437
+
1438
+ This setting is deprecated, please use explicit fact matching for classification.",
1233
1439
  },
1234
1440
  :bucketdir => {
1235
1441
  :default => "$vardir/bucket",
@@ -1242,14 +1448,11 @@ EOT
1242
1448
  :rest_authconfig => {
1243
1449
  :default => "$confdir/auth.conf",
1244
1450
  :type => :file,
1451
+ :deprecated => :completely,
1245
1452
  :desc => "The configuration file that defines the rights to the different
1246
- rest indirections. This can be used as a fine-grained
1247
- authorization system for `puppet master`.",
1248
- },
1249
- :ca => {
1250
- :default => true,
1251
- :type => :boolean,
1252
- :desc => "Whether the master should function as a certificate authority.",
1453
+ rest indirections. This can be used as a fine-grained authorization system for
1454
+ `puppet master`. The `puppet master` command is deprecated and Puppet Server
1455
+ uses its own auth.conf that must be placed within its configuration directory.",
1253
1456
  },
1254
1457
  :trusted_oid_mapping_file => {
1255
1458
  :default => "$confdir/custom_trusted_oid_mapping.yaml",
@@ -1257,7 +1460,7 @@ EOT
1257
1460
  :desc => "File that provides mapping between custom SSL oids and user-friendly names"
1258
1461
  },
1259
1462
  :basemodulepath => {
1260
- :default => "$codedir/modules#{File::PATH_SEPARATOR}/opt/puppetlabs/puppet/modules",
1463
+ :default => lambda { default_basemodulepath },
1261
1464
  :type => :path,
1262
1465
  :desc => "The search path for **global** modules. Should be specified as a
1263
1466
  list of directories separated by the system path separator character. (The
@@ -1266,7 +1469,15 @@ EOT
1266
1469
  These are the modules that will be used by _all_ environments. Note that
1267
1470
  the `modules` directory of the active environment will have priority over
1268
1471
  any global directories. For more info, see
1269
- <https://docs.puppet.com/puppet/latest/reference/environments.html>",
1472
+ <https://puppet.com/docs/puppet/latest/environments_about.html>",
1473
+ },
1474
+ :vendormoduledir => {
1475
+ :default => lambda { default_vendormoduledir },
1476
+ :type => :string,
1477
+ :desc => "The directory containing **vendored** modules. These modules will
1478
+ be used by _all_ environments like those in the `basemodulepath`. The only
1479
+ difference is that modules in the `basemodulepath` are pluginsynced, while
1480
+ vendored modules are not",
1270
1481
  },
1271
1482
  :ssl_client_header => {
1272
1483
  :default => "HTTP_X_CLIENT_DN",
@@ -1315,15 +1526,17 @@ EOT
1315
1526
  their names should be comma-separated, with whitespace allowed. (For example,
1316
1527
  `reports = http, store`.)
1317
1528
 
1318
- This setting is relevant to puppet master and puppet apply. The puppet
1319
- master will call these report handlers with the reports it receives from
1529
+ This setting is relevant to puppet server and puppet apply. The primary Puppet
1530
+ server will call these report handlers with the reports it receives from
1320
1531
  agent nodes, and puppet apply will call them with its own report. (In
1321
1532
  all cases, the node applying the catalog must have `report = true`.)
1322
1533
 
1323
1534
  See the report reference for information on the built-in report
1324
1535
  handlers; custom report handlers can also be loaded from modules.
1325
1536
  (Report handlers are loaded from the lib directory, at
1326
- `puppet/reports/NAME.rb`.)",
1537
+ `puppet/reports/NAME.rb`.)
1538
+
1539
+ To turn off reports entirely, set this to `none`",
1327
1540
  },
1328
1541
  :reportdir => {
1329
1542
  :default => "$vardir/reports",
@@ -1347,14 +1560,23 @@ EOT
1347
1560
  :desc => "Where the fileserver configuration is stored.",
1348
1561
  },
1349
1562
  :strict_hostname_checking => {
1350
- :default => false,
1563
+ :default => true,
1564
+ :type => :boolean,
1351
1565
  :desc => "Whether to only search for the complete
1352
- hostname as it is in the certificate when searching for node information
1353
- in the catalogs.",
1566
+ hostname as it is in the certificate when searching for node information
1567
+ in the catalogs or to match dot delimited segments of the cert's certname
1568
+ and the hostname, fqdn, and/or domain facts.
1569
+
1570
+ This setting is deprecated and will be removed in a future release.",
1571
+ :hook => proc { |val|
1572
+ if val != true
1573
+ Puppet.deprecation_warning("Setting strict_hostname_checking to false is deprecated and will be removed in a future release. Please use regular expressions in your node declarations or explicit fact matching for classification (though be warned that fact based classification may be considered insecure).")
1574
+ end
1575
+ }
1354
1576
  }
1355
1577
  )
1356
1578
 
1357
- define_settings(:device,
1579
+ settings.define_settings(:device,
1358
1580
  :devicedir => {
1359
1581
  :default => "$vardir/devices",
1360
1582
  :type => :directory,
@@ -1369,11 +1591,11 @@ EOT
1369
1591
  }
1370
1592
  )
1371
1593
 
1372
- define_settings(:agent,
1594
+ settings.define_settings(:agent,
1373
1595
  :node_name_value => {
1374
1596
  :default => "$certname",
1375
1597
  :desc => "The explicit value used for the node name for all requests the agent
1376
- makes to the master. WARNING: This setting is mutually exclusive with
1598
+ makes to the primary server. WARNING: This setting is mutually exclusive with
1377
1599
  node_name_fact. Changing this setting also requires changes to the default
1378
1600
  auth.conf configuration on the Puppet Master. Please see
1379
1601
  http://links.puppet.com/node_name_value for more information."
@@ -1381,7 +1603,7 @@ EOT
1381
1603
  :node_name_fact => {
1382
1604
  :default => "",
1383
1605
  :desc => "The fact name used to determine the node name used for all requests the agent
1384
- makes to the master. WARNING: This setting is mutually exclusive with
1606
+ makes to the primary server. WARNING: This setting is mutually exclusive with
1385
1607
  node_name_value. Changing this setting also requires changes to the default
1386
1608
  auth.conf configuration on the Puppet Master. Please see
1387
1609
  http://links.puppet.com/node_name_fact for more information.",
@@ -1394,16 +1616,29 @@ EOT
1394
1616
  :statefile => {
1395
1617
  :default => "$statedir/state.yaml",
1396
1618
  :type => :file,
1397
- :mode => "0660",
1398
- :desc => "Where puppet agent and puppet master store state associated
1399
- with the running configuration. In the case of puppet master,
1619
+ :mode => "0640",
1620
+ :desc => "Where Puppet agent and Puppet Server store state associated
1621
+ with the running configuration. In the case of Puppet Server,
1400
1622
  this file reflects the state discovered through interacting
1401
1623
  with clients."
1402
- },
1624
+ },
1625
+ :statettl => {
1626
+ :default => "32d",
1627
+ :type => :ttl,
1628
+ :desc => "How long the Puppet agent should cache when a resource was last checked or synced.
1629
+ #{AS_DURATION}
1630
+ A value of `0` or `unlimited` will disable cache pruning.
1631
+
1632
+ This setting affects the usage of `schedule` resources, as the information
1633
+ about when a resource was last checked (and therefore when it needs to be
1634
+ checked again) is stored in the `statefile`. The `statettl` needs to be
1635
+ large enough to ensure that a resource will not trigger multiple times
1636
+ during a schedule due to its entry expiring from the cache."
1637
+ },
1403
1638
  :transactionstorefile => {
1404
1639
  :default => "$statedir/transactionstore.yaml",
1405
1640
  :type => :file,
1406
- :mode => "0660",
1641
+ :mode => "0640",
1407
1642
  :desc => "Transactional storage file for persisting data between
1408
1643
  transactions for the purposes of infering information (such as
1409
1644
  corrective_change) on new data received."
@@ -1420,6 +1655,12 @@ EOT
1420
1655
  :mode => "0750",
1421
1656
  :desc => "The directory in which serialized data is stored on the client."
1422
1657
  },
1658
+ :write_catalog_summary => {
1659
+ :default => true,
1660
+ :type => :boolean,
1661
+ :desc => "Whether to write the `classfile` and `resourcefile` after applying
1662
+ the catalog. It is enabled by default, except when running `puppet apply`.",
1663
+ },
1423
1664
  :classfile => {
1424
1665
  :default => "$statedir/classes.txt",
1425
1666
  :type => :file,
@@ -1446,41 +1687,31 @@ EOT
1446
1687
  the POSIX syslog service and the Windows Event Log are unavailable. (Currently,
1447
1688
  no supported operating systems match that description.)
1448
1689
 
1449
- Despite the name, both puppet agent and puppet master will use this file
1690
+ Despite the name, both puppet agent and puppet server will use this file
1450
1691
  as the fallback logging destination.
1451
1692
 
1452
1693
  For control over logging destinations, see the `--logdest` command line
1453
- option in the manual pages for puppet master, puppet agent, and puppet
1694
+ option in the manual pages for puppet server, puppet agent, and puppet
1454
1695
  apply. You can see man pages by running `puppet <SUBCOMMAND> --help`,
1455
- or read them online at https://docs.puppetlabs.com/puppet/latest/reference/man/."
1696
+ or read them online at https://puppet.com/docs/puppet/latest/man/."
1697
+ },
1698
+ :deviceconfdir => {
1699
+ :default => "$confdir/devices",
1700
+ :type => :directory,
1701
+ :mode => "0750",
1702
+ :owner => "service",
1703
+ :group => "service",
1704
+ :desc => "The root directory of devices' $confdir.",
1456
1705
  },
1457
1706
  :server => {
1458
1707
  :default => "puppet",
1459
- :desc => "The puppet master server to which the puppet agent should connect.",
1460
- :call_hook => :on_initialize_and_write,
1461
- :hook => proc { |value|
1462
- if Puppet.settings.set_by_config?(:server) && Puppet.settings.set_by_config?(:server_list)
1463
- #TRANSLATOR 'server' and 'server_list' are setting names and should not be translated
1464
- message = _('Attempted to set both server and server_list.')
1465
- message += ' ' + _('Server setting will not be used.')
1466
- Puppet.deprecation_warning(message, :SERVER_DUPLICATION)
1467
- end
1468
- }
1708
+ :desc => "The primary Puppet server to which the Puppet agent should connect.",
1469
1709
  },
1470
1710
  :server_list => {
1471
1711
  :default => [],
1472
1712
  :type => :server_list,
1473
- :desc => "The list of puppet master servers to which the puppet agent should connect,
1713
+ :desc => "The list of primary Puppet servers to which the Puppet agent should connect,
1474
1714
  in the order that they will be tried.",
1475
- :call_hook => :on_initialize_and_write,
1476
- :hook => proc { |value|
1477
- if Puppet.settings.set_by_config?(:server) && Puppet.settings.set_by_config?(:server_list)
1478
- #TRANSLATOR 'server' and 'server_list' are setting names and should not be translated
1479
- message = _('Attempted to set both server and server_list.')
1480
- message += ' ' + _('Server setting will not be used.')
1481
- Puppet.deprecation_warning(message, :SERVER_DUPLICATION)
1482
- end
1483
- }
1484
1715
  },
1485
1716
  :use_srv_records => {
1486
1717
  :default => false,
@@ -1491,6 +1722,12 @@ EOT
1491
1722
  :default => lambda { Puppet::Settings.domain_fact },
1492
1723
  :desc => "The domain which will be queried to find the SRV records of servers to use.",
1493
1724
  },
1725
+ :http_extra_headers => {
1726
+ :default => [],
1727
+ :type => :http_extra_headers,
1728
+ :desc => "The list of extra headers that will be sent with http requests to the primary server.
1729
+ The header definition consists of a name and a value separated by a colon."
1730
+ },
1494
1731
  :ignoreschedules => {
1495
1732
  :default => false,
1496
1733
  :type => :boolean,
@@ -1514,14 +1751,14 @@ EOT
1514
1751
  like it does when running normally. However, if a resource attribute is not in
1515
1752
  the desired state (as declared in the catalog), Puppet will take no
1516
1753
  action, and will instead report the changes it _would_ have made. These
1517
- simulated changes will appear in the report sent to the puppet master, or
1754
+ simulated changes will appear in the report sent to the primary Puppet server, or
1518
1755
  be shown on the console if running puppet agent or puppet apply in the
1519
1756
  foreground. The simulated changes will not send refresh events to any
1520
1757
  subscribing or notified resources, although Puppet will log that a refresh
1521
1758
  event _would_ have been sent.
1522
1759
 
1523
1760
  **Important note:**
1524
- [The `noop` metaparameter](https://docs.puppetlabs.com/puppet/latest/reference/metaparameter.html#noop)
1761
+ [The `noop` metaparameter](https://puppet.com/docs/puppet/latest/metaparameter.html#noop)
1525
1762
  allows you to apply individual resources in noop mode, and will override
1526
1763
  the global value of the `noop` setting. This means a resource with
1527
1764
  `noop => false` _will_ be changed if necessary, even when running puppet
@@ -1533,15 +1770,14 @@ EOT
1533
1770
  :type => :duration,
1534
1771
  :desc => "How often puppet agent applies the catalog.
1535
1772
  Note that a runinterval of 0 means \"run continuously\" rather than
1536
- \"never run.\" If you want puppet agent to never run, you should start
1537
- it with the `--no-client` option. #{AS_DURATION}",
1773
+ \"never run.\" #{AS_DURATION}",
1538
1774
  },
1539
1775
  :runtimeout => {
1540
- :default => 0,
1776
+ :default => "1h",
1541
1777
  :type => :duration,
1542
1778
  :desc => "The maximum amount of time an agent run is allowed to take.
1543
- A Puppet agent run that exceeds this timeout will be aborted.
1544
- Defaults to 0, which is unlimited. #{AS_DURATION}",
1779
+ A Puppet agent run that exceeds this timeout will be aborted. A value
1780
+ of 0 disables the timeout. Defaults to 1 hour. #{AS_DURATION}",
1545
1781
  },
1546
1782
  :ca_server => {
1547
1783
  :default => "$server",
@@ -1550,7 +1786,7 @@ EOT
1550
1786
  and does not need to horizontally scale.",
1551
1787
  },
1552
1788
  :ca_port => {
1553
- :default => "$masterport",
1789
+ :default => "$serverport",
1554
1790
  :desc => "The port to use for the certificate authority.",
1555
1791
  },
1556
1792
  :preferred_serialization_format => {
@@ -1569,7 +1805,7 @@ EOT
1569
1805
  },
1570
1806
  :agent_disabled_lockfile => {
1571
1807
  :default => "$statedir/agent_disabled.lock",
1572
- :type => :file,
1808
+ :type => :string,
1573
1809
  :desc => "A lock file to indicate that puppet agent runs have been administratively
1574
1810
  disabled. File contains a JSON object with state information.",
1575
1811
  },
@@ -1586,20 +1822,16 @@ EOT
1586
1822
  :type => :boolean,
1587
1823
  :desc => "Whether to only use the cached catalog rather than compiling a new catalog
1588
1824
  on every run. Puppet can be run with this enabled by default and then selectively
1589
- disabled when a recompile is desired.",
1825
+ disabled when a recompile is desired. Because a Puppet agent using cached catalogs
1826
+ does not contact the primary server for a new catalog, it also does not upload facts at
1827
+ the beginning of the Puppet run.",
1590
1828
  },
1591
1829
  :ignoremissingtypes => {
1592
1830
  :default => false,
1593
1831
  :type => :boolean,
1594
1832
  :desc => "Skip searching for classes and definitions that were missing during a
1595
1833
  prior compilation. The list of missing objects is maintained per-environment and
1596
- persists until the environment is cleared or the master is restarted.",
1597
- },
1598
- :ignorecache => {
1599
- :default => false,
1600
- :type => :boolean,
1601
- :desc => "This setting has no effect and will be removed in a future Puppet version.",
1602
- :deprecated => :completely,
1834
+ persists until the environment is cleared or the primary server is restarted.",
1603
1835
  },
1604
1836
  :splaylimit => {
1605
1837
  :default => "$runinterval",
@@ -1629,7 +1861,7 @@ EOT
1629
1861
  If you restart an agent's puppet service with `splay` enabled, it
1630
1862
  recalculates its splay period and delays its first agent run after
1631
1863
  restarting for this new period. If you simultaneously restart a group of
1632
- puppet agents with `splay` enabled, their checkins to your puppet masters
1864
+ puppet agents with `splay` enabled, their checkins to your primary servers
1633
1865
  can be distributed more evenly.",
1634
1866
  },
1635
1867
  :clientbucketdir => {
@@ -1638,25 +1870,12 @@ EOT
1638
1870
  :mode => "0750",
1639
1871
  :desc => "Where FileBucket files are stored locally."
1640
1872
  },
1641
- :configtimeout => {
1642
- :default => "2m",
1643
- :type => :duration,
1644
- :desc => "How long the client should wait for the configuration to be retrieved
1645
- before considering it a failure. This setting is deprecated and has been replaced
1646
- by http_connect_timeout and http_read_timeout.
1647
- #{AS_DURATION}",
1648
- :deprecated => :completely,
1649
- :hook => proc do |value|
1650
- Puppet[:http_connect_timeout] = value
1651
- Puppet[:http_read_timeout] = value
1652
- end
1653
- },
1654
1873
  :report_server => {
1655
1874
  :default => "$server",
1656
1875
  :desc => "The server to send transaction reports to.",
1657
1876
  },
1658
1877
  :report_port => {
1659
- :default => "$masterport",
1878
+ :default => "$serverport",
1660
1879
  :desc => "The port to communicate with the report_server.",
1661
1880
  },
1662
1881
  :report => {
@@ -1664,6 +1883,28 @@ EOT
1664
1883
  :type => :boolean,
1665
1884
  :desc => "Whether to send reports after every transaction.",
1666
1885
  },
1886
+ :report_include_system_store => {
1887
+ :default => false,
1888
+ :type => :boolean,
1889
+ :desc => "Whether the 'http' report processor should include the system
1890
+ certificate store when submitting reports to HTTPS URLs. If false, then
1891
+ the 'http' processor will only trust HTTPS report servers whose certificates
1892
+ are issued by the puppet CA or one of its intermediate CAs. If true, the
1893
+ processor will additionally trust CA certificates in the system's
1894
+ certificate store."
1895
+ },
1896
+ :resubmit_facts => {
1897
+ :default => false,
1898
+ :type => :boolean,
1899
+ :desc => "Whether to send updated facts after every transaction. By default
1900
+ puppet only submits facts at the beginning of the transaction before applying a
1901
+ catalog. Since puppet can modify the state of the system, the value of the facts
1902
+ may change after puppet finishes. Therefore, any facts stored in puppetdb may not
1903
+ be consistent until the agent next runs, typically in 30 minutes. If this feature
1904
+ is enabled, puppet will resubmit facts after applying its catalog, ensuring facts
1905
+ for the node stored in puppetdb are current. However, this will double the fact
1906
+ submission load on puppetdb, so it is disabled by default.",
1907
+ },
1667
1908
  :lastrunfile => {
1668
1909
  :default => "$statedir/last_run_summary.yaml",
1669
1910
  :type => :file,
@@ -1674,7 +1915,11 @@ EOT
1674
1915
  :default => "$statedir/last_run_report.yaml",
1675
1916
  :type => :file,
1676
1917
  :mode => "0640",
1677
- :desc => "Where puppet agent stores the last run report in yaml format."
1918
+ :desc => "Where Puppet Agent stores the last run report, by default, in yaml format.
1919
+ The format of the report can be changed by setting the `cache` key of the `report` terminus
1920
+ in the [routes.yaml](https://puppet.com/docs/puppet/latest/config_file_routes.html) file.
1921
+ To avoid mismatches between content and file extension, this setting needs to be
1922
+ manually updated to reflect the terminus changes."
1678
1923
  },
1679
1924
  :graph => {
1680
1925
  :default => false,
@@ -1708,43 +1953,49 @@ EOT
1708
1953
 
1709
1954
  When starting for the first time, puppet agent will submit a certificate
1710
1955
  signing request (CSR) to the server named in the `ca_server` setting
1711
- (usually the puppet master); this may be autosigned, or may need to be
1956
+ (usually the primary Puppet server); this may be autosigned, or may need to be
1712
1957
  approved by a human, depending on the CA server's configuration.
1713
1958
 
1714
1959
  Puppet agent cannot apply configurations until its approved certificate is
1715
1960
  available. Since the certificate may or may not be available immediately,
1716
1961
  puppet agent will repeatedly try to fetch it at this interval. You can
1717
- turn off waiting for certificates by specifying a time of 0, in which case
1962
+ turn off waiting for certificates by specifying a time of 0, or a maximum
1963
+ amount of time to wait in the `maxwaitforcert` setting, in which case
1718
1964
  puppet agent will exit if it cannot get a cert.
1719
1965
  #{AS_DURATION}",
1720
1966
  },
1721
- :ordering => {
1722
- :type => :enum,
1723
- :values => ["manifest", "title-hash", "random"],
1724
- :default => "manifest",
1725
- :desc => "How unrelated resources should be ordered when applying a catalog.
1726
- Allowed values are `title-hash`, `manifest`, and `random`. This
1727
- setting affects puppet agent and puppet apply, but not puppet master.
1728
-
1729
- * `manifest` (the default) will use the order in which the resources were
1730
- declared in their manifest files.
1731
- * `title-hash` (the default in 3.x) will order resources randomly, but
1732
- will use the same order across runs and across nodes. It is only of
1733
- value if you're migrating from 3.x and have errors running with
1734
- `manifest`.
1735
- * `random` will order resources randomly and change their order with each
1736
- run. This can work like a fuzzer for shaking out undeclared dependencies.
1737
-
1738
- Regardless of this setting's value, Puppet will always obey explicit
1739
- dependencies set with the before/require/notify/subscribe metaparameters
1740
- and the `->`/`~>` chaining arrows; this setting only affects the relative
1741
- ordering of _unrelated_ resources."
1967
+ :maxwaitforcert => {
1968
+ :default => "unlimited",
1969
+ :type => :ttl,
1970
+ :desc => "The maximum amount of time the Puppet agent should wait for its
1971
+ certificate request to be signed. A value of `unlimited` will cause puppet agent
1972
+ to ask for a signed certificate indefinitely.
1973
+ #{AS_DURATION}",
1974
+ },
1975
+ :waitforlock => {
1976
+ :default => "0",
1977
+ :type => :duration,
1978
+ :desc => "How frequently puppet agent should try running when there is an
1979
+ already ongoing puppet agent instance.
1980
+
1981
+ This argument is by default disabled (value set to 0). In this case puppet agent will
1982
+ immediately exit if it cannot run at that moment. When a value other than 0 is set, this
1983
+ can also be used in combination with the `maxwaitforlock` argument.
1984
+ #{AS_DURATION}",
1985
+ },
1986
+ :maxwaitforlock => {
1987
+ :default => "1m",
1988
+ :type => :ttl,
1989
+ :desc => "The maximum amount of time the puppet agent should wait for an
1990
+ already running puppet agent to finish before starting a new one. This is set by default to 1 minute.
1991
+ A value of `unlimited` will cause puppet agent to wait indefinitely.
1992
+ #{AS_DURATION}",
1742
1993
  }
1743
1994
  )
1744
1995
 
1745
1996
  # Plugin information.
1746
1997
 
1747
- define_settings(
1998
+ settings.define_settings(
1748
1999
  :main,
1749
2000
  :plugindest => {
1750
2001
  :type => :directory,
@@ -1779,7 +2030,6 @@ EOT
1779
2030
  is used for retrieval, so anything that is a valid file source can
1780
2031
  be used here.",
1781
2032
  },
1782
-
1783
2033
  :pluginsync => {
1784
2034
  :default => true,
1785
2035
  :type => :boolean,
@@ -1791,14 +2041,21 @@ EOT
1791
2041
  }
1792
2042
  },
1793
2043
  :pluginsignore => {
1794
- :default => ".svn CVS .git .hg *.pot",
2044
+ :default => ".svn CVS .git .hg",
1795
2045
  :desc => "What files to ignore when pulling down plugins.",
2046
+ },
2047
+ :ignore_plugin_errors => {
2048
+ :default => true,
2049
+ :type => :boolean,
2050
+ :desc => "Whether the puppet run should ignore errors during pluginsync. If the setting
2051
+ is false and there are errors during pluginsync, then the agent will abort the run and
2052
+ submit a report containing information about the failed run."
1796
2053
  }
1797
2054
  )
1798
2055
 
1799
2056
  # Central fact information.
1800
2057
 
1801
- define_settings(
2058
+ settings.define_settings(
1802
2059
  :main,
1803
2060
  :factpath => {
1804
2061
  :type => :path,
@@ -1810,12 +2067,13 @@ EOT
1810
2067
  :call_hook => :on_initialize_and_write, # Call our hook with the default value, so we always get the value added to facter.
1811
2068
  :hook => proc do |value|
1812
2069
  paths = value.split(File::PATH_SEPARATOR)
1813
- Facter.search(*paths)
2070
+ facter = Puppet.runtime[:facter]
2071
+ facter.search(*paths)
1814
2072
  end
1815
2073
  }
1816
2074
  )
1817
2075
 
1818
- define_settings(
2076
+ settings.define_settings(
1819
2077
  :transaction,
1820
2078
  :tags => {
1821
2079
  :default => "",
@@ -1843,7 +2101,7 @@ EOT
1843
2101
  }
1844
2102
  )
1845
2103
 
1846
- define_settings(
2104
+ settings.define_settings(
1847
2105
  :main,
1848
2106
  :external_nodes => {
1849
2107
  :default => "none",
@@ -1864,11 +2122,11 @@ EOT
1864
2122
 
1865
2123
  Generally, an ENC script makes requests to an external data source.
1866
2124
 
1867
- For more info, see [the ENC documentation](https://docs.puppet.com/puppet/latest/nodes_external.html).",
2125
+ For more info, see [the ENC documentation](https://puppet.com/docs/puppet/latest/nodes_external.html).",
1868
2126
  }
1869
2127
  )
1870
2128
 
1871
- define_settings(
2129
+ settings.define_settings(
1872
2130
  :ldap,
1873
2131
  :ldapssl => {
1874
2132
  :default => false,
@@ -1886,11 +2144,11 @@ EOT
1886
2144
  },
1887
2145
  :ldapserver => {
1888
2146
  :default => "ldap",
1889
- :desc => "The LDAP server. Only used if `node_terminus` is set to `ldap`.",
2147
+ :desc => "The LDAP server.",
1890
2148
  },
1891
2149
  :ldapport => {
1892
2150
  :default => 389,
1893
- :desc => "The LDAP port. Only used if `node_terminus` is set to `ldap`.",
2151
+ :desc => "The LDAP port.",
1894
2152
  },
1895
2153
 
1896
2154
  :ldapstring => {
@@ -1937,7 +2195,7 @@ EOT
1937
2195
  }
1938
2196
  )
1939
2197
 
1940
- define_settings(:master,
2198
+ settings.define_settings(:server,
1941
2199
  :storeconfigs => {
1942
2200
  :default => false,
1943
2201
  :type => :boolean,
@@ -1951,13 +2209,11 @@ EOT
1951
2209
  # Call our hook with the default value, so we always get the libdir set.
1952
2210
  :call_hook => :on_initialize_and_write,
1953
2211
  :hook => proc do |value|
1954
- require 'puppet/node'
1955
- require 'puppet/node/facts'
1956
2212
  if value
1957
- Puppet::Resource::Catalog.indirection.cache_class = :store_configs
1958
- Puppet.settings.override_default(:catalog_cache_terminus, :store_configs)
1959
- Puppet::Node::Facts.indirection.cache_class = :store_configs
1960
- Puppet::Resource.indirection.terminus_class = :store_configs
2213
+ Puppet::Resource::Catalog.indirection.set_global_setting(:cache_class, :store_configs)
2214
+ settings.override_default(:catalog_cache_terminus, :store_configs)
2215
+ Puppet::Node::Facts.indirection.set_global_setting(:cache_class, :store_configs)
2216
+ Puppet::Resource.indirection.set_global_setting(:terminus_class, :store_configs)
1961
2217
  end
1962
2218
  end
1963
2219
  },
@@ -1970,7 +2226,7 @@ EOT
1970
2226
  }
1971
2227
  )
1972
2228
 
1973
- define_settings(:parser,
2229
+ settings.define_settings(:parser,
1974
2230
  :max_errors => {
1975
2231
  :default => 10,
1976
2232
  :desc => <<-'EOT'
@@ -2002,9 +2258,33 @@ EOT
2002
2258
  Causes an evaluation error when referencing unknown variables. (This does not affect
2003
2259
  referencing variables that are explicitly set to undef).
2004
2260
  EOT
2261
+ },
2262
+ :func3x_check => {
2263
+ :default => true,
2264
+ :type => :boolean,
2265
+ :desc => <<-'EOT',
2266
+ Causes validation of loaded legacy Ruby functions (3x API) to raise errors about illegal constructs that
2267
+ could cause harm or that simply does not work. This flag is on by default. This flag is made available
2268
+ so that the validation can be turned off in case the method of validation is faulty - if encountered, please
2269
+ file a bug report.
2270
+ EOT
2271
+ :call_hook => :on_initialize_and_write,
2272
+ :hook => proc do |value|
2273
+ unless value
2274
+ Puppet.deprecation_warning(_("The 'func3x_check' setting is deprecated and will be removed in a future release."))
2275
+ end
2276
+ end
2277
+ },
2278
+ :tasks => {
2279
+ :default => false,
2280
+ :type => :boolean,
2281
+ :desc => <<-'EOT'
2282
+ Turns on experimental support for tasks and plans in the puppet language. This is for internal API use only.
2283
+ Do not change this setting.
2284
+ EOT
2005
2285
  }
2006
2286
  )
2007
- define_settings(:puppetdoc,
2287
+ settings.define_settings(:puppetdoc,
2008
2288
  :document_all => {
2009
2289
  :default => false,
2010
2290
  :type => :boolean,
@@ -2013,10 +2293,10 @@ EOT
2013
2293
  }
2014
2294
  )
2015
2295
 
2016
- define_settings(
2296
+ settings.define_settings(
2017
2297
  :main,
2018
2298
  :rich_data => {
2019
- :default => false,
2299
+ :default => true,
2020
2300
  :type => :boolean,
2021
2301
  :hook => proc do |value|
2022
2302
  envs = Puppet.lookup(:environments) { nil }
@@ -2024,11 +2304,11 @@ EOT
2024
2304
  end,
2025
2305
  :desc => <<-'EOT'
2026
2306
  Enables having extended data in the catalog by storing them as a hash with the special key
2027
- `__pcore_type__`. When enabled, resource containing values of the data types `Binary`, `Regexp`,
2307
+ `__ptype`. When enabled, resource containing values of the data types `Binary`, `Regexp`,
2028
2308
  `SemVer`, `SemVerRange`, `Timespan` and `Timestamp`, as well as instances of types derived
2029
2309
  from `Object` retain their data type.
2030
2310
  EOT
2031
2311
  }
2032
2312
  )
2033
-
2313
+ end
2034
2314
  end