puppet 6.27.0 → 7.0.0

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.
Files changed (804) 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 +51 -70
  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 -74
  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 -183
  117. data/lib/puppet/confine/variable.rb +1 -1
  118. data/lib/puppet/defaults.rb +130 -244
  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/next.rb +1 -18
  157. data/lib/puppet/functions/partition.rb +4 -12
  158. data/lib/puppet/functions/require.rb +5 -5
  159. data/lib/puppet/functions/sort.rb +3 -3
  160. data/lib/puppet/functions/strftime.rb +0 -1
  161. data/lib/puppet/functions/tree_each.rb +10 -7
  162. data/lib/puppet/functions/type.rb +4 -4
  163. data/lib/puppet/functions/unwrap.rb +2 -17
  164. data/lib/puppet/functions/upcase.rb +2 -2
  165. data/lib/puppet/functions/versioncmp.rb +2 -6
  166. data/lib/puppet/generate/models/type/type.rb +4 -1
  167. data/lib/puppet/generate/type.rb +0 -9
  168. data/lib/puppet/http/client.rb +165 -115
  169. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  170. data/lib/puppet/http/errors.rb +16 -0
  171. data/lib/puppet/http/external_client.rb +5 -7
  172. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  173. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  174. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  175. data/lib/puppet/http/proxy.rb +137 -0
  176. data/lib/puppet/http/redirector.rb +4 -17
  177. data/lib/puppet/http/resolver/server_list.rb +10 -25
  178. data/lib/puppet/http/resolver/settings.rb +4 -7
  179. data/lib/puppet/http/resolver/srv.rb +7 -11
  180. data/lib/puppet/http/resolver.rb +5 -15
  181. data/lib/puppet/http/response.rb +36 -54
  182. data/lib/puppet/http/response_converter.rb +24 -0
  183. data/lib/puppet/http/response_net_http.rb +42 -0
  184. data/lib/puppet/http/retry_after_handler.rb +4 -13
  185. data/lib/puppet/http/service/ca.rb +11 -22
  186. data/lib/puppet/http/service/compiler.rb +23 -144
  187. data/lib/puppet/http/service/file_server.rb +19 -29
  188. data/lib/puppet/http/service/puppetserver.rb +26 -12
  189. data/lib/puppet/http/service/report.rb +8 -10
  190. data/lib/puppet/http/service.rb +12 -26
  191. data/lib/puppet/http/session.rb +11 -20
  192. data/lib/puppet/{network/http → http}/site.rb +1 -2
  193. data/lib/puppet/http.rb +22 -13
  194. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  195. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  196. data/lib/puppet/indirector/facts/facter.rb +6 -6
  197. data/lib/puppet/indirector/facts/rest.rb +3 -22
  198. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  199. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  200. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  201. data/lib/puppet/indirector/file_server.rb +1 -8
  202. data/lib/puppet/indirector/generic_http.rb +0 -11
  203. data/lib/puppet/indirector/indirection.rb +1 -1
  204. data/lib/puppet/indirector/node/rest.rb +2 -4
  205. data/lib/puppet/indirector/report/rest.rb +3 -8
  206. data/lib/puppet/indirector/request.rb +0 -101
  207. data/lib/puppet/indirector/resource/ral.rb +1 -6
  208. data/lib/puppet/indirector/rest.rb +12 -263
  209. data/lib/puppet/indirector/terminus.rb +0 -4
  210. data/lib/puppet/interface/documentation.rb +0 -1
  211. data/lib/puppet/module/plan.rb +1 -0
  212. data/lib/puppet/module/task.rb +1 -1
  213. data/lib/puppet/module.rb +0 -1
  214. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  215. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  216. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  217. data/lib/puppet/module_tool/applications.rb +0 -1
  218. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  219. data/lib/puppet/network/authconfig.rb +2 -96
  220. data/lib/puppet/network/authorization.rb +13 -35
  221. data/lib/puppet/network/formats.rb +0 -67
  222. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  223. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  224. data/lib/puppet/network/http/connection.rb +247 -316
  225. data/lib/puppet/network/http/handler.rb +0 -1
  226. data/lib/puppet/network/http.rb +3 -3
  227. data/lib/puppet/network/http_pool.rb +16 -34
  228. data/lib/puppet/node/environment.rb +11 -10
  229. data/lib/puppet/node.rb +2 -31
  230. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  231. data/lib/puppet/pal/pal_impl.rb +4 -2
  232. data/lib/puppet/parser/ast/leaf.rb +2 -3
  233. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  234. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  235. data/lib/puppet/parser/compiler.rb +0 -198
  236. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  237. data/lib/puppet/parser/resource.rb +1 -70
  238. data/lib/puppet/parser/scope.rb +0 -1
  239. data/lib/puppet/parser/templatewrapper.rb +1 -2
  240. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  241. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  242. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  243. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  244. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  245. data/lib/puppet/pops/issues.rb +0 -5
  246. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  247. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  248. data/lib/puppet/pops/model/ast.pp +0 -42
  249. data/lib/puppet/pops/model/ast.rb +0 -291
  250. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  251. data/lib/puppet/pops/model/factory.rb +1 -47
  252. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  253. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  254. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  255. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  256. data/lib/puppet/pops/parser/egrammar.ra +0 -58
  257. data/lib/puppet/pops/parser/eparser.rb +1685 -1896
  258. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  259. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  260. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  261. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  262. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  263. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  264. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  265. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  266. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  267. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  268. data/lib/puppet/pops/types/type_parser.rb +0 -4
  269. data/lib/puppet/pops/types/types.rb +1 -2
  270. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  271. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  272. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  273. data/lib/puppet/property/list.rb +1 -1
  274. data/lib/puppet/provider/aix_object.rb +1 -1
  275. data/lib/puppet/provider/exec/posix.rb +4 -16
  276. data/lib/puppet/provider/group/groupadd.rb +10 -18
  277. data/lib/puppet/provider/nameservice.rb +0 -18
  278. data/lib/puppet/provider/package/apt.rb +2 -34
  279. data/lib/puppet/provider/package/aptitude.rb +0 -6
  280. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  281. data/lib/puppet/provider/package/dpkg.rb +0 -10
  282. data/lib/puppet/provider/package/gem.rb +23 -3
  283. data/lib/puppet/provider/package/nim.rb +6 -11
  284. data/lib/puppet/provider/package/pip.rb +3 -16
  285. data/lib/puppet/provider/package/pkg.rb +2 -23
  286. data/lib/puppet/provider/package/portage.rb +1 -1
  287. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  288. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  289. data/lib/puppet/provider/package/yum.rb +1 -1
  290. data/lib/puppet/provider/parsedfile.rb +0 -3
  291. data/lib/puppet/provider/service/base.rb +1 -1
  292. data/lib/puppet/provider/service/debian.rb +0 -2
  293. data/lib/puppet/provider/service/init.rb +9 -10
  294. data/lib/puppet/provider/service/launchd.rb +2 -2
  295. data/lib/puppet/provider/service/redhat.rb +1 -1
  296. data/lib/puppet/provider/service/smf.rb +194 -76
  297. data/lib/puppet/provider/service/systemd.rb +6 -16
  298. data/lib/puppet/provider/service/upstart.rb +5 -5
  299. data/lib/puppet/provider/service/windows.rb +0 -38
  300. data/lib/puppet/provider/user/aix.rb +3 -46
  301. data/lib/puppet/provider/user/directoryservice.rb +11 -34
  302. data/lib/puppet/provider/user/useradd.rb +24 -134
  303. data/lib/puppet/provider.rb +1 -14
  304. data/lib/puppet/reference/configuration.rb +8 -7
  305. data/lib/puppet/reference/indirection.rb +1 -1
  306. data/lib/puppet/reference/providers.rb +2 -2
  307. data/lib/puppet/resource/catalog.rb +2 -15
  308. data/lib/puppet/resource/type.rb +3 -119
  309. data/lib/puppet/resource/type_collection.rb +3 -49
  310. data/lib/puppet/resource.rb +6 -127
  311. data/lib/puppet/runtime.rb +2 -13
  312. data/lib/puppet/settings/environment_conf.rb +0 -1
  313. data/lib/puppet/settings/integer_setting.rb +17 -0
  314. data/lib/puppet/settings/port_setting.rb +15 -0
  315. data/lib/puppet/settings/priority_setting.rb +5 -4
  316. data/lib/puppet/settings.rb +82 -98
  317. data/lib/puppet/ssl/base.rb +3 -5
  318. data/lib/puppet/ssl/certificate.rb +0 -6
  319. data/lib/puppet/ssl/certificate_request.rb +1 -12
  320. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  321. data/lib/puppet/ssl/oids.rb +3 -1
  322. data/lib/puppet/ssl/ssl_provider.rb +24 -10
  323. data/lib/puppet/ssl/state_machine.rb +3 -1
  324. data/lib/puppet/ssl/verifier.rb +2 -6
  325. data/lib/puppet/ssl.rb +10 -6
  326. data/lib/puppet/test/test_helper.rb +2 -7
  327. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  328. data/lib/puppet/transaction/persistence.rb +1 -21
  329. data/lib/puppet/transaction/report.rb +3 -19
  330. data/lib/puppet/transaction.rb +1 -7
  331. data/lib/puppet/type/exec.rb +6 -36
  332. data/lib/puppet/type/file/checksum.rb +1 -1
  333. data/lib/puppet/type/file/data_sync.rb +1 -1
  334. data/lib/puppet/type/file/mode.rb +0 -6
  335. data/lib/puppet/type/file/selcontext.rb +1 -1
  336. data/lib/puppet/type/file/source.rb +1 -1
  337. data/lib/puppet/type/file.rb +12 -32
  338. data/lib/puppet/type/filebucket.rb +4 -4
  339. data/lib/puppet/type/group.rb +1 -0
  340. data/lib/puppet/type/package.rb +8 -16
  341. data/lib/puppet/type/resources.rb +1 -1
  342. data/lib/puppet/type/service.rb +41 -26
  343. data/lib/puppet/type/tidy.rb +3 -22
  344. data/lib/puppet/type/user.rb +13 -32
  345. data/lib/puppet/type.rb +1 -77
  346. data/lib/puppet/util/autoload.rb +8 -1
  347. data/lib/puppet/util/command_line.rb +1 -1
  348. data/lib/puppet/util/execution.rb +0 -11
  349. data/lib/puppet/util/filetype.rb +2 -2
  350. data/lib/puppet/util/http_proxy.rb +2 -215
  351. data/lib/puppet/util/json.rb +0 -20
  352. data/lib/puppet/util/log.rb +4 -8
  353. data/lib/puppet/util/logging.rb +25 -1
  354. data/lib/puppet/util/monkey_patches.rb +2 -59
  355. data/lib/puppet/util/package.rb +16 -25
  356. data/lib/puppet/util/pidlock.rb +1 -1
  357. data/lib/puppet/util/posix.rb +5 -54
  358. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  359. data/lib/puppet/util/rdoc.rb +0 -7
  360. data/lib/puppet/util/retry_action.rb +1 -1
  361. data/lib/puppet/util/run_mode.rb +9 -1
  362. data/lib/puppet/util/selinux.rb +4 -30
  363. data/lib/puppet/util/suidmanager.rb +2 -1
  364. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  365. data/lib/puppet/util/tagging.rb +0 -1
  366. data/lib/puppet/util/windows/adsi.rb +0 -46
  367. data/lib/puppet/util/windows/daemon.rb +360 -0
  368. data/lib/puppet/util/windows/error.rb +1 -0
  369. data/lib/puppet/util/windows/eventlog.rb +4 -9
  370. data/lib/puppet/util/windows/file.rb +8 -242
  371. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  372. data/lib/puppet/util/windows/principal.rb +2 -9
  373. data/lib/puppet/util/windows/process.rb +4 -226
  374. data/lib/puppet/util/windows/service.rb +11 -457
  375. data/lib/puppet/util/windows/sid.rb +2 -6
  376. data/lib/puppet/util/windows/string.rb +12 -13
  377. data/lib/puppet/util/windows/user.rb +2 -0
  378. data/lib/puppet/util/windows.rb +3 -11
  379. data/lib/puppet/util/yaml.rb +1 -42
  380. data/lib/puppet/util.rb +5 -5
  381. data/lib/puppet/vendor/require_vendored.rb +0 -1
  382. data/lib/puppet/version.rb +1 -1
  383. data/lib/puppet/x509/cert_provider.rb +29 -1
  384. data/lib/puppet/x509.rb +5 -1
  385. data/lib/puppet.rb +20 -26
  386. data/locales/puppet.pot +9633 -5
  387. data/man/man5/puppet.conf.5 +286 -401
  388. data/man/man8/puppet-agent.8 +2 -5
  389. data/man/man8/puppet-apply.8 +2 -2
  390. data/man/man8/puppet-catalog.8 +9 -9
  391. data/man/man8/puppet-config.8 +1 -1
  392. data/man/man8/puppet-describe.8 +1 -1
  393. data/man/man8/puppet-device.8 +2 -2
  394. data/man/man8/puppet-doc.8 +1 -1
  395. data/man/man8/puppet-epp.8 +1 -1
  396. data/man/man8/puppet-facts.8 +8 -51
  397. data/man/man8/puppet-filebucket.8 +4 -4
  398. data/man/man8/puppet-generate.8 +1 -1
  399. data/man/man8/puppet-help.8 +1 -1
  400. data/man/man8/puppet-lookup.8 +6 -9
  401. data/man/man8/puppet-module.8 +3 -60
  402. data/man/man8/puppet-node.8 +5 -5
  403. data/man/man8/puppet-parser.8 +1 -1
  404. data/man/man8/puppet-plugin.8 +1 -1
  405. data/man/man8/puppet-report.8 +5 -5
  406. data/man/man8/puppet-resource.8 +1 -1
  407. data/man/man8/puppet-script.8 +2 -2
  408. data/man/man8/puppet-ssl.8 +1 -5
  409. data/man/man8/puppet.8 +2 -2
  410. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  411. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  412. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  413. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  414. data/spec/fixtures/ssl/ca.pem +35 -57
  415. data/spec/fixtures/ssl/crl.pem +18 -28
  416. data/spec/fixtures/ssl/ec-key.pem +11 -11
  417. data/spec/fixtures/ssl/ec.pem +24 -33
  418. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  419. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  420. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  421. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  422. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  423. data/spec/fixtures/ssl/intermediate.pem +36 -57
  424. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  425. data/spec/fixtures/ssl/pluto.pem +30 -52
  426. data/spec/fixtures/ssl/request-key.pem +57 -107
  427. data/spec/fixtures/ssl/request.pem +26 -47
  428. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  429. data/spec/fixtures/ssl/revoked.pem +30 -52
  430. data/spec/fixtures/ssl/signed-key.pem +57 -107
  431. data/spec/fixtures/ssl/signed.pem +30 -52
  432. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  433. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  434. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  435. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  436. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  437. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  438. data/spec/fixtures/unit/forge/bacula.json +1 -1
  439. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  440. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  441. data/spec/integration/application/agent_spec.rb +51 -299
  442. data/spec/integration/application/apply_spec.rb +1 -20
  443. data/spec/integration/application/filebucket_spec.rb +16 -32
  444. data/spec/integration/application/help_spec.rb +2 -0
  445. data/spec/integration/application/lookup_spec.rb +50 -81
  446. data/spec/integration/application/module_spec.rb +0 -21
  447. data/spec/integration/application/plugin_spec.rb +24 -2
  448. data/spec/integration/configurer_spec.rb +2 -18
  449. data/spec/integration/defaults_spec.rb +14 -3
  450. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  451. data/spec/integration/http/client_spec.rb +0 -42
  452. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  453. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  454. data/spec/integration/network/http_pool_spec.rb +3 -21
  455. data/spec/integration/parser/catalog_spec.rb +0 -38
  456. data/spec/integration/parser/node_spec.rb +0 -9
  457. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  458. data/spec/integration/resource/type_collection_spec.rb +6 -2
  459. data/spec/integration/transaction/report_spec.rb +1 -1
  460. data/spec/integration/transaction_spec.rb +9 -4
  461. data/spec/integration/type/exec_spec.rb +45 -70
  462. data/spec/integration/type/file_spec.rb +7 -6
  463. data/spec/integration/type/package_spec.rb +6 -6
  464. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  465. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  466. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  467. data/spec/integration/util/windows/principal_spec.rb +0 -21
  468. data/spec/integration/util/windows/process_spec.rb +9 -1
  469. data/spec/integration/util/windows/registry_spec.rb +10 -6
  470. data/spec/integration/util/windows/security_spec.rb +1 -1
  471. data/spec/lib/matchers/include.rb +27 -0
  472. data/spec/lib/matchers/include_spec.rb +32 -0
  473. data/spec/lib/puppet/test_ca.rb +2 -7
  474. data/spec/lib/puppet_spec/modules.rb +2 -13
  475. data/spec/lib/puppet_spec/puppetserver.rb +1 -16
  476. data/spec/lib/puppet_spec/settings.rb +1 -1
  477. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  478. data/spec/spec_helper.rb +17 -13
  479. data/spec/unit/agent_spec.rb +6 -10
  480. data/spec/unit/application/agent_spec.rb +3 -7
  481. data/spec/unit/application/apply_spec.rb +56 -76
  482. data/spec/unit/application/facts_spec.rb +12 -456
  483. data/spec/unit/application/filebucket_spec.rb +43 -39
  484. data/spec/unit/application/lookup_spec.rb +10 -131
  485. data/spec/unit/application/resource_spec.rb +0 -29
  486. data/spec/unit/application/ssl_spec.rb +2 -25
  487. data/spec/unit/application_spec.rb +9 -51
  488. data/spec/unit/certificate_factory_spec.rb +1 -1
  489. data/spec/unit/configurer/downloader_spec.rb +6 -8
  490. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  491. data/spec/unit/configurer_spec.rb +68 -327
  492. data/spec/unit/confine/feature_spec.rb +1 -1
  493. data/spec/unit/confine_spec.rb +2 -8
  494. data/spec/unit/context/trusted_information_spec.rb +2 -6
  495. data/spec/unit/defaults_spec.rb +68 -55
  496. data/spec/unit/environments_spec.rb +68 -408
  497. data/spec/unit/face/generate_spec.rb +0 -64
  498. data/spec/unit/face/node_spec.rb +11 -0
  499. data/spec/unit/face/plugin_spec.rb +73 -33
  500. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  501. data/spec/unit/file_bucket/file_spec.rb +1 -1
  502. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  503. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  504. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  505. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  506. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  507. data/spec/unit/file_system_spec.rb +4 -56
  508. data/spec/unit/forge/module_release_spec.rb +10 -5
  509. data/spec/unit/functions/assert_type_spec.rb +1 -1
  510. data/spec/unit/functions/camelcase_spec.rb +1 -1
  511. data/spec/unit/functions/capitalize_spec.rb +1 -1
  512. data/spec/unit/functions/downcase_spec.rb +1 -1
  513. data/spec/unit/functions/empty_spec.rb +0 -10
  514. data/spec/unit/functions/logging_spec.rb +0 -1
  515. data/spec/unit/functions/lookup_spec.rb +0 -64
  516. data/spec/unit/functions/unwrap_spec.rb +0 -8
  517. data/spec/unit/functions/upcase_spec.rb +1 -1
  518. data/spec/unit/functions/versioncmp_spec.rb +4 -40
  519. data/spec/unit/functions4_spec.rb +2 -2
  520. data/spec/unit/gettext/config_spec.rb +0 -12
  521. data/spec/unit/http/client_spec.rb +8 -66
  522. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  523. data/spec/unit/http/external_client_spec.rb +4 -4
  524. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  525. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  526. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  527. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  528. data/spec/unit/http/resolver_spec.rb +13 -13
  529. data/spec/unit/http/service/compiler_spec.rb +0 -193
  530. data/spec/unit/http/service/file_server_spec.rb +3 -3
  531. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  532. data/spec/unit/http/service_spec.rb +0 -1
  533. data/spec/unit/http/session_spec.rb +16 -14
  534. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  535. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  536. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  537. data/spec/unit/indirector/face_spec.rb +1 -0
  538. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  539. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  540. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  541. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  542. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  543. data/spec/unit/indirector/file_server_spec.rb +1 -15
  544. data/spec/unit/indirector/indirection_spec.rb +15 -18
  545. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  546. data/spec/unit/indirector/request_spec.rb +0 -264
  547. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  548. data/spec/unit/indirector/rest_spec.rb +98 -752
  549. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  550. data/spec/unit/indirector_spec.rb +2 -2
  551. data/spec/unit/interface/action_spec.rb +9 -0
  552. data/spec/unit/module_spec.rb +1 -15
  553. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  554. data/spec/unit/network/authconfig_spec.rb +2 -129
  555. data/spec/unit/network/authorization_spec.rb +2 -55
  556. data/spec/unit/network/formats_spec.rb +4 -51
  557. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  558. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  559. data/spec/unit/network/http/api_spec.rb +10 -0
  560. data/spec/unit/network/http/connection_spec.rb +19 -41
  561. data/spec/unit/network/http/handler_spec.rb +0 -1
  562. data/spec/unit/network/http_pool_spec.rb +0 -4
  563. data/spec/unit/node/environment_spec.rb +33 -21
  564. data/spec/unit/node_spec.rb +2 -60
  565. data/spec/unit/parser/compiler_spec.rb +19 -3
  566. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  567. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  568. data/spec/unit/parser/resource_spec.rb +8 -14
  569. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  570. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  571. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  572. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  573. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  574. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  575. data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
  576. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  577. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  578. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  579. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  580. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  581. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  582. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  583. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  584. data/spec/unit/pops/validator/validator_spec.rb +61 -51
  585. data/spec/unit/pops/visitor_spec.rb +1 -1
  586. data/spec/unit/property_spec.rb +0 -1
  587. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  588. data/spec/unit/provider/nameservice_spec.rb +64 -122
  589. data/spec/unit/provider/package/apt_spec.rb +23 -28
  590. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  591. data/spec/unit/provider/package/base_spec.rb +5 -6
  592. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  593. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  594. data/spec/unit/provider/package/gem_spec.rb +33 -1
  595. data/spec/unit/provider/package/nim_spec.rb +0 -42
  596. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  597. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  598. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  599. data/spec/unit/provider/package/pip_spec.rb +12 -44
  600. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  601. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  602. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  603. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  604. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  605. data/spec/unit/provider/service/gentoo_spec.rb +5 -6
  606. data/spec/unit/provider/service/init_spec.rb +9 -16
  607. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  608. data/spec/unit/provider/service/openwrt_spec.rb +29 -23
  609. data/spec/unit/provider/service/redhat_spec.rb +2 -3
  610. data/spec/unit/provider/service/smf_spec.rb +401 -165
  611. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  612. data/spec/unit/provider/service/windows_spec.rb +0 -203
  613. data/spec/unit/provider/user/aix_spec.rb +0 -105
  614. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  615. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  616. data/spec/unit/provider/user/pw_spec.rb +0 -2
  617. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  618. data/spec/unit/provider_spec.rb +12 -22
  619. data/spec/unit/puppet_spec.rb +4 -12
  620. data/spec/unit/resource/catalog_spec.rb +2 -15
  621. data/spec/unit/resource/type_collection_spec.rb +2 -22
  622. data/spec/unit/resource/type_spec.rb +1 -1
  623. data/spec/unit/resource_spec.rb +12 -125
  624. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  625. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  626. data/spec/unit/settings/port_setting_spec.rb +31 -0
  627. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  628. data/spec/unit/settings_spec.rb +79 -110
  629. data/spec/unit/ssl/base_spec.rb +37 -3
  630. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  631. data/spec/unit/ssl/certificate_spec.rb +2 -11
  632. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  633. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  634. data/spec/unit/ssl/verifier_spec.rb +0 -21
  635. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  636. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  637. data/spec/unit/transaction/persistence_spec.rb +0 -51
  638. data/spec/unit/transaction/report_spec.rb +0 -2
  639. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  640. data/spec/unit/transaction_spec.rb +55 -96
  641. data/spec/unit/type/exec_spec.rb +29 -76
  642. data/spec/unit/type/file/checksum_spec.rb +6 -6
  643. data/spec/unit/type/file/content_spec.rb +2 -1
  644. data/spec/unit/type/file/ensure_spec.rb +1 -1
  645. data/spec/unit/type/file/mode_spec.rb +1 -1
  646. data/spec/unit/type/file/selinux_spec.rb +5 -3
  647. data/spec/unit/type/file/source_spec.rb +4 -5
  648. data/spec/unit/type/file_spec.rb +18 -6
  649. data/spec/unit/type/group_spec.rb +6 -13
  650. data/spec/unit/type/package_spec.rb +1 -1
  651. data/spec/unit/type/resources_spec.rb +7 -7
  652. data/spec/unit/type/service_spec.rb +189 -87
  653. data/spec/unit/type/tidy_spec.rb +8 -24
  654. data/spec/unit/type_spec.rb +24 -4
  655. data/spec/unit/util/at_fork_spec.rb +2 -2
  656. data/spec/unit/util/autoload_spec.rb +1 -5
  657. data/spec/unit/util/backups_spec.rb +2 -3
  658. data/spec/unit/util/execution_spec.rb +11 -44
  659. data/spec/unit/util/inifile_spec.rb +14 -6
  660. data/spec/unit/util/log_spec.rb +7 -8
  661. data/spec/unit/util/logging_spec.rb +3 -5
  662. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  663. data/spec/unit/util/posix_spec.rb +15 -363
  664. data/spec/unit/util/run_mode_spec.rb +21 -121
  665. data/spec/unit/util/selinux_spec.rb +68 -163
  666. data/spec/unit/util/storage_spec.rb +1 -3
  667. data/spec/unit/util/suidmanager_spec.rb +41 -44
  668. data/spec/unit/util/windows/sid_spec.rb +0 -41
  669. data/spec/unit/util/windows/string_spec.rb +1 -3
  670. data/spec/unit/util/yaml_spec.rb +13 -92
  671. data/spec/unit/util_spec.rb +6 -31
  672. data/tasks/generate_cert_fixtures.rake +3 -12
  673. data/tasks/parallel.rake +3 -3
  674. metadata +138 -233
  675. data/conf/auth.conf +0 -150
  676. data/ext/README.md +0 -13
  677. data/lib/puppet/application/cert.rb +0 -76
  678. data/lib/puppet/application/key.rb +0 -4
  679. data/lib/puppet/application/man.rb +0 -4
  680. data/lib/puppet/application/status.rb +0 -4
  681. data/lib/puppet/face/key.rb +0 -16
  682. data/lib/puppet/face/man.rb +0 -145
  683. data/lib/puppet/face/module/build.rb +0 -14
  684. data/lib/puppet/face/module/generate.rb +0 -14
  685. data/lib/puppet/face/module/search.rb +0 -103
  686. data/lib/puppet/face/status.rb +0 -51
  687. data/lib/puppet/facter_impl.rb +0 -96
  688. data/lib/puppet/ffi/posix/constants.rb +0 -14
  689. data/lib/puppet/ffi/posix/functions.rb +0 -24
  690. data/lib/puppet/ffi/posix.rb +0 -10
  691. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  692. data/lib/puppet/indirector/certificate/file.rb +0 -9
  693. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  694. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  695. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  696. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  697. data/lib/puppet/indirector/file_content/http.rb +0 -22
  698. data/lib/puppet/indirector/key/file.rb +0 -46
  699. data/lib/puppet/indirector/key/memory.rb +0 -7
  700. data/lib/puppet/indirector/ssl_file.rb +0 -162
  701. data/lib/puppet/indirector/status/local.rb +0 -12
  702. data/lib/puppet/indirector/status/rest.rb +0 -27
  703. data/lib/puppet/indirector/status.rb +0 -3
  704. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  705. data/lib/puppet/network/auth_config_parser.rb +0 -90
  706. data/lib/puppet/network/authstore.rb +0 -283
  707. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  708. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  709. data/lib/puppet/network/http/base_pool.rb +0 -36
  710. data/lib/puppet/network/http/compression.rb +0 -127
  711. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  712. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  713. data/lib/puppet/network/rest_controller.rb +0 -2
  714. data/lib/puppet/network/rights.rb +0 -210
  715. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  716. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  717. data/lib/puppet/parser/environment_compiler.rb +0 -202
  718. data/lib/puppet/pops/types/enumeration.rb +0 -16
  719. data/lib/puppet/resource/capability_finder.rb +0 -154
  720. data/lib/puppet/rest/errors.rb +0 -15
  721. data/lib/puppet/rest/response.rb +0 -35
  722. data/lib/puppet/rest/route.rb +0 -85
  723. data/lib/puppet/rest/routes.rb +0 -135
  724. data/lib/puppet/settings/alias_setting.rb +0 -37
  725. data/lib/puppet/ssl/host.rb +0 -505
  726. data/lib/puppet/ssl/key.rb +0 -61
  727. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  728. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  729. data/lib/puppet/ssl/validator.rb +0 -61
  730. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  731. data/lib/puppet/status.rb +0 -40
  732. data/lib/puppet/util/connection.rb +0 -88
  733. data/lib/puppet/util/fact_dif.rb +0 -81
  734. data/lib/puppet/util/ssl.rb +0 -83
  735. data/lib/puppet/util/windows/api_types.rb +0 -309
  736. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  737. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  738. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  739. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  740. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  741. data/lib/puppet/vendor/pathspec/README.md +0 -53
  742. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  743. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  744. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  745. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  746. data/man/man8/puppet-key.8 +0 -126
  747. data/man/man8/puppet-man.8 +0 -76
  748. data/man/man8/puppet-status.8 +0 -108
  749. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  750. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  751. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  752. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  753. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  754. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  755. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  756. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  757. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  758. data/spec/fixtures/ssl/oid-key.pem +0 -117
  759. data/spec/fixtures/ssl/oid.pem +0 -69
  760. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  761. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  762. data/spec/integration/application/resource_spec.rb +0 -68
  763. data/spec/integration/application/ssl_spec.rb +0 -20
  764. data/spec/integration/l10n/compiler_spec.rb +0 -37
  765. data/spec/integration/network/authconfig_spec.rb +0 -256
  766. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  767. data/spec/shared_contexts/l10n.rb +0 -32
  768. data/spec/unit/application/man_spec.rb +0 -52
  769. data/spec/unit/capability_spec.rb +0 -414
  770. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  771. data/spec/unit/face/key_spec.rb +0 -9
  772. data/spec/unit/face/module/search_spec.rb +0 -231
  773. data/spec/unit/face/status_spec.rb +0 -9
  774. data/spec/unit/facter_impl_spec.rb +0 -31
  775. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  776. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  777. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  778. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  779. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  780. data/spec/unit/indirector/key/file_spec.rb +0 -78
  781. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  782. data/spec/unit/indirector/status/local_spec.rb +0 -10
  783. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  784. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  785. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  786. data/spec/unit/network/authstore_spec.rb +0 -407
  787. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  788. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  789. data/spec/unit/network/http/compression_spec.rb +0 -240
  790. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  791. data/spec/unit/network/http_spec.rb +0 -9
  792. data/spec/unit/network/rights_spec.rb +0 -439
  793. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  794. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  795. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  796. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  797. data/spec/unit/rest/route_spec.rb +0 -132
  798. data/spec/unit/ssl/host_spec.rb +0 -645
  799. data/spec/unit/ssl/key_spec.rb +0 -173
  800. data/spec/unit/ssl/validator_spec.rb +0 -278
  801. data/spec/unit/status_spec.rb +0 -45
  802. data/spec/unit/util/json_spec.rb +0 -126
  803. data/spec/unit/util/ssl_spec.rb +0 -91
  804. data/spec/unit/util/windows_spec.rb +0 -23
@@ -3,7 +3,7 @@ require 'puppet/application/facts'
3
3
 
4
4
  describe Puppet::Application::Facts do
5
5
  let(:app) { Puppet::Application[:facts] }
6
- let(:values) { {"filesystems" => "apfs,autofs,devfs", "macaddress" => "64:52:11:22:03:2e"} }
6
+ let(:values) { {"filesystems" => "apfs,autofs,devfs", "macaddress" => "64:52:11:22:03:25"} }
7
7
 
8
8
  before :each do
9
9
  Puppet::Node::Facts.indirection.terminus_class = :memory
@@ -21,7 +21,7 @@ describe Puppet::Application::Facts do
21
21
  name: whatever
22
22
  values:
23
23
  filesystems: apfs,autofs,devfs
24
- macaddress: "64:52:11:22:03:2e"
24
+ macaddress: "64:52:11:22:03:25"
25
25
  END
26
26
 
27
27
  expect {
@@ -42,7 +42,7 @@ describe Puppet::Application::Facts do
42
42
  name: #{Puppet[:certname]}
43
43
  values:
44
44
  filesystems: apfs,autofs,devfs
45
- macaddress: "64:52:11:22:03:2e"
45
+ macaddress: "64:52:11:22:03:25"
46
46
  END
47
47
 
48
48
  expect {
@@ -52,12 +52,7 @@ describe Puppet::Application::Facts do
52
52
  end
53
53
 
54
54
  context 'when show action is called' do
55
- let(:expected) { <<~END }
56
- {
57
- "filesystems": "apfs,autofs,devfs",
58
- "macaddress": "64:52:11:22:03:2e"
59
- }
60
- END
55
+ let(:expected) { "{\n \"filesystems\": \"apfs,autofs,devfs\",\n \"macaddress\": \"64:52:11:22:03:25\"\n}\n" }
61
56
 
62
57
  before :each do
63
58
  Puppet::Node::Facts.indirection.terminus_class = :facter
@@ -69,464 +64,25 @@ describe Puppet::Application::Facts do
69
64
  expect {
70
65
  app.run
71
66
  }.to exit_with(0)
72
- .and output(expected).to_stdout
73
- end
74
-
75
- it 'displays a single fact value' do
76
- app.command_line.args << 'filesystems' << '--value-only'
77
- expect {
78
- app.run
79
- }.to exit_with(0)
80
- .and output("apfs,autofs,devfs\n").to_stdout
81
- end
82
-
83
- it "warns and ignores value-only when multiple fact names are specified" do
84
- app.command_line.args << 'filesystems' << 'macaddress' << '--value-only'
85
- expect {
86
- app.run
87
- }.to exit_with(0)
88
- .and output(expected).to_stdout
89
- .and output(/it can only be used when querying for a single fact/).to_stderr
90
- end
91
-
92
- {
93
- "type_hash" => [{'a' => 2}, "{\n \"a\": 2\n}"],
94
- "type_array" => [[], "[\n\n]"],
95
- "type_string" => ["str", "str"],
96
- "type_int" => [1, "1"],
97
- "type_float" => [1.0, "1.0"],
98
- "type_true" => [true, "true"],
99
- "type_false" => [false, "false"],
100
- "type_nil" => [nil, ""],
101
- "type_sym" => [:sym, "sym"]
102
- }.each_pair do |name, values|
103
- it "renders '#{name}' as '#{values.last}'" do
104
- fact_value = values.first
105
- fact_output = values.last
106
-
107
- allow(Facter).to receive(:resolve).and_return({name => fact_value})
108
-
109
- app.command_line.args << name << '--value-only'
110
- expect {
111
- app.run
112
- }.to exit_with(0)
113
- .and output("#{fact_output}\n").to_stdout
114
- end
67
+ .and output(expected).to_stdout
115
68
  end
116
69
  end
117
70
 
118
- context 'when diff action is called' do
119
- let(:facter3_facts) { <<~END }
120
- {
121
- "hypervisors": {
122
- "vmware": {
123
- "version": ""
124
- }
125
- },
126
- "networking": {
127
- "interfaces": {
128
- "lo": {
129
- "bindings6": [
130
- {
131
- "network": "::1"
132
- }
133
- ]
134
- },
135
- "em0.1": {
136
- "ip": "0.0.0.0"
137
- }
138
- }
139
- },
140
- "macaddress": "64:52:11:22:03:2e",
141
- "obsolete_fact": "true",
142
- "mountpoints": {
143
- "/var": {
144
- "options": [
145
- "noatime",
146
- "journaled",
147
- "nobrowse"
148
- ]
149
- }
150
- }
151
- }
152
- END
153
-
154
- let(:facter4_facts) { <<~END }
155
- {
156
- "hypervisors": {
157
- "vmware": {
158
- "version": "ESXi 6.7"
159
- }
160
- },
161
- "networking": {
162
- "interfaces": {
163
- "lo": {
164
- "bindings6": [
165
- {
166
- "network": "::1",
167
- "scope6": "host"
168
- }
169
- ]
170
- },
171
- "em0.1": {
172
- "ip": "127.0.0.1"
173
- }
174
- }
175
- },
176
- "macaddress": "64:52:11:22:03:2e",
177
- "mountpoints": {
178
- "/var": {
179
- "options": [
180
- "noatime",
181
- "nobrowse",
182
- "journaled"
183
- ]
184
- }
185
- }
186
- }
187
- END
71
+ context 'when default action is called' do
72
+ let(:expected) { "---\nfilesystems: apfs,autofs,devfs\nmacaddress: 64:52:11:22:03:25\n" }
188
73
 
189
74
  before :each do
190
75
  Puppet::Node::Facts.indirection.terminus_class = :facter
191
- app.command_line.args = %w{diff}
192
-
193
- allow(Facter).to receive(:value).with('facterversion').and_return('3.99.0')
194
- allow(Puppet::Util::Execution).to receive(:execute).with(/puppet facts show --no-facterng/, combine:false).and_return(facter3_facts)
195
- allow(Puppet::Util::Execution).to receive(:execute).with(/puppet facts show --facterng/, combine:false).and_return(facter4_facts)
196
- end
197
-
198
- # Workaround for YAML issue on Ubuntu where null values get space as key
199
- let(:regex) { false }
200
- shared_examples_for 'correctly rendering output' do |render_format|
201
- it 'correctly displays output' do
202
- app.command_line.args << '--structured' if structured
203
- app.command_line.args << '--exclude' << exclude if exclude
204
- app.command_line.args << '--render-as' << render_format if render_format
205
- expect {
206
- app.run
207
- }.to exit_with(0)
208
- .and output(regex ? /#{expected_output}/ : expected_output).to_stdout
209
- end
210
- end
211
-
212
- context 'when no exclude regex is provided via CLI' do
213
- let(:exclude) { nil }
214
- context 'when structured is requested' do
215
- let(:structured) { true }
216
- context 'when rendering is set to default' do
217
- let(:expected_output) { <<~END }
218
- {
219
- "hypervisors": {
220
- "vmware": {
221
- "version": {
222
- "new_value": "ESXi 6.7",
223
- "old_value": ""
224
- }
225
- }
226
- },
227
- "mountpoints": {
228
- "/var": {
229
- "options": {
230
- "1": {
231
- "new_value": "nobrowse",
232
- "old_value": "journaled"
233
- },
234
- "2": {
235
- "new_value": "journaled",
236
- "old_value": "nobrowse"
237
- }
238
- }
239
- }
240
- },
241
- "networking": {
242
- "interfaces": {
243
- "em0.1": {
244
- "ip": {
245
- "new_value": "127.0.0.1",
246
- "old_value": "0.0.0.0"
247
- }
248
- },
249
- "lo": {
250
- "bindings6": {
251
- "0": {
252
- "scope6": {
253
- "new_value": "host",
254
- "old_value": null
255
- }
256
- }
257
- }
258
- }
259
- }
260
- },
261
- "obsolete_fact": {
262
- "new_value": null,
263
- "old_value": "true"
264
- }
265
- }
266
- END
267
-
268
- it_behaves_like 'correctly rendering output'
269
- end
270
-
271
- context 'when rendering is set to yaml' do
272
- # Workaround for YAML issue on Ubuntu where null values get space as key
273
- let(:regex) { true }
274
- let(:expected_output) { <<~END }
275
- ---
276
- hypervisors:
277
- vmware:
278
- version:
279
- :new_value: ESXi 6\.7
280
- :old_value: ''
281
- mountpoints:
282
- "/var":
283
- options:
284
- 1:
285
- :new_value: nobrowse
286
- :old_value: journaled
287
- 2:
288
- :new_value: journaled
289
- :old_value: nobrowse
290
- networking:
291
- interfaces:
292
- em0\.1:
293
- ip:
294
- :new_value: 127\.0\.0\.1
295
- :old_value: 0\.0\.0\.0
296
- lo:
297
- bindings6:
298
- 0:
299
- scope6:
300
- :new_value: host
301
- :old_value:\s?
302
- obsolete_fact:
303
- :new_value:\s?
304
- :old_value: 'true'
305
- END
306
-
307
- it_behaves_like 'correctly rendering output', 'yaml'
308
- end
309
-
310
- context 'when rendering is set to json' do
311
- let(:expected_output) { <<~END }
312
- {"hypervisors":{"vmware":{"version":{"new_value":"ESXi 6.7","old_value":""}}},\
313
- "mountpoints":{"/var":{"options":{"1":{"new_value":"nobrowse","old_value":"journaled"},\
314
- "2":{"new_value":"journaled","old_value":"nobrowse"}}}},"networking":{"interfaces":\
315
- {"em0.1":{"ip":{"new_value":"127.0.0.1","old_value":"0.0.0.0"}},"lo":{"bindings6":\
316
- {"0":{"scope6":{"new_value":"host","old_value":null}}}}}},"obsolete_fact":\
317
- {"new_value":null,"old_value":"true"}}
318
- END
319
-
320
- it_behaves_like 'correctly rendering output', 'json'
321
- end
322
- end
323
-
324
- context 'when structured is not requested' do
325
- let(:structured) { false }
326
- context 'when rendering is set to default' do
327
- let(:expected_output) { <<~END }
328
- {
329
- "hypervisors.vmware.version": {
330
- "new_value": "ESXi 6.7",
331
- "old_value": ""
332
- },
333
- "mountpoints./var.options.1": {
334
- "new_value": "nobrowse",
335
- "old_value": "journaled"
336
- },
337
- "mountpoints./var.options.2": {
338
- "new_value": "journaled",
339
- "old_value": "nobrowse"
340
- },
341
- "networking.interfaces.\\"em0.1\\".ip": {
342
- "new_value": "127.0.0.1",
343
- "old_value": "0.0.0.0"
344
- },
345
- "networking.interfaces.lo.bindings6.0.scope6": {
346
- "new_value": "host",
347
- "old_value": null
348
- },
349
- "obsolete_fact": {
350
- "new_value": null,
351
- "old_value": "true"
352
- }
353
- }
354
- END
355
-
356
- it_behaves_like 'correctly rendering output'
357
- end
358
-
359
- context 'when rendering is set to yaml' do
360
- # Workaround for YAML issue on Ubuntu where null values get space as key
361
- let(:regex) { true }
362
- let(:expected_output) { <<~END }
363
- ---
364
- hypervisors\.vmware\.version:
365
- :new_value: ESXi 6\.7
366
- :old_value: ''
367
- mountpoints\./var\.options\.1:
368
- :new_value: nobrowse
369
- :old_value: journaled
370
- mountpoints\./var\.options\.2:
371
- :new_value: journaled
372
- :old_value: nobrowse
373
- networking\.interfaces\."em0\.1"\.ip:
374
- :new_value: 127\.0\.0\.1
375
- :old_value: 0\.0\.0\.0
376
- networking\.interfaces\.lo\.bindings6\.0\.scope6:
377
- :new_value: host
378
- :old_value:\s?
379
- obsolete_fact:
380
- :new_value:\s?
381
- :old_value: 'true'
382
- END
383
-
384
- it_behaves_like 'correctly rendering output', 'yaml'
385
- end
386
-
387
- context 'when rendering is set to json' do
388
- let(:expected_output) { <<~END }
389
- {"hypervisors.vmware.version":{"new_value":"ESXi 6.7","old_value":""},\
390
- "mountpoints./var.options.1":{"new_value":"nobrowse","old_value":"journaled"},\
391
- "mountpoints./var.options.2":{"new_value":"journaled","old_value":"nobrowse"},\
392
- "networking.interfaces.\\"em0.1\\".ip":{"new_value":"127.0.0.1",\
393
- "old_value":"0.0.0.0"},"networking.interfaces.lo.bindings6.0.scope6":\
394
- {"new_value":"host","old_value":null},"obsolete_fact":{"new_value":null,\
395
- "old_value":"true"}}
396
- END
397
-
398
- it_behaves_like 'correctly rendering output', 'json'
399
- end
400
- end
401
- end
402
-
403
- context 'when unwanted facts are excluded from diff via CLI option' do
404
- let(:exclude) { '^mountpoints\./var\.options.*$|^obsolete_fact$|^hypervisors' }
405
- context 'when structured is requested' do
406
- let(:structured) { true }
407
- context 'when rendering is set to default' do
408
- let(:expected_output) { <<~END }
409
- {
410
- "networking": {
411
- "interfaces": {
412
- "em0.1": {
413
- "ip": {
414
- "new_value": "127.0.0.1",
415
- "old_value": "0.0.0.0"
416
- }
417
- },
418
- "lo": {
419
- "bindings6": {
420
- "0": {
421
- "scope6": {
422
- "new_value": "host",
423
- "old_value": null
424
- }
425
- }
426
- }
427
- }
428
- }
429
- }
430
- }
431
- END
432
-
433
- it_behaves_like 'correctly rendering output'
434
- end
435
-
436
- context 'when rendering is set to yaml' do
437
- # Workaround for YAML issue on Ubuntu where null values get space as key
438
- let(:regex) { true }
439
- let(:expected_output) { <<~END }
440
- ---
441
- networking:
442
- interfaces:
443
- em0\.1:
444
- ip:
445
- :new_value: 127\.0\.0\.1
446
- :old_value: 0\.0\.0\.0
447
- lo:
448
- bindings6:
449
- 0:
450
- scope6:
451
- :new_value: host
452
- :old_value:\s?
453
- END
454
-
455
- it_behaves_like 'correctly rendering output', 'yaml'
456
- end
457
-
458
- context 'when rendering is set to json' do
459
- let(:expected_output) { <<~END }
460
- {"networking":{"interfaces":{"em0.1":{"ip":{"new_value":"127.0.0.1",\
461
- "old_value":"0.0.0.0"}},"lo":{"bindings6":{"0":{"scope6":{"new_value":\
462
- "host","old_value":null}}}}}}}
463
- END
464
-
465
- it_behaves_like 'correctly rendering output', 'json'
466
- end
467
- end
468
-
469
- context 'when structured is not requested' do
470
- let(:structured) { false }
471
- context 'when rendering is set to default' do
472
- let(:expected_output) { <<~END }
473
- {
474
- "networking.interfaces.\\"em0.1\\".ip": {
475
- "new_value": "127.0.0.1",
476
- "old_value": "0.0.0.0"
477
- },
478
- "networking.interfaces.lo.bindings6.0.scope6": {
479
- "new_value": "host",
480
- "old_value": null
481
- }
482
- }
483
- END
484
-
485
- it_behaves_like 'correctly rendering output'
486
- end
487
-
488
- context 'when rendering is set to yaml' do
489
- # Workaround for YAML issue on Ubuntu where null values get space as key
490
- let(:regex) { true }
491
- let(:expected_output) { <<~END }
492
- ---
493
- networking\.interfaces\."em0\.1"\.ip:
494
- :new_value: 127\.0\.0\.1
495
- :old_value: 0\.0\.0\.0
496
- networking\.interfaces\.lo\.bindings6\.0\.scope6:
497
- :new_value: host
498
- :old_value:\s?
499
- END
500
-
501
- it_behaves_like 'correctly rendering output', 'yaml'
502
- end
503
-
504
- context 'when rendering is set to json' do
505
- let(:expected_output) { <<~END }
506
- {"networking.interfaces.\\"em0.1\\".ip":{"new_value":"127.0.0.1",\
507
- "old_value":"0.0.0.0"},"networking.interfaces.lo.bindings6.0.scope6":\
508
- {"new_value":"host","old_value":null}}
509
- END
510
-
511
- it_behaves_like 'correctly rendering output', 'json'
512
- end
513
- end
514
- end
515
- end
516
-
517
- context 'when default action is called' do
518
- before :each do
519
- Puppet::Node::Facts.indirection.terminus_class = :memory
520
- facts = Puppet::Node::Facts.new('whatever', values)
521
- Puppet::Node::Facts.indirection.save(facts)
76
+ allow(Facter).to receive(:resolve).and_return(values)
77
+ app.command_line.args = %w{--render-as yaml}
522
78
  end
523
79
 
524
- it 'calls find action' do
80
+ it 'calls show action' do
525
81
  expect {
526
82
  app.run
527
83
  }.to exit_with(0)
528
- .and output(anything).to_stdout
529
- expect(app.action.name).to eq(:find)
84
+ .and output(expected).to_stdout
85
+ expect(app.action.name).to eq(:show)
530
86
  end
531
87
  end
532
88
  end
@@ -42,6 +42,7 @@ describe Puppet::Application::Filebucket do
42
42
  describe "during setup" do
43
43
  before :each do
44
44
  allow(Puppet::Log).to receive(:newdestination)
45
+ allow(Puppet).to receive(:settraps)
45
46
  allow(Puppet::FileBucket::Dipper).to receive(:new)
46
47
  allow(@filebucket.options).to receive(:[])
47
48
  end
@@ -114,15 +115,15 @@ describe Puppet::Application::Filebucket do
114
115
  end
115
116
 
116
117
  it "should default to the first good server_list entry if server_list is set" do
117
- stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 200)
118
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 200)
118
119
  Puppet[:server_list] = "foo,bar,baz"
119
120
  expect(Puppet::FileBucket::Dipper).to receive(:new).with(hash_including(Server: "foo"))
120
121
  @filebucket.setup
121
122
  end
122
123
 
123
124
  it "should walk server_list until it finds a good entry" do
124
- stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 502)
125
- stub_request(:get, "https://bar:8140/status/v1/simple/master").to_return(status: 200)
125
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 502)
126
+ stub_request(:get, "https://bar:8140/status/v1/simple/server").to_return(status: 200)
126
127
  Puppet[:server_list] = "foo,bar,baz"
127
128
  expect(Puppet::FileBucket::Dipper).to receive(:new).with(hash_including(Server: "bar"))
128
129
  @filebucket.setup
@@ -130,6 +131,8 @@ describe Puppet::Application::Filebucket do
130
131
 
131
132
  # FileBucket catches any exceptions raised, logs them, then just exits
132
133
  it "raises an error if there are no functional servers in server_list" do
134
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 404)
135
+ stub_request(:get, "https://bar:8140/status/v1/simple/server").to_return(status: 404)
133
136
  stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 404)
134
137
  stub_request(:get, "https://bar:8140/status/v1/simple/master").to_return(status: 404)
135
138
  Puppet[:server] = 'horacio'
@@ -145,7 +148,7 @@ describe Puppet::Application::Filebucket do
145
148
  end
146
149
 
147
150
  it "should take both the server and port specified in server_list" do
148
- stub_request(:get, "https://foo:632/status/v1/simple/master").to_return(status: 200)
151
+ stub_request(:get, "https://foo:632/status/v1/simple/server").to_return(status: 200)
149
152
  Puppet[:server_list] = "foo:632,bar:6215,baz:351"
150
153
  expect(Puppet::FileBucket::Dipper).to receive(:new).with({ :Server => "foo", :Port => 632 })
151
154
  @filebucket.setup
@@ -156,6 +159,7 @@ describe Puppet::Application::Filebucket do
156
159
  describe "when running" do
157
160
  before :each do
158
161
  allow(Puppet::Log).to receive(:newdestination)
162
+ allow(Puppet).to receive(:settraps)
159
163
  allow(Puppet::FileBucket::Dipper).to receive(:new)
160
164
  allow(@filebucket.options).to receive(:[])
161
165
 
@@ -185,11 +189,11 @@ describe Puppet::Application::Filebucket do
185
189
  @filebucket.get
186
190
  end
187
191
 
188
- it "should call the client getfile method with the given md5" do
189
- md5="DEADBEEF"
190
- allow(@filebucket).to receive(:args).and_return([md5])
192
+ it "should call the client getfile method with the given digest" do
193
+ digest = 'DEADBEEF'
194
+ allow(@filebucket).to receive(:args).and_return([digest])
191
195
 
192
- expect(@client).to receive(:getfile).with(md5)
196
+ expect(@client).to receive(:getfile).with(digest)
193
197
 
194
198
  @filebucket.get
195
199
  end
@@ -223,12 +227,12 @@ describe Puppet::Application::Filebucket do
223
227
  end
224
228
 
225
229
  describe "the command restore" do
226
- it "should call the client getfile method with the given md5" do
227
- md5="DEADBEEF"
228
- file="testfile"
229
- allow(@filebucket).to receive(:args).and_return([file, md5])
230
+ it "should call the client getfile method with the given digest" do
231
+ digest = 'DEADBEEF'
232
+ file = 'testfile'
233
+ allow(@filebucket).to receive(:args).and_return([file, digest])
230
234
 
231
- expect(@client).to receive(:restore).with(file,md5)
235
+ expect(@client).to receive(:restore).with(file, digest)
232
236
 
233
237
  @filebucket.restore
234
238
  end
@@ -236,55 +240,55 @@ describe Puppet::Application::Filebucket do
236
240
 
237
241
  describe "the command diff" do
238
242
  it "should call the client diff method with 2 given checksums" do
239
- md5a="DEADBEEF"
240
- md5b="BEEF"
243
+ digest_a = 'DEADBEEF'
244
+ digest_b = 'BEEF'
241
245
  allow(Puppet::FileSystem).to receive(:exist?).and_return(false)
242
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
246
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
243
247
 
244
- expect(@client).to receive(:diff).with(md5a,md5b, nil, nil)
248
+ expect(@client).to receive(:diff).with(digest_a, digest_b, nil, nil)
245
249
 
246
250
  @filebucket.diff
247
251
  end
248
252
 
249
- it "should call the clien diff with a path if the second argument is a file" do
250
- md5a="DEADBEEF"
251
- md5b="BEEF"
252
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(false)
253
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(true)
254
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
253
+ it "should call the client diff with a path if the second argument is a file" do
254
+ digest_a = 'DEADBEEF'
255
+ digest_b = 'BEEF'
256
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(false)
257
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(true)
258
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
255
259
 
256
- expect(@client).to receive(:diff).with(md5a, nil, nil, md5b)
260
+ expect(@client).to receive(:diff).with(digest_a, nil, nil, digest_b)
257
261
 
258
262
  @filebucket.diff
259
263
  end
260
264
 
261
- it "should call the clien diff with a path if the first argument is a file" do
262
- md5a="DEADBEEF"
263
- md5b="BEEF"
264
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(true)
265
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(false)
266
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
265
+ it "should call the client diff with a path if the first argument is a file" do
266
+ digest_a = 'DEADBEEF'
267
+ digest_b = 'BEEF'
268
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(true)
269
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(false)
270
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
267
271
 
268
- expect(@client).to receive(:diff).with(nil, md5b, md5a, nil)
272
+ expect(@client).to receive(:diff).with(nil, digest_b, digest_a, nil)
269
273
 
270
274
  @filebucket.diff
271
275
  end
272
276
 
273
277
  it "should call the clien diff with paths if the both arguments are files" do
274
- md5a="DEADBEEF"
275
- md5b="BEEF"
276
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(true)
277
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(true)
278
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
278
+ digest_a = 'DEADBEEF'
279
+ digest_b = 'BEEF'
280
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(true)
281
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(true)
282
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
279
283
 
280
- expect(@client).to receive(:diff).with(nil, nil, md5a, md5b)
284
+ expect(@client).to receive(:diff).with(nil, nil, digest_a, digest_b)
281
285
 
282
286
  @filebucket.diff
283
287
  end
284
288
 
285
289
  it "should fail if only one checksum is given" do
286
- md5a="DEADBEEF"
287
- allow(@filebucket).to receive(:args).and_return([md5a])
290
+ digest_a = 'DEADBEEF'
291
+ allow(@filebucket).to receive(:args).and_return([digest_a])
288
292
 
289
293
  expect { @filebucket.diff }.to raise_error Puppet::Error
290
294
  end