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

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

Potentially problematic release.


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

Files changed (783) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +3 -5
  5. data/Gemfile.lock +39 -51
  6. data/README.md +5 -5
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/README.environment +8 -0
  9. data/ext/build_defaults.yaml +1 -1
  10. data/ext/dbfix.sql +132 -0
  11. data/ext/debian/README.Debian +8 -0
  12. data/ext/debian/README.source +2 -0
  13. data/ext/debian/TODO.Debian +1 -0
  14. data/ext/debian/changelog.erb +1122 -0
  15. data/ext/debian/compat +1 -0
  16. data/ext/debian/control +144 -0
  17. data/ext/debian/copyright +339 -0
  18. data/ext/debian/docs +1 -0
  19. data/ext/debian/fileserver.conf +41 -0
  20. data/ext/debian/puppet-common.dirs +13 -0
  21. data/ext/debian/puppet-common.install +3 -0
  22. data/ext/debian/puppet-common.lintian-overrides +5 -0
  23. data/ext/debian/puppet-common.manpages +28 -0
  24. data/ext/debian/puppet-common.postinst +35 -0
  25. data/ext/debian/puppet-common.postrm +33 -0
  26. data/ext/debian/puppet-el.dirs +1 -0
  27. data/ext/debian/puppet-el.emacsen-install +25 -0
  28. data/ext/debian/puppet-el.emacsen-remove +11 -0
  29. data/ext/debian/puppet-el.emacsen-startup +9 -0
  30. data/ext/debian/puppet-el.install +1 -0
  31. data/ext/debian/puppet-testsuite.install +2 -0
  32. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  33. data/ext/debian/puppet.lintian-overrides +3 -0
  34. data/ext/debian/puppet.logrotate +20 -0
  35. data/ext/debian/puppet.postinst +20 -0
  36. data/ext/debian/puppet.postrm +20 -0
  37. data/ext/debian/puppet.preinst +20 -0
  38. data/ext/debian/puppetmaster-common.install +2 -0
  39. data/ext/debian/puppetmaster-common.manpages +2 -0
  40. data/ext/debian/puppetmaster-common.postinst +6 -0
  41. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  42. data/ext/debian/puppetmaster-passenger.postinst +162 -0
  43. data/ext/debian/puppetmaster-passenger.postrm +61 -0
  44. data/ext/debian/puppetmaster.README.debian +17 -0
  45. data/ext/debian/puppetmaster.default +14 -0
  46. data/ext/debian/puppetmaster.init +137 -0
  47. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  48. data/ext/debian/puppetmaster.postinst +20 -0
  49. data/ext/debian/puppetmaster.postrm +5 -0
  50. data/ext/debian/puppetmaster.preinst +22 -0
  51. data/ext/debian/rules +132 -0
  52. data/ext/debian/source/format +1 -0
  53. data/ext/debian/source/options +1 -0
  54. data/ext/debian/vim-puppet.README.Debian +13 -0
  55. data/ext/debian/vim-puppet.dirs +5 -0
  56. data/ext/debian/vim-puppet.yaml +7 -0
  57. data/ext/debian/watch +2 -0
  58. data/ext/freebsd/puppetd +26 -0
  59. data/ext/freebsd/puppetmasterd +26 -0
  60. data/ext/gentoo/conf.d/puppet +5 -0
  61. data/ext/gentoo/conf.d/puppetmaster +12 -0
  62. data/ext/gentoo/init.d/puppet +38 -0
  63. data/ext/gentoo/init.d/puppetmaster +51 -0
  64. data/ext/gentoo/puppet/fileserver.conf +41 -0
  65. data/ext/ips/puppet-agent +44 -0
  66. data/ext/ips/puppet-master +44 -0
  67. data/ext/ips/puppet.p5m.erb +12 -0
  68. data/ext/ips/puppetagent.xml +42 -0
  69. data/ext/ips/puppetmaster.xml +42 -0
  70. data/ext/ips/rules +19 -0
  71. data/ext/ips/transforms +34 -0
  72. data/ext/ldap/puppet.schema +24 -0
  73. data/ext/logcheck/puppet +23 -0
  74. data/{examples → ext}/nagios/check_puppet.rb +2 -2
  75. data/ext/osx/file_mapping.yaml +28 -0
  76. data/ext/osx/postflight.erb +109 -0
  77. data/ext/osx/preflight.erb +52 -0
  78. data/ext/osx/prototype.plist.erb +38 -0
  79. data/ext/osx/puppet.plist +0 -2
  80. data/ext/project_data.yaml +1 -15
  81. data/ext/redhat/fileserver.conf +41 -0
  82. data/ext/redhat/logrotate +21 -0
  83. data/ext/redhat/puppet.spec.erb +841 -0
  84. data/ext/redhat/server.init +128 -0
  85. data/ext/redhat/server.sysconfig +13 -0
  86. data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
  87. data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
  88. data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
  89. data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
  90. data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
  91. data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
  92. data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
  93. data/ext/solaris/pkginfo +6 -0
  94. data/ext/solaris/smf/puppetd.xml +77 -0
  95. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  96. data/ext/solaris/smf/svc-puppetd +71 -0
  97. data/ext/solaris/smf/svc-puppetmasterd +67 -0
  98. data/ext/suse/puppet.spec +310 -0
  99. data/ext/suse/server.init +173 -0
  100. data/ext/windows/service/daemon.rb +6 -5
  101. data/ext/yaml_nodes.rb +105 -0
  102. data/install.rb +21 -17
  103. data/lib/puppet/application/agent.rb +4 -16
  104. data/lib/puppet/application/apply.rb +4 -24
  105. data/lib/puppet/application/device.rb +100 -106
  106. data/lib/puppet/application/filebucket.rb +13 -10
  107. data/lib/puppet/application/resource.rb +16 -32
  108. data/lib/puppet/application/script.rb +0 -2
  109. data/lib/puppet/application/ssl.rb +1 -13
  110. data/lib/puppet/application.rb +178 -108
  111. data/lib/puppet/application_support.rb +0 -7
  112. data/lib/puppet/concurrent/thread_local_singleton.rb +0 -1
  113. data/lib/puppet/configurer/downloader.rb +1 -2
  114. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  115. data/lib/puppet/configurer.rb +87 -130
  116. data/lib/puppet/confine/variable.rb +1 -1
  117. data/lib/puppet/defaults.rb +128 -226
  118. data/lib/puppet/environments.rb +82 -146
  119. data/lib/puppet/face/facts.rb +5 -103
  120. data/lib/puppet/face/help/action.erb +0 -1
  121. data/lib/puppet/face/help/face.erb +0 -1
  122. data/lib/puppet/face/help.rb +1 -1
  123. data/lib/puppet/face/node/clean.rb +0 -11
  124. data/lib/puppet/face/plugin.rb +5 -8
  125. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  126. data/lib/puppet/ffi/windows/constants.rb +404 -0
  127. data/lib/puppet/ffi/windows/functions.rb +628 -0
  128. data/lib/puppet/ffi/windows/structs.rb +338 -0
  129. data/lib/puppet/ffi/windows.rb +12 -0
  130. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  131. data/lib/puppet/file_serving/configuration.rb +0 -8
  132. data/lib/puppet/file_serving/fileset.rb +2 -14
  133. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  134. data/lib/puppet/file_serving/mount/file.rb +4 -4
  135. data/lib/puppet/file_serving/mount.rb +1 -2
  136. data/lib/puppet/file_system/file_impl.rb +1 -3
  137. data/lib/puppet/file_system/memory_file.rb +1 -8
  138. data/lib/puppet/file_system/windows.rb +2 -4
  139. data/lib/puppet/forge/repository.rb +0 -1
  140. data/lib/puppet/forge.rb +4 -4
  141. data/lib/puppet/functions/all.rb +1 -1
  142. data/lib/puppet/functions/camelcase.rb +1 -1
  143. data/lib/puppet/functions/capitalize.rb +2 -2
  144. data/lib/puppet/functions/downcase.rb +2 -2
  145. data/lib/puppet/functions/empty.rb +0 -8
  146. data/lib/puppet/functions/find_template.rb +2 -2
  147. data/lib/puppet/functions/get.rb +5 -5
  148. data/lib/puppet/functions/group_by.rb +5 -13
  149. data/lib/puppet/functions/lest.rb +1 -1
  150. data/lib/puppet/functions/new.rb +100 -100
  151. data/lib/puppet/functions/partition.rb +4 -12
  152. data/lib/puppet/functions/require.rb +5 -5
  153. data/lib/puppet/functions/sort.rb +3 -3
  154. data/lib/puppet/functions/strftime.rb +0 -1
  155. data/lib/puppet/functions/tree_each.rb +9 -7
  156. data/lib/puppet/functions/type.rb +4 -4
  157. data/lib/puppet/functions/unwrap.rb +2 -17
  158. data/lib/puppet/functions/upcase.rb +2 -2
  159. data/lib/puppet/generate/models/type/type.rb +4 -1
  160. data/lib/puppet/http/client.rb +164 -114
  161. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  162. data/lib/puppet/http/errors.rb +16 -0
  163. data/lib/puppet/http/external_client.rb +5 -7
  164. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  165. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  166. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  167. data/lib/puppet/http/proxy.rb +137 -0
  168. data/lib/puppet/http/redirector.rb +4 -12
  169. data/lib/puppet/http/resolver/server_list.rb +10 -25
  170. data/lib/puppet/http/resolver/settings.rb +4 -7
  171. data/lib/puppet/http/resolver/srv.rb +7 -11
  172. data/lib/puppet/http/resolver.rb +5 -15
  173. data/lib/puppet/http/response.rb +36 -54
  174. data/lib/puppet/http/response_converter.rb +24 -0
  175. data/lib/puppet/http/response_net_http.rb +42 -0
  176. data/lib/puppet/http/retry_after_handler.rb +4 -13
  177. data/lib/puppet/http/service/ca.rb +11 -22
  178. data/lib/puppet/http/service/compiler.rb +23 -144
  179. data/lib/puppet/http/service/file_server.rb +19 -29
  180. data/lib/puppet/http/service/puppetserver.rb +26 -12
  181. data/lib/puppet/http/service/report.rb +8 -10
  182. data/lib/puppet/http/service.rb +12 -26
  183. data/lib/puppet/http/session.rb +11 -20
  184. data/lib/puppet/{network/http → http}/site.rb +1 -2
  185. data/lib/puppet/http.rb +22 -13
  186. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  187. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  188. data/lib/puppet/indirector/facts/facter.rb +6 -6
  189. data/lib/puppet/indirector/facts/rest.rb +3 -22
  190. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  191. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  192. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  193. data/lib/puppet/indirector/file_server.rb +1 -8
  194. data/lib/puppet/indirector/generic_http.rb +0 -11
  195. data/lib/puppet/indirector/indirection.rb +1 -1
  196. data/lib/puppet/indirector/node/rest.rb +2 -4
  197. data/lib/puppet/indirector/report/rest.rb +3 -8
  198. data/lib/puppet/indirector/request.rb +0 -101
  199. data/lib/puppet/indirector/resource/ral.rb +1 -6
  200. data/lib/puppet/indirector/rest.rb +12 -263
  201. data/lib/puppet/indirector/terminus.rb +0 -4
  202. data/lib/puppet/interface/documentation.rb +0 -1
  203. data/lib/puppet/module/plan.rb +1 -0
  204. data/lib/puppet/module/task.rb +1 -1
  205. data/lib/puppet/module.rb +0 -1
  206. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  207. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  208. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  209. data/lib/puppet/module_tool/applications.rb +0 -1
  210. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  211. data/lib/puppet/network/authconfig.rb +2 -96
  212. data/lib/puppet/network/authorization.rb +13 -35
  213. data/lib/puppet/network/formats.rb +0 -67
  214. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  215. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  216. data/lib/puppet/network/http/connection.rb +247 -316
  217. data/lib/puppet/network/http/handler.rb +0 -1
  218. data/lib/puppet/network/http.rb +3 -3
  219. data/lib/puppet/network/http_pool.rb +16 -34
  220. data/lib/puppet/node/environment.rb +11 -10
  221. data/lib/puppet/node.rb +1 -30
  222. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  223. data/lib/puppet/pal/pal_impl.rb +4 -2
  224. data/lib/puppet/parser/ast/leaf.rb +2 -3
  225. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  226. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  227. data/lib/puppet/parser/compiler.rb +0 -198
  228. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  229. data/lib/puppet/parser/resource.rb +0 -69
  230. data/lib/puppet/parser/scope.rb +0 -1
  231. data/lib/puppet/parser/templatewrapper.rb +1 -2
  232. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  233. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  234. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  235. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  236. data/lib/puppet/pops/issues.rb +0 -5
  237. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  238. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  239. data/lib/puppet/pops/model/ast.pp +0 -42
  240. data/lib/puppet/pops/model/ast.rb +0 -291
  241. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  242. data/lib/puppet/pops/model/factory.rb +1 -47
  243. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  244. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  245. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  246. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  247. data/lib/puppet/pops/parser/eparser.rb +1691 -1883
  248. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  249. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  250. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  251. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  252. data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
  253. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  254. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  255. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  256. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  257. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  258. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  259. data/lib/puppet/pops/types/type_parser.rb +0 -4
  260. data/lib/puppet/pops/types/types.rb +1 -2
  261. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  262. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  263. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  264. data/lib/puppet/property/list.rb +1 -1
  265. data/lib/puppet/provider/aix_object.rb +1 -1
  266. data/lib/puppet/provider/exec/posix.rb +4 -16
  267. data/lib/puppet/provider/group/groupadd.rb +10 -18
  268. data/lib/puppet/provider/nameservice.rb +0 -18
  269. data/lib/puppet/provider/package/apt.rb +2 -34
  270. data/lib/puppet/provider/package/aptitude.rb +0 -6
  271. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  272. data/lib/puppet/provider/package/dpkg.rb +0 -10
  273. data/lib/puppet/provider/package/gem.rb +23 -3
  274. data/lib/puppet/provider/package/nim.rb +6 -11
  275. data/lib/puppet/provider/package/pip.rb +3 -16
  276. data/lib/puppet/provider/package/pkg.rb +2 -23
  277. data/lib/puppet/provider/package/portage.rb +1 -1
  278. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  279. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  280. data/lib/puppet/provider/package/yum.rb +1 -1
  281. data/lib/puppet/provider/parsedfile.rb +0 -3
  282. data/lib/puppet/provider/service/base.rb +1 -1
  283. data/lib/puppet/provider/service/debian.rb +0 -2
  284. data/lib/puppet/provider/service/init.rb +5 -5
  285. data/lib/puppet/provider/service/launchd.rb +2 -2
  286. data/lib/puppet/provider/service/redhat.rb +1 -1
  287. data/lib/puppet/provider/service/smf.rb +194 -76
  288. data/lib/puppet/provider/service/systemd.rb +6 -16
  289. data/lib/puppet/provider/service/upstart.rb +5 -5
  290. data/lib/puppet/provider/service/windows.rb +0 -38
  291. data/lib/puppet/provider/user/aix.rb +3 -46
  292. data/lib/puppet/provider/user/directoryservice.rb +11 -34
  293. data/lib/puppet/provider/user/useradd.rb +24 -134
  294. data/lib/puppet/provider.rb +1 -14
  295. data/lib/puppet/reference/configuration.rb +8 -7
  296. data/lib/puppet/reference/indirection.rb +1 -1
  297. data/lib/puppet/reference/providers.rb +2 -2
  298. data/lib/puppet/resource/catalog.rb +1 -14
  299. data/lib/puppet/resource/type.rb +3 -119
  300. data/lib/puppet/resource/type_collection.rb +3 -49
  301. data/lib/puppet/resource.rb +1 -89
  302. data/lib/puppet/runtime.rb +2 -13
  303. data/lib/puppet/settings/environment_conf.rb +0 -1
  304. data/lib/puppet/settings/integer_setting.rb +17 -0
  305. data/lib/puppet/settings/port_setting.rb +15 -0
  306. data/lib/puppet/settings/priority_setting.rb +5 -4
  307. data/lib/puppet/settings.rb +82 -98
  308. data/lib/puppet/ssl/base.rb +3 -5
  309. data/lib/puppet/ssl/certificate.rb +0 -6
  310. data/lib/puppet/ssl/certificate_request.rb +1 -12
  311. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  312. data/lib/puppet/ssl/oids.rb +3 -1
  313. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  314. data/lib/puppet/ssl/state_machine.rb +3 -1
  315. data/lib/puppet/ssl/verifier.rb +2 -0
  316. data/lib/puppet/ssl.rb +10 -6
  317. data/lib/puppet/test/test_helper.rb +2 -7
  318. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  319. data/lib/puppet/transaction/persistence.rb +1 -11
  320. data/lib/puppet/transaction/report.rb +3 -19
  321. data/lib/puppet/transaction.rb +1 -7
  322. data/lib/puppet/type/exec.rb +5 -35
  323. data/lib/puppet/type/file/checksum.rb +1 -1
  324. data/lib/puppet/type/file/mode.rb +0 -6
  325. data/lib/puppet/type/file/selcontext.rb +1 -1
  326. data/lib/puppet/type/file/source.rb +1 -1
  327. data/lib/puppet/type/file.rb +12 -32
  328. data/lib/puppet/type/filebucket.rb +4 -4
  329. data/lib/puppet/type/group.rb +1 -0
  330. data/lib/puppet/type/package.rb +8 -16
  331. data/lib/puppet/type/resources.rb +1 -1
  332. data/lib/puppet/type/service.rb +41 -26
  333. data/lib/puppet/type/tidy.rb +3 -22
  334. data/lib/puppet/type/user.rb +21 -38
  335. data/lib/puppet/type.rb +1 -77
  336. data/lib/puppet/util/autoload.rb +8 -1
  337. data/lib/puppet/util/command_line.rb +1 -1
  338. data/lib/puppet/util/execution.rb +0 -11
  339. data/lib/puppet/util/filetype.rb +2 -2
  340. data/lib/puppet/util/http_proxy.rb +2 -215
  341. data/lib/puppet/util/json.rb +0 -3
  342. data/lib/puppet/util/log.rb +2 -1
  343. data/lib/puppet/util/logging.rb +25 -1
  344. data/lib/puppet/util/monkey_patches.rb +0 -53
  345. data/lib/puppet/util/pidlock.rb +1 -1
  346. data/lib/puppet/util/posix.rb +5 -54
  347. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  348. data/lib/puppet/util/rdoc.rb +0 -7
  349. data/lib/puppet/util/retry_action.rb +1 -1
  350. data/lib/puppet/util/run_mode.rb +9 -1
  351. data/lib/puppet/util/selinux.rb +4 -30
  352. data/lib/puppet/util/suidmanager.rb +2 -1
  353. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  354. data/lib/puppet/util/tagging.rb +0 -1
  355. data/lib/puppet/util/windows/adsi.rb +0 -46
  356. data/lib/puppet/util/windows/daemon.rb +360 -0
  357. data/lib/puppet/util/windows/error.rb +1 -0
  358. data/lib/puppet/util/windows/eventlog.rb +4 -9
  359. data/lib/puppet/util/windows/file.rb +8 -242
  360. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  361. data/lib/puppet/util/windows/principal.rb +2 -9
  362. data/lib/puppet/util/windows/process.rb +4 -226
  363. data/lib/puppet/util/windows/service.rb +9 -460
  364. data/lib/puppet/util/windows/sid.rb +2 -6
  365. data/lib/puppet/util/windows/string.rb +12 -13
  366. data/lib/puppet/util/windows/user.rb +2 -0
  367. data/lib/puppet/util/windows.rb +3 -8
  368. data/lib/puppet/util/yaml.rb +0 -22
  369. data/lib/puppet/util.rb +3 -4
  370. data/lib/puppet/vendor/require_vendored.rb +0 -1
  371. data/lib/puppet/version.rb +1 -1
  372. data/lib/puppet/x509/cert_provider.rb +29 -1
  373. data/lib/puppet/x509.rb +5 -1
  374. data/lib/puppet.rb +20 -25
  375. data/locales/puppet.pot +816 -1637
  376. data/man/man5/puppet.conf.5 +286 -382
  377. data/man/man8/puppet-agent.8 +2 -5
  378. data/man/man8/puppet-apply.8 +2 -2
  379. data/man/man8/puppet-catalog.8 +9 -9
  380. data/man/man8/puppet-config.8 +1 -1
  381. data/man/man8/puppet-describe.8 +1 -1
  382. data/man/man8/puppet-device.8 +2 -2
  383. data/man/man8/puppet-doc.8 +1 -1
  384. data/man/man8/puppet-epp.8 +1 -1
  385. data/man/man8/puppet-facts.8 +8 -51
  386. data/man/man8/puppet-filebucket.8 +4 -4
  387. data/man/man8/puppet-generate.8 +1 -1
  388. data/man/man8/puppet-help.8 +1 -1
  389. data/man/man8/puppet-lookup.8 +1 -1
  390. data/man/man8/puppet-module.8 +3 -60
  391. data/man/man8/puppet-node.8 +5 -5
  392. data/man/man8/puppet-parser.8 +1 -1
  393. data/man/man8/puppet-plugin.8 +1 -1
  394. data/man/man8/puppet-report.8 +5 -5
  395. data/man/man8/puppet-resource.8 +1 -1
  396. data/man/man8/puppet-script.8 +2 -2
  397. data/man/man8/puppet-ssl.8 +1 -5
  398. data/man/man8/puppet.8 +2 -2
  399. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  400. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  401. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  402. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  403. data/spec/fixtures/ssl/ca.pem +35 -57
  404. data/spec/fixtures/ssl/crl.pem +18 -28
  405. data/spec/fixtures/ssl/ec-key.pem +11 -11
  406. data/spec/fixtures/ssl/ec.pem +24 -33
  407. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  408. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  409. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  410. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  411. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  412. data/spec/fixtures/ssl/intermediate.pem +36 -57
  413. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  414. data/spec/fixtures/ssl/pluto.pem +30 -52
  415. data/spec/fixtures/ssl/request-key.pem +57 -107
  416. data/spec/fixtures/ssl/request.pem +26 -47
  417. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  418. data/spec/fixtures/ssl/revoked.pem +30 -52
  419. data/spec/fixtures/ssl/signed-key.pem +57 -107
  420. data/spec/fixtures/ssl/signed.pem +30 -52
  421. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  422. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  423. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  424. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  425. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  426. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  427. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  428. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  429. data/spec/integration/application/agent_spec.rb +51 -271
  430. data/spec/integration/application/apply_spec.rb +1 -20
  431. data/spec/integration/application/filebucket_spec.rb +16 -32
  432. data/spec/integration/application/help_spec.rb +2 -0
  433. data/spec/integration/application/module_spec.rb +0 -21
  434. data/spec/integration/application/plugin_spec.rb +24 -2
  435. data/spec/integration/configurer_spec.rb +2 -18
  436. data/spec/integration/defaults_spec.rb +14 -3
  437. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  438. data/spec/integration/http/client_spec.rb +0 -12
  439. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  440. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  441. data/spec/integration/network/http_pool_spec.rb +3 -21
  442. data/spec/integration/parser/catalog_spec.rb +0 -38
  443. data/spec/integration/parser/node_spec.rb +0 -9
  444. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  445. data/spec/integration/resource/type_collection_spec.rb +6 -2
  446. data/spec/integration/transaction/report_spec.rb +1 -1
  447. data/spec/integration/transaction_spec.rb +9 -4
  448. data/spec/integration/type/exec_spec.rb +45 -70
  449. data/spec/integration/type/file_spec.rb +7 -6
  450. data/spec/integration/type/package_spec.rb +6 -6
  451. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  452. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  453. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  454. data/spec/integration/util/windows/principal_spec.rb +0 -21
  455. data/spec/integration/util/windows/process_spec.rb +9 -1
  456. data/spec/integration/util/windows/registry_spec.rb +10 -6
  457. data/spec/integration/util/windows/security_spec.rb +1 -1
  458. data/spec/lib/matchers/include.rb +27 -0
  459. data/spec/lib/matchers/include_spec.rb +32 -0
  460. data/spec/lib/puppet/test_ca.rb +2 -7
  461. data/spec/lib/puppet_spec/modules.rb +2 -13
  462. data/spec/lib/puppet_spec/puppetserver.rb +1 -16
  463. data/spec/lib/puppet_spec/settings.rb +1 -1
  464. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  465. data/spec/spec_helper.rb +17 -13
  466. data/spec/unit/agent_spec.rb +6 -10
  467. data/spec/unit/application/agent_spec.rb +3 -7
  468. data/spec/unit/application/apply_spec.rb +56 -76
  469. data/spec/unit/application/facts_spec.rb +12 -456
  470. data/spec/unit/application/filebucket_spec.rb +43 -39
  471. data/spec/unit/application/resource_spec.rb +0 -29
  472. data/spec/unit/application/ssl_spec.rb +2 -25
  473. data/spec/unit/application_spec.rb +9 -51
  474. data/spec/unit/certificate_factory_spec.rb +1 -1
  475. data/spec/unit/configurer/downloader_spec.rb +6 -8
  476. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  477. data/spec/unit/configurer_spec.rb +67 -202
  478. data/spec/unit/confine/feature_spec.rb +1 -1
  479. data/spec/unit/confine_spec.rb +2 -8
  480. data/spec/unit/context/trusted_information_spec.rb +2 -6
  481. data/spec/unit/defaults_spec.rb +68 -55
  482. data/spec/unit/environments_spec.rb +68 -408
  483. data/spec/unit/face/node_spec.rb +11 -0
  484. data/spec/unit/face/plugin_spec.rb +73 -33
  485. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  486. data/spec/unit/file_bucket/file_spec.rb +1 -1
  487. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  488. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  489. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  490. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  491. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  492. data/spec/unit/file_system_spec.rb +0 -22
  493. data/spec/unit/forge/module_release_spec.rb +7 -2
  494. data/spec/unit/functions/assert_type_spec.rb +1 -1
  495. data/spec/unit/functions/camelcase_spec.rb +1 -1
  496. data/spec/unit/functions/capitalize_spec.rb +1 -1
  497. data/spec/unit/functions/downcase_spec.rb +1 -1
  498. data/spec/unit/functions/empty_spec.rb +0 -10
  499. data/spec/unit/functions/logging_spec.rb +0 -1
  500. data/spec/unit/functions/lookup_spec.rb +0 -64
  501. data/spec/unit/functions/unwrap_spec.rb +0 -8
  502. data/spec/unit/functions/upcase_spec.rb +1 -1
  503. data/spec/unit/functions4_spec.rb +2 -2
  504. data/spec/unit/gettext/config_spec.rb +0 -12
  505. data/spec/unit/http/client_spec.rb +7 -8
  506. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  507. data/spec/unit/http/external_client_spec.rb +4 -4
  508. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  509. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  510. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  511. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  512. data/spec/unit/http/resolver_spec.rb +13 -13
  513. data/spec/unit/http/service/compiler_spec.rb +0 -193
  514. data/spec/unit/http/service/file_server_spec.rb +3 -3
  515. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  516. data/spec/unit/http/service_spec.rb +0 -1
  517. data/spec/unit/http/session_spec.rb +16 -14
  518. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  519. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  520. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  521. data/spec/unit/indirector/face_spec.rb +1 -0
  522. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  523. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  524. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  525. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  526. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  527. data/spec/unit/indirector/file_server_spec.rb +1 -15
  528. data/spec/unit/indirector/indirection_spec.rb +15 -18
  529. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  530. data/spec/unit/indirector/request_spec.rb +0 -264
  531. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  532. data/spec/unit/indirector/rest_spec.rb +98 -752
  533. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  534. data/spec/unit/indirector_spec.rb +2 -2
  535. data/spec/unit/interface/action_spec.rb +9 -0
  536. data/spec/unit/module_spec.rb +1 -15
  537. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  538. data/spec/unit/network/authconfig_spec.rb +2 -129
  539. data/spec/unit/network/authorization_spec.rb +2 -55
  540. data/spec/unit/network/formats_spec.rb +4 -51
  541. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  542. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  543. data/spec/unit/network/http/api_spec.rb +10 -0
  544. data/spec/unit/network/http/connection_spec.rb +19 -41
  545. data/spec/unit/network/http/handler_spec.rb +0 -1
  546. data/spec/unit/network/http_pool_spec.rb +0 -4
  547. data/spec/unit/node/environment_spec.rb +33 -21
  548. data/spec/unit/node_spec.rb +2 -54
  549. data/spec/unit/parser/compiler_spec.rb +19 -3
  550. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  551. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  552. data/spec/unit/parser/resource_spec.rb +8 -14
  553. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  554. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  555. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  556. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  557. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  558. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  559. data/spec/unit/pops/parser/parse_containers_spec.rb +11 -0
  560. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  561. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  562. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -59
  563. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  564. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  565. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  566. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  567. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  568. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  569. data/spec/unit/pops/visitor_spec.rb +1 -1
  570. data/spec/unit/property_spec.rb +0 -1
  571. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  572. data/spec/unit/provider/nameservice_spec.rb +64 -122
  573. data/spec/unit/provider/package/apt_spec.rb +23 -28
  574. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  575. data/spec/unit/provider/package/base_spec.rb +5 -6
  576. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  577. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  578. data/spec/unit/provider/package/gem_spec.rb +33 -1
  579. data/spec/unit/provider/package/nim_spec.rb +0 -42
  580. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  581. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  582. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  583. data/spec/unit/provider/package/pip_spec.rb +12 -44
  584. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  585. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  586. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  587. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  588. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  589. data/spec/unit/provider/service/init_spec.rb +0 -1
  590. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  591. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  592. data/spec/unit/provider/service/smf_spec.rb +401 -165
  593. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  594. data/spec/unit/provider/service/windows_spec.rb +0 -203
  595. data/spec/unit/provider/user/aix_spec.rb +0 -105
  596. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  597. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  598. data/spec/unit/provider/user/pw_spec.rb +0 -2
  599. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  600. data/spec/unit/provider_spec.rb +12 -22
  601. data/spec/unit/puppet_spec.rb +4 -12
  602. data/spec/unit/resource/catalog_spec.rb +1 -1
  603. data/spec/unit/resource/type_collection_spec.rb +2 -22
  604. data/spec/unit/resource/type_spec.rb +1 -1
  605. data/spec/unit/resource_spec.rb +10 -67
  606. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  607. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  608. data/spec/unit/settings/port_setting_spec.rb +31 -0
  609. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  610. data/spec/unit/settings_spec.rb +79 -110
  611. data/spec/unit/ssl/base_spec.rb +37 -3
  612. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  613. data/spec/unit/ssl/certificate_spec.rb +2 -11
  614. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  615. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  616. data/spec/unit/ssl/verifier_spec.rb +0 -21
  617. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  618. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  619. data/spec/unit/transaction/report_spec.rb +0 -2
  620. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  621. data/spec/unit/transaction_spec.rb +55 -96
  622. data/spec/unit/type/exec_spec.rb +29 -76
  623. data/spec/unit/type/file/checksum_spec.rb +6 -6
  624. data/spec/unit/type/file/content_spec.rb +2 -1
  625. data/spec/unit/type/file/ensure_spec.rb +1 -1
  626. data/spec/unit/type/file/mode_spec.rb +1 -1
  627. data/spec/unit/type/file/selinux_spec.rb +5 -3
  628. data/spec/unit/type/file/source_spec.rb +4 -5
  629. data/spec/unit/type/file_spec.rb +18 -6
  630. data/spec/unit/type/group_spec.rb +6 -13
  631. data/spec/unit/type/package_spec.rb +1 -1
  632. data/spec/unit/type/resources_spec.rb +7 -7
  633. data/spec/unit/type/service_spec.rb +189 -87
  634. data/spec/unit/type/tidy_spec.rb +8 -24
  635. data/spec/unit/type/user_spec.rb +0 -45
  636. data/spec/unit/type_spec.rb +24 -4
  637. data/spec/unit/util/at_fork_spec.rb +2 -2
  638. data/spec/unit/util/autoload_spec.rb +1 -5
  639. data/spec/unit/util/backups_spec.rb +2 -3
  640. data/spec/unit/util/execution_spec.rb +11 -44
  641. data/spec/unit/util/inifile_spec.rb +14 -6
  642. data/spec/unit/util/log_spec.rb +7 -8
  643. data/spec/unit/util/logging_spec.rb +3 -5
  644. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  645. data/spec/unit/util/posix_spec.rb +15 -363
  646. data/spec/unit/util/run_mode_spec.rb +21 -121
  647. data/spec/unit/util/selinux_spec.rb +68 -163
  648. data/spec/unit/util/storage_spec.rb +1 -3
  649. data/spec/unit/util/suidmanager_spec.rb +41 -44
  650. data/spec/unit/util/windows/sid_spec.rb +0 -41
  651. data/spec/unit/util/windows/string_spec.rb +1 -3
  652. data/spec/unit/util/yaml_spec.rb +0 -54
  653. data/spec/unit/util_spec.rb +6 -31
  654. data/tasks/generate_cert_fixtures.rake +3 -12
  655. data/tasks/parallel.rake +3 -3
  656. metadata +137 -288
  657. data/conf/auth.conf +0 -150
  658. data/ext/README.md +0 -13
  659. data/lib/puppet/application/cert.rb +0 -76
  660. data/lib/puppet/application/key.rb +0 -4
  661. data/lib/puppet/application/man.rb +0 -4
  662. data/lib/puppet/application/status.rb +0 -4
  663. data/lib/puppet/face/key.rb +0 -16
  664. data/lib/puppet/face/man.rb +0 -145
  665. data/lib/puppet/face/module/build.rb +0 -14
  666. data/lib/puppet/face/module/generate.rb +0 -14
  667. data/lib/puppet/face/module/search.rb +0 -103
  668. data/lib/puppet/face/status.rb +0 -51
  669. data/lib/puppet/facter_impl.rb +0 -96
  670. data/lib/puppet/ffi/posix/constants.rb +0 -14
  671. data/lib/puppet/ffi/posix/functions.rb +0 -24
  672. data/lib/puppet/ffi/posix.rb +0 -10
  673. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  674. data/lib/puppet/indirector/certificate/file.rb +0 -9
  675. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  676. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  677. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  678. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  679. data/lib/puppet/indirector/file_content/http.rb +0 -22
  680. data/lib/puppet/indirector/key/file.rb +0 -46
  681. data/lib/puppet/indirector/key/memory.rb +0 -7
  682. data/lib/puppet/indirector/ssl_file.rb +0 -162
  683. data/lib/puppet/indirector/status/local.rb +0 -12
  684. data/lib/puppet/indirector/status/rest.rb +0 -27
  685. data/lib/puppet/indirector/status.rb +0 -3
  686. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  687. data/lib/puppet/network/auth_config_parser.rb +0 -90
  688. data/lib/puppet/network/authstore.rb +0 -283
  689. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  690. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  691. data/lib/puppet/network/http/base_pool.rb +0 -36
  692. data/lib/puppet/network/http/compression.rb +0 -127
  693. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  694. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  695. data/lib/puppet/network/rest_controller.rb +0 -2
  696. data/lib/puppet/network/rights.rb +0 -210
  697. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  698. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  699. data/lib/puppet/parser/environment_compiler.rb +0 -202
  700. data/lib/puppet/pops/types/enumeration.rb +0 -16
  701. data/lib/puppet/resource/capability_finder.rb +0 -154
  702. data/lib/puppet/rest/errors.rb +0 -15
  703. data/lib/puppet/rest/response.rb +0 -35
  704. data/lib/puppet/rest/route.rb +0 -85
  705. data/lib/puppet/rest/routes.rb +0 -135
  706. data/lib/puppet/settings/alias_setting.rb +0 -37
  707. data/lib/puppet/ssl/host.rb +0 -505
  708. data/lib/puppet/ssl/key.rb +0 -61
  709. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  710. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  711. data/lib/puppet/ssl/validator.rb +0 -61
  712. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  713. data/lib/puppet/status.rb +0 -40
  714. data/lib/puppet/util/connection.rb +0 -88
  715. data/lib/puppet/util/fact_dif.rb +0 -81
  716. data/lib/puppet/util/ssl.rb +0 -83
  717. data/lib/puppet/util/windows/api_types.rb +0 -309
  718. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  719. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  720. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  721. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  722. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  723. data/lib/puppet/vendor/pathspec/README.md +0 -53
  724. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  725. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  726. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  727. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  728. data/man/man8/puppet-key.8 +0 -126
  729. data/man/man8/puppet-man.8 +0 -76
  730. data/man/man8/puppet-status.8 +0 -108
  731. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  732. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  733. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  734. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  735. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  736. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  737. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  738. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  739. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  740. data/spec/fixtures/ssl/oid-key.pem +0 -117
  741. data/spec/fixtures/ssl/oid.pem +0 -69
  742. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  743. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  744. data/spec/integration/application/resource_spec.rb +0 -64
  745. data/spec/integration/application/ssl_spec.rb +0 -20
  746. data/spec/integration/l10n/compiler_spec.rb +0 -37
  747. data/spec/integration/network/authconfig_spec.rb +0 -256
  748. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  749. data/spec/shared_contexts/l10n.rb +0 -27
  750. data/spec/unit/application/man_spec.rb +0 -52
  751. data/spec/unit/capability_spec.rb +0 -414
  752. data/spec/unit/face/key_spec.rb +0 -9
  753. data/spec/unit/face/module/search_spec.rb +0 -231
  754. data/spec/unit/face/status_spec.rb +0 -9
  755. data/spec/unit/facter_impl_spec.rb +0 -31
  756. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  757. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  758. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  759. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  760. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  761. data/spec/unit/indirector/key/file_spec.rb +0 -78
  762. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  763. data/spec/unit/indirector/status/local_spec.rb +0 -10
  764. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  765. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  766. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  767. data/spec/unit/network/authstore_spec.rb +0 -407
  768. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  769. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  770. data/spec/unit/network/http/compression_spec.rb +0 -240
  771. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  772. data/spec/unit/network/http_spec.rb +0 -9
  773. data/spec/unit/network/rights_spec.rb +0 -439
  774. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  775. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  776. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  777. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  778. data/spec/unit/rest/route_spec.rb +0 -132
  779. data/spec/unit/ssl/host_spec.rb +0 -645
  780. data/spec/unit/ssl/key_spec.rb +0 -173
  781. data/spec/unit/ssl/validator_spec.rb +0 -278
  782. data/spec/unit/status_spec.rb +0 -45
  783. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -175,7 +175,7 @@ Puppet::Type.newtype(:resources) do
175
175
  end
176
176
 
177
177
  # Otherwise, use a sensible default based on the OS family
178
- @system_users_max_uid ||= case Puppet.runtime[:facter].value(:osfamily)
178
+ @system_users_max_uid ||= case Facter.value(:osfamily)
179
179
  when 'OpenBSD', 'FreeBSD'
180
180
  999
181
181
  else
@@ -38,12 +38,6 @@ module Puppet
38
38
  feature :enableable, "The provider can enable and disable the service.",
39
39
  :methods => [:disable, :enable, :enabled?]
40
40
 
41
- feature :delayed_startable, "The provider can set service to delayed start",
42
- :methods => [:delayed_start]
43
-
44
- feature :manual_startable, "The provider can set service to manual start",
45
- :methods => [:manual_start]
46
-
47
41
  feature :controllable, "The provider uses a control variable."
48
42
 
49
43
  feature :flaggable, "The provider can pass flags to the service."
@@ -73,7 +67,7 @@ module Puppet
73
67
  provider.disable
74
68
  end
75
69
 
76
- newvalue(:manual, :event => :service_manual_start, :required_features => :manual_startable) do
70
+ newvalue(:manual, :event => :service_manual_start) do
77
71
  provider.manual_start
78
72
  end
79
73
 
@@ -87,7 +81,8 @@ module Puppet
87
81
  provider.enabled?
88
82
  end
89
83
 
90
- newvalue(:delayed, :event => :service_delayed_start, :required_features => :delayed_startable) do
84
+ # This only works on Windows systems.
85
+ newvalue(:delayed, :event => :service_delayed_start) do
91
86
  provider.delayed_start
92
87
  end
93
88
 
@@ -95,6 +90,12 @@ module Puppet
95
90
  return provider.enabled_insync?(current) if provider.respond_to?(:enabled_insync?)
96
91
  super(current)
97
92
  end
93
+
94
+ validate do |value|
95
+ if (value == :manual || value == :delayed) && !Puppet::Util::Platform.windows?
96
+ raise Puppet::Error.new(_("Setting enable to %{value} is only supported on Microsoft Windows.") % { value: value.to_s} )
97
+ end
98
+ end
98
99
  end
99
100
 
100
101
  # Handle whether the service should actually be running right now.
@@ -138,9 +139,23 @@ module Puppet
138
139
  newproperty(:logonaccount, :required_features => :manages_logon_credentials) do
139
140
  desc "Specify an account for service logon"
140
141
 
141
- def insync?(current)
142
- return provider.logonaccount_insync?(current) if provider.respond_to?(:logonaccount_insync?)
143
- super(current)
142
+ munge do |value|
143
+ return value unless Puppet::Util::Platform.windows?
144
+ return 'LocalSystem' if Puppet::Util::Windows::User::localsystem?(value)
145
+
146
+ value.sub!(/^\.\\/, "#{Puppet::Util::Windows::ADSI.computer_name}\\")
147
+ user_information = Puppet::Util::Windows::SID.name_to_principal(value)
148
+ raise Puppet::Error.new("\"#{value}\" is not a valid account") unless user_information && [:SidTypeUser, :SidTypeWellKnownGroup].include?(user_information.account_type)
149
+
150
+ user_rights = Puppet::Util::Windows::User::get_rights(user_information.domain_account) unless Puppet::Util::Windows::User::default_system_account?(value)
151
+ raise Puppet::Error.new("\"#{user_information.domain_account}\" has the 'Log On As A Service' right set to denied.") if user_rights =~ /SeDenyServiceLogonRight/
152
+ raise Puppet::Error.new("\"#{user_information.domain_account}\" is missing the 'Log On As A Service' right.") unless user_rights.nil? || user_rights =~ /SeServiceLogonRight/
153
+
154
+ if user_information.domain == Puppet::Util::Windows::ADSI.computer_name
155
+ ".\\#{user_information.account}"
156
+ else
157
+ user_information.domain_account
158
+ end
144
159
  end
145
160
  end
146
161
 
@@ -148,7 +163,18 @@ module Puppet
148
163
  desc "Specify a password for service logon. Default value is an empty string (when logonaccount is specified)."
149
164
 
150
165
  validate do |value|
151
- raise ArgumentError, _("Passwords cannot include ':'") if value.is_a?(String) && value.include?(":")
166
+ raise Puppet::Error.new(_"The 'logonaccount' parameter is mandatory when setting 'logonpassword'.") unless @resource[:logonaccount]
167
+ raise ArgumentError, _("Passwords cannot include ':'") if value.is_a?(String) and value.include?(":")
168
+ return unless Puppet::Util::Platform.windows?
169
+
170
+ is_a_predefined_local_account = Puppet::Util::Windows::User::default_system_account?(@resource[:logonaccount]) || @resource[:logonaccount] == 'LocalSystem'
171
+
172
+ account_info = @resource[:logonaccount].split("\\")
173
+ able_to_logon = Puppet::Util::Windows::User.password_is?(account_info[1], value, account_info[0]) unless is_a_predefined_local_account
174
+
175
+ raise Puppet::Error.new("The given password is invalid for user '#{@resource[:logonaccount]}'.") unless is_a_predefined_local_account || able_to_logon
176
+
177
+ provider.logonpassword=(value)
152
178
  end
153
179
 
154
180
  sensitive true
@@ -272,14 +298,9 @@ module Puppet
272
298
 
273
299
  newparam(:timeout, :required_features => :configurable_timeout) do
274
300
  desc "Specify an optional minimum timeout (in seconds) for puppet to wait when syncing service properties"
275
- defaultto { provider.respond_to?(:default_timeout) ? provider.default_timeout : 10 }
276
-
277
- munge do |value|
278
- begin
279
- value = value.to_i
280
- raise if value < 1
281
- value
282
- rescue
301
+ defaultto { provider.class.respond_to?(:default_timeout) ? provider.default_timeout : 10 }
302
+ validate do |value|
303
+ if (not value.is_a? Integer) || value < 1
283
304
  raise Puppet::Error.new(_("\"%{value}\" is not a positive integer: the timeout parameter must be specified as a positive integer") % { value: value })
284
305
  end
285
306
  end
@@ -299,11 +320,5 @@ module Puppet
299
320
  def self.needs_ensure_retrieved
300
321
  false
301
322
  end
302
-
303
- validate do
304
- if @parameters[:logonpassword] && @parameters[:logonaccount].nil?
305
- raise Puppet::Error.new(_"The 'logonaccount' parameter is mandatory when setting 'logonpassword'.")
306
- end
307
- end
308
323
  end
309
324
  end
@@ -50,22 +50,6 @@ Puppet::Type.newtype(:tidy) do
50
50
  end
51
51
  end
52
52
 
53
- newparam(:max_files) do
54
- desc "In case the resource is a directory and the recursion is enabled, puppet will
55
- generate a new resource for each file file found, possible leading to
56
- an excessive number of resources generated without any control.
57
-
58
- Setting `max_files` will check the number of file resources that
59
- will eventually be created and will raise a resource argument error if the
60
- limit will be exceeded.
61
-
62
- Use value `0` to disable the check. In this case, a warning is logged if
63
- the number of files exceeds 1000."
64
-
65
- defaultto 0
66
- newvalues(/^[0-9]+$/)
67
- end
68
-
69
53
  newparam(:matches) do
70
54
  desc <<-'EOT'
71
55
  One or more (shell type) file glob patterns, which restrict
@@ -144,7 +128,7 @@ Puppet::Type.newtype(:tidy) do
144
128
 
145
129
  def tidy?(path, stat)
146
130
  # If the file's older than we allow, we should get rid of it.
147
- (Time.now.to_i - stat.send(resource[:type]).to_i) >= value
131
+ (Time.now.to_i - stat.send(resource[:type]).to_i) > value
148
132
  end
149
133
 
150
134
  munge do |age|
@@ -272,12 +256,9 @@ Puppet::Type.newtype(:tidy) do
272
256
 
273
257
  case self[:recurse]
274
258
  when Integer, /^\d+$/
275
- parameter = { :max_files => self[:max_files],
276
- :recurse => true,
277
- :recurselimit => self[:recurse] }
259
+ parameter = { :recurse => true, :recurselimit => self[:recurse] }
278
260
  when true, :true, :inf
279
- parameter = { :max_files => self[:max_files],
280
- :recurse => true }
261
+ parameter = { :recurse => true }
281
262
  end
282
263
 
283
264
  if parameter
@@ -1,4 +1,5 @@
1
1
  require 'etc'
2
+ require 'facter'
2
3
  require 'puppet/parameter/boolean'
3
4
  require 'puppet/property/list'
4
5
  require 'puppet/property/ordered_list'
@@ -66,7 +67,6 @@ module Puppet
66
67
  newproperty(:ensure, :parent => Puppet::Property::Ensure) do
67
68
  newvalue(:present, :event => :user_created) do
68
69
  provider.create
69
- @resource.generate
70
70
  end
71
71
 
72
72
  newvalue(:absent, :event => :user_removed) do
@@ -695,7 +695,6 @@ module Puppet
695
695
 
696
696
  def generate
697
697
  if !self[:purge_ssh_keys].empty?
698
- return [] if self[:ensure] == :present && !provider.exists?
699
698
  if Puppet::Type.type(:ssh_authorized_key).nil?
700
699
  warning _("Ssh_authorized_key type is not available. Cannot purge SSH keys.")
701
700
  else
@@ -744,6 +743,25 @@ module Puppet
744
743
  end
745
744
  raise ArgumentError, _("purge_ssh_keys must be true, false, or an array of file names, not %{value}") % { value: value.inspect }
746
745
  end
746
+
747
+ munge do |value|
748
+ # Resolve string, boolean and symbol forms of true and false to a
749
+ # single representation.
750
+ test_sym = value.to_s.intern
751
+ value = test_sym if [:true, :false].include? test_sym
752
+
753
+ return [] if value == :false
754
+ home = resource[:home] || Dir.home(resource[:name])
755
+
756
+ return [ "#{home}/.ssh/authorized_keys" ] if value == :true
757
+ # value is an array - munge each value
758
+ [ value ].flatten.map do |entry|
759
+ # make sure frozen value is duplicated by using a gsub, second mutating gsub! is then ok
760
+ entry = entry.gsub(/^~\//, "#{home}/")
761
+ entry.gsub!(/^%h\//, "#{home}/")
762
+ entry
763
+ end
764
+ end
747
765
  end
748
766
 
749
767
  newproperty(:loginclass, :required_features => :manages_loginclass) do
@@ -765,7 +783,7 @@ module Puppet
765
783
  # @see generate
766
784
  # @api private
767
785
  def find_unmanaged_keys
768
- munged_unmanaged_keys.
786
+ self[:purge_ssh_keys].
769
787
  select { |f| File.readable?(f) }.
770
788
  map { |f| unknown_keys_in_file(f) }.
771
789
  flatten.each do |res|
@@ -777,41 +795,6 @@ module Puppet
777
795
  end
778
796
  end
779
797
 
780
- def munged_unmanaged_keys
781
- value = self[:purge_ssh_keys]
782
-
783
- # Resolve string, boolean and symbol forms of true and false to a
784
- # single representation.
785
- test_sym = value.to_s.intern
786
- value = test_sym if [:true, :false].include? test_sym
787
-
788
- return [] if value == :false
789
-
790
- home = self[:home]
791
- begin
792
- home ||= provider.home
793
- rescue
794
- Puppet.debug("User '#{self[:name]}' does not exist")
795
- end
796
-
797
- if home.to_s.empty? || !Dir.exist?(home.to_s)
798
- if value == :true || [ value ].flatten.any? { |v| v.start_with?('~/', '%h/') }
799
- Puppet.debug("User '#{self[:name]}' has no home directory set to purge ssh keys from.")
800
- return []
801
- end
802
- end
803
-
804
- return [ "#{home}/.ssh/authorized_keys" ] if value == :true
805
-
806
- # value is an array - munge each value
807
- [ value ].flatten.map do |entry|
808
- # make sure frozen value is duplicated by using a gsub, second mutating gsub! is then ok
809
- entry = entry.gsub(/^~\//, "#{home}/")
810
- entry.gsub!(/^%h\//, "#{home}/")
811
- entry
812
- end
813
- end
814
-
815
798
  # Parse an ssh authorized keys file superficially, extract the comments
816
799
  # on the keys. These are considered names of possible ssh_authorized_keys
817
800
  # resources. Keys that are managed by the present catalog are ignored.
data/lib/puppet/type.rb CHANGED
@@ -114,29 +114,6 @@ class Type
114
114
  attr_reader :properties
115
115
  end
116
116
 
117
- # Allow declaring that a type is actually a capability
118
- class << self
119
- # @deprecated application orchestration will be removed in puppet 7
120
- attr_accessor :is_capability
121
-
122
- # @deprecated application orchestration will be removed in puppet 7
123
- def is_capability?
124
- c = is_capability
125
- c.nil? ? false : c
126
- end
127
- end
128
-
129
- # Returns whether this type represents an application instance; since
130
- # only defined types, i.e., instances of Puppet::Resource::Type can
131
- # represent application instances, this implementation always returns
132
- # +false+. Having this method though makes code checking whether a
133
- # resource is an application instance simpler
134
- #
135
- # @deprecated application orchestration will be removed in puppet 7
136
- def self.application?
137
- false
138
- end
139
-
140
117
  # Returns all the attribute names of the type in the appropriate order.
141
118
  # The {key_attributes} come first, then the {provider}, then the {properties}, and finally
142
119
  # the {parameters} and {metaparams},
@@ -1295,7 +1272,7 @@ class Type
1295
1272
  like it does when running normally. However, if a resource attribute is not in
1296
1273
  the desired state (as declared in the catalog), Puppet will take no
1297
1274
  action, and will instead report the changes it _would_ have made. These
1298
- simulated changes will appear in the report sent to the primary Puppet server, or
1275
+ simulated changes will appear in the report sent to the puppet master, or
1299
1276
  be shown on the console if running puppet agent or puppet apply in the
1300
1277
  foreground. The simulated changes will not send refresh events to any
1301
1278
  subscribing or notified resources, although Puppet will log that a refresh
@@ -1720,59 +1697,6 @@ class Type
1720
1697
  }
1721
1698
  end
1722
1699
 
1723
- # @deprecated application orchestration will be removed in puppet 7
1724
- newmetaparam(:export, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :NONE}) do
1725
- desc <<EOS
1726
- Export a capability resource.
1727
-
1728
- The value of this parameter must be a reference to a capability resource,
1729
- or an array of such references. Each capability resource referenced here
1730
- will be instantiated in the node catalog and exported to consumers of this
1731
- resource. The title of the capability resource will be the title given in
1732
- the reference, and all other attributes of the resource will be filled
1733
- according to the corresponding produces statement.
1734
-
1735
- It is an error if this metaparameter references resources whose type is not
1736
- a capability type, or of there is no produces clause for the type of the
1737
- current resource and the capability resource mentioned in this parameter.
1738
-
1739
- For example:
1740
-
1741
- define web(..) { .. }
1742
- Web produces Http { .. }
1743
- web { server:
1744
- export => Http[main_server]
1745
- }
1746
- EOS
1747
- end
1748
-
1749
- # @deprecated application orchestration will be removed in puppet 7
1750
- newmetaparam(:consume, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :NONE}) do
1751
- desc <<EOS
1752
- Consume a capability resource.
1753
-
1754
- The value of this parameter must be a reference to a capability resource,
1755
- or an array of such references. Each capability resource referenced here
1756
- must have been exported by another resource in the same environment.
1757
-
1758
- The referenced capability resources will be looked up, added to the
1759
- current node catalog, and processed following the underlying consumes
1760
- clause.
1761
-
1762
- It is an error if this metaparameter references resources whose type is not
1763
- a capability type, or of there is no consumes clause for the type of the
1764
- current resource and the capability resource mentioned in this parameter.
1765
-
1766
- For example:
1767
-
1768
- define web(..) { .. }
1769
- Web consumes Sql { .. }
1770
- web { server:
1771
- consume => Sql[my_db]
1772
- }
1773
- EOS
1774
- end
1775
-
1776
1700
  ###############################
1777
1701
  # All of the provider plumbing for the resource types.
1778
1702
  require 'puppet/provider'
@@ -166,7 +166,14 @@ class Puppet::Util::Autoload
166
166
  # Normalize a path. This converts ALT_SEPARATOR to SEPARATOR on Windows
167
167
  # and eliminates unnecessary parts of a path.
168
168
  def cleanpath(path)
169
- Pathname.new(path).cleanpath.to_s
169
+ # There are two cases here because cleanpath does not handle absolute
170
+ # paths correctly on windows (c:\ and c:/ are treated as distinct) but
171
+ # we don't want to convert relative paths to absolute
172
+ if Puppet::Util.absolute_path?(path)
173
+ File.expand_path(path)
174
+ else
175
+ Pathname.new(path).cleanpath.to_s
176
+ end
170
177
  end
171
178
  end
172
179
 
@@ -135,7 +135,7 @@ module Puppet
135
135
 
136
136
  # Puppet requires Facter, which initializes its lookup paths. Reset Facter to
137
137
  # pickup the new $LOAD_PATH.
138
- Puppet.runtime[:facter].reset
138
+ Facter.reset
139
139
  end
140
140
  end
141
141
 
@@ -94,17 +94,6 @@ module Puppet::Util::Execution
94
94
  end
95
95
  private_class_method :exitstatus
96
96
 
97
- # Wraps execution of {execute} with mapping of exception to given exception (and output as argument).
98
- # @raise [exception] under same conditions as {execute}, but raises the given `exception` with the output as argument
99
- # @return (see execute)
100
- # @api public
101
- # @deprecated
102
- def self.execfail(command, exception)
103
- execute(command)
104
- rescue Puppet::ExecutionFailure => detail
105
- raise exception, detail.message, detail.backtrace
106
- end
107
-
108
97
  # Default empty options for {execute}
109
98
  NoOptionsSpecified = {}
110
99
 
@@ -215,7 +215,7 @@ class Puppet::Util::FileType
215
215
  # Remove a specific @path's cron tab.
216
216
  def remove
217
217
  cmd = "#{cmdbase} -r"
218
- if %w{Darwin FreeBSD DragonFly}.include?(Puppet.runtime[:facter].value("operatingsystem"))
218
+ if %w{Darwin FreeBSD DragonFly}.include?(Facter.value("operatingsystem"))
219
219
  cmd = "/bin/echo yes | #{cmd}"
220
220
  end
221
221
 
@@ -244,7 +244,7 @@ class Puppet::Util::FileType
244
244
  # Only add the -u flag when the @path is different. Fedora apparently
245
245
  # does not think I should be allowed to set the @path to my own user name
246
246
  def cmdbase
247
- if @uid == Puppet::Util::SUIDManager.uid || Puppet.runtime[:facter].value(:operatingsystem) == "HP-UX"
247
+ if @uid == Puppet::Util::SUIDManager.uid || Facter.value(:operatingsystem) == "HP-UX"
248
248
  return "crontab"
249
249
  else
250
250
  return "crontab -u #{@path}"
@@ -1,217 +1,4 @@
1
- require 'uri'
2
- require 'puppet/ssl/openssl_loader'
3
1
  require 'puppet/http'
4
2
 
5
- module Puppet::Util::HttpProxy
6
- def self.proxy(uri)
7
- if http_proxy_host && !no_proxy?(uri)
8
- Net::HTTP.new(uri.host, uri.port, self.http_proxy_host, self.http_proxy_port, self.http_proxy_user, self.http_proxy_password)
9
- else
10
- http = Net::HTTP.new(uri.host, uri.port, nil, nil, nil, nil)
11
- # Net::HTTP defaults the proxy port even though we said not to
12
- # use one. Set it to nil so caller is not surprised
13
- http.proxy_port = nil
14
- http
15
- end
16
- end
17
-
18
- def self.http_proxy_env
19
- # Returns a URI object if proxy is set, or nil
20
- proxy_env = ENV["http_proxy"] || ENV["HTTP_PROXY"]
21
- begin
22
- return URI.parse(proxy_env) if proxy_env
23
- rescue URI::InvalidURIError
24
- return nil
25
- end
26
- return nil
27
- end
28
-
29
- # The documentation around the format of the no_proxy variable seems
30
- # inconsistent. Some suggests the use of the * as a way of matching any
31
- # hosts under a domain, e.g.:
32
- # *.example.com
33
- # Other documentation suggests that just a leading '.' indicates a domain
34
- # level exclusion, e.g.:
35
- # .example.com
36
- # We'll accommodate both here.
37
- def self.no_proxy?(dest)
38
- no_proxy = self.no_proxy
39
- unless no_proxy
40
- return false
41
- end
42
-
43
- unless dest.is_a? URI
44
- begin
45
- dest = URI.parse(dest)
46
- rescue URI::InvalidURIError
47
- return false
48
- end
49
- end
50
-
51
- no_proxy.split(/\s*,\s*/).each do |d|
52
- host, port = d.split(':')
53
- host = Regexp.escape(host).gsub('\*', '.*')
54
-
55
- #If this no_proxy entry specifies a port, we want to match it against
56
- #the destination port. Otherwise just match hosts.
57
- if port
58
- no_proxy_regex = %r(#{host}:#{port}$)
59
- dest_string = "#{dest.host}:#{dest.port}"
60
- else
61
- no_proxy_regex = %r(#{host}$)
62
- dest_string = "#{dest.host}"
63
- end
64
-
65
- if no_proxy_regex.match(dest_string)
66
- return true
67
- end
68
- end
69
-
70
- return false
71
- end
72
-
73
- def self.http_proxy_host
74
- env = self.http_proxy_env
75
-
76
- if env and env.host
77
- return env.host
78
- end
79
-
80
- if Puppet.settings[:http_proxy_host] == 'none'
81
- return nil
82
- end
83
-
84
- return Puppet.settings[:http_proxy_host]
85
- end
86
-
87
- def self.http_proxy_port
88
- env = self.http_proxy_env
89
-
90
- if env and env.port
91
- return env.port
92
- end
93
-
94
- return Puppet.settings[:http_proxy_port]
95
- end
96
-
97
- def self.http_proxy_user
98
- env = self.http_proxy_env
99
-
100
- if env and env.user
101
- return env.user
102
- end
103
-
104
- if Puppet.settings[:http_proxy_user] == 'none'
105
- return nil
106
- end
107
-
108
- return Puppet.settings[:http_proxy_user]
109
- end
110
-
111
- def self.http_proxy_password
112
- env = self.http_proxy_env
113
-
114
- if env and env.password
115
- return env.password
116
- end
117
-
118
- if Puppet.settings[:http_proxy_user] == 'none' or Puppet.settings[:http_proxy_password] == 'none'
119
- return nil
120
- end
121
-
122
- return Puppet.settings[:http_proxy_password]
123
- end
124
-
125
- def self.no_proxy
126
- no_proxy_env = ENV["no_proxy"] || ENV["NO_PROXY"]
127
-
128
- if no_proxy_env
129
- return no_proxy_env
130
- end
131
-
132
- if Puppet.settings[:no_proxy] == 'none'
133
- return nil
134
- end
135
-
136
- return Puppet.settings[:no_proxy]
137
- end
138
-
139
- # Return a Net::HTTP::Proxy object.
140
- #
141
- # This method optionally configures SSL correctly if the URI scheme is
142
- # 'https', including setting up the root certificate store so remote server
143
- # SSL certificates can be validated.
144
- #
145
- # @param [URI] uri The URI that is to be accessed.
146
- # @return [Net::HTTP::Proxy] object constructed tailored for the passed URI
147
- def self.get_http_object(uri)
148
- proxy = proxy(uri)
149
-
150
- if uri.scheme == 'https'
151
- cert_store = OpenSSL::X509::Store.new
152
- cert_store.set_default_paths
153
-
154
- proxy.use_ssl = true
155
- proxy.verify_mode = OpenSSL::SSL::VERIFY_PEER
156
- proxy.cert_store = cert_store
157
- end
158
-
159
- if Puppet[:http_debug]
160
- proxy.set_debug_output($stderr)
161
- end
162
-
163
- proxy.open_timeout = Puppet[:http_connect_timeout]
164
- proxy.read_timeout = Puppet[:http_read_timeout]
165
-
166
- proxy
167
- end
168
-
169
- # Retrieve a document through HTTP(s), following redirects if necessary. The
170
- # returned response body may be compressed, and it is the caller's
171
- # responsibility to decompress it based on the 'content-encoding' header.
172
- #
173
- # Based on the the client implementation in the HTTP pool.
174
- #
175
- # @see Puppet::Network::HTTP::Connection#request_with_redirects
176
- #
177
- # @param [URI] uri The address of the resource to retrieve.
178
- # @param [symbol] method The name of the Net::HTTP method to use, typically :get, :head, :post etc.
179
- # @param [FixNum] redirect_limit The number of redirections that can be followed.
180
- # @return [Net::HTTPResponse] a response object
181
- def self.request_with_redirects(uri, method, redirect_limit = 10, &block)
182
- current_uri = uri
183
- response = nil
184
-
185
- 0.upto(redirect_limit) do |redirection|
186
- proxy = get_http_object(current_uri)
187
-
188
- headers = { 'Accept' => '*/*', 'User-Agent' => Puppet[:http_user_agent] }
189
- if Puppet.features.zlib?
190
- headers["Accept-Encoding"] = Puppet::HTTP::ACCEPT_ENCODING
191
- end
192
-
193
- response = proxy.send(:head, current_uri, headers)
194
- Puppet.debug("HTTP HEAD request to #{current_uri} returned #{response.code} #{response.message}")
195
-
196
- if [301, 302, 307].include?(response.code.to_i)
197
- # handle the redirection
198
- current_uri = URI.parse(response['location'])
199
- next
200
- end
201
-
202
- if method != :head
203
- if block_given?
204
- response = proxy.send("request_#{method}".to_sym, current_uri, headers, &block)
205
- else
206
- response = proxy.send(method, current_uri, headers)
207
- end
208
-
209
- Puppet.debug("HTTP #{method.to_s.upcase} request to #{current_uri} returned #{response.code} #{response.message}")
210
- end
211
-
212
- return response
213
- end
214
-
215
- raise RedirectionLimitExceededException, _("Too many HTTP redirections for %{uri}") % { uri: uri }
216
- end
217
- end
3
+ # for backwards compatibility
4
+ Puppet::Util::HttpProxy = Puppet::HTTP::Proxy
@@ -60,9 +60,6 @@ module Puppet::Util
60
60
  def self.dump(object, options = {})
61
61
  if defined? MultiJson
62
62
  MultiJson.dump(object, options)
63
- elsif options.is_a?(JSON::State)
64
- # we're being called recursively
65
- object.to_json(options)
66
63
  else
67
64
  options.merge!(::JSON::PRETTY_STATE_PROTOTYPE.to_h) if options.delete(:pretty)
68
65
  object.to_json(options)
@@ -2,6 +2,7 @@ require 'puppet/util/tagging'
2
2
  require 'puppet/util/classgen'
3
3
  require 'puppet/util/psych_support'
4
4
  require 'puppet/network/format_support'
5
+ require 'facter'
5
6
 
6
7
  # Pass feedback to the user. Log levels are modeled after syslog's, and it is
7
8
  # expected that that will be the most common log destination. Supports
@@ -110,7 +111,7 @@ class Puppet::Util::Log
110
111
  @loglevel = @levels.index(level)
111
112
 
112
113
  # Enable or disable Facter debugging
113
- Puppet.runtime[:facter].debugging(level == :debug)
114
+ Facter.debugging(level == :debug) if Facter.respond_to? :debugging
114
115
  end
115
116
 
116
117
  def Log.levels