puppet 7.5.0-x64-mingw32 → 7.9.0-x64-mingw32

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

Potentially problematic release.


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

Files changed (712) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +7 -7
  3. data/Gemfile +2 -1
  4. data/Gemfile.lock +20 -20
  5. data/README.md +4 -4
  6. data/ext/osx/puppet.plist +2 -0
  7. data/ext/project_data.yaml +1 -0
  8. data/install.rb +11 -15
  9. data/lib/hiera_puppet.rb +1 -1
  10. data/lib/puppet.rb +40 -40
  11. data/lib/puppet/agent.rb +6 -6
  12. data/lib/puppet/agent/disabler.rb +1 -1
  13. data/lib/puppet/agent/locker.rb +2 -2
  14. data/lib/puppet/application.rb +6 -6
  15. data/lib/puppet/application/agent.rb +18 -11
  16. data/lib/puppet/application/apply.rb +6 -5
  17. data/lib/puppet/application/catalog.rb +1 -1
  18. data/lib/puppet/application/config.rb +1 -1
  19. data/lib/puppet/application/describe.rb +1 -1
  20. data/lib/puppet/application/device.rb +8 -7
  21. data/lib/puppet/application/doc.rb +7 -7
  22. data/lib/puppet/application/epp.rb +2 -2
  23. data/lib/puppet/application/face_base.rb +2 -2
  24. data/lib/puppet/application/facts.rb +1 -1
  25. data/lib/puppet/application/filebucket.rb +3 -2
  26. data/lib/puppet/application/generate.rb +1 -1
  27. data/lib/puppet/application/help.rb +1 -1
  28. data/lib/puppet/application/indirection_base.rb +1 -1
  29. data/lib/puppet/application/lookup.rb +6 -6
  30. data/lib/puppet/application/module.rb +1 -1
  31. data/lib/puppet/application/node.rb +1 -1
  32. data/lib/puppet/application/parser.rb +2 -2
  33. data/lib/puppet/application/plugin.rb +1 -1
  34. data/lib/puppet/application/report.rb +1 -1
  35. data/lib/puppet/application/resource.rb +18 -4
  36. data/lib/puppet/application/script.rb +6 -5
  37. data/lib/puppet/application/ssl.rb +3 -2
  38. data/lib/puppet/application_support.rb +4 -4
  39. data/lib/puppet/compilable_resource_type.rb +1 -1
  40. data/lib/puppet/concurrent/lock.rb +1 -1
  41. data/lib/puppet/configurer.rb +4 -4
  42. data/lib/puppet/configurer/downloader.rb +4 -3
  43. data/lib/puppet/configurer/fact_handler.rb +3 -3
  44. data/lib/puppet/configurer/plugin_handler.rb +1 -1
  45. data/lib/puppet/confine.rb +1 -1
  46. data/lib/puppet/confine/boolean.rb +1 -1
  47. data/lib/puppet/confine/exists.rb +1 -1
  48. data/lib/puppet/confine/false.rb +1 -1
  49. data/lib/puppet/confine/feature.rb +1 -1
  50. data/lib/puppet/confine/true.rb +1 -1
  51. data/lib/puppet/confine/variable.rb +1 -1
  52. data/lib/puppet/confine_collection.rb +1 -1
  53. data/lib/puppet/confiner.rb +1 -1
  54. data/lib/puppet/context.rb +2 -2
  55. data/lib/puppet/context/trusted_information.rb +1 -1
  56. data/lib/puppet/daemon.rb +2 -2
  57. data/lib/puppet/data_binding.rb +1 -1
  58. data/lib/puppet/datatypes/error.rb +1 -1
  59. data/lib/puppet/defaults.rb +17 -12
  60. data/lib/puppet/environments.rb +11 -1
  61. data/lib/puppet/etc.rb +1 -1
  62. data/lib/puppet/external/pson/common.rb +1 -1
  63. data/lib/puppet/external/pson/pure.rb +3 -3
  64. data/lib/puppet/face.rb +1 -1
  65. data/lib/puppet/face/catalog.rb +1 -1
  66. data/lib/puppet/face/config.rb +2 -2
  67. data/lib/puppet/face/epp.rb +6 -6
  68. data/lib/puppet/face/facts.rb +2 -2
  69. data/lib/puppet/face/generate.rb +2 -2
  70. data/lib/puppet/face/help.rb +3 -3
  71. data/lib/puppet/face/help/action.erb +1 -0
  72. data/lib/puppet/face/help/face.erb +1 -0
  73. data/lib/puppet/face/module.rb +3 -3
  74. data/lib/puppet/face/module/install.rb +2 -2
  75. data/lib/puppet/face/node.rb +1 -1
  76. data/lib/puppet/face/node/clean.rb +1 -1
  77. data/lib/puppet/face/parser.rb +4 -4
  78. data/lib/puppet/face/plugin.rb +2 -2
  79. data/lib/puppet/face/report.rb +1 -1
  80. data/lib/puppet/face/resource.rb +1 -1
  81. data/lib/puppet/feature/base.rb +2 -2
  82. data/lib/puppet/feature/bolt.rb +1 -1
  83. data/lib/puppet/feature/cfpropertylist.rb +1 -1
  84. data/lib/puppet/feature/eventlog.rb +1 -1
  85. data/lib/puppet/feature/hiera_eyaml.rb +1 -1
  86. data/lib/puppet/feature/hocon.rb +1 -1
  87. data/lib/puppet/feature/libuser.rb +2 -2
  88. data/lib/puppet/feature/msgpack.rb +1 -1
  89. data/lib/puppet/feature/pe_license.rb +1 -1
  90. data/lib/puppet/feature/selinux.rb +1 -1
  91. data/lib/puppet/feature/ssh.rb +1 -1
  92. data/lib/puppet/feature/telnet.rb +1 -1
  93. data/lib/puppet/feature/zlib.rb +1 -1
  94. data/lib/puppet/ffi/posix.rb +2 -2
  95. data/lib/puppet/ffi/posix/constants.rb +1 -1
  96. data/lib/puppet/ffi/posix/functions.rb +1 -1
  97. data/lib/puppet/ffi/windows.rb +4 -4
  98. data/lib/puppet/ffi/windows/api_types.rb +2 -2
  99. data/lib/puppet/ffi/windows/constants.rb +1 -1
  100. data/lib/puppet/ffi/windows/functions.rb +1 -1
  101. data/lib/puppet/ffi/windows/structs.rb +1 -1
  102. data/lib/puppet/file_bucket/dipper.rb +4 -4
  103. data/lib/puppet/file_bucket/file.rb +3 -3
  104. data/lib/puppet/file_serving/base.rb +2 -2
  105. data/lib/puppet/file_serving/configuration.rb +10 -10
  106. data/lib/puppet/file_serving/configuration/parser.rb +2 -2
  107. data/lib/puppet/file_serving/content.rb +3 -3
  108. data/lib/puppet/file_serving/fileset.rb +16 -4
  109. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  110. data/lib/puppet/file_serving/metadata.rb +6 -6
  111. data/lib/puppet/file_serving/mount.rb +4 -4
  112. data/lib/puppet/file_serving/mount/file.rb +1 -1
  113. data/lib/puppet/file_serving/mount/locales.rb +1 -1
  114. data/lib/puppet/file_serving/mount/modules.rb +1 -1
  115. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -1
  116. data/lib/puppet/file_serving/mount/plugins.rb +1 -1
  117. data/lib/puppet/file_serving/mount/tasks.rb +1 -1
  118. data/lib/puppet/file_serving/terminus_helper.rb +2 -2
  119. data/lib/puppet/file_serving/terminus_selector.rb +1 -1
  120. data/lib/puppet/file_system.rb +9 -9
  121. data/lib/puppet/file_system/file_impl.rb +1 -1
  122. data/lib/puppet/file_system/jruby.rb +1 -1
  123. data/lib/puppet/file_system/path_pattern.rb +1 -1
  124. data/lib/puppet/file_system/uniquefile.rb +1 -1
  125. data/lib/puppet/file_system/windows.rb +4 -4
  126. data/lib/puppet/forge.rb +8 -8
  127. data/lib/puppet/forge/cache.rb +2 -2
  128. data/lib/puppet/forge/errors.rb +3 -3
  129. data/lib/puppet/forge/repository.rb +4 -4
  130. data/lib/puppet/functions.rb +1 -1
  131. data/lib/puppet/functions/all.rb +1 -1
  132. data/lib/puppet/functions/camelcase.rb +1 -1
  133. data/lib/puppet/functions/capitalize.rb +2 -2
  134. data/lib/puppet/functions/downcase.rb +2 -2
  135. data/lib/puppet/functions/empty.rb +8 -0
  136. data/lib/puppet/functions/get.rb +5 -5
  137. data/lib/puppet/functions/group_by.rb +13 -5
  138. data/lib/puppet/functions/lest.rb +1 -1
  139. data/lib/puppet/functions/new.rb +100 -100
  140. data/lib/puppet/functions/partition.rb +12 -4
  141. data/lib/puppet/functions/require.rb +5 -5
  142. data/lib/puppet/functions/sort.rb +3 -3
  143. data/lib/puppet/functions/strftime.rb +1 -0
  144. data/lib/puppet/functions/tree_each.rb +7 -9
  145. data/lib/puppet/functions/type.rb +4 -4
  146. data/lib/puppet/functions/unwrap.rb +17 -2
  147. data/lib/puppet/functions/upcase.rb +2 -2
  148. data/lib/puppet/functions/versioncmp.rb +1 -1
  149. data/lib/puppet/generate/models/type/type.rb +1 -1
  150. data/lib/puppet/generate/type.rb +2 -2
  151. data/lib/puppet/gettext/config.rb +3 -3
  152. data/lib/puppet/gettext/module_translations.rb +1 -1
  153. data/lib/puppet/graph.rb +6 -6
  154. data/lib/puppet/graph/simple_graph.rb +2 -2
  155. data/lib/puppet/http.rb +26 -26
  156. data/lib/puppet/http/factory.rb +2 -2
  157. data/lib/puppet/http/proxy.rb +1 -1
  158. data/lib/puppet/http/resolver/server_list.rb +15 -4
  159. data/lib/puppet/http/service/compiler.rb +73 -1
  160. data/lib/puppet/http/service/file_server.rb +3 -2
  161. data/lib/puppet/indirector.rb +5 -5
  162. data/lib/puppet/indirector/catalog/compiler.rb +7 -6
  163. data/lib/puppet/indirector/catalog/json.rb +2 -2
  164. data/lib/puppet/indirector/catalog/msgpack.rb +2 -2
  165. data/lib/puppet/indirector/catalog/rest.rb +2 -2
  166. data/lib/puppet/indirector/catalog/store_configs.rb +2 -2
  167. data/lib/puppet/indirector/catalog/yaml.rb +2 -2
  168. data/lib/puppet/indirector/code.rb +1 -1
  169. data/lib/puppet/indirector/data_binding/hiera.rb +1 -1
  170. data/lib/puppet/indirector/data_binding/none.rb +1 -1
  171. data/lib/puppet/indirector/direct_file_server.rb +2 -2
  172. data/lib/puppet/indirector/envelope.rb +1 -1
  173. data/lib/puppet/indirector/errors.rb +1 -1
  174. data/lib/puppet/indirector/exec.rb +2 -2
  175. data/lib/puppet/indirector/face.rb +1 -1
  176. data/lib/puppet/indirector/facts/facter.rb +2 -2
  177. data/lib/puppet/indirector/facts/json.rb +3 -3
  178. data/lib/puppet/indirector/facts/memory.rb +2 -2
  179. data/lib/puppet/indirector/facts/network_device.rb +2 -2
  180. data/lib/puppet/indirector/facts/rest.rb +2 -2
  181. data/lib/puppet/indirector/facts/store_configs.rb +2 -2
  182. data/lib/puppet/indirector/facts/yaml.rb +3 -3
  183. data/lib/puppet/indirector/file_bucket_file/file.rb +4 -4
  184. data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -2
  185. data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -1
  186. data/lib/puppet/indirector/file_content.rb +1 -1
  187. data/lib/puppet/indirector/file_content/file.rb +3 -3
  188. data/lib/puppet/indirector/file_content/file_server.rb +3 -3
  189. data/lib/puppet/indirector/file_content/rest.rb +3 -3
  190. data/lib/puppet/indirector/file_content/selector.rb +4 -4
  191. data/lib/puppet/indirector/file_metadata.rb +1 -1
  192. data/lib/puppet/indirector/file_metadata/file.rb +3 -3
  193. data/lib/puppet/indirector/file_metadata/file_server.rb +3 -3
  194. data/lib/puppet/indirector/file_metadata/http.rb +3 -3
  195. data/lib/puppet/indirector/file_metadata/rest.rb +4 -3
  196. data/lib/puppet/indirector/file_metadata/selector.rb +4 -4
  197. data/lib/puppet/indirector/file_server.rb +4 -4
  198. data/lib/puppet/indirector/generic_http.rb +1 -1
  199. data/lib/puppet/indirector/hiera.rb +1 -1
  200. data/lib/puppet/indirector/indirection.rb +5 -5
  201. data/lib/puppet/indirector/json.rb +2 -2
  202. data/lib/puppet/indirector/memory.rb +1 -1
  203. data/lib/puppet/indirector/msgpack.rb +2 -2
  204. data/lib/puppet/indirector/node/exec.rb +2 -2
  205. data/lib/puppet/indirector/node/json.rb +2 -2
  206. data/lib/puppet/indirector/node/memory.rb +2 -2
  207. data/lib/puppet/indirector/node/msgpack.rb +2 -2
  208. data/lib/puppet/indirector/node/plain.rb +2 -2
  209. data/lib/puppet/indirector/node/rest.rb +2 -2
  210. data/lib/puppet/indirector/node/store_configs.rb +2 -2
  211. data/lib/puppet/indirector/node/yaml.rb +2 -2
  212. data/lib/puppet/indirector/none.rb +1 -1
  213. data/lib/puppet/indirector/plain.rb +1 -1
  214. data/lib/puppet/indirector/report/json.rb +2 -2
  215. data/lib/puppet/indirector/report/msgpack.rb +2 -2
  216. data/lib/puppet/indirector/report/processor.rb +3 -3
  217. data/lib/puppet/indirector/report/rest.rb +1 -1
  218. data/lib/puppet/indirector/report/yaml.rb +2 -2
  219. data/lib/puppet/indirector/request.rb +3 -3
  220. data/lib/puppet/indirector/resource/ral.rb +7 -2
  221. data/lib/puppet/indirector/resource/store_configs.rb +2 -2
  222. data/lib/puppet/indirector/terminus.rb +5 -5
  223. data/lib/puppet/indirector/yaml.rb +2 -2
  224. data/lib/puppet/info_service.rb +3 -3
  225. data/lib/puppet/info_service/class_information_service.rb +3 -3
  226. data/lib/puppet/info_service/plan_information_service.rb +1 -1
  227. data/lib/puppet/info_service/task_information_service.rb +1 -1
  228. data/lib/puppet/interface.rb +10 -10
  229. data/lib/puppet/interface/documentation.rb +2 -1
  230. data/lib/puppet/loaders.rb +21 -25
  231. data/lib/puppet/metatype/manager.rb +3 -3
  232. data/lib/puppet/module.rb +5 -4
  233. data/lib/puppet/module/plan.rb +1 -1
  234. data/lib/puppet/module/task.rb +1 -1
  235. data/lib/puppet/module_tool.rb +10 -10
  236. data/lib/puppet/module_tool/applications.rb +7 -7
  237. data/lib/puppet/module_tool/applications/application.rb +2 -2
  238. data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
  239. data/lib/puppet/module_tool/applications/installer.rb +11 -7
  240. data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
  241. data/lib/puppet/module_tool/applications/upgrader.rb +5 -5
  242. data/lib/puppet/module_tool/checksums.rb +1 -1
  243. data/lib/puppet/module_tool/contents_description.rb +1 -1
  244. data/lib/puppet/module_tool/dependency.rb +2 -2
  245. data/lib/puppet/module_tool/errors.rb +6 -6
  246. data/lib/puppet/module_tool/errors/shared.rb +17 -0
  247. data/lib/puppet/module_tool/install_directory.rb +2 -2
  248. data/lib/puppet/module_tool/installed_modules.rb +2 -2
  249. data/lib/puppet/module_tool/local_tarball.rb +2 -2
  250. data/lib/puppet/module_tool/metadata.rb +3 -3
  251. data/lib/puppet/module_tool/tar.rb +4 -4
  252. data/lib/puppet/module_tool/tar/mini.rb +1 -1
  253. data/lib/puppet/network/format.rb +1 -1
  254. data/lib/puppet/network/format_handler.rb +3 -3
  255. data/lib/puppet/network/format_support.rb +1 -1
  256. data/lib/puppet/network/formats.rb +2 -2
  257. data/lib/puppet/network/http.rb +12 -12
  258. data/lib/puppet/network/http/api.rb +1 -1
  259. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  260. data/lib/puppet/network/http/api/master.rb +1 -1
  261. data/lib/puppet/network/http/api/master/v3.rb +2 -2
  262. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
  263. data/lib/puppet/network/http/api/server/v3.rb +2 -2
  264. data/lib/puppet/network/http/api/server/v3/environments.rb +1 -1
  265. data/lib/puppet/network/http/connection.rb +1 -1
  266. data/lib/puppet/network/http/error.rb +1 -1
  267. data/lib/puppet/network/http/handler.rb +3 -3
  268. data/lib/puppet/network/http_pool.rb +1 -1
  269. data/lib/puppet/node.rb +3 -3
  270. data/lib/puppet/node/environment.rb +15 -8
  271. data/lib/puppet/node/facts.rb +3 -3
  272. data/lib/puppet/pal/pal_api.rb +10 -10
  273. data/lib/puppet/pal/pal_impl.rb +3 -3
  274. data/lib/puppet/parameter.rb +4 -4
  275. data/lib/puppet/parameter/boolean.rb +1 -1
  276. data/lib/puppet/parameter/package_options.rb +1 -1
  277. data/lib/puppet/parameter/path.rb +1 -1
  278. data/lib/puppet/parameter/value.rb +1 -1
  279. data/lib/puppet/parameter/value_collection.rb +1 -1
  280. data/lib/puppet/parser.rb +10 -10
  281. data/lib/puppet/parser/ast.rb +8 -8
  282. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  283. data/lib/puppet/parser/ast/pops_bridge.rb +2 -2
  284. data/lib/puppet/parser/catalog_compiler.rb +2 -2
  285. data/lib/puppet/parser/compiler.rb +5 -5
  286. data/lib/puppet/parser/e4_parser_adapter.rb +1 -1
  287. data/lib/puppet/parser/functions.rb +4 -4
  288. data/lib/puppet/parser/functions/digest.rb +1 -1
  289. data/lib/puppet/parser/functions/file.rb +1 -1
  290. data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
  291. data/lib/puppet/parser/functions/versioncmp.rb +1 -1
  292. data/lib/puppet/parser/parser_factory.rb +2 -2
  293. data/lib/puppet/parser/resource.rb +3 -3
  294. data/lib/puppet/parser/scope.rb +3 -3
  295. data/lib/puppet/parser/script_compiler.rb +2 -2
  296. data/lib/puppet/parser/templatewrapper.rb +2 -2
  297. data/lib/puppet/parser/type_loader.rb +1 -1
  298. data/lib/puppet/plugins/configuration.rb +5 -5
  299. data/lib/puppet/pops.rb +57 -57
  300. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  301. data/lib/puppet/pops/evaluator/evaluator_impl.rb +7 -7
  302. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  303. data/lib/puppet/pops/loader/base_loader.rb +42 -32
  304. data/lib/puppet/pops/loader/dependency_loader.rb +2 -2
  305. data/lib/puppet/pops/loader/loader.rb +15 -5
  306. data/lib/puppet/pops/loader/module_loaders.rb +8 -8
  307. data/lib/puppet/pops/loader/predefined_loader.rb +4 -0
  308. data/lib/puppet/pops/loader/runtime3_type_loader.rb +1 -1
  309. data/lib/puppet/pops/loader/static_loader.rb +4 -0
  310. data/lib/puppet/pops/loader/task_instantiator.rb +1 -1
  311. data/lib/puppet/pops/loaders.rb +4 -4
  312. data/lib/puppet/pops/lookup/invocation.rb +1 -1
  313. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  314. data/lib/puppet/pops/model/pn_transformer.rb +1 -1
  315. data/lib/puppet/pops/parser/eparser.rb +2 -2
  316. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  317. data/lib/puppet/pops/parser/lexer2.rb +5 -5
  318. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  319. data/lib/puppet/pops/parser/parser_support.rb +4 -4
  320. data/lib/puppet/pops/puppet_stack.rb +1 -1
  321. data/lib/puppet/pops/serialization/json.rb +1 -1
  322. data/lib/puppet/pops/serialization/json_path.rb +1 -1
  323. data/lib/puppet/pops/time/timespan.rb +1 -1
  324. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
  325. data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
  326. data/lib/puppet/pops/types/p_type_set_type.rb +1 -1
  327. data/lib/puppet/pops/types/string_converter.rb +1 -1
  328. data/lib/puppet/pops/types/type_calculator.rb +1 -1
  329. data/lib/puppet/pops/types/type_formatter.rb +1 -1
  330. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  331. data/lib/puppet/pops/types/type_parser.rb +1 -1
  332. data/lib/puppet/pops/types/types.rb +1 -1
  333. data/lib/puppet/pops/validation/checker4_0.rb +1 -1
  334. data/lib/puppet/property.rb +3 -3
  335. data/lib/puppet/property/boolean.rb +1 -1
  336. data/lib/puppet/property/ensure.rb +1 -1
  337. data/lib/puppet/property/keyvalue.rb +1 -1
  338. data/lib/puppet/property/list.rb +1 -1
  339. data/lib/puppet/property/ordered_list.rb +1 -1
  340. data/lib/puppet/provider.rb +2 -2
  341. data/lib/puppet/provider/confine.rb +2 -2
  342. data/lib/puppet/provider/exec.rb +2 -2
  343. data/lib/puppet/provider/exec/posix.rb +17 -5
  344. data/lib/puppet/provider/exec/windows.rb +1 -1
  345. data/lib/puppet/provider/file/posix.rb +1 -1
  346. data/lib/puppet/provider/file/windows.rb +1 -1
  347. data/lib/puppet/provider/group/aix.rb +1 -1
  348. data/lib/puppet/provider/group/directoryservice.rb +1 -1
  349. data/lib/puppet/provider/group/groupadd.rb +2 -2
  350. data/lib/puppet/provider/group/ldap.rb +1 -1
  351. data/lib/puppet/provider/group/pw.rb +1 -1
  352. data/lib/puppet/provider/group/windows_adsi.rb +1 -1
  353. data/lib/puppet/provider/ldap.rb +2 -2
  354. data/lib/puppet/provider/nameservice.rb +1 -1
  355. data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
  356. data/lib/puppet/provider/nameservice/objectadd.rb +1 -1
  357. data/lib/puppet/provider/nameservice/pw.rb +1 -1
  358. data/lib/puppet/provider/package.rb +1 -1
  359. data/lib/puppet/provider/package/aix.rb +2 -2
  360. data/lib/puppet/provider/package/appdmg.rb +2 -2
  361. data/lib/puppet/provider/package/apple.rb +1 -1
  362. data/lib/puppet/provider/package/apt.rb +5 -5
  363. data/lib/puppet/provider/package/dnfmodule.rb +2 -2
  364. data/lib/puppet/provider/package/dpkg.rb +1 -1
  365. data/lib/puppet/provider/package/gem.rb +3 -3
  366. data/lib/puppet/provider/package/hpux.rb +1 -1
  367. data/lib/puppet/provider/package/macports.rb +2 -2
  368. data/lib/puppet/provider/package/nim.rb +13 -8
  369. data/lib/puppet/provider/package/openbsd.rb +1 -1
  370. data/lib/puppet/provider/package/opkg.rb +1 -1
  371. data/lib/puppet/provider/package/pacman.rb +1 -1
  372. data/lib/puppet/provider/package/pip.rb +18 -6
  373. data/lib/puppet/provider/package/pkg.rb +2 -2
  374. data/lib/puppet/provider/package/pkgdmg.rb +3 -3
  375. data/lib/puppet/provider/package/pkgin.rb +1 -1
  376. data/lib/puppet/provider/package/pkgng.rb +1 -1
  377. data/lib/puppet/provider/package/portage.rb +1 -1
  378. data/lib/puppet/provider/package/portupgrade.rb +1 -1
  379. data/lib/puppet/provider/package/puppet_gem.rb +12 -1
  380. data/lib/puppet/provider/package/puppetserver_gem.rb +0 -0
  381. data/lib/puppet/provider/package/rpm.rb +2 -2
  382. data/lib/puppet/provider/package/sun.rb +1 -1
  383. data/lib/puppet/provider/package/windows.rb +17 -4
  384. data/lib/puppet/provider/package/windows/exe_package.rb +31 -2
  385. data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
  386. data/lib/puppet/provider/package/windows/package.rb +6 -5
  387. data/lib/puppet/provider/package/yum.rb +6 -6
  388. data/lib/puppet/provider/package/zypper.rb +3 -3
  389. data/lib/puppet/provider/package_targetable.rb +1 -1
  390. data/lib/puppet/provider/parsedfile.rb +6 -3
  391. data/lib/puppet/provider/service/base.rb +6 -4
  392. data/lib/puppet/provider/service/daemontools.rb +0 -1
  393. data/lib/puppet/provider/service/debian.rb +3 -5
  394. data/lib/puppet/provider/service/freebsd.rb +1 -1
  395. data/lib/puppet/provider/service/init.rb +1 -1
  396. data/lib/puppet/provider/service/launchd.rb +9 -3
  397. data/lib/puppet/provider/service/service.rb +28 -3
  398. data/lib/puppet/provider/service/smf.rb +0 -24
  399. data/lib/puppet/provider/service/src.rb +2 -2
  400. data/lib/puppet/provider/service/systemd.rb +18 -8
  401. data/lib/puppet/provider/service/windows.rb +38 -0
  402. data/lib/puppet/provider/user/aix.rb +2 -2
  403. data/lib/puppet/provider/user/directoryservice.rb +26 -13
  404. data/lib/puppet/provider/user/ldap.rb +1 -1
  405. data/lib/puppet/provider/user/openbsd.rb +1 -1
  406. data/lib/puppet/provider/user/pw.rb +1 -1
  407. data/lib/puppet/provider/user/user_role_add.rb +2 -2
  408. data/lib/puppet/provider/user/useradd.rb +4 -4
  409. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  410. data/lib/puppet/reference/configuration.rb +1 -1
  411. data/lib/puppet/reference/indirection.rb +4 -4
  412. data/lib/puppet/reference/report.rb +1 -1
  413. data/lib/puppet/reports.rb +1 -1
  414. data/lib/puppet/reports/http.rb +2 -2
  415. data/lib/puppet/reports/log.rb +1 -1
  416. data/lib/puppet/reports/store.rb +2 -2
  417. data/lib/puppet/resource.rb +4 -4
  418. data/lib/puppet/resource/catalog.rb +5 -5
  419. data/lib/puppet/resource/status.rb +2 -2
  420. data/lib/puppet/resource/type.rb +4 -4
  421. data/lib/puppet/resource/type_collection.rb +6 -4
  422. data/lib/puppet/runtime.rb +1 -1
  423. data/lib/puppet/scheduler.rb +4 -4
  424. data/lib/puppet/settings.rb +61 -37
  425. data/lib/puppet/settings/autosign_setting.rb +1 -1
  426. data/lib/puppet/settings/base_setting.rb +2 -2
  427. data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
  428. data/lib/puppet/settings/config_file.rb +2 -9
  429. data/lib/puppet/settings/errors.rb +1 -1
  430. data/lib/puppet/settings/priority_setting.rb +3 -3
  431. data/lib/puppet/settings/value_translator.rb +0 -1
  432. data/lib/puppet/ssl.rb +11 -11
  433. data/lib/puppet/ssl/base.rb +3 -3
  434. data/lib/puppet/ssl/certificate.rb +1 -1
  435. data/lib/puppet/ssl/certificate_request.rb +2 -2
  436. data/lib/puppet/ssl/certificate_request_attributes.rb +2 -2
  437. data/lib/puppet/ssl/oids.rb +1 -1
  438. data/lib/puppet/ssl/openssl_loader.rb +1 -1
  439. data/lib/puppet/ssl/ssl_context.rb +1 -1
  440. data/lib/puppet/ssl/ssl_provider.rb +1 -1
  441. data/lib/puppet/ssl/state_machine.rb +2 -2
  442. data/lib/puppet/ssl/verifier.rb +5 -1
  443. data/lib/puppet/syntax_checkers/base64.rb +1 -1
  444. data/lib/puppet/syntax_checkers/epp.rb +1 -1
  445. data/lib/puppet/syntax_checkers/json.rb +1 -1
  446. data/lib/puppet/syntax_checkers/pp.rb +1 -1
  447. data/lib/puppet/transaction.rb +11 -11
  448. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  449. data/lib/puppet/transaction/event.rb +4 -4
  450. data/lib/puppet/transaction/event_manager.rb +1 -1
  451. data/lib/puppet/transaction/persistence.rb +1 -1
  452. data/lib/puppet/transaction/report.rb +2 -2
  453. data/lib/puppet/transaction/resource_harness.rb +1 -1
  454. data/lib/puppet/type.rb +14 -14
  455. data/lib/puppet/type/component.rb +3 -3
  456. data/lib/puppet/type/exec.rb +16 -3
  457. data/lib/puppet/type/file.rb +37 -19
  458. data/lib/puppet/type/file/checksum.rb +1 -1
  459. data/lib/puppet/type/file/checksum_value.rb +2 -2
  460. data/lib/puppet/type/file/content.rb +2 -2
  461. data/lib/puppet/type/file/data_sync.rb +2 -2
  462. data/lib/puppet/type/file/ensure.rb +1 -1
  463. data/lib/puppet/type/file/group.rb +1 -1
  464. data/lib/puppet/type/file/mode.rb +7 -1
  465. data/lib/puppet/type/file/selcontext.rb +2 -2
  466. data/lib/puppet/type/file/source.rb +4 -4
  467. data/lib/puppet/type/filebucket.rb +1 -1
  468. data/lib/puppet/type/group.rb +2 -2
  469. data/lib/puppet/type/package.rb +2 -2
  470. data/lib/puppet/type/resources.rb +2 -2
  471. data/lib/puppet/type/service.rb +18 -38
  472. data/lib/puppet/type/tidy.rb +25 -6
  473. data/lib/puppet/type/user.rb +43 -25
  474. data/lib/puppet/util.rb +43 -34
  475. data/lib/puppet/util/at_fork.rb +3 -3
  476. data/lib/puppet/util/at_fork/solaris.rb +1 -1
  477. data/lib/puppet/util/autoload.rb +4 -4
  478. data/lib/puppet/util/checksums.rb +3 -3
  479. data/lib/puppet/util/colors.rb +1 -1
  480. data/lib/puppet/util/command_line.rb +6 -6
  481. data/lib/puppet/util/command_line/puppet_option_parser.rb +2 -2
  482. data/lib/puppet/util/execution.rb +2 -2
  483. data/lib/puppet/util/feature.rb +2 -2
  484. data/lib/puppet/util/filetype.rb +1 -1
  485. data/lib/puppet/util/http_proxy.rb +1 -1
  486. data/lib/puppet/util/inifile.rb +2 -2
  487. data/lib/puppet/util/instance_loader.rb +3 -3
  488. data/lib/puppet/util/json_lockfile.rb +1 -1
  489. data/lib/puppet/util/ldap/connection.rb +1 -1
  490. data/lib/puppet/util/ldap/generator.rb +1 -1
  491. data/lib/puppet/util/ldap/manager.rb +3 -3
  492. data/lib/puppet/util/limits.rb +1 -1
  493. data/lib/puppet/util/log.rb +6 -6
  494. data/lib/puppet/util/log/destinations.rb +1 -1
  495. data/lib/puppet/util/logging.rb +2 -2
  496. data/lib/puppet/util/metric.rb +2 -2
  497. data/lib/puppet/util/monkey_patches.rb +9 -20
  498. data/lib/puppet/util/network_device/base.rb +3 -3
  499. data/lib/puppet/util/network_device/config.rb +2 -2
  500. data/lib/puppet/util/network_device/transport.rb +1 -1
  501. data/lib/puppet/util/network_device/transport/base.rb +2 -2
  502. data/lib/puppet/util/package/version/range.rb +6 -6
  503. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  504. data/lib/puppet/util/package/version/range/gt.rb +1 -1
  505. data/lib/puppet/util/package/version/range/gt_eq.rb +1 -1
  506. data/lib/puppet/util/package/version/range/lt.rb +1 -1
  507. data/lib/puppet/util/package/version/range/lt_eq.rb +1 -1
  508. data/lib/puppet/util/package/version/range/min_max.rb +1 -1
  509. data/lib/puppet/util/package/version/range/simple.rb +1 -1
  510. data/lib/puppet/util/package/version/rpm.rb +1 -1
  511. data/lib/puppet/util/pidlock.rb +1 -1
  512. data/lib/puppet/util/plist.rb +1 -1
  513. data/lib/puppet/util/posix.rb +1 -1
  514. data/lib/puppet/util/profiler.rb +3 -3
  515. data/lib/puppet/util/profiler/aggregate.rb +2 -2
  516. data/lib/puppet/util/profiler/object_counts.rb +1 -1
  517. data/lib/puppet/util/profiler/wall_clock.rb +1 -1
  518. data/lib/puppet/util/provider_features.rb +2 -2
  519. data/lib/puppet/util/rdoc.rb +2 -2
  520. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  521. data/lib/puppet/util/rdoc/parser.rb +6 -6
  522. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  523. data/lib/puppet/util/reference.rb +1 -1
  524. data/lib/puppet/util/resource_template.rb +2 -2
  525. data/lib/puppet/util/rubygems.rb +1 -1
  526. data/lib/puppet/util/selinux.rb +30 -4
  527. data/lib/puppet/util/skip_tags.rb +1 -1
  528. data/lib/puppet/util/storage.rb +1 -1
  529. data/lib/puppet/util/suidmanager.rb +2 -2
  530. data/lib/puppet/util/symbolic_file_mode.rb +30 -18
  531. data/lib/puppet/util/tag_set.rb +1 -1
  532. data/lib/puppet/util/tagging.rb +1 -1
  533. data/lib/puppet/util/watched_file.rb +1 -1
  534. data/lib/puppet/util/watcher.rb +3 -3
  535. data/lib/puppet/util/windows.rb +20 -20
  536. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  537. data/lib/puppet/util/windows/adsi.rb +1 -1
  538. data/lib/puppet/util/windows/daemon.rb +1 -1
  539. data/lib/puppet/util/windows/error.rb +2 -2
  540. data/lib/puppet/util/windows/file.rb +1 -1
  541. data/lib/puppet/util/windows/monkey_patches/process.rb +2 -2
  542. data/lib/puppet/util/windows/principal.rb +1 -1
  543. data/lib/puppet/util/windows/process.rb +2 -2
  544. data/lib/puppet/util/windows/registry.rb +1 -1
  545. data/lib/puppet/util/windows/root_certs.rb +2 -2
  546. data/lib/puppet/util/windows/security.rb +1 -1
  547. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  548. data/lib/puppet/util/windows/service.rb +1 -1
  549. data/lib/puppet/util/windows/sid.rb +4 -2
  550. data/lib/puppet/util/windows/user.rb +1 -1
  551. data/lib/puppet/vendor.rb +1 -1
  552. data/lib/puppet/version.rb +1 -1
  553. data/lib/puppet/x509.rb +4 -4
  554. data/lib/puppet/x509/cert_provider.rb +4 -22
  555. data/lib/puppet/x509/pem_store.rb +1 -1
  556. data/lib/puppet_pal.rb +2 -2
  557. data/locales/puppet.pot +349 -305
  558. data/man/man5/puppet.conf.5 +259 -241
  559. data/man/man8/puppet-agent.8 +1 -1
  560. data/man/man8/puppet-apply.8 +1 -1
  561. data/man/man8/puppet-catalog.8 +9 -9
  562. data/man/man8/puppet-config.8 +1 -1
  563. data/man/man8/puppet-describe.8 +1 -1
  564. data/man/man8/puppet-device.8 +1 -1
  565. data/man/man8/puppet-doc.8 +1 -1
  566. data/man/man8/puppet-epp.8 +1 -1
  567. data/man/man8/puppet-facts.8 +7 -7
  568. data/man/man8/puppet-filebucket.8 +1 -1
  569. data/man/man8/puppet-generate.8 +1 -1
  570. data/man/man8/puppet-help.8 +1 -1
  571. data/man/man8/puppet-lookup.8 +1 -1
  572. data/man/man8/puppet-module.8 +1 -1
  573. data/man/man8/puppet-node.8 +5 -5
  574. data/man/man8/puppet-parser.8 +1 -1
  575. data/man/man8/puppet-plugin.8 +1 -1
  576. data/man/man8/puppet-report.8 +5 -5
  577. data/man/man8/puppet-resource.8 +1 -1
  578. data/man/man8/puppet-script.8 +1 -1
  579. data/man/man8/puppet-ssl.8 +1 -1
  580. data/man/man8/puppet.8 +2 -2
  581. data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
  582. data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
  583. data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
  584. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
  585. data/spec/fixtures/ssl/ca.pem +57 -35
  586. data/spec/fixtures/ssl/crl.pem +28 -18
  587. data/spec/fixtures/ssl/ec-key-openssl.pem +8 -0
  588. data/spec/fixtures/ssl/ec-key-pk8.pem +5 -0
  589. data/spec/fixtures/ssl/ec-key.pem +11 -11
  590. data/spec/fixtures/ssl/ec.pem +33 -24
  591. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  592. data/spec/fixtures/ssl/encrypted-key.pem +108 -58
  593. data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
  594. data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
  595. data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
  596. data/spec/fixtures/ssl/intermediate.pem +57 -36
  597. data/spec/fixtures/ssl/oid-key.pem +117 -0
  598. data/spec/fixtures/ssl/oid.pem +69 -0
  599. data/spec/fixtures/ssl/pluto-key.pem +107 -57
  600. data/spec/fixtures/ssl/pluto.pem +52 -30
  601. data/spec/fixtures/ssl/request-key.pem +107 -57
  602. data/spec/fixtures/ssl/request.pem +47 -26
  603. data/spec/fixtures/ssl/revoked-key.pem +107 -57
  604. data/spec/fixtures/ssl/revoked.pem +52 -30
  605. data/spec/fixtures/ssl/signed-key.pem +107 -57
  606. data/spec/fixtures/ssl/signed.pem +52 -30
  607. data/spec/fixtures/ssl/tampered-cert.pem +52 -30
  608. data/spec/fixtures/ssl/tampered-csr.pem +47 -26
  609. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  610. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
  611. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
  612. data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
  613. data/spec/fixtures/ssl/unknown-ca.pem +55 -33
  614. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +9 -0
  615. data/spec/integration/application/filebucket_spec.rb +11 -0
  616. data/spec/integration/application/module_spec.rb +21 -0
  617. data/spec/integration/application/resource_spec.rb +64 -0
  618. data/spec/integration/application/ssl_spec.rb +20 -0
  619. data/spec/integration/defaults_spec.rb +5 -0
  620. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  621. data/spec/integration/http/client_spec.rb +1 -1
  622. data/spec/integration/indirector/facts/facter_spec.rb +90 -36
  623. data/spec/integration/type/exec_spec.rb +70 -45
  624. data/spec/integration/type/file_spec.rb +5 -5
  625. data/spec/lib/puppet/test_ca.rb +7 -2
  626. data/spec/lib/puppet_spec/files.rb +1 -1
  627. data/spec/lib/puppet_spec/settings.rb +1 -0
  628. data/spec/shared_contexts/provider.rb +16 -0
  629. data/spec/spec_helper.rb +11 -1
  630. data/spec/unit/application/agent_spec.rb +7 -2
  631. data/spec/unit/configurer/downloader_spec.rb +6 -0
  632. data/spec/unit/configurer_spec.rb +23 -0
  633. data/spec/unit/environments_spec.rb +35 -0
  634. data/spec/unit/file_bucket/dipper_spec.rb +1 -1
  635. data/spec/unit/file_serving/fileset_spec.rb +60 -0
  636. data/spec/unit/file_system_spec.rb +6 -0
  637. data/spec/unit/functions/assert_type_spec.rb +1 -1
  638. data/spec/unit/functions/empty_spec.rb +10 -0
  639. data/spec/unit/functions/lookup_spec.rb +23 -0
  640. data/spec/unit/functions/unwrap_spec.rb +8 -0
  641. data/spec/unit/functions4_spec.rb +19 -10
  642. data/spec/unit/gettext/config_spec.rb +12 -0
  643. data/spec/unit/http/service/compiler_spec.rb +123 -0
  644. data/spec/unit/indirector/catalog/compiler_spec.rb +14 -10
  645. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  646. data/spec/unit/module_spec.rb +1 -1
  647. data/spec/unit/module_tool/applications/installer_spec.rb +13 -2
  648. data/spec/unit/parser/compiler_spec.rb +29 -0
  649. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
  650. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  651. data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -10
  652. data/spec/unit/pops/lookup/context_spec.rb +1 -1
  653. data/spec/unit/pops/parser/lexer2_spec.rb +0 -4
  654. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  655. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  656. data/spec/unit/pops/types/type_parser_spec.rb +2 -1
  657. data/spec/unit/provider/package/dnfmodule_spec.rb +13 -4
  658. data/spec/unit/provider/package/gem_spec.rb +3 -1
  659. data/spec/unit/provider/package/nim_spec.rb +42 -0
  660. data/spec/unit/provider/package/pip2_spec.rb +3 -1
  661. data/spec/unit/provider/package/pip3_spec.rb +3 -1
  662. data/spec/unit/provider/package/pip_spec.rb +40 -1
  663. data/spec/unit/provider/package/pkg_spec.rb +44 -44
  664. data/spec/unit/provider/package/puppet_gem_spec.rb +31 -1
  665. data/spec/unit/provider/package/puppetserver_gem_spec.rb +2 -0
  666. data/spec/unit/provider/package/windows/exe_package_spec.rb +17 -0
  667. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  668. data/spec/unit/provider/service/base_spec.rb +8 -8
  669. data/spec/unit/provider/service/bsd_spec.rb +0 -4
  670. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  671. data/spec/unit/provider/service/debian_spec.rb +15 -17
  672. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  673. data/spec/unit/provider/service/gentoo_spec.rb +19 -14
  674. data/spec/unit/provider/service/init_spec.rb +29 -20
  675. data/spec/unit/provider/service/launchd_spec.rb +10 -12
  676. data/spec/unit/provider/service/openbsd_spec.rb +21 -35
  677. data/spec/unit/provider/service/openrc_spec.rb +15 -14
  678. data/spec/unit/provider/service/openwrt_spec.rb +3 -1
  679. data/spec/unit/provider/service/redhat_spec.rb +20 -19
  680. data/spec/unit/provider/service/smf_spec.rb +6 -5
  681. data/spec/unit/provider/service/src_spec.rb +5 -10
  682. data/spec/unit/provider/service/systemd_spec.rb +80 -29
  683. data/spec/unit/provider/service/upstart_spec.rb +25 -20
  684. data/spec/unit/provider/service/windows_spec.rb +202 -0
  685. data/spec/unit/provider/user/directoryservice_spec.rb +67 -35
  686. data/spec/unit/provider/user/useradd_spec.rb +18 -3
  687. data/spec/unit/resource/catalog_spec.rb +1 -1
  688. data/spec/unit/resource/type_collection_spec.rb +16 -0
  689. data/spec/unit/resource/type_spec.rb +2 -2
  690. data/spec/unit/settings/config_file_spec.rb +1 -11
  691. data/spec/unit/settings/value_translator_spec.rb +4 -5
  692. data/spec/unit/settings_spec.rb +120 -79
  693. data/spec/unit/ssl/ssl_provider_spec.rb +18 -16
  694. data/spec/unit/ssl/state_machine_spec.rb +19 -5
  695. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
  696. data/spec/unit/transaction_spec.rb +18 -20
  697. data/spec/unit/type/exec_spec.rb +76 -29
  698. data/spec/unit/type/file/selinux_spec.rb +3 -3
  699. data/spec/unit/type/file/source_spec.rb +4 -4
  700. data/spec/unit/type/service_spec.rb +59 -188
  701. data/spec/unit/type/tidy_spec.rb +24 -7
  702. data/spec/unit/type/user_spec.rb +45 -0
  703. data/spec/unit/util/at_fork_spec.rb +9 -9
  704. data/spec/unit/util/ldap/connection_spec.rb +10 -10
  705. data/spec/unit/util/ldap/manager_spec.rb +2 -2
  706. data/spec/unit/util/posix_spec.rb +1 -1
  707. data/spec/unit/util/selinux_spec.rb +87 -16
  708. data/spec/unit/util/windows/sid_spec.rb +39 -4
  709. data/spec/unit/util_spec.rb +1 -3
  710. data/spec/unit/x509/cert_provider_spec.rb +9 -1
  711. data/tasks/generate_cert_fixtures.rake +12 -3
  712. metadata +22 -3
@@ -153,7 +153,7 @@ describe Puppet::HTTP::Client, unless: Puppet::Util::Platform.jruby? do
153
153
  end
154
154
 
155
155
  context 'ciphersuites' do
156
- it "does not connect when using an SSLv3 ciphersuite" do
156
+ it "does not connect when using an SSLv3 ciphersuite", :if => Puppet::Util::Package.versioncmp(OpenSSL::OPENSSL_LIBRARY_VERSION.split[1], '1.1.1e') > 0 do
157
157
  Puppet[:ciphers] = "DES-CBC3-SHA"
158
158
 
159
159
  https_server.start_server do |port|
@@ -6,6 +6,7 @@ require 'puppet/indirector/facts/facter'
6
6
  describe Puppet::Node::Facts::Facter do
7
7
  include PuppetSpec::Files
8
8
  include PuppetSpec::Compiler
9
+ include PuppetSpec::Settings
9
10
 
10
11
  before :each do
11
12
  Puppet::Node::Facts.indirection.terminus_class = :facter
@@ -66,49 +67,102 @@ describe Puppet::Node::Facts::Facter do
66
67
  end
67
68
  end
68
69
 
69
- it "adds the puppetversion fact" do
70
- allow(Facter).to receive(:reset)
71
-
72
- cat = compile_to_catalog('notify { $::puppetversion: }',
73
- Puppet::Node.indirection.find('foo'))
74
- expect(cat.resource("Notify[#{Puppet.version.to_s}]")).to be
75
- end
70
+ context "adding facts" do
71
+ it "adds the puppetversion fact" do
72
+ allow(Facter).to receive(:reset)
76
73
 
77
- it "the agent_specified_environment fact is nil when not set" do
78
- expect do
79
- compile_to_catalog('notify { $::agent_specified_environment: }',
80
- Puppet::Node.indirection.find('foo'))
81
- end.to raise_error(Puppet::PreformattedError)
82
- end
83
-
84
- it "adds the agent_specified_environment fact when set in puppet.conf" do
85
- FileUtils.mkdir_p(Puppet[:confdir])
86
- File.open(File.join(Puppet[:confdir], 'puppet.conf'), 'w') do |f|
87
- f.puts("environment=bar")
74
+ cat = compile_to_catalog('notify { $::puppetversion: }',
75
+ Puppet::Node.indirection.find('foo'))
76
+ expect(cat.resource("Notify[#{Puppet.version.to_s}]")).to be
88
77
  end
89
78
 
90
- Puppet.initialize_settings
91
- cat = compile_to_catalog('notify { $::agent_specified_environment: }',
79
+ context "when adding the agent_specified_environment fact" do
80
+ it "does not add the fact if the agent environment is not set" do
81
+ expect do
82
+ compile_to_catalog('notify { $::agent_specified_environment: }',
92
83
  Puppet::Node.indirection.find('foo'))
93
- expect(cat.resource("Notify[bar]")).to be
94
- end
84
+ end.to raise_error(Puppet::PreformattedError)
85
+ end
95
86
 
96
- it "adds the agent_specified_environment fact when set via command-line" do
97
- Puppet.initialize_settings(['--environment', 'bar'])
98
- cat = compile_to_catalog('notify { $::agent_specified_environment: }',
87
+ it "does not add the fact if the agent environment is set in sections other than agent or main" do
88
+ set_puppet_conf(Puppet[:confdir], <<~CONF)
89
+ [user]
90
+ environment=bar
91
+ CONF
92
+
93
+ Puppet.initialize_settings
94
+ expect do
95
+ compile_to_catalog('notify { $::agent_specified_environment: }',
99
96
  Puppet::Node.indirection.find('foo'))
100
- expect(cat.resource("Notify[bar]")).to be
101
- end
97
+ end.to raise_error(Puppet::PreformattedError)
98
+ end
102
99
 
103
- it "adds the agent_specified_environment fact, preferring cli, when set in puppet.conf and via command-line" do
104
- FileUtils.mkdir_p(Puppet[:confdir])
105
- File.open(File.join(Puppet[:confdir], 'puppet.conf'), 'w') do |f|
106
- f.puts("environment=bar")
107
- end
100
+ it "adds the agent_specified_environment fact when set in the agent section in puppet.conf" do
101
+ set_puppet_conf(Puppet[:confdir], <<~CONF)
102
+ [agent]
103
+ environment=bar
104
+ CONF
108
105
 
109
- Puppet.initialize_settings(['--environment', 'baz'])
110
- cat = compile_to_catalog('notify { $::agent_specified_environment: }',
111
- Puppet::Node.indirection.find('foo'))
112
- expect(cat.resource("Notify[baz]")).to be
106
+ Puppet.initialize_settings
107
+ cat = compile_to_catalog('notify { $::agent_specified_environment: }',
108
+ Puppet::Node.indirection.find('foo'))
109
+ expect(cat.resource("Notify[bar]")).to be
110
+ end
111
+
112
+ it "prefers agent_specified_environment from main if set in section other than agent" do
113
+ set_puppet_conf(Puppet[:confdir], <<~CONF)
114
+ [main]
115
+ environment=baz
116
+
117
+ [user]
118
+ environment=bar
119
+ CONF
120
+
121
+ Puppet.initialize_settings
122
+ cat = compile_to_catalog('notify { $::agent_specified_environment: }',
123
+ Puppet::Node.indirection.find('foo'))
124
+ expect(cat.resource("Notify[baz]")).to be
125
+ end
126
+
127
+ it "prefers agent_specified_environment from agent if set in multiple sections" do
128
+ set_puppet_conf(Puppet[:confdir], <<~CONF)
129
+ [main]
130
+ environment=baz
131
+
132
+ [agent]
133
+ environment=bar
134
+ CONF
135
+
136
+ Puppet.initialize_settings
137
+ cat = compile_to_catalog('notify { $::agent_specified_environment: }',
138
+ Puppet::Node.indirection.find('foo'))
139
+ expect(cat.resource("Notify[bar]")).to be
140
+ end
141
+
142
+ it "adds the agent_specified_environment fact when set in puppet.conf" do
143
+ set_puppet_conf(Puppet[:confdir], 'environment=bar')
144
+
145
+ Puppet.initialize_settings
146
+ cat = compile_to_catalog('notify { $::agent_specified_environment: }',
147
+ Puppet::Node.indirection.find('foo'))
148
+ expect(cat.resource("Notify[bar]")).to be
149
+ end
150
+
151
+ it "adds the agent_specified_environment fact when set via command-line" do
152
+ Puppet.initialize_settings(['--environment', 'bar'])
153
+ cat = compile_to_catalog('notify { $::agent_specified_environment: }',
154
+ Puppet::Node.indirection.find('foo'))
155
+ expect(cat.resource("Notify[bar]")).to be
156
+ end
157
+
158
+ it "adds the agent_specified_environment fact, preferring cli, when set in puppet.conf and via command-line" do
159
+ set_puppet_conf(Puppet[:confdir], 'environment=bar')
160
+
161
+ Puppet.initialize_settings(['--environment', 'baz'])
162
+ cat = compile_to_catalog('notify { $::agent_specified_environment: }',
163
+ Puppet::Node.indirection.find('foo'))
164
+ expect(cat.resource("Notify[baz]")).to be
165
+ end
166
+ end
113
167
  end
114
168
  end
@@ -7,70 +7,95 @@ describe Puppet::Type.type(:exec), unless: Puppet::Util::Platform.jruby? do
7
7
 
8
8
  let(:catalog) { Puppet::Resource::Catalog.new }
9
9
  let(:path) { tmpfile('exec_provider') }
10
- let(:command) { "ruby -e 'File.open(\"#{path}\", \"w\") { |f| f.print \"foo\" }'" }
11
10
 
12
11
  before :each do
13
12
  catalog.host_config = false
14
13
  end
15
14
 
16
- it "should execute the command" do
17
- exec = described_class.new :command => command, :path => ENV['PATH']
15
+ shared_examples_for 'a valid exec resource' do
16
+ it "should execute the command" do
17
+ exec = described_class.new :command => command, :path => ENV['PATH']
18
18
 
19
- catalog.add_resource exec
20
- catalog.apply
19
+ catalog.add_resource exec
20
+ catalog.apply
21
21
 
22
- expect(File.read(path)).to eq('foo')
23
- end
22
+ expect(File.read(path)).to eq('foo')
23
+ end
24
24
 
25
- it "should not execute the command if onlyif returns non-zero" do
26
- exec = described_class.new(
27
- :command => command,
28
- :onlyif => "ruby -e 'exit 44'",
29
- :path => ENV['PATH']
30
- )
25
+ it "should not execute the command if onlyif returns non-zero" do
26
+ exec = described_class.new(
27
+ :command => command,
28
+ :onlyif => "ruby -e 'exit 44'",
29
+ :path => ENV['PATH']
30
+ )
31
31
 
32
- catalog.add_resource exec
33
- catalog.apply
32
+ catalog.add_resource exec
33
+ catalog.apply
34
34
 
35
- expect(Puppet::FileSystem.exist?(path)).to be_falsey
36
- end
35
+ expect(Puppet::FileSystem.exist?(path)).to be_falsey
36
+ end
37
37
 
38
- it "should execute the command if onlyif returns zero" do
39
- exec = described_class.new(
40
- :command => command,
41
- :onlyif => "ruby -e 'exit 0'",
42
- :path => ENV['PATH']
43
- )
38
+ it "should execute the command if onlyif returns zero" do
39
+ exec = described_class.new(
40
+ :command => command,
41
+ :onlyif => "ruby -e 'exit 0'",
42
+ :path => ENV['PATH']
43
+ )
44
44
 
45
- catalog.add_resource exec
46
- catalog.apply
45
+ catalog.add_resource exec
46
+ catalog.apply
47
47
 
48
- expect(File.read(path)).to eq('foo')
49
- end
48
+ expect(File.read(path)).to eq('foo')
49
+ end
50
+
51
+ it "should execute the command if unless returns non-zero" do
52
+ exec = described_class.new(
53
+ :command => command,
54
+ :unless => "ruby -e 'exit 45'",
55
+ :path => ENV['PATH']
56
+ )
57
+
58
+ catalog.add_resource exec
59
+ catalog.apply
60
+
61
+ expect(File.read(path)).to eq('foo')
62
+ end
50
63
 
51
- it "should execute the command if unless returns non-zero" do
52
- exec = described_class.new(
53
- :command => command,
54
- :unless => "ruby -e 'exit 45'",
55
- :path => ENV['PATH']
56
- )
64
+ it "should not execute the command if unless returns zero" do
65
+ exec = described_class.new(
66
+ :command => command,
67
+ :unless => "ruby -e 'exit 0'",
68
+ :path => ENV['PATH']
69
+ )
57
70
 
58
- catalog.add_resource exec
59
- catalog.apply
71
+ catalog.add_resource exec
72
+ catalog.apply
60
73
 
61
- expect(File.read(path)).to eq('foo')
74
+ expect(Puppet::FileSystem.exist?(path)).to be_falsey
75
+ end
62
76
  end
63
77
 
64
- it "should not execute the command if unless returns zero" do
65
- exec = described_class.new(
66
- :command => command,
67
- :unless => "ruby -e 'exit 0'",
68
- :path => ENV['PATH']
69
- )
78
+ context 'when command is a string' do
79
+ let(:command) { "ruby -e 'File.open(\"#{path}\", \"w\") { |f| f.print \"foo\" }'" }
80
+
81
+ it_behaves_like 'a valid exec resource'
82
+ end
83
+
84
+ context 'when command is an array' do
85
+ let(:command) { ['ruby', '-e', "File.open(\"#{path}\", \"w\") { |f| f.print \"foo\" }"] }
86
+
87
+ it_behaves_like 'a valid exec resource'
88
+
89
+ context 'when is invalid' do
90
+ let(:command) { [ "ruby -e 'puts 1'" ] }
70
91
 
71
- catalog.add_resource exec
72
- catalog.apply
92
+ it 'logs error' do
93
+ exec = described_class.new :command => command, :path => ENV['PATH']
94
+ catalog.add_resource exec
95
+ logs = catalog.apply.report.logs
73
96
 
74
- expect(Puppet::FileSystem.exist?(path)).to be_falsey
97
+ expect(logs[0].message).to eql("Could not find command 'ruby -e 'puts 1''")
98
+ end
99
+ end
75
100
  end
76
101
  end
@@ -895,7 +895,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
895
895
 
896
896
  # Change the source file.
897
897
  File.open(checksum_file, "wb") { |f| f.write "some content" }
898
- FileUtils.touch target_file, :mtime => Time.now - 20
898
+ FileUtils.touch target_file, mtime: Time.now - 20
899
899
 
900
900
  # The 2nd time should update the resource.
901
901
  second_catalog.add_resource Puppet::Type.send(:newfile, @options)
@@ -1399,7 +1399,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1399
1399
  it "should fetch if no header specified" do
1400
1400
  File.open(httppath, "wb") { |f| f.puts "Content originally on disk\n" }
1401
1401
  # make sure the mtime is not "right now", lest we get a race
1402
- FileUtils.touch httppath, :mtime => Time.parse("Sun, 22 Mar 2015 22:57:43 GMT")
1402
+ FileUtils.touch httppath, mtime: Time.parse("Sun, 22 Mar 2015 22:57:43 GMT")
1403
1403
  catalog.add_resource resource
1404
1404
  catalog.apply
1405
1405
  expect(Puppet::FileSystem.exist?(httppath)).to be_truthy
@@ -1409,7 +1409,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1409
1409
  it "should fetch if mtime is older on disk" do
1410
1410
  File.open(httppath, "wb") { |f| f.puts "Content originally on disk\n" }
1411
1411
  # fixture has Last-Modified: Sun, 22 Mar 2015 22:25:34 GMT
1412
- FileUtils.touch httppath, :mtime => Time.parse("Sun, 22 Mar 2015 22:22:34 GMT")
1412
+ FileUtils.touch httppath, mtime: Time.parse("Sun, 22 Mar 2015 22:22:34 GMT")
1413
1413
  catalog.add_resource resource
1414
1414
  catalog.apply
1415
1415
  expect(Puppet::FileSystem.exist?(httppath)).to be_truthy
@@ -1455,7 +1455,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1455
1455
  it "should not update if content on disk is up-to-date" do
1456
1456
  File.open(httppath, "wb") { |f| f.puts "Content via HTTP\n" }
1457
1457
  disk_mtime = Time.parse("Sun, 22 Mar 2015 22:22:34 GMT")
1458
- FileUtils.touch httppath, :mtime => disk_mtime
1458
+ FileUtils.touch httppath, mtime: disk_mtime
1459
1459
  catalog.add_resource resource
1460
1460
  catalog.apply
1461
1461
  expect(Puppet::FileSystem.exist?(httppath)).to be_truthy
@@ -2002,7 +2002,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
2002
2002
  it "should not update mtime on an old directory" do
2003
2003
  disk_mtime = Time.parse("Sun, 22 Mar 2015 22:22:34 GMT")
2004
2004
  FileUtils.mkdir_p path
2005
- FileUtils.touch path, :mtime => disk_mtime
2005
+ FileUtils.touch path, mtime: disk_mtime
2006
2006
  status = catalog.apply.report.resource_statuses["File[#{path}]"]
2007
2007
  expect(status).to be_nil
2008
2008
  expect(Puppet::FileSystem).to be_directory(path)
@@ -30,7 +30,7 @@ module Puppet
30
30
  end
31
31
 
32
32
  def create_request(name)
33
- key = OpenSSL::PKey::RSA.new(1024)
33
+ key = OpenSSL::PKey::RSA.new(2048)
34
34
  csr = OpenSSL::X509::Request.new
35
35
  csr.public_key = key.public_key
36
36
  csr.subject = OpenSSL::X509::Name.new([["CN", name]])
@@ -46,6 +46,11 @@ module Puppet
46
46
  ext = ef.create_extension(["subjectAltName", opts[:subject_alt_names], false])
47
47
  cert.add_extension(ext)
48
48
  end
49
+ if exts = opts[:extensions]
50
+ exts.each do |e|
51
+ cert.add_extension(OpenSSL::X509::Extension.new(*e))
52
+ end
53
+ end
49
54
  cert.sign(issuer_key, @digest)
50
55
  { private_key: key, cert: cert }
51
56
  end
@@ -127,7 +132,7 @@ module Puppet
127
132
  key = if opts[:key_type] == :ec
128
133
  key = OpenSSL::PKey::EC.generate('prime256v1')
129
134
  else
130
- key = OpenSSL::PKey::RSA.new(1024)
135
+ key = OpenSSL::PKey::RSA.new(2048)
131
136
  end
132
137
  cert = OpenSSL::X509::Certificate.new
133
138
  cert.public_key = if key.is_a?(OpenSSL::PKey::EC)
@@ -9,7 +9,7 @@ module PuppetSpec::Files
9
9
  $global_tempfiles ||= []
10
10
  while path = $global_tempfiles.pop do
11
11
  begin
12
- FileUtils.rm_rf path, :secure => true
12
+ FileUtils.rm_rf path, secure: true
13
13
  rescue Errno::ENOENT
14
14
  # nothing to do
15
15
  end
@@ -21,6 +21,7 @@ module PuppetSpec::Settings
21
21
  end.freeze
22
22
 
23
23
  def set_puppet_conf(confdir, settings)
24
+ FileUtils.mkdir_p(confdir)
24
25
  write_file(File.join(confdir, "puppet.conf"), settings)
25
26
  end
26
27
 
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.shared_context('provider specificity') do
4
+ around do |example|
5
+ old_defaults = described_class.instance_variable_get(:@defaults)
6
+ old_notdefaults = described_class.instance_variable_get(:@notdefaults)
7
+ begin
8
+ described_class.instance_variable_set(:@defaults, [])
9
+ described_class.instance_variable_set(:@notdefaults, [])
10
+ example.run
11
+ ensure
12
+ described_class.instance_variable_set(:@defaults, old_defaults)
13
+ described_class.instance_variable_set(:@notdefaults, old_notdefaults)
14
+ end
15
+ end
16
+ end
data/spec/spec_helper.rb CHANGED
@@ -162,10 +162,20 @@ RSpec.configure do |config|
162
162
  PUPPET_FACTER_2_GCE_URL = %r{^http://metadata/computeMetadata/v1(beta1)?}.freeze
163
163
  PUPPET_FACTER_3_GCE_URL = "http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=json".freeze
164
164
 
165
+ # Facter azure metadata endpoint
166
+ PUPPET_FACTER_AZ_URL = "http://169.254.169.254/metadata/instance?api-version=2020-09-01"
167
+
168
+ # Facter EC2 endpoint
169
+ PUPPET_FACTER_EC2_METADATA = 'http://169.254.169.254/latest/meta-data/'
170
+ PUPPET_FACTER_EC2_USERDATA = 'http://169.254.169.254/latest/user-data/'
171
+
165
172
  config.around :each do |example|
166
- # Ignore requests from Facter GCE fact in Travis
173
+ # Ignore requests from Facter to external services
167
174
  stub_request(:get, PUPPET_FACTER_2_GCE_URL)
168
175
  stub_request(:get, PUPPET_FACTER_3_GCE_URL)
176
+ stub_request(:get, PUPPET_FACTER_AZ_URL)
177
+ stub_request(:get, PUPPET_FACTER_EC2_METADATA)
178
+ stub_request(:get, PUPPET_FACTER_EC2_USERDATA)
169
179
 
170
180
  # Enable VCR if the example is tagged with `:vcr` metadata.
171
181
  if example.metadata[:vcr]
@@ -546,11 +546,16 @@ describe Puppet::Application::Agent do
546
546
  @puppetd.options[:digest] = :MD5
547
547
  end
548
548
 
549
+ def expected_fingerprint(name, x509)
550
+ digest = OpenSSL::Digest.new(name).hexdigest(x509.to_der)
551
+ digest.scan(/../).join(':').upcase
552
+ end
553
+
549
554
  it "should fingerprint the certificate if it exists" do
550
555
  cert = cert_fixture('signed.pem')
551
556
  allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_return(cert)
552
557
 
553
- expect(@puppetd).to receive(:puts).with('(MD5) E2:BA:9A:EF:20:A8:7D:10:8D:82:9A:61:5D:FD:5B:33')
558
+ expect(@puppetd).to receive(:puts).with("(MD5) #{expected_fingerprint('md5', cert)}")
554
559
 
555
560
  @puppetd.fingerprint
556
561
  end
@@ -560,7 +565,7 @@ describe Puppet::Application::Agent do
560
565
  allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_return(nil)
561
566
  allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_request).and_return(request)
562
567
 
563
- expect(@puppetd).to receive(:puts).with('(MD5) B8:4C:FB:31:AE:17:86:E3:AD:53:97:CA:F6:3C:4A:CB')
568
+ expect(@puppetd).to receive(:puts).with("(MD5) #{expected_fingerprint('md5', request)}")
564
569
 
565
570
  @puppetd.fingerprint
566
571
  end