puppet 6.23.0 → 7.0.0

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

Potentially problematic release.


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

Files changed (581) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/Gemfile +1 -3
  4. data/Gemfile.lock +34 -46
  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/osx/puppet.plist +0 -2
  10. data/ext/project_data.yaml +1 -14
  11. data/ext/redhat/puppet.spec.erb +0 -1
  12. data/ext/windows/service/daemon.rb +6 -5
  13. data/install.rb +21 -17
  14. data/lib/puppet.rb +11 -20
  15. data/lib/puppet/application.rb +178 -108
  16. data/lib/puppet/application/agent.rb +4 -12
  17. data/lib/puppet/application/apply.rb +2 -4
  18. data/lib/puppet/application/device.rb +100 -106
  19. data/lib/puppet/application/filebucket.rb +13 -9
  20. data/lib/puppet/application/resource.rb +1 -2
  21. data/lib/puppet/application/script.rb +0 -2
  22. data/lib/puppet/application/ssl.rb +1 -12
  23. data/lib/puppet/application_support.rb +0 -7
  24. data/lib/puppet/configurer.rb +30 -45
  25. data/lib/puppet/configurer/downloader.rb +1 -2
  26. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  27. data/lib/puppet/defaults.rb +100 -192
  28. data/lib/puppet/environments.rb +60 -74
  29. data/lib/puppet/face/facts.rb +5 -103
  30. data/lib/puppet/face/help.rb +1 -1
  31. data/lib/puppet/face/plugin.rb +5 -8
  32. data/lib/puppet/ffi/windows.rb +12 -0
  33. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  34. data/lib/puppet/ffi/windows/constants.rb +404 -0
  35. data/lib/puppet/ffi/windows/functions.rb +628 -0
  36. data/lib/puppet/ffi/windows/structs.rb +338 -0
  37. data/lib/puppet/file_serving/configuration.rb +0 -5
  38. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  39. data/lib/puppet/file_serving/fileset.rb +2 -14
  40. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  41. data/lib/puppet/file_serving/mount.rb +1 -2
  42. data/lib/puppet/file_system/memory_file.rb +1 -8
  43. data/lib/puppet/file_system/windows.rb +0 -2
  44. data/lib/puppet/forge/repository.rb +0 -1
  45. data/lib/puppet/functions/all.rb +1 -1
  46. data/lib/puppet/functions/camelcase.rb +1 -1
  47. data/lib/puppet/functions/capitalize.rb +2 -2
  48. data/lib/puppet/functions/downcase.rb +2 -2
  49. data/lib/puppet/functions/get.rb +5 -5
  50. data/lib/puppet/functions/group_by.rb +5 -13
  51. data/lib/puppet/functions/lest.rb +1 -1
  52. data/lib/puppet/functions/new.rb +100 -100
  53. data/lib/puppet/functions/partition.rb +4 -12
  54. data/lib/puppet/functions/require.rb +5 -5
  55. data/lib/puppet/functions/sort.rb +3 -3
  56. data/lib/puppet/functions/tree_each.rb +9 -7
  57. data/lib/puppet/functions/type.rb +4 -4
  58. data/lib/puppet/functions/upcase.rb +2 -2
  59. data/lib/puppet/generate/models/type/type.rb +4 -1
  60. data/lib/puppet/http.rb +22 -13
  61. data/lib/puppet/http/client.rb +164 -114
  62. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  63. data/lib/puppet/http/errors.rb +16 -0
  64. data/lib/puppet/http/external_client.rb +5 -7
  65. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  66. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  67. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  68. data/lib/puppet/http/proxy.rb +137 -0
  69. data/lib/puppet/http/redirector.rb +4 -12
  70. data/lib/puppet/http/resolver.rb +5 -15
  71. data/lib/puppet/http/resolver/server_list.rb +10 -25
  72. data/lib/puppet/http/resolver/settings.rb +4 -7
  73. data/lib/puppet/http/resolver/srv.rb +7 -11
  74. data/lib/puppet/http/response.rb +36 -54
  75. data/lib/puppet/http/response_converter.rb +24 -0
  76. data/lib/puppet/http/response_net_http.rb +42 -0
  77. data/lib/puppet/http/retry_after_handler.rb +4 -13
  78. data/lib/puppet/http/service.rb +12 -26
  79. data/lib/puppet/http/service/ca.rb +11 -22
  80. data/lib/puppet/http/service/compiler.rb +22 -138
  81. data/lib/puppet/http/service/file_server.rb +19 -29
  82. data/lib/puppet/http/service/puppetserver.rb +26 -12
  83. data/lib/puppet/http/service/report.rb +8 -10
  84. data/lib/puppet/http/session.rb +11 -20
  85. data/lib/puppet/{network/http → http}/site.rb +1 -2
  86. data/lib/puppet/indirector/catalog/compiler.rb +0 -1
  87. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  88. data/lib/puppet/indirector/facts/rest.rb +3 -22
  89. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  90. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  91. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  92. data/lib/puppet/indirector/file_server.rb +1 -8
  93. data/lib/puppet/indirector/generic_http.rb +0 -11
  94. data/lib/puppet/indirector/node/rest.rb +2 -4
  95. data/lib/puppet/indirector/report/rest.rb +3 -8
  96. data/lib/puppet/indirector/request.rb +0 -101
  97. data/lib/puppet/indirector/rest.rb +12 -263
  98. data/lib/puppet/module_tool/applications.rb +0 -1
  99. data/lib/puppet/module_tool/applications/installer.rb +2 -48
  100. data/lib/puppet/module_tool/errors/shared.rb +2 -17
  101. data/lib/puppet/network/authconfig.rb +2 -96
  102. data/lib/puppet/network/authorization.rb +13 -35
  103. data/lib/puppet/network/formats.rb +0 -67
  104. data/lib/puppet/network/http.rb +3 -3
  105. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  106. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  107. data/lib/puppet/network/http/connection.rb +247 -316
  108. data/lib/puppet/network/http/handler.rb +0 -1
  109. data/lib/puppet/network/http_pool.rb +16 -34
  110. data/lib/puppet/node.rb +1 -30
  111. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  112. data/lib/puppet/pal/pal_impl.rb +3 -1
  113. data/lib/puppet/parser/ast/leaf.rb +2 -3
  114. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  115. data/lib/puppet/parser/compiler.rb +0 -198
  116. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  117. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  118. data/lib/puppet/parser/resource.rb +0 -69
  119. data/lib/puppet/parser/templatewrapper.rb +1 -1
  120. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  121. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  122. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  123. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  124. data/lib/puppet/pops/issues.rb +0 -5
  125. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  126. data/lib/puppet/pops/model/ast.pp +0 -42
  127. data/lib/puppet/pops/model/ast.rb +0 -290
  128. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  129. data/lib/puppet/pops/model/factory.rb +0 -45
  130. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  131. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  132. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  133. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  134. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  135. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  136. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  137. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  138. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  139. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  140. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  141. data/lib/puppet/pops/types/type_parser.rb +0 -4
  142. data/lib/puppet/pops/types/types.rb +0 -1
  143. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  144. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  145. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  146. data/lib/puppet/property/list.rb +1 -1
  147. data/lib/puppet/provider.rb +0 -13
  148. data/lib/puppet/provider/group/groupadd.rb +8 -13
  149. data/lib/puppet/provider/nameservice.rb +0 -18
  150. data/lib/puppet/provider/package/apt.rb +2 -34
  151. data/lib/puppet/provider/package/aptitude.rb +0 -6
  152. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  153. data/lib/puppet/provider/package/dpkg.rb +0 -10
  154. data/lib/puppet/provider/package/gem.rb +23 -3
  155. data/lib/puppet/provider/package/nim.rb +6 -11
  156. data/lib/puppet/provider/package/pip.rb +0 -1
  157. data/lib/puppet/provider/package/pkg.rb +0 -4
  158. data/lib/puppet/provider/package/portage.rb +1 -1
  159. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  160. data/lib/puppet/provider/service/debian.rb +0 -2
  161. data/lib/puppet/provider/service/smf.rb +191 -73
  162. data/lib/puppet/provider/service/systemd.rb +4 -14
  163. data/lib/puppet/provider/service/windows.rb +0 -38
  164. data/lib/puppet/provider/user/aix.rb +2 -2
  165. data/lib/puppet/provider/user/directoryservice.rb +10 -33
  166. data/lib/puppet/provider/user/useradd.rb +8 -62
  167. data/lib/puppet/reference/configuration.rb +8 -7
  168. data/lib/puppet/reference/indirection.rb +1 -1
  169. data/lib/puppet/resource.rb +1 -89
  170. data/lib/puppet/resource/catalog.rb +1 -14
  171. data/lib/puppet/resource/type.rb +3 -119
  172. data/lib/puppet/resource/type_collection.rb +3 -48
  173. data/lib/puppet/runtime.rb +1 -2
  174. data/lib/puppet/settings.rb +73 -66
  175. data/lib/puppet/settings/environment_conf.rb +0 -1
  176. data/lib/puppet/settings/integer_setting.rb +17 -0
  177. data/lib/puppet/settings/port_setting.rb +15 -0
  178. data/lib/puppet/settings/priority_setting.rb +5 -4
  179. data/lib/puppet/ssl.rb +10 -6
  180. data/lib/puppet/ssl/base.rb +3 -5
  181. data/lib/puppet/ssl/certificate.rb +0 -6
  182. data/lib/puppet/ssl/certificate_request.rb +1 -12
  183. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  184. data/lib/puppet/ssl/oids.rb +3 -1
  185. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  186. data/lib/puppet/ssl/state_machine.rb +3 -1
  187. data/lib/puppet/ssl/verifier.rb +2 -0
  188. data/lib/puppet/test/test_helper.rb +1 -3
  189. data/lib/puppet/transaction.rb +1 -7
  190. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  191. data/lib/puppet/transaction/report.rb +2 -4
  192. data/lib/puppet/type.rb +0 -76
  193. data/lib/puppet/type/file.rb +6 -26
  194. data/lib/puppet/type/file/checksum.rb +1 -1
  195. data/lib/puppet/type/file/selcontext.rb +1 -1
  196. data/lib/puppet/type/file/source.rb +1 -1
  197. data/lib/puppet/type/filebucket.rb +3 -3
  198. data/lib/puppet/type/package.rb +8 -16
  199. data/lib/puppet/type/service.rb +38 -18
  200. data/lib/puppet/type/tidy.rb +2 -21
  201. data/lib/puppet/type/user.rb +20 -38
  202. data/lib/puppet/util/autoload.rb +8 -1
  203. data/lib/puppet/util/execution.rb +0 -11
  204. data/lib/puppet/util/http_proxy.rb +2 -215
  205. data/lib/puppet/util/monkey_patches.rb +0 -53
  206. data/lib/puppet/util/posix.rb +5 -54
  207. data/lib/puppet/util/rdoc.rb +0 -7
  208. data/lib/puppet/util/retry_action.rb +1 -1
  209. data/lib/puppet/util/run_mode.rb +9 -1
  210. data/lib/puppet/util/selinux.rb +4 -30
  211. data/lib/puppet/util/windows.rb +3 -8
  212. data/lib/puppet/util/windows/adsi.rb +0 -46
  213. data/lib/puppet/util/windows/daemon.rb +360 -0
  214. data/lib/puppet/util/windows/error.rb +1 -0
  215. data/lib/puppet/util/windows/eventlog.rb +4 -9
  216. data/lib/puppet/util/windows/file.rb +8 -242
  217. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  218. data/lib/puppet/util/windows/principal.rb +2 -9
  219. data/lib/puppet/util/windows/process.rb +4 -226
  220. data/lib/puppet/util/windows/service.rb +9 -460
  221. data/lib/puppet/util/windows/sid.rb +2 -4
  222. data/lib/puppet/util/windows/string.rb +12 -13
  223. data/lib/puppet/util/yaml.rb +0 -22
  224. data/lib/puppet/vendor/require_vendored.rb +0 -1
  225. data/lib/puppet/version.rb +1 -1
  226. data/lib/puppet/x509.rb +5 -1
  227. data/lib/puppet/x509/cert_provider.rb +29 -1
  228. data/locales/puppet.pot +651 -1436
  229. data/man/man5/puppet.conf.5 +266 -354
  230. data/man/man8/puppet-agent.8 +2 -2
  231. data/man/man8/puppet-apply.8 +2 -2
  232. data/man/man8/puppet-catalog.8 +1 -1
  233. data/man/man8/puppet-config.8 +1 -1
  234. data/man/man8/puppet-describe.8 +1 -1
  235. data/man/man8/puppet-device.8 +2 -2
  236. data/man/man8/puppet-doc.8 +1 -1
  237. data/man/man8/puppet-epp.8 +1 -1
  238. data/man/man8/puppet-facts.8 +4 -47
  239. data/man/man8/puppet-filebucket.8 +4 -4
  240. data/man/man8/puppet-generate.8 +1 -1
  241. data/man/man8/puppet-help.8 +1 -1
  242. data/man/man8/puppet-lookup.8 +1 -1
  243. data/man/man8/puppet-module.8 +1 -58
  244. data/man/man8/puppet-node.8 +1 -1
  245. data/man/man8/puppet-parser.8 +1 -1
  246. data/man/man8/puppet-plugin.8 +1 -1
  247. data/man/man8/puppet-report.8 +1 -1
  248. data/man/man8/puppet-resource.8 +1 -1
  249. data/man/man8/puppet-script.8 +2 -2
  250. data/man/man8/puppet-ssl.8 +1 -5
  251. data/man/man8/puppet.8 +2 -2
  252. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  253. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  254. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  255. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  256. data/spec/fixtures/ssl/ca.pem +35 -57
  257. data/spec/fixtures/ssl/crl.pem +18 -28
  258. data/spec/fixtures/ssl/ec-key.pem +11 -11
  259. data/spec/fixtures/ssl/ec.pem +24 -33
  260. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  261. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  262. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  263. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  264. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  265. data/spec/fixtures/ssl/intermediate.pem +36 -57
  266. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  267. data/spec/fixtures/ssl/pluto.pem +30 -52
  268. data/spec/fixtures/ssl/request-key.pem +57 -107
  269. data/spec/fixtures/ssl/request.pem +26 -47
  270. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  271. data/spec/fixtures/ssl/revoked.pem +30 -52
  272. data/spec/fixtures/ssl/signed-key.pem +57 -107
  273. data/spec/fixtures/ssl/signed.pem +30 -52
  274. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  275. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  276. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  277. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  278. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  279. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  280. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  281. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  282. data/spec/integration/application/agent_spec.rb +27 -171
  283. data/spec/integration/application/apply_spec.rb +1 -20
  284. data/spec/integration/application/filebucket_spec.rb +16 -16
  285. data/spec/integration/application/help_spec.rb +2 -0
  286. data/spec/integration/application/plugin_spec.rb +24 -2
  287. data/spec/integration/defaults_spec.rb +14 -3
  288. data/spec/integration/http/client_spec.rb +0 -12
  289. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  290. data/spec/integration/network/http_pool_spec.rb +3 -21
  291. data/spec/integration/parser/catalog_spec.rb +0 -38
  292. data/spec/integration/parser/node_spec.rb +0 -9
  293. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  294. data/spec/integration/resource/type_collection_spec.rb +6 -2
  295. data/spec/integration/transaction_spec.rb +9 -4
  296. data/spec/integration/type/file_spec.rb +5 -4
  297. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  298. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  299. data/spec/integration/util/windows/principal_spec.rb +0 -21
  300. data/spec/integration/util/windows/registry_spec.rb +10 -6
  301. data/spec/integration/util/windows/security_spec.rb +1 -1
  302. data/spec/lib/matchers/include.rb +27 -0
  303. data/spec/lib/matchers/include_spec.rb +32 -0
  304. data/spec/lib/puppet/test_ca.rb +2 -2
  305. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  306. data/spec/lib/puppet_spec/settings.rb +1 -0
  307. data/spec/spec_helper.rb +7 -12
  308. data/spec/unit/agent_spec.rb +6 -10
  309. data/spec/unit/application/agent_spec.rb +3 -7
  310. data/spec/unit/application/facts_spec.rb +12 -456
  311. data/spec/unit/application/filebucket_spec.rb +43 -39
  312. data/spec/unit/application/ssl_spec.rb +2 -25
  313. data/spec/unit/application_spec.rb +9 -51
  314. data/spec/unit/certificate_factory_spec.rb +1 -1
  315. data/spec/unit/configurer/downloader_spec.rb +6 -8
  316. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  317. data/spec/unit/configurer_spec.rb +12 -32
  318. data/spec/unit/confine/feature_spec.rb +1 -1
  319. data/spec/unit/confine_spec.rb +2 -8
  320. data/spec/unit/context/trusted_information_spec.rb +2 -6
  321. data/spec/unit/defaults_spec.rb +68 -54
  322. data/spec/unit/environments_spec.rb +68 -224
  323. data/spec/unit/face/node_spec.rb +11 -0
  324. data/spec/unit/face/plugin_spec.rb +73 -33
  325. data/spec/unit/file_bucket/file_spec.rb +1 -1
  326. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
  327. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  328. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  329. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  330. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  331. data/spec/unit/file_system_spec.rb +0 -9
  332. data/spec/unit/forge/module_release_spec.rb +7 -2
  333. data/spec/unit/functions/camelcase_spec.rb +1 -1
  334. data/spec/unit/functions/capitalize_spec.rb +1 -1
  335. data/spec/unit/functions/downcase_spec.rb +1 -1
  336. data/spec/unit/functions/upcase_spec.rb +1 -1
  337. data/spec/unit/gettext/config_spec.rb +0 -12
  338. data/spec/unit/http/client_spec.rb +7 -8
  339. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  340. data/spec/unit/http/external_client_spec.rb +4 -4
  341. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  342. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  343. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  344. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  345. data/spec/unit/http/resolver_spec.rb +13 -13
  346. data/spec/unit/http/service/compiler_spec.rb +0 -185
  347. data/spec/unit/http/service/file_server_spec.rb +3 -3
  348. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  349. data/spec/unit/http/service_spec.rb +0 -1
  350. data/spec/unit/http/session_spec.rb +16 -14
  351. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  352. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -14
  353. data/spec/unit/indirector/face_spec.rb +1 -0
  354. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  355. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  356. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  357. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  358. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  359. data/spec/unit/indirector/file_server_spec.rb +1 -15
  360. data/spec/unit/indirector/indirection_spec.rb +12 -8
  361. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  362. data/spec/unit/indirector/request_spec.rb +0 -264
  363. data/spec/unit/indirector/rest_spec.rb +98 -752
  364. data/spec/unit/indirector_spec.rb +2 -2
  365. data/spec/unit/module_tool/applications/installer_spec.rb +0 -66
  366. data/spec/unit/network/authconfig_spec.rb +2 -129
  367. data/spec/unit/network/authorization_spec.rb +2 -55
  368. data/spec/unit/network/formats_spec.rb +4 -45
  369. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  370. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  371. data/spec/unit/network/http/api_spec.rb +10 -0
  372. data/spec/unit/network/http/connection_spec.rb +19 -41
  373. data/spec/unit/network/http/handler_spec.rb +0 -1
  374. data/spec/unit/network/http_pool_spec.rb +0 -4
  375. data/spec/unit/node/environment_spec.rb +33 -21
  376. data/spec/unit/node_spec.rb +2 -54
  377. data/spec/unit/parser/compiler_spec.rb +19 -3
  378. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  379. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  380. data/spec/unit/parser/resource_spec.rb +8 -14
  381. data/spec/unit/parser/templatewrapper_spec.rb +3 -4
  382. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  383. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  384. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  385. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  386. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  387. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  388. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  389. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  390. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  391. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  392. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  393. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  394. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  395. data/spec/unit/pops/visitor_spec.rb +1 -1
  396. data/spec/unit/property_spec.rb +0 -1
  397. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  398. data/spec/unit/provider/nameservice_spec.rb +64 -122
  399. data/spec/unit/provider/package/apt_spec.rb +23 -28
  400. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  401. data/spec/unit/provider/package/base_spec.rb +5 -6
  402. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  403. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  404. data/spec/unit/provider/package/gem_spec.rb +32 -0
  405. data/spec/unit/provider/package/nim_spec.rb +0 -42
  406. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  407. data/spec/unit/provider/package/pip_spec.rb +11 -6
  408. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  409. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  410. data/spec/unit/provider/service/init_spec.rb +0 -1
  411. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  412. data/spec/unit/provider/service/smf_spec.rb +401 -165
  413. data/spec/unit/provider/service/systemd_spec.rb +8 -53
  414. data/spec/unit/provider/service/windows_spec.rb +0 -203
  415. data/spec/unit/provider/user/aix_spec.rb +0 -5
  416. data/spec/unit/provider/user/directoryservice_spec.rb +35 -67
  417. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  418. data/spec/unit/provider/user/pw_spec.rb +0 -2
  419. data/spec/unit/provider/user/useradd_spec.rb +3 -71
  420. data/spec/unit/provider_spec.rb +8 -18
  421. data/spec/unit/resource/catalog_spec.rb +1 -1
  422. data/spec/unit/resource/type_collection_spec.rb +2 -22
  423. data/spec/unit/resource/type_spec.rb +1 -1
  424. data/spec/unit/resource_spec.rb +10 -67
  425. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  426. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  427. data/spec/unit/settings/port_setting_spec.rb +31 -0
  428. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  429. data/spec/unit/settings_spec.rb +23 -13
  430. data/spec/unit/ssl/base_spec.rb +37 -3
  431. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  432. data/spec/unit/ssl/certificate_spec.rb +2 -11
  433. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  434. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  435. data/spec/unit/ssl/verifier_spec.rb +0 -21
  436. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  437. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  438. data/spec/unit/transaction/report_spec.rb +0 -2
  439. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  440. data/spec/unit/transaction_spec.rb +55 -96
  441. data/spec/unit/type/file/checksum_spec.rb +6 -6
  442. data/spec/unit/type/file/content_spec.rb +2 -1
  443. data/spec/unit/type/file/ensure_spec.rb +1 -1
  444. data/spec/unit/type/file/mode_spec.rb +1 -1
  445. data/spec/unit/type/file/selinux_spec.rb +5 -3
  446. data/spec/unit/type/file/source_spec.rb +0 -1
  447. data/spec/unit/type/file_spec.rb +18 -6
  448. data/spec/unit/type/group_spec.rb +6 -13
  449. data/spec/unit/type/package_spec.rb +1 -1
  450. data/spec/unit/type/resources_spec.rb +7 -7
  451. data/spec/unit/type/service_spec.rb +189 -60
  452. data/spec/unit/type/tidy_spec.rb +8 -17
  453. data/spec/unit/type/user_spec.rb +0 -45
  454. data/spec/unit/type_spec.rb +22 -2
  455. data/spec/unit/util/at_fork_spec.rb +2 -2
  456. data/spec/unit/util/autoload_spec.rb +1 -5
  457. data/spec/unit/util/backups_spec.rb +2 -3
  458. data/spec/unit/util/execution_spec.rb +11 -44
  459. data/spec/unit/util/inifile_spec.rb +14 -6
  460. data/spec/unit/util/log_spec.rb +7 -8
  461. data/spec/unit/util/logging_spec.rb +3 -3
  462. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  463. data/spec/unit/util/posix_spec.rb +15 -363
  464. data/spec/unit/util/run_mode_spec.rb +21 -121
  465. data/spec/unit/util/selinux_spec.rb +68 -163
  466. data/spec/unit/util/storage_spec.rb +1 -3
  467. data/spec/unit/util/suidmanager_spec.rb +41 -44
  468. data/spec/unit/util/windows/sid_spec.rb +0 -6
  469. data/spec/unit/util/windows/string_spec.rb +1 -3
  470. data/spec/unit/util/yaml_spec.rb +0 -54
  471. data/spec/unit/util_spec.rb +6 -31
  472. data/tasks/generate_cert_fixtures.rake +2 -2
  473. metadata +44 -181
  474. data/conf/auth.conf +0 -150
  475. data/lib/puppet/application/cert.rb +0 -76
  476. data/lib/puppet/application/key.rb +0 -4
  477. data/lib/puppet/application/man.rb +0 -4
  478. data/lib/puppet/application/status.rb +0 -4
  479. data/lib/puppet/face/key.rb +0 -16
  480. data/lib/puppet/face/man.rb +0 -145
  481. data/lib/puppet/face/module/build.rb +0 -14
  482. data/lib/puppet/face/module/generate.rb +0 -14
  483. data/lib/puppet/face/module/search.rb +0 -103
  484. data/lib/puppet/face/status.rb +0 -51
  485. data/lib/puppet/ffi/posix.rb +0 -10
  486. data/lib/puppet/ffi/posix/constants.rb +0 -14
  487. data/lib/puppet/ffi/posix/functions.rb +0 -24
  488. data/lib/puppet/indirector/certificate/file.rb +0 -9
  489. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  490. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  491. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  492. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  493. data/lib/puppet/indirector/file_content/http.rb +0 -22
  494. data/lib/puppet/indirector/key/file.rb +0 -46
  495. data/lib/puppet/indirector/key/memory.rb +0 -7
  496. data/lib/puppet/indirector/ssl_file.rb +0 -162
  497. data/lib/puppet/indirector/status.rb +0 -3
  498. data/lib/puppet/indirector/status/local.rb +0 -12
  499. data/lib/puppet/indirector/status/rest.rb +0 -27
  500. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  501. data/lib/puppet/network/auth_config_parser.rb +0 -90
  502. data/lib/puppet/network/authstore.rb +0 -283
  503. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  504. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  505. data/lib/puppet/network/http/base_pool.rb +0 -36
  506. data/lib/puppet/network/http/compression.rb +0 -127
  507. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  508. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  509. data/lib/puppet/network/rest_controller.rb +0 -2
  510. data/lib/puppet/network/rights.rb +0 -210
  511. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  512. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  513. data/lib/puppet/parser/environment_compiler.rb +0 -202
  514. data/lib/puppet/pops/types/enumeration.rb +0 -16
  515. data/lib/puppet/resource/capability_finder.rb +0 -154
  516. data/lib/puppet/rest/errors.rb +0 -15
  517. data/lib/puppet/rest/response.rb +0 -35
  518. data/lib/puppet/rest/route.rb +0 -85
  519. data/lib/puppet/rest/routes.rb +0 -135
  520. data/lib/puppet/settings/alias_setting.rb +0 -37
  521. data/lib/puppet/ssl/host.rb +0 -505
  522. data/lib/puppet/ssl/key.rb +0 -61
  523. data/lib/puppet/ssl/validator.rb +0 -61
  524. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  525. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  526. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  527. data/lib/puppet/status.rb +0 -40
  528. data/lib/puppet/util/connection.rb +0 -88
  529. data/lib/puppet/util/fact_dif.rb +0 -81
  530. data/lib/puppet/util/ssl.rb +0 -83
  531. data/lib/puppet/util/windows/api_types.rb +0 -309
  532. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  533. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  534. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  535. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  536. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  537. data/lib/puppet/vendor/pathspec/README.md +0 -53
  538. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  539. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  540. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  541. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  542. data/man/man8/puppet-key.8 +0 -126
  543. data/man/man8/puppet-man.8 +0 -76
  544. data/man/man8/puppet-status.8 +0 -108
  545. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  546. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  547. data/spec/integration/application/resource_spec.rb +0 -30
  548. data/spec/integration/network/authconfig_spec.rb +0 -256
  549. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  550. data/spec/unit/application/man_spec.rb +0 -52
  551. data/spec/unit/capability_spec.rb +0 -414
  552. data/spec/unit/face/key_spec.rb +0 -9
  553. data/spec/unit/face/module/search_spec.rb +0 -231
  554. data/spec/unit/face/status_spec.rb +0 -9
  555. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  556. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  557. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  558. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  559. data/spec/unit/indirector/key/file_spec.rb +0 -78
  560. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  561. data/spec/unit/indirector/status/local_spec.rb +0 -10
  562. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  563. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  564. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  565. data/spec/unit/network/authstore_spec.rb +0 -422
  566. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  567. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  568. data/spec/unit/network/http/compression_spec.rb +0 -240
  569. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  570. data/spec/unit/network/http_spec.rb +0 -9
  571. data/spec/unit/network/rights_spec.rb +0 -439
  572. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  573. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  574. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  575. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  576. data/spec/unit/rest/route_spec.rb +0 -132
  577. data/spec/unit/ssl/host_spec.rb +0 -645
  578. data/spec/unit/ssl/key_spec.rb +0 -173
  579. data/spec/unit/ssl/validator_spec.rb +0 -278
  580. data/spec/unit/status_spec.rb +0 -45
  581. 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
@@ -1074,41 +1090,48 @@ Generated on #{Time.now}.
1074
1090
  # Create the necessary objects to use a section. This is idempotent;
1075
1091
  # you can 'use' a section as many times as you want.
1076
1092
  def use(*sections)
1077
- 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) }
1078
1096
 
1079
- # add :server if sections include :master or :master if sections include :server
1080
- sections |= [:master, :server] if (sections & [:master, :server]).any?
1097
+ Puppet.warning(":master section deprecated in favor of :server section") if sections.include?(:master)
1081
1098
 
1082
- sections = sections.collect { |s| s.to_sym }
1083
- 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?
1084
1101
 
1085
- return if sections.empty?
1102
+ sections = sections.collect { |s| s.to_sym }
1103
+ sections = sections.reject { |s| @used.include?(s) }
1086
1104
 
1087
- Puppet.debug { "Applying settings catalog for sections #{sections.join(', ')}" }
1105
+ return if sections.empty?
1088
1106
 
1089
- begin
1090
- catalog = to_catalog(*sections).to_ral
1091
- rescue => detail
1092
- Puppet.log_and_raise(detail, "Could not create resources for managing Puppet's files and directories in sections #{sections.inspect}: #{detail}")
1093
- end
1107
+ Puppet.debug { "Applying settings catalog for sections #{sections.join(', ')}" }
1094
1108
 
1095
- catalog.host_config = false
1096
- catalog.apply do |transaction|
1097
- if transaction.any_failed?
1098
- report = transaction.report
1099
- status_failures = report.resource_statuses.values.select { |r| r.failed? }
1100
- status_fail_msg = status_failures.
1101
- collect(&:events).
1102
- flatten.
1103
- select { |event| event.status == 'failure' }.
1104
- 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
1105
1114
 
1106
- 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
1107
1128
  end
1108
- end
1109
1129
 
1110
- sections.each { |s| @used << s }
1111
- @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
1112
1135
  end
1113
1136
 
1114
1137
  def valid?(param)
@@ -1262,37 +1285,27 @@ Generated on #{Time.now}.
1262
1285
  end
1263
1286
 
1264
1287
  def add_environment_resources(catalog, sections)
1288
+ path = self[:environmentpath]
1289
+ envdir = path.split(File::PATH_SEPARATOR).first if path
1265
1290
  configured_environment = self[:environment]
1266
-
1267
- if configured_environment == "production" && !production_environment_exists?
1268
- environment_path = self[:environmentpath]
1269
- first_environment_path = environment_path.split(File::PATH_SEPARATOR).first
1270
-
1271
- if Puppet::FileSystem.exist?(first_environment_path)
1272
- 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)
1273
1296
  parameters = { :ensure => 'directory' }
1274
- parameters[:mode] = '0750'
1275
- if Puppet.features.root?
1276
- parameters[:owner] = Puppet[:user] if service_user_available?
1277
- 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
1278
1303
  end
1279
- 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))
1280
1305
  end
1281
1306
  end
1282
1307
  end
1283
1308
 
1284
- def production_environment_exists?
1285
- environment_path = self[:environmentpath]
1286
- paths = environment_path.split(File::PATH_SEPARATOR)
1287
-
1288
- paths.any? do |path|
1289
- # If expected_path is a symlink, assume the source path is being managed
1290
- # elsewhere, so accept it also as a valid production environment path
1291
- expected_path = File.join(path, 'production')
1292
- Puppet::FileSystem.directory?(expected_path) || Puppet::FileSystem.symlink?(expected_path)
1293
- end
1294
- end
1295
-
1296
1309
  def add_user_resources(catalog, sections)
1297
1310
  return unless Puppet.features.root?
1298
1311
  return if Puppet::Util::Platform.windows?
@@ -1393,12 +1406,6 @@ Generated on #{Time.now}.
1393
1406
  end
1394
1407
  end
1395
1408
 
1396
- setting = @defaults[name]
1397
- if setting.respond_to?(:alias_name)
1398
- val = lookup(setting.alias_name)
1399
- return val if val
1400
- end
1401
-
1402
1409
  @defaults[name].default
1403
1410
  end
1404
1411