puppet 6.19.1 → 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 (440) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +19 -20
  4. data/README.md +1 -1
  5. data/conf/fileserver.conf +5 -10
  6. data/ext/build_defaults.yaml +1 -1
  7. data/ext/osx/file_mapping.yaml +0 -5
  8. data/ext/project_data.yaml +1 -14
  9. data/ext/redhat/puppet.spec.erb +0 -1
  10. data/ext/windows/service/daemon.rb +6 -5
  11. data/install.rb +21 -17
  12. data/lib/puppet.rb +11 -20
  13. data/lib/puppet/application.rb +172 -98
  14. data/lib/puppet/application/device.rb +100 -104
  15. data/lib/puppet/application/filebucket.rb +15 -11
  16. data/lib/puppet/application/ssl.rb +1 -1
  17. data/lib/puppet/configurer.rb +28 -33
  18. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  19. data/lib/puppet/defaults.rb +95 -159
  20. data/lib/puppet/environments.rb +10 -25
  21. data/lib/puppet/face/config.rb +10 -0
  22. data/lib/puppet/face/epp.rb +12 -2
  23. data/lib/puppet/face/facts.rb +66 -6
  24. data/lib/puppet/face/help.rb +1 -1
  25. data/lib/puppet/face/plugin.rb +5 -8
  26. data/lib/puppet/ffi/windows.rb +12 -0
  27. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  28. data/lib/puppet/ffi/windows/constants.rb +404 -0
  29. data/lib/puppet/ffi/windows/functions.rb +628 -0
  30. data/lib/puppet/ffi/windows/structs.rb +338 -0
  31. data/lib/puppet/file_serving/configuration.rb +0 -5
  32. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  33. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  34. data/lib/puppet/file_serving/mount.rb +1 -2
  35. data/lib/puppet/forge/repository.rb +0 -1
  36. data/lib/puppet/functions/epp.rb +1 -0
  37. data/lib/puppet/functions/inline_epp.rb +1 -0
  38. data/lib/puppet/generate/models/type/type.rb +4 -1
  39. data/lib/puppet/http.rb +22 -13
  40. data/lib/puppet/http/client.rb +164 -114
  41. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  42. data/lib/puppet/http/errors.rb +16 -0
  43. data/lib/puppet/http/external_client.rb +5 -7
  44. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  45. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  46. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  47. data/lib/puppet/http/proxy.rb +137 -0
  48. data/lib/puppet/http/redirector.rb +4 -12
  49. data/lib/puppet/http/resolver.rb +5 -15
  50. data/lib/puppet/http/resolver/server_list.rb +6 -10
  51. data/lib/puppet/http/resolver/settings.rb +4 -7
  52. data/lib/puppet/http/resolver/srv.rb +7 -11
  53. data/lib/puppet/http/response.rb +36 -54
  54. data/lib/puppet/http/response_converter.rb +24 -0
  55. data/lib/puppet/http/response_net_http.rb +42 -0
  56. data/lib/puppet/http/retry_after_handler.rb +4 -13
  57. data/lib/puppet/http/service.rb +12 -26
  58. data/lib/puppet/http/service/ca.rb +11 -22
  59. data/lib/puppet/http/service/compiler.rb +22 -69
  60. data/lib/puppet/http/service/file_server.rb +18 -27
  61. data/lib/puppet/http/service/puppetserver.rb +26 -12
  62. data/lib/puppet/http/service/report.rb +8 -10
  63. data/lib/puppet/http/session.rb +11 -20
  64. data/lib/puppet/{network/http → http}/site.rb +1 -2
  65. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  66. data/lib/puppet/indirector/fact_search.rb +60 -0
  67. data/lib/puppet/indirector/facts/facter.rb +24 -3
  68. data/lib/puppet/indirector/facts/json.rb +27 -0
  69. data/lib/puppet/indirector/facts/rest.rb +3 -22
  70. data/lib/puppet/indirector/facts/yaml.rb +3 -58
  71. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  72. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  73. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  74. data/lib/puppet/indirector/file_server.rb +1 -8
  75. data/lib/puppet/indirector/generic_http.rb +0 -11
  76. data/lib/puppet/indirector/json.rb +5 -1
  77. data/lib/puppet/indirector/node/json.rb +8 -0
  78. data/lib/puppet/indirector/node/rest.rb +2 -4
  79. data/lib/puppet/indirector/report/json.rb +34 -0
  80. data/lib/puppet/indirector/report/rest.rb +3 -8
  81. data/lib/puppet/indirector/request.rb +0 -101
  82. data/lib/puppet/indirector/rest.rb +12 -263
  83. data/lib/puppet/module_tool/applications.rb +0 -1
  84. data/lib/puppet/network/authconfig.rb +2 -96
  85. data/lib/puppet/network/authorization.rb +13 -35
  86. data/lib/puppet/network/formats.rb +2 -1
  87. data/lib/puppet/network/http.rb +3 -3
  88. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  89. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  90. data/lib/puppet/network/http/connection.rb +247 -316
  91. data/lib/puppet/network/http/handler.rb +0 -1
  92. data/lib/puppet/network/http_pool.rb +16 -34
  93. data/lib/puppet/node.rb +1 -30
  94. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  95. data/lib/puppet/pal/pal_impl.rb +73 -18
  96. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  97. data/lib/puppet/parser/compiler.rb +0 -198
  98. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  99. data/lib/puppet/parser/resource.rb +0 -69
  100. data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
  101. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  102. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  103. data/lib/puppet/pops/issues.rb +0 -5
  104. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  105. data/lib/puppet/pops/model/ast.pp +0 -42
  106. data/lib/puppet/pops/model/ast.rb +0 -290
  107. data/lib/puppet/pops/model/factory.rb +0 -45
  108. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  109. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  110. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  111. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  112. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  113. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  114. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  115. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  116. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  117. data/lib/puppet/pops/types/type_parser.rb +0 -4
  118. data/lib/puppet/pops/types/types.rb +0 -1
  119. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  120. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  121. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  122. data/lib/puppet/provider.rb +0 -13
  123. data/lib/puppet/provider/nameservice.rb +0 -18
  124. data/lib/puppet/provider/package/dpkg.rb +0 -10
  125. data/lib/puppet/provider/package/gem.rb +23 -3
  126. data/lib/puppet/provider/package/pip.rb +0 -1
  127. data/lib/puppet/provider/package/pkg.rb +0 -4
  128. data/lib/puppet/provider/package/portage.rb +1 -1
  129. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  130. data/lib/puppet/provider/service/smf.rb +191 -73
  131. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  132. data/lib/puppet/reference/configuration.rb +2 -0
  133. data/lib/puppet/reference/indirection.rb +1 -1
  134. data/lib/puppet/resource.rb +1 -89
  135. data/lib/puppet/resource/catalog.rb +1 -14
  136. data/lib/puppet/resource/type.rb +3 -119
  137. data/lib/puppet/resource/type_collection.rb +3 -48
  138. data/lib/puppet/runtime.rb +1 -2
  139. data/lib/puppet/settings.rb +45 -33
  140. data/lib/puppet/settings/base_setting.rb +26 -2
  141. data/lib/puppet/settings/integer_setting.rb +17 -0
  142. data/lib/puppet/settings/port_setting.rb +15 -0
  143. data/lib/puppet/settings/priority_setting.rb +5 -4
  144. data/lib/puppet/ssl.rb +10 -6
  145. data/lib/puppet/ssl/base.rb +3 -5
  146. data/lib/puppet/ssl/certificate.rb +0 -6
  147. data/lib/puppet/ssl/certificate_request.rb +1 -12
  148. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  149. data/lib/puppet/ssl/oids.rb +3 -1
  150. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  151. data/lib/puppet/ssl/state_machine.rb +3 -1
  152. data/lib/puppet/ssl/verifier.rb +2 -0
  153. data/lib/puppet/test/test_helper.rb +1 -3
  154. data/lib/puppet/transaction.rb +1 -7
  155. data/lib/puppet/transaction/report.rb +2 -4
  156. data/lib/puppet/type.rb +0 -76
  157. data/lib/puppet/type/file.rb +5 -7
  158. data/lib/puppet/type/file/checksum.rb +1 -1
  159. data/lib/puppet/type/file/source.rb +1 -1
  160. data/lib/puppet/type/filebucket.rb +3 -3
  161. data/lib/puppet/type/package.rb +5 -13
  162. data/lib/puppet/util/execution.rb +0 -11
  163. data/lib/puppet/util/http_proxy.rb +2 -215
  164. data/lib/puppet/util/monkey_patches.rb +0 -46
  165. data/lib/puppet/util/rdoc.rb +0 -7
  166. data/lib/puppet/util/retry_action.rb +1 -1
  167. data/lib/puppet/util/rubygems.rb +5 -1
  168. data/lib/puppet/util/run_mode.rb +9 -1
  169. data/lib/puppet/util/windows.rb +3 -8
  170. data/lib/puppet/util/windows/daemon.rb +360 -0
  171. data/lib/puppet/util/windows/error.rb +1 -0
  172. data/lib/puppet/util/windows/eventlog.rb +4 -9
  173. data/lib/puppet/util/windows/file.rb +8 -242
  174. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  175. data/lib/puppet/util/windows/process.rb +4 -226
  176. data/lib/puppet/util/windows/service.rb +9 -460
  177. data/lib/puppet/util/windows/string.rb +12 -13
  178. data/lib/puppet/util/yaml.rb +0 -22
  179. data/lib/puppet/vendor/require_vendored.rb +0 -1
  180. data/lib/puppet/version.rb +1 -1
  181. data/lib/puppet/x509.rb +5 -1
  182. data/lib/puppet/x509/cert_provider.rb +29 -1
  183. data/locales/puppet.pot +531 -1232
  184. data/man/man5/puppet.conf.5 +37 -97
  185. data/man/man8/puppet-agent.8 +1 -1
  186. data/man/man8/puppet-apply.8 +1 -1
  187. data/man/man8/puppet-catalog.8 +1 -1
  188. data/man/man8/puppet-config.8 +1 -1
  189. data/man/man8/puppet-describe.8 +1 -1
  190. data/man/man8/puppet-device.8 +1 -1
  191. data/man/man8/puppet-doc.8 +1 -1
  192. data/man/man8/puppet-epp.8 +1 -1
  193. data/man/man8/puppet-facts.8 +55 -9
  194. data/man/man8/puppet-filebucket.8 +6 -6
  195. data/man/man8/puppet-generate.8 +1 -1
  196. data/man/man8/puppet-help.8 +1 -1
  197. data/man/man8/puppet-lookup.8 +1 -1
  198. data/man/man8/puppet-module.8 +1 -58
  199. data/man/man8/puppet-node.8 +4 -1
  200. data/man/man8/puppet-parser.8 +1 -1
  201. data/man/man8/puppet-plugin.8 +1 -1
  202. data/man/man8/puppet-report.8 +4 -1
  203. data/man/man8/puppet-resource.8 +1 -1
  204. data/man/man8/puppet-script.8 +1 -1
  205. data/man/man8/puppet-ssl.8 +1 -1
  206. data/man/man8/puppet.8 +2 -2
  207. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  208. data/spec/integration/application/agent_spec.rb +24 -11
  209. data/spec/integration/application/apply_spec.rb +1 -1
  210. data/spec/integration/application/filebucket_spec.rb +16 -16
  211. data/spec/integration/application/help_spec.rb +2 -0
  212. data/spec/integration/application/plugin_spec.rb +23 -1
  213. data/spec/integration/defaults_spec.rb +7 -3
  214. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  215. data/spec/integration/network/http_pool_spec.rb +3 -21
  216. data/spec/integration/parser/catalog_spec.rb +0 -38
  217. data/spec/integration/parser/node_spec.rb +0 -9
  218. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  219. data/spec/integration/type/file_spec.rb +5 -4
  220. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  221. data/spec/integration/util/windows/security_spec.rb +1 -1
  222. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  223. data/spec/lib/puppet_spec/settings.rb +7 -1
  224. data/spec/spec_helper.rb +2 -0
  225. data/spec/unit/agent_spec.rb +0 -2
  226. data/spec/unit/application/config_spec.rb +224 -4
  227. data/spec/unit/application/facts_spec.rb +35 -0
  228. data/spec/unit/application/filebucket_spec.rb +41 -39
  229. data/spec/unit/application/ssl_spec.rb +2 -2
  230. data/spec/unit/certificate_factory_spec.rb +1 -1
  231. data/spec/unit/configurer/downloader_spec.rb +6 -2
  232. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  233. data/spec/unit/configurer_spec.rb +12 -9
  234. data/spec/unit/context/trusted_information_spec.rb +2 -6
  235. data/spec/unit/defaults_spec.rb +77 -28
  236. data/spec/unit/environments_spec.rb +0 -3
  237. data/spec/unit/face/config_spec.rb +27 -32
  238. data/spec/unit/face/facts_spec.rb +4 -0
  239. data/spec/unit/face/plugin_spec.rb +73 -33
  240. data/spec/unit/file_bucket/file_spec.rb +1 -1
  241. data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
  242. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  243. data/spec/unit/functions/camelcase_spec.rb +1 -1
  244. data/spec/unit/functions/capitalize_spec.rb +1 -1
  245. data/spec/unit/functions/downcase_spec.rb +1 -1
  246. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  247. data/spec/unit/functions/upcase_spec.rb +1 -1
  248. data/spec/unit/http/client_spec.rb +7 -8
  249. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  250. data/spec/unit/http/external_client_spec.rb +4 -4
  251. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  252. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  253. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  254. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  255. data/spec/unit/http/resolver_spec.rb +13 -13
  256. data/spec/unit/http/service/compiler_spec.rb +49 -62
  257. data/spec/unit/http/service/file_server_spec.rb +3 -3
  258. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  259. data/spec/unit/http/service_spec.rb +1 -2
  260. data/spec/unit/http/session_spec.rb +16 -14
  261. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  262. data/spec/unit/indirector/facts/facter_spec.rb +97 -0
  263. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  264. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  265. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  266. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  267. data/spec/unit/indirector/file_server_spec.rb +1 -15
  268. data/spec/unit/indirector/node/json_spec.rb +33 -0
  269. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  270. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  271. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  272. data/spec/unit/indirector/request_spec.rb +0 -264
  273. data/spec/unit/indirector/rest_spec.rb +98 -752
  274. data/spec/unit/network/authconfig_spec.rb +2 -132
  275. data/spec/unit/network/authorization_spec.rb +2 -55
  276. data/spec/unit/network/formats_spec.rb +4 -4
  277. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -97
  278. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  279. data/spec/unit/network/http/api_spec.rb +10 -0
  280. data/spec/unit/network/http/connection_spec.rb +19 -41
  281. data/spec/unit/network/http/handler_spec.rb +0 -6
  282. data/spec/unit/network/http_pool_spec.rb +0 -4
  283. data/spec/unit/node/environment_spec.rb +33 -21
  284. data/spec/unit/node_spec.rb +2 -54
  285. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  286. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  287. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  288. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  289. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  290. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  291. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  292. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  293. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  294. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  295. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  296. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  297. data/spec/unit/pops/visitor_spec.rb +1 -1
  298. data/spec/unit/provider/nameservice_spec.rb +0 -57
  299. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  300. data/spec/unit/provider/package/gem_spec.rb +32 -0
  301. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  302. data/spec/unit/provider/service/smf_spec.rb +401 -165
  303. data/spec/unit/provider/service/windows_spec.rb +0 -1
  304. data/spec/unit/provider_spec.rb +0 -12
  305. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  306. data/spec/unit/resource/type_collection_spec.rb +2 -22
  307. data/spec/unit/resource_spec.rb +0 -56
  308. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  309. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  310. data/spec/unit/settings/port_setting_spec.rb +31 -0
  311. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  312. data/spec/unit/settings_spec.rb +423 -236
  313. data/spec/unit/ssl/base_spec.rb +36 -3
  314. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  315. data/spec/unit/ssl/certificate_spec.rb +2 -11
  316. data/spec/unit/ssl/ssl_provider_spec.rb +11 -8
  317. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  318. data/spec/unit/ssl/verifier_spec.rb +0 -21
  319. data/spec/unit/transaction/report_spec.rb +0 -2
  320. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  321. data/spec/unit/transaction_spec.rb +45 -79
  322. data/spec/unit/type/file/checksum_spec.rb +6 -6
  323. data/spec/unit/type/file/content_spec.rb +1 -1
  324. data/spec/unit/type/file/ensure_spec.rb +1 -1
  325. data/spec/unit/type/file/mode_spec.rb +1 -1
  326. data/spec/unit/type/file/source_spec.rb +0 -1
  327. data/spec/unit/type/file_spec.rb +12 -6
  328. data/spec/unit/type/package_spec.rb +1 -1
  329. data/spec/unit/type_spec.rb +20 -0
  330. data/spec/unit/util/backups_spec.rb +0 -2
  331. data/spec/unit/util/execution_spec.rb +0 -29
  332. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  333. data/spec/unit/util/rubygems_spec.rb +2 -2
  334. data/spec/unit/util/run_mode_spec.rb +21 -121
  335. data/spec/unit/util/windows/string_spec.rb +1 -3
  336. data/spec/unit/util/yaml_spec.rb +0 -54
  337. data/spec/unit/util_spec.rb +0 -18
  338. metadata +50 -176
  339. data/conf/auth.conf +0 -150
  340. data/lib/puppet/application/cert.rb +0 -76
  341. data/lib/puppet/application/key.rb +0 -4
  342. data/lib/puppet/application/man.rb +0 -4
  343. data/lib/puppet/application/status.rb +0 -4
  344. data/lib/puppet/face/key.rb +0 -16
  345. data/lib/puppet/face/man.rb +0 -145
  346. data/lib/puppet/face/module/build.rb +0 -14
  347. data/lib/puppet/face/module/generate.rb +0 -14
  348. data/lib/puppet/face/module/search.rb +0 -103
  349. data/lib/puppet/face/status.rb +0 -51
  350. data/lib/puppet/indirector/certificate/file.rb +0 -9
  351. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  352. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  353. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  354. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  355. data/lib/puppet/indirector/file_content/http.rb +0 -22
  356. data/lib/puppet/indirector/key/file.rb +0 -46
  357. data/lib/puppet/indirector/key/memory.rb +0 -7
  358. data/lib/puppet/indirector/ssl_file.rb +0 -162
  359. data/lib/puppet/indirector/status.rb +0 -3
  360. data/lib/puppet/indirector/status/local.rb +0 -12
  361. data/lib/puppet/indirector/status/rest.rb +0 -27
  362. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  363. data/lib/puppet/network/auth_config_parser.rb +0 -90
  364. data/lib/puppet/network/authstore.rb +0 -283
  365. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  366. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  367. data/lib/puppet/network/http/base_pool.rb +0 -36
  368. data/lib/puppet/network/http/compression.rb +0 -127
  369. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  370. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  371. data/lib/puppet/network/rest_controller.rb +0 -2
  372. data/lib/puppet/network/rights.rb +0 -210
  373. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  374. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  375. data/lib/puppet/parser/environment_compiler.rb +0 -202
  376. data/lib/puppet/pops/types/enumeration.rb +0 -16
  377. data/lib/puppet/resource/capability_finder.rb +0 -154
  378. data/lib/puppet/rest/errors.rb +0 -15
  379. data/lib/puppet/rest/response.rb +0 -35
  380. data/lib/puppet/rest/route.rb +0 -85
  381. data/lib/puppet/rest/routes.rb +0 -135
  382. data/lib/puppet/ssl/host.rb +0 -505
  383. data/lib/puppet/ssl/key.rb +0 -61
  384. data/lib/puppet/ssl/validator.rb +0 -61
  385. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  386. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  387. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  388. data/lib/puppet/status.rb +0 -40
  389. data/lib/puppet/util/connection.rb +0 -88
  390. data/lib/puppet/util/ssl.rb +0 -83
  391. data/lib/puppet/util/windows/api_types.rb +0 -309
  392. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  393. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  394. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  395. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  396. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  397. data/lib/puppet/vendor/pathspec/README.md +0 -53
  398. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  399. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  400. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  401. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  402. data/man/man8/puppet-key.8 +0 -126
  403. data/man/man8/puppet-man.8 +0 -76
  404. data/man/man8/puppet-status.8 +0 -108
  405. data/spec/integration/application/config_spec.rb +0 -74
  406. data/spec/integration/network/authconfig_spec.rb +0 -256
  407. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  408. data/spec/unit/application/man_spec.rb +0 -52
  409. data/spec/unit/capability_spec.rb +0 -414
  410. data/spec/unit/face/catalog_spec.rb +0 -6
  411. data/spec/unit/face/key_spec.rb +0 -9
  412. data/spec/unit/face/module/search_spec.rb +0 -231
  413. data/spec/unit/face/module_spec.rb +0 -3
  414. data/spec/unit/face/status_spec.rb +0 -9
  415. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  416. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  417. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  418. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  419. data/spec/unit/indirector/key/file_spec.rb +0 -79
  420. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  421. data/spec/unit/indirector/status/local_spec.rb +0 -10
  422. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  423. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  424. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  425. data/spec/unit/network/authstore_spec.rb +0 -422
  426. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  427. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  428. data/spec/unit/network/http/compression_spec.rb +0 -240
  429. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  430. data/spec/unit/network/http_spec.rb +0 -9
  431. data/spec/unit/network/rights_spec.rb +0 -439
  432. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  433. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  434. data/spec/unit/resource/capability_finder_spec.rb +0 -143
  435. data/spec/unit/rest/route_spec.rb +0 -132
  436. data/spec/unit/ssl/host_spec.rb +0 -650
  437. data/spec/unit/ssl/key_spec.rb +0 -173
  438. data/spec/unit/ssl/validator_spec.rb +0 -278
  439. data/spec/unit/status_spec.rb +0 -45
  440. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Dir, :if => Puppet::Util::Platform.windows? do
4
- it "should always have the PERSONAL constant defined" do
5
- expect(described_class).to be_const_defined(:PERSONAL)
6
- end
7
-
8
- it "should not raise any errors when accessing the PERSONAL constant" do
9
- expect { described_class::PERSONAL }.not_to raise_error
10
- end
11
- end
@@ -1,52 +0,0 @@
1
- require 'spec_helper'
2
- require 'puppet/face'
3
-
4
- describe Puppet::Face[:man, :current] do
5
- let(:pager) { '/path/to/our/pager' }
6
-
7
- around do |example|
8
- Puppet::Util.withenv('MANPAGER' => pager) do
9
- example.run
10
- end
11
- end
12
-
13
- it 'is deprecated' do
14
- expect(subject).to be_deprecated
15
- end
16
-
17
- it 'has a man action' do
18
- expect(subject).to be_action(:man)
19
- end
20
-
21
- it 'accepts a call with no arguments' do
22
- expect { subject.man }.to output(/USAGE: puppet man <action>/).to_stdout
23
- end
24
-
25
- it 'raises an ArgumentError when given too many arguments' do
26
- expect {
27
- subject.man(:man, 'agent', 'extra')
28
- }.to raise_error(ArgumentError)
29
- .and output(/USAGE: puppet man <action>/).to_stdout
30
- end
31
-
32
- it "exits with 0 when generating man documentation for each available application" do
33
- # turn off deprecation warning
34
- Puppet[:disable_warnings] = ['deprecations']
35
-
36
- allow(Puppet::Util).to receive(:which).with('ronn').and_return(nil)
37
- allow(Puppet::Util).to receive(:which).with(pager).and_return(pager)
38
-
39
- Puppet::Application.available_application_names.each do |name|
40
- next if %w{man face_base indirection_base}.include? name
41
-
42
- app = Puppet::Application[:man]
43
- app.command_line.args << 'man' << name
44
-
45
- expect {
46
- allow(IO).to receive(:popen).with(pager, 'w:UTF-8').and_yield($stdout)
47
- app.run
48
- }.to exit_with(0)
49
- .and output(/puppet-#{name}/m).to_stdout
50
- end
51
- end
52
- end
@@ -1,414 +0,0 @@
1
- require 'spec_helper'
2
- require 'puppet_spec/compiler'
3
-
4
- describe 'Capability types' do
5
- include PuppetSpec::Compiler
6
- let(:env) { Puppet::Node::Environment.create(:testing, []) }
7
- let(:node) { Puppet::Node.new('test', :environment => env) }
8
- let(:loaders) { Puppet::Pops::Loaders.new(env) }
9
-
10
- before(:each) do
11
- allow_any_instance_of(Puppet::Parser::Compiler).to receive(:loaders).and_return(loaders)
12
- Puppet.push_context({:loaders => loaders, :current_environment => env})
13
- Puppet::Type.newtype :cap, :is_capability => true do
14
- newparam :name
15
- newparam :host
16
- end
17
- end
18
-
19
- after(:each) do
20
- Puppet::Type.rmtype(:cap)
21
- Puppet.pop_context()
22
- end
23
-
24
- context 'annotations' do
25
- it "adds a blueprint for a produced resource" do
26
- catalog = compile_to_catalog(<<-MANIFEST, node)
27
- define test($hostname) {
28
- notify { "hostname ${hostname}":}
29
- }
30
-
31
- Test produces Cap {
32
- host => $hostname
33
- }
34
- MANIFEST
35
-
36
- krt = catalog.environment_instance.known_resource_types
37
- type = krt.definition(:test)
38
- expect(type.produces).to be_instance_of(Array)
39
- prd = type.produces.first
40
-
41
- expect(prd).to be_instance_of(Hash)
42
- expect(prd[:capability]).to eq("Cap")
43
- expect(prd[:mappings]).to be_instance_of(Hash)
44
- expect(prd[:mappings]["host"]).to be_instance_of(Puppet::Parser::AST::PopsBridge::Expression)
45
- end
46
-
47
- it "adds a blueprint for a consumed resource" do
48
- catalog = compile_to_catalog(<<-MANIFEST, node)
49
- define test($hostname) {
50
- notify { "hostname ${hostname}":}
51
- }
52
-
53
- Test consumes Cap {
54
- host => $hostname
55
- }
56
- MANIFEST
57
-
58
- krt = catalog.environment_instance.known_resource_types
59
- type = krt.definition(:test)
60
- expect(type.produces).to be_instance_of(Array)
61
- cns = type.consumes.first
62
-
63
- expect(cns).to be_instance_of(Hash)
64
- expect(cns[:capability]).to eq("Cap")
65
- expect(cns[:mappings]).to be_instance_of(Hash)
66
- expect(cns[:mappings]["host"]).to be_instance_of(Puppet::Parser::AST::PopsBridge::Expression)
67
- end
68
-
69
- it 'can place define and consumes/produces in separate manifests' do
70
- parse_results = []
71
- parser = Puppet::Parser::ParserFactory.parser
72
-
73
- parser.string = <<-MANIFEST
74
- define test($hostname) {
75
- notify { "hostname ${hostname}":}
76
- }
77
- MANIFEST
78
- parse_results << parser.parse
79
-
80
- parser.string = <<-MANIFEST
81
- Test consumes Cap {
82
- host => $hostname
83
- }
84
- MANIFEST
85
- parse_results << parser.parse
86
-
87
- main = Puppet::Parser::AST::Hostclass.new('', :code => Puppet::Parser::ParserFactory.code_merger.concatenate(parse_results))
88
- allow_any_instance_of(Puppet::Node::Environment).to receive(:perform_initial_import).and_return(main)
89
-
90
- type = compile_to_catalog(nil).environment_instance.known_resource_types.definition(:test)
91
- expect(type.produces).to be_instance_of(Array)
92
- cns = type.consumes.first
93
-
94
- expect(cns).to be_instance_of(Hash)
95
- expect(cns[:capability]).to eq('Cap')
96
- expect(cns[:mappings]).to be_instance_of(Hash)
97
- expect(cns[:mappings]['host']).to be_instance_of(Puppet::Parser::AST::PopsBridge::Expression)
98
- end
99
-
100
- it 'can place use a qualified name for defines that produces capabilities' do
101
- parse_results = []
102
- parser = Puppet::Parser::ParserFactory.parser
103
-
104
- parser.string = <<-MANIFEST
105
- class mod {
106
- define test($hostname) {
107
- notify { "hostname ${hostname}":}
108
- }
109
- }
110
- include mod
111
- MANIFEST
112
- parse_results << parser.parse
113
-
114
- parser.string = <<-MANIFEST
115
- Mod::Test consumes Cap {
116
- host => $hostname
117
- }
118
- MANIFEST
119
- parse_results << parser.parse
120
-
121
- main = Puppet::Parser::AST::Hostclass.new('', :code => Puppet::Parser::ParserFactory.code_merger.concatenate(parse_results))
122
- allow_any_instance_of(Puppet::Node::Environment).to receive(:perform_initial_import).and_return(main)
123
-
124
- type = compile_to_catalog(nil).environment_instance.known_resource_types.definition('Mod::Test')
125
- expect(type.produces).to be_instance_of(Array)
126
- cns = type.consumes.first
127
-
128
- expect(cns).to be_instance_of(Hash)
129
- expect(cns[:capability]).to eq('Cap')
130
- expect(cns[:mappings]).to be_instance_of(Hash)
131
- expect(cns[:mappings]['host']).to be_instance_of(Puppet::Parser::AST::PopsBridge::Expression)
132
- end
133
-
134
- it "does not allow operator '+>' in a mapping" do
135
- expect do
136
- compile_to_catalog(<<-MANIFEST, node)
137
- define test($hostname) {
138
- notify { "hostname ${hostname}":}
139
- }
140
-
141
- Test consumes Cap {
142
- host +> $hostname
143
- }
144
- MANIFEST
145
- end.to raise_error(Puppet::ParseErrorWithIssue, /Illegal \+> operation.*This operator can not be used in a Capability Mapping/)
146
- end
147
-
148
- it "does not allow operator '*=>' in a mapping" do
149
- expect do
150
- compile_to_catalog(<<-MANIFEST, node)
151
- define test($hostname) {
152
- notify { "hostname ${hostname}":}
153
- }
154
-
155
- Test consumes Cap {
156
- *=> { host => $hostname }
157
- }
158
- MANIFEST
159
- end.to raise_error(Puppet::ParseError, /The operator '\* =>' in a Capability Mapping is not supported/)
160
- end
161
-
162
- it "does not allow 'before' relationship to capability mapping" do
163
- expect do
164
- compile_to_catalog(<<-MANIFEST, node)
165
- define test() {
166
- notify { "hello":}
167
- }
168
-
169
- Test consumes Cap {}
170
-
171
- test { one: before => Cap[cap] }
172
- MANIFEST
173
- end.to raise_error(Puppet::Error, /'before' is not a valid relationship to a capability/)
174
- end
175
-
176
- ["produces", "consumes"].each do |kw|
177
- it "creates an error when #{kw} references nonexistent type" do
178
- manifest = <<-MANIFEST
179
- Test #{kw} Cap {
180
- host => $hostname
181
- }
182
- MANIFEST
183
-
184
- expect {
185
- compile_to_catalog(manifest, node)
186
- }.to raise_error(Puppet::Error,
187
- /#{kw} clause references nonexistent type Test/)
188
- end
189
- end
190
- end
191
-
192
- context 'exporting a capability' do
193
- it "does not add produced resources that are not exported" do
194
- manifest = <<-MANIFEST
195
- define test($hostname) {
196
- notify { "hostname ${hostname}":}
197
- }
198
-
199
- Test produces Cap {
200
- host => $hostname
201
- }
202
-
203
- test { one: hostname => "ahost" }
204
- MANIFEST
205
- catalog = compile_to_catalog(manifest, node)
206
- expect(catalog.resource("Test[one]")).to be_instance_of(Puppet::Resource)
207
- expect(catalog.resource_keys.find { |type, _| type == "Cap" }).to be_nil
208
- end
209
-
210
- it "adds produced resources that are exported" do
211
- manifest = <<-MANIFEST
212
- define test($hostname) {
213
- notify { "hostname ${hostname}":}
214
- }
215
-
216
- # The $hostname in the produces clause does not refer to this variable,
217
- # instead, it referes to the hostname property of the Test resource
218
- # that is producing the Cap
219
- $hostname = "other_host"
220
-
221
- Test produces Cap {
222
- host => $hostname
223
- }
224
-
225
- test { one: hostname => "ahost", export => Cap[two] }
226
- MANIFEST
227
- catalog = compile_to_catalog(manifest, node)
228
- expect(catalog.resource("Test[one]")).to be_instance_of(Puppet::Resource)
229
-
230
- caps = catalog.resource_keys.select { |type, _| type == "Cap" }
231
- expect(caps.size).to eq(1)
232
-
233
- cap = catalog.resource("Cap[two]")
234
- expect(cap).to be_instance_of(Puppet::Resource)
235
- expect(cap["require"]).to eq("Test[one]")
236
- expect(cap["host"]).to eq("ahost")
237
- expect(cap.resource_type).to eq(Puppet::Type::Cap)
238
- expect(cap.tags.any? { |t| t == 'producer:testing' }).to eq(true)
239
- end
240
- end
241
-
242
- context 'consuming a capability' do
243
- def make_catalog(instance)
244
- manifest = <<-MANIFEST
245
- define test($hostname = nohost) {
246
- notify { "hostname ${hostname}":}
247
- }
248
-
249
- Test consumes Cap {
250
- hostname => $host
251
- }
252
- MANIFEST
253
- compile_to_catalog(manifest + instance, node)
254
- end
255
-
256
- def mock_cap_finding
257
- cap = Puppet::Resource.new("Cap", "two")
258
- cap["host"] = "ahost"
259
- expect(Puppet::Resource::CapabilityFinder).to receive(:find).and_return(cap)
260
- cap
261
- end
262
-
263
- it "does not fetch a consumed resource when consume metaparam not set" do
264
- expect(Puppet::Resource::CapabilityFinder).not_to receive(:find)
265
- catalog = make_catalog("test { one: }")
266
- expect(catalog.resource_keys.find { |type, _| type == "Cap" }).to be_nil
267
- expect(catalog.resource("Test", "one")["hostname"]).to eq("nohost")
268
- end
269
-
270
- it "sets hostname from consumed capability" do
271
- cap = mock_cap_finding
272
- catalog = make_catalog("test { one: consume => Cap[two] }")
273
- expect(catalog.resource("Cap[two]")).to eq(cap)
274
- expect(catalog.resource("Cap[two]")["host"]).to eq("ahost")
275
- expect(catalog.resource("Test", "one")["hostname"]).to eq("ahost")
276
- end
277
-
278
- it "does not override explicit hostname property when consuming" do
279
- cap = mock_cap_finding
280
- catalog = make_catalog("test { one: hostname => other_host, consume => Cap[two] }")
281
- expect(catalog.resource("Cap[two]")).to eq(cap)
282
- expect(catalog.resource("Cap[two]")["host"]).to eq("ahost")
283
- expect(catalog.resource("Test", "one")["hostname"]).to eq("other_host")
284
- end
285
-
286
- it "fetches required capability" do
287
- cap = mock_cap_finding
288
- catalog = make_catalog("test { one: require => Cap[two] }")
289
- expect(catalog.resource("Cap[two]")).to eq(cap)
290
- expect(catalog.resource("Cap[two]")["host"]).to eq("ahost")
291
- expect(catalog.resource("Test", "one")["hostname"]).to eq("nohost")
292
- end
293
-
294
- ['export', 'consume'].each do |metaparam|
295
-
296
- it "validates that #{metaparam} metaparameter rejects values that are not resources" do
297
- expect { make_catalog("test { one: #{metaparam} => 'hello' }") }.to raise_error(Puppet::Error, /not a resource/)
298
- end
299
-
300
- it "validates that #{metaparam} metaparameter rejects resources that are not capability resources" do
301
- expect { make_catalog("notify{hello:} test { one: #{metaparam} => Notify[hello] }") }.to raise_error(Puppet::Error, /not a capability resource/)
302
- end
303
- end
304
-
305
- context 'producing/consuming resources' do
306
-
307
- let(:ral) do
308
- compile_to_ral(<<-MANIFEST, node)
309
- define producer() {
310
- notify { "producer":}
311
- }
312
-
313
- define consumer() {
314
- notify { $title:}
315
- }
316
-
317
- Producer produces Cap {}
318
-
319
- Consumer consumes Cap {}
320
-
321
- producer {x: export => Cap[cap]}
322
- consumer {x: consume => Cap[cap]}
323
- consumer {y: require => Cap[cap]}
324
- MANIFEST
325
- end
326
-
327
- let(:graph) do
328
- graph = Puppet::Graph::RelationshipGraph.new(Puppet::Graph::SequentialPrioritizer.new)
329
- graph.populate_from(ral)
330
- graph
331
- end
332
-
333
- let(:capability) { ral.resource('Cap[cap]') }
334
-
335
- it 'the produced resource depends on the producer' do
336
- expect(graph.dependencies(capability).map {|d| d.to_s }).to include('Producer[x]')
337
- end
338
-
339
- it 'the consumer depends on the consumed resource' do
340
- expect(graph.dependents(capability).map {|d| d.to_s }).to include('Consumer[x]')
341
- end
342
-
343
- it 'the consumer depends on the required resource' do
344
- expect(graph.dependents(capability).map {|d| d.to_s }).to include('Consumer[y]')
345
- end
346
- end
347
-
348
- context 'producing/consuming resources to/from classes' do
349
-
350
- let(:ral) do
351
- compile_to_ral(<<-MANIFEST, node)
352
- define test($hostname) {
353
- notify { $hostname:}
354
- }
355
-
356
- class producer($host) {
357
- notify { p: }
358
- }
359
-
360
- class consumer($host) {
361
- test { c: hostname => $host }
362
- }
363
-
364
- Class[producer] produces Cap {}
365
-
366
- Class[consumer] consumes Cap {}
367
-
368
- class { producer: host => 'produced.host', export => Cap[one]}
369
- class { consumer: consume => Cap[one]}
370
- MANIFEST
371
- end
372
-
373
- let(:graph) do
374
- graph = Puppet::Graph::RelationshipGraph.new(Puppet::Graph::SequentialPrioritizer.new)
375
- graph.populate_from(ral)
376
- graph
377
- end
378
-
379
- let(:capability) { ral.resource('Cap[one]') }
380
-
381
- it 'the produced resource depends on the producer' do
382
- expect(graph.dependencies(capability).map {|d| d.to_s }).to include('Class[Producer]')
383
- end
384
-
385
- it 'the consumer depends on the consumed resource' do
386
- expect(graph.dependents(capability).map {|d| d.to_s }).to include('Class[Consumer]')
387
- end
388
-
389
- it 'resource in the consumer class gets values from producer via the capability resource' do
390
- expect(graph.dependents(capability).map {|d| d.to_s }).to include('Notify[produced.host]')
391
- end
392
- end
393
- end
394
-
395
- context 'and aliased resources' do
396
- let(:drive) { Puppet::Util::Platform.windows? ? 'C:' : '' }
397
- let(:code) { <<-PUPPET }
398
- $dir='#{drive}/tmp/test'
399
- $same_dir='#{drive}/tmp/test/'
400
-
401
- file {$dir:
402
- ensure => directory
403
- }
404
-
405
- file { $same_dir:
406
- ensure => directory
407
- }
408
- PUPPET
409
-
410
- it 'fails if a resource is defined and then redefined using name that results in the same alias' do
411
- expect { compile_to_ral(code) }.to raise_error(/resource \["File", "#{drive}\/tmp\/test"\] already declared/)
412
- end
413
- end
414
- end