puppet 6.25.0-x64-mingw32 → 7.0.0-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

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
@@ -1,17 +1,14 @@
1
1
  require 'spec_helper'
2
2
  require 'puppet/environments'
3
3
  require 'puppet/file_system'
4
+ require 'matchers/include'
5
+ require 'matchers/include_in_order'
4
6
 
7
+ module PuppetEnvironments
5
8
  describe Puppet::Environments do
6
- FS = Puppet::FileSystem
9
+ include Matchers::Include
7
10
 
8
- module FsRemove
9
- def remove
10
- @properties[:directory?] = false
11
- @properties[:exist?] = false
12
- @properties[:executable?] = false
13
- end
14
- end
11
+ FS = Puppet::FileSystem
15
12
 
16
13
  before(:each) do
17
14
  Puppet.settings.initialize_global_settings
@@ -52,7 +49,7 @@ describe Puppet::Environments do
52
49
  loader_from(:filesystem => [directory_tree, global_path_1, global_path_2],
53
50
  :directory => directory_tree.children.first,
54
51
  :modulepath => [global_path_1_location, global_path_2_location]) do |loader|
55
- expect(loader.list).to contain_exactly(
52
+ expect(loader.list).to include_in_any_order(
56
53
  environment(:an_environment).
57
54
  with_manifest("#{FS.path_string(directory_tree)}/envdir/an_environment/manifests").
58
55
  with_modulepath(["#{FS.path_string(directory_tree)}/envdir/an_environment/modules",
@@ -90,7 +87,7 @@ describe Puppet::Environments do
90
87
 
91
88
  loader_from(:filesystem => [envdir],
92
89
  :directory => envdir) do |loader|
93
- expect(loader.list).to contain_exactly(environment(:env1), environment(:env2))
90
+ expect(loader.list).to include_in_any_order(environment(:env1), environment(:env2))
94
91
  end
95
92
  end
96
93
 
@@ -139,14 +136,6 @@ describe Puppet::Environments do
139
136
  end
140
137
  end
141
138
 
142
- it "implements guard and unguard" do
143
- loader_from(:filesystem => [directory_tree],
144
- :directory => directory_tree.children.first) do |loader|
145
- expect(loader.guard('env1')).to be_nil
146
- expect(loader.unguard('env1')).to be_nil
147
- end
148
- end
149
-
150
139
  context "with an environment.conf" do
151
140
  let(:envdir) do
152
141
  FS::MemoryFile.a_directory(File.expand_path("envdir"), [
@@ -417,29 +406,33 @@ config_version=$vardir/random/scripts
417
406
  ]),
418
407
  ])
419
408
 
420
- cached_loader_from(:filesystem => [original_envdir], :directory => original_envdir) do |loader|
421
- original_env = loader.get("env3") # force the environment.conf to be read
422
-
423
- changed_envdir = FS::MemoryFile.a_directory(base_dir, [
424
- FS::MemoryFile.a_directory("env3", [
425
- FS::MemoryFile.a_regular_file_containing("environment.conf", <<-EOF)
426
- manifest=/manifest_changed
427
- modulepath=/modules_changed
428
- environment_timeout=0
429
- EOF
430
- ]),
431
- ])
409
+ FS.overlay(original_envdir) do
410
+ dir_loader = Puppet::Environments::Directories.new(original_envdir, [])
411
+ loader = Puppet::Environments::Cached.new(dir_loader)
412
+ Puppet.override(:environments => loader) do
413
+ original_env = loader.get("env3") # force the environment.conf to be read
414
+
415
+ changed_envdir = FS::MemoryFile.a_directory(base_dir, [
416
+ FS::MemoryFile.a_directory("env3", [
417
+ FS::MemoryFile.a_regular_file_containing("environment.conf", <<-EOF)
418
+ manifest=/manifest_changed
419
+ modulepath=/modules_changed
420
+ environment_timeout=0
421
+ EOF
422
+ ]),
423
+ ])
432
424
 
433
- FS.overlay(changed_envdir) do
434
- changed_env = loader.get("env3")
425
+ FS.overlay(changed_envdir) do
426
+ changed_env = loader.get("env3")
435
427
 
436
- expect(original_env).to environment(:env3).
437
- with_manifest(File.expand_path("/manifest_orig")).
438
- with_full_modulepath([File.expand_path("/modules_orig")])
428
+ expect(original_env).to environment(:env3).
429
+ with_manifest(File.expand_path("/manifest_orig")).
430
+ with_full_modulepath([File.expand_path("/modules_orig")])
439
431
 
440
- expect(changed_env).to environment(:env3).
441
- with_manifest(File.expand_path("/manifest_changed")).
442
- with_full_modulepath([File.expand_path("/modules_changed")])
432
+ expect(changed_env).to environment(:env3).
433
+ with_manifest(File.expand_path("/manifest_changed")).
434
+ with_full_modulepath([File.expand_path("/modules_changed")])
435
+ end
443
436
  end
444
437
  end
445
438
  end
@@ -565,49 +558,24 @@ config_version=$vardir/random/scripts
565
558
 
566
559
  describe "cached loaders" do
567
560
  it "lists environments" do
568
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
569
- expect(loader.list).to contain_exactly(
561
+ loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
562
+ expect(Puppet::Environments::Cached.new(loader).list).to include_in_any_order(
570
563
  environment(:an_environment),
571
564
  environment(:another_environment),
572
565
  environment(:symlinked_environment))
573
566
  end
574
567
  end
575
568
 
576
- it "returns the same cached environment object for list and get methods" do
577
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
578
- env = loader.list.find { |e| e.name == :an_environment }
579
-
580
- expect(env).to equal(loader.get(:an_environment)) # same object
581
- end
582
- end
583
-
584
- it "returns the same cached environment object for multiple list calls" do
585
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
586
- expect(loader.list.first).to equal(loader.list.first) # same object
587
- end
588
- end
589
-
590
- it "expires environments and returns a new environment object with the same value" do
591
- Puppet[:environment_timeout] = "0"
592
-
593
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
594
- a = loader.list.first
595
- b = loader.list.first
596
- expect(a).to eq(b) # same value
597
- expect(a).to_not equal(b) # not same object
598
- end
599
- end
600
-
601
569
  it "has search_paths" do
602
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
603
- expect(loader.search_paths).to eq(["file://#{directory_tree.children.first}"])
570
+ loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
571
+ expect(Puppet::Environments::Cached.new(loader).search_paths).to eq(["file://#{directory_tree.children.first}"])
604
572
  end
605
573
  end
606
574
 
607
575
  context "#get" do
608
576
  it "gets an environment" do
609
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
610
- expect(loader.get(:an_environment)).to environment(:an_environment)
577
+ loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
578
+ expect(Puppet::Environments::Cached.new(loader).get(:an_environment)).to environment(:an_environment)
611
579
  end
612
580
  end
613
581
 
@@ -623,89 +591,17 @@ config_version=$vardir/random/scripts
623
591
  cached.get(:cached)
624
592
  end
625
593
 
626
- it "does not list deleted environments" do
627
- env3 = FS::MemoryFile.a_directory("env3", [
628
- FS::MemoryFile.a_regular_file_containing("environment.conf", '')
629
- ])
630
-
631
- envdir = FS::MemoryFile.a_directory(File.expand_path("envdir"), [
632
- FS::MemoryFile.a_directory("env1", [
633
- FS::MemoryFile.a_regular_file_containing("environment.conf", '')
634
- ]),
635
- FS::MemoryFile.a_directory("env2", [
636
- FS::MemoryFile.a_regular_file_containing("environment.conf", '')
637
- ]),
638
- env3
639
- ])
640
-
641
- loader_from(:filesystem => [envdir], :directory => envdir) do |loader|
642
- cached = Puppet::Environments::Cached.new(loader)
643
- cached.get(:env1)
644
- cached.get(:env2)
645
- cached.get(:env3)
646
- env3.extend(FsRemove).remove
647
-
648
- expect(cached.list).to contain_exactly(environment(:env1),environment(:env2))
649
- expect(cached.get(:env3)).to be_nil
650
- end
651
- end
652
-
653
- it "normalizes environment name to symbol" do
654
- env = Puppet::Node::Environment.create(:cached, [])
655
- mocked_loader = double('loader')
656
-
657
- expect(mocked_loader).not_to receive(:get).with('cached')
658
- expect(mocked_loader).to receive(:get).with(:cached).and_return(env).once
659
- expect(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20)).once
660
-
661
- cached = Puppet::Environments::Cached.new(mocked_loader)
662
- cached.get('cached')
663
- cached.get(:cached)
664
- end
665
-
666
- it "caches environment name as symbol and only once" do
667
- mocked_loader = double('loader')
668
-
669
- env = Puppet::Node::Environment.create(:cached, [])
670
- allow(mocked_loader).to receive(:get).with(:cached).and_return(env)
671
- allow(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20))
672
-
673
- cached = Puppet::Environments::Cached.new(mocked_loader)
674
- cached.get(:cached)
675
- cached.get('cached')
676
-
677
- expect(cached.instance_variable_get(:@cache).keys).to eq([:cached])
678
- end
679
-
680
- it "is able to cache multiple environments" do
681
- mocked_loader = double('loader')
682
-
683
- env1 = Puppet::Node::Environment.create(:env1, [])
684
- allow(mocked_loader).to receive(:get).with(:env1).and_return(env1)
685
- allow(mocked_loader).to receive(:get_conf).with(:env1).and_return(Puppet::Settings::EnvironmentConf.static_for(env1, 20))
686
-
687
- env2 = Puppet::Node::Environment.create(:env2, [])
688
- allow(mocked_loader).to receive(:get).with(:env2).and_return(env2)
689
- allow(mocked_loader).to receive(:get_conf).with(:env2).and_return(Puppet::Settings::EnvironmentConf.static_for(env2, 20))
690
-
691
- cached = Puppet::Environments::Cached.new(mocked_loader)
692
- cached.get('env1')
693
- cached.get('env2')
694
-
695
- expect(cached.instance_variable_get(:@cache).keys).to eq([:env1, :env2])
696
- end
697
-
698
594
  it "returns nil if env not found" do
699
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
700
- expect(loader.get(:doesnotexist)).to be_nil
595
+ loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
596
+ expect(Puppet::Environments::Cached.new(loader).get(:doesnotexist)).to be_nil
701
597
  end
702
598
  end
703
599
  end
704
600
 
705
601
  context "#get!" do
706
602
  it "gets an environment" do
707
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
708
- expect(loader.get!(:an_environment)).to environment(:an_environment)
603
+ loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
604
+ expect(Puppet::Environments::Cached.new(loader).get!(:an_environment)).to environment(:an_environment)
709
605
  end
710
606
  end
711
607
 
@@ -722,54 +618,29 @@ config_version=$vardir/random/scripts
722
618
  end
723
619
 
724
620
  it "raises error if environment is not found" do
725
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
621
+ loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
726
622
  expect do
727
- loader.get!(:doesnotexist)
623
+ Puppet::Environments::Cached.new(loader).get!(:doesnotexist)
728
624
  end.to raise_error(Puppet::Environments::EnvironmentNotFound)
729
625
  end
730
626
  end
731
627
  end
732
628
 
733
- context "#get_conf" do
734
- it "loads environment.conf" do
735
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
736
- expect(loader.get_conf(:an_environment)).to match_environment_conf(:an_environment).
737
- with_env_path(directory_tree.children.first).
738
- with_global_module_path([])
739
- end
740
- end
741
-
742
- it "always reloads environment.conf" do
743
- env = Puppet::Node::Environment.create(:cached, [])
744
- mocked_loader = double('loader')
745
- expect(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20)).twice
746
-
747
- cached = Puppet::Environments::Cached.new(mocked_loader)
748
-
749
- cached.get_conf(:cached)
750
- cached.get_conf(:cached)
751
- end
752
-
753
- it "normalizes environment name to symbol" do
754
- env = Puppet::Node::Environment.create(:cached, [])
755
- mocked_loader = double('loader')
756
- expect(mocked_loader).to receive(:get_conf).with(:cached).and_return(Puppet::Settings::EnvironmentConf.static_for(env, 20)).twice
757
-
758
- cached = Puppet::Environments::Cached.new(mocked_loader)
629
+ context "expiration policies" do
630
+ let(:service) { ReplayExpirationService.new }
759
631
 
760
- cached.get_conf('cached')
761
- cached.get_conf(:cached)
762
- end
632
+ # The environment named `:an_environment` will already be loaded when the
633
+ # block is yielded to
634
+ def with_environment_loaded(service, &block)
635
+ loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
636
+ using_expiration_service(service) do
637
+ cached = Puppet::Environments::Cached.new(loader)
638
+ cached.get!(:an_environment)
763
639
 
764
- it "returns nil if environment is not found" do
765
- cached_loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
766
- expect(loader.get_conf(:doesnotexist)).to be_nil
640
+ yield cached if block_given?
641
+ end
767
642
  end
768
643
  end
769
- end
770
-
771
- context "expiration policies" do
772
- let(:service) { ReplayExpirationService.new }
773
644
 
774
645
  it "notifies when the environment is first created" do
775
646
  with_environment_loaded(service)
@@ -789,7 +660,12 @@ config_version=$vardir/random/scripts
789
660
  end
790
661
 
791
662
  it "evicts an expired environment" do
792
- expect(service).to receive(:expired?).and_return(true)
663
+ service = ReplayExpirationService.new
664
+
665
+ # The `Cached#clear_all_expired` method tries to optimize the case where
666
+ # no entries are expired. But if `Time.now < @next_expiration` and there is
667
+ # an expired entry, then the `service#expired?` method is called twice.
668
+ expect(service).to receive(:expired?).twice.and_return(true)
793
669
 
794
670
  with_environment_loaded(service) do |cached|
795
671
  cached.get!(:an_environment)
@@ -801,7 +677,6 @@ config_version=$vardir/random/scripts
801
677
 
802
678
  it "evicts an environment that hasn't been recently touched" do
803
679
  Puppet[:environment_timeout] = 1
804
- Puppet[:environment_timeout_mode] = :from_last_used
805
680
 
806
681
  with_environment_loaded(service) do |cached|
807
682
  future = Time.now + 60
@@ -818,7 +693,6 @@ config_version=$vardir/random/scripts
818
693
 
819
694
  it "reuses an environment that was recently touched" do
820
695
  Puppet[:environment_timeout] = 60
821
- Puppet[:environment_timeout_mode] = :from_last_used
822
696
 
823
697
  with_environment_loaded(service) do |cached|
824
698
  # reuse the already cached environment
@@ -831,9 +705,9 @@ config_version=$vardir/random/scripts
831
705
 
832
706
  it "evicts a recently touched environment" do
833
707
  Puppet[:environment_timeout] = 60
834
- Puppet[:environment_timeout_mode] = :from_last_used
835
708
 
836
- expect(service).to receive(:expired?).and_return(true)
709
+ # see note above about "twice"
710
+ expect(service).to receive(:expired?).twice.and_return(true)
837
711
 
838
712
  with_environment_loaded(service) do |cached|
839
713
  # even though the environment was recently touched, it's been expired
@@ -843,201 +717,13 @@ config_version=$vardir/random/scripts
843
717
  expect(service.created_envs).to eq([:an_environment, :an_environment])
844
718
  expect(service.evicted_envs).to eq([:an_environment])
845
719
  end
846
-
847
- it "evicts expired environments when listing" do
848
- expect(service).to receive(:expired?).with(:an_environment).and_return(true)
849
-
850
- with_environment_loaded(service) do |cached|
851
- cached.list
852
- end
853
-
854
- expect(service.evicted_envs).to eq([:an_environment])
855
- end
856
-
857
- context "when guarding an environment" do
858
- before :each do
859
- Puppet[:environment_timeout] = 0
860
- end
861
-
862
- let(:name) { :an_environment }
863
-
864
- def with_guard(cached, name, &block)
865
- cached.guard(name)
866
- begin
867
- yield
868
- ensure
869
- cached.unguard(name)
870
- end
871
- end
872
-
873
- it "evicts an expired and unguarded environment" do
874
- with_environment_loaded(service) do |cached|
875
- cached.get!(name)
876
- end
877
-
878
- expect(service.created_envs).to eq([name, name])
879
- expect(service.evicted_envs).to eq([name])
880
- end
881
-
882
- it "does not evict an expired, but guarded environment" do
883
- with_environment_loaded(service) do |cached|
884
- with_guard(cached, name) do
885
- cached.get!(name) # these shouldn't reload
886
- cached.get!(name)
887
- end
888
- end
889
-
890
- expect(service.created_envs).to eq([name])
891
- expect(service.evicted_envs).to eq([])
892
- end
893
-
894
- it "does not evict an environment marked for expiration, but is guarded" do
895
- Puppet[:environment_timeout] = 'unlimited'
896
-
897
- expect(service).to receive(:expired?).never
898
-
899
- with_environment_loaded(service) do |cached|
900
- with_guard(cached, name) do
901
- cached.get!(name)
902
- end
903
- end
904
-
905
- expect(service.created_envs).to eq([name])
906
- expect(service.evicted_envs).to eq([])
907
- end
908
-
909
- it "evicts an environment that is no longer guarded" do
910
- with_environment_loaded(service) do |cached|
911
- with_guard(cached, name) {}
912
-
913
- cached.get!(name) # this reloads
914
- end
915
-
916
- expect(service.created_envs).to eq([name, name])
917
- expect(service.evicted_envs).to eq([name])
918
- end
919
-
920
- it "can nest guards" do
921
- with_environment_loaded(service) do |cached|
922
- with_guard(cached, name) do
923
- with_guard(cached, name) do
924
- cached.get!(name) # doesn't reload
925
- end
926
- end
927
- end
928
-
929
- expect(service.created_envs).to eq([name])
930
- expect(service.evicted_envs).to eq([])
931
- end
932
- end
933
- end
934
-
935
- context '#clear' do
936
- let(:service) { ReplayExpirationService.new }
937
-
938
- it "evicts an environment" do
939
- with_environment_loaded(service) do |cached|
940
- cached.clear(:an_environment)
941
- end
942
-
943
- expect(service.evicted_envs).to eq([:an_environment])
944
- end
945
-
946
- it "normalizes environment name to symbol" do
947
- with_environment_loaded(service) do |cached|
948
- cached.clear('an_environment')
949
- end
950
-
951
- expect(service.evicted_envs).to eq([:an_environment])
952
- end
953
720
  end
954
721
 
955
- context '#clear_all' do
956
- let(:service) { ReplayExpirationService.new }
957
- let(:envdir) { File.expand_path("envdir") }
958
- let(:default_dir) { File.join(envdir, "cached_env", "modules") }
959
- let(:expected_dir) { File.join(envdir, "cached_env", "site") }
960
-
961
- let(:base_dir) do
962
- FS::MemoryFile.a_directory(envdir, [
963
- FS::MemoryFile.a_directory("cached_env", [
964
- FS::MemoryFile.a_missing_file("environment.conf")
965
- ])
966
- ])
967
- end
968
-
969
- let(:updated_dir) do
970
- FS::MemoryFile.a_directory(envdir, [
971
- FS::MemoryFile.a_directory("cached_env", [
972
- FS::MemoryFile.a_directory("site"),
973
- FS::MemoryFile.a_missing_directory("modules"),
974
- FS::MemoryFile.a_regular_file_containing("environment.conf", <<-EOF)
975
- modulepath=site
976
- environment_timeout=unlimited
977
- EOF
978
- ])
979
- ])
980
- end
981
-
982
- it 'evicts all environments' do
983
- with_environment_loaded(service) do |cached|
984
- cached.get(:an_environment)
985
- cached.get(:another_environment)
986
- cached.clear_all
987
-
988
- expect(service.evicted_envs).to match([:an_environment, :another_environment])
989
- end
990
- end
991
-
992
- it "recomputes modulepath if 'get' is called before 'clear_all'" do
993
- cached_loader_from(:filesystem => [base_dir], :directory => base_dir) do |loader|
994
- loader.get(:cached_env)
995
-
996
- expect(Puppet.settings.value(:modulepath, :cached_env)).to eq(default_dir)
997
-
998
- FS.overlay(updated_dir) do
999
- loader.clear_all
1000
-
1001
- expect(loader.get(:cached_env).modulepath).to contain_exactly(expected_dir)
1002
- end
1003
- end
1004
- end
1005
-
1006
- it "recomputes modulepath if 'list' is called before 'clear_all'" do
1007
- cached_loader_from(:filesystem => [base_dir], :directory => base_dir) do |loader|
1008
- loader.list
1009
-
1010
- expect(Puppet.settings.value(:modulepath, :cached_env)).to eq(default_dir)
1011
-
1012
- FS.overlay(updated_dir) do
1013
- loader.clear_all
1014
-
1015
- expect(loader.get(:cached_env).modulepath).to contain_exactly(expected_dir)
1016
- end
1017
- end
1018
- end
1019
-
1020
- it "recomputes modulepath if 'get_conf' is called before 'clear_all'" do
1021
- cached_loader_from(:filesystem => [base_dir], :directory => base_dir) do |loader|
1022
- loader.get_conf(:cached_env)
1023
-
1024
- expect(Puppet.settings.value(:modulepath, :cached_env)).to eq(default_dir)
1025
-
1026
- FS.overlay(updated_dir) do
1027
- loader.clear_all
1028
-
1029
- expect(loader.get(:cached_env).modulepath).to contain_exactly(expected_dir)
1030
- end
1031
- end
1032
- end
1033
-
1034
- it 'deletes environment text domains' do
1035
- with_environment_loaded(service) do |cached|
1036
- cached.get(:an_environment)
1037
- cached.clear_all
1038
-
1039
- expect(FastGettext.text_domain).to eq(Puppet::GettextConfig::DEFAULT_TEXT_DOMAIN)
1040
- end
722
+ it "gets an environment.conf" do
723
+ loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
724
+ expect(Puppet::Environments::Cached.new(loader).get_conf(:an_environment)).to match_environment_conf(:an_environment).
725
+ with_env_path(directory_tree.children.first).
726
+ with_global_module_path([])
1041
727
  end
1042
728
  end
1043
729
  end
@@ -1112,20 +798,6 @@ config_version=$vardir/random/scripts
1112
798
  end
1113
799
  end
1114
800
 
1115
- def cached_loader_from(options, &block)
1116
- FS.overlay(*options[:filesystem]) do
1117
- environments = Puppet::Environments::Cached.new(
1118
- Puppet::Environments::Directories.new(
1119
- options[:directory],
1120
- options[:modulepath] || []
1121
- )
1122
- )
1123
- Puppet.override(:environments => environments) do
1124
- yield environments
1125
- end
1126
- end
1127
- end
1128
-
1129
801
  def loader_from(options, &block)
1130
802
  FS.overlay(*options[:filesystem]) do
1131
803
  environments = Puppet::Environments::Directories.new(
@@ -1148,19 +820,6 @@ config_version=$vardir/random/scripts
1148
820
  end
1149
821
  end
1150
822
 
1151
- # The environment named `:an_environment` will already be loaded when the
1152
- # block is yielded to
1153
- def with_environment_loaded(service, &block)
1154
- loader_from(:filesystem => [directory_tree], :directory => directory_tree.children.first) do |loader|
1155
- using_expiration_service(service) do
1156
- cached = Puppet::Environments::Cached.new(loader)
1157
- cached.get!(:an_environment)
1158
-
1159
- yield cached if block_given?
1160
- end
1161
- end
1162
- end
1163
-
1164
823
  class ReplayExpirationService < Puppet::Environments::Cached::DefaultCacheExpirationService
1165
824
  attr_reader :created_envs, :evicted_envs
1166
825
 
@@ -1178,3 +837,4 @@ config_version=$vardir/random/scripts
1178
837
  end
1179
838
  end
1180
839
  end
840
+ end
@@ -15,6 +15,13 @@ describe Puppet::Face[:node, '0.0.1'] do
15
15
  end
16
16
 
17
17
  describe 'when running #clean' do
18
+ before :each do
19
+ allow(Puppet::Node::Facts.indirection).to receive(:terminus_class=)
20
+ allow(Puppet::Node::Facts.indirection).to receive(:cache_class=)
21
+ allow(Puppet::Node).to receive(:terminus_class=)
22
+ allow(Puppet::Node).to receive(:cache_class=)
23
+ end
24
+
18
25
  it 'should invoke #cleanup' do
19
26
  expect(subject).to receive(:cleanup).with('hostname')
20
27
  subject.clean('hostname')
@@ -23,6 +30,10 @@ describe Puppet::Face[:node, '0.0.1'] do
23
30
 
24
31
  describe "clean action" do
25
32
  before :each do
33
+ allow(Puppet::Node::Facts.indirection).to receive(:terminus_class=)
34
+ allow(Puppet::Node::Facts.indirection).to receive(:cache_class=)
35
+ allow(Puppet::Node).to receive(:terminus_class=)
36
+ allow(Puppet::Node).to receive(:cache_class=)
26
37
  allow(subject).to receive(:cleanup)
27
38
  end
28
39