puppet 6.25.0-x64-mingw32 → 7.0.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 (783) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +3 -5
  5. data/Gemfile.lock +39 -51
  6. data/README.md +5 -5
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/README.environment +8 -0
  9. data/ext/build_defaults.yaml +1 -1
  10. data/ext/dbfix.sql +132 -0
  11. data/ext/debian/README.Debian +8 -0
  12. data/ext/debian/README.source +2 -0
  13. data/ext/debian/TODO.Debian +1 -0
  14. data/ext/debian/changelog.erb +1122 -0
  15. data/ext/debian/compat +1 -0
  16. data/ext/debian/control +144 -0
  17. data/ext/debian/copyright +339 -0
  18. data/ext/debian/docs +1 -0
  19. data/ext/debian/fileserver.conf +41 -0
  20. data/ext/debian/puppet-common.dirs +13 -0
  21. data/ext/debian/puppet-common.install +3 -0
  22. data/ext/debian/puppet-common.lintian-overrides +5 -0
  23. data/ext/debian/puppet-common.manpages +28 -0
  24. data/ext/debian/puppet-common.postinst +35 -0
  25. data/ext/debian/puppet-common.postrm +33 -0
  26. data/ext/debian/puppet-el.dirs +1 -0
  27. data/ext/debian/puppet-el.emacsen-install +25 -0
  28. data/ext/debian/puppet-el.emacsen-remove +11 -0
  29. data/ext/debian/puppet-el.emacsen-startup +9 -0
  30. data/ext/debian/puppet-el.install +1 -0
  31. data/ext/debian/puppet-testsuite.install +2 -0
  32. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  33. data/ext/debian/puppet.lintian-overrides +3 -0
  34. data/ext/debian/puppet.logrotate +20 -0
  35. data/ext/debian/puppet.postinst +20 -0
  36. data/ext/debian/puppet.postrm +20 -0
  37. data/ext/debian/puppet.preinst +20 -0
  38. data/ext/debian/puppetmaster-common.install +2 -0
  39. data/ext/debian/puppetmaster-common.manpages +2 -0
  40. data/ext/debian/puppetmaster-common.postinst +6 -0
  41. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  42. data/ext/debian/puppetmaster-passenger.postinst +162 -0
  43. data/ext/debian/puppetmaster-passenger.postrm +61 -0
  44. data/ext/debian/puppetmaster.README.debian +17 -0
  45. data/ext/debian/puppetmaster.default +14 -0
  46. data/ext/debian/puppetmaster.init +137 -0
  47. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  48. data/ext/debian/puppetmaster.postinst +20 -0
  49. data/ext/debian/puppetmaster.postrm +5 -0
  50. data/ext/debian/puppetmaster.preinst +22 -0
  51. data/ext/debian/rules +132 -0
  52. data/ext/debian/source/format +1 -0
  53. data/ext/debian/source/options +1 -0
  54. data/ext/debian/vim-puppet.README.Debian +13 -0
  55. data/ext/debian/vim-puppet.dirs +5 -0
  56. data/ext/debian/vim-puppet.yaml +7 -0
  57. data/ext/debian/watch +2 -0
  58. data/ext/freebsd/puppetd +26 -0
  59. data/ext/freebsd/puppetmasterd +26 -0
  60. data/ext/gentoo/conf.d/puppet +5 -0
  61. data/ext/gentoo/conf.d/puppetmaster +12 -0
  62. data/ext/gentoo/init.d/puppet +38 -0
  63. data/ext/gentoo/init.d/puppetmaster +51 -0
  64. data/ext/gentoo/puppet/fileserver.conf +41 -0
  65. data/ext/ips/puppet-agent +44 -0
  66. data/ext/ips/puppet-master +44 -0
  67. data/ext/ips/puppet.p5m.erb +12 -0
  68. data/ext/ips/puppetagent.xml +42 -0
  69. data/ext/ips/puppetmaster.xml +42 -0
  70. data/ext/ips/rules +19 -0
  71. data/ext/ips/transforms +34 -0
  72. data/ext/ldap/puppet.schema +24 -0
  73. data/ext/logcheck/puppet +23 -0
  74. data/{examples → ext}/nagios/check_puppet.rb +2 -2
  75. data/ext/osx/file_mapping.yaml +28 -0
  76. data/ext/osx/postflight.erb +109 -0
  77. data/ext/osx/preflight.erb +52 -0
  78. data/ext/osx/prototype.plist.erb +38 -0
  79. data/ext/osx/puppet.plist +0 -2
  80. data/ext/project_data.yaml +1 -15
  81. data/ext/redhat/fileserver.conf +41 -0
  82. data/ext/redhat/logrotate +21 -0
  83. data/ext/redhat/puppet.spec.erb +841 -0
  84. data/ext/redhat/server.init +128 -0
  85. data/ext/redhat/server.sysconfig +13 -0
  86. data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
  87. data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
  88. data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
  89. data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
  90. data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
  91. data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
  92. data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
  93. data/ext/solaris/pkginfo +6 -0
  94. data/ext/solaris/smf/puppetd.xml +77 -0
  95. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  96. data/ext/solaris/smf/svc-puppetd +71 -0
  97. data/ext/solaris/smf/svc-puppetmasterd +67 -0
  98. data/ext/suse/puppet.spec +310 -0
  99. data/ext/suse/server.init +173 -0
  100. data/ext/windows/service/daemon.rb +6 -5
  101. data/ext/yaml_nodes.rb +105 -0
  102. data/install.rb +21 -17
  103. data/lib/puppet/application/agent.rb +4 -16
  104. data/lib/puppet/application/apply.rb +4 -24
  105. data/lib/puppet/application/device.rb +100 -106
  106. data/lib/puppet/application/filebucket.rb +13 -10
  107. data/lib/puppet/application/resource.rb +16 -32
  108. data/lib/puppet/application/script.rb +0 -2
  109. data/lib/puppet/application/ssl.rb +1 -13
  110. data/lib/puppet/application.rb +178 -108
  111. data/lib/puppet/application_support.rb +0 -7
  112. data/lib/puppet/concurrent/thread_local_singleton.rb +0 -1
  113. data/lib/puppet/configurer/downloader.rb +1 -2
  114. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  115. data/lib/puppet/configurer.rb +87 -130
  116. data/lib/puppet/confine/variable.rb +1 -1
  117. data/lib/puppet/defaults.rb +128 -226
  118. data/lib/puppet/environments.rb +82 -146
  119. data/lib/puppet/face/facts.rb +5 -103
  120. data/lib/puppet/face/help/action.erb +0 -1
  121. data/lib/puppet/face/help/face.erb +0 -1
  122. data/lib/puppet/face/help.rb +1 -1
  123. data/lib/puppet/face/node/clean.rb +0 -11
  124. data/lib/puppet/face/plugin.rb +5 -8
  125. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  126. data/lib/puppet/ffi/windows/constants.rb +404 -0
  127. data/lib/puppet/ffi/windows/functions.rb +628 -0
  128. data/lib/puppet/ffi/windows/structs.rb +338 -0
  129. data/lib/puppet/ffi/windows.rb +12 -0
  130. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  131. data/lib/puppet/file_serving/configuration.rb +0 -8
  132. data/lib/puppet/file_serving/fileset.rb +2 -14
  133. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  134. data/lib/puppet/file_serving/mount/file.rb +4 -4
  135. data/lib/puppet/file_serving/mount.rb +1 -2
  136. data/lib/puppet/file_system/file_impl.rb +1 -3
  137. data/lib/puppet/file_system/memory_file.rb +1 -8
  138. data/lib/puppet/file_system/windows.rb +2 -4
  139. data/lib/puppet/forge/repository.rb +0 -1
  140. data/lib/puppet/forge.rb +4 -4
  141. data/lib/puppet/functions/all.rb +1 -1
  142. data/lib/puppet/functions/camelcase.rb +1 -1
  143. data/lib/puppet/functions/capitalize.rb +2 -2
  144. data/lib/puppet/functions/downcase.rb +2 -2
  145. data/lib/puppet/functions/empty.rb +0 -8
  146. data/lib/puppet/functions/find_template.rb +2 -2
  147. data/lib/puppet/functions/get.rb +5 -5
  148. data/lib/puppet/functions/group_by.rb +5 -13
  149. data/lib/puppet/functions/lest.rb +1 -1
  150. data/lib/puppet/functions/new.rb +100 -100
  151. data/lib/puppet/functions/partition.rb +4 -12
  152. data/lib/puppet/functions/require.rb +5 -5
  153. data/lib/puppet/functions/sort.rb +3 -3
  154. data/lib/puppet/functions/strftime.rb +0 -1
  155. data/lib/puppet/functions/tree_each.rb +9 -7
  156. data/lib/puppet/functions/type.rb +4 -4
  157. data/lib/puppet/functions/unwrap.rb +2 -17
  158. data/lib/puppet/functions/upcase.rb +2 -2
  159. data/lib/puppet/generate/models/type/type.rb +4 -1
  160. data/lib/puppet/http/client.rb +164 -114
  161. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  162. data/lib/puppet/http/errors.rb +16 -0
  163. data/lib/puppet/http/external_client.rb +5 -7
  164. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  165. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  166. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  167. data/lib/puppet/http/proxy.rb +137 -0
  168. data/lib/puppet/http/redirector.rb +4 -12
  169. data/lib/puppet/http/resolver/server_list.rb +10 -25
  170. data/lib/puppet/http/resolver/settings.rb +4 -7
  171. data/lib/puppet/http/resolver/srv.rb +7 -11
  172. data/lib/puppet/http/resolver.rb +5 -15
  173. data/lib/puppet/http/response.rb +36 -54
  174. data/lib/puppet/http/response_converter.rb +24 -0
  175. data/lib/puppet/http/response_net_http.rb +42 -0
  176. data/lib/puppet/http/retry_after_handler.rb +4 -13
  177. data/lib/puppet/http/service/ca.rb +11 -22
  178. data/lib/puppet/http/service/compiler.rb +23 -144
  179. data/lib/puppet/http/service/file_server.rb +19 -29
  180. data/lib/puppet/http/service/puppetserver.rb +26 -12
  181. data/lib/puppet/http/service/report.rb +8 -10
  182. data/lib/puppet/http/service.rb +12 -26
  183. data/lib/puppet/http/session.rb +11 -20
  184. data/lib/puppet/{network/http → http}/site.rb +1 -2
  185. data/lib/puppet/http.rb +22 -13
  186. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  187. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  188. data/lib/puppet/indirector/facts/facter.rb +6 -6
  189. data/lib/puppet/indirector/facts/rest.rb +3 -22
  190. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  191. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  192. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  193. data/lib/puppet/indirector/file_server.rb +1 -8
  194. data/lib/puppet/indirector/generic_http.rb +0 -11
  195. data/lib/puppet/indirector/indirection.rb +1 -1
  196. data/lib/puppet/indirector/node/rest.rb +2 -4
  197. data/lib/puppet/indirector/report/rest.rb +3 -8
  198. data/lib/puppet/indirector/request.rb +0 -101
  199. data/lib/puppet/indirector/resource/ral.rb +1 -6
  200. data/lib/puppet/indirector/rest.rb +12 -263
  201. data/lib/puppet/indirector/terminus.rb +0 -4
  202. data/lib/puppet/interface/documentation.rb +0 -1
  203. data/lib/puppet/module/plan.rb +1 -0
  204. data/lib/puppet/module/task.rb +1 -1
  205. data/lib/puppet/module.rb +0 -1
  206. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  207. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  208. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  209. data/lib/puppet/module_tool/applications.rb +0 -1
  210. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  211. data/lib/puppet/network/authconfig.rb +2 -96
  212. data/lib/puppet/network/authorization.rb +13 -35
  213. data/lib/puppet/network/formats.rb +0 -67
  214. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  215. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  216. data/lib/puppet/network/http/connection.rb +247 -316
  217. data/lib/puppet/network/http/handler.rb +0 -1
  218. data/lib/puppet/network/http.rb +3 -3
  219. data/lib/puppet/network/http_pool.rb +16 -34
  220. data/lib/puppet/node/environment.rb +11 -10
  221. data/lib/puppet/node.rb +1 -30
  222. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  223. data/lib/puppet/pal/pal_impl.rb +4 -2
  224. data/lib/puppet/parser/ast/leaf.rb +2 -3
  225. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  226. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  227. data/lib/puppet/parser/compiler.rb +0 -198
  228. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  229. data/lib/puppet/parser/resource.rb +0 -69
  230. data/lib/puppet/parser/scope.rb +0 -1
  231. data/lib/puppet/parser/templatewrapper.rb +1 -2
  232. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  233. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  234. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  235. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  236. data/lib/puppet/pops/issues.rb +0 -5
  237. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  238. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  239. data/lib/puppet/pops/model/ast.pp +0 -42
  240. data/lib/puppet/pops/model/ast.rb +0 -291
  241. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  242. data/lib/puppet/pops/model/factory.rb +1 -47
  243. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  244. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  245. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  246. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  247. data/lib/puppet/pops/parser/eparser.rb +1691 -1883
  248. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  249. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  250. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  251. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  252. data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
  253. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  254. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  255. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  256. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  257. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  258. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  259. data/lib/puppet/pops/types/type_parser.rb +0 -4
  260. data/lib/puppet/pops/types/types.rb +1 -2
  261. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  262. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  263. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  264. data/lib/puppet/property/list.rb +1 -1
  265. data/lib/puppet/provider/aix_object.rb +1 -1
  266. data/lib/puppet/provider/exec/posix.rb +4 -16
  267. data/lib/puppet/provider/group/groupadd.rb +10 -18
  268. data/lib/puppet/provider/nameservice.rb +0 -18
  269. data/lib/puppet/provider/package/apt.rb +2 -34
  270. data/lib/puppet/provider/package/aptitude.rb +0 -6
  271. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  272. data/lib/puppet/provider/package/dpkg.rb +0 -10
  273. data/lib/puppet/provider/package/gem.rb +23 -3
  274. data/lib/puppet/provider/package/nim.rb +6 -11
  275. data/lib/puppet/provider/package/pip.rb +3 -16
  276. data/lib/puppet/provider/package/pkg.rb +2 -23
  277. data/lib/puppet/provider/package/portage.rb +1 -1
  278. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  279. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  280. data/lib/puppet/provider/package/yum.rb +1 -1
  281. data/lib/puppet/provider/parsedfile.rb +0 -3
  282. data/lib/puppet/provider/service/base.rb +1 -1
  283. data/lib/puppet/provider/service/debian.rb +0 -2
  284. data/lib/puppet/provider/service/init.rb +5 -5
  285. data/lib/puppet/provider/service/launchd.rb +2 -2
  286. data/lib/puppet/provider/service/redhat.rb +1 -1
  287. data/lib/puppet/provider/service/smf.rb +194 -76
  288. data/lib/puppet/provider/service/systemd.rb +6 -16
  289. data/lib/puppet/provider/service/upstart.rb +5 -5
  290. data/lib/puppet/provider/service/windows.rb +0 -38
  291. data/lib/puppet/provider/user/aix.rb +3 -46
  292. data/lib/puppet/provider/user/directoryservice.rb +11 -34
  293. data/lib/puppet/provider/user/useradd.rb +24 -134
  294. data/lib/puppet/provider.rb +1 -14
  295. data/lib/puppet/reference/configuration.rb +8 -7
  296. data/lib/puppet/reference/indirection.rb +1 -1
  297. data/lib/puppet/reference/providers.rb +2 -2
  298. data/lib/puppet/resource/catalog.rb +1 -14
  299. data/lib/puppet/resource/type.rb +3 -119
  300. data/lib/puppet/resource/type_collection.rb +3 -49
  301. data/lib/puppet/resource.rb +1 -89
  302. data/lib/puppet/runtime.rb +2 -13
  303. data/lib/puppet/settings/environment_conf.rb +0 -1
  304. data/lib/puppet/settings/integer_setting.rb +17 -0
  305. data/lib/puppet/settings/port_setting.rb +15 -0
  306. data/lib/puppet/settings/priority_setting.rb +5 -4
  307. data/lib/puppet/settings.rb +82 -98
  308. data/lib/puppet/ssl/base.rb +3 -5
  309. data/lib/puppet/ssl/certificate.rb +0 -6
  310. data/lib/puppet/ssl/certificate_request.rb +1 -12
  311. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  312. data/lib/puppet/ssl/oids.rb +3 -1
  313. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  314. data/lib/puppet/ssl/state_machine.rb +3 -1
  315. data/lib/puppet/ssl/verifier.rb +2 -0
  316. data/lib/puppet/ssl.rb +10 -6
  317. data/lib/puppet/test/test_helper.rb +2 -7
  318. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  319. data/lib/puppet/transaction/persistence.rb +1 -11
  320. data/lib/puppet/transaction/report.rb +3 -19
  321. data/lib/puppet/transaction.rb +1 -7
  322. data/lib/puppet/type/exec.rb +5 -35
  323. data/lib/puppet/type/file/checksum.rb +1 -1
  324. data/lib/puppet/type/file/mode.rb +0 -6
  325. data/lib/puppet/type/file/selcontext.rb +1 -1
  326. data/lib/puppet/type/file/source.rb +1 -1
  327. data/lib/puppet/type/file.rb +12 -32
  328. data/lib/puppet/type/filebucket.rb +4 -4
  329. data/lib/puppet/type/group.rb +1 -0
  330. data/lib/puppet/type/package.rb +8 -16
  331. data/lib/puppet/type/resources.rb +1 -1
  332. data/lib/puppet/type/service.rb +41 -26
  333. data/lib/puppet/type/tidy.rb +3 -22
  334. data/lib/puppet/type/user.rb +21 -38
  335. data/lib/puppet/type.rb +1 -77
  336. data/lib/puppet/util/autoload.rb +8 -1
  337. data/lib/puppet/util/command_line.rb +1 -1
  338. data/lib/puppet/util/execution.rb +0 -11
  339. data/lib/puppet/util/filetype.rb +2 -2
  340. data/lib/puppet/util/http_proxy.rb +2 -215
  341. data/lib/puppet/util/json.rb +0 -3
  342. data/lib/puppet/util/log.rb +2 -1
  343. data/lib/puppet/util/logging.rb +25 -1
  344. data/lib/puppet/util/monkey_patches.rb +0 -53
  345. data/lib/puppet/util/pidlock.rb +1 -1
  346. data/lib/puppet/util/posix.rb +5 -54
  347. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  348. data/lib/puppet/util/rdoc.rb +0 -7
  349. data/lib/puppet/util/retry_action.rb +1 -1
  350. data/lib/puppet/util/run_mode.rb +9 -1
  351. data/lib/puppet/util/selinux.rb +4 -30
  352. data/lib/puppet/util/suidmanager.rb +2 -1
  353. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  354. data/lib/puppet/util/tagging.rb +0 -1
  355. data/lib/puppet/util/windows/adsi.rb +0 -46
  356. data/lib/puppet/util/windows/daemon.rb +360 -0
  357. data/lib/puppet/util/windows/error.rb +1 -0
  358. data/lib/puppet/util/windows/eventlog.rb +4 -9
  359. data/lib/puppet/util/windows/file.rb +8 -242
  360. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  361. data/lib/puppet/util/windows/principal.rb +2 -9
  362. data/lib/puppet/util/windows/process.rb +4 -226
  363. data/lib/puppet/util/windows/service.rb +9 -460
  364. data/lib/puppet/util/windows/sid.rb +2 -6
  365. data/lib/puppet/util/windows/string.rb +12 -13
  366. data/lib/puppet/util/windows/user.rb +2 -0
  367. data/lib/puppet/util/windows.rb +3 -8
  368. data/lib/puppet/util/yaml.rb +0 -22
  369. data/lib/puppet/util.rb +3 -4
  370. data/lib/puppet/vendor/require_vendored.rb +0 -1
  371. data/lib/puppet/version.rb +1 -1
  372. data/lib/puppet/x509/cert_provider.rb +29 -1
  373. data/lib/puppet/x509.rb +5 -1
  374. data/lib/puppet.rb +20 -25
  375. data/locales/puppet.pot +816 -1637
  376. data/man/man5/puppet.conf.5 +286 -382
  377. data/man/man8/puppet-agent.8 +2 -5
  378. data/man/man8/puppet-apply.8 +2 -2
  379. data/man/man8/puppet-catalog.8 +9 -9
  380. data/man/man8/puppet-config.8 +1 -1
  381. data/man/man8/puppet-describe.8 +1 -1
  382. data/man/man8/puppet-device.8 +2 -2
  383. data/man/man8/puppet-doc.8 +1 -1
  384. data/man/man8/puppet-epp.8 +1 -1
  385. data/man/man8/puppet-facts.8 +8 -51
  386. data/man/man8/puppet-filebucket.8 +4 -4
  387. data/man/man8/puppet-generate.8 +1 -1
  388. data/man/man8/puppet-help.8 +1 -1
  389. data/man/man8/puppet-lookup.8 +1 -1
  390. data/man/man8/puppet-module.8 +3 -60
  391. data/man/man8/puppet-node.8 +5 -5
  392. data/man/man8/puppet-parser.8 +1 -1
  393. data/man/man8/puppet-plugin.8 +1 -1
  394. data/man/man8/puppet-report.8 +5 -5
  395. data/man/man8/puppet-resource.8 +1 -1
  396. data/man/man8/puppet-script.8 +2 -2
  397. data/man/man8/puppet-ssl.8 +1 -5
  398. data/man/man8/puppet.8 +2 -2
  399. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  400. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  401. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  402. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  403. data/spec/fixtures/ssl/ca.pem +35 -57
  404. data/spec/fixtures/ssl/crl.pem +18 -28
  405. data/spec/fixtures/ssl/ec-key.pem +11 -11
  406. data/spec/fixtures/ssl/ec.pem +24 -33
  407. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  408. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  409. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  410. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  411. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  412. data/spec/fixtures/ssl/intermediate.pem +36 -57
  413. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  414. data/spec/fixtures/ssl/pluto.pem +30 -52
  415. data/spec/fixtures/ssl/request-key.pem +57 -107
  416. data/spec/fixtures/ssl/request.pem +26 -47
  417. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  418. data/spec/fixtures/ssl/revoked.pem +30 -52
  419. data/spec/fixtures/ssl/signed-key.pem +57 -107
  420. data/spec/fixtures/ssl/signed.pem +30 -52
  421. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  422. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  423. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  424. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  425. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  426. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  427. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  428. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  429. data/spec/integration/application/agent_spec.rb +51 -271
  430. data/spec/integration/application/apply_spec.rb +1 -20
  431. data/spec/integration/application/filebucket_spec.rb +16 -32
  432. data/spec/integration/application/help_spec.rb +2 -0
  433. data/spec/integration/application/module_spec.rb +0 -21
  434. data/spec/integration/application/plugin_spec.rb +24 -2
  435. data/spec/integration/configurer_spec.rb +2 -18
  436. data/spec/integration/defaults_spec.rb +14 -3
  437. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  438. data/spec/integration/http/client_spec.rb +0 -12
  439. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  440. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  441. data/spec/integration/network/http_pool_spec.rb +3 -21
  442. data/spec/integration/parser/catalog_spec.rb +0 -38
  443. data/spec/integration/parser/node_spec.rb +0 -9
  444. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  445. data/spec/integration/resource/type_collection_spec.rb +6 -2
  446. data/spec/integration/transaction/report_spec.rb +1 -1
  447. data/spec/integration/transaction_spec.rb +9 -4
  448. data/spec/integration/type/exec_spec.rb +45 -70
  449. data/spec/integration/type/file_spec.rb +7 -6
  450. data/spec/integration/type/package_spec.rb +6 -6
  451. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  452. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  453. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  454. data/spec/integration/util/windows/principal_spec.rb +0 -21
  455. data/spec/integration/util/windows/process_spec.rb +9 -1
  456. data/spec/integration/util/windows/registry_spec.rb +10 -6
  457. data/spec/integration/util/windows/security_spec.rb +1 -1
  458. data/spec/lib/matchers/include.rb +27 -0
  459. data/spec/lib/matchers/include_spec.rb +32 -0
  460. data/spec/lib/puppet/test_ca.rb +2 -7
  461. data/spec/lib/puppet_spec/modules.rb +2 -13
  462. data/spec/lib/puppet_spec/puppetserver.rb +1 -16
  463. data/spec/lib/puppet_spec/settings.rb +1 -1
  464. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  465. data/spec/spec_helper.rb +17 -13
  466. data/spec/unit/agent_spec.rb +6 -10
  467. data/spec/unit/application/agent_spec.rb +3 -7
  468. data/spec/unit/application/apply_spec.rb +56 -76
  469. data/spec/unit/application/facts_spec.rb +12 -456
  470. data/spec/unit/application/filebucket_spec.rb +43 -39
  471. data/spec/unit/application/resource_spec.rb +0 -29
  472. data/spec/unit/application/ssl_spec.rb +2 -25
  473. data/spec/unit/application_spec.rb +9 -51
  474. data/spec/unit/certificate_factory_spec.rb +1 -1
  475. data/spec/unit/configurer/downloader_spec.rb +6 -8
  476. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  477. data/spec/unit/configurer_spec.rb +67 -202
  478. data/spec/unit/confine/feature_spec.rb +1 -1
  479. data/spec/unit/confine_spec.rb +2 -8
  480. data/spec/unit/context/trusted_information_spec.rb +2 -6
  481. data/spec/unit/defaults_spec.rb +68 -55
  482. data/spec/unit/environments_spec.rb +68 -408
  483. data/spec/unit/face/node_spec.rb +11 -0
  484. data/spec/unit/face/plugin_spec.rb +73 -33
  485. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  486. data/spec/unit/file_bucket/file_spec.rb +1 -1
  487. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  488. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  489. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  490. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  491. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  492. data/spec/unit/file_system_spec.rb +0 -22
  493. data/spec/unit/forge/module_release_spec.rb +7 -2
  494. data/spec/unit/functions/assert_type_spec.rb +1 -1
  495. data/spec/unit/functions/camelcase_spec.rb +1 -1
  496. data/spec/unit/functions/capitalize_spec.rb +1 -1
  497. data/spec/unit/functions/downcase_spec.rb +1 -1
  498. data/spec/unit/functions/empty_spec.rb +0 -10
  499. data/spec/unit/functions/logging_spec.rb +0 -1
  500. data/spec/unit/functions/lookup_spec.rb +0 -64
  501. data/spec/unit/functions/unwrap_spec.rb +0 -8
  502. data/spec/unit/functions/upcase_spec.rb +1 -1
  503. data/spec/unit/functions4_spec.rb +2 -2
  504. data/spec/unit/gettext/config_spec.rb +0 -12
  505. data/spec/unit/http/client_spec.rb +7 -8
  506. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  507. data/spec/unit/http/external_client_spec.rb +4 -4
  508. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  509. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  510. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  511. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  512. data/spec/unit/http/resolver_spec.rb +13 -13
  513. data/spec/unit/http/service/compiler_spec.rb +0 -193
  514. data/spec/unit/http/service/file_server_spec.rb +3 -3
  515. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  516. data/spec/unit/http/service_spec.rb +0 -1
  517. data/spec/unit/http/session_spec.rb +16 -14
  518. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  519. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  520. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  521. data/spec/unit/indirector/face_spec.rb +1 -0
  522. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  523. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  524. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  525. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  526. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  527. data/spec/unit/indirector/file_server_spec.rb +1 -15
  528. data/spec/unit/indirector/indirection_spec.rb +15 -18
  529. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  530. data/spec/unit/indirector/request_spec.rb +0 -264
  531. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  532. data/spec/unit/indirector/rest_spec.rb +98 -752
  533. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  534. data/spec/unit/indirector_spec.rb +2 -2
  535. data/spec/unit/interface/action_spec.rb +9 -0
  536. data/spec/unit/module_spec.rb +1 -15
  537. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  538. data/spec/unit/network/authconfig_spec.rb +2 -129
  539. data/spec/unit/network/authorization_spec.rb +2 -55
  540. data/spec/unit/network/formats_spec.rb +4 -51
  541. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  542. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  543. data/spec/unit/network/http/api_spec.rb +10 -0
  544. data/spec/unit/network/http/connection_spec.rb +19 -41
  545. data/spec/unit/network/http/handler_spec.rb +0 -1
  546. data/spec/unit/network/http_pool_spec.rb +0 -4
  547. data/spec/unit/node/environment_spec.rb +33 -21
  548. data/spec/unit/node_spec.rb +2 -54
  549. data/spec/unit/parser/compiler_spec.rb +19 -3
  550. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  551. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  552. data/spec/unit/parser/resource_spec.rb +8 -14
  553. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  554. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  555. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  556. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  557. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  558. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  559. data/spec/unit/pops/parser/parse_containers_spec.rb +11 -0
  560. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  561. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  562. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -59
  563. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  564. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  565. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  566. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  567. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  568. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  569. data/spec/unit/pops/visitor_spec.rb +1 -1
  570. data/spec/unit/property_spec.rb +0 -1
  571. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  572. data/spec/unit/provider/nameservice_spec.rb +64 -122
  573. data/spec/unit/provider/package/apt_spec.rb +23 -28
  574. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  575. data/spec/unit/provider/package/base_spec.rb +5 -6
  576. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  577. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  578. data/spec/unit/provider/package/gem_spec.rb +33 -1
  579. data/spec/unit/provider/package/nim_spec.rb +0 -42
  580. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  581. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  582. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  583. data/spec/unit/provider/package/pip_spec.rb +12 -44
  584. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  585. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  586. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  587. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  588. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  589. data/spec/unit/provider/service/init_spec.rb +0 -1
  590. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  591. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  592. data/spec/unit/provider/service/smf_spec.rb +401 -165
  593. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  594. data/spec/unit/provider/service/windows_spec.rb +0 -203
  595. data/spec/unit/provider/user/aix_spec.rb +0 -105
  596. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  597. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  598. data/spec/unit/provider/user/pw_spec.rb +0 -2
  599. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  600. data/spec/unit/provider_spec.rb +12 -22
  601. data/spec/unit/puppet_spec.rb +4 -12
  602. data/spec/unit/resource/catalog_spec.rb +1 -1
  603. data/spec/unit/resource/type_collection_spec.rb +2 -22
  604. data/spec/unit/resource/type_spec.rb +1 -1
  605. data/spec/unit/resource_spec.rb +10 -67
  606. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  607. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  608. data/spec/unit/settings/port_setting_spec.rb +31 -0
  609. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  610. data/spec/unit/settings_spec.rb +79 -110
  611. data/spec/unit/ssl/base_spec.rb +37 -3
  612. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  613. data/spec/unit/ssl/certificate_spec.rb +2 -11
  614. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  615. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  616. data/spec/unit/ssl/verifier_spec.rb +0 -21
  617. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  618. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  619. data/spec/unit/transaction/report_spec.rb +0 -2
  620. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  621. data/spec/unit/transaction_spec.rb +55 -96
  622. data/spec/unit/type/exec_spec.rb +29 -76
  623. data/spec/unit/type/file/checksum_spec.rb +6 -6
  624. data/spec/unit/type/file/content_spec.rb +2 -1
  625. data/spec/unit/type/file/ensure_spec.rb +1 -1
  626. data/spec/unit/type/file/mode_spec.rb +1 -1
  627. data/spec/unit/type/file/selinux_spec.rb +5 -3
  628. data/spec/unit/type/file/source_spec.rb +4 -5
  629. data/spec/unit/type/file_spec.rb +18 -6
  630. data/spec/unit/type/group_spec.rb +6 -13
  631. data/spec/unit/type/package_spec.rb +1 -1
  632. data/spec/unit/type/resources_spec.rb +7 -7
  633. data/spec/unit/type/service_spec.rb +189 -87
  634. data/spec/unit/type/tidy_spec.rb +8 -24
  635. data/spec/unit/type/user_spec.rb +0 -45
  636. data/spec/unit/type_spec.rb +24 -4
  637. data/spec/unit/util/at_fork_spec.rb +2 -2
  638. data/spec/unit/util/autoload_spec.rb +1 -5
  639. data/spec/unit/util/backups_spec.rb +2 -3
  640. data/spec/unit/util/execution_spec.rb +11 -44
  641. data/spec/unit/util/inifile_spec.rb +14 -6
  642. data/spec/unit/util/log_spec.rb +7 -8
  643. data/spec/unit/util/logging_spec.rb +3 -5
  644. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  645. data/spec/unit/util/posix_spec.rb +15 -363
  646. data/spec/unit/util/run_mode_spec.rb +21 -121
  647. data/spec/unit/util/selinux_spec.rb +68 -163
  648. data/spec/unit/util/storage_spec.rb +1 -3
  649. data/spec/unit/util/suidmanager_spec.rb +41 -44
  650. data/spec/unit/util/windows/sid_spec.rb +0 -41
  651. data/spec/unit/util/windows/string_spec.rb +1 -3
  652. data/spec/unit/util/yaml_spec.rb +0 -54
  653. data/spec/unit/util_spec.rb +6 -31
  654. data/tasks/generate_cert_fixtures.rake +3 -12
  655. data/tasks/parallel.rake +3 -3
  656. metadata +137 -288
  657. data/conf/auth.conf +0 -150
  658. data/ext/README.md +0 -13
  659. data/lib/puppet/application/cert.rb +0 -76
  660. data/lib/puppet/application/key.rb +0 -4
  661. data/lib/puppet/application/man.rb +0 -4
  662. data/lib/puppet/application/status.rb +0 -4
  663. data/lib/puppet/face/key.rb +0 -16
  664. data/lib/puppet/face/man.rb +0 -145
  665. data/lib/puppet/face/module/build.rb +0 -14
  666. data/lib/puppet/face/module/generate.rb +0 -14
  667. data/lib/puppet/face/module/search.rb +0 -103
  668. data/lib/puppet/face/status.rb +0 -51
  669. data/lib/puppet/facter_impl.rb +0 -96
  670. data/lib/puppet/ffi/posix/constants.rb +0 -14
  671. data/lib/puppet/ffi/posix/functions.rb +0 -24
  672. data/lib/puppet/ffi/posix.rb +0 -10
  673. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  674. data/lib/puppet/indirector/certificate/file.rb +0 -9
  675. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  676. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  677. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  678. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  679. data/lib/puppet/indirector/file_content/http.rb +0 -22
  680. data/lib/puppet/indirector/key/file.rb +0 -46
  681. data/lib/puppet/indirector/key/memory.rb +0 -7
  682. data/lib/puppet/indirector/ssl_file.rb +0 -162
  683. data/lib/puppet/indirector/status/local.rb +0 -12
  684. data/lib/puppet/indirector/status/rest.rb +0 -27
  685. data/lib/puppet/indirector/status.rb +0 -3
  686. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  687. data/lib/puppet/network/auth_config_parser.rb +0 -90
  688. data/lib/puppet/network/authstore.rb +0 -283
  689. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  690. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  691. data/lib/puppet/network/http/base_pool.rb +0 -36
  692. data/lib/puppet/network/http/compression.rb +0 -127
  693. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  694. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  695. data/lib/puppet/network/rest_controller.rb +0 -2
  696. data/lib/puppet/network/rights.rb +0 -210
  697. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  698. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  699. data/lib/puppet/parser/environment_compiler.rb +0 -202
  700. data/lib/puppet/pops/types/enumeration.rb +0 -16
  701. data/lib/puppet/resource/capability_finder.rb +0 -154
  702. data/lib/puppet/rest/errors.rb +0 -15
  703. data/lib/puppet/rest/response.rb +0 -35
  704. data/lib/puppet/rest/route.rb +0 -85
  705. data/lib/puppet/rest/routes.rb +0 -135
  706. data/lib/puppet/settings/alias_setting.rb +0 -37
  707. data/lib/puppet/ssl/host.rb +0 -505
  708. data/lib/puppet/ssl/key.rb +0 -61
  709. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  710. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  711. data/lib/puppet/ssl/validator.rb +0 -61
  712. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  713. data/lib/puppet/status.rb +0 -40
  714. data/lib/puppet/util/connection.rb +0 -88
  715. data/lib/puppet/util/fact_dif.rb +0 -81
  716. data/lib/puppet/util/ssl.rb +0 -83
  717. data/lib/puppet/util/windows/api_types.rb +0 -309
  718. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  719. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  720. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  721. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  722. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  723. data/lib/puppet/vendor/pathspec/README.md +0 -53
  724. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  725. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  726. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  727. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  728. data/man/man8/puppet-key.8 +0 -126
  729. data/man/man8/puppet-man.8 +0 -76
  730. data/man/man8/puppet-status.8 +0 -108
  731. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  732. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  733. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  734. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  735. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  736. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  737. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  738. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  739. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  740. data/spec/fixtures/ssl/oid-key.pem +0 -117
  741. data/spec/fixtures/ssl/oid.pem +0 -69
  742. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  743. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  744. data/spec/integration/application/resource_spec.rb +0 -64
  745. data/spec/integration/application/ssl_spec.rb +0 -20
  746. data/spec/integration/l10n/compiler_spec.rb +0 -37
  747. data/spec/integration/network/authconfig_spec.rb +0 -256
  748. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  749. data/spec/shared_contexts/l10n.rb +0 -27
  750. data/spec/unit/application/man_spec.rb +0 -52
  751. data/spec/unit/capability_spec.rb +0 -414
  752. data/spec/unit/face/key_spec.rb +0 -9
  753. data/spec/unit/face/module/search_spec.rb +0 -231
  754. data/spec/unit/face/status_spec.rb +0 -9
  755. data/spec/unit/facter_impl_spec.rb +0 -31
  756. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  757. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  758. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  759. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  760. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  761. data/spec/unit/indirector/key/file_spec.rb +0 -78
  762. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  763. data/spec/unit/indirector/status/local_spec.rb +0 -10
  764. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  765. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  766. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  767. data/spec/unit/network/authstore_spec.rb +0 -407
  768. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  769. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  770. data/spec/unit/network/http/compression_spec.rb +0 -240
  771. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  772. data/spec/unit/network/http_spec.rb +0 -9
  773. data/spec/unit/network/rights_spec.rb +0 -439
  774. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  775. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  776. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  777. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  778. data/spec/unit/rest/route_spec.rb +0 -132
  779. data/spec/unit/ssl/host_spec.rb +0 -645
  780. data/spec/unit/ssl/key_spec.rb +0 -173
  781. data/spec/unit/ssl/validator_spec.rb +0 -278
  782. data/spec/unit/status_spec.rb +0 -45
  783. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -29,17 +29,6 @@ describe Puppet::Settings do
29
29
  end
30
30
  end
31
31
 
32
- def stub_config_with(content)
33
- allow(Puppet.features).to receive(:root?).and_return(false)
34
- expect(Puppet::FileSystem).to receive(:exist?).
35
- with(user_config_file_default_location).
36
- and_return(true).ordered
37
- expect(@settings).to receive(:read_file).
38
- with(user_config_file_default_location).
39
- and_return(content).ordered
40
- @settings.send(:parse_config_files)
41
- end
42
-
43
32
  describe "when specifying defaults" do
44
33
  before do
45
34
  @settings = Puppet::Settings.new
@@ -275,31 +264,23 @@ describe Puppet::Settings do
275
264
  expect(@settings[:myval]).to eq("")
276
265
  end
277
266
 
278
- it "should retrieve numeric settings from the CLI" do
267
+ it "should flag string settings from the CLI" do
279
268
  @settings.handlearg("--myval", "12")
280
- expect(@settings.set_by_cli(:myval)).to eq(12)
281
- expect(@settings.set_by_cli?(:myval)).to be true
282
- end
283
-
284
- it "should retrieve string settings from the CLI" do
285
- @settings.handlearg("--myval", "something")
286
- expect(@settings.set_by_cli(:myval)).to eq("something")
287
- expect(@settings.set_by_cli?(:myval)).to be true
269
+ expect(@settings.set_by_cli?(:myval)).to be_truthy
288
270
  end
289
271
 
290
- it "should retrieve bool settings from the CLI" do
272
+ it "should flag bool settings from the CLI" do
291
273
  @settings.handlearg("--bool")
292
- expect(@settings.set_by_cli(:bool)).to be true
293
- expect(@settings.set_by_cli?(:bool)).to be true
274
+ expect(@settings.set_by_cli?(:bool)).to be_truthy
294
275
  end
295
276
 
296
- it "should not retrieve settings set in memory as from CLI" do
277
+ it "should not flag settings memory as from CLI" do
297
278
  @settings[:myval] = "12"
298
- expect(@settings.set_by_cli?(:myval)).to be false
279
+ expect(@settings.set_by_cli?(:myval)).to be_falsey
299
280
  end
300
281
 
301
282
  it "should find no configured settings by default" do
302
- expect(@settings.set_by_config?(:myval)).to be false
283
+ expect(@settings.set_by_config?(:myval)).to be_falsey
303
284
  end
304
285
 
305
286
  it "should identify configured settings in memory" do
@@ -323,66 +304,64 @@ describe Puppet::Settings do
323
304
  expect(@settings.set_by_config?(:manifest, Puppet[:environment])).to be_truthy
324
305
  end
325
306
 
326
- context "when handling puppet.conf" do
327
- describe "#set_by_config?" do
328
- it "should identify configured settings from the preferred run mode" do
329
- stub_config_with(<<~CONFIG)
330
- [#{@settings.preferred_run_mode}]
331
- myval = foo
332
- CONFIG
307
+ it "should identify configured settings from the preferred run mode" do
308
+ user_config_text = "[#{@settings.preferred_run_mode}]\nmyval = foo"
333
309
 
334
- expect(@settings.set_by_config?(:myval)).to be_truthy
335
- end
310
+ allow(Puppet.features).to receive(:root?).and_return(false)
311
+ expect(Puppet::FileSystem).to receive(:exist?).
312
+ with(user_config_file_default_location).
313
+ and_return(true).ordered
314
+ expect(@settings).to receive(:read_file).
315
+ with(user_config_file_default_location).
316
+ and_return(user_config_text).ordered
336
317
 
337
- it "should identify configured settings from the specified run mode" do
338
- stub_config_with(<<~CONFIG)
339
- [server]
340
- myval = foo
341
- CONFIG
318
+ @settings.send(:parse_config_files)
319
+ expect(@settings.set_by_config?(:myval)).to be_truthy
320
+ end
342
321
 
343
- expect(@settings.set_by_config?(:myval, nil, :server)).to be_truthy
344
- end
322
+ it "should identify configured settings from the specified run mode" do
323
+ user_config_text = "[server]\nmyval = foo"
345
324
 
346
- it "should not identify configured settings from an unspecified run mode" do
347
- stub_config_with(<<~CONFIG)
348
- [zaz]
349
- myval = foo
350
- CONFIG
325
+ allow(Puppet.features).to receive(:root?).and_return(false)
326
+ expect(Puppet::FileSystem).to receive(:exist?).
327
+ with(user_config_file_default_location).
328
+ and_return(true).ordered
329
+ expect(@settings).to receive(:read_file).
330
+ with(user_config_file_default_location).
331
+ and_return(user_config_text).ordered
351
332
 
352
- expect(@settings.set_by_config?(:myval)).to be_falsey
353
- end
333
+ @settings.send(:parse_config_files)
334
+ expect(@settings.set_by_config?(:myval, nil, :server)).to be_truthy
335
+ end
354
336
 
355
- it "should identify configured settings from the main section" do
356
- stub_config_with(<<~CONFIG)
357
- [main]
358
- myval = foo
359
- CONFIG
337
+ it "should not identify configured settings from an unspecified run mode" do
338
+ user_config_text = "[zaz]\nmyval = foo"
360
339
 
361
- expect(@settings.set_by_config?(:myval)).to be_truthy
362
- end
363
- end
340
+ allow(Puppet.features).to receive(:root?).and_return(false)
341
+ expect(Puppet::FileSystem).to receive(:exist?).
342
+ with(user_config_file_default_location).
343
+ and_return(true).ordered
344
+ expect(@settings).to receive(:read_file).
345
+ with(user_config_file_default_location).
346
+ and_return(user_config_text).ordered
364
347
 
365
- describe "#set_in_section" do
366
- it "should retrieve configured settings from the specified section" do
367
- stub_config_with(<<~CONFIG)
368
- [agent]
369
- myval = foo
370
- CONFIG
348
+ @settings.send(:parse_config_files)
349
+ expect(@settings.set_by_config?(:myval)).to be_falsey
350
+ end
371
351
 
372
- expect(@settings.set_in_section(:myval, :agent)).to eq("foo")
373
- expect(@settings.set_in_section?(:myval, :agent)).to be true
374
- end
352
+ it "should identify configured settings from the main section" do
353
+ user_config_text = "[main]\nmyval = foo"
375
354
 
376
- it "should not retrieve configured settings from a different section" do
377
- stub_config_with(<<~CONFIG)
378
- [main]
379
- myval = foo
380
- CONFIG
355
+ allow(Puppet.features).to receive(:root?).and_return(false)
356
+ expect(Puppet::FileSystem).to receive(:exist?).
357
+ with(user_config_file_default_location).
358
+ and_return(true).ordered
359
+ expect(@settings).to receive(:read_file).
360
+ with(user_config_file_default_location).
361
+ and_return(user_config_text).ordered
381
362
 
382
- expect(@settings.set_in_section(:myval, :agent)).to be nil
383
- expect(@settings.set_in_section?(:myval, :agent)).to be false
384
- end
385
- end
363
+ @settings.send(:parse_config_files)
364
+ expect(@settings.set_by_config?(:myval)).to be_truthy
386
365
  end
387
366
 
388
367
  it "should clear the cache when setting getopt-specific values" do
@@ -1109,7 +1088,7 @@ describe Puppet::Settings do
1109
1088
  before(:each) do
1110
1089
  @settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
1111
1090
  @settings.define_settings :server, :masterport => { :desc => "a", :default => 1000 }
1112
- @settings.define_settings :server, :serverport => { :type => :alias, :alias_for => :masterport }
1091
+ @settings.define_settings :server, :serverport => { :desc => "a", :default => 1000 }
1113
1092
  @settings.define_settings :server, :ca_port => { :desc => "a", :default => "$serverport" }
1114
1093
  @settings.define_settings :server, :report_port => { :desc => "a", :default => "$serverport" }
1115
1094
 
@@ -1131,10 +1110,9 @@ describe Puppet::Settings do
1131
1110
  "
1132
1111
  end
1133
1112
 
1134
- it { expect(@settings[:serverport]).to eq(444) }
1135
- it { expect(@settings[:ca_port]).to eq("444") }
1136
- it { expect(@settings[:report_port]).to eq("444") }
1137
- it { expect(@settings[:masterport]).to eq(445) }
1113
+ it { expect(@settings[:serverport]).to eq(445) }
1114
+ it { expect(@settings[:ca_port]).to eq("445") }
1115
+ it { expect(@settings[:report_port]).to eq("445") }
1138
1116
  end
1139
1117
 
1140
1118
  context 'with serverport and masterport in main' do
@@ -1148,7 +1126,6 @@ describe Puppet::Settings do
1148
1126
  it { expect(@settings[:serverport]).to eq(445) }
1149
1127
  it { expect(@settings[:ca_port]).to eq("445") }
1150
1128
  it { expect(@settings[:report_port]).to eq("445") }
1151
- it { expect(@settings[:masterport]).to eq(444) }
1152
1129
  end
1153
1130
 
1154
1131
  context 'with serverport and masterport in agent' do
@@ -1162,7 +1139,6 @@ describe Puppet::Settings do
1162
1139
  it { expect(@settings[:serverport]).to eq(445) }
1163
1140
  it { expect(@settings[:ca_port]).to eq("445") }
1164
1141
  it { expect(@settings[:report_port]).to eq("445") }
1165
- it { expect(@settings[:masterport]).to eq(444) }
1166
1142
  end
1167
1143
 
1168
1144
  context 'with both serverport and masterport in main and agent' do
@@ -1179,7 +1155,6 @@ describe Puppet::Settings do
1179
1155
  it { expect(@settings[:serverport]).to eq(445) }
1180
1156
  it { expect(@settings[:ca_port]).to eq("445") }
1181
1157
  it { expect(@settings[:report_port]).to eq("445") }
1182
- it { expect(@settings[:masterport]).to eq(444) }
1183
1158
  end
1184
1159
 
1185
1160
  context 'with serverport in agent and masterport in main' do
@@ -1194,7 +1169,6 @@ describe Puppet::Settings do
1194
1169
  it { expect(@settings[:serverport]).to eq(444) }
1195
1170
  it { expect(@settings[:ca_port]).to eq("444") }
1196
1171
  it { expect(@settings[:report_port]).to eq("444") }
1197
- it { expect(@settings[:masterport]).to eq(445) }
1198
1172
  end
1199
1173
 
1200
1174
  context 'with masterport in main' do
@@ -1207,7 +1181,6 @@ describe Puppet::Settings do
1207
1181
  it { expect(@settings[:serverport]).to eq(445) }
1208
1182
  it { expect(@settings[:ca_port]).to eq("445") }
1209
1183
  it { expect(@settings[:report_port]).to eq("445") }
1210
- it { expect(@settings[:masterport]).to eq(445) }
1211
1184
  end
1212
1185
 
1213
1186
  context 'with masterport in agent' do
@@ -1220,7 +1193,6 @@ describe Puppet::Settings do
1220
1193
  it { expect(@settings[:serverport]).to eq(445) }
1221
1194
  it { expect(@settings[:ca_port]).to eq("445") }
1222
1195
  it { expect(@settings[:report_port]).to eq("445") }
1223
- it { expect(@settings[:masterport]).to eq(445) }
1224
1196
  end
1225
1197
 
1226
1198
  context 'with serverport in agent' do
@@ -1231,7 +1203,7 @@ describe Puppet::Settings do
1231
1203
  end
1232
1204
 
1233
1205
  it { expect(@settings[:serverport]).to eq(445) }
1234
- it { expect(@settings[:masterport]).to eq(1000) }
1206
+ it { expect(@settings[:masterport]).to eq(445) }
1235
1207
  it { expect(@settings[:ca_port]).to eq("445") }
1236
1208
  it { expect(@settings[:report_port]).to eq("445") }
1237
1209
  end
@@ -1244,7 +1216,7 @@ describe Puppet::Settings do
1244
1216
  end
1245
1217
 
1246
1218
  it { expect(@settings[:serverport]).to eq(445) }
1247
- it { expect(@settings[:masterport]).to eq(1000) }
1219
+ it { expect(@settings[:masterport]).to eq(445) }
1248
1220
  it { expect(@settings[:ca_port]).to eq("445") }
1249
1221
  it { expect(@settings[:report_port]).to eq("445") }
1250
1222
  end
@@ -2012,6 +1984,23 @@ describe Puppet::Settings do
2012
1984
  end
2013
1985
  end
2014
1986
 
1987
+ describe 'when settings_catalog is disabled' do
1988
+ let(:settings) { Puppet::Settings.new }
1989
+ before do
1990
+ allow(Puppet).to receive(:[]).with(:settings_catalog).and_return(false)
1991
+ end
1992
+
1993
+ it 'does not compile and apply settings catalog' do
1994
+ expect(settings).not_to receive(:to_catalog)
1995
+ settings.use(:main)
1996
+ end
1997
+
1998
+ it 'logs a message that settings catalog is skipped' do
1999
+ expect(Puppet).to receive(:debug).with('Skipping settings catalog for sections main')
2000
+ settings.use(:main)
2001
+ end
2002
+ end
2003
+
2015
2004
  describe "when dealing with printing configs" do
2016
2005
  before do
2017
2006
  @settings = Puppet::Settings.new
@@ -2141,7 +2130,7 @@ describe Puppet::Settings do
2141
2130
  end
2142
2131
 
2143
2132
  def a_user_type_for(username)
2144
- user = double('user', 'suitable?': true, to_s: "User[#{username}]")
2133
+ user = double('user')
2145
2134
  expect(Puppet::Type.type(:user)).to receive(:new).with(hash_including(name: username)).and_return(user)
2146
2135
  user
2147
2136
  end
@@ -2174,16 +2163,6 @@ describe Puppet::Settings do
2174
2163
 
2175
2164
  expect(settings).to be_service_user_available
2176
2165
  end
2177
-
2178
- it "raises if the user is not suitable" do
2179
- settings[:user] = "foo"
2180
-
2181
- expect(a_user_type_for("foo")).to receive(:suitable?).and_return(false)
2182
-
2183
- expect {
2184
- settings.service_user_available?
2185
- }.to raise_error(Puppet::Error, /Cannot manage owner permissions, because the provider for 'User\[foo\]' is not functional/)
2186
- end
2187
2166
  end
2188
2167
 
2189
2168
  describe "when determining if the service group is available" do
@@ -2194,7 +2173,7 @@ describe Puppet::Settings do
2194
2173
  end
2195
2174
 
2196
2175
  def a_group_type_for(groupname)
2197
- group = double('group', 'suitable?': true, to_s: "Group[#{groupname}]")
2176
+ group = double('group')
2198
2177
  expect(Puppet::Type.type(:group)).to receive(:new).with(hash_including(name: groupname)).and_return(group)
2199
2178
  group
2200
2179
  end
@@ -2227,16 +2206,6 @@ describe Puppet::Settings do
2227
2206
 
2228
2207
  expect(settings).to be_service_group_available
2229
2208
  end
2230
-
2231
- it "raises if the group is not suitable" do
2232
- settings[:group] = "foo"
2233
-
2234
- expect(a_group_type_for("foo")).to receive(:suitable?).and_return(false)
2235
-
2236
- expect {
2237
- settings.service_group_available?
2238
- }.to raise_error(Puppet::Error, /Cannot manage group permissions, because the provider for 'Group\[foo\]' is not functional/)
2239
- end
2240
2209
  end
2241
2210
 
2242
2211
  describe "when dealing with command-line options" do
@@ -38,15 +38,15 @@ describe Puppet::SSL::Certificate do
38
38
 
39
39
  describe "when determining a name from a certificate subject" do
40
40
  it "should extract only the CN and not any other components" do
41
- subject = double('sub')
42
- expect(Puppet::Util::SSL).to receive(:cn_from_subject).with(subject).and_return('host.domain.com')
43
- expect(@class.name_from_subject(subject)).to eq('host.domain.com')
41
+ name = OpenSSL::X509::Name.parse('/CN=host.domain.com/L=Portland/ST=Oregon')
42
+ expect(@class.name_from_subject(name)).to eq('host.domain.com')
44
43
  end
45
44
  end
46
45
 
47
46
  describe "when initializing wrapped class from a file with #read" do
48
47
  it "should open the file with ASCII encoding" do
49
48
  path = '/foo/bar/cert'
49
+ allow(Puppet::SSL::Base).to receive(:valid_certname).and_return(true)
50
50
  expect(Puppet::FileSystem).to receive(:read).with(path, :encoding => Encoding::ASCII).and_return("bar")
51
51
  @base.read(path)
52
52
  end
@@ -89,4 +89,38 @@ describe Puppet::SSL::Certificate do
89
89
  }.to raise_error(Puppet::Error, "Unknown signature algorithm 'nonsense'")
90
90
  end
91
91
  end
92
+
93
+ describe "when getting a CN from a subject" do
94
+ def parse(dn)
95
+ OpenSSL::X509::Name.parse(dn)
96
+ end
97
+
98
+ def cn_from(subject)
99
+ @class.name_from_subject(subject)
100
+ end
101
+
102
+ it "should correctly parse a subject containing only a CN" do
103
+ subj = parse('/CN=foo')
104
+ expect(cn_from(subj)).to eq('foo')
105
+ end
106
+
107
+ it "should correctly parse a subject containing other components" do
108
+ subj = parse('/CN=Root CA/OU=Server Operations/O=Example Org')
109
+ expect(cn_from(subj)).to eq('Root CA')
110
+ end
111
+
112
+ it "should correctly parse a subject containing other components with CN not first" do
113
+ subj = parse('/emailAddress=foo@bar.com/CN=foo.bar.com/O=Example Org')
114
+ expect(cn_from(subj)).to eq('foo.bar.com')
115
+ end
116
+
117
+ it "should return nil for a subject with no CN" do
118
+ subj = parse('/OU=Server Operations/O=Example Org')
119
+ expect(cn_from(subj)).to eq(nil)
120
+ end
121
+
122
+ it "should return nil for a bare string" do
123
+ expect(cn_from("/CN=foo")).to eq(nil)
124
+ end
125
+ end
92
126
  end
@@ -1,23 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  require 'puppet/ssl/certificate_request'
4
- require 'puppet/ssl/key'
5
4
 
6
5
  describe Puppet::SSL::CertificateRequest do
7
6
  let(:request) { described_class.new("myname") }
8
- let(:key) {
9
- k = Puppet::SSL::Key.new("myname")
10
- k.generate
11
- k
12
- }
13
-
14
- it "should be extended with the Indirector module" do
15
- expect(described_class.singleton_class).to be_include(Puppet::Indirector)
16
- end
17
-
18
- it "should indirect certificate_request" do
19
- expect(described_class.indirection.name).to eq(:certificate_request)
20
- end
7
+ let(:key) { OpenSSL::PKey::RSA.new(Puppet[:keylength]) }
21
8
 
22
9
  it "should use any provided name as its name" do
23
10
  expect(described_class.new("myname").name).to eq("myname")
@@ -83,14 +70,9 @@ describe Puppet::SSL::CertificateRequest do
83
70
  end
84
71
 
85
72
  describe "when generating", :unless => RUBY_PLATFORM == 'java' do
86
- it "should use the content of the provided key if the key is a Puppet::SSL::Key instance" do
73
+ it "should verify the CSR using the public key associated with the private key" do
87
74
  request.generate(key)
88
- expect(request.content.verify(key.content.public_key)).to be_truthy
89
- end
90
-
91
- it "should set the subject to [CN, name]" do
92
- request.generate(key)
93
- expect(request.content.subject).to eq OpenSSL::X509::Name.new([['CN', key.name]])
75
+ expect(request.content.verify(key.public_key)).to be_truthy
94
76
  end
95
77
 
96
78
  it "should set the version to 0" do
@@ -101,7 +83,7 @@ describe Puppet::SSL::CertificateRequest do
101
83
  it "should set the public key to the provided key's public key" do
102
84
  request.generate(key)
103
85
  # The openssl bindings do not define equality on keys so we use to_s
104
- expect(request.content.public_key.to_s).to eq(key.content.public_key.to_s)
86
+ expect(request.content.public_key.to_s).to eq(key.public_key.to_s)
105
87
  end
106
88
 
107
89
  context "without subjectAltName / dns_alt_names" do
@@ -295,20 +277,20 @@ describe Puppet::SSL::CertificateRequest do
295
277
 
296
278
  it "should sign the csr with the provided key" do
297
279
  request.generate(key)
298
- expect(request.content.verify(key.content.public_key)).to be_truthy
280
+ expect(request.content.verify(key.public_key)).to be_truthy
299
281
  end
300
282
 
301
283
  it "should verify the generated request using the public key" do
302
284
  # Stupid keys don't have a competent == method.
303
285
  expect_any_instance_of(OpenSSL::X509::Request).to receive(:verify) do |public_key|
304
- public_key.to_s == key.content.public_key.to_s
286
+ public_key.to_s == key.public_key.to_s
305
287
  end.and_return(true)
306
288
  request.generate(key)
307
289
  end
308
290
 
309
291
  it "should fail if verification fails" do
310
292
  expect_any_instance_of(OpenSSL::X509::Request).to receive(:verify) do |public_key|
311
- public_key.to_s == key.content.public_key.to_s
293
+ public_key.to_s == key.public_key.to_s
312
294
  end.and_return(false)
313
295
 
314
296
  expect do
@@ -334,12 +316,15 @@ describe Puppet::SSL::CertificateRequest do
334
316
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
335
317
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(true)
336
318
  signer = Puppet::SSL::CertificateSigner.new
337
- signer.sign(csr, key.content)
338
- expect(csr.verify(key.content)).to be_truthy
319
+ signer.sign(csr, key)
320
+ expect(csr.verify(key)).to be_truthy
339
321
  end
340
322
 
341
- it "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
342
- key = OpenSSL::PKey::RSA.new(2048)
323
+ # Attempts to use SHA512 and SHA384 for signing certificates don't seem to work
324
+ # So commenting it out till it is sorted out
325
+ # The problem seems to be with the ability to sign a CSR when using either of
326
+ # these hash algorithms
327
+ pending "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
343
328
  csr = OpenSSL::X509::Request.new
344
329
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
345
330
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
@@ -349,8 +334,11 @@ describe Puppet::SSL::CertificateRequest do
349
334
  expect(csr.verify(key)).to be_truthy
350
335
  end
351
336
 
352
- it "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
353
- key = OpenSSL::PKey::RSA.new(2048)
337
+ # Attempts to use SHA512 and SHA384 for signing certificates don't seem to work
338
+ # So commenting it out till it is sorted out
339
+ # The problem seems to be with the ability to sign a CSR when using either of
340
+ # these hash algorithms
341
+ pending "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
354
342
  csr = OpenSSL::X509::Request.new
355
343
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
356
344
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
@@ -369,8 +357,8 @@ describe Puppet::SSL::CertificateRequest do
369
357
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(false)
370
358
  expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA224").and_return(true)
371
359
  signer = Puppet::SSL::CertificateSigner.new
372
- signer.sign(csr, key.content)
373
- expect(csr.verify(key.content)).to be_truthy
360
+ signer.sign(csr, key)
361
+ expect(csr.verify(key)).to be_truthy
374
362
  end
375
363
 
376
364
  it "should raise an error if neither SHA256/SHA1/SHA512/SHA384/SHA224 are available" do
@@ -384,16 +372,4 @@ describe Puppet::SSL::CertificateRequest do
384
372
  }.to raise_error(Puppet::Error)
385
373
  end
386
374
  end
387
-
388
- it "should save the CSR" do
389
- csr = Puppet::SSL::CertificateRequest.new("me")
390
- terminus = double('terminus')
391
- allow(terminus).to receive(:validate)
392
- expect(Puppet::SSL::CertificateRequest.indirection).to receive(:prepare).and_return(terminus)
393
- expect(terminus).to receive(:save) do |request|
394
- expect(request.instance).to eq(csr)
395
- expect(request.key).to eq("me")
396
- end
397
- Puppet::SSL::CertificateRequest.indirection.save(csr)
398
- end
399
375
  end
@@ -4,7 +4,7 @@ require 'puppet/certificate_factory'
4
4
  require 'puppet/ssl/certificate'
5
5
 
6
6
  describe Puppet::SSL::Certificate do
7
- let :key do Puppet::SSL::Key.new("test.localdomain").generate end
7
+ let :key do OpenSSL::PKey::RSA.new(Puppet[:keylength]) end
8
8
 
9
9
  # Sign the provided cert so that it can be DER-decoded later
10
10
  def sign_wrapped_cert(cert)
@@ -16,14 +16,6 @@ describe Puppet::SSL::Certificate do
16
16
  @class = Puppet::SSL::Certificate
17
17
  end
18
18
 
19
- it "should be extended with the Indirector module" do
20
- expect(@class.singleton_class).to be_include(Puppet::Indirector)
21
- end
22
-
23
- it "should indirect certificate" do
24
- expect(@class.indirection.name).to eq(:certificate)
25
- end
26
-
27
19
  it "should only support the text format" do
28
20
  expect(@class.supported_formats).to eq([:s])
29
21
  end
@@ -82,8 +74,7 @@ describe Puppet::SSL::Certificate do
82
74
 
83
75
  describe "when managing instances" do
84
76
  def build_cert(opts)
85
- key = Puppet::SSL::Key.new('quux')
86
- key.generate
77
+ key = OpenSSL::PKey::RSA.new(Puppet[:keylength])
87
78
  csr = Puppet::SSL::CertificateRequest.new('quux')
88
79
  csr.generate(key, opts)
89
80
 
@@ -271,11 +271,8 @@ describe Puppet::SSL::SSLProvider do
271
271
  end
272
272
 
273
273
  # This option is only available in openssl 1.1
274
- # OpenSSL 1.1.1h no longer reports expired root CAs when using "verify".
275
- # This regression was fixed in 1.1.1i, so only skip this test if we're on
276
- # the affected version.
277
- # See: https://github.com/openssl/openssl/pull/13585
278
- if Puppet::Util::Package.versioncmp(OpenSSL::OPENSSL_LIBRARY_VERSION.split[1], '1.1.1h') != 0
274
+ # TODO PUP-10689 behavior changed in openssl 1.1.1h
275
+ if Puppet::Util::Package.versioncmp(OpenSSL::OPENSSL_LIBRARY_VERSION.split[1], '1.1.1h') < 0
279
276
  it 'raises if root cert signature is invalid', if: defined?(OpenSSL::X509::V_FLAG_CHECK_SS_SIGNATURE) do
280
277
  ca = global_cacerts.first
281
278
  ca.sign(wrong_key, OpenSSL::Digest::SHA256.new)
@@ -31,14 +31,6 @@ describe Puppet::SSL::StateMachine, unless: Puppet::Util::Platform.jruby? do
31
31
  allow(Kernel).to receive(:sleep)
32
32
  end
33
33
 
34
- def expected_digest(name, content)
35
- OpenSSL::Digest.new(name).hexdigest(content)
36
- end
37
-
38
- def to_fingerprint(digest)
39
- digest.scan(/../).join(':').upcase
40
- end
41
-
42
34
  context 'when passing keyword arguments' do
43
35
  it "accepts digest" do
44
36
  expect(described_class.new(digest: 'SHA512').digest).to eq('SHA512')
@@ -403,35 +395,29 @@ describe Puppet::SSL::StateMachine, unless: Puppet::Util::Platform.jruby? do
403
395
 
404
396
  it 'verifies CA cert bundle if a ca_fingerprint is given case-insensitively' do
405
397
  Puppet[:log_level] = :info
406
-
407
- digest = expected_digest('SHA256', cacert_pem)
408
- fingerprint = to_fingerprint(digest)
409
- machine = described_class.new(digest: 'SHA256', ca_fingerprint: digest.downcase)
398
+ machine = described_class.new(digest: 'SHA256', ca_fingerprint: 'caacf69bbbcdad9dbcda92dd2da3608b639d1aea4c314d6cc6823cdb32d8e0f8')
410
399
  state = Puppet::SSL::StateMachine::NeedCACerts.new(machine)
411
400
  state.next_state
412
401
 
413
- expect(@logs).to include(an_object_having_attributes(message: "Verified CA bundle with digest (SHA256) #{fingerprint}"))
402
+ expect(@logs).to include(an_object_having_attributes(message: "Verified CA bundle with digest (SHA256) CA:AC:F6:9B:BB:CD:AD:9D:BC:DA:92:DD:2D:A3:60:8B:63:9D:1A:EA:4C:31:4D:6C:C6:82:3C:DB:32:D8:E0:F8"))
414
403
  end
415
404
 
416
405
  it 'verifies CA cert bundle using non-default fingerprint' do
417
406
  Puppet[:log_level] = :info
418
-
419
- digest = expected_digest('SHA512', cacert_pem)
420
- machine = described_class.new(digest: 'SHA512', ca_fingerprint: digest)
407
+ machine = described_class.new(digest: 'SHA512', ca_fingerprint: '3c9d1482b878913ad95c9631feac5090cb05c6eab9496178d6fd5c14a023da3b1a8650a3cbaac516d9a48caf0b0742e1ed7eebf55105c024c74834a45056a9d9')
421
408
  state = Puppet::SSL::StateMachine::NeedCACerts.new(machine)
422
409
  state.next_state
423
410
 
424
- expect(@logs).to include(an_object_having_attributes(message: "Verified CA bundle with digest (SHA512) #{to_fingerprint(digest)}"))
411
+ expect(@logs).to include(an_object_having_attributes(message: "Verified CA bundle with digest (SHA512) 3C:9D:14:82:B8:78:91:3A:D9:5C:96:31:FE:AC:50:90:CB:05:C6:EA:B9:49:61:78:D6:FD:5C:14:A0:23:DA:3B:1A:86:50:A3:CB:AA:C5:16:D9:A4:8C:AF:0B:07:42:E1:ED:7E:EB:F5:51:05:C0:24:C7:48:34:A4:50:56:A9:D9"))
425
412
  end
426
413
 
427
414
  it 'returns an error if verification fails' do
428
415
  machine = described_class.new(digest: 'SHA256', ca_fingerprint: 'wrong!')
429
416
  state = Puppet::SSL::StateMachine::NeedCACerts.new(machine)
430
417
 
431
- fingerprint = to_fingerprint(expected_digest('SHA256', cacert_pem))
432
418
  st = state.next_state
433
419
  expect(st).to be_an_instance_of(Puppet::SSL::StateMachine::Error)
434
- expect(st.message).to eq("CA bundle with digest (SHA256) #{fingerprint} did not match expected digest WR:ON:G!")
420
+ expect(st.message).to eq("CA bundle with digest (SHA256) CA:AC:F6:9B:BB:CD:AD:9D:BC:DA:92:DD:2D:A3:60:8B:63:9D:1A:EA:4C:31:4D:6C:C6:82:3C:DB:32:D8:E0:F8 did not match expected digest WR:ON:G!")
435
421
  end
436
422
  end
437
423
  end
@@ -519,7 +505,6 @@ describe Puppet::SSL::StateMachine, unless: Puppet::Util::Platform.jruby? do
519
505
  Puppet[:certificate_revocation] = false
520
506
 
521
507
  expect(cert_provider).not_to receive(:load_crls)
522
- expect(Puppet::Rest::Routes).not_to receive(:get_crls)
523
508
 
524
509
  state.next_state
525
510
 
@@ -6,7 +6,6 @@ describe Puppet::SSL::Verifier do
6
6
  let(:host) { 'example.com' }
7
7
  let(:http) { Net::HTTP.new(host) }
8
8
  let(:verifier) { described_class.new(host, ssl_context) }
9
- let(:adapter) { Puppet::SSL::VerifierAdapter.new(Puppet::SSL::Validator::DefaultValidator.new) }
10
9
 
11
10
  context '#reusable?' do
12
11
  it 'Verifiers with the same ssl_context are reusable' do
@@ -16,26 +15,6 @@ describe Puppet::SSL::Verifier do
16
15
  it 'Verifiers with different ssl_contexts are not reusable' do
17
16
  expect(verifier).to_not be_reusable(described_class.new(host, Puppet::SSL::SSLContext.new))
18
17
  end
19
-
20
- it 'Verifier is not reusable with VerifierAdapter' do
21
- expect(verifier).to_not be_reusable(adapter)
22
- end
23
-
24
- it 'VerifierAdapter is not reusable with Verifier' do
25
- expect(adapter).to_not be_reusable(verifier)
26
- end
27
-
28
- it 'VerifierAdapters with the same class of Validator are reusable' do
29
- expect(
30
- adapter
31
- ).to be_reusable(Puppet::SSL::VerifierAdapter.new(Puppet::SSL::Validator::DefaultValidator.new))
32
- end
33
-
34
- it 'VerifierAdapters with different classes of Validators are not reusable' do
35
- expect(
36
- adapter
37
- ).to_not be_reusable(Puppet::SSL::VerifierAdapter.new(Puppet::SSL::Validator::NoValidator.new))
38
- end
39
18
  end
40
19
 
41
20
  context '#setup_connection' do