puppet 6.24.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 (613) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +1 -3
  5. data/Gemfile.lock +35 -47
  6. data/README.md +5 -5
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/build_defaults.yaml +1 -1
  9. data/ext/osx/file_mapping.yaml +0 -5
  10. data/ext/osx/puppet.plist +0 -2
  11. data/ext/project_data.yaml +1 -15
  12. data/ext/redhat/puppet.spec.erb +0 -1
  13. data/ext/windows/service/daemon.rb +6 -5
  14. data/install.rb +21 -17
  15. data/lib/puppet.rb +14 -23
  16. data/lib/puppet/application.rb +178 -108
  17. data/lib/puppet/application/agent.rb +4 -12
  18. data/lib/puppet/application/apply.rb +2 -4
  19. data/lib/puppet/application/device.rb +100 -106
  20. data/lib/puppet/application/filebucket.rb +13 -10
  21. data/lib/puppet/application/resource.rb +3 -17
  22. data/lib/puppet/application/script.rb +0 -2
  23. data/lib/puppet/application/ssl.rb +1 -13
  24. data/lib/puppet/application_support.rb +0 -7
  25. data/lib/puppet/configurer.rb +30 -45
  26. data/lib/puppet/configurer/downloader.rb +1 -2
  27. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  28. data/lib/puppet/defaults.rb +100 -192
  29. data/lib/puppet/environments.rb +60 -84
  30. data/lib/puppet/face/facts.rb +5 -103
  31. data/lib/puppet/face/help.rb +1 -1
  32. data/lib/puppet/face/help/action.erb +0 -1
  33. data/lib/puppet/face/help/face.erb +0 -1
  34. data/lib/puppet/face/node/clean.rb +0 -11
  35. data/lib/puppet/face/plugin.rb +5 -8
  36. data/lib/puppet/ffi/windows.rb +12 -0
  37. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  38. data/lib/puppet/ffi/windows/constants.rb +404 -0
  39. data/lib/puppet/ffi/windows/functions.rb +628 -0
  40. data/lib/puppet/ffi/windows/structs.rb +338 -0
  41. data/lib/puppet/file_serving/configuration.rb +0 -5
  42. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  43. data/lib/puppet/file_serving/fileset.rb +2 -14
  44. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  45. data/lib/puppet/file_serving/mount.rb +1 -2
  46. data/lib/puppet/file_system/file_impl.rb +1 -1
  47. data/lib/puppet/file_system/memory_file.rb +1 -8
  48. data/lib/puppet/file_system/windows.rb +2 -4
  49. data/lib/puppet/forge.rb +3 -3
  50. data/lib/puppet/forge/repository.rb +0 -1
  51. data/lib/puppet/functions/all.rb +1 -1
  52. data/lib/puppet/functions/camelcase.rb +1 -1
  53. data/lib/puppet/functions/capitalize.rb +2 -2
  54. data/lib/puppet/functions/downcase.rb +2 -2
  55. data/lib/puppet/functions/empty.rb +0 -8
  56. data/lib/puppet/functions/get.rb +5 -5
  57. data/lib/puppet/functions/group_by.rb +5 -13
  58. data/lib/puppet/functions/lest.rb +1 -1
  59. data/lib/puppet/functions/new.rb +100 -100
  60. data/lib/puppet/functions/partition.rb +4 -12
  61. data/lib/puppet/functions/require.rb +5 -5
  62. data/lib/puppet/functions/sort.rb +3 -3
  63. data/lib/puppet/functions/strftime.rb +0 -1
  64. data/lib/puppet/functions/tree_each.rb +9 -7
  65. data/lib/puppet/functions/type.rb +4 -4
  66. data/lib/puppet/functions/unwrap.rb +2 -17
  67. data/lib/puppet/functions/upcase.rb +2 -2
  68. data/lib/puppet/generate/models/type/type.rb +4 -1
  69. data/lib/puppet/http.rb +22 -13
  70. data/lib/puppet/http/client.rb +164 -114
  71. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  72. data/lib/puppet/http/errors.rb +16 -0
  73. data/lib/puppet/http/external_client.rb +5 -7
  74. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  75. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  76. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  77. data/lib/puppet/http/proxy.rb +137 -0
  78. data/lib/puppet/http/redirector.rb +4 -12
  79. data/lib/puppet/http/resolver.rb +5 -15
  80. data/lib/puppet/http/resolver/server_list.rb +10 -25
  81. data/lib/puppet/http/resolver/settings.rb +4 -7
  82. data/lib/puppet/http/resolver/srv.rb +7 -11
  83. data/lib/puppet/http/response.rb +36 -54
  84. data/lib/puppet/http/response_converter.rb +24 -0
  85. data/lib/puppet/http/response_net_http.rb +42 -0
  86. data/lib/puppet/http/retry_after_handler.rb +4 -13
  87. data/lib/puppet/http/service.rb +12 -26
  88. data/lib/puppet/http/service/ca.rb +11 -22
  89. data/lib/puppet/http/service/compiler.rb +22 -138
  90. data/lib/puppet/http/service/file_server.rb +19 -29
  91. data/lib/puppet/http/service/puppetserver.rb +26 -12
  92. data/lib/puppet/http/service/report.rb +8 -10
  93. data/lib/puppet/http/session.rb +11 -20
  94. data/lib/puppet/{network/http → http}/site.rb +1 -2
  95. data/lib/puppet/indirector/catalog/compiler.rb +0 -1
  96. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  97. data/lib/puppet/indirector/facts/rest.rb +3 -22
  98. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  99. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  100. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  101. data/lib/puppet/indirector/file_server.rb +1 -8
  102. data/lib/puppet/indirector/generic_http.rb +0 -11
  103. data/lib/puppet/indirector/node/rest.rb +2 -4
  104. data/lib/puppet/indirector/report/rest.rb +3 -8
  105. data/lib/puppet/indirector/request.rb +0 -101
  106. data/lib/puppet/indirector/resource/ral.rb +1 -6
  107. data/lib/puppet/indirector/rest.rb +12 -263
  108. data/lib/puppet/interface/documentation.rb +0 -1
  109. data/lib/puppet/module_tool/applications.rb +0 -1
  110. data/lib/puppet/module_tool/applications/installer.rb +2 -52
  111. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  112. data/lib/puppet/network/authconfig.rb +2 -96
  113. data/lib/puppet/network/authorization.rb +13 -35
  114. data/lib/puppet/network/formats.rb +0 -67
  115. data/lib/puppet/network/http.rb +3 -3
  116. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  117. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  118. data/lib/puppet/network/http/connection.rb +247 -316
  119. data/lib/puppet/network/http/handler.rb +0 -1
  120. data/lib/puppet/network/http_pool.rb +16 -34
  121. data/lib/puppet/node.rb +1 -30
  122. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  123. data/lib/puppet/pal/pal_impl.rb +3 -1
  124. data/lib/puppet/parser/ast/leaf.rb +2 -3
  125. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  126. data/lib/puppet/parser/compiler.rb +0 -198
  127. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  128. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  129. data/lib/puppet/parser/resource.rb +0 -69
  130. data/lib/puppet/parser/templatewrapper.rb +1 -1
  131. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  132. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  133. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  134. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  135. data/lib/puppet/pops/issues.rb +0 -5
  136. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  137. data/lib/puppet/pops/model/ast.pp +0 -42
  138. data/lib/puppet/pops/model/ast.rb +0 -290
  139. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  140. data/lib/puppet/pops/model/factory.rb +0 -45
  141. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  142. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  143. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  144. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  145. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  146. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  147. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  148. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  149. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  150. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  151. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  152. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  153. data/lib/puppet/pops/types/type_parser.rb +0 -4
  154. data/lib/puppet/pops/types/types.rb +0 -1
  155. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  156. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  157. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  158. data/lib/puppet/property/list.rb +1 -1
  159. data/lib/puppet/provider.rb +0 -13
  160. data/lib/puppet/provider/exec/posix.rb +4 -16
  161. data/lib/puppet/provider/group/groupadd.rb +8 -13
  162. data/lib/puppet/provider/nameservice.rb +0 -18
  163. data/lib/puppet/provider/package/apt.rb +2 -34
  164. data/lib/puppet/provider/package/aptitude.rb +0 -6
  165. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  166. data/lib/puppet/provider/package/dpkg.rb +0 -10
  167. data/lib/puppet/provider/package/gem.rb +23 -3
  168. data/lib/puppet/provider/package/nim.rb +6 -11
  169. data/lib/puppet/provider/package/pip.rb +3 -16
  170. data/lib/puppet/provider/package/pkg.rb +0 -4
  171. data/lib/puppet/provider/package/portage.rb +1 -1
  172. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  173. data/lib/puppet/provider/parsedfile.rb +0 -3
  174. data/lib/puppet/provider/service/debian.rb +0 -2
  175. data/lib/puppet/provider/service/smf.rb +191 -73
  176. data/lib/puppet/provider/service/systemd.rb +4 -14
  177. data/lib/puppet/provider/service/windows.rb +0 -38
  178. data/lib/puppet/provider/user/aix.rb +2 -2
  179. data/lib/puppet/provider/user/directoryservice.rb +10 -33
  180. data/lib/puppet/provider/user/useradd.rb +8 -62
  181. data/lib/puppet/reference/configuration.rb +8 -7
  182. data/lib/puppet/reference/indirection.rb +1 -1
  183. data/lib/puppet/resource.rb +1 -89
  184. data/lib/puppet/resource/catalog.rb +1 -14
  185. data/lib/puppet/resource/type.rb +3 -119
  186. data/lib/puppet/resource/type_collection.rb +3 -48
  187. data/lib/puppet/runtime.rb +1 -2
  188. data/lib/puppet/settings.rb +80 -96
  189. data/lib/puppet/settings/environment_conf.rb +0 -1
  190. data/lib/puppet/settings/integer_setting.rb +17 -0
  191. data/lib/puppet/settings/port_setting.rb +15 -0
  192. data/lib/puppet/settings/priority_setting.rb +5 -4
  193. data/lib/puppet/ssl.rb +10 -6
  194. data/lib/puppet/ssl/base.rb +3 -5
  195. data/lib/puppet/ssl/certificate.rb +0 -6
  196. data/lib/puppet/ssl/certificate_request.rb +1 -12
  197. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  198. data/lib/puppet/ssl/oids.rb +3 -1
  199. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  200. data/lib/puppet/ssl/state_machine.rb +3 -1
  201. data/lib/puppet/ssl/verifier.rb +2 -0
  202. data/lib/puppet/test/test_helper.rb +1 -3
  203. data/lib/puppet/transaction.rb +1 -7
  204. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  205. data/lib/puppet/transaction/report.rb +2 -4
  206. data/lib/puppet/type.rb +0 -76
  207. data/lib/puppet/type/exec.rb +3 -16
  208. data/lib/puppet/type/file.rb +6 -26
  209. data/lib/puppet/type/file/checksum.rb +1 -1
  210. data/lib/puppet/type/file/mode.rb +0 -6
  211. data/lib/puppet/type/file/selcontext.rb +1 -1
  212. data/lib/puppet/type/file/source.rb +1 -1
  213. data/lib/puppet/type/filebucket.rb +3 -3
  214. data/lib/puppet/type/package.rb +8 -16
  215. data/lib/puppet/type/service.rb +38 -18
  216. data/lib/puppet/type/tidy.rb +3 -22
  217. data/lib/puppet/type/user.rb +20 -38
  218. data/lib/puppet/util/autoload.rb +8 -1
  219. data/lib/puppet/util/execution.rb +0 -11
  220. data/lib/puppet/util/http_proxy.rb +2 -215
  221. data/lib/puppet/util/monkey_patches.rb +0 -53
  222. data/lib/puppet/util/posix.rb +5 -54
  223. data/lib/puppet/util/rdoc.rb +0 -7
  224. data/lib/puppet/util/retry_action.rb +1 -1
  225. data/lib/puppet/util/run_mode.rb +9 -1
  226. data/lib/puppet/util/selinux.rb +4 -30
  227. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  228. data/lib/puppet/util/windows.rb +3 -8
  229. data/lib/puppet/util/windows/adsi.rb +0 -46
  230. data/lib/puppet/util/windows/daemon.rb +360 -0
  231. data/lib/puppet/util/windows/error.rb +1 -0
  232. data/lib/puppet/util/windows/eventlog.rb +4 -9
  233. data/lib/puppet/util/windows/file.rb +8 -242
  234. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  235. data/lib/puppet/util/windows/principal.rb +2 -9
  236. data/lib/puppet/util/windows/process.rb +4 -226
  237. data/lib/puppet/util/windows/service.rb +9 -460
  238. data/lib/puppet/util/windows/sid.rb +2 -6
  239. data/lib/puppet/util/windows/string.rb +12 -13
  240. data/lib/puppet/util/yaml.rb +0 -22
  241. data/lib/puppet/vendor/require_vendored.rb +0 -1
  242. data/lib/puppet/version.rb +1 -1
  243. data/lib/puppet/x509.rb +5 -1
  244. data/lib/puppet/x509/cert_provider.rb +29 -1
  245. data/locales/puppet.pot +722 -1527
  246. data/man/man5/puppet.conf.5 +266 -354
  247. data/man/man8/puppet-agent.8 +2 -2
  248. data/man/man8/puppet-apply.8 +2 -2
  249. data/man/man8/puppet-catalog.8 +9 -9
  250. data/man/man8/puppet-config.8 +1 -1
  251. data/man/man8/puppet-describe.8 +1 -1
  252. data/man/man8/puppet-device.8 +2 -2
  253. data/man/man8/puppet-doc.8 +1 -1
  254. data/man/man8/puppet-epp.8 +1 -1
  255. data/man/man8/puppet-facts.8 +8 -51
  256. data/man/man8/puppet-filebucket.8 +4 -4
  257. data/man/man8/puppet-generate.8 +1 -1
  258. data/man/man8/puppet-help.8 +1 -1
  259. data/man/man8/puppet-lookup.8 +1 -1
  260. data/man/man8/puppet-module.8 +1 -58
  261. data/man/man8/puppet-node.8 +5 -5
  262. data/man/man8/puppet-parser.8 +1 -1
  263. data/man/man8/puppet-plugin.8 +1 -1
  264. data/man/man8/puppet-report.8 +5 -5
  265. data/man/man8/puppet-resource.8 +1 -1
  266. data/man/man8/puppet-script.8 +2 -2
  267. data/man/man8/puppet-ssl.8 +1 -5
  268. data/man/man8/puppet.8 +2 -2
  269. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  270. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  271. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  272. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  273. data/spec/fixtures/ssl/ca.pem +35 -57
  274. data/spec/fixtures/ssl/crl.pem +18 -28
  275. data/spec/fixtures/ssl/ec-key.pem +11 -11
  276. data/spec/fixtures/ssl/ec.pem +24 -33
  277. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  278. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  279. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  280. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  281. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  282. data/spec/fixtures/ssl/intermediate.pem +36 -57
  283. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  284. data/spec/fixtures/ssl/pluto.pem +30 -52
  285. data/spec/fixtures/ssl/request-key.pem +57 -107
  286. data/spec/fixtures/ssl/request.pem +26 -47
  287. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  288. data/spec/fixtures/ssl/revoked.pem +30 -52
  289. data/spec/fixtures/ssl/signed-key.pem +57 -107
  290. data/spec/fixtures/ssl/signed.pem +30 -52
  291. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  292. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  293. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  294. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  295. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  296. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  297. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  298. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  299. data/spec/integration/application/agent_spec.rb +27 -171
  300. data/spec/integration/application/apply_spec.rb +1 -20
  301. data/spec/integration/application/filebucket_spec.rb +16 -27
  302. data/spec/integration/application/help_spec.rb +2 -0
  303. data/spec/integration/application/module_spec.rb +0 -21
  304. data/spec/integration/application/plugin_spec.rb +24 -2
  305. data/spec/integration/defaults_spec.rb +14 -3
  306. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  307. data/spec/integration/http/client_spec.rb +0 -12
  308. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  309. data/spec/integration/indirector/facts/facter_spec.rb +36 -90
  310. data/spec/integration/network/http_pool_spec.rb +3 -21
  311. data/spec/integration/parser/catalog_spec.rb +0 -38
  312. data/spec/integration/parser/node_spec.rb +0 -9
  313. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  314. data/spec/integration/resource/type_collection_spec.rb +6 -2
  315. data/spec/integration/transaction_spec.rb +9 -4
  316. data/spec/integration/type/exec_spec.rb +45 -70
  317. data/spec/integration/type/file_spec.rb +5 -4
  318. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  319. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  320. data/spec/integration/util/windows/principal_spec.rb +0 -21
  321. data/spec/integration/util/windows/registry_spec.rb +10 -6
  322. data/spec/integration/util/windows/security_spec.rb +1 -1
  323. data/spec/lib/matchers/include.rb +27 -0
  324. data/spec/lib/matchers/include_spec.rb +32 -0
  325. data/spec/lib/puppet/test_ca.rb +2 -7
  326. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  327. data/spec/lib/puppet_spec/settings.rb +1 -1
  328. data/spec/spec_helper.rb +7 -12
  329. data/spec/unit/agent_spec.rb +6 -10
  330. data/spec/unit/application/agent_spec.rb +3 -7
  331. data/spec/unit/application/facts_spec.rb +12 -456
  332. data/spec/unit/application/filebucket_spec.rb +43 -39
  333. data/spec/unit/application/ssl_spec.rb +2 -25
  334. data/spec/unit/application_spec.rb +9 -51
  335. data/spec/unit/certificate_factory_spec.rb +1 -1
  336. data/spec/unit/configurer/downloader_spec.rb +6 -8
  337. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  338. data/spec/unit/configurer_spec.rb +12 -32
  339. data/spec/unit/confine/feature_spec.rb +1 -1
  340. data/spec/unit/confine_spec.rb +2 -8
  341. data/spec/unit/context/trusted_information_spec.rb +2 -6
  342. data/spec/unit/defaults_spec.rb +68 -54
  343. data/spec/unit/environments_spec.rb +68 -259
  344. data/spec/unit/face/node_spec.rb +11 -0
  345. data/spec/unit/face/plugin_spec.rb +73 -33
  346. data/spec/unit/file_bucket/file_spec.rb +1 -1
  347. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
  348. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  349. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  350. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  351. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  352. data/spec/unit/file_system_spec.rb +0 -15
  353. data/spec/unit/forge/module_release_spec.rb +7 -2
  354. data/spec/unit/functions/assert_type_spec.rb +1 -1
  355. data/spec/unit/functions/camelcase_spec.rb +1 -1
  356. data/spec/unit/functions/capitalize_spec.rb +1 -1
  357. data/spec/unit/functions/downcase_spec.rb +1 -1
  358. data/spec/unit/functions/empty_spec.rb +0 -10
  359. data/spec/unit/functions/unwrap_spec.rb +0 -8
  360. data/spec/unit/functions/upcase_spec.rb +1 -1
  361. data/spec/unit/functions4_spec.rb +2 -2
  362. data/spec/unit/gettext/config_spec.rb +0 -12
  363. data/spec/unit/http/client_spec.rb +7 -8
  364. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  365. data/spec/unit/http/external_client_spec.rb +4 -4
  366. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  367. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  368. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  369. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  370. data/spec/unit/http/resolver_spec.rb +13 -13
  371. data/spec/unit/http/service/compiler_spec.rb +0 -185
  372. data/spec/unit/http/service/file_server_spec.rb +3 -3
  373. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  374. data/spec/unit/http/service_spec.rb +0 -1
  375. data/spec/unit/http/session_spec.rb +16 -14
  376. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  377. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -14
  378. data/spec/unit/indirector/face_spec.rb +1 -0
  379. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  380. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  381. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  382. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  383. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  384. data/spec/unit/indirector/file_server_spec.rb +1 -15
  385. data/spec/unit/indirector/indirection_spec.rb +12 -8
  386. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  387. data/spec/unit/indirector/request_spec.rb +0 -264
  388. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  389. data/spec/unit/indirector/rest_spec.rb +98 -752
  390. data/spec/unit/indirector_spec.rb +2 -2
  391. data/spec/unit/module_tool/applications/installer_spec.rb +0 -78
  392. data/spec/unit/network/authconfig_spec.rb +2 -129
  393. data/spec/unit/network/authorization_spec.rb +2 -55
  394. data/spec/unit/network/formats_spec.rb +4 -45
  395. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  396. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  397. data/spec/unit/network/http/api_spec.rb +10 -0
  398. data/spec/unit/network/http/connection_spec.rb +19 -41
  399. data/spec/unit/network/http/handler_spec.rb +0 -1
  400. data/spec/unit/network/http_pool_spec.rb +0 -4
  401. data/spec/unit/node/environment_spec.rb +33 -21
  402. data/spec/unit/node_spec.rb +2 -54
  403. data/spec/unit/parser/compiler_spec.rb +19 -3
  404. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  405. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  406. data/spec/unit/parser/resource_spec.rb +8 -14
  407. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  408. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  409. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  410. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  411. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  412. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  413. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  414. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  415. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  416. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  417. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  418. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  419. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  420. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  421. data/spec/unit/pops/visitor_spec.rb +1 -1
  422. data/spec/unit/property_spec.rb +0 -1
  423. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  424. data/spec/unit/provider/nameservice_spec.rb +64 -122
  425. data/spec/unit/provider/package/apt_spec.rb +23 -28
  426. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  427. data/spec/unit/provider/package/base_spec.rb +5 -6
  428. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  429. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  430. data/spec/unit/provider/package/gem_spec.rb +32 -0
  431. data/spec/unit/provider/package/nim_spec.rb +0 -42
  432. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  433. data/spec/unit/provider/package/pip_spec.rb +11 -43
  434. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  435. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  436. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  437. data/spec/unit/provider/service/init_spec.rb +0 -1
  438. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  439. data/spec/unit/provider/service/smf_spec.rb +401 -165
  440. data/spec/unit/provider/service/systemd_spec.rb +8 -53
  441. data/spec/unit/provider/service/windows_spec.rb +0 -203
  442. data/spec/unit/provider/user/aix_spec.rb +0 -5
  443. data/spec/unit/provider/user/directoryservice_spec.rb +35 -67
  444. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  445. data/spec/unit/provider/user/pw_spec.rb +0 -2
  446. data/spec/unit/provider/user/useradd_spec.rb +3 -71
  447. data/spec/unit/provider_spec.rb +8 -18
  448. data/spec/unit/resource/catalog_spec.rb +1 -1
  449. data/spec/unit/resource/type_collection_spec.rb +2 -22
  450. data/spec/unit/resource/type_spec.rb +1 -1
  451. data/spec/unit/resource_spec.rb +10 -67
  452. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  453. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  454. data/spec/unit/settings/port_setting_spec.rb +31 -0
  455. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  456. data/spec/unit/settings_spec.rb +79 -110
  457. data/spec/unit/ssl/base_spec.rb +37 -3
  458. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  459. data/spec/unit/ssl/certificate_spec.rb +2 -11
  460. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  461. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  462. data/spec/unit/ssl/verifier_spec.rb +0 -21
  463. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  464. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  465. data/spec/unit/transaction/report_spec.rb +0 -2
  466. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  467. data/spec/unit/transaction_spec.rb +55 -96
  468. data/spec/unit/type/exec_spec.rb +29 -76
  469. data/spec/unit/type/file/checksum_spec.rb +6 -6
  470. data/spec/unit/type/file/content_spec.rb +2 -1
  471. data/spec/unit/type/file/ensure_spec.rb +1 -1
  472. data/spec/unit/type/file/mode_spec.rb +1 -1
  473. data/spec/unit/type/file/selinux_spec.rb +5 -3
  474. data/spec/unit/type/file/source_spec.rb +4 -5
  475. data/spec/unit/type/file_spec.rb +18 -6
  476. data/spec/unit/type/group_spec.rb +6 -13
  477. data/spec/unit/type/package_spec.rb +1 -1
  478. data/spec/unit/type/resources_spec.rb +7 -7
  479. data/spec/unit/type/service_spec.rb +189 -60
  480. data/spec/unit/type/tidy_spec.rb +8 -24
  481. data/spec/unit/type/user_spec.rb +0 -45
  482. data/spec/unit/type_spec.rb +22 -2
  483. data/spec/unit/util/at_fork_spec.rb +2 -2
  484. data/spec/unit/util/autoload_spec.rb +1 -5
  485. data/spec/unit/util/backups_spec.rb +2 -3
  486. data/spec/unit/util/execution_spec.rb +11 -44
  487. data/spec/unit/util/inifile_spec.rb +14 -6
  488. data/spec/unit/util/log_spec.rb +7 -8
  489. data/spec/unit/util/logging_spec.rb +3 -3
  490. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  491. data/spec/unit/util/posix_spec.rb +15 -363
  492. data/spec/unit/util/run_mode_spec.rb +21 -121
  493. data/spec/unit/util/selinux_spec.rb +68 -163
  494. data/spec/unit/util/storage_spec.rb +1 -3
  495. data/spec/unit/util/suidmanager_spec.rb +41 -44
  496. data/spec/unit/util/windows/sid_spec.rb +0 -41
  497. data/spec/unit/util/windows/string_spec.rb +1 -3
  498. data/spec/unit/util/yaml_spec.rb +0 -54
  499. data/spec/unit/util_spec.rb +6 -31
  500. data/tasks/generate_cert_fixtures.rake +3 -12
  501. metadata +45 -253
  502. data/conf/auth.conf +0 -150
  503. data/lib/puppet/application/cert.rb +0 -76
  504. data/lib/puppet/application/key.rb +0 -4
  505. data/lib/puppet/application/man.rb +0 -4
  506. data/lib/puppet/application/status.rb +0 -4
  507. data/lib/puppet/face/key.rb +0 -16
  508. data/lib/puppet/face/man.rb +0 -145
  509. data/lib/puppet/face/module/build.rb +0 -14
  510. data/lib/puppet/face/module/generate.rb +0 -14
  511. data/lib/puppet/face/module/search.rb +0 -103
  512. data/lib/puppet/face/status.rb +0 -51
  513. data/lib/puppet/ffi/posix.rb +0 -10
  514. data/lib/puppet/ffi/posix/constants.rb +0 -14
  515. data/lib/puppet/ffi/posix/functions.rb +0 -24
  516. data/lib/puppet/indirector/certificate/file.rb +0 -9
  517. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  518. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  519. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  520. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  521. data/lib/puppet/indirector/file_content/http.rb +0 -22
  522. data/lib/puppet/indirector/key/file.rb +0 -46
  523. data/lib/puppet/indirector/key/memory.rb +0 -7
  524. data/lib/puppet/indirector/ssl_file.rb +0 -162
  525. data/lib/puppet/indirector/status.rb +0 -3
  526. data/lib/puppet/indirector/status/local.rb +0 -12
  527. data/lib/puppet/indirector/status/rest.rb +0 -27
  528. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  529. data/lib/puppet/network/auth_config_parser.rb +0 -90
  530. data/lib/puppet/network/authstore.rb +0 -283
  531. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  532. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  533. data/lib/puppet/network/http/base_pool.rb +0 -36
  534. data/lib/puppet/network/http/compression.rb +0 -127
  535. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  536. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  537. data/lib/puppet/network/rest_controller.rb +0 -2
  538. data/lib/puppet/network/rights.rb +0 -210
  539. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  540. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  541. data/lib/puppet/parser/environment_compiler.rb +0 -202
  542. data/lib/puppet/pops/types/enumeration.rb +0 -16
  543. data/lib/puppet/resource/capability_finder.rb +0 -154
  544. data/lib/puppet/rest/errors.rb +0 -15
  545. data/lib/puppet/rest/response.rb +0 -35
  546. data/lib/puppet/rest/route.rb +0 -85
  547. data/lib/puppet/rest/routes.rb +0 -135
  548. data/lib/puppet/settings/alias_setting.rb +0 -37
  549. data/lib/puppet/ssl/host.rb +0 -505
  550. data/lib/puppet/ssl/key.rb +0 -61
  551. data/lib/puppet/ssl/validator.rb +0 -61
  552. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  553. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  554. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  555. data/lib/puppet/status.rb +0 -40
  556. data/lib/puppet/util/connection.rb +0 -88
  557. data/lib/puppet/util/fact_dif.rb +0 -81
  558. data/lib/puppet/util/ssl.rb +0 -83
  559. data/lib/puppet/util/windows/api_types.rb +0 -309
  560. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  561. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  562. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  563. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  564. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  565. data/lib/puppet/vendor/pathspec/README.md +0 -53
  566. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  567. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  568. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  569. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  570. data/man/man8/puppet-key.8 +0 -126
  571. data/man/man8/puppet-man.8 +0 -76
  572. data/man/man8/puppet-status.8 +0 -108
  573. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  574. data/spec/fixtures/ssl/oid-key.pem +0 -117
  575. data/spec/fixtures/ssl/oid.pem +0 -69
  576. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  577. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  578. data/spec/integration/application/resource_spec.rb +0 -64
  579. data/spec/integration/application/ssl_spec.rb +0 -20
  580. data/spec/integration/network/authconfig_spec.rb +0 -256
  581. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  582. data/spec/unit/application/man_spec.rb +0 -52
  583. data/spec/unit/capability_spec.rb +0 -414
  584. data/spec/unit/face/key_spec.rb +0 -9
  585. data/spec/unit/face/module/search_spec.rb +0 -231
  586. data/spec/unit/face/status_spec.rb +0 -9
  587. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  588. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  589. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  590. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  591. data/spec/unit/indirector/key/file_spec.rb +0 -78
  592. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  593. data/spec/unit/indirector/status/local_spec.rb +0 -10
  594. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  595. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  596. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  597. data/spec/unit/network/authstore_spec.rb +0 -422
  598. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  599. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  600. data/spec/unit/network/http/compression_spec.rb +0 -240
  601. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  602. data/spec/unit/network/http_spec.rb +0 -9
  603. data/spec/unit/network/rights_spec.rb +0 -439
  604. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  605. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  606. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  607. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  608. data/spec/unit/rest/route_spec.rb +0 -132
  609. data/spec/unit/ssl/host_spec.rb +0 -645
  610. data/spec/unit/ssl/key_spec.rb +0 -173
  611. data/spec/unit/ssl/validator_spec.rb +0 -278
  612. data/spec/unit/status_spec.rb +0 -45
  613. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -5,8 +5,6 @@ require 'puppet/util/tagging'
5
5
  require 'puppet/graph'
6
6
  require 'securerandom'
7
7
 
8
- require 'puppet/resource/capability_finder'
9
-
10
8
  # This class models a node catalog. It is the thing meant to be passed
11
9
  # from server to client, and it contains all of the information in the
12
10
  # catalog, including the resources and the relationships between them.
@@ -382,23 +380,12 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
382
380
  result = @resource_table[title_key]
383
381
  if result.nil?
384
382
  # an instance has to be created in order to construct the unique key used when
385
- # searching for aliases, or nothing is found as it is needed by the CapabilityFinder.
383
+ # searching for aliases
386
384
  res = Puppet::Resource.new(type, title, { :environment => @environment_instance })
387
385
 
388
386
  # Must check with uniqueness key because of aliases or if resource transforms title in title
389
387
  # to attribute mappings.
390
388
  result = @resource_table[[type_name, res.uniqueness_key].flatten]
391
-
392
- if result.nil?
393
- resource_type = res.resource_type
394
- if resource_type && resource_type.is_capability?
395
- # @todo lutter 2015-03-10: this assumes that it is legal to just
396
- # mention a capability resource in code and have it automatically
397
- # made available, even if the current component does not require it
398
- result = Puppet::Resource::CapabilityFinder.find(environment, code_id, res)
399
- add_resource(result) if result
400
- end
401
- end
402
389
  end
403
390
  result
404
391
  end
@@ -11,16 +11,13 @@ class Puppet::Resource::Type
11
11
  include Puppet::Util::Warnings
12
12
  include Puppet::Util::Errors
13
13
 
14
- # @deprecated application orchestration will be removed in puppet 7 (capability_mapping, application, site)
15
- RESOURCE_KINDS = [:hostclass, :node, :definition, :capability_mapping, :application, :site]
14
+ RESOURCE_KINDS = [:hostclass, :node, :definition]
16
15
 
17
16
  # Map the names used in our documentation to the names used internally
18
17
  RESOURCE_KINDS_TO_EXTERNAL_NAMES = {
19
18
  :hostclass => "class",
20
19
  :node => "node",
21
- :definition => "defined_type",
22
- :application => "application",
23
- :site => 'site'
20
+ :definition => "defined_type"
24
21
  }
25
22
  RESOURCE_EXTERNAL_NAMES_TO_KINDS = RESOURCE_KINDS_TO_EXTERNAL_NAMES.invert
26
23
 
@@ -37,15 +34,6 @@ class Puppet::Resource::Type
37
34
  attr_accessor :file, :line, :doc, :code, :parent, :resource_type_collection, :override
38
35
  attr_reader :namespace, :arguments, :behaves_like, :module_name
39
36
 
40
- # The attributes 'produces' and 'consumes' are arrays of the blueprints
41
- # of capabilities this type can produce/consume. The entries in the array
42
- # are a fairly direct representation of what goes into produces/consumes
43
- # clauses. Each entry is a hash with attributes
44
- # :capability - the type name of the capres produced/consumed
45
- # :mappings - a hash of attribute_name => Expression
46
- # These two attributes are populated in
47
- # PopsBridge::instantiate_CapabilityMapping
48
-
49
37
  # Map from argument (aka parameter) names to Puppet Type
50
38
  # @return [Hash<Symbol, Puppet::Pops::Types::PAnyType] map from name to type
51
39
  #
@@ -69,53 +57,6 @@ class Puppet::Resource::Type
69
57
  return(klass == parent_type ? true : parent_type.child_of?(klass))
70
58
  end
71
59
 
72
- # Evaluate the resources produced by the given resource. These resources are
73
- # evaluated in a separate but identical scope from the rest of the resource.
74
- #
75
- # @deprecated application orchestration will be removed in puppet 7
76
- def evaluate_produces(resource, scope)
77
- # Only defined types and classes can produce capabilities
78
- return unless definition? || hostclass?
79
-
80
- resource.export.map do |ex|
81
- # Assert that the ref really is a resource reference
82
- raise Puppet::Error, _("Invalid export in %{reference}: %{ex} is not a resource") % { reference: resource.ref, ex: ex } unless ex.is_a?(Puppet::Resource)
83
- raise Puppet::Error, _("Invalid export in %{reference}: %{ex} is not a capability resource") % { reference: resource.ref, ex: ex } if ex.resource_type.nil? || !ex.resource_type.is_capability?
84
-
85
- blueprint = produces.find { |pr| pr[:capability] == ex.type }
86
- if blueprint.nil?
87
- raise Puppet::ParseError, _("Resource type %{res_type} does not produce %{ex_type}") % { res_type: resource.type, ex_type: ex.type }
88
- end
89
- t = ex.type
90
- t = Puppet::Pops::Evaluator::Runtime3ResourceSupport.find_resource_type(scope, t) unless t == 'class' || t == 'node'
91
- produced_resource = Puppet::Parser::Resource.new(t, ex.title, :scope => scope, :source => self)
92
-
93
- produced_resource.resource_type.parameters.each do |name|
94
- next if name == :name
95
-
96
- expr = blueprint[:mappings][name.to_s]
97
- if expr
98
- produced_resource[name] = expr.safeevaluate(scope)
99
- else
100
- produced_resource[name] = scope[name.to_s]
101
- end
102
- end
103
- # Tag the produced resource so we can later distinguish it from
104
- # copies of the resource that wind up in the catalogs of nodes that
105
- # use this resource. We tag the resource with producer:<environment>,
106
- # meaning produced resources need to be unique within their
107
- # environment
108
- # @todo lutter 2014-11-13: we would really like to use a dedicated
109
- # metadata field to indicate the producer of a resource, but that
110
- # requires changes to PuppetDB and its API; so for now, we just use
111
- # tagging
112
- produced_resource.tag("producer:#{scope.catalog.environment}")
113
- scope.catalog.add_resource(produced_resource)
114
- produced_resource[:require] = resource.ref
115
- produced_resource
116
- end
117
- end
118
-
119
60
  # Now evaluate the code associated with this class or definition.
120
61
  def evaluate_code(resource)
121
62
 
@@ -129,8 +70,6 @@ class Puppet::Resource::Type
129
70
 
130
71
  resource.add_edge_to_stage
131
72
 
132
- evaluate_produces(resource, scope)
133
-
134
73
  if code
135
74
  if @match # Only bother setting up the ephemeral scope if there are match variables to add into it
136
75
  scope.with_guarded_scope do
@@ -165,28 +104,6 @@ class Puppet::Resource::Type
165
104
  @module_name = options[:module_name]
166
105
  end
167
106
 
168
- # @deprecated application orchestration will be removed in puppet 7
169
- def produces
170
- @produces || EMPTY_ARRAY
171
- end
172
-
173
- # @deprecated application orchestration will be removed in puppet 7
174
- def consumes
175
- @consumes || EMPTY_ARRAY
176
- end
177
-
178
- # @deprecated application orchestration will be removed in puppet 7
179
- def add_produces(blueprint)
180
- @produces ||= []
181
- @produces << blueprint
182
- end
183
-
184
- # @deprecated application orchestration will be removed in puppet 7
185
- def add_consumes(blueprint)
186
- @consumes ||= []
187
- @consumes << blueprint
188
- end
189
-
190
107
  # This is only used for node names, and really only when the node name
191
108
  # is a regexp.
192
109
  def match(string)
@@ -242,9 +159,6 @@ class Puppet::Resource::Type
242
159
  :class
243
160
  when :node
244
161
  :node
245
- when :site
246
- # @deprecated application orchestration will be removed in puppet 7
247
- :site
248
162
  end
249
163
 
250
164
  # Do nothing if the resource already exists; this makes sure we don't
@@ -289,21 +203,6 @@ class Puppet::Resource::Type
289
203
  @name.is_a?(Regexp)
290
204
  end
291
205
 
292
- # @deprecated Not used by Puppet
293
- # @api private
294
- def assign_parameter_values(parameters, resource)
295
- Puppet.deprecation_warning(_('The method Puppet::Resource::Type.assign_parameter_values is deprecated and will be removed in the next major release of Puppet.'))
296
-
297
- return unless parameters
298
-
299
- # It'd be nice to assign default parameter values here,
300
- # but we can't because they often rely on local variables
301
- # created during set_resource_parameters.
302
- parameters.each do |name, value|
303
- resource.set_parameter name, value
304
- end
305
- end
306
-
307
206
  def parent_type(scope = nil)
308
207
  return nil unless parent
309
208
 
@@ -326,7 +225,6 @@ class Puppet::Resource::Type
326
225
  caller_name = resource[:caller_module_name] || scope.parent_module_name
327
226
  scope[CALLER_MODULE_NAME] = caller_name unless caller_name.nil?
328
227
 
329
- resource.add_parameters_from_consume
330
228
  inject_external_parameters(resource, scope)
331
229
 
332
230
  if @type == :hostclass
@@ -389,7 +287,7 @@ class Puppet::Resource::Type
389
287
  private :assign_defaults
390
288
 
391
289
  def validate_resource_hash(resource, resource_hash)
392
- Puppet::Pops::Types::TypeMismatchDescriber.validate_parameters(resource.to_s, parameter_struct, resource_hash, resource.is_unevaluated_consumer?)
290
+ Puppet::Pops::Types::TypeMismatchDescriber.validate_parameters(resource.to_s, parameter_struct, resource_hash, false)
393
291
  end
394
292
  private :validate_resource_hash
395
293
 
@@ -444,14 +342,6 @@ class Puppet::Resource::Type
444
342
  end
445
343
  end
446
344
 
447
- # Returns boolean true if an instance of this type is a capability. This
448
- # implementation always returns false. This "duck-typing" interface is
449
- # shared among other classes and makes it easier to detect capabilities
450
- # when they are intermixed with non capability instances.
451
- def is_capability?
452
- false
453
- end
454
-
455
345
  private
456
346
 
457
347
  def convert_from_ast(name)
@@ -516,12 +406,6 @@ class Puppet::Resource::Type
516
406
  type_factory = Puppet::Pops::Types::TypeFactory
517
407
  members = { type_factory.optional(type_factory.string(NAME)) => type_factory.any }
518
408
 
519
- if application?
520
- resource_type = type_factory.type_type(type_factory.resource)
521
- members[type_factory.string(NODES)] = type_factory.hash_of(type_factory.variant(
522
- resource_type, type_factory.array_of(resource_type)), type_factory.type_type(type_factory.resource('node')))
523
- end
524
-
525
409
  Puppet::Type.eachmetaparam do |name|
526
410
  # TODO: Once meta parameters are typed, this should change to reflect that type
527
411
  members[name.to_s] = type_factory.any
@@ -13,22 +13,16 @@ class Puppet::Resource::TypeCollection
13
13
  def clear
14
14
  @hostclasses.clear
15
15
  @definitions.clear
16
- @applications.clear
17
16
  @nodes.clear
18
17
  @notfound.clear
19
- @capability_mappings.clear
20
- @sites.clear
21
18
  end
22
19
 
23
20
  def initialize(env)
24
21
  @environment = env
25
22
  @hostclasses = {}
26
23
  @definitions = {}
27
- @capability_mappings = {}
28
- @applications = {}
29
24
  @nodes = {}
30
25
  @notfound = {}
31
- @sites = []
32
26
  @lock = Puppet::Concurrent::Lock.new
33
27
 
34
28
  # So we can keep a list and match the first-defined regex
@@ -45,10 +39,7 @@ class Puppet::Resource::TypeCollection
45
39
  "TypeCollection" + {
46
40
  :hostclasses => @hostclasses.keys,
47
41
  :definitions => @definitions.keys,
48
- :nodes => @nodes.keys,
49
- :capability_mappings => @capability_mappings.keys,
50
- :applications => @applications.keys,
51
- :site => @sites[0] # todo, could be just a binary, this dumps the entire body (good while developing)
42
+ :nodes => @nodes.keys
52
43
  }.inspect
53
44
  end
54
45
 
@@ -71,7 +62,6 @@ class Puppet::Resource::TypeCollection
71
62
  handle_hostclass_merge(instance)
72
63
  dupe_check(instance, @hostclasses) { |dupe| _("Class '%{klass}' is already defined%{error}; cannot redefine") % { klass: instance.name, error: dupe.error_context } }
73
64
  dupe_check(instance, @definitions) { |dupe| _("Definition '%{klass}' is already defined%{error}; cannot be redefined as a class") % { klass: instance.name, error: dupe.error_context } }
74
- dupe_check(instance, @applications) { |dupe| _("Application '%{klass}' is already defined%{error}; cannot be redefined as a class") % { klass: instance.name, error: dupe.error_context } }
75
65
 
76
66
  @hostclasses[instance.name] = instance
77
67
  instance
@@ -109,16 +99,6 @@ class Puppet::Resource::TypeCollection
109
99
  instance
110
100
  end
111
101
 
112
- def add_site(instance)
113
- dupe_check_singleton(instance, @sites) { |dupe| _("Site is already defined%{error}; cannot redefine") % { error: dupe.error_context } }
114
- @sites << instance
115
- instance
116
- end
117
-
118
- def site(_)
119
- @sites[0]
120
- end
121
-
122
102
  def loader
123
103
  @loader ||= Puppet::Parser::TypeLoader.new(environment)
124
104
  end
@@ -149,38 +129,18 @@ class Puppet::Resource::TypeCollection
149
129
  def add_definition(instance)
150
130
  dupe_check(instance, @hostclasses) { |dupe| _("'%{name}' is already defined%{error} as a class; cannot redefine as a definition") % { name: instance.name, error: dupe.error_context } }
151
131
  dupe_check(instance, @definitions) { |dupe| _("Definition '%{name}' is already defined%{error}; cannot be redefined") % { name: instance.name, error: dupe.error_context } }
152
- dupe_check(instance, @applications) { |dupe| _("'%{name}' is already defined%{error} as an application; cannot be redefined") % { name: instance.name, error: dupe.error_context } }
153
- @definitions[instance.name] = instance
154
- end
155
132
 
156
- def add_capability_mapping(instance)
157
- dupe_check(instance, @capability_mappings) { |dupe| _("'%{name}' is already defined%{error} as a class; cannot redefine as a mapping") % { name: instance.name, error: dupe.error_context } }
158
- @capability_mappings[instance.name] = instance
133
+ @definitions[instance.name] = instance
159
134
  end
160
135
 
161
136
  def definition(name)
162
137
  @definitions[munge_name(name)]
163
138
  end
164
139
 
165
- def add_application(instance)
166
- dupe_check(instance, @hostclasses) { |dupe| _("'%{name}' is already defined%{error} as a class; cannot redefine as an application") % { name: instance.name, error: dupe.error_context } }
167
- dupe_check(instance, @definitions) { |dupe| _("'%{name}' is already defined%{error} as a definition; cannot redefine as an application") % { name: instance.name, error: dupe.error_context } }
168
- dupe_check(instance, @applications) { |dupe| _("'%{name}' is already defined%{error} as an application; cannot be redefined") % { name: instance.name, error: dupe.error_context } }
169
- @applications[instance.name] = instance
170
- end
171
-
172
- def application(name)
173
- @applications[munge_name(name)]
174
- end
175
-
176
140
  def find_node(name)
177
141
  @nodes[munge_name(name)]
178
142
  end
179
143
 
180
- def find_site()
181
- @sites[0]
182
- end
183
-
184
144
  def find_hostclass(name)
185
145
  find_or_load(name, :hostclass)
186
146
  end
@@ -189,14 +149,9 @@ class Puppet::Resource::TypeCollection
189
149
  find_or_load(name, :definition)
190
150
  end
191
151
 
192
- def find_application(name)
193
- find_or_load(name, :application)
194
- end
195
-
196
152
  # TODO: This implementation is wasteful as it creates a copy on each request
197
153
  #
198
- [:hostclasses, :nodes, :definitions, :capability_mappings,
199
- :applications].each do |m|
154
+ [:hostclasses, :nodes, :definitions].each do |m|
200
155
  define_method(m) do
201
156
  instance_variable_get("@#{m}").dup
202
157
  end
@@ -11,8 +11,7 @@ class Puppet::Runtime
11
11
  @runtime_services = {
12
12
  http: proc do
13
13
  klass = Puppet::Network::HttpPool.http_client_class
14
- if klass == Puppet::Network::HTTP::Connection ||
15
- klass == Puppet::Network::HTTP::ConnectionAdapter
14
+ if klass == Puppet::Network::HTTP::Connection
16
15
  Puppet::HTTP::Client.new
17
16
  else
18
17
  Puppet::HTTP::ExternalClient.new(klass)
@@ -21,6 +21,8 @@ class Puppet::Settings
21
21
  require 'puppet/settings/file_or_directory_setting'
22
22
  require 'puppet/settings/path_setting'
23
23
  require 'puppet/settings/boolean_setting'
24
+ require 'puppet/settings/integer_setting'
25
+ require 'puppet/settings/port_setting'
24
26
  require 'puppet/settings/terminus_setting'
25
27
  require 'puppet/settings/duration_setting'
26
28
  require 'puppet/settings/ttl_setting'
@@ -32,7 +34,6 @@ class Puppet::Settings
32
34
  require 'puppet/settings/server_list_setting'
33
35
  require 'puppet/settings/http_extra_headers_setting'
34
36
  require 'puppet/settings/certificate_revocation_setting'
35
- require 'puppet/settings/alias_setting'
36
37
 
37
38
  # local reference for convenience
38
39
  PuppetOptionParser = Puppet::Util::CommandLine::PuppetOptionParser
@@ -53,13 +54,14 @@ class Puppet::Settings
53
54
  # returns reasonable application default settings values for a given run_mode.
54
55
  def self.app_defaults_for_run_mode(run_mode)
55
56
  {
56
- :name => run_mode.to_s,
57
- :run_mode => run_mode.name,
58
- :confdir => run_mode.conf_dir,
59
- :codedir => run_mode.code_dir,
60
- :vardir => run_mode.var_dir,
61
- :rundir => run_mode.run_dir,
62
- :logdir => run_mode.log_dir,
57
+ :name => run_mode.to_s,
58
+ :run_mode => run_mode.name,
59
+ :confdir => run_mode.conf_dir,
60
+ :codedir => run_mode.code_dir,
61
+ :vardir => run_mode.var_dir,
62
+ :publicdir => run_mode.public_dir,
63
+ :rundir => run_mode.run_dir,
64
+ :logdir => run_mode.log_dir,
63
65
  }
64
66
  end
65
67
 
@@ -386,6 +388,19 @@ class Puppet::Settings
386
388
  call_hooks_deferred_to_application_initialization
387
389
  issue_deprecations
388
390
 
391
+ run_mode = Puppet::Util::RunMode[self.preferred_run_mode]
392
+ if run_mode.agent? || run_mode.server?
393
+ if self.set_in_section?(:masterport, run_mode.name) && !self.set_in_section?(:serverport, run_mode.name)
394
+ self[:serverport] = self[:masterport]
395
+ elsif self.set_by_config?(:masterport) && !self.set_by_config?(:serverport)
396
+ self[:serverport] = self[:masterport]
397
+ elsif self.set_in_section?(:serverport, run_mode.name) && !self.set_in_section?(:masterport, run_mode.name)
398
+ self[:masterport] = self[:serverport]
399
+ elsif self.set_by_config?(:serverport) && !self.set_by_config?(:masterport)
400
+ self[:masterport] = self[:serverport]
401
+ end
402
+ end
403
+
389
404
  REQUIRED_APP_SETTINGS.each do |key|
390
405
  create_ancestors(Puppet[key])
391
406
  end
@@ -720,6 +735,8 @@ class Puppet::Settings
720
735
  :file_or_directory => FileOrDirectorySetting,
721
736
  :path => PathSetting,
722
737
  :boolean => BooleanSetting,
738
+ :integer => IntegerSetting,
739
+ :port => PortSetting,
723
740
  :terminus => TerminusSetting,
724
741
  :duration => DurationSetting,
725
742
  :ttl => TTLSetting,
@@ -730,8 +747,7 @@ class Puppet::Settings
730
747
  :autosign => AutosignSetting,
731
748
  :server_list => ServerListSetting,
732
749
  :http_extra_headers => HttpExtraHeadersSetting,
733
- :certificate_revocation => CertificateRevocationSetting,
734
- :alias => AliasSetting
750
+ :certificate_revocation => CertificateRevocationSetting
735
751
  }
736
752
 
737
753
  # Create a new setting. The value is passed in because it's used to determine
@@ -862,11 +878,7 @@ class Puppet::Settings
862
878
  if self[:user]
863
879
  user = Puppet::Type.type(:user).new :name => self[:user], :audit => :ensure
864
880
 
865
- if user.suitable?
866
- @service_user_available = user.exists?
867
- else
868
- raise Puppet::Error, (_("Cannot manage owner permissions, because the provider for '%{name}' is not functional") % { name: user })
869
- end
881
+ @service_user_available = user.exists?
870
882
  else
871
883
  @service_user_available = false
872
884
  end
@@ -878,11 +890,7 @@ class Puppet::Settings
878
890
  if self[:group]
879
891
  group = Puppet::Type.type(:group).new :name => self[:group], :audit => :ensure
880
892
 
881
- if group.suitable?
882
- @service_group_available = group.exists?
883
- else
884
- raise Puppet::Error, (_("Cannot manage group permissions, because the provider for '%{name}' is not functional") % { name: group })
885
- end
893
+ @service_group_available = group.exists?
886
894
  else
887
895
  @service_group_available = false
888
896
  end
@@ -891,16 +899,9 @@ class Puppet::Settings
891
899
  # Allow later inspection to determine if the setting was set on the
892
900
  # command line, or through some other code path. Used for the
893
901
  # `dns_alt_names` option during cert generate. --daniel 2011-10-18
894
- #
895
- # @param param [String, Symbol] the setting to look up
896
- # @return [Object, nil] the value of the setting or nil if unset
897
- def set_by_cli(param)
898
- param = param.to_sym
899
- @value_sets[:cli].lookup(param)
900
- end
901
-
902
902
  def set_by_cli?(param)
903
- !!set_by_cli(param)
903
+ param = param.to_sym
904
+ !@value_sets[:cli].lookup(param).nil?
904
905
  end
905
906
 
906
907
  # Get values from a search path entry.
@@ -933,13 +934,9 @@ class Puppet::Settings
933
934
  end
934
935
  end
935
936
 
936
- # Allow later inspection to determine if the setting was set in a specific
937
- # section
938
- #
939
- # @param param [String, Symbol] the setting to look up
940
- # @param section [Symbol] the section in which to look up the setting
941
- # @return [Object, nil] the value of the setting or nil if unset
942
- def set_in_section(param, section)
937
+ # Allow later inspection to determine if the setting was set by user
938
+ # config, rather than a default setting.
939
+ def set_in_section?(param, section)
943
940
  param = param.to_sym
944
941
  vals = searchpath_values(SearchPathElement.new(section, :section))
945
942
  if vals
@@ -947,10 +944,6 @@ class Puppet::Settings
947
944
  end
948
945
  end
949
946
 
950
- def set_in_section?(param, section)
951
- !!set_in_section(param, section)
952
- end
953
-
954
947
  # Patches the value for a param in a section.
955
948
  # This method is required to support the use case of unifying --dns-alt-names and
956
949
  # --dns_alt_names in the certificate face. Ideally this should be cleaned up.
@@ -1097,41 +1090,48 @@ Generated on #{Time.now}.
1097
1090
  # Create the necessary objects to use a section. This is idempotent;
1098
1091
  # you can 'use' a section as many times as you want.
1099
1092
  def use(*sections)
1100
- Puppet.warning(":master section deprecated in favor of :server section") if sections.include?(:master)
1093
+ if Puppet[:settings_catalog]
1094
+ sections = sections.collect { |s| s.to_sym }
1095
+ sections = sections.reject { |s| @used.include?(s) }
1101
1096
 
1102
- # add :server if sections include :master or :master if sections include :server
1103
- sections |= [:master, :server] if (sections & [:master, :server]).any?
1097
+ Puppet.warning(":master section deprecated in favor of :server section") if sections.include?(:master)
1104
1098
 
1105
- sections = sections.collect { |s| s.to_sym }
1106
- sections = sections.reject { |s| @used.include?(s) }
1099
+ # add :server if sections include :master or :master if sections include :server
1100
+ sections |= [:master, :server] if (sections & [:master, :server]).any?
1107
1101
 
1108
- return if sections.empty?
1102
+ sections = sections.collect { |s| s.to_sym }
1103
+ sections = sections.reject { |s| @used.include?(s) }
1109
1104
 
1110
- Puppet.debug { "Applying settings catalog for sections #{sections.join(', ')}" }
1105
+ return if sections.empty?
1111
1106
 
1112
- begin
1113
- catalog = to_catalog(*sections).to_ral
1114
- rescue => detail
1115
- Puppet.log_and_raise(detail, "Could not create resources for managing Puppet's files and directories in sections #{sections.inspect}: #{detail}")
1116
- end
1107
+ Puppet.debug { "Applying settings catalog for sections #{sections.join(', ')}" }
1117
1108
 
1118
- catalog.host_config = false
1119
- catalog.apply do |transaction|
1120
- if transaction.any_failed?
1121
- report = transaction.report
1122
- status_failures = report.resource_statuses.values.select { |r| r.failed? }
1123
- status_fail_msg = status_failures.
1124
- collect(&:events).
1125
- flatten.
1126
- select { |event| event.status == 'failure' }.
1127
- collect { |event| "#{event.resource}: #{event.message}" }.join("; ")
1109
+ begin
1110
+ catalog = to_catalog(*sections).to_ral
1111
+ rescue => detail
1112
+ Puppet.log_and_raise(detail, "Could not create resources for managing Puppet's files and directories in sections #{sections.inspect}: #{detail}")
1113
+ end
1128
1114
 
1129
- raise "Got #{status_failures.length} failure(s) while initializing: #{status_fail_msg}"
1115
+ catalog.host_config = false
1116
+ catalog.apply do |transaction|
1117
+ if transaction.any_failed?
1118
+ report = transaction.report
1119
+ status_failures = report.resource_statuses.values.select { |r| r.failed? }
1120
+ status_fail_msg = status_failures.
1121
+ collect(&:events).
1122
+ flatten.
1123
+ select { |event| event.status == 'failure' }.
1124
+ collect { |event| "#{event.resource}: #{event.message}" }.join("; ")
1125
+
1126
+ raise "Got #{status_failures.length} failure(s) while initializing: #{status_fail_msg}"
1127
+ end
1130
1128
  end
1131
- end
1132
1129
 
1133
- sections.each { |s| @used << s }
1134
- @used.uniq!
1130
+ sections.each { |s| @used << s }
1131
+ @used.uniq!
1132
+ else
1133
+ Puppet.debug("Skipping settings catalog for sections #{sections.join(', ')}")
1134
+ end
1135
1135
  end
1136
1136
 
1137
1137
  def valid?(param)
@@ -1285,37 +1285,27 @@ Generated on #{Time.now}.
1285
1285
  end
1286
1286
 
1287
1287
  def add_environment_resources(catalog, sections)
1288
+ path = self[:environmentpath]
1289
+ envdir = path.split(File::PATH_SEPARATOR).first if path
1288
1290
  configured_environment = self[:environment]
1289
-
1290
- if configured_environment == "production" && !production_environment_exists?
1291
- environment_path = self[:environmentpath]
1292
- first_environment_path = environment_path.split(File::PATH_SEPARATOR).first
1293
-
1294
- if Puppet::FileSystem.exist?(first_environment_path)
1295
- production_environment_path = File.join(first_environment_path, configured_environment)
1291
+ if configured_environment == "production" && envdir && Puppet::FileSystem.exist?(envdir)
1292
+ configured_environment_path = File.join(envdir, configured_environment)
1293
+ # If configured_environment_path is a symlink, assume the source path is being managed
1294
+ # elsewhere, so don't do any of this configuration
1295
+ if !Puppet::FileSystem.symlink?(configured_environment_path)
1296
1296
  parameters = { :ensure => 'directory' }
1297
- parameters[:mode] = '0750'
1298
- if Puppet.features.root?
1299
- parameters[:owner] = Puppet[:user] if service_user_available?
1300
- parameters[:group] = Puppet[:group] if service_group_available?
1297
+ unless Puppet::FileSystem.exist?(configured_environment_path)
1298
+ parameters[:mode] = '0750'
1299
+ if Puppet.features.root?
1300
+ parameters[:owner] = Puppet[:user] if service_user_available?
1301
+ parameters[:group] = Puppet[:group] if service_group_available?
1302
+ end
1301
1303
  end
1302
- catalog.add_resource(Puppet::Resource.new(:file, production_environment_path, :parameters => parameters))
1304
+ catalog.add_resource(Puppet::Resource.new(:file, configured_environment_path, :parameters => parameters))
1303
1305
  end
1304
1306
  end
1305
1307
  end
1306
1308
 
1307
- def production_environment_exists?
1308
- environment_path = self[:environmentpath]
1309
- paths = environment_path.split(File::PATH_SEPARATOR)
1310
-
1311
- paths.any? do |path|
1312
- # If expected_path is a symlink, assume the source path is being managed
1313
- # elsewhere, so accept it also as a valid production environment path
1314
- expected_path = File.join(path, 'production')
1315
- Puppet::FileSystem.directory?(expected_path) || Puppet::FileSystem.symlink?(expected_path)
1316
- end
1317
- end
1318
-
1319
1309
  def add_user_resources(catalog, sections)
1320
1310
  return unless Puppet.features.root?
1321
1311
  return if Puppet::Util::Platform.windows?
@@ -1416,12 +1406,6 @@ Generated on #{Time.now}.
1416
1406
  end
1417
1407
  end
1418
1408
 
1419
- setting = @defaults[name]
1420
- if setting.respond_to?(:alias_name)
1421
- val = lookup(setting.alias_name)
1422
- return val if val
1423
- end
1424
-
1425
1409
  @defaults[name].default
1426
1410
  end
1427
1411