puppet 6.29.0 → 7.0.0

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

Potentially problematic release.


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

Files changed (811) 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 +52 -143
  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 +2 -16
  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/agent.rb +11 -47
  104. data/lib/puppet/application/agent.rb +16 -18
  105. data/lib/puppet/application/apply.rb +4 -24
  106. data/lib/puppet/application/device.rb +100 -106
  107. data/lib/puppet/application/filebucket.rb +13 -10
  108. data/lib/puppet/application/lookup.rb +24 -74
  109. data/lib/puppet/application/resource.rb +16 -32
  110. data/lib/puppet/application/script.rb +0 -2
  111. data/lib/puppet/application/ssl.rb +1 -13
  112. data/lib/puppet/application.rb +178 -108
  113. data/lib/puppet/application_support.rb +0 -7
  114. data/lib/puppet/concurrent/thread_local_singleton.rb +3 -6
  115. data/lib/puppet/configurer/downloader.rb +1 -2
  116. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  117. data/lib/puppet/configurer.rb +86 -183
  118. data/lib/puppet/confine/variable.rb +1 -1
  119. data/lib/puppet/defaults.rb +130 -244
  120. data/lib/puppet/environments.rb +82 -146
  121. data/lib/puppet/face/facts.rb +5 -103
  122. data/lib/puppet/face/generate.rb +0 -2
  123. data/lib/puppet/face/help/action.erb +0 -1
  124. data/lib/puppet/face/help/face.erb +0 -1
  125. data/lib/puppet/face/help.rb +1 -1
  126. data/lib/puppet/face/node/clean.rb +0 -11
  127. data/lib/puppet/face/plugin.rb +5 -8
  128. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  129. data/lib/puppet/ffi/windows/constants.rb +404 -0
  130. data/lib/puppet/ffi/windows/functions.rb +628 -0
  131. data/lib/puppet/ffi/windows/structs.rb +338 -0
  132. data/lib/puppet/ffi/windows.rb +12 -0
  133. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  134. data/lib/puppet/file_serving/configuration.rb +0 -8
  135. data/lib/puppet/file_serving/fileset.rb +2 -14
  136. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  137. data/lib/puppet/file_serving/metadata.rb +0 -3
  138. data/lib/puppet/file_serving/mount/file.rb +4 -4
  139. data/lib/puppet/file_serving/mount.rb +1 -2
  140. data/lib/puppet/file_system/file_impl.rb +8 -10
  141. data/lib/puppet/file_system/jruby.rb +1 -1
  142. data/lib/puppet/file_system/memory_file.rb +1 -8
  143. data/lib/puppet/file_system/windows.rb +6 -8
  144. data/lib/puppet/file_system.rb +1 -1
  145. data/lib/puppet/forge/repository.rb +0 -1
  146. data/lib/puppet/forge.rb +4 -4
  147. data/lib/puppet/functions/all.rb +1 -1
  148. data/lib/puppet/functions/camelcase.rb +1 -1
  149. data/lib/puppet/functions/capitalize.rb +2 -2
  150. data/lib/puppet/functions/downcase.rb +2 -2
  151. data/lib/puppet/functions/empty.rb +0 -8
  152. data/lib/puppet/functions/find_template.rb +2 -2
  153. data/lib/puppet/functions/get.rb +5 -5
  154. data/lib/puppet/functions/group_by.rb +5 -13
  155. data/lib/puppet/functions/lest.rb +1 -1
  156. data/lib/puppet/functions/new.rb +100 -100
  157. data/lib/puppet/functions/next.rb +1 -18
  158. data/lib/puppet/functions/partition.rb +4 -12
  159. data/lib/puppet/functions/require.rb +5 -5
  160. data/lib/puppet/functions/sort.rb +3 -3
  161. data/lib/puppet/functions/strftime.rb +0 -1
  162. data/lib/puppet/functions/tree_each.rb +10 -7
  163. data/lib/puppet/functions/type.rb +4 -4
  164. data/lib/puppet/functions/unwrap.rb +2 -17
  165. data/lib/puppet/functions/upcase.rb +2 -2
  166. data/lib/puppet/functions/versioncmp.rb +2 -6
  167. data/lib/puppet/generate/models/type/type.rb +4 -1
  168. data/lib/puppet/generate/type.rb +0 -9
  169. data/lib/puppet/http/client.rb +167 -137
  170. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  171. data/lib/puppet/http/errors.rb +16 -0
  172. data/lib/puppet/http/external_client.rb +5 -7
  173. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  174. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  175. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  176. data/lib/puppet/http/proxy.rb +137 -0
  177. data/lib/puppet/http/redirector.rb +4 -17
  178. data/lib/puppet/http/resolver/server_list.rb +10 -25
  179. data/lib/puppet/http/resolver/settings.rb +4 -7
  180. data/lib/puppet/http/resolver/srv.rb +7 -11
  181. data/lib/puppet/http/resolver.rb +5 -15
  182. data/lib/puppet/http/response.rb +36 -54
  183. data/lib/puppet/http/response_converter.rb +24 -0
  184. data/lib/puppet/http/response_net_http.rb +42 -0
  185. data/lib/puppet/http/retry_after_handler.rb +4 -13
  186. data/lib/puppet/http/service/ca.rb +11 -22
  187. data/lib/puppet/http/service/compiler.rb +23 -144
  188. data/lib/puppet/http/service/file_server.rb +19 -29
  189. data/lib/puppet/http/service/puppetserver.rb +26 -12
  190. data/lib/puppet/http/service/report.rb +8 -10
  191. data/lib/puppet/http/service.rb +12 -26
  192. data/lib/puppet/http/session.rb +11 -20
  193. data/lib/puppet/{network/http → http}/site.rb +1 -2
  194. data/lib/puppet/http.rb +22 -13
  195. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  196. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  197. data/lib/puppet/indirector/facts/facter.rb +6 -6
  198. data/lib/puppet/indirector/facts/rest.rb +3 -22
  199. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  200. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  201. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  202. data/lib/puppet/indirector/file_server.rb +1 -8
  203. data/lib/puppet/indirector/generic_http.rb +0 -11
  204. data/lib/puppet/indirector/indirection.rb +1 -1
  205. data/lib/puppet/indirector/node/rest.rb +2 -4
  206. data/lib/puppet/indirector/report/rest.rb +3 -8
  207. data/lib/puppet/indirector/request.rb +0 -101
  208. data/lib/puppet/indirector/resource/ral.rb +1 -6
  209. data/lib/puppet/indirector/rest.rb +12 -263
  210. data/lib/puppet/indirector/terminus.rb +0 -4
  211. data/lib/puppet/interface/documentation.rb +0 -1
  212. data/lib/puppet/module/plan.rb +1 -0
  213. data/lib/puppet/module/task.rb +1 -1
  214. data/lib/puppet/module.rb +0 -1
  215. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  216. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  217. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  218. data/lib/puppet/module_tool/applications.rb +0 -1
  219. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  220. data/lib/puppet/network/authconfig.rb +2 -96
  221. data/lib/puppet/network/authorization.rb +13 -35
  222. data/lib/puppet/network/formats.rb +0 -67
  223. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  224. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  225. data/lib/puppet/network/http/connection.rb +247 -316
  226. data/lib/puppet/network/http/handler.rb +0 -1
  227. data/lib/puppet/network/http.rb +3 -3
  228. data/lib/puppet/network/http_pool.rb +16 -34
  229. data/lib/puppet/node/environment.rb +11 -10
  230. data/lib/puppet/node.rb +2 -31
  231. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  232. data/lib/puppet/pal/pal_impl.rb +4 -2
  233. data/lib/puppet/parser/ast/leaf.rb +2 -3
  234. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  235. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  236. data/lib/puppet/parser/compiler.rb +0 -198
  237. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  238. data/lib/puppet/parser/resource.rb +1 -70
  239. data/lib/puppet/parser/scope.rb +0 -1
  240. data/lib/puppet/parser/templatewrapper.rb +1 -2
  241. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  242. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  243. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  244. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  245. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  246. data/lib/puppet/pops/issues.rb +0 -5
  247. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  248. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  249. data/lib/puppet/pops/model/ast.pp +0 -42
  250. data/lib/puppet/pops/model/ast.rb +0 -291
  251. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  252. data/lib/puppet/pops/model/factory.rb +1 -47
  253. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  254. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  255. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  256. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  257. data/lib/puppet/pops/parser/egrammar.ra +0 -58
  258. data/lib/puppet/pops/parser/eparser.rb +1685 -1896
  259. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  260. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  261. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  262. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  263. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  264. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  265. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  266. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  267. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  268. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  269. data/lib/puppet/pops/types/type_parser.rb +0 -4
  270. data/lib/puppet/pops/types/types.rb +1 -2
  271. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  272. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  273. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  274. data/lib/puppet/property/list.rb +1 -1
  275. data/lib/puppet/provider/aix_object.rb +1 -1
  276. data/lib/puppet/provider/exec/posix.rb +4 -16
  277. data/lib/puppet/provider/group/groupadd.rb +10 -18
  278. data/lib/puppet/provider/nameservice.rb +0 -18
  279. data/lib/puppet/provider/package/apt.rb +2 -34
  280. data/lib/puppet/provider/package/aptitude.rb +0 -6
  281. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  282. data/lib/puppet/provider/package/dpkg.rb +0 -10
  283. data/lib/puppet/provider/package/gem.rb +23 -3
  284. data/lib/puppet/provider/package/nim.rb +6 -11
  285. data/lib/puppet/provider/package/pip.rb +3 -16
  286. data/lib/puppet/provider/package/pkg.rb +2 -23
  287. data/lib/puppet/provider/package/portage.rb +1 -1
  288. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  289. data/lib/puppet/provider/package/puppetserver_gem.rb +17 -8
  290. data/lib/puppet/provider/package/windows/exe_package.rb +1 -30
  291. data/lib/puppet/provider/package/windows/package.rb +1 -2
  292. data/lib/puppet/provider/package/windows.rb +1 -14
  293. data/lib/puppet/provider/package/yum.rb +1 -1
  294. data/lib/puppet/provider/parsedfile.rb +0 -3
  295. data/lib/puppet/provider/service/base.rb +1 -1
  296. data/lib/puppet/provider/service/debian.rb +0 -2
  297. data/lib/puppet/provider/service/init.rb +9 -10
  298. data/lib/puppet/provider/service/launchd.rb +2 -2
  299. data/lib/puppet/provider/service/redhat.rb +1 -1
  300. data/lib/puppet/provider/service/smf.rb +194 -76
  301. data/lib/puppet/provider/service/systemd.rb +6 -16
  302. data/lib/puppet/provider/service/upstart.rb +5 -5
  303. data/lib/puppet/provider/service/windows.rb +0 -38
  304. data/lib/puppet/provider/user/aix.rb +3 -46
  305. data/lib/puppet/provider/user/directoryservice.rb +11 -39
  306. data/lib/puppet/provider/user/useradd.rb +24 -134
  307. data/lib/puppet/provider.rb +1 -14
  308. data/lib/puppet/reference/configuration.rb +8 -7
  309. data/lib/puppet/reference/indirection.rb +1 -1
  310. data/lib/puppet/reference/providers.rb +2 -2
  311. data/lib/puppet/resource/catalog.rb +2 -15
  312. data/lib/puppet/resource/type.rb +3 -119
  313. data/lib/puppet/resource/type_collection.rb +3 -49
  314. data/lib/puppet/resource.rb +6 -127
  315. data/lib/puppet/runtime.rb +2 -13
  316. data/lib/puppet/settings/environment_conf.rb +0 -1
  317. data/lib/puppet/settings/integer_setting.rb +17 -0
  318. data/lib/puppet/settings/port_setting.rb +15 -0
  319. data/lib/puppet/settings/priority_setting.rb +5 -4
  320. data/lib/puppet/settings.rb +82 -98
  321. data/lib/puppet/ssl/base.rb +3 -5
  322. data/lib/puppet/ssl/certificate.rb +0 -6
  323. data/lib/puppet/ssl/certificate_request.rb +1 -12
  324. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  325. data/lib/puppet/ssl/oids.rb +3 -1
  326. data/lib/puppet/ssl/ssl_provider.rb +36 -75
  327. data/lib/puppet/ssl/state_machine.rb +20 -14
  328. data/lib/puppet/ssl/verifier.rb +2 -6
  329. data/lib/puppet/ssl.rb +10 -6
  330. data/lib/puppet/test/test_helper.rb +2 -7
  331. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  332. data/lib/puppet/transaction/persistence.rb +1 -21
  333. data/lib/puppet/transaction/report.rb +3 -19
  334. data/lib/puppet/transaction.rb +1 -7
  335. data/lib/puppet/type/exec.rb +6 -36
  336. data/lib/puppet/type/file/checksum.rb +1 -1
  337. data/lib/puppet/type/file/data_sync.rb +1 -1
  338. data/lib/puppet/type/file/mode.rb +0 -6
  339. data/lib/puppet/type/file/selcontext.rb +1 -1
  340. data/lib/puppet/type/file/source.rb +1 -1
  341. data/lib/puppet/type/file.rb +12 -32
  342. data/lib/puppet/type/filebucket.rb +4 -4
  343. data/lib/puppet/type/group.rb +1 -0
  344. data/lib/puppet/type/package.rb +8 -16
  345. data/lib/puppet/type/resources.rb +1 -1
  346. data/lib/puppet/type/service.rb +41 -26
  347. data/lib/puppet/type/tidy.rb +3 -22
  348. data/lib/puppet/type/user.rb +13 -35
  349. data/lib/puppet/type.rb +1 -77
  350. data/lib/puppet/util/autoload.rb +8 -1
  351. data/lib/puppet/util/command_line.rb +1 -1
  352. data/lib/puppet/util/execution.rb +0 -11
  353. data/lib/puppet/util/filetype.rb +2 -2
  354. data/lib/puppet/util/http_proxy.rb +2 -215
  355. data/lib/puppet/util/json.rb +0 -20
  356. data/lib/puppet/util/log.rb +4 -8
  357. data/lib/puppet/util/logging.rb +25 -1
  358. data/lib/puppet/util/monkey_patches.rb +2 -59
  359. data/lib/puppet/util/package.rb +16 -25
  360. data/lib/puppet/util/pidlock.rb +1 -1
  361. data/lib/puppet/util/posix.rb +5 -54
  362. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  363. data/lib/puppet/util/rdoc.rb +0 -7
  364. data/lib/puppet/util/retry_action.rb +1 -1
  365. data/lib/puppet/util/run_mode.rb +9 -1
  366. data/lib/puppet/util/selinux.rb +4 -30
  367. data/lib/puppet/util/suidmanager.rb +2 -1
  368. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  369. data/lib/puppet/util/tagging.rb +0 -1
  370. data/lib/puppet/util/windows/adsi.rb +0 -46
  371. data/lib/puppet/util/windows/daemon.rb +360 -0
  372. data/lib/puppet/util/windows/error.rb +1 -0
  373. data/lib/puppet/util/windows/eventlog.rb +4 -9
  374. data/lib/puppet/util/windows/file.rb +8 -242
  375. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  376. data/lib/puppet/util/windows/principal.rb +2 -9
  377. data/lib/puppet/util/windows/process.rb +4 -226
  378. data/lib/puppet/util/windows/service.rb +11 -457
  379. data/lib/puppet/util/windows/sid.rb +2 -6
  380. data/lib/puppet/util/windows/string.rb +12 -13
  381. data/lib/puppet/util/windows/user.rb +2 -0
  382. data/lib/puppet/util/windows.rb +3 -11
  383. data/lib/puppet/util/yaml.rb +1 -42
  384. data/lib/puppet/util.rb +5 -5
  385. data/lib/puppet/vendor/require_vendored.rb +0 -1
  386. data/lib/puppet/version.rb +1 -1
  387. data/lib/puppet/x509/cert_provider.rb +29 -1
  388. data/lib/puppet/x509.rb +5 -1
  389. data/lib/puppet.rb +34 -27
  390. data/locales/puppet.pot +9633 -5
  391. data/man/man5/puppet.conf.5 +286 -401
  392. data/man/man8/puppet-agent.8 +2 -5
  393. data/man/man8/puppet-apply.8 +2 -2
  394. data/man/man8/puppet-catalog.8 +9 -9
  395. data/man/man8/puppet-config.8 +1 -1
  396. data/man/man8/puppet-describe.8 +1 -1
  397. data/man/man8/puppet-device.8 +2 -2
  398. data/man/man8/puppet-doc.8 +1 -1
  399. data/man/man8/puppet-epp.8 +1 -1
  400. data/man/man8/puppet-facts.8 +8 -51
  401. data/man/man8/puppet-filebucket.8 +4 -4
  402. data/man/man8/puppet-generate.8 +1 -1
  403. data/man/man8/puppet-help.8 +1 -1
  404. data/man/man8/puppet-lookup.8 +6 -9
  405. data/man/man8/puppet-module.8 +3 -60
  406. data/man/man8/puppet-node.8 +5 -5
  407. data/man/man8/puppet-parser.8 +1 -1
  408. data/man/man8/puppet-plugin.8 +1 -1
  409. data/man/man8/puppet-report.8 +5 -5
  410. data/man/man8/puppet-resource.8 +1 -1
  411. data/man/man8/puppet-script.8 +2 -2
  412. data/man/man8/puppet-ssl.8 +1 -5
  413. data/man/man8/puppet.8 +2 -2
  414. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  415. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  416. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  417. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  418. data/spec/fixtures/ssl/ca.pem +35 -57
  419. data/spec/fixtures/ssl/crl.pem +18 -28
  420. data/spec/fixtures/ssl/ec-key.pem +11 -11
  421. data/spec/fixtures/ssl/ec.pem +24 -33
  422. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  423. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  424. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  425. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  426. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  427. data/spec/fixtures/ssl/intermediate.pem +36 -57
  428. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  429. data/spec/fixtures/ssl/pluto.pem +30 -52
  430. data/spec/fixtures/ssl/request-key.pem +57 -107
  431. data/spec/fixtures/ssl/request.pem +26 -47
  432. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  433. data/spec/fixtures/ssl/revoked.pem +30 -52
  434. data/spec/fixtures/ssl/signed-key.pem +57 -107
  435. data/spec/fixtures/ssl/signed.pem +30 -52
  436. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  437. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  438. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  439. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  440. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  441. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  442. data/spec/fixtures/unit/forge/bacula.json +1 -1
  443. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  444. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  445. data/spec/integration/application/agent_spec.rb +50 -406
  446. data/spec/integration/application/apply_spec.rb +1 -20
  447. data/spec/integration/application/filebucket_spec.rb +16 -32
  448. data/spec/integration/application/help_spec.rb +2 -0
  449. data/spec/integration/application/lookup_spec.rb +50 -81
  450. data/spec/integration/application/module_spec.rb +0 -21
  451. data/spec/integration/application/plugin_spec.rb +24 -2
  452. data/spec/integration/configurer_spec.rb +2 -18
  453. data/spec/integration/defaults_spec.rb +14 -3
  454. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  455. data/spec/integration/http/client_spec.rb +4 -63
  456. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  457. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  458. data/spec/integration/network/http_pool_spec.rb +3 -21
  459. data/spec/integration/parser/catalog_spec.rb +0 -38
  460. data/spec/integration/parser/node_spec.rb +0 -9
  461. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  462. data/spec/integration/resource/type_collection_spec.rb +6 -2
  463. data/spec/integration/transaction/report_spec.rb +1 -1
  464. data/spec/integration/transaction_spec.rb +9 -4
  465. data/spec/integration/type/exec_spec.rb +45 -70
  466. data/spec/integration/type/file_spec.rb +7 -6
  467. data/spec/integration/type/package_spec.rb +6 -6
  468. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  469. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  470. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  471. data/spec/integration/util/windows/principal_spec.rb +0 -21
  472. data/spec/integration/util/windows/process_spec.rb +9 -1
  473. data/spec/integration/util/windows/registry_spec.rb +10 -6
  474. data/spec/integration/util/windows/security_spec.rb +1 -1
  475. data/spec/lib/matchers/include.rb +27 -0
  476. data/spec/lib/matchers/include_spec.rb +32 -0
  477. data/spec/lib/puppet/test_ca.rb +2 -7
  478. data/spec/lib/puppet_spec/https.rb +1 -1
  479. data/spec/lib/puppet_spec/modules.rb +2 -13
  480. data/spec/lib/puppet_spec/puppetserver.rb +3 -55
  481. data/spec/lib/puppet_spec/settings.rb +1 -1
  482. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  483. data/spec/spec_helper.rb +17 -13
  484. data/spec/unit/agent_spec.rb +8 -38
  485. data/spec/unit/application/agent_spec.rb +19 -33
  486. data/spec/unit/application/apply_spec.rb +56 -76
  487. data/spec/unit/application/facts_spec.rb +12 -456
  488. data/spec/unit/application/filebucket_spec.rb +43 -39
  489. data/spec/unit/application/lookup_spec.rb +10 -131
  490. data/spec/unit/application/resource_spec.rb +0 -29
  491. data/spec/unit/application/ssl_spec.rb +2 -25
  492. data/spec/unit/application_spec.rb +9 -51
  493. data/spec/unit/certificate_factory_spec.rb +1 -1
  494. data/spec/unit/configurer/downloader_spec.rb +6 -8
  495. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  496. data/spec/unit/configurer_spec.rb +68 -327
  497. data/spec/unit/confine/feature_spec.rb +1 -1
  498. data/spec/unit/confine_spec.rb +2 -8
  499. data/spec/unit/context/trusted_information_spec.rb +2 -6
  500. data/spec/unit/daemon_spec.rb +11 -2
  501. data/spec/unit/defaults_spec.rb +68 -55
  502. data/spec/unit/environments_spec.rb +68 -408
  503. data/spec/unit/face/generate_spec.rb +0 -64
  504. data/spec/unit/face/node_spec.rb +11 -0
  505. data/spec/unit/face/plugin_spec.rb +73 -33
  506. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  507. data/spec/unit/file_bucket/file_spec.rb +1 -1
  508. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  509. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  510. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  511. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  512. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  513. data/spec/unit/file_system_spec.rb +4 -56
  514. data/spec/unit/forge/module_release_spec.rb +10 -5
  515. data/spec/unit/functions/assert_type_spec.rb +1 -1
  516. data/spec/unit/functions/camelcase_spec.rb +1 -1
  517. data/spec/unit/functions/capitalize_spec.rb +1 -1
  518. data/spec/unit/functions/downcase_spec.rb +1 -1
  519. data/spec/unit/functions/empty_spec.rb +0 -10
  520. data/spec/unit/functions/logging_spec.rb +0 -1
  521. data/spec/unit/functions/lookup_spec.rb +0 -64
  522. data/spec/unit/functions/unwrap_spec.rb +0 -8
  523. data/spec/unit/functions/upcase_spec.rb +1 -1
  524. data/spec/unit/functions/versioncmp_spec.rb +4 -40
  525. data/spec/unit/functions4_spec.rb +2 -2
  526. data/spec/unit/gettext/config_spec.rb +0 -12
  527. data/spec/unit/http/client_spec.rb +8 -84
  528. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  529. data/spec/unit/http/external_client_spec.rb +4 -4
  530. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  531. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  532. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  533. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  534. data/spec/unit/http/resolver_spec.rb +13 -13
  535. data/spec/unit/http/service/compiler_spec.rb +0 -193
  536. data/spec/unit/http/service/file_server_spec.rb +3 -3
  537. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  538. data/spec/unit/http/service_spec.rb +0 -1
  539. data/spec/unit/http/session_spec.rb +16 -14
  540. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  541. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  542. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  543. data/spec/unit/indirector/face_spec.rb +1 -0
  544. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  545. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  546. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  547. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  548. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  549. data/spec/unit/indirector/file_server_spec.rb +1 -15
  550. data/spec/unit/indirector/indirection_spec.rb +15 -18
  551. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  552. data/spec/unit/indirector/request_spec.rb +0 -264
  553. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  554. data/spec/unit/indirector/rest_spec.rb +98 -752
  555. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  556. data/spec/unit/indirector_spec.rb +2 -2
  557. data/spec/unit/interface/action_spec.rb +9 -0
  558. data/spec/unit/module_spec.rb +1 -15
  559. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  560. data/spec/unit/network/authconfig_spec.rb +2 -129
  561. data/spec/unit/network/authorization_spec.rb +2 -55
  562. data/spec/unit/network/formats_spec.rb +4 -51
  563. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  564. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  565. data/spec/unit/network/http/api_spec.rb +10 -0
  566. data/spec/unit/network/http/connection_spec.rb +19 -41
  567. data/spec/unit/network/http/handler_spec.rb +0 -1
  568. data/spec/unit/network/http_pool_spec.rb +0 -4
  569. data/spec/unit/node/environment_spec.rb +33 -21
  570. data/spec/unit/node_spec.rb +2 -60
  571. data/spec/unit/parser/compiler_spec.rb +19 -3
  572. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  573. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  574. data/spec/unit/parser/resource_spec.rb +8 -14
  575. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  576. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  577. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  578. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  579. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  580. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  581. data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
  582. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  583. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  584. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  585. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  586. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  587. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  588. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  589. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  590. data/spec/unit/pops/validator/validator_spec.rb +61 -51
  591. data/spec/unit/pops/visitor_spec.rb +1 -1
  592. data/spec/unit/property_spec.rb +0 -1
  593. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  594. data/spec/unit/provider/nameservice_spec.rb +64 -122
  595. data/spec/unit/provider/package/apt_spec.rb +23 -28
  596. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  597. data/spec/unit/provider/package/base_spec.rb +5 -6
  598. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  599. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  600. data/spec/unit/provider/package/gem_spec.rb +33 -1
  601. data/spec/unit/provider/package/nim_spec.rb +0 -42
  602. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  603. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  604. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  605. data/spec/unit/provider/package/pip_spec.rb +12 -44
  606. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  607. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  608. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  609. data/spec/unit/provider/package/puppetserver_gem_spec.rb +3 -3
  610. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -17
  611. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  612. data/spec/unit/provider/service/gentoo_spec.rb +5 -6
  613. data/spec/unit/provider/service/init_spec.rb +9 -16
  614. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  615. data/spec/unit/provider/service/openwrt_spec.rb +29 -23
  616. data/spec/unit/provider/service/redhat_spec.rb +2 -3
  617. data/spec/unit/provider/service/smf_spec.rb +401 -165
  618. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  619. data/spec/unit/provider/service/windows_spec.rb +0 -203
  620. data/spec/unit/provider/user/aix_spec.rb +0 -105
  621. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  622. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  623. data/spec/unit/provider/user/pw_spec.rb +0 -2
  624. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  625. data/spec/unit/provider_spec.rb +12 -22
  626. data/spec/unit/puppet_spec.rb +4 -12
  627. data/spec/unit/resource/catalog_spec.rb +2 -15
  628. data/spec/unit/resource/type_collection_spec.rb +2 -22
  629. data/spec/unit/resource/type_spec.rb +1 -1
  630. data/spec/unit/resource_spec.rb +12 -125
  631. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  632. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  633. data/spec/unit/settings/port_setting_spec.rb +31 -0
  634. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  635. data/spec/unit/settings_spec.rb +79 -110
  636. data/spec/unit/ssl/base_spec.rb +37 -3
  637. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  638. data/spec/unit/ssl/certificate_spec.rb +2 -11
  639. data/spec/unit/ssl/ssl_provider_spec.rb +3 -80
  640. data/spec/unit/ssl/state_machine_spec.rb +5 -21
  641. data/spec/unit/ssl/verifier_spec.rb +0 -21
  642. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  643. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  644. data/spec/unit/transaction/persistence_spec.rb +0 -51
  645. data/spec/unit/transaction/report_spec.rb +0 -2
  646. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  647. data/spec/unit/transaction_spec.rb +55 -96
  648. data/spec/unit/type/exec_spec.rb +29 -76
  649. data/spec/unit/type/file/checksum_spec.rb +6 -6
  650. data/spec/unit/type/file/content_spec.rb +2 -1
  651. data/spec/unit/type/file/ensure_spec.rb +1 -1
  652. data/spec/unit/type/file/mode_spec.rb +1 -1
  653. data/spec/unit/type/file/selinux_spec.rb +5 -3
  654. data/spec/unit/type/file/source_spec.rb +4 -5
  655. data/spec/unit/type/file_spec.rb +18 -6
  656. data/spec/unit/type/group_spec.rb +6 -13
  657. data/spec/unit/type/package_spec.rb +1 -1
  658. data/spec/unit/type/resources_spec.rb +7 -7
  659. data/spec/unit/type/service_spec.rb +189 -87
  660. data/spec/unit/type/tidy_spec.rb +8 -24
  661. data/spec/unit/type_spec.rb +24 -4
  662. data/spec/unit/util/at_fork_spec.rb +2 -2
  663. data/spec/unit/util/autoload_spec.rb +1 -5
  664. data/spec/unit/util/backups_spec.rb +2 -3
  665. data/spec/unit/util/execution_spec.rb +11 -44
  666. data/spec/unit/util/inifile_spec.rb +14 -6
  667. data/spec/unit/util/log_spec.rb +7 -8
  668. data/spec/unit/util/logging_spec.rb +3 -5
  669. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  670. data/spec/unit/util/posix_spec.rb +15 -363
  671. data/spec/unit/util/run_mode_spec.rb +21 -121
  672. data/spec/unit/util/selinux_spec.rb +68 -163
  673. data/spec/unit/util/storage_spec.rb +1 -3
  674. data/spec/unit/util/suidmanager_spec.rb +41 -44
  675. data/spec/unit/util/windows/sid_spec.rb +0 -41
  676. data/spec/unit/util/windows/string_spec.rb +1 -3
  677. data/spec/unit/util/yaml_spec.rb +13 -92
  678. data/spec/unit/util_spec.rb +6 -31
  679. data/tasks/generate_cert_fixtures.rake +7 -17
  680. data/tasks/parallel.rake +3 -3
  681. metadata +138 -239
  682. data/conf/auth.conf +0 -150
  683. data/ext/README.md +0 -13
  684. data/lib/puppet/application/cert.rb +0 -76
  685. data/lib/puppet/application/key.rb +0 -4
  686. data/lib/puppet/application/man.rb +0 -4
  687. data/lib/puppet/application/status.rb +0 -4
  688. data/lib/puppet/face/key.rb +0 -16
  689. data/lib/puppet/face/man.rb +0 -145
  690. data/lib/puppet/face/module/build.rb +0 -14
  691. data/lib/puppet/face/module/generate.rb +0 -14
  692. data/lib/puppet/face/module/search.rb +0 -103
  693. data/lib/puppet/face/status.rb +0 -51
  694. data/lib/puppet/facter_impl.rb +0 -96
  695. data/lib/puppet/ffi/posix/constants.rb +0 -14
  696. data/lib/puppet/ffi/posix/functions.rb +0 -24
  697. data/lib/puppet/ffi/posix.rb +0 -10
  698. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  699. data/lib/puppet/indirector/certificate/file.rb +0 -9
  700. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  701. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  702. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  703. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  704. data/lib/puppet/indirector/file_content/http.rb +0 -22
  705. data/lib/puppet/indirector/key/file.rb +0 -46
  706. data/lib/puppet/indirector/key/memory.rb +0 -7
  707. data/lib/puppet/indirector/ssl_file.rb +0 -162
  708. data/lib/puppet/indirector/status/local.rb +0 -12
  709. data/lib/puppet/indirector/status/rest.rb +0 -27
  710. data/lib/puppet/indirector/status.rb +0 -3
  711. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  712. data/lib/puppet/network/auth_config_parser.rb +0 -90
  713. data/lib/puppet/network/authstore.rb +0 -283
  714. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  715. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  716. data/lib/puppet/network/http/base_pool.rb +0 -36
  717. data/lib/puppet/network/http/compression.rb +0 -127
  718. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  719. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  720. data/lib/puppet/network/rest_controller.rb +0 -2
  721. data/lib/puppet/network/rights.rb +0 -210
  722. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  723. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  724. data/lib/puppet/parser/environment_compiler.rb +0 -202
  725. data/lib/puppet/pops/types/enumeration.rb +0 -16
  726. data/lib/puppet/resource/capability_finder.rb +0 -154
  727. data/lib/puppet/rest/errors.rb +0 -15
  728. data/lib/puppet/rest/response.rb +0 -35
  729. data/lib/puppet/rest/route.rb +0 -85
  730. data/lib/puppet/rest/routes.rb +0 -135
  731. data/lib/puppet/settings/alias_setting.rb +0 -37
  732. data/lib/puppet/ssl/host.rb +0 -505
  733. data/lib/puppet/ssl/key.rb +0 -61
  734. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  735. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  736. data/lib/puppet/ssl/validator.rb +0 -61
  737. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  738. data/lib/puppet/status.rb +0 -40
  739. data/lib/puppet/util/connection.rb +0 -88
  740. data/lib/puppet/util/fact_dif.rb +0 -81
  741. data/lib/puppet/util/ssl.rb +0 -83
  742. data/lib/puppet/util/windows/api_types.rb +0 -309
  743. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  744. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  745. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  746. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  747. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  748. data/lib/puppet/vendor/pathspec/README.md +0 -53
  749. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  750. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  751. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  752. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  753. data/man/man8/puppet-key.8 +0 -126
  754. data/man/man8/puppet-man.8 +0 -76
  755. data/man/man8/puppet-status.8 +0 -108
  756. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  757. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  758. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  759. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  760. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  761. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  762. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  763. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  764. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  765. data/spec/fixtures/ssl/oid-key.pem +0 -117
  766. data/spec/fixtures/ssl/oid.pem +0 -69
  767. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  768. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  769. data/spec/integration/application/resource_spec.rb +0 -68
  770. data/spec/integration/application/ssl_spec.rb +0 -20
  771. data/spec/integration/l10n/compiler_spec.rb +0 -37
  772. data/spec/integration/network/authconfig_spec.rb +0 -256
  773. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  774. data/spec/shared_contexts/l10n.rb +0 -32
  775. data/spec/unit/application/man_spec.rb +0 -52
  776. data/spec/unit/capability_spec.rb +0 -414
  777. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  778. data/spec/unit/face/key_spec.rb +0 -9
  779. data/spec/unit/face/module/search_spec.rb +0 -231
  780. data/spec/unit/face/status_spec.rb +0 -9
  781. data/spec/unit/facter_impl_spec.rb +0 -31
  782. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  783. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  784. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  785. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  786. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  787. data/spec/unit/indirector/key/file_spec.rb +0 -78
  788. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  789. data/spec/unit/indirector/status/local_spec.rb +0 -10
  790. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  791. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  792. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  793. data/spec/unit/network/authstore_spec.rb +0 -407
  794. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  795. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  796. data/spec/unit/network/http/compression_spec.rb +0 -240
  797. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  798. data/spec/unit/network/http_spec.rb +0 -9
  799. data/spec/unit/network/rights_spec.rb +0 -439
  800. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  801. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  802. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  803. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  804. data/spec/unit/rest/route_spec.rb +0 -132
  805. data/spec/unit/ssl/host_spec.rb +0 -645
  806. data/spec/unit/ssl/key_spec.rb +0 -173
  807. data/spec/unit/ssl/validator_spec.rb +0 -278
  808. data/spec/unit/status_spec.rb +0 -45
  809. data/spec/unit/util/json_spec.rb +0 -126
  810. data/spec/unit/util/ssl_spec.rb +0 -91
  811. data/spec/unit/util/windows_spec.rb +0 -23
@@ -1,28 +1,24 @@
1
1
  require 'puppet/file_serving/metadata'
2
2
 
3
+ # The FileServer service is used to retrieve file metadata and content.
3
4
  #
4
- # @api private
5
- #
6
- # The FileServer service is used to retrieve file metadata and content
5
+ # @api public
7
6
  #
8
7
  class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
9
- # @api private
10
8
  # @return [String] Default API for the FileServer service
11
9
  API = '/puppet/v3'.freeze
12
10
 
13
- # @api private
14
11
  # @return [RegEx] RegEx used to determine if a path contains a leading slash
15
12
  PATH_REGEX = /^\//
16
13
 
17
- #
18
- # @api private
14
+ # Use `Puppet::HTTP::Session.route_to(:fileserver)` to create or get an instance of this class.
19
15
  #
20
16
  # @param [Puppet::HTTP::Client] client
21
17
  # @param [Puppet::HTTP::Session] session
22
- # @param [String] server (Puppet[:ca_server]) If an explicit server is given,
18
+ # @param [String] server (`Puppet[:server]`) If an explicit server is given,
23
19
  # create a service using that server. If server is nil, the default value
24
20
  # is used to create the service.
25
- # @param [Integer] port (Puppet[:ca_port]) If an explicit port is given, create
21
+ # @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
26
22
  # a service using that port. If port is nil, the default value is used to
27
23
  # create the service.
28
24
  #
@@ -31,19 +27,14 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
31
27
  super(client, session, url)
32
28
  end
33
29
 
34
- #
35
- # @api private
36
- #
37
- # Submit a GET request to the server to retrieve the metadata for a specified
38
- # file
30
+ # Submit a GET request to the server to retrieve the metadata for a specified file.
39
31
  #
40
32
  # @param [String] path path to the file to retrieve data from
41
33
  # @param [String] environment the name of the environment we are operating in
42
34
  # @param [Symbol] links Can be one of either `:follow` or `:manage`, defines
43
35
  # how links are handled.
44
36
  # @param [String] checksum_type The digest algorithm used to verify the file.
45
- # Currently if fips is enabled, this defaults to `sha256`. Otherwise, it
46
- # defaults to `md5`.
37
+ # Defaults to `sha256`.
47
38
  # @param [Symbol] source_permissions Can be one of `:use`, `:use_when_creating`,
48
39
  # or `:ignore`. This parameter tells the server if it should include the
49
40
  # file permissions in the response. If set to `:ignore`, the server will
@@ -53,6 +44,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
53
44
  # array with the request response and the deserialized metadata for the
54
45
  # file returned from the server
55
46
  #
47
+ # @api public
48
+ #
56
49
  def get_file_metadata(path:, environment:, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore)
57
50
  validate_path(path)
58
51
 
@@ -74,9 +67,6 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
74
67
  [response, deserialize(response, Puppet::FileServing::Metadata)]
75
68
  end
76
69
 
77
- #
78
- # @api private
79
- #
80
70
  # Submit a GET request to the server to retrieve the metadata for multiple files
81
71
  #
82
72
  # @param [String] path path to the file(s) to retrieve data from
@@ -106,7 +96,9 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
106
96
  # An array with the request response and an array of the deserialized
107
97
  # metadata for each file returned from the server
108
98
  #
109
- def get_file_metadatas(path: nil, environment:, recurse: :false, recurselimit: nil, max_files: nil, ignore: nil, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore)
99
+ # @api public
100
+ #
101
+ def get_file_metadatas(path: nil, environment:, recurse: :false, recurselimit: nil, ignore: nil, links: :manage, checksum_type: Puppet[:digest_algorithm], source_permissions: :ignore)
110
102
  validate_path(path)
111
103
 
112
104
  headers = add_puppet_headers('Accept' => get_mime_types(Puppet::FileServing::Metadata).join(', '))
@@ -117,7 +109,6 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
117
109
  params: {
118
110
  recurse: recurse,
119
111
  recurselimit: recurselimit,
120
- max_files: max_files,
121
112
  ignore: ignore,
122
113
  links: links,
123
114
  checksum_type: checksum_type,
@@ -131,10 +122,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
131
122
  [response, deserialize_multiple(response, Puppet::FileServing::Metadata)]
132
123
  end
133
124
 
134
- #
135
- # @api private
136
- #
137
- # Submit a GET request to the server to retrieve content of a file
125
+ # Submit a GET request to the server to retrieve content of a file.
138
126
  #
139
127
  # @param [String] path path to the file to retrieve data from
140
128
  # @param [String] environment the name of the environment we are operating in
@@ -143,6 +131,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
143
131
  #
144
132
  # @return [Puppet::HTTP::Response] The request response
145
133
  #
134
+ # @api public
135
+ #
146
136
  def get_file_content(path:, environment:, &block)
147
137
  validate_path(path)
148
138
 
@@ -164,10 +154,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
164
154
  response
165
155
  end
166
156
 
167
- #
168
- # @api private
169
- #
170
- # Submit a GET request to
157
+ # Submit a GET request to retrieve file content using the `static_file_content` API
158
+ # uniquely identified by (`code_id`, `environment`, `path`).
171
159
  #
172
160
  # @param [String] path path to the file to retrieve data from
173
161
  # @param [String] environment the name of the environment we are operating in
@@ -177,6 +165,8 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
177
165
  #
178
166
  # @return [Puppet::HTTP::Response] The request response
179
167
  #
168
+ # @api public
169
+ #
180
170
  def get_static_file_content(path:, environment:, code_id:, &block)
181
171
  validate_path(path)
182
172
 
@@ -1,38 +1,52 @@
1
1
  # The puppetserver service.
2
2
  #
3
- # @api private
3
+ # @api public
4
4
  #
5
5
  class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
6
+
7
+ # Use `Puppet::HTTP::Session.route_to(:puppetserver)` to create or get an instance of this class.
8
+ #
6
9
  # @param [Puppet::HTTP::Client] client
7
10
  # @param [Puppet::HTTP::Session] session
8
- # @param [String] server If an explicit server is given,
11
+ # @param [String] server (`Puppet[:server]`) If an explicit server is given,
9
12
  # create a service using that server. If server is nil, the default value
10
13
  # is used to create the service.
11
- # @param [Integer] port If an explicit port is given, create
14
+ # @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
12
15
  # a service using that port. If port is nil, the default value is used to
13
16
  # create the service.
14
- # @api private
15
17
  #
16
18
  def initialize(client, session, server, port)
17
19
  url = build_url('', server || Puppet[:server], port || Puppet[:serverport])
18
20
  super(client, session, url)
19
21
  end
20
22
 
21
- # Request the puppetserver's simple status
23
+ # Request the puppetserver's simple status.
22
24
  #
23
25
  # @param [Puppet::SSL::SSLContext] ssl_context to use when establishing
24
26
  # the connection.
25
27
  # @return Puppet::HTTP::Response The HTTP response
26
- # @api private
28
+ #
29
+ # @api public
27
30
  #
28
31
  def get_simple_status(ssl_context: nil)
29
- response = @client.get(
30
- with_base_url("/status/v1/simple/master"),
31
- headers: add_puppet_headers({}),
32
- options: {ssl_context: ssl_context}
33
- )
32
+ request_path = "/status/v1/simple/server"
33
+
34
+ begin
35
+ response = @client.get(
36
+ with_base_url(request_path),
37
+ headers: add_puppet_headers({}),
38
+ options: {ssl_context: ssl_context}
39
+ )
34
40
 
35
- process_response(response)
41
+ process_response(response)
42
+ rescue Puppet::HTTP::ResponseError => e
43
+ if e.response.code == 404 && e.response.url.path == "/status/v1/simple/server"
44
+ request_path = "/status/v1/simple/master"
45
+ retry
46
+ else
47
+ raise e
48
+ end
49
+ end
36
50
 
37
51
  [response, response.body.to_s]
38
52
  end
@@ -1,16 +1,13 @@
1
+ # The Report service is used to submit run reports to the report server.
1
2
  #
2
- # @api private
3
- #
4
- # The Report service is used to submit run reports to the report server
3
+ # @api public
5
4
  #
6
5
  class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
7
6
 
8
- # @api private
9
7
  # @return [String] Default API for the report service
10
8
  API = '/puppet/v3'.freeze
11
9
 
12
- #
13
- # @api private
10
+ # Use `Puppet::HTTP::Session.route_to(:report)` to create or get an instance of this class.
14
11
  #
15
12
  # @param [Puppet::HTTP::Client] client
16
13
  # @param [Puppet::HTTP::Session] session
@@ -21,15 +18,14 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
21
18
  # a service using that port. If port is nil, the default value is used to
22
19
  # create the service.
23
20
  #
21
+ # @api private
22
+ #
24
23
  def initialize(client, session, server, port)
25
24
  url = build_url(API, server || Puppet[:report_server], port || Puppet[:report_port])
26
25
  super(client, session, url)
27
26
  end
28
27
 
29
- #
30
- # @api private
31
- #
32
- # Submit a report to the report server
28
+ # Submit a report to the report server.
33
29
  #
34
30
  # @param [String] name the name of the report being submitted
35
31
  # @param [Puppet::Transaction::Report] report run report to be submitted
@@ -37,6 +33,8 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
37
33
  #
38
34
  # @return [Puppet::HTTP::Response] response returned by the server
39
35
  #
36
+ # @api public
37
+ #
40
38
  def put_report(name, report, environment:)
41
39
  formatter = Puppet::Network::FormatHandler.format_for(Puppet[:preferred_serialization_format])
42
40
  headers = add_puppet_headers(
@@ -1,24 +1,17 @@
1
+ # Represents an abstract Puppet web service.
1
2
  #
2
- # @api private
3
- #
4
- # Represents a puppet web service
5
- #
3
+ # @abstract Subclass and implement methods for the service's REST APIs.
4
+ # @api public
6
5
  class Puppet::HTTP::Service
7
- # @api private
8
6
  # @return [URI] the url associated with this service
9
7
  attr_reader :url
10
8
 
11
- # @api private
12
9
  # @return [Array<Symbol>] available services
13
10
  SERVICE_NAMES = [:ca, :fileserver, :puppet, :puppetserver, :report].freeze
14
11
 
15
- # @api private
16
12
  # @return [Array<Symbol>] format types that are unsupported
17
13
  EXCLUDED_FORMATS = [:yaml, :b64_zlib_yaml, :dot].freeze
18
14
 
19
- #
20
- # @api private
21
- #
22
15
  # Create a new web service, which contains the URL used to connect to the
23
16
  # service. The four services implemented are `:ca`, `:fileserver`, `:puppet`,
24
17
  # and `:report`.
@@ -35,6 +28,7 @@ class Puppet::HTTP::Service
35
28
  #
36
29
  # @return [Puppet::HTTP::Service] an instance of the service type requested
37
30
  #
31
+ # @api private
38
32
  def self.create_service(client, session, name, server = nil, port = nil)
39
33
  case name
40
34
  when :ca
@@ -52,57 +46,49 @@ class Puppet::HTTP::Service
52
46
  end
53
47
  end
54
48
 
55
- #
56
- # @api private
57
- #
58
49
  # Check if the service named is included in the list of available services.
59
50
  #
60
51
  # @param [Symbol] name
61
52
  #
62
53
  # @return [Boolean]
63
54
  #
55
+ # @api private
64
56
  def self.valid_name?(name)
65
57
  SERVICE_NAMES.include?(name)
66
58
  end
67
59
 
68
- #
69
- # @api private
70
- #
71
- # Create a new service
60
+ # Create a new service. Services should be created by calling `Puppet::HTTP::Session#route_to`.
72
61
  #
73
62
  # @param [Puppet::HTTP::Client] client
74
63
  # @param [Puppet::HTTP::Session] session
75
64
  # @param [URI] url The url to connect to
76
65
  #
66
+ # @api private
77
67
  def initialize(client, session, url)
78
68
  @client = client
79
69
  @session = session
80
70
  @url = url
81
71
  end
82
72
 
83
- #
84
- # @api private
85
- #
86
73
  # Return the url with the given path encoded and appended
87
74
  #
88
75
  # @param [String] path the string to append to the base url
89
76
  #
90
77
  # @return [URI] the URI object containing the encoded path
91
78
  #
79
+ # @api public
92
80
  def with_base_url(path)
93
81
  u = @url.dup
94
82
  u.path += Puppet::Util.uri_encode(path)
95
83
  u
96
84
  end
97
85
 
86
+ # Open a connection using the given ssl context.
98
87
  #
99
- # @api private
100
- #
101
- # Open a connection using the given ssl context
102
- #
103
- # @param [Puppet::SSL::SSLContext] ssl_context (nil) optional ssl context to
104
- # connect with
88
+ # @param [Puppet::SSL::SSLContext] ssl_context An optional ssl context to connect with
89
+ # @return [void]
105
90
  #
91
+ # @api public
106
92
  def connect(ssl_context: nil)
107
93
  @client.connect(@url, options: {ssl_context: ssl_context})
108
94
  end
@@ -1,8 +1,6 @@
1
- #
2
- # @api private
3
- #
4
1
  # The session is the mechanism by which services may be connected to and accessed.
5
2
  #
3
+ # @api public
6
4
  class Puppet::HTTP::Session
7
5
  # capabilities for a site
8
6
  CAP_LOCALES = 'locales'.freeze
@@ -14,16 +12,15 @@ class Puppet::HTTP::Session
14
12
  # puppet version where JSON was enabled by default
15
13
  SUPPORTED_JSON_DEFAULT = Gem::Version.new("5.0.0")
16
14
 
17
- #
18
- # @api private
19
- #
20
15
  # Create a new HTTP session. The session is the mechanism by which services
21
- # may be connected to and accessed.
16
+ # may be connected to and accessed. Sessions should be created using
17
+ # `Puppet::HTTP::Client#create_session`.
22
18
  #
23
19
  # @param [Puppet::HTTP::Client] client the container for this session
24
20
  # @param [Array<Puppet::HTTP::Resolver>] resolvers array of resolver strategies
25
21
  # to implement.
26
22
  #
23
+ # @api private
27
24
  def initialize(client, resolvers)
28
25
  @client = client
29
26
  @resolvers = resolvers
@@ -31,9 +28,6 @@ class Puppet::HTTP::Session
31
28
  @server_versions = {}
32
29
  end
33
30
 
34
- #
35
- # @api private
36
- #
37
31
  # If an explicit server and port are specified on the command line or
38
32
  # configuration file, this method always returns a Service with that host and
39
33
  # port. Otherwise, we walk the list of resolvers in priority order:
@@ -45,12 +39,13 @@ class Puppet::HTTP::Session
45
39
  # is cached and returned if `route_to` is called again.
46
40
  #
47
41
  # @param [Symbol] name the service to resolve
48
- # @param [URI] url (nil) optional explicit url to use, if it is already known
49
- # @param [Puppet::SSL::SSLContext] ssl_context ssl_context ssl context to be
42
+ # @param [URI] url optional explicit url to use, if it is already known
43
+ # @param [Puppet::SSL::SSLContext] ssl_context ssl context to be
50
44
  # used for connections
51
45
  #
52
46
  # @return [Puppet::HTTP::Service] the resolved service
53
47
  #
48
+ # @api public
54
49
  def route_to(name, url: nil, ssl_context: nil)
55
50
  raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
56
51
 
@@ -82,25 +77,20 @@ class Puppet::HTTP::Session
82
77
  raise Puppet::HTTP::RouteError, "No more routes to #{name}"
83
78
  end
84
79
 
85
- #
86
- # @api private
87
- #
88
80
  # Collect per-site server versions. This will allow us to modify future
89
81
  # requests based on the version of puppetserver we are talking to.
90
82
  #
91
83
  # @param [Puppet::HTTP::Response] response the request response containing headers
92
84
  #
85
+ # @api private
93
86
  def process_response(response)
94
87
  version = response[Puppet::HTTP::HEADER_PUPPET_VERSION]
95
88
  if version
96
- site = Puppet::Network::HTTP::Site.from_uri(response.url)
89
+ site = Puppet::HTTP::Site.from_uri(response.url)
97
90
  @server_versions[site] = version
98
91
  end
99
92
  end
100
93
 
101
- #
102
- # @api private
103
- #
104
94
  # Determine if a session supports a capability. Depending on the server version
105
95
  # we are talking to, we know certain features are available or not. These
106
96
  # specifications are defined here so we can modify our requests appropriately.
@@ -110,13 +100,14 @@ class Puppet::HTTP::Session
110
100
  #
111
101
  # @return [Boolean]
112
102
  #
103
+ # @api public
113
104
  def supports?(name, capability)
114
105
  raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
115
106
 
116
107
  service = @resolved_services[name]
117
108
  return false unless service
118
109
 
119
- site = Puppet::Network::HTTP::Site.from_uri(service.url)
110
+ site = Puppet::HTTP::Site.from_uri(service.url)
120
111
  server_version = @server_versions[site]
121
112
 
122
113
  case capability
@@ -4,8 +4,7 @@
4
4
  # for the second.
5
5
  #
6
6
  # @api private
7
- #
8
- class Puppet::Network::HTTP::Site
7
+ class Puppet::HTTP::Site
9
8
  attr_reader :scheme, :host, :port
10
9
 
11
10
  def self.from_uri(uri)
data/lib/puppet/http.rb CHANGED
@@ -1,23 +1,25 @@
1
1
  module Puppet
2
- module Network
3
- module HTTP
4
- require 'puppet/network/http/site'
5
- require 'puppet/network/http/session'
6
- require 'puppet/network/http/factory'
7
- require 'puppet/network/http/base_pool'
8
- require 'puppet/network/http/nocache_pool'
9
- require 'puppet/network/http/pool'
10
- require 'puppet/network/resolver'
11
- end
12
- end
13
-
14
- # @api private
2
+ # Contains an HTTP client for making network requests to puppet and other
3
+ # HTTP servers.
4
+ #
5
+ # @see Puppet::HTTP::Client
6
+ # @see Puppet::HTTP::HTTPError
7
+ # @see Puppet::HTTP::Response
8
+ # @api public
15
9
  module HTTP
16
10
  ACCEPT_ENCODING = "gzip;q=1.0,deflate;q=0.6,identity;q=0.3".freeze
17
11
  HEADER_PUPPET_VERSION = "X-Puppet-Version".freeze
18
12
 
19
13
  require 'puppet/http/errors'
14
+ require 'puppet/http/site'
15
+ require 'puppet/http/pool_entry'
16
+ require 'puppet/http/proxy'
17
+ require 'puppet/http/factory'
18
+ require 'puppet/http/pool'
19
+ require 'puppet/http/dns'
20
20
  require 'puppet/http/response'
21
+ require 'puppet/http/response_converter'
22
+ require 'puppet/http/response_net_http'
21
23
  require 'puppet/http/service'
22
24
  require 'puppet/http/service/ca'
23
25
  require 'puppet/http/service/compiler'
@@ -34,4 +36,11 @@ module Puppet
34
36
  require 'puppet/http/retry_after_handler'
35
37
  require 'puppet/http/external_client'
36
38
  end
39
+
40
+ # Legacy HTTP API
41
+ module Network
42
+ module HTTP
43
+ require 'puppet/network/http_pool'
44
+ end
45
+ end
37
46
  end
@@ -53,22 +53,8 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
53
53
  node.trusted_data = Puppet.lookup(:trusted_information) { Puppet::Context::TrustedInformation.local(node) }.to_h
54
54
 
55
55
  if node.environment
56
- # If the requested environment doesn't match the server specified environment,
57
- # as determined by the node terminus, and the request wants us to check for an
58
- # environment mismatch, then return an empty catalog with the server-specified
59
- # enviroment.
60
- if request.remote? && request.options[:check_environment] && node.environment != request.environment
61
- return Puppet::Resource::Catalog.new(node.name, node.environment)
62
- end
63
-
64
56
  node.environment.with_text_domain do
65
- envs = Puppet.lookup(:environments)
66
- envs.guard(node.environment.name)
67
- begin
68
- compile(node, request.options)
69
- ensure
70
- envs.unguard(node.environment.name)
71
- end
57
+ compile(node, request.options)
72
58
  end
73
59
  else
74
60
  compile(node, request.options)
@@ -92,10 +78,6 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
92
78
  Puppet.run_mode.server?
93
79
  end
94
80
 
95
- def require_environment?
96
- false
97
- end
98
-
99
81
  private
100
82
 
101
83
  # @param facts [String] facts in a wire format for decoding
@@ -172,7 +154,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
172
154
  location = Puppet::Module::FILETYPES['files']
173
155
 
174
156
  !!(source_as_uri.path =~ /^\/modules\// &&
175
- metadata.full_path =~ /#{environment_path}\/[^\/]+\/[^\/]+\/#{location}\/.+/)
157
+ metadata.full_path =~ /#{environment_path}[^\/]+\/[^\/]+\/#{location}\/.+/)
176
158
  end
177
159
 
178
160
  # Helper method to log file resources that could not be inlined because they
@@ -191,7 +173,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
191
173
  # Inline file metadata for static catalogs
192
174
  # Initially restricted to files sourced from codedir via puppet:/// uri.
193
175
  def inline_metadata(catalog, checksum_type)
194
- environment_path = Pathname.new File.join(Puppet[:environmentpath], catalog.environment)
176
+ environment_path = Pathname.new File.join(Puppet[:environmentpath], catalog.environment, "")
195
177
  environment_path = Puppet::Environments::Directories.real_path(environment_path)
196
178
  list_of_resources = catalog.resources.find_all { |res| res.type == "File" }
197
179
 
@@ -212,7 +194,6 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
212
194
  :source_permissions => resource[:source_permissions] ? resource[:source_permissions].to_sym : :ignore,
213
195
  :recurse => true,
214
196
  :recurselimit => resource[:recurselimit],
215
- :max_files => resource[:max_files],
216
197
  :ignore => resource[:ignore],
217
198
  }
218
199
 
@@ -433,17 +414,17 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
433
414
  "serverip" => "ipaddress",
434
415
  "serverip6" => "ipaddress6"
435
416
  }.each do |var, fact|
436
- value = Puppet.runtime[:facter].value(fact)
417
+ value = Facter.value(fact)
437
418
  if !value.nil?
438
419
  @server_facts[var] = value
439
420
  end
440
421
  end
441
422
 
442
423
  if @server_facts["servername"].nil?
443
- host = Puppet.runtime[:facter].value(:hostname)
424
+ host = Facter.value(:hostname)
444
425
  if host.nil?
445
426
  Puppet.warning _("Could not retrieve fact servername")
446
- elsif domain = Puppet.runtime[:facter].value(:domain) #rubocop:disable Lint/AssignmentInCondition
427
+ elsif domain = Facter.value(:domain) #rubocop:disable Lint/AssignmentInCondition
447
428
  @server_facts["servername"] = [host, domain].join(".")
448
429
  else
449
430
  @server_facts["servername"] = host
@@ -5,8 +5,6 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
5
5
  desc "Find resource catalogs over HTTP via REST."
6
6
 
7
7
  def find(request)
8
- return super unless use_http_client?
9
-
10
8
  checksum_type = if request.options[:checksum_type]
11
9
  request.options[:checksum_type].split('.')
12
10
  else
@@ -20,7 +18,6 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
20
18
  facts: request.options[:facts_for_catalog],
21
19
  environment: request.environment.to_s,
22
20
  configured_environment: request.options[:configured_environment],
23
- check_environment: request.options[:check_environment],
24
21
  transaction_uuid: request.options[:transaction_uuid],
25
22
  job_uuid: request.options[:job_id],
26
23
  static_catalog: request.options[:static_catalog],
@@ -31,11 +28,11 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
31
28
  if e.response.code == 404
32
29
  return nil unless request.options[:fail_on_404]
33
30
 
34
- _, body = parse_response(e.response.nethttp)
31
+ _, body = parse_response(e.response)
35
32
  msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
36
33
  raise Puppet::Error, msg
37
34
  else
38
- raise convert_to_http_error(e.response.nethttp)
35
+ raise convert_to_http_error(e.response)
39
36
  end
40
37
  end
41
38
  end
@@ -20,10 +20,10 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
20
20
 
21
21
  # Lookup a host's facts up in Facter.
22
22
  def find(request)
23
- Puppet.runtime[:facter].reset
23
+ Facter.reset
24
24
 
25
25
  # Note: we need to setup puppet's external search paths before adding the puppetversion
26
- # fact. This is because in Facter 2.x, the first `Puppet.runtime[:facter].add` causes Facter to create
26
+ # fact. This is because in Facter 2.x, the first `Facter.add` causes Facter to create
27
27
  # its directory loaders which cannot be changed, meaning other external facts won't
28
28
  # be resolved. (PUP-4607)
29
29
  self.class.setup_external_search_paths(request)
@@ -36,7 +36,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
36
36
  raise(Puppet::Error, _("puppet facts show requires version 4.0.40 or greater of Facter.")) unless Facter.respond_to?(:resolve)
37
37
  find_with_options(request)
38
38
  else
39
- Puppet::Node::Facts.new(request.key, Puppet.runtime[:facter].to_hash)
39
+ Puppet::Node::Facts.new(request.key, Facter.to_hash)
40
40
  end
41
41
 
42
42
  result.add_local_facts unless request.options[:resolve_options]
@@ -68,7 +68,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
68
68
  true
69
69
  end
70
70
  dirs << request.options[:custom_dir] if request.options[:custom_dir]
71
- Puppet.runtime[:facter].search(*dirs)
71
+ Facter.search(*dirs)
72
72
  end
73
73
 
74
74
  def self.setup_external_search_paths(request)
@@ -90,7 +90,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
90
90
  end
91
91
 
92
92
  dirs << request.options[:external_dir] if request.options[:external_dir]
93
- Puppet.runtime[:facter].search_external dirs
93
+ Facter.search_external dirs
94
94
  end
95
95
 
96
96
  private
@@ -104,6 +104,6 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
104
104
  options_for_facter += " --no-block" if options[:no_block] == false
105
105
  options_for_facter += " --no-cache" if options[:no_cache] == false
106
106
 
107
- Puppet::Node::Facts.new(request.key, Puppet.runtime[:facter].resolve(options_for_facter))
107
+ Puppet::Node::Facts.new(request.key, Facter.resolve(options_for_facter))
108
108
  end
109
109
  end