puppet 6.19.0 → 7.3.0

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

Potentially problematic release.


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

Files changed (513) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -16
  3. data/Gemfile +3 -4
  4. data/Gemfile.lock +33 -28
  5. data/README.md +1 -1
  6. data/conf/fileserver.conf +5 -10
  7. data/ext/build_defaults.yaml +1 -1
  8. data/ext/osx/file_mapping.yaml +0 -5
  9. data/ext/project_data.yaml +2 -14
  10. data/ext/redhat/puppet.spec.erb +0 -1
  11. data/ext/windows/service/daemon.rb +6 -5
  12. data/install.rb +21 -17
  13. data/lib/puppet.rb +11 -20
  14. data/lib/puppet/application.rb +182 -104
  15. data/lib/puppet/application/agent.rb +1 -0
  16. data/lib/puppet/application/apply.rb +3 -2
  17. data/lib/puppet/application/device.rb +101 -104
  18. data/lib/puppet/application/filebucket.rb +15 -11
  19. data/lib/puppet/application/script.rb +1 -0
  20. data/lib/puppet/application/ssl.rb +1 -1
  21. data/lib/puppet/application_support.rb +7 -0
  22. data/lib/puppet/configurer.rb +44 -36
  23. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  24. data/lib/puppet/defaults.rb +71 -170
  25. data/lib/puppet/environments.rb +44 -75
  26. data/lib/puppet/face/config.rb +10 -0
  27. data/lib/puppet/face/epp.rb +12 -2
  28. data/lib/puppet/face/facts.rb +80 -6
  29. data/lib/puppet/face/help.rb +1 -1
  30. data/lib/puppet/face/node/clean.rb +8 -0
  31. data/lib/puppet/face/plugin.rb +5 -8
  32. data/lib/puppet/ffi/posix.rb +10 -0
  33. data/lib/puppet/ffi/posix/constants.rb +14 -0
  34. data/lib/puppet/ffi/posix/functions.rb +24 -0
  35. data/lib/puppet/ffi/windows.rb +12 -0
  36. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  37. data/lib/puppet/ffi/windows/constants.rb +404 -0
  38. data/lib/puppet/ffi/windows/functions.rb +628 -0
  39. data/lib/puppet/ffi/windows/structs.rb +338 -0
  40. data/lib/puppet/file_serving/configuration.rb +0 -5
  41. data/lib/puppet/file_serving/configuration/parser.rb +6 -32
  42. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  43. data/lib/puppet/file_serving/mount.rb +1 -2
  44. data/lib/puppet/forge/repository.rb +0 -1
  45. data/lib/puppet/functions/epp.rb +1 -0
  46. data/lib/puppet/functions/inline_epp.rb +1 -0
  47. data/lib/puppet/generate/models/type/type.rb +4 -1
  48. data/lib/puppet/http.rb +22 -13
  49. data/lib/puppet/http/client.rb +164 -114
  50. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  51. data/lib/puppet/http/errors.rb +16 -0
  52. data/lib/puppet/http/external_client.rb +5 -7
  53. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  54. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  55. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  56. data/lib/puppet/http/proxy.rb +137 -0
  57. data/lib/puppet/http/redirector.rb +4 -12
  58. data/lib/puppet/http/resolver.rb +5 -15
  59. data/lib/puppet/http/resolver/server_list.rb +6 -10
  60. data/lib/puppet/http/resolver/settings.rb +4 -7
  61. data/lib/puppet/http/resolver/srv.rb +7 -11
  62. data/lib/puppet/http/response.rb +36 -54
  63. data/lib/puppet/http/response_converter.rb +24 -0
  64. data/lib/puppet/http/response_net_http.rb +42 -0
  65. data/lib/puppet/http/retry_after_handler.rb +4 -13
  66. data/lib/puppet/http/service.rb +12 -26
  67. data/lib/puppet/http/service/ca.rb +11 -22
  68. data/lib/puppet/http/service/compiler.rb +22 -69
  69. data/lib/puppet/http/service/file_server.rb +18 -27
  70. data/lib/puppet/http/service/puppetserver.rb +26 -12
  71. data/lib/puppet/http/service/report.rb +8 -10
  72. data/lib/puppet/http/session.rb +11 -20
  73. data/lib/puppet/{network/http → http}/site.rb +1 -2
  74. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  75. data/lib/puppet/indirector/fact_search.rb +60 -0
  76. data/lib/puppet/indirector/facts/facter.rb +24 -3
  77. data/lib/puppet/indirector/facts/json.rb +27 -0
  78. data/lib/puppet/indirector/facts/rest.rb +3 -22
  79. data/lib/puppet/indirector/facts/yaml.rb +3 -58
  80. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  81. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  82. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  83. data/lib/puppet/indirector/file_server.rb +1 -8
  84. data/lib/puppet/indirector/generic_http.rb +0 -11
  85. data/lib/puppet/indirector/json.rb +5 -1
  86. data/lib/puppet/indirector/node/json.rb +8 -0
  87. data/lib/puppet/indirector/node/rest.rb +2 -4
  88. data/lib/puppet/indirector/report/json.rb +34 -0
  89. data/lib/puppet/indirector/report/rest.rb +3 -8
  90. data/lib/puppet/indirector/request.rb +0 -101
  91. data/lib/puppet/indirector/rest.rb +12 -263
  92. data/lib/puppet/module_tool/applications.rb +0 -1
  93. data/lib/puppet/module_tool/applications/installer.rb +48 -2
  94. data/lib/puppet/module_tool/errors/shared.rb +17 -2
  95. data/lib/puppet/network/authconfig.rb +2 -96
  96. data/lib/puppet/network/authorization.rb +13 -35
  97. data/lib/puppet/network/formats.rb +69 -1
  98. data/lib/puppet/network/http.rb +3 -3
  99. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  100. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  101. data/lib/puppet/network/http/connection.rb +247 -316
  102. data/lib/puppet/network/http/handler.rb +0 -1
  103. data/lib/puppet/network/http_pool.rb +16 -34
  104. data/lib/puppet/node.rb +1 -30
  105. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  106. data/lib/puppet/pal/pal_impl.rb +73 -18
  107. data/lib/puppet/parser/ast/leaf.rb +3 -2
  108. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  109. data/lib/puppet/parser/compiler.rb +0 -198
  110. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  111. data/lib/puppet/parser/resource.rb +0 -69
  112. data/lib/puppet/parser/templatewrapper.rb +1 -1
  113. data/lib/puppet/pops/evaluator/deferred_resolver.rb +5 -3
  114. data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
  115. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  116. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  117. data/lib/puppet/pops/issues.rb +0 -5
  118. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  119. data/lib/puppet/pops/model/ast.pp +0 -42
  120. data/lib/puppet/pops/model/ast.rb +0 -290
  121. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  122. data/lib/puppet/pops/model/factory.rb +0 -45
  123. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  124. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  125. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  126. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  127. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  128. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  129. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  130. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  131. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  132. data/lib/puppet/pops/types/type_parser.rb +0 -4
  133. data/lib/puppet/pops/types/types.rb +0 -1
  134. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  135. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  136. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  137. data/lib/puppet/provider.rb +0 -13
  138. data/lib/puppet/provider/nameservice.rb +0 -18
  139. data/lib/puppet/provider/package/apt.rb +4 -0
  140. data/lib/puppet/provider/package/dpkg.rb +0 -10
  141. data/lib/puppet/provider/package/gem.rb +23 -3
  142. data/lib/puppet/provider/package/pip.rb +0 -1
  143. data/lib/puppet/provider/package/pkg.rb +0 -4
  144. data/lib/puppet/provider/package/portage.rb +1 -1
  145. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  146. data/lib/puppet/provider/service/smf.rb +191 -73
  147. data/lib/puppet/provider/user/aix.rb +2 -2
  148. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  149. data/lib/puppet/reference/configuration.rb +8 -5
  150. data/lib/puppet/reference/indirection.rb +1 -1
  151. data/lib/puppet/resource.rb +1 -89
  152. data/lib/puppet/resource/catalog.rb +1 -14
  153. data/lib/puppet/resource/type.rb +3 -119
  154. data/lib/puppet/resource/type_collection.rb +3 -48
  155. data/lib/puppet/runtime.rb +1 -2
  156. data/lib/puppet/settings.rb +88 -48
  157. data/lib/puppet/settings/alias_setting.rb +37 -0
  158. data/lib/puppet/settings/base_setting.rb +26 -2
  159. data/lib/puppet/settings/integer_setting.rb +17 -0
  160. data/lib/puppet/settings/port_setting.rb +15 -0
  161. data/lib/puppet/settings/priority_setting.rb +5 -4
  162. data/lib/puppet/ssl.rb +10 -6
  163. data/lib/puppet/ssl/base.rb +3 -5
  164. data/lib/puppet/ssl/certificate.rb +0 -6
  165. data/lib/puppet/ssl/certificate_request.rb +1 -12
  166. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  167. data/lib/puppet/ssl/oids.rb +3 -1
  168. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  169. data/lib/puppet/ssl/state_machine.rb +3 -1
  170. data/lib/puppet/ssl/verifier.rb +2 -0
  171. data/lib/puppet/test/test_helper.rb +1 -3
  172. data/lib/puppet/transaction.rb +1 -7
  173. data/lib/puppet/transaction/report.rb +2 -4
  174. data/lib/puppet/type.rb +0 -76
  175. data/lib/puppet/type/file.rb +5 -7
  176. data/lib/puppet/type/file/checksum.rb +1 -1
  177. data/lib/puppet/type/file/source.rb +1 -1
  178. data/lib/puppet/type/filebucket.rb +3 -3
  179. data/lib/puppet/type/package.rb +5 -13
  180. data/lib/puppet/type/user.rb +1 -1
  181. data/lib/puppet/util/autoload.rb +1 -8
  182. data/lib/puppet/util/execution.rb +0 -11
  183. data/lib/puppet/util/http_proxy.rb +2 -215
  184. data/lib/puppet/util/monkey_patches.rb +0 -46
  185. data/lib/puppet/util/posix.rb +54 -5
  186. data/lib/puppet/util/rdoc.rb +0 -7
  187. data/lib/puppet/util/retry_action.rb +1 -1
  188. data/lib/puppet/util/rubygems.rb +5 -1
  189. data/lib/puppet/util/run_mode.rb +9 -1
  190. data/lib/puppet/util/windows.rb +3 -8
  191. data/lib/puppet/util/windows/daemon.rb +360 -0
  192. data/lib/puppet/util/windows/error.rb +1 -0
  193. data/lib/puppet/util/windows/eventlog.rb +4 -9
  194. data/lib/puppet/util/windows/file.rb +8 -242
  195. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  196. data/lib/puppet/util/windows/process.rb +4 -226
  197. data/lib/puppet/util/windows/service.rb +9 -460
  198. data/lib/puppet/util/windows/string.rb +12 -13
  199. data/lib/puppet/util/yaml.rb +0 -22
  200. data/lib/puppet/vendor/require_vendored.rb +0 -1
  201. data/lib/puppet/version.rb +1 -1
  202. data/lib/puppet/x509.rb +5 -1
  203. data/lib/puppet/x509/cert_provider.rb +29 -1
  204. data/locales/puppet.pot +629 -1314
  205. data/man/man5/puppet.conf.5 +39 -99
  206. data/man/man8/puppet-agent.8 +2 -2
  207. data/man/man8/puppet-apply.8 +2 -2
  208. data/man/man8/puppet-catalog.8 +1 -1
  209. data/man/man8/puppet-config.8 +1 -1
  210. data/man/man8/puppet-describe.8 +1 -1
  211. data/man/man8/puppet-device.8 +2 -2
  212. data/man/man8/puppet-doc.8 +1 -1
  213. data/man/man8/puppet-epp.8 +1 -1
  214. data/man/man8/puppet-facts.8 +58 -9
  215. data/man/man8/puppet-filebucket.8 +6 -6
  216. data/man/man8/puppet-generate.8 +1 -1
  217. data/man/man8/puppet-help.8 +1 -1
  218. data/man/man8/puppet-lookup.8 +1 -1
  219. data/man/man8/puppet-module.8 +1 -58
  220. data/man/man8/puppet-node.8 +4 -1
  221. data/man/man8/puppet-parser.8 +1 -1
  222. data/man/man8/puppet-plugin.8 +1 -1
  223. data/man/man8/puppet-report.8 +4 -1
  224. data/man/man8/puppet-resource.8 +1 -1
  225. data/man/man8/puppet-script.8 +2 -2
  226. data/man/man8/puppet-ssl.8 +1 -1
  227. data/man/man8/puppet.8 +2 -2
  228. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +91 -0
  229. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  230. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
  231. data/spec/integration/application/agent_spec.rb +151 -14
  232. data/spec/integration/application/apply_spec.rb +20 -1
  233. data/spec/integration/application/filebucket_spec.rb +16 -16
  234. data/spec/integration/application/help_spec.rb +2 -0
  235. data/spec/integration/application/plugin_spec.rb +23 -1
  236. data/spec/integration/defaults_spec.rb +7 -10
  237. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  238. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
  239. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
  240. data/spec/integration/network/http_pool_spec.rb +3 -21
  241. data/spec/integration/parser/catalog_spec.rb +0 -38
  242. data/spec/integration/parser/node_spec.rb +0 -9
  243. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  244. data/spec/integration/resource/type_collection_spec.rb +2 -6
  245. data/spec/integration/transaction_spec.rb +4 -9
  246. data/spec/integration/type/file_spec.rb +5 -4
  247. data/spec/integration/util/windows/adsi_spec.rb +3 -1
  248. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  249. data/spec/integration/util/windows/registry_spec.rb +0 -10
  250. data/spec/integration/util/windows/security_spec.rb +1 -1
  251. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  252. data/spec/lib/puppet_spec/settings.rb +7 -1
  253. data/spec/spec_helper.rb +3 -4
  254. data/spec/unit/agent_spec.rb +8 -8
  255. data/spec/unit/application/agent_spec.rb +0 -1
  256. data/spec/unit/application/config_spec.rb +224 -4
  257. data/spec/unit/application/facts_spec.rb +35 -0
  258. data/spec/unit/application/filebucket_spec.rb +41 -41
  259. data/spec/unit/application/ssl_spec.rb +2 -2
  260. data/spec/unit/application_spec.rb +51 -9
  261. data/spec/unit/certificate_factory_spec.rb +1 -1
  262. data/spec/unit/configurer/downloader_spec.rb +6 -2
  263. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  264. data/spec/unit/configurer_spec.rb +12 -9
  265. data/spec/unit/confine/feature_spec.rb +1 -1
  266. data/spec/unit/confine_spec.rb +8 -2
  267. data/spec/unit/context/trusted_information_spec.rb +2 -6
  268. data/spec/unit/defaults_spec.rb +26 -32
  269. data/spec/unit/environments_spec.rb +96 -22
  270. data/spec/unit/face/config_spec.rb +27 -32
  271. data/spec/unit/face/facts_spec.rb +4 -0
  272. data/spec/unit/face/node_spec.rb +14 -13
  273. data/spec/unit/face/plugin_spec.rb +73 -33
  274. data/spec/unit/file_bucket/file_spec.rb +1 -1
  275. data/spec/unit/file_serving/configuration/parser_spec.rb +22 -19
  276. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  277. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  278. data/spec/unit/file_serving/terminus_helper_spec.rb +11 -4
  279. data/spec/unit/forge/module_release_spec.rb +2 -7
  280. data/spec/unit/functions/camelcase_spec.rb +1 -1
  281. data/spec/unit/functions/capitalize_spec.rb +1 -1
  282. data/spec/unit/functions/downcase_spec.rb +1 -1
  283. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  284. data/spec/unit/functions/upcase_spec.rb +1 -1
  285. data/spec/unit/http/client_spec.rb +7 -8
  286. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  287. data/spec/unit/http/external_client_spec.rb +4 -4
  288. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  289. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  290. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  291. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  292. data/spec/unit/http/resolver_spec.rb +13 -13
  293. data/spec/unit/http/service/compiler_spec.rb +49 -62
  294. data/spec/unit/http/service/file_server_spec.rb +3 -3
  295. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  296. data/spec/unit/http/service_spec.rb +1 -2
  297. data/spec/unit/http/session_spec.rb +16 -14
  298. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  299. data/spec/unit/indirector/face_spec.rb +0 -1
  300. data/spec/unit/indirector/facts/facter_spec.rb +104 -1
  301. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  302. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  303. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
  304. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  305. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  306. data/spec/unit/indirector/file_server_spec.rb +1 -15
  307. data/spec/unit/indirector/indirection_spec.rb +8 -12
  308. data/spec/unit/indirector/node/json_spec.rb +33 -0
  309. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  310. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  311. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  312. data/spec/unit/indirector/request_spec.rb +0 -264
  313. data/spec/unit/indirector/rest_spec.rb +98 -752
  314. data/spec/unit/indirector_spec.rb +2 -2
  315. data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
  316. data/spec/unit/network/authconfig_spec.rb +2 -132
  317. data/spec/unit/network/authorization_spec.rb +2 -55
  318. data/spec/unit/network/formats_spec.rb +45 -4
  319. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -101
  320. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  321. data/spec/unit/network/http/api_spec.rb +10 -0
  322. data/spec/unit/network/http/connection_spec.rb +19 -41
  323. data/spec/unit/network/http/handler_spec.rb +0 -6
  324. data/spec/unit/network/http_pool_spec.rb +0 -4
  325. data/spec/unit/node/environment_spec.rb +33 -21
  326. data/spec/unit/node_spec.rb +2 -54
  327. data/spec/unit/parser/compiler_spec.rb +3 -19
  328. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  329. data/spec/unit/parser/resource_spec.rb +14 -8
  330. data/spec/unit/parser/templatewrapper_spec.rb +4 -3
  331. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
  332. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  333. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  334. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  335. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  336. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  337. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  338. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  339. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  340. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  341. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  342. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  343. data/spec/unit/pops/visitor_spec.rb +1 -1
  344. data/spec/unit/property_spec.rb +1 -0
  345. data/spec/unit/provider/nameservice_spec.rb +66 -122
  346. data/spec/unit/provider/package/apt_spec.rb +4 -8
  347. data/spec/unit/provider/package/base_spec.rb +6 -5
  348. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  349. data/spec/unit/provider/package/gem_spec.rb +32 -0
  350. data/spec/unit/provider/package/pacman_spec.rb +18 -12
  351. data/spec/unit/provider/package/pip_spec.rb +6 -11
  352. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
  353. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  354. data/spec/unit/provider/service/smf_spec.rb +401 -165
  355. data/spec/unit/provider/service/windows_spec.rb +0 -1
  356. data/spec/unit/provider/user/aix_spec.rb +5 -0
  357. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  358. data/spec/unit/provider/user/pw_spec.rb +2 -0
  359. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  360. data/spec/unit/provider_spec.rb +6 -20
  361. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  362. data/spec/unit/resource/type_collection_spec.rb +2 -22
  363. data/spec/unit/resource/type_spec.rb +1 -1
  364. data/spec/unit/resource_spec.rb +11 -66
  365. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  366. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  367. data/spec/unit/settings/port_setting_spec.rb +31 -0
  368. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  369. data/spec/unit/settings_spec.rb +560 -228
  370. data/spec/unit/ssl/base_spec.rb +36 -4
  371. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  372. data/spec/unit/ssl/certificate_spec.rb +2 -11
  373. data/spec/unit/ssl/ssl_provider_spec.rb +14 -8
  374. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  375. data/spec/unit/ssl/verifier_spec.rb +0 -21
  376. data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
  377. data/spec/unit/transaction/event_manager_spec.rb +14 -11
  378. data/spec/unit/transaction/report_spec.rb +0 -2
  379. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  380. data/spec/unit/transaction_spec.rb +57 -82
  381. data/spec/unit/type/file/checksum_spec.rb +6 -6
  382. data/spec/unit/type/file/content_spec.rb +1 -2
  383. data/spec/unit/type/file/ensure_spec.rb +1 -1
  384. data/spec/unit/type/file/mode_spec.rb +1 -1
  385. data/spec/unit/type/file/selinux_spec.rb +0 -2
  386. data/spec/unit/type/file/source_spec.rb +0 -1
  387. data/spec/unit/type/file_spec.rb +12 -12
  388. data/spec/unit/type/group_spec.rb +13 -6
  389. data/spec/unit/type/package_spec.rb +1 -1
  390. data/spec/unit/type/resources_spec.rb +7 -7
  391. data/spec/unit/type/service_spec.rb +1 -1
  392. data/spec/unit/type/tidy_spec.rb +0 -1
  393. data/spec/unit/type_spec.rb +22 -2
  394. data/spec/unit/util/at_fork_spec.rb +2 -2
  395. data/spec/unit/util/autoload_spec.rb +5 -1
  396. data/spec/unit/util/backups_spec.rb +1 -4
  397. data/spec/unit/util/execution_spec.rb +15 -40
  398. data/spec/unit/util/inifile_spec.rb +6 -14
  399. data/spec/unit/util/log_spec.rb +8 -7
  400. data/spec/unit/util/logging_spec.rb +3 -3
  401. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  402. data/spec/unit/util/posix_spec.rb +363 -15
  403. data/spec/unit/util/rubygems_spec.rb +2 -2
  404. data/spec/unit/util/run_mode_spec.rb +21 -121
  405. data/spec/unit/util/selinux_spec.rb +76 -52
  406. data/spec/unit/util/storage_spec.rb +3 -1
  407. data/spec/unit/util/suidmanager_spec.rb +44 -41
  408. data/spec/unit/util/windows/string_spec.rb +1 -3
  409. data/spec/unit/util/yaml_spec.rb +0 -54
  410. data/spec/unit/util_spec.rb +13 -24
  411. metadata +66 -170
  412. data/conf/auth.conf +0 -150
  413. data/lib/puppet/application/cert.rb +0 -76
  414. data/lib/puppet/application/key.rb +0 -4
  415. data/lib/puppet/application/man.rb +0 -4
  416. data/lib/puppet/application/status.rb +0 -4
  417. data/lib/puppet/face/key.rb +0 -16
  418. data/lib/puppet/face/man.rb +0 -145
  419. data/lib/puppet/face/module/build.rb +0 -14
  420. data/lib/puppet/face/module/generate.rb +0 -14
  421. data/lib/puppet/face/module/search.rb +0 -103
  422. data/lib/puppet/face/status.rb +0 -51
  423. data/lib/puppet/indirector/certificate/file.rb +0 -9
  424. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  425. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  426. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  427. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  428. data/lib/puppet/indirector/file_content/http.rb +0 -22
  429. data/lib/puppet/indirector/key/file.rb +0 -46
  430. data/lib/puppet/indirector/key/memory.rb +0 -7
  431. data/lib/puppet/indirector/ssl_file.rb +0 -162
  432. data/lib/puppet/indirector/status.rb +0 -3
  433. data/lib/puppet/indirector/status/local.rb +0 -12
  434. data/lib/puppet/indirector/status/rest.rb +0 -27
  435. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  436. data/lib/puppet/network/auth_config_parser.rb +0 -90
  437. data/lib/puppet/network/authstore.rb +0 -283
  438. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  439. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  440. data/lib/puppet/network/http/base_pool.rb +0 -36
  441. data/lib/puppet/network/http/compression.rb +0 -127
  442. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  443. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  444. data/lib/puppet/network/rest_controller.rb +0 -2
  445. data/lib/puppet/network/rights.rb +0 -210
  446. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  447. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  448. data/lib/puppet/parser/environment_compiler.rb +0 -202
  449. data/lib/puppet/pops/types/enumeration.rb +0 -16
  450. data/lib/puppet/resource/capability_finder.rb +0 -154
  451. data/lib/puppet/rest/errors.rb +0 -15
  452. data/lib/puppet/rest/response.rb +0 -35
  453. data/lib/puppet/rest/route.rb +0 -85
  454. data/lib/puppet/rest/routes.rb +0 -135
  455. data/lib/puppet/ssl/host.rb +0 -505
  456. data/lib/puppet/ssl/key.rb +0 -61
  457. data/lib/puppet/ssl/validator.rb +0 -61
  458. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  459. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  460. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  461. data/lib/puppet/status.rb +0 -40
  462. data/lib/puppet/util/connection.rb +0 -88
  463. data/lib/puppet/util/ssl.rb +0 -83
  464. data/lib/puppet/util/windows/api_types.rb +0 -309
  465. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  466. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  467. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  468. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  469. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  470. data/lib/puppet/vendor/pathspec/README.md +0 -53
  471. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  472. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  473. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  474. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  475. data/man/man8/puppet-key.8 +0 -126
  476. data/man/man8/puppet-man.8 +0 -76
  477. data/man/man8/puppet-status.8 +0 -108
  478. data/spec/integration/application/config_spec.rb +0 -74
  479. data/spec/integration/network/authconfig_spec.rb +0 -256
  480. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  481. data/spec/unit/application/man_spec.rb +0 -52
  482. data/spec/unit/capability_spec.rb +0 -414
  483. data/spec/unit/face/catalog_spec.rb +0 -6
  484. data/spec/unit/face/key_spec.rb +0 -9
  485. data/spec/unit/face/module/search_spec.rb +0 -231
  486. data/spec/unit/face/module_spec.rb +0 -3
  487. data/spec/unit/face/status_spec.rb +0 -9
  488. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  489. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  490. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  491. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  492. data/spec/unit/indirector/key/file_spec.rb +0 -79
  493. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  494. data/spec/unit/indirector/status/local_spec.rb +0 -10
  495. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  496. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  497. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  498. data/spec/unit/network/authstore_spec.rb +0 -422
  499. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  500. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  501. data/spec/unit/network/http/compression_spec.rb +0 -240
  502. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  503. data/spec/unit/network/http_spec.rb +0 -9
  504. data/spec/unit/network/rights_spec.rb +0 -439
  505. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  506. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  507. data/spec/unit/resource/capability_finder_spec.rb +0 -143
  508. data/spec/unit/rest/route_spec.rb +0 -132
  509. data/spec/unit/ssl/host_spec.rb +0 -650
  510. data/spec/unit/ssl/key_spec.rb +0 -173
  511. data/spec/unit/ssl/validator_spec.rb +0 -278
  512. data/spec/unit/status_spec.rb +0 -45
  513. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -178,7 +178,7 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
178
178
  # does not have a password.
179
179
  break if line =~ /^\S+:$/
180
180
 
181
- match_obj = /password = (\S+)/.match(line)
181
+ match_obj = /password\s+=\s+(\S+)/.match(line)
182
182
  end
183
183
  return :absent unless match_obj
184
184
 
@@ -211,7 +211,7 @@ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
211
211
  tempfile = Tempfile.new("puppet_#{user}_pw", :encoding => Encoding::ASCII)
212
212
  tempfile << "#{user}:#{value}\n"
213
213
  tempfile.close()
214
-
214
+
215
215
  # Options '-e', '-c', use encrypted password and clear flags
216
216
  # Must receive "user:enc_password" as input
217
217
  # command, arguments = {:failonfail => true, :combine => true}
@@ -657,14 +657,4 @@ Puppet::Type.type(:user).provide :directoryservice do
657
657
  def write_users_plist_to_disk(users_plist)
658
658
  Puppet::Util::Plist.write_plist_file(users_plist, "#{users_plist_dir}/#{@resource.name}.plist", :binary)
659
659
  end
660
-
661
- # This is a simple wrapper method for writing values to a file.
662
- def write_to_file(filename, value)
663
- Puppet.deprecation_warning("Puppet::Type.type(:user).provider(:directoryservice).write_to_file is deprecated and will be removed in Puppet 5.")
664
- begin
665
- File.open(filename, 'w') { |f| f.write(value)}
666
- rescue Errno::EACCES => detail
667
- raise Puppet::Error, "Could not write to file #{filename}: #{detail}", detail.backtrace
668
- end
669
- end
670
660
  end
@@ -24,6 +24,8 @@ config = Puppet::Util::Reference.newreference(:configuration, :depth => 1, :doc
24
24
  val = object.default
25
25
  if name.to_s == 'vardir'
26
26
  val = 'Unix/Linux: /opt/puppetlabs/puppet/cache -- Windows: C:\ProgramData\PuppetLabs\puppet\cache -- Non-root user: ~/.puppetlabs/opt/puppet/cache'
27
+ elsif name.to_s == 'publicdir'
28
+ val = 'Unix/Linux: /opt/puppetlabs/puppet/public -- Windows: C:\ProgramData\PuppetLabs\puppet\public -- Non-root user: ~/.puppetlabs/opt/puppet/public'
27
29
  elsif name.to_s == 'confdir'
28
30
  val = 'Unix/Linux: /etc/puppetlabs/puppet -- Windows: C:\ProgramData\PuppetLabs\puppet\etc -- Non-root user: ~/.puppetlabs/etc/puppet'
29
31
  elsif name.to_s == 'codedir'
@@ -55,11 +57,12 @@ config.header = <<EOT
55
57
  * Each of these settings can be specified in `puppet.conf` or on the
56
58
  command line.
57
59
  * Puppet Enterprise (PE) and open source Puppet share the configuration settings
58
- that are documented here. However, PE defaults for some settings differ from
59
- the open source Puppet defaults. Some examples of settings that have different
60
- PE defaults include `disable18n`, `environment_timeout`, `always_retry_plugins`,
61
- and the Puppet Server JRuby `max-active-instances` setting. To verify PE
62
- configuration defaults, check the `puppet.conf` file after installation.
60
+ documented here. However, PE defaults differ from open source defaults for some
61
+ settings, such as `node_terminus`, `storeconfigs`, `always_retry_plugins`,
62
+ `disable18n`, `environment_timeout` (when Code Manager is enabled), and the
63
+ Puppet Server JRuby `max-active-instances` setting. To verify PE configuration
64
+ defaults, check the `puppet.conf` or `pe-puppet-server.conf` file after
65
+ installation.
63
66
  * When using boolean settings on the command line, use `--setting` and
64
67
  `--no-setting` instead of `--setting (true|false)`. (Using `--setting false`
65
68
  results in "Error: Could not parse application options: needless argument".)
@@ -46,7 +46,7 @@ An indirector has five methods, which are mapped into HTTP verbs for the REST in
46
46
 
47
47
  These methods are available via the `indirection` class method on the indirected classes. For example:
48
48
 
49
- foo_cert = Puppet::SSL::Certificate.indirection.find('foo.example.com')
49
+ node = Puppet::Node.indirection.find('foo.example.com')
50
50
 
51
51
  At startup, each indirection is configured with a terminus.
52
52
  In most cases, this is the default terminus defined by the indirected class, but it can be overridden by the application or face, or overridden with the `route_file` configuration.
@@ -32,7 +32,6 @@ class Puppet::Resource
32
32
  ATTRIBUTES = [:file, :line, :exported].freeze
33
33
  TYPE_CLASS = 'Class'.freeze
34
34
  TYPE_NODE = 'Node'.freeze
35
- TYPE_SITE = 'Site'.freeze
36
35
 
37
36
  PCORE_TYPE_KEY = '__ptype'.freeze
38
37
  VALUE_KEY = 'value'.freeze
@@ -340,29 +339,6 @@ class Puppet::Resource
340
339
  catalog ? catalog.resource(to_s) : nil
341
340
  end
342
341
 
343
- # A resource is an application component if it exports or consumes
344
- # one or more capabilities, or if it requires a capability resource
345
- def is_application_component?
346
- return true if ! export.empty? || self[:consume]
347
- # Array(self[:require]) does not work for Puppet::Resource instances
348
- req = self[:require] || []
349
- req = [ req ] unless req.is_a?(Array)
350
- req.any? { |r| r.is_capability? }
351
- end
352
-
353
- # A resource is a capability (instance) if its underlying type is a
354
- # capability type
355
- def is_capability?
356
- !resource_type.nil? && resource_type.is_capability?
357
- end
358
-
359
- # Returns the value of the 'export' metaparam as an Array
360
- # @api private
361
- def export
362
- v = self[:export] || []
363
- v.is_a?(Array) ? v : [ v ]
364
- end
365
-
366
342
  # The resource's type implementation
367
343
  # @return [Puppet::Type, Puppet::Resource::Type]
368
344
  # @api private
@@ -377,12 +353,11 @@ class Puppet::Resource
377
353
  case type
378
354
  when TYPE_CLASS; environment.known_resource_types.hostclass(title == :main ? "" : title)
379
355
  when TYPE_NODE; environment.known_resource_types.node(title)
380
- when TYPE_SITE; environment.known_resource_types.site(nil)
381
356
  else
382
357
  result = Puppet::Type.type(type)
383
358
  if !result
384
359
  krt = environment.known_resource_types
385
- result = krt.definition(type) || krt.application(type)
360
+ result = krt.definition(type)
386
361
  end
387
362
  result
388
363
  end
@@ -515,38 +490,6 @@ class Puppet::Resource
515
490
  end
516
491
  private :missing_arguments
517
492
 
518
- # @deprecated Not used by Puppet
519
- # @api private
520
- def set_default_parameters(scope)
521
- Puppet.deprecation_warning(_('The method Puppet::Resource.set_default_parameters is deprecated and will be removed in the next major release of Puppet.'))
522
-
523
- return [] unless resource_type and resource_type.respond_to?(:arguments)
524
-
525
- unless is_a?(Puppet::Parser::Resource)
526
- fail Puppet::DevError, _("Cannot evaluate default parameters for %{resource} - not a parser resource") % { resource: self }
527
- end
528
-
529
- missing_arguments.collect do |param, default|
530
- rtype = resource_type
531
- if rtype.type == :hostclass
532
- using_bound_value = false
533
- catch(:no_such_key) do
534
- bound_value = Puppet::Pops::Lookup.search_and_merge("#{rtype.name}::#{param}", Puppet::Pops::Lookup::Invocation.new(scope), nil)
535
- # Assign bound value but don't let an undef trump a default expression
536
- unless bound_value.nil? && !default.nil?
537
- self[param.to_sym] = bound_value
538
- using_bound_value = true
539
- end
540
- end
541
- end
542
- unless using_bound_value
543
- next if default.nil?
544
- self[param.to_sym] = default.safeevaluate(scope)
545
- end
546
- param
547
- end.compact
548
- end
549
-
550
493
  def copy_as_resource
551
494
  Puppet::Resource.new(self)
552
495
  end
@@ -555,37 +498,6 @@ class Puppet::Resource
555
498
  resource_type.valid_parameter?(name)
556
499
  end
557
500
 
558
- # Verify that all required arguments are either present or
559
- # have been provided with defaults.
560
- # Must be called after 'set_default_parameters'. We can't join the methods
561
- # because Type#set_parameters needs specifically ordered behavior.
562
- #
563
- # @deprecated Not used by Puppet
564
- # @api private
565
- def validate_complete
566
- Puppet.deprecation_warning(_('The method Puppet::Resource.validate_complete is deprecated and will be removed in the next major release of Puppet.'))
567
-
568
- return unless resource_type and resource_type.respond_to?(:arguments)
569
-
570
- resource_type.arguments.each do |param, default|
571
- param = param.to_sym
572
- fail Puppet::ParseError, _("Must pass %{param} to %{resource}") % { param: param, resource: self } unless parameters.include?(param)
573
- end
574
-
575
- # Perform optional type checking
576
- arg_types = resource_type.argument_types
577
- # Parameters is a map from name, to parameter, and the parameter again has name and value
578
- parameters.each do |name, value|
579
- t = arg_types[name.to_s] # untyped, and parameters are symbols here (aargh, strings in the type)
580
- next unless t
581
- unless Puppet::Pops::Types::TypeCalculator.instance?(t, value.value)
582
- inferred_type = Puppet::Pops::Types::TypeCalculator.infer_set(value.value)
583
- actual = inferred_type.generalize()
584
- fail Puppet::ParseError, _("Expected parameter '%{name}' of '%{value0}' to have type %{value1}, got %{value2}") % { name: name, value0: self, value1: t.to_s, value2: actual.to_s }
585
- end
586
- end
587
- end
588
-
589
501
  def validate_parameter(name)
590
502
  raise Puppet::ParseError.new(_("no parameter named '%{name}'") % { name: name }, file, line) unless valid_parameter?(name)
591
503
  end
@@ -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