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
@@ -28,7 +28,7 @@ describe Puppet::HTTP::Resolver do
28
28
  end
29
29
 
30
30
  it 'returns a service based on the current server_list setting' do
31
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 200)
31
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 200)
32
32
 
33
33
  service = subject.resolve(session, :ca)
34
34
  expect(service).to be_an_instance_of(Puppet::HTTP::Service::Ca)
@@ -36,7 +36,7 @@ describe Puppet::HTTP::Resolver do
36
36
  end
37
37
 
38
38
  it 'returns a service based on the current server_list setting if the server returns any success codes' do
39
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 202)
39
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 202)
40
40
 
41
41
  service = subject.resolve(session, :ca)
42
42
  expect(service).to be_an_instance_of(Puppet::HTTP::Service::Ca)
@@ -46,24 +46,24 @@ describe Puppet::HTTP::Resolver do
46
46
  it 'includes extra http headers' do
47
47
  Puppet[:http_extra_headers] = 'region:us-west'
48
48
 
49
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master")
49
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server")
50
50
  .with(headers: {'Region' => 'us-west'})
51
51
 
52
52
  subject.resolve(session, :ca)
53
53
  end
54
54
 
55
55
  it 'uses the provided ssl context during resolution' do
56
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 200)
56
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 200)
57
57
 
58
58
  other_ctx = Puppet::SSL::SSLContext.new
59
- expect(client).to receive(:connect).with(URI("https://ca.example.com:8141/status/v1/simple/master"), options: {ssl_context: other_ctx}).and_call_original
59
+ expect(client).to receive(:connect).with(URI("https://ca.example.com:8141/status/v1/simple/server"), options: {ssl_context: other_ctx}).and_call_original
60
60
 
61
61
  subject.resolve(session, :ca, ssl_context: other_ctx)
62
62
  end
63
63
 
64
64
  it 'logs unsuccessful HTTP 500 responses' do
65
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: [500, 'Internal Server Error'])
66
- stub_request(:get, "https://apple.example.com:8142/status/v1/simple/master").to_return(status: 200)
65
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: [500, 'Internal Server Error'])
66
+ stub_request(:get, "https://apple.example.com:8142/status/v1/simple/server").to_return(status: 200)
67
67
 
68
68
  subject.resolve(session, :ca)
69
69
 
@@ -71,8 +71,8 @@ describe Puppet::HTTP::Resolver do
71
71
  end
72
72
 
73
73
  it 'cancels resolution if no servers in server_list are accessible' do
74
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 503)
75
- stub_request(:get, "https://apple.example.com:8142/status/v1/simple/master").to_return(status: 503)
74
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 503)
75
+ stub_request(:get, "https://apple.example.com:8142/status/v1/simple/server").to_return(status: 503)
76
76
 
77
77
  canceled = false
78
78
  canceled_handler = lambda { |cancel| canceled = cancel }
@@ -82,8 +82,8 @@ describe Puppet::HTTP::Resolver do
82
82
  end
83
83
 
84
84
  it 'cycles through server_list until a valid server is found' do
85
- stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 503)
86
- stub_request(:get, "https://apple.example.com:8142/status/v1/simple/master").to_return(status: 200)
85
+ stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 503)
86
+ stub_request(:get, "https://apple.example.com:8142/status/v1/simple/server").to_return(status: 200)
87
87
 
88
88
  service = subject.resolve(session, :ca)
89
89
  expect(service).to be_an_instance_of(Puppet::HTTP::Service::Ca)
@@ -91,8 +91,8 @@ describe Puppet::HTTP::Resolver do
91
91
  end
92
92
 
93
93
  it 'resolves once per session' do
94
- failed = stub_request(:get, "https://ca.example.com:8141/status/v1/simple/master").to_return(status: 503)
95
- passed = stub_request(:get, "https://apple.example.com:8142/status/v1/simple/master").to_return(status: 200)
94
+ failed = stub_request(:get, "https://ca.example.com:8141/status/v1/simple/server").to_return(status: 503)
95
+ passed = stub_request(:get, "https://apple.example.com:8142/status/v1/simple/server").to_return(status: 200)
96
96
 
97
97
  service = subject.resolve(session, :puppet)
98
98
  expect(service).to be_a(Puppet::HTTP::Service::Compiler)
@@ -1,4 +1,3 @@
1
-
2
1
  # coding: utf-8
3
2
  require 'spec_helper'
4
3
  require 'puppet/http'
@@ -12,7 +11,6 @@ describe Puppet::HTTP::Service::Compiler do
12
11
  let(:node) { Puppet::Node.new(certname) }
13
12
  let(:facts) { Puppet::Node::Facts.new(certname) }
14
13
  let(:catalog) { Puppet::Resource::Catalog.new(certname) }
15
- let(:status) { Puppet::Status.new }
16
14
  let(:formatter) { Puppet::Network::FormatHandler.format(:json) }
17
15
 
18
16
  before :each do
@@ -96,14 +94,6 @@ describe Puppet::HTTP::Service::Compiler do
96
94
  subject.post_catalog(certname, environment: 'production', facts: facts, configured_environment: 'agent_specified')
97
95
  end
98
96
 
99
- it 'includes check_environment' do
100
- stub_request(:post, uri)
101
- .with(body: hash_including('check_environment' => 'false'))
102
- .to_return(**catalog_response)
103
-
104
- subject.post_catalog(certname, environment: 'production', facts: facts)
105
- end
106
-
107
97
  it 'includes transaction_uuid' do
108
98
  uuid = "ec3d2844-b236-4287-b0ad-632fbb4d1ff0"
109
99
 
@@ -267,128 +257,6 @@ describe Puppet::HTTP::Service::Compiler do
267
257
  end
268
258
  end
269
259
 
270
- context 'when posting for a v4 catalog' do
271
- let(:uri) {"https://compiler.example.com:8140/puppet/v4/catalog"}
272
- let(:persistence) {{ facts: true, catalog: true }}
273
- let(:facts) {{ 'foo' => 'bar' }}
274
- let(:trusted_facts) {{}}
275
- let(:uuid) { "ec3d2844-b236-4287-b0ad-632fbb4d1ff0" }
276
- let(:job_id) { "1" }
277
- let(:payload) {{
278
- environment: environment,
279
- persistence: persistence,
280
- facts: facts,
281
- trusted_facts: trusted_facts,
282
- transaction_uuid: uuid,
283
- job_id: job_id,
284
- options: {
285
- prefer_requested_environment: false,
286
- capture_logs: false
287
- }
288
- }}
289
- let(:serialized_catalog) {{ 'catalog' => catalog.to_data_hash }.to_json}
290
- let(:catalog_response) {{ body: serialized_catalog, headers: {'Content-Type' => formatter.mime }}}
291
-
292
- it 'includes default HTTP headers' do
293
- stub_request(:post, uri).with do |request|
294
- expect(request.headers).to include({'X-Puppet-Version' => /./, 'User-Agent' => /./})
295
- expect(request.headers).to_not include('X-Puppet-Profiling')
296
- end.to_return(**catalog_response)
297
-
298
- subject.post_catalog4(certname, **payload)
299
- end
300
-
301
- it 'defaults the server and port based on settings' do
302
- Puppet[:server] = 'compiler2.example.com'
303
- Puppet[:serverport] = 8141
304
-
305
- stub_request(:post, "https://compiler2.example.com:8141/puppet/v4/catalog")
306
- .to_return(**catalog_response)
307
-
308
- subject.post_catalog4(certname, **payload)
309
- end
310
-
311
- it 'includes puppet headers set via the :http_extra_headers and :profile settings' do
312
- stub_request(:post, uri).with(headers: {'Example-Header' => 'real-thing', 'another' => 'thing', 'X-Puppet-Profiling' => 'true'}).
313
- to_return(**catalog_response)
314
-
315
- Puppet[:http_extra_headers] = 'Example-Header:real-thing,another:thing'
316
- Puppet[:profile] = true
317
-
318
- subject.post_catalog4(certname, **payload)
319
- end
320
-
321
- it 'returns a deserialized catalog' do
322
- stub_request(:post, uri)
323
- .to_return(**catalog_response)
324
-
325
- _, cat, _ = subject.post_catalog4(certname, **payload)
326
- expect(cat).to be_a(Puppet::Resource::Catalog)
327
- expect(cat.name).to eq(certname)
328
- end
329
-
330
- it 'returns the request response' do
331
- stub_request(:post, uri)
332
- .to_return(**catalog_response)
333
-
334
- resp, _, _ = subject.post_catalog4(certname, **payload)
335
- expect(resp).to be_a(Puppet::HTTP::Response)
336
- end
337
-
338
- it 'raises a response error if unsuccessful' do
339
- stub_request(:post, uri)
340
- .to_return(status: [500, "Server Error"])
341
-
342
- expect {
343
- subject.post_catalog4(certname, **payload)
344
- }.to raise_error do |err|
345
- expect(err).to be_an_instance_of(Puppet::HTTP::ResponseError)
346
- expect(err.message).to eq('Server Error')
347
- expect(err.response.code).to eq(500)
348
- end
349
- end
350
-
351
- it 'raises a response error when server response is not JSON' do
352
- stub_request(:post, uri)
353
- .to_return(body: "this isn't valid JSON", headers: {'Content-Type' => 'application/json'})
354
-
355
- expect {
356
- subject.post_catalog4(certname, **payload)
357
- }.to raise_error do |err|
358
- expect(err).to be_an_instance_of(Puppet::HTTP::SerializationError)
359
- expect(err.message).to match(/Failed to deserialize catalog from puppetserver response/)
360
- end
361
- end
362
-
363
- it 'raises a response error when server response a JSON serialized catalog' do
364
- stub_request(:post, uri)
365
- .to_return(body: {oops: 'bad response data'}.to_json, headers: {'Content-Type' => 'application/json'})
366
-
367
- expect {
368
- subject.post_catalog4(certname, **payload)
369
- }.to raise_error do |err|
370
- expect(err).to be_an_instance_of(Puppet::HTTP::SerializationError)
371
- expect(err.message).to match(/Failed to deserialize catalog from puppetserver response/)
372
- end
373
- end
374
-
375
- it 'raises ArgumentError when the `persistence` hash does not contain required keys' do
376
- payload[:persistence].delete(:facts)
377
- expect { subject.post_catalog4(certname, **payload) }.to raise_error do |err|
378
- expect(err).to be_an_instance_of(ArgumentError)
379
- expect(err.message).to match(/The 'persistence' hash is missing the keys: facts/)
380
- end
381
- end
382
-
383
- it 'raises ArgumentError when `facts` are not a Hash' do
384
- payload[:facts] = Puppet::Node::Facts.new(certname)
385
- expect { subject.post_catalog4(certname, **payload) }.to raise_error do |err|
386
- expect(err).to be_an_instance_of(ArgumentError)
387
- expect(err.message).to match(/Facts must be a Hash not a Puppet::Node::Facts/)
388
- end
389
- end
390
- end
391
-
392
260
  context 'when getting a node' do
393
261
  let(:uri) { %r{/puppet/v3/node/ziggy} }
394
262
  let(:node_response) { { body: formatter.render(node), headers: {'Content-Type' => formatter.mime } } }
@@ -597,67 +465,6 @@ describe Puppet::HTTP::Service::Compiler do
597
465
  end
598
466
  end
599
467
 
600
- context 'when getting status' do
601
- let(:uri) { %r{/puppet/v3/status/ziggy} }
602
- let(:status_response) { { body: formatter.render(status), headers: {'Content-Type' => formatter.mime } } }
603
-
604
- it 'always sends production' do
605
- stub_request(:get, uri)
606
- .with(query: hash_including("environment" => "production"))
607
- .to_return(**status_response)
608
-
609
- subject.get_status(certname)
610
- end
611
-
612
- it 'returns a deserialized status' do
613
- stub_request(:get, uri)
614
- .to_return(**status_response)
615
-
616
- _, s = subject.get_status(certname)
617
- expect(s).to be_a(Puppet::Status)
618
- expect(s.status).to eq("is_alive" => true)
619
- end
620
-
621
- it 'returns the request response' do
622
- stub_request(:get, uri)
623
- .to_return(**status_response)
624
-
625
- resp, _ = subject.get_status(certname)
626
- expect(resp).to be_a(Puppet::HTTP::Response)
627
- end
628
-
629
- it 'raises a response error if unsuccessful' do
630
- stub_request(:get, uri)
631
- .to_return(status: [500, "Server Error"])
632
-
633
- expect {
634
- subject.get_status(certname)
635
- }.to raise_error do |err|
636
- expect(err).to be_an_instance_of(Puppet::HTTP::ResponseError)
637
- expect(err.message).to eq('Server Error')
638
- expect(err.response.code).to eq(500)
639
- end
640
- end
641
-
642
- it 'raises a protocol error if the content-type header is missing' do
643
- stub_request(:get, uri)
644
- .to_return(body: "content-type is missing")
645
-
646
- expect {
647
- subject.get_status(certname)
648
- }.to raise_error(Puppet::HTTP::ProtocolError, /No content type in http response; cannot parse/)
649
- end
650
-
651
- it 'raises a serialization error if the content is invalid' do
652
- stub_request(:get, uri)
653
- .to_return(body: "this isn't valid JSON", headers: {'Content-Type' => 'application/json'})
654
-
655
- expect {
656
- subject.get_status(certname)
657
- }.to raise_error(Puppet::HTTP::SerializationError, /Failed to deserialize Puppet::Status from json/)
658
- end
659
- end
660
-
661
468
  context 'filebucket' do
662
469
  let(:filebucket_file) { Puppet::FileBucket::File.new('file to store') }
663
470
  let(:formatter) { Puppet::Network::FormatHandler.format(:binary) }
@@ -41,7 +41,7 @@ describe Puppet::HTTP::Service::FileServer do
41
41
 
42
42
  context 'retrieving file metadata' do
43
43
  let(:path) { tmpfile('get_file_metadata') }
44
- let(:url) { "https://www.example.com/puppet/v3/file_metadata/:mount/#{path}?checksum_type=md5&environment=testing&links=manage&source_permissions=ignore" }
44
+ let(:url) { "https://www.example.com/puppet/v3/file_metadata/:mount/#{path}?checksum_type=sha256&environment=testing&links=manage&source_permissions=ignore" }
45
45
  let(:filemetadata) { Puppet::FileServing::Metadata.new(path) }
46
46
  let(:request_path) { "/:mount/#{path}"}
47
47
 
@@ -122,7 +122,7 @@ describe Puppet::HTTP::Service::FileServer do
122
122
 
123
123
  context 'retrieving multiple file metadatas' do
124
124
  let(:path) { tmpfile('get_file_metadatas') }
125
- let(:url) { "https://www.example.com/puppet/v3/file_metadatas/:mount/#{path}?checksum_type=md5&links=manage&recurse=false&source_permissions=ignore&environment=testing" }
125
+ let(:url) { "https://www.example.com/puppet/v3/file_metadatas/:mount/#{path}?checksum_type=sha256&links=manage&recurse=false&source_permissions=ignore&environment=testing" }
126
126
  let(:filemetadatas) { [Puppet::FileServing::Metadata.new(path)] }
127
127
  let(:formatter) { Puppet::Network::FormatHandler.format(:json) }
128
128
  let(:request_path) { "/:mount/#{path}"}
@@ -158,7 +158,7 @@ describe Puppet::HTTP::Service::FileServer do
158
158
  end
159
159
 
160
160
  it 'automatically converts an array of parameters to the stringified query' do
161
- url = "https://www.example.com/puppet/v3/file_metadatas/:mount/#{path}?checksum_type=md5&environment=testing&ignore=CVS&ignore=.git&ignore=.hg&links=manage&recurse=false&source_permissions=ignore"
161
+ url = "https://www.example.com/puppet/v3/file_metadatas/:mount/#{path}?checksum_type=sha256&environment=testing&ignore=CVS&ignore=.git&ignore=.hg&links=manage&recurse=false&source_permissions=ignore"
162
162
  stub_request(:get, url).with(
163
163
  headers: {'Accept'=>'application/json, application/x-msgpack, text/pson',}
164
164
  ).to_return(
@@ -12,7 +12,7 @@ describe Puppet::HTTP::Service::Puppetserver do
12
12
 
13
13
  context 'when making requests' do
14
14
  it 'includes default HTTP headers' do
15
- stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/master").with do |request|
15
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/server").with do |request|
16
16
  expect(request.headers).to include({'X-Puppet-Version' => /./, 'User-Agent' => /./})
17
17
  expect(request.headers).to_not include('X-Puppet-Profiling')
18
18
  end.to_return(body: "running", headers: {'Content-Type' => 'text/plain;charset=utf-8'})
@@ -23,7 +23,7 @@ describe Puppet::HTTP::Service::Puppetserver do
23
23
  it 'includes extra headers' do
24
24
  Puppet[:http_extra_headers] = 'region:us-west'
25
25
 
26
- stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/master")
26
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/server")
27
27
  .with(headers: {'Region' => 'us-west'})
28
28
  .to_return(body: "running", headers: {'Content-Type' => 'text/plain;charset=utf-8'})
29
29
 
@@ -36,7 +36,7 @@ describe Puppet::HTTP::Service::Puppetserver do
36
36
  Puppet[:server] = 'compiler2.example.com'
37
37
  Puppet[:serverport] = 8141
38
38
 
39
- stub_request(:get, "https://compiler2.example.com:8141/status/v1/simple/master")
39
+ stub_request(:get, "https://compiler2.example.com:8141/status/v1/simple/server")
40
40
  .to_return(body: "running", headers: {'Content-Type' => 'text/plain;charset=utf-8'})
41
41
 
42
42
  subject.get_simple_status
@@ -44,7 +44,7 @@ describe Puppet::HTTP::Service::Puppetserver do
44
44
  end
45
45
 
46
46
  context 'when getting puppetserver status' do
47
- let(:url) { "https://puppetserver.example.com:8140/status/v1/simple/master" }
47
+ let(:url) { "https://puppetserver.example.com:8140/status/v1/simple/server" }
48
48
 
49
49
  it 'returns the request response and status' do
50
50
  stub_request(:get, url)
@@ -79,4 +79,34 @@ describe Puppet::HTTP::Service::Puppetserver do
79
79
  service.get_simple_status(ssl_context: other_ctx)
80
80
  end
81
81
  end
82
+
83
+ context 'when /status/v1/simple/server returns not found' do
84
+ it 'calls /status/v1/simple/master' do
85
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/server")
86
+ .to_return(status: [404, 'not found: server'])
87
+
88
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/master")
89
+ .to_return(body: "running", headers: {'Content-Type' => 'text/plain;charset=utf-8'})
90
+
91
+ resp, status = subject.get_simple_status
92
+ expect(resp).to be_a(Puppet::HTTP::Response)
93
+ expect(status).to eq('running')
94
+ end
95
+
96
+ it 'raises a response error if fallback is unsuccessful' do
97
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/server")
98
+ .to_return(status: [404, 'not found: server'])
99
+
100
+ stub_request(:get, "https://puppetserver.example.com:8140/status/v1/simple/master")
101
+ .to_return(status: [404, 'not found: master'])
102
+
103
+ expect {
104
+ subject.get_simple_status
105
+ }.to raise_error do |err|
106
+ expect(err).to be_an_instance_of(Puppet::HTTP::ResponseError)
107
+ expect(err.message).to eq('not found: master')
108
+ expect(err.response.code).to eq(404)
109
+ end
110
+ end
111
+ end
82
112
  end
@@ -126,7 +126,6 @@ describe Puppet::HTTP::Service do
126
126
  Puppet::Node::Facts,
127
127
  Puppet::Transaction::Report,
128
128
  Puppet::FileServing::Metadata,
129
- Puppet::Status
130
129
  ].each do |model|
131
130
  expect(service.mime_types(model)).to eq(mimes)
132
131
  end
@@ -127,7 +127,7 @@ describe Puppet::HTTP::Session do
127
127
  Puppet[:server_list] = 'foo.example.com,bar.example.com,baz.example.com'
128
128
  Puppet[:ca_server] = 'caserver.example.com'
129
129
 
130
- allow_any_instance_of(Puppet::Network::Resolver).to receive(:each_srv_record).and_yield('mars.example.srv', 8140)
130
+ allow_any_instance_of(Puppet::HTTP::DNS).to receive(:each_srv_record).and_yield('mars.example.srv', 8140)
131
131
  service = session.route_to(:ca)
132
132
 
133
133
  expect(service.url).to eq(URI("https://mars.example.srv:8140/puppet-ca/v1"))
@@ -147,9 +147,9 @@ describe Puppet::HTTP::Session do
147
147
  Puppet[:use_srv_records] = true
148
148
  Puppet[:server_list] = 'foo.example.com,bar.example.com,baz.example.com'
149
149
 
150
- allow_any_instance_of(Puppet::Network::Resolver).to receive(:each_srv_record)
151
- stub_request(:get, "https://foo.example.com:8140/status/v1/simple/master").to_return(status: 500)
152
- stub_request(:get, "https://bar.example.com:8140/status/v1/simple/master").to_return(status: 200)
150
+ allow_any_instance_of(Puppet::HTTP::DNS).to receive(:each_srv_record)
151
+ stub_request(:get, "https://foo.example.com:8140/status/v1/simple/server").to_return(status: 500)
152
+ stub_request(:get, "https://bar.example.com:8140/status/v1/simple/server").to_return(status: 200)
153
153
 
154
154
  service = session.route_to(:ca)
155
155
 
@@ -160,7 +160,7 @@ describe Puppet::HTTP::Session do
160
160
  Puppet[:server_list] = 'foo.example.com'
161
161
 
162
162
  expect_any_instance_of(Puppet::HTTP::Resolver::Settings).to receive(:resolve).never
163
- stub_request(:get, "https://foo.example.com:8140/status/v1/simple/master").to_return(status: 500)
163
+ stub_request(:get, "https://foo.example.com:8140/status/v1/simple/server").to_return(status: 500)
164
164
 
165
165
  expect {
166
166
  session.route_to(:ca)
@@ -179,7 +179,7 @@ describe Puppet::HTTP::Session do
179
179
  Puppet::HTTP::Service::SERVICE_NAMES.each do |name|
180
180
  it "resolves #{name} using server_list" do
181
181
  Puppet[:server_list] = 'apple.example.com'
182
- req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/master").to_return(status: 200)
182
+ req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/server").to_return(status: 200)
183
183
 
184
184
  session.route_to(name)
185
185
 
@@ -201,7 +201,7 @@ describe Puppet::HTTP::Session do
201
201
 
202
202
  it 'resolves once for all services in a session' do
203
203
  Puppet[:server_list] = 'apple.example.com'
204
- req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/master").to_return(status: 200)
204
+ req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/server").to_return(status: 200)
205
205
 
206
206
  Puppet::HTTP::Service::SERVICE_NAMES.each do |name|
207
207
  session.route_to(name)
@@ -212,7 +212,7 @@ describe Puppet::HTTP::Session do
212
212
 
213
213
  it 'resolves server_list for each new session' do
214
214
  Puppet[:server_list] = 'apple.example.com'
215
- req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/master").to_return(status: 200)
215
+ req = stub_request(:get, "https://apple.example.com:8140/status/v1/simple/server").to_return(status: 200)
216
216
 
217
217
  client.create_session.route_to(:puppet)
218
218
  client.create_session.route_to(:puppet)
@@ -222,6 +222,8 @@ describe Puppet::HTTP::Session do
222
222
  end
223
223
 
224
224
  context 'when retrieving capabilities' do
225
+ let(:response) { Puppet::HTTP::Response.new(uri, 200, 'OK') }
226
+
225
227
  let(:session) do
226
228
  resolver = DummyResolver.new(good_service)
227
229
  described_class.new(client, [resolver])
@@ -242,7 +244,7 @@ describe Puppet::HTTP::Session do
242
244
  end
243
245
 
244
246
  it "supports locales if the cached service's version is 5.3.4 or greater" do
245
- response = Puppet::HTTP::Response.new({'X-Puppet-Version' => '5.3.4'}, uri)
247
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return('5.3.4')
246
248
 
247
249
  session.route_to(:puppet)
248
250
  session.process_response(response)
@@ -251,7 +253,7 @@ describe Puppet::HTTP::Session do
251
253
  end
252
254
 
253
255
  it "does not support locales if the cached service's version is 5.3.3" do
254
- response = Puppet::HTTP::Response.new({'X-Puppet-Version' => '5.3.3'}, uri)
256
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return('5.3.3')
255
257
 
256
258
  session.route_to(:puppet)
257
259
  session.process_response(response)
@@ -260,7 +262,7 @@ describe Puppet::HTTP::Session do
260
262
  end
261
263
 
262
264
  it "does not support locales if the cached service's version is missing" do
263
- response = Puppet::HTTP::Response.new({}, uri)
265
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return(nil)
264
266
 
265
267
  session.route_to(:puppet)
266
268
  session.process_response(response)
@@ -277,7 +279,7 @@ describe Puppet::HTTP::Session do
277
279
  end
278
280
 
279
281
  it "supports json if the cached service's version is 5 or greater" do
280
- response = Puppet::HTTP::Response.new({'X-Puppet-Version' => '5.5.12'}, uri)
282
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return('5.5.12')
281
283
 
282
284
  session.route_to(:puppet)
283
285
  session.process_response(response)
@@ -286,7 +288,7 @@ describe Puppet::HTTP::Session do
286
288
  end
287
289
 
288
290
  it "does not support json if the cached service's version is less than 5.0" do
289
- response = Puppet::HTTP::Response.new({'X-Puppet-Version' => '4.10.1'}, uri)
291
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return('4.10.1')
290
292
 
291
293
  session.route_to(:puppet)
292
294
  session.process_response(response)
@@ -295,7 +297,7 @@ describe Puppet::HTTP::Session do
295
297
  end
296
298
 
297
299
  it "supports json if the cached service's version is missing" do
298
- response = Puppet::HTTP::Response.new({}, uri)
300
+ allow(response).to receive(:[]).with('X-Puppet-Version').and_return(nil)
299
301
 
300
302
  session.route_to(:puppet)
301
303
  session.process_response(response)
@@ -1,14 +1,14 @@
1
1
  require 'spec_helper'
2
2
 
3
- require 'puppet/network/http'
3
+ require 'puppet/http'
4
4
 
5
- describe Puppet::Network::HTTP::Site do
5
+ describe Puppet::HTTP::Site do
6
6
  let(:scheme) { 'https' }
7
7
  let(:host) { 'rubygems.org' }
8
8
  let(:port) { 443 }
9
9
 
10
10
  def create_site(scheme, host, port)
11
- Puppet::Network::HTTP::Site.new(scheme, host, port)
11
+ described_class.new(scheme, host, port)
12
12
  end
13
13
 
14
14
  it 'accepts scheme, host, and port' do