puppet 6.26.0-x86-mingw32 → 7.0.0-x86-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 (802) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +5 -7
  5. data/Gemfile.lock +43 -62
  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/lookup.rb +24 -78
  108. data/lib/puppet/application/resource.rb +16 -32
  109. data/lib/puppet/application/script.rb +0 -2
  110. data/lib/puppet/application/ssl.rb +1 -13
  111. data/lib/puppet/application.rb +178 -108
  112. data/lib/puppet/application_support.rb +0 -7
  113. data/lib/puppet/concurrent/thread_local_singleton.rb +3 -6
  114. data/lib/puppet/configurer/downloader.rb +1 -2
  115. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  116. data/lib/puppet/configurer.rb +86 -179
  117. data/lib/puppet/confine/variable.rb +1 -1
  118. data/lib/puppet/defaults.rb +130 -245
  119. data/lib/puppet/environments.rb +82 -146
  120. data/lib/puppet/face/facts.rb +5 -103
  121. data/lib/puppet/face/generate.rb +0 -2
  122. data/lib/puppet/face/help/action.erb +0 -1
  123. data/lib/puppet/face/help/face.erb +0 -1
  124. data/lib/puppet/face/help.rb +1 -1
  125. data/lib/puppet/face/node/clean.rb +0 -11
  126. data/lib/puppet/face/plugin.rb +5 -8
  127. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  128. data/lib/puppet/ffi/windows/constants.rb +404 -0
  129. data/lib/puppet/ffi/windows/functions.rb +628 -0
  130. data/lib/puppet/ffi/windows/structs.rb +338 -0
  131. data/lib/puppet/ffi/windows.rb +12 -0
  132. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  133. data/lib/puppet/file_serving/configuration.rb +0 -8
  134. data/lib/puppet/file_serving/fileset.rb +2 -14
  135. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  136. data/lib/puppet/file_serving/metadata.rb +0 -3
  137. data/lib/puppet/file_serving/mount/file.rb +4 -4
  138. data/lib/puppet/file_serving/mount.rb +1 -2
  139. data/lib/puppet/file_system/file_impl.rb +8 -10
  140. data/lib/puppet/file_system/jruby.rb +1 -1
  141. data/lib/puppet/file_system/memory_file.rb +1 -8
  142. data/lib/puppet/file_system/windows.rb +6 -8
  143. data/lib/puppet/file_system.rb +1 -1
  144. data/lib/puppet/forge/repository.rb +0 -1
  145. data/lib/puppet/forge.rb +4 -4
  146. data/lib/puppet/functions/all.rb +1 -1
  147. data/lib/puppet/functions/camelcase.rb +1 -1
  148. data/lib/puppet/functions/capitalize.rb +2 -2
  149. data/lib/puppet/functions/downcase.rb +2 -2
  150. data/lib/puppet/functions/empty.rb +0 -8
  151. data/lib/puppet/functions/find_template.rb +2 -2
  152. data/lib/puppet/functions/get.rb +5 -5
  153. data/lib/puppet/functions/group_by.rb +5 -13
  154. data/lib/puppet/functions/lest.rb +1 -1
  155. data/lib/puppet/functions/new.rb +100 -100
  156. data/lib/puppet/functions/partition.rb +4 -12
  157. data/lib/puppet/functions/require.rb +5 -5
  158. data/lib/puppet/functions/sort.rb +3 -3
  159. data/lib/puppet/functions/strftime.rb +0 -1
  160. data/lib/puppet/functions/tree_each.rb +9 -7
  161. data/lib/puppet/functions/type.rb +4 -4
  162. data/lib/puppet/functions/unwrap.rb +2 -17
  163. data/lib/puppet/functions/upcase.rb +2 -2
  164. data/lib/puppet/functions/versioncmp.rb +2 -6
  165. data/lib/puppet/generate/models/type/type.rb +4 -1
  166. data/lib/puppet/generate/type.rb +0 -9
  167. data/lib/puppet/http/client.rb +165 -115
  168. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  169. data/lib/puppet/http/errors.rb +16 -0
  170. data/lib/puppet/http/external_client.rb +5 -7
  171. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  172. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  173. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  174. data/lib/puppet/http/proxy.rb +137 -0
  175. data/lib/puppet/http/redirector.rb +4 -17
  176. data/lib/puppet/http/resolver/server_list.rb +10 -25
  177. data/lib/puppet/http/resolver/settings.rb +4 -7
  178. data/lib/puppet/http/resolver/srv.rb +7 -11
  179. data/lib/puppet/http/resolver.rb +5 -15
  180. data/lib/puppet/http/response.rb +36 -54
  181. data/lib/puppet/http/response_converter.rb +24 -0
  182. data/lib/puppet/http/response_net_http.rb +42 -0
  183. data/lib/puppet/http/retry_after_handler.rb +4 -13
  184. data/lib/puppet/http/service/ca.rb +11 -22
  185. data/lib/puppet/http/service/compiler.rb +23 -144
  186. data/lib/puppet/http/service/file_server.rb +19 -29
  187. data/lib/puppet/http/service/puppetserver.rb +26 -12
  188. data/lib/puppet/http/service/report.rb +8 -10
  189. data/lib/puppet/http/service.rb +12 -26
  190. data/lib/puppet/http/session.rb +11 -20
  191. data/lib/puppet/{network/http → http}/site.rb +1 -2
  192. data/lib/puppet/http.rb +22 -13
  193. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  194. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  195. data/lib/puppet/indirector/facts/facter.rb +6 -6
  196. data/lib/puppet/indirector/facts/rest.rb +3 -22
  197. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  198. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  199. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  200. data/lib/puppet/indirector/file_server.rb +1 -8
  201. data/lib/puppet/indirector/generic_http.rb +0 -11
  202. data/lib/puppet/indirector/indirection.rb +1 -1
  203. data/lib/puppet/indirector/node/rest.rb +2 -4
  204. data/lib/puppet/indirector/report/rest.rb +3 -8
  205. data/lib/puppet/indirector/request.rb +0 -101
  206. data/lib/puppet/indirector/resource/ral.rb +1 -6
  207. data/lib/puppet/indirector/rest.rb +12 -263
  208. data/lib/puppet/indirector/terminus.rb +0 -4
  209. data/lib/puppet/interface/documentation.rb +0 -1
  210. data/lib/puppet/module/plan.rb +1 -0
  211. data/lib/puppet/module/task.rb +1 -1
  212. data/lib/puppet/module.rb +0 -1
  213. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  214. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  215. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  216. data/lib/puppet/module_tool/applications.rb +0 -1
  217. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  218. data/lib/puppet/network/authconfig.rb +2 -96
  219. data/lib/puppet/network/authorization.rb +13 -35
  220. data/lib/puppet/network/formats.rb +0 -67
  221. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  222. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  223. data/lib/puppet/network/http/connection.rb +247 -316
  224. data/lib/puppet/network/http/handler.rb +0 -1
  225. data/lib/puppet/network/http.rb +3 -3
  226. data/lib/puppet/network/http_pool.rb +16 -34
  227. data/lib/puppet/node/environment.rb +11 -10
  228. data/lib/puppet/node.rb +2 -31
  229. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  230. data/lib/puppet/pal/pal_impl.rb +4 -2
  231. data/lib/puppet/parser/ast/leaf.rb +2 -3
  232. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  233. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  234. data/lib/puppet/parser/compiler.rb +0 -198
  235. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  236. data/lib/puppet/parser/resource.rb +1 -70
  237. data/lib/puppet/parser/scope.rb +0 -1
  238. data/lib/puppet/parser/templatewrapper.rb +1 -2
  239. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  240. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  241. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  242. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  243. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  244. data/lib/puppet/pops/issues.rb +0 -5
  245. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  246. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  247. data/lib/puppet/pops/model/ast.pp +0 -42
  248. data/lib/puppet/pops/model/ast.rb +0 -291
  249. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  250. data/lib/puppet/pops/model/factory.rb +1 -47
  251. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  252. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  253. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  254. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  255. data/lib/puppet/pops/parser/egrammar.ra +0 -58
  256. data/lib/puppet/pops/parser/eparser.rb +1685 -1896
  257. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  258. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  259. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  260. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  261. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  262. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  263. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  264. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  265. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  266. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  267. data/lib/puppet/pops/types/type_parser.rb +0 -4
  268. data/lib/puppet/pops/types/types.rb +1 -2
  269. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  270. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  271. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  272. data/lib/puppet/property/list.rb +1 -1
  273. data/lib/puppet/provider/aix_object.rb +1 -1
  274. data/lib/puppet/provider/exec/posix.rb +4 -16
  275. data/lib/puppet/provider/group/groupadd.rb +10 -18
  276. data/lib/puppet/provider/nameservice.rb +0 -18
  277. data/lib/puppet/provider/package/apt.rb +2 -34
  278. data/lib/puppet/provider/package/aptitude.rb +0 -6
  279. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  280. data/lib/puppet/provider/package/dpkg.rb +0 -10
  281. data/lib/puppet/provider/package/gem.rb +23 -3
  282. data/lib/puppet/provider/package/nim.rb +6 -11
  283. data/lib/puppet/provider/package/pip.rb +3 -16
  284. data/lib/puppet/provider/package/pkg.rb +2 -23
  285. data/lib/puppet/provider/package/portage.rb +1 -1
  286. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  287. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  288. data/lib/puppet/provider/package/yum.rb +1 -1
  289. data/lib/puppet/provider/parsedfile.rb +0 -3
  290. data/lib/puppet/provider/service/base.rb +1 -1
  291. data/lib/puppet/provider/service/debian.rb +0 -2
  292. data/lib/puppet/provider/service/init.rb +9 -10
  293. data/lib/puppet/provider/service/launchd.rb +2 -2
  294. data/lib/puppet/provider/service/redhat.rb +1 -1
  295. data/lib/puppet/provider/service/smf.rb +194 -76
  296. data/lib/puppet/provider/service/systemd.rb +6 -16
  297. data/lib/puppet/provider/service/upstart.rb +5 -5
  298. data/lib/puppet/provider/service/windows.rb +0 -38
  299. data/lib/puppet/provider/user/aix.rb +3 -46
  300. data/lib/puppet/provider/user/directoryservice.rb +11 -34
  301. data/lib/puppet/provider/user/useradd.rb +24 -134
  302. data/lib/puppet/provider.rb +1 -14
  303. data/lib/puppet/reference/configuration.rb +8 -7
  304. data/lib/puppet/reference/indirection.rb +1 -1
  305. data/lib/puppet/reference/providers.rb +2 -2
  306. data/lib/puppet/resource/catalog.rb +2 -15
  307. data/lib/puppet/resource/type.rb +3 -119
  308. data/lib/puppet/resource/type_collection.rb +3 -49
  309. data/lib/puppet/resource.rb +6 -127
  310. data/lib/puppet/runtime.rb +2 -13
  311. data/lib/puppet/settings/environment_conf.rb +0 -1
  312. data/lib/puppet/settings/integer_setting.rb +17 -0
  313. data/lib/puppet/settings/port_setting.rb +15 -0
  314. data/lib/puppet/settings/priority_setting.rb +5 -4
  315. data/lib/puppet/settings.rb +82 -98
  316. data/lib/puppet/ssl/base.rb +3 -5
  317. data/lib/puppet/ssl/certificate.rb +0 -6
  318. data/lib/puppet/ssl/certificate_request.rb +1 -12
  319. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  320. data/lib/puppet/ssl/oids.rb +3 -1
  321. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  322. data/lib/puppet/ssl/state_machine.rb +3 -1
  323. data/lib/puppet/ssl/verifier.rb +2 -6
  324. data/lib/puppet/ssl.rb +10 -6
  325. data/lib/puppet/test/test_helper.rb +2 -7
  326. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  327. data/lib/puppet/transaction/persistence.rb +1 -21
  328. data/lib/puppet/transaction/report.rb +3 -19
  329. data/lib/puppet/transaction.rb +1 -7
  330. data/lib/puppet/type/exec.rb +5 -35
  331. data/lib/puppet/type/file/checksum.rb +1 -1
  332. data/lib/puppet/type/file/data_sync.rb +1 -1
  333. data/lib/puppet/type/file/mode.rb +0 -6
  334. data/lib/puppet/type/file/selcontext.rb +1 -1
  335. data/lib/puppet/type/file/source.rb +1 -1
  336. data/lib/puppet/type/file.rb +12 -32
  337. data/lib/puppet/type/filebucket.rb +4 -4
  338. data/lib/puppet/type/group.rb +1 -0
  339. data/lib/puppet/type/package.rb +8 -16
  340. data/lib/puppet/type/resources.rb +1 -1
  341. data/lib/puppet/type/service.rb +41 -26
  342. data/lib/puppet/type/tidy.rb +3 -22
  343. data/lib/puppet/type/user.rb +13 -32
  344. data/lib/puppet/type.rb +1 -77
  345. data/lib/puppet/util/autoload.rb +8 -1
  346. data/lib/puppet/util/command_line.rb +1 -1
  347. data/lib/puppet/util/execution.rb +0 -11
  348. data/lib/puppet/util/filetype.rb +2 -2
  349. data/lib/puppet/util/http_proxy.rb +2 -215
  350. data/lib/puppet/util/json.rb +0 -20
  351. data/lib/puppet/util/log.rb +4 -8
  352. data/lib/puppet/util/logging.rb +25 -1
  353. data/lib/puppet/util/monkey_patches.rb +0 -59
  354. data/lib/puppet/util/package.rb +16 -25
  355. data/lib/puppet/util/pidlock.rb +1 -1
  356. data/lib/puppet/util/posix.rb +5 -54
  357. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  358. data/lib/puppet/util/rdoc.rb +0 -7
  359. data/lib/puppet/util/retry_action.rb +1 -1
  360. data/lib/puppet/util/run_mode.rb +9 -1
  361. data/lib/puppet/util/selinux.rb +4 -30
  362. data/lib/puppet/util/suidmanager.rb +2 -1
  363. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  364. data/lib/puppet/util/tagging.rb +0 -1
  365. data/lib/puppet/util/windows/adsi.rb +0 -46
  366. data/lib/puppet/util/windows/daemon.rb +360 -0
  367. data/lib/puppet/util/windows/error.rb +1 -0
  368. data/lib/puppet/util/windows/eventlog.rb +4 -9
  369. data/lib/puppet/util/windows/file.rb +8 -242
  370. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  371. data/lib/puppet/util/windows/principal.rb +2 -9
  372. data/lib/puppet/util/windows/process.rb +4 -226
  373. data/lib/puppet/util/windows/service.rb +11 -457
  374. data/lib/puppet/util/windows/sid.rb +2 -6
  375. data/lib/puppet/util/windows/string.rb +12 -13
  376. data/lib/puppet/util/windows/user.rb +2 -0
  377. data/lib/puppet/util/windows.rb +3 -11
  378. data/lib/puppet/util/yaml.rb +1 -42
  379. data/lib/puppet/util.rb +3 -4
  380. data/lib/puppet/vendor/require_vendored.rb +0 -1
  381. data/lib/puppet/version.rb +1 -1
  382. data/lib/puppet/x509/cert_provider.rb +29 -1
  383. data/lib/puppet/x509.rb +5 -1
  384. data/lib/puppet.rb +20 -26
  385. data/locales/puppet.pot +9633 -5
  386. data/man/man5/puppet.conf.5 +286 -401
  387. data/man/man8/puppet-agent.8 +2 -5
  388. data/man/man8/puppet-apply.8 +2 -2
  389. data/man/man8/puppet-catalog.8 +9 -9
  390. data/man/man8/puppet-config.8 +1 -1
  391. data/man/man8/puppet-describe.8 +1 -1
  392. data/man/man8/puppet-device.8 +2 -2
  393. data/man/man8/puppet-doc.8 +1 -1
  394. data/man/man8/puppet-epp.8 +1 -1
  395. data/man/man8/puppet-facts.8 +8 -51
  396. data/man/man8/puppet-filebucket.8 +4 -4
  397. data/man/man8/puppet-generate.8 +1 -1
  398. data/man/man8/puppet-help.8 +1 -1
  399. data/man/man8/puppet-lookup.8 +6 -9
  400. data/man/man8/puppet-module.8 +3 -60
  401. data/man/man8/puppet-node.8 +5 -5
  402. data/man/man8/puppet-parser.8 +1 -1
  403. data/man/man8/puppet-plugin.8 +1 -1
  404. data/man/man8/puppet-report.8 +5 -5
  405. data/man/man8/puppet-resource.8 +1 -1
  406. data/man/man8/puppet-script.8 +2 -2
  407. data/man/man8/puppet-ssl.8 +1 -5
  408. data/man/man8/puppet.8 +2 -2
  409. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  410. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  411. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  412. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  413. data/spec/fixtures/ssl/ca.pem +35 -57
  414. data/spec/fixtures/ssl/crl.pem +18 -28
  415. data/spec/fixtures/ssl/ec-key.pem +11 -11
  416. data/spec/fixtures/ssl/ec.pem +24 -33
  417. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  418. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  419. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  420. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  421. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  422. data/spec/fixtures/ssl/intermediate.pem +36 -57
  423. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  424. data/spec/fixtures/ssl/pluto.pem +30 -52
  425. data/spec/fixtures/ssl/request-key.pem +57 -107
  426. data/spec/fixtures/ssl/request.pem +26 -47
  427. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  428. data/spec/fixtures/ssl/revoked.pem +30 -52
  429. data/spec/fixtures/ssl/signed-key.pem +57 -107
  430. data/spec/fixtures/ssl/signed.pem +30 -52
  431. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  432. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  433. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  434. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  435. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  436. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  437. data/spec/fixtures/unit/forge/bacula.json +1 -1
  438. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  439. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  440. data/spec/integration/application/agent_spec.rb +51 -299
  441. data/spec/integration/application/apply_spec.rb +1 -20
  442. data/spec/integration/application/filebucket_spec.rb +16 -32
  443. data/spec/integration/application/help_spec.rb +2 -0
  444. data/spec/integration/application/lookup_spec.rb +6 -32
  445. data/spec/integration/application/module_spec.rb +0 -21
  446. data/spec/integration/application/plugin_spec.rb +24 -2
  447. data/spec/integration/configurer_spec.rb +2 -18
  448. data/spec/integration/defaults_spec.rb +14 -3
  449. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  450. data/spec/integration/http/client_spec.rb +0 -12
  451. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  452. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  453. data/spec/integration/network/http_pool_spec.rb +3 -21
  454. data/spec/integration/parser/catalog_spec.rb +0 -38
  455. data/spec/integration/parser/node_spec.rb +0 -9
  456. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  457. data/spec/integration/resource/type_collection_spec.rb +6 -2
  458. data/spec/integration/transaction/report_spec.rb +1 -1
  459. data/spec/integration/transaction_spec.rb +9 -4
  460. data/spec/integration/type/exec_spec.rb +45 -70
  461. data/spec/integration/type/file_spec.rb +7 -6
  462. data/spec/integration/type/package_spec.rb +6 -6
  463. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  464. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  465. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  466. data/spec/integration/util/windows/principal_spec.rb +0 -21
  467. data/spec/integration/util/windows/process_spec.rb +9 -1
  468. data/spec/integration/util/windows/registry_spec.rb +10 -6
  469. data/spec/integration/util/windows/security_spec.rb +1 -1
  470. data/spec/lib/matchers/include.rb +27 -0
  471. data/spec/lib/matchers/include_spec.rb +32 -0
  472. data/spec/lib/puppet/test_ca.rb +2 -7
  473. data/spec/lib/puppet_spec/modules.rb +2 -13
  474. data/spec/lib/puppet_spec/puppetserver.rb +1 -16
  475. data/spec/lib/puppet_spec/settings.rb +1 -1
  476. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  477. data/spec/spec_helper.rb +17 -13
  478. data/spec/unit/agent_spec.rb +6 -10
  479. data/spec/unit/application/agent_spec.rb +3 -7
  480. data/spec/unit/application/apply_spec.rb +56 -76
  481. data/spec/unit/application/facts_spec.rb +12 -456
  482. data/spec/unit/application/filebucket_spec.rb +43 -39
  483. data/spec/unit/application/lookup_spec.rb +10 -131
  484. data/spec/unit/application/resource_spec.rb +0 -29
  485. data/spec/unit/application/ssl_spec.rb +2 -25
  486. data/spec/unit/application_spec.rb +9 -51
  487. data/spec/unit/certificate_factory_spec.rb +1 -1
  488. data/spec/unit/configurer/downloader_spec.rb +6 -8
  489. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  490. data/spec/unit/configurer_spec.rb +68 -296
  491. data/spec/unit/confine/feature_spec.rb +1 -1
  492. data/spec/unit/confine_spec.rb +2 -8
  493. data/spec/unit/context/trusted_information_spec.rb +2 -6
  494. data/spec/unit/defaults_spec.rb +68 -55
  495. data/spec/unit/environments_spec.rb +68 -408
  496. data/spec/unit/face/generate_spec.rb +0 -64
  497. data/spec/unit/face/node_spec.rb +11 -0
  498. data/spec/unit/face/plugin_spec.rb +73 -33
  499. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  500. data/spec/unit/file_bucket/file_spec.rb +1 -1
  501. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  502. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  503. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  504. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  505. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  506. data/spec/unit/file_system_spec.rb +4 -56
  507. data/spec/unit/forge/module_release_spec.rb +10 -5
  508. data/spec/unit/functions/assert_type_spec.rb +1 -1
  509. data/spec/unit/functions/camelcase_spec.rb +1 -1
  510. data/spec/unit/functions/capitalize_spec.rb +1 -1
  511. data/spec/unit/functions/downcase_spec.rb +1 -1
  512. data/spec/unit/functions/empty_spec.rb +0 -10
  513. data/spec/unit/functions/logging_spec.rb +0 -1
  514. data/spec/unit/functions/lookup_spec.rb +0 -64
  515. data/spec/unit/functions/unwrap_spec.rb +0 -8
  516. data/spec/unit/functions/upcase_spec.rb +1 -1
  517. data/spec/unit/functions/versioncmp_spec.rb +4 -40
  518. data/spec/unit/functions4_spec.rb +2 -2
  519. data/spec/unit/gettext/config_spec.rb +0 -12
  520. data/spec/unit/http/client_spec.rb +8 -66
  521. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  522. data/spec/unit/http/external_client_spec.rb +4 -4
  523. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  524. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  525. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  526. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  527. data/spec/unit/http/resolver_spec.rb +13 -13
  528. data/spec/unit/http/service/compiler_spec.rb +0 -193
  529. data/spec/unit/http/service/file_server_spec.rb +3 -3
  530. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  531. data/spec/unit/http/service_spec.rb +0 -1
  532. data/spec/unit/http/session_spec.rb +16 -14
  533. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  534. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  535. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  536. data/spec/unit/indirector/face_spec.rb +1 -0
  537. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  538. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  539. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  540. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  541. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  542. data/spec/unit/indirector/file_server_spec.rb +1 -15
  543. data/spec/unit/indirector/indirection_spec.rb +15 -18
  544. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  545. data/spec/unit/indirector/request_spec.rb +0 -264
  546. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  547. data/spec/unit/indirector/rest_spec.rb +98 -752
  548. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  549. data/spec/unit/indirector_spec.rb +2 -2
  550. data/spec/unit/interface/action_spec.rb +9 -0
  551. data/spec/unit/module_spec.rb +1 -15
  552. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  553. data/spec/unit/network/authconfig_spec.rb +2 -129
  554. data/spec/unit/network/authorization_spec.rb +2 -55
  555. data/spec/unit/network/formats_spec.rb +4 -51
  556. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  557. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  558. data/spec/unit/network/http/api_spec.rb +10 -0
  559. data/spec/unit/network/http/connection_spec.rb +19 -41
  560. data/spec/unit/network/http/handler_spec.rb +0 -1
  561. data/spec/unit/network/http_pool_spec.rb +0 -4
  562. data/spec/unit/node/environment_spec.rb +33 -21
  563. data/spec/unit/node_spec.rb +2 -60
  564. data/spec/unit/parser/compiler_spec.rb +19 -3
  565. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  566. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  567. data/spec/unit/parser/resource_spec.rb +8 -14
  568. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  569. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  570. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  571. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  572. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  573. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  574. data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
  575. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  576. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  577. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  578. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  579. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  580. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  581. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  582. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  583. data/spec/unit/pops/validator/validator_spec.rb +61 -51
  584. data/spec/unit/pops/visitor_spec.rb +1 -1
  585. data/spec/unit/property_spec.rb +0 -1
  586. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  587. data/spec/unit/provider/nameservice_spec.rb +64 -122
  588. data/spec/unit/provider/package/apt_spec.rb +23 -28
  589. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  590. data/spec/unit/provider/package/base_spec.rb +5 -6
  591. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  592. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  593. data/spec/unit/provider/package/gem_spec.rb +33 -1
  594. data/spec/unit/provider/package/nim_spec.rb +0 -42
  595. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  596. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  597. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  598. data/spec/unit/provider/package/pip_spec.rb +12 -44
  599. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  600. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  601. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  602. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  603. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  604. data/spec/unit/provider/service/gentoo_spec.rb +5 -6
  605. data/spec/unit/provider/service/init_spec.rb +9 -16
  606. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  607. data/spec/unit/provider/service/openwrt_spec.rb +29 -23
  608. data/spec/unit/provider/service/redhat_spec.rb +2 -3
  609. data/spec/unit/provider/service/smf_spec.rb +401 -165
  610. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  611. data/spec/unit/provider/service/windows_spec.rb +0 -203
  612. data/spec/unit/provider/user/aix_spec.rb +0 -105
  613. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  614. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  615. data/spec/unit/provider/user/pw_spec.rb +0 -2
  616. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  617. data/spec/unit/provider_spec.rb +12 -22
  618. data/spec/unit/puppet_spec.rb +4 -12
  619. data/spec/unit/resource/catalog_spec.rb +2 -15
  620. data/spec/unit/resource/type_collection_spec.rb +2 -22
  621. data/spec/unit/resource/type_spec.rb +1 -1
  622. data/spec/unit/resource_spec.rb +12 -125
  623. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  624. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  625. data/spec/unit/settings/port_setting_spec.rb +31 -0
  626. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  627. data/spec/unit/settings_spec.rb +79 -110
  628. data/spec/unit/ssl/base_spec.rb +37 -3
  629. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  630. data/spec/unit/ssl/certificate_spec.rb +2 -11
  631. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  632. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  633. data/spec/unit/ssl/verifier_spec.rb +0 -21
  634. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  635. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  636. data/spec/unit/transaction/persistence_spec.rb +0 -51
  637. data/spec/unit/transaction/report_spec.rb +0 -2
  638. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  639. data/spec/unit/transaction_spec.rb +55 -96
  640. data/spec/unit/type/exec_spec.rb +29 -76
  641. data/spec/unit/type/file/checksum_spec.rb +6 -6
  642. data/spec/unit/type/file/content_spec.rb +2 -1
  643. data/spec/unit/type/file/ensure_spec.rb +1 -1
  644. data/spec/unit/type/file/mode_spec.rb +1 -1
  645. data/spec/unit/type/file/selinux_spec.rb +5 -3
  646. data/spec/unit/type/file/source_spec.rb +4 -5
  647. data/spec/unit/type/file_spec.rb +18 -6
  648. data/spec/unit/type/group_spec.rb +6 -13
  649. data/spec/unit/type/package_spec.rb +1 -1
  650. data/spec/unit/type/resources_spec.rb +7 -7
  651. data/spec/unit/type/service_spec.rb +189 -87
  652. data/spec/unit/type/tidy_spec.rb +8 -24
  653. data/spec/unit/type_spec.rb +24 -4
  654. data/spec/unit/util/at_fork_spec.rb +2 -2
  655. data/spec/unit/util/autoload_spec.rb +1 -5
  656. data/spec/unit/util/backups_spec.rb +2 -3
  657. data/spec/unit/util/execution_spec.rb +11 -44
  658. data/spec/unit/util/inifile_spec.rb +14 -6
  659. data/spec/unit/util/log_spec.rb +7 -8
  660. data/spec/unit/util/logging_spec.rb +3 -5
  661. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  662. data/spec/unit/util/posix_spec.rb +15 -363
  663. data/spec/unit/util/run_mode_spec.rb +21 -121
  664. data/spec/unit/util/selinux_spec.rb +68 -163
  665. data/spec/unit/util/storage_spec.rb +1 -3
  666. data/spec/unit/util/suidmanager_spec.rb +41 -44
  667. data/spec/unit/util/windows/sid_spec.rb +0 -41
  668. data/spec/unit/util/windows/string_spec.rb +1 -3
  669. data/spec/unit/util/yaml_spec.rb +13 -92
  670. data/spec/unit/util_spec.rb +6 -31
  671. data/tasks/generate_cert_fixtures.rake +3 -12
  672. data/tasks/parallel.rake +3 -3
  673. metadata +138 -293
  674. data/conf/auth.conf +0 -150
  675. data/ext/README.md +0 -13
  676. data/lib/puppet/application/cert.rb +0 -76
  677. data/lib/puppet/application/key.rb +0 -4
  678. data/lib/puppet/application/man.rb +0 -4
  679. data/lib/puppet/application/status.rb +0 -4
  680. data/lib/puppet/face/key.rb +0 -16
  681. data/lib/puppet/face/man.rb +0 -145
  682. data/lib/puppet/face/module/build.rb +0 -14
  683. data/lib/puppet/face/module/generate.rb +0 -14
  684. data/lib/puppet/face/module/search.rb +0 -103
  685. data/lib/puppet/face/status.rb +0 -51
  686. data/lib/puppet/facter_impl.rb +0 -96
  687. data/lib/puppet/ffi/posix/constants.rb +0 -14
  688. data/lib/puppet/ffi/posix/functions.rb +0 -24
  689. data/lib/puppet/ffi/posix.rb +0 -10
  690. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  691. data/lib/puppet/indirector/certificate/file.rb +0 -9
  692. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  693. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  694. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  695. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  696. data/lib/puppet/indirector/file_content/http.rb +0 -22
  697. data/lib/puppet/indirector/key/file.rb +0 -46
  698. data/lib/puppet/indirector/key/memory.rb +0 -7
  699. data/lib/puppet/indirector/ssl_file.rb +0 -162
  700. data/lib/puppet/indirector/status/local.rb +0 -12
  701. data/lib/puppet/indirector/status/rest.rb +0 -27
  702. data/lib/puppet/indirector/status.rb +0 -3
  703. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  704. data/lib/puppet/network/auth_config_parser.rb +0 -90
  705. data/lib/puppet/network/authstore.rb +0 -283
  706. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  707. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  708. data/lib/puppet/network/http/base_pool.rb +0 -36
  709. data/lib/puppet/network/http/compression.rb +0 -127
  710. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  711. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  712. data/lib/puppet/network/rest_controller.rb +0 -2
  713. data/lib/puppet/network/rights.rb +0 -210
  714. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  715. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  716. data/lib/puppet/parser/environment_compiler.rb +0 -202
  717. data/lib/puppet/pops/types/enumeration.rb +0 -16
  718. data/lib/puppet/resource/capability_finder.rb +0 -154
  719. data/lib/puppet/rest/errors.rb +0 -15
  720. data/lib/puppet/rest/response.rb +0 -35
  721. data/lib/puppet/rest/route.rb +0 -85
  722. data/lib/puppet/rest/routes.rb +0 -135
  723. data/lib/puppet/settings/alias_setting.rb +0 -37
  724. data/lib/puppet/ssl/host.rb +0 -505
  725. data/lib/puppet/ssl/key.rb +0 -61
  726. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  727. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  728. data/lib/puppet/ssl/validator.rb +0 -61
  729. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  730. data/lib/puppet/status.rb +0 -40
  731. data/lib/puppet/util/connection.rb +0 -88
  732. data/lib/puppet/util/fact_dif.rb +0 -81
  733. data/lib/puppet/util/ssl.rb +0 -83
  734. data/lib/puppet/util/windows/api_types.rb +0 -309
  735. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  736. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  737. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  738. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  739. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  740. data/lib/puppet/vendor/pathspec/README.md +0 -53
  741. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  742. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  743. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  744. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  745. data/man/man8/puppet-key.8 +0 -126
  746. data/man/man8/puppet-man.8 +0 -76
  747. data/man/man8/puppet-status.8 +0 -108
  748. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  749. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  750. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  751. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  752. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  753. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  754. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  755. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  756. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  757. data/spec/fixtures/ssl/oid-key.pem +0 -117
  758. data/spec/fixtures/ssl/oid.pem +0 -69
  759. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  760. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  761. data/spec/integration/application/resource_spec.rb +0 -64
  762. data/spec/integration/application/ssl_spec.rb +0 -20
  763. data/spec/integration/l10n/compiler_spec.rb +0 -37
  764. data/spec/integration/network/authconfig_spec.rb +0 -256
  765. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  766. data/spec/shared_contexts/l10n.rb +0 -32
  767. data/spec/unit/application/man_spec.rb +0 -52
  768. data/spec/unit/capability_spec.rb +0 -414
  769. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  770. data/spec/unit/face/key_spec.rb +0 -9
  771. data/spec/unit/face/module/search_spec.rb +0 -231
  772. data/spec/unit/face/status_spec.rb +0 -9
  773. data/spec/unit/facter_impl_spec.rb +0 -31
  774. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  775. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  776. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  777. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  778. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  779. data/spec/unit/indirector/key/file_spec.rb +0 -78
  780. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  781. data/spec/unit/indirector/status/local_spec.rb +0 -10
  782. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  783. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  784. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  785. data/spec/unit/network/authstore_spec.rb +0 -407
  786. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  787. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  788. data/spec/unit/network/http/compression_spec.rb +0 -240
  789. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  790. data/spec/unit/network/http_spec.rb +0 -9
  791. data/spec/unit/network/rights_spec.rb +0 -439
  792. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  793. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  794. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  795. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  796. data/spec/unit/rest/route_spec.rb +0 -132
  797. data/spec/unit/ssl/host_spec.rb +0 -645
  798. data/spec/unit/ssl/key_spec.rb +0 -173
  799. data/spec/unit/ssl/validator_spec.rb +0 -278
  800. data/spec/unit/status_spec.rb +0 -45
  801. data/spec/unit/util/json_spec.rb +0 -126
  802. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -2,27 +2,11 @@ require 'spec_helper'
2
2
  require 'puppet/configurer'
3
3
 
4
4
  describe Puppet::Configurer do
5
- include PuppetSpec::Files
6
-
7
5
  before do
8
6
  Puppet[:server] = "puppetmaster"
9
7
  Puppet[:report] = true
10
8
 
11
9
  catalog.add_resource(resource)
12
- allow_any_instance_of(described_class).to(
13
- receive(:valid_server_environment?).and_return(true)
14
- )
15
-
16
- Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
17
- ---
18
- version:
19
- config: 1624882680
20
- puppet: #{Puppet.version}
21
- application:
22
- initial_environment: #{Puppet[:environment]}
23
- converged_environment: #{Puppet[:environment]}
24
- run_mode: agent
25
- SUMMARY
26
10
  end
27
11
 
28
12
  let(:node_name) { Puppet[:node_name_value] }
@@ -94,10 +78,10 @@ describe Puppet::Configurer do
94
78
  configurer.run(:pluginsync => false)
95
79
  end
96
80
 
97
- it "does not download plugins when specified environment is not vaild on server" do
98
- expect(configurer).to receive(:valid_server_environment?).and_return(false)
99
- expect(configurer).not_to receive(:download_plugins)
100
- configurer.run(:pluginsync => true)
81
+ it "should carry on when it can't fetch its node definition" do
82
+ error = Net::HTTPError.new(400, 'dummy server communication error')
83
+ expect(Puppet::Node.indirection).to receive(:find).and_raise(error)
84
+ expect(configurer.run).to eq(0)
101
85
  end
102
86
 
103
87
  it "fails the run if pluginsync fails when usecacheonfailure is false" do
@@ -141,6 +125,7 @@ describe Puppet::Configurer do
141
125
  it "applies a cached catalog when it can't connect to the master" do
142
126
  error = Errno::ECONNREFUSED.new('Connection refused - connect(2)')
143
127
 
128
+ expect(Puppet::Node.indirection).to receive(:find).and_raise(error)
144
129
  expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(:ignore_cache => true)).and_raise(error)
145
130
  expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(:ignore_terminus => true)).and_return(catalog)
146
131
 
@@ -399,7 +384,7 @@ describe Puppet::Configurer do
399
384
 
400
385
  it "sets the checksum_type query param to the default supported_checksum_types in a catalog request" do
401
386
  expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything,
402
- hash_including(checksum_type: 'md5.sha256.sha384.sha512.sha224'))
387
+ hash_including(checksum_type: 'sha256.sha384.sha512.sha224.md5'))
403
388
  configurer.run
404
389
  end
405
390
 
@@ -476,7 +461,7 @@ describe Puppet::Configurer do
476
461
  it "should save the report if reporting is enabled" do
477
462
  Puppet.settings[:report] = true
478
463
 
479
- expect(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, instance_of(Hash)).twice
464
+ expect(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, instance_of(Hash))
480
465
  configurer.send_report(report)
481
466
  end
482
467
 
@@ -504,22 +489,12 @@ describe Puppet::Configurer do
504
489
  it "should log but not fail if saving the report fails" do
505
490
  Puppet.settings[:report] = true
506
491
 
507
- expect(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, hash_including(ignore_cache: true)).and_raise("whatever")
508
- expect(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, hash_including(ignore_terminus: true))
492
+ expect(Puppet::Transaction::Report.indirection).to receive(:save).and_raise("whatever")
509
493
 
510
494
  configurer.send_report(report)
511
495
 
512
496
  expect(@logs).to include(an_object_having_attributes(level: :err, message: 'Could not send report: whatever'))
513
497
  end
514
-
515
- it "should save the cached report if fails to send the report" do
516
- allow(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, hash_including(ignore_terminus: true)).and_call_original
517
- allow(Puppet::Transaction::Report.indirection).to receive(:save).with(report, nil, hash_including(ignore_cache: true)).and_raise("whatever")
518
-
519
- expect(File).to_not be_exist(Puppet[:lastrunfile])
520
- configurer.send_report(report)
521
- expect(File.read(Puppet[:lastrunfile])).to match(/puppet: #{Puppet::PUPPETVERSION}/)
522
- end
523
498
  end
524
499
 
525
500
  describe "when saving the summary report file" do
@@ -578,6 +553,24 @@ describe Puppet::Configurer do
578
553
  end
579
554
  end
580
555
 
556
+ describe "when requesting a node" do
557
+ it "uses the transaction uuid in the request" do
558
+ expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(transaction_uuid: anything)).twice
559
+ configurer.run
560
+ end
561
+
562
+ it "sends an explicitly configured environment request" do
563
+ expect(Puppet.settings).to receive(:set_by_config?).with(:environment).and_return(true)
564
+ expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(configured_environment: Puppet[:environment])).twice
565
+ configurer.run
566
+ end
567
+
568
+ it "does not send a configured_environment when using the default" do
569
+ expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(configured_environment: nil)).twice
570
+ configurer.run
571
+ end
572
+ end
573
+
581
574
  def expects_pluginsync
582
575
  metadata = "[{\"path\":\"/etc/puppetlabs/code\",\"relative_path\":\".\",\"links\":\"follow\",\"owner\":0,\"group\":0,\"mode\":420,\"checksum\":{\"type\":\"ctime\",\"value\":\"{ctime}2020-07-10 14:00:00 -0700\"},\"type\":\"directory\",\"destination\":null}]"
583
576
  stub_request(:get, %r{/puppet/v3/file_metadatas/(plugins|locales)}).to_return(status: 200, body: metadata, headers: {'Content-Type' => 'application/json'})
@@ -588,7 +581,7 @@ describe Puppet::Configurer do
588
581
  end
589
582
 
590
583
  def expects_new_catalog_only(catalog)
591
- expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true, check_environment: true)).and_return(catalog)
584
+ expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(catalog)
592
585
  expect(Puppet::Resource::Catalog.indirection).not_to receive(:find).with(anything, hash_including(ignore_terminus: true))
593
586
  end
594
587
 
@@ -605,7 +598,7 @@ describe Puppet::Configurer do
605
598
  def expects_fallback_to_new_catalog(catalog)
606
599
  expects_pluginsync
607
600
  expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_terminus: true)).and_return(nil)
608
- expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true, check_environment: true)).and_return(catalog)
601
+ expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(catalog)
609
602
  end
610
603
 
611
604
  def expects_neither_new_or_cached_catalog
@@ -629,13 +622,21 @@ describe Puppet::Configurer do
629
622
  configurer.run
630
623
  end
631
624
 
632
- it "should not pluginsync when a cached catalog is successfully retrieved" do
625
+ it "should not make a node request or pluginsync when a cached catalog is successfully retrieved" do
626
+ expect(Puppet::Node.indirection).not_to receive(:find)
633
627
  expects_cached_catalog_only(catalog)
634
628
  expect(configurer).not_to receive(:download_plugins)
635
629
 
636
630
  configurer.run
637
631
  end
638
632
 
633
+ it "should make a node request and pluginsync when a cached catalog cannot be retrieved" do
634
+ expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
635
+ expects_fallback_to_new_catalog(catalog)
636
+
637
+ configurer.run
638
+ end
639
+
639
640
  it "should set its cached_catalog_status to 'explicitly_requested'" do
640
641
  expects_cached_catalog_only(catalog)
641
642
 
@@ -656,6 +657,8 @@ describe Puppet::Configurer do
656
657
  end
657
658
 
658
659
  it "should pluginsync and compile a new catalog if none is found in the cache" do
660
+ Puppet[:ignore_plugin_errors] = true
661
+
659
662
  expects_fallback_to_new_catalog(catalog)
660
663
  stub_request(:get, %r{/puppet/v3/file_metadatas?/plugins}).to_return(:status => 404)
661
664
  stub_request(:get, %r{/puppet/v3/file_metadatas?/pluginfacts}).to_return(:status => 404)
@@ -667,6 +670,9 @@ describe Puppet::Configurer do
667
670
  end
668
671
 
669
672
  it "should not attempt to retrieve a cached catalog again if the first attempt failed" do
673
+ Puppet[:ignore_plugin_errors] = true
674
+
675
+ expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
670
676
  expects_neither_new_or_cached_catalog
671
677
  expects_pluginsync
672
678
 
@@ -722,6 +728,16 @@ describe Puppet::Configurer do
722
728
  Puppet.settings[:strict_environment_mode] = true
723
729
  end
724
730
 
731
+ it "should not make a node request" do
732
+ stub_request(:get, %r{/puppet/v3/file_metadatas?/plugins}).to_return(:status => 404)
733
+ stub_request(:get, %r{/puppet/v3/file_metadatas?/pluginfacts}).to_return(:status => 404)
734
+ expects_new_catalog_only(catalog)
735
+
736
+ expect(Puppet::Node.indirection).not_to receive(:find)
737
+
738
+ configurer.run
739
+ end
740
+
725
741
  it "should return nil when the catalog's environment doesn't match the agent specified environment" do
726
742
  Puppet[:environment] = 'second_env'
727
743
  configurer = Puppet::Configurer.new
@@ -755,7 +771,7 @@ describe Puppet::Configurer do
755
771
  expect(configurer.run).to be_nil
756
772
  end
757
773
 
758
- it "should proceed with the cached catalog if its environment matches the local environment" do
774
+ it "should proceed with the cached catalog if its environment matchs the local environment" do
759
775
  expects_cached_catalog_only(catalog)
760
776
 
761
777
  expect(configurer.run).to eq(0)
@@ -935,23 +951,9 @@ describe Puppet::Configurer do
935
951
  expect(Puppet::Resource::Catalog.indirection).to receive(:find).and_return(apple, banana, banana)
936
952
 
937
953
  allow(Puppet).to receive(:notice)
938
- allow(Puppet).to receive(:push_context)
939
954
  expect(Puppet).to receive(:notice).with("Local environment: 'production' doesn't match server specified environment 'apple', restarting agent run with environment 'apple'")
940
955
  expect(Puppet).to receive(:notice).with("Local environment: 'apple' doesn't match server specified environment 'banana', restarting agent run with environment 'banana'")
941
956
 
942
- expect(Puppet).to receive(:push_context).with(
943
- hash_including(current_environment: an_object_having_attributes(name: :production)),
944
- 'Local node environment production for configurer transaction'
945
- )
946
- expect(Puppet).to receive(:push_context).with(
947
- hash_including(current_environment: an_object_having_attributes(name: :apple)),
948
- 'Local node environment apple for configurer transaction'
949
- )
950
- expect(Puppet).to receive(:push_context).with(
951
- hash_including(current_environment: an_object_having_attributes(name: :banana)),
952
- 'Local node environment banana for configurer transaction'
953
- )
954
-
955
957
  configurer.run
956
958
  end
957
959
 
@@ -1041,11 +1043,10 @@ describe Puppet::Configurer do
1041
1043
  it "should select a server when it receives 200 OK response" do
1042
1044
  Puppet.settings[:server_list] = ["myserver:123"]
1043
1045
 
1044
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 200)
1046
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 200)
1045
1047
 
1046
1048
  options = {}
1047
1049
  configurer.run(options)
1048
- expect(options[:report].master_used).to eq('myserver:123')
1049
1050
  expect(options[:report].server_used).to eq('myserver:123')
1050
1051
  end
1051
1052
 
@@ -1053,7 +1054,7 @@ describe Puppet::Configurer do
1053
1054
  Puppet.settings[:server_list] = ["myserver:123"]
1054
1055
  Puppet[:usecacheonfailure] = false
1055
1056
 
1056
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: [500, "Internal Server Error"])
1057
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: [500, "Internal Server Error"])
1057
1058
 
1058
1059
  expect {
1059
1060
  configurer.run
@@ -1066,269 +1067,40 @@ describe Puppet::Configurer do
1066
1067
  Puppet.settings[:server_list] = "myserver:123,someotherservername"
1067
1068
  Puppet[:usecacheonfailure] = false
1068
1069
 
1069
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 400)
1070
- stub_request(:get, 'https://someotherservername:8140/status/v1/simple/master').to_return(status: 400)
1070
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 400)
1071
+ stub_request(:get, 'https://someotherservername:8140/status/v1/simple/server').to_return(status: 400)
1071
1072
 
1072
1073
  expect{
1073
1074
  configurer.run
1074
1075
  }.to raise_error(Puppet::Error, /Could not select a functional puppet server from server_list: 'myserver:123,someotherservername'/)
1075
1076
  end
1076
1077
 
1077
- it "should warn when servers in 'server_list' are unreachable" do
1078
- Puppet.settings[:server_list] = "mybadserver1:123,mybadserver2:123,mygoodserver"
1079
- Puppet[:usecacheonfailure] = false
1080
-
1081
- stub_request(:get, 'https://mybadserver1:123/status/v1/simple/master').and_raise(Puppet::HTTP::HTTPError)
1082
- stub_request(:get, 'https://mybadserver2:123/status/v1/simple/master').and_raise(Puppet::HTTP::HTTPError)
1083
- stub_request(:get, 'https://mygoodserver:8140/status/v1/simple/master').to_return(status: 200)
1084
-
1085
- expect(Puppet).to receive(:warning).with(/^Unable to connect to server from server_list setting:.*Trying with next server from server_list.$/).twice
1086
- configurer.run
1087
- end
1088
-
1089
- it "should warn when servers in 'server_list' respond with error" do
1090
- Puppet.settings[:server_list] = "mybadserver:123,someotherservername"
1091
- Puppet[:usecacheonfailure] = false
1092
-
1093
- stub_request(:get, 'https://mybadserver:123/status/v1/simple/master').to_return(status: 400)
1094
- stub_request(:get, 'https://someotherservername:8140/status/v1/simple/master').to_return(status: 200)
1095
-
1096
- expect(Puppet).to receive(:warning).with(/^Puppet server mybadserver:123 is unavailable: 400 Trying with next server from server_list.$/)
1097
- configurer.run
1098
- end
1099
-
1100
1078
  it "should not error when usecacheonfailure is true and no servers in 'server_list' are reachable" do
1101
1079
  Puppet.settings[:server_list] = "myserver:123,someotherservername"
1102
1080
  Puppet[:usecacheonfailure] = true
1103
1081
 
1104
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 400)
1105
- stub_request(:get, 'https://someotherservername:8140/status/v1/simple/master').to_return(status: 400)
1082
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 400)
1083
+ stub_request(:get, 'https://someotherservername:8140/status/v1/simple/server').to_return(status: 400)
1106
1084
 
1107
1085
  options = {}
1108
1086
 
1109
1087
  expect(configurer.run(options)).to eq(0)
1110
1088
  expect(options[:report].server_used).to be_nil
1111
1089
  end
1112
- end
1113
-
1114
- describe "when selecting an environment" do
1115
- include PuppetSpec::Settings
1116
-
1117
- describe "when the last used environment is available" do
1118
- let(:last_server_specified_environment) { 'development' }
1119
-
1120
- before do
1121
- Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
1122
- ---
1123
- version:
1124
- config: 1624882680
1125
- puppet: 6.24.0
1126
- application:
1127
- initial_environment: #{Puppet[:environment]}
1128
- converged_environment: #{last_server_specified_environment}
1129
- run_mode: agent
1130
- SUMMARY
1131
- end
1132
-
1133
- describe "when the use_last_environment is set to true" do
1134
- before do
1135
- expect(Puppet::Node.indirection).not_to receive(:find)
1136
- .with(anything, hash_including(:ignore_cache => true, :fail_on_404 => true))
1137
- end
1138
-
1139
- it "prefers the environment set via cli" do
1140
- Puppet.settings.handlearg('--environment', 'usethis')
1141
- configurer.run
1142
-
1143
- expect(configurer.environment).to eq('usethis')
1144
- end
1145
-
1146
- it "prefers the environment set via lastrunfile over config" do
1147
- FileUtils.mkdir_p(Puppet[:confdir])
1148
- set_puppet_conf(Puppet[:confdir], <<~CONF)
1149
- [main]
1150
- environment = usethis
1151
- lastrunfile = #{Puppet[:lastrunfile]}
1152
- CONF
1153
-
1154
- Puppet.initialize_settings
1155
- configurer.run
1156
-
1157
- expect(configurer.environment).to eq(last_server_specified_environment)
1158
- end
1159
-
1160
- it "uses the environment from Puppet[:environment] if given a catalog" do
1161
- configurer.run(catalog: catalog)
1162
-
1163
- expect(configurer.environment).to eq(Puppet[:environment])
1164
- end
1165
-
1166
- it "uses the environment from Puppet[:environment] if use_cached_catalog = true" do
1167
- Puppet[:use_cached_catalog] = true
1168
- expects_cached_catalog_only(catalog)
1169
- configurer.run
1170
-
1171
- expect(configurer.environment).to eq(Puppet[:environment])
1172
- end
1173
-
1174
- describe "when the environment is not set via CLI" do
1175
- it "uses the environment found in lastrunfile if the key exists" do
1176
- configurer.run
1177
-
1178
- expect(configurer.environment).to eq(last_server_specified_environment)
1179
- end
1180
-
1181
- it "pushes the converged environment found in lastrunfile over the existing context" do
1182
- initial_env = Puppet::Node::Environment.remote('production')
1183
- Puppet.push_context(
1184
- current_environment: initial_env,
1185
- loaders: Puppet::Pops::Loaders.new(initial_env, true))
1186
-
1187
- expect(Puppet).to receive(:push_context).with(
1188
- hash_including(:current_environment, :loaders),
1189
- "Local node environment #{last_server_specified_environment} for configurer transaction"
1190
- ).once.and_call_original
1191
-
1192
- configurer.run
1193
- end
1194
-
1195
- it "uses the environment from Puppet[:environment] if strict_environment_mode is set" do
1196
- Puppet[:strict_environment_mode] = true
1197
- configurer.run
1198
-
1199
- expect(configurer.environment).to eq(Puppet[:environment])
1200
- end
1201
-
1202
- it "uses the environment from Puppet[:environment] if initial_environment is the same as converged_environment" do
1203
- Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
1204
- ---
1205
- version:
1206
- config: 1624882680
1207
- puppet: 6.24.0
1208
- application:
1209
- initial_environment: development
1210
- converged_environment: development
1211
- run_mode: agent
1212
- SUMMARY
1213
- configurer.run
1214
-
1215
- expect(configurer.environment).to eq(Puppet[:environment])
1216
- end
1217
- end
1218
- end
1219
-
1220
- describe "when the use_last_environment setting is set to false" do
1221
- let(:node_environment) { Puppet::Node::Environment.remote(:salam) }
1222
- let(:node) { Puppet::Node.new(Puppet[:node_name_value]) }
1223
-
1224
- before do
1225
- Puppet[:use_last_environment] = false
1226
- node.environment = node_environment
1227
-
1228
- allow(Puppet::Node.indirection).to receive(:find)
1229
- allow(Puppet::Node.indirection).to receive(:find)
1230
- .with(anything, hash_including(:ignore_cache => true, :fail_on_404 => true))
1231
- .and_return(node)
1232
- end
1233
-
1234
- it "does a node request" do
1235
- expect(Puppet::Node.indirection).to receive(:find)
1236
- .with(anything, hash_including(:ignore_cache => true, :fail_on_404 => true))
1237
-
1238
- configurer.run
1239
- end
1240
-
1241
- it "uses the node environment from the node request" do
1242
- configurer.run
1243
-
1244
- expect(configurer.environment).to eq(node_environment.name.to_s)
1245
- end
1246
- end
1247
- end
1248
-
1249
- describe "when the last used environment is not available" do
1250
- describe "when the node request succeeds" do
1251
- let(:node_environment) { Puppet::Node::Environment.remote(:salam) }
1252
- let(:node) { Puppet::Node.new(Puppet[:node_name_value]) }
1253
- let(:last_server_specified_environment) { 'development' }
1254
-
1255
- before do
1256
- node.environment = node_environment
1257
-
1258
- allow(Puppet::Node.indirection).to receive(:find)
1259
- allow(Puppet::Node.indirection).to receive(:find)
1260
- .with(anything, hash_including(:ignore_cache => true, :fail_on_404 => true))
1261
- .and_return(node)
1262
- end
1263
-
1264
- it "uses the environment from the node request if the run mode doesn't match" do
1265
- Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
1266
- ---
1267
- version:
1268
- config: 1624882680
1269
- puppet: 6.24.0
1270
- application:
1271
- initial_environment: #{Puppet[:environment]}
1272
- converged_environment: #{last_server_specified_environment}
1273
- run_mode: user
1274
- SUMMARY
1275
- configurer.run
1276
-
1277
- expect(configurer.environment).to eq(node_environment.name.to_s)
1278
- end
1279
-
1280
- it "uses the environment from the node request if lastrunfile does not contain the expected keys" do
1281
- Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
1282
- ---
1283
- version:
1284
- config: 1624882680
1285
- puppet: 6.24.0
1286
- SUMMARY
1287
- configurer.run
1288
-
1289
- expect(configurer.environment).to eq(node_environment.name.to_s)
1290
- end
1291
-
1292
- it "uses the environment from the node request if lastrunfile is invalid YAML" do
1293
- Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', <<~SUMMARY)
1294
- Key: 'this is my very very very ' +
1295
- 'long string'
1296
- SUMMARY
1297
- configurer.run
1298
1090
 
1299
- expect(configurer.environment).to eq(node_environment.name.to_s)
1300
- end
1301
-
1302
- it "uses the environment from the node request if lastrunfile exists but is empty" do
1303
- Puppet[:lastrunfile] = file_containing('last_run_summary.yaml', '')
1304
- configurer.run
1305
-
1306
- expect(configurer.environment).to eq(node_environment.name.to_s)
1307
- end
1308
-
1309
- it "uses the environment from the node request if the last used one cannot be found" do
1310
- Puppet[:lastrunfile] = tmpfile('last_run_summary.yaml')
1311
- configurer.run
1091
+ it "should not make multiple node requests when the server is found" do
1092
+ Puppet.settings[:server_list] = ["myserver:123"]
1312
1093
 
1313
- expect(configurer.environment).to eq(node_environment.name.to_s)
1314
- end
1315
- end
1094
+ Puppet::Node.indirection.terminus_class = :rest
1095
+ Puppet::Resource::Catalog.indirection.terminus_class = :rest
1316
1096
 
1317
- describe "when the node request fails" do
1318
- before do
1319
- allow(Puppet::Node.indirection).to receive(:find).and_call_original
1320
- allow(Puppet::Node.indirection).to receive(:find)
1321
- .with(anything, hash_including(:ignore_cache => true, :fail_on_404 => true))
1322
- .and_raise(Puppet::Error)
1323
- end
1097
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 200)
1098
+ stub_request(:post, %r{https://myserver:123/puppet/v3/catalog}).to_return(status: 200)
1099
+ node_request = stub_request(:get, %r{https://myserver:123/puppet/v3/node/}).to_return(status: 200)
1324
1100
 
1325
- it "uses the environment from Puppet[:environment] if the last used one cannot be found" do
1326
- Puppet[:lastrunfile] = tmpfile('last_run_summary.yaml')
1327
- configurer.run
1101
+ configurer.run
1328
1102
 
1329
- expect(configurer.environment).to eq(Puppet[:environment])
1330
- end
1331
- end
1103
+ expect(node_request).to have_been_requested.once
1332
1104
  end
1333
1105
  end
1334
1106
  end
@@ -22,7 +22,7 @@ describe Puppet::Confine::Feature do
22
22
  end
23
23
 
24
24
  it "should use the Puppet features instance to test validity" do
25
- Puppet.features.add(:myfeature) do true end
25
+ expect(Puppet.features).to receive(:myfeature?)
26
26
  @confine.valid?
27
27
  end
28
28
 
@@ -2,12 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  require 'puppet/confine'
4
4
 
5
- class Puppet::TestConfine < Puppet::Confine
6
- def pass?(value)
7
- false
8
- end
9
- end
10
-
11
5
  describe Puppet::Confine do
12
6
  it "should require a value" do
13
7
  expect { Puppet::Confine.new }.to raise_error(ArgumentError)
@@ -39,7 +33,7 @@ describe Puppet::Confine do
39
33
 
40
34
  describe "when testing all values" do
41
35
  before do
42
- @confine = Puppet::TestConfine.new(%w{a b c})
36
+ @confine = Puppet::Confine.new(%w{a b c})
43
37
  @confine.label = "foo"
44
38
  end
45
39
 
@@ -70,7 +64,7 @@ describe Puppet::Confine do
70
64
  end
71
65
 
72
66
  describe "when testing the result of the values" do
73
- before { @confine = Puppet::TestConfine.new(%w{a b c d}) }
67
+ before { @confine = Puppet::Confine.new(%w{a b c d}) }
74
68
 
75
69
  it "should return an array with the result of the test for each value" do
76
70
  allow(@confine).to receive(:pass?).and_return(true)
@@ -4,11 +4,7 @@ require 'puppet/certificate_factory'
4
4
  require 'puppet/context/trusted_information'
5
5
 
6
6
  describe Puppet::Context::TrustedInformation, :unless => RUBY_PLATFORM == 'java' do
7
- let(:key) do
8
- key = Puppet::SSL::Key.new("myname")
9
- key.generate
10
- key
11
- end
7
+ let(:key) { OpenSSL::PKey::RSA.new(Puppet[:keylength]) }
12
8
 
13
9
  let(:csr) do
14
10
  csr = Puppet::SSL::CertificateRequest.new("csr")
@@ -26,7 +22,7 @@ describe Puppet::Context::TrustedInformation, :unless => RUBY_PLATFORM == 'java'
26
22
 
27
23
  # The cert must be signed so that it can be successfully be DER-decoded later
28
24
  signer = Puppet::SSL::CertificateSigner.new
29
- signer.sign(cert.content, key.content)
25
+ signer.sign(cert.content, key)
30
26
  cert
31
27
  end
32
28