puppet 6.20.0-x64-mingw32 → 7.0.0-x64-mingw32

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

Potentially problematic release.


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

Files changed (484) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/Gemfile +0 -2
  4. data/Gemfile.lock +18 -24
  5. data/README.md +1 -1
  6. data/conf/fileserver.conf +5 -10
  7. data/ext/build_defaults.yaml +1 -1
  8. data/ext/osx/file_mapping.yaml +0 -5
  9. data/ext/project_data.yaml +1 -14
  10. data/ext/redhat/puppet.spec.erb +0 -1
  11. data/ext/windows/service/daemon.rb +6 -5
  12. data/install.rb +21 -17
  13. data/lib/puppet.rb +11 -20
  14. data/lib/puppet/application.rb +178 -108
  15. data/lib/puppet/application/agent.rb +0 -1
  16. data/lib/puppet/application/apply.rb +2 -3
  17. data/lib/puppet/application/device.rb +100 -105
  18. data/lib/puppet/application/filebucket.rb +13 -9
  19. data/lib/puppet/application/script.rb +0 -1
  20. data/lib/puppet/application/ssl.rb +1 -1
  21. data/lib/puppet/application_support.rb +0 -7
  22. data/lib/puppet/configurer.rb +30 -45
  23. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  24. data/lib/puppet/defaults.rb +97 -167
  25. data/lib/puppet/environments.rb +59 -58
  26. data/lib/puppet/face/facts.rb +51 -51
  27. data/lib/puppet/face/help.rb +1 -1
  28. data/lib/puppet/face/plugin.rb +5 -8
  29. data/lib/puppet/ffi/windows.rb +12 -0
  30. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  31. data/lib/puppet/ffi/windows/constants.rb +404 -0
  32. data/lib/puppet/ffi/windows/functions.rb +628 -0
  33. data/lib/puppet/ffi/windows/structs.rb +338 -0
  34. data/lib/puppet/file_serving/configuration.rb +0 -5
  35. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  36. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  37. data/lib/puppet/file_serving/mount.rb +1 -2
  38. data/lib/puppet/forge/repository.rb +0 -1
  39. data/lib/puppet/generate/models/type/type.rb +4 -1
  40. data/lib/puppet/http.rb +22 -13
  41. data/lib/puppet/http/client.rb +164 -114
  42. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  43. data/lib/puppet/http/errors.rb +16 -0
  44. data/lib/puppet/http/external_client.rb +5 -7
  45. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  46. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  47. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  48. data/lib/puppet/http/proxy.rb +137 -0
  49. data/lib/puppet/http/redirector.rb +4 -12
  50. data/lib/puppet/http/resolver.rb +5 -15
  51. data/lib/puppet/http/resolver/server_list.rb +6 -10
  52. data/lib/puppet/http/resolver/settings.rb +4 -7
  53. data/lib/puppet/http/resolver/srv.rb +7 -11
  54. data/lib/puppet/http/response.rb +36 -54
  55. data/lib/puppet/http/response_converter.rb +24 -0
  56. data/lib/puppet/http/response_net_http.rb +42 -0
  57. data/lib/puppet/http/retry_after_handler.rb +4 -13
  58. data/lib/puppet/http/service.rb +12 -26
  59. data/lib/puppet/http/service/ca.rb +11 -22
  60. data/lib/puppet/http/service/compiler.rb +22 -69
  61. data/lib/puppet/http/service/file_server.rb +18 -27
  62. data/lib/puppet/http/service/puppetserver.rb +26 -12
  63. data/lib/puppet/http/service/report.rb +8 -10
  64. data/lib/puppet/http/session.rb +11 -20
  65. data/lib/puppet/{network/http → http}/site.rb +1 -2
  66. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  67. data/lib/puppet/indirector/facts/facter.rb +24 -3
  68. data/lib/puppet/indirector/facts/rest.rb +3 -22
  69. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  70. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  71. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  72. data/lib/puppet/indirector/file_server.rb +1 -8
  73. data/lib/puppet/indirector/generic_http.rb +0 -11
  74. data/lib/puppet/indirector/node/rest.rb +2 -4
  75. data/lib/puppet/indirector/report/rest.rb +3 -8
  76. data/lib/puppet/indirector/request.rb +0 -101
  77. data/lib/puppet/indirector/rest.rb +12 -263
  78. data/lib/puppet/module_tool/applications.rb +0 -1
  79. data/lib/puppet/module_tool/applications/installer.rb +2 -48
  80. data/lib/puppet/module_tool/errors/shared.rb +2 -17
  81. data/lib/puppet/network/authconfig.rb +2 -96
  82. data/lib/puppet/network/authorization.rb +13 -35
  83. data/lib/puppet/network/http.rb +3 -3
  84. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  85. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  86. data/lib/puppet/network/http/connection.rb +247 -316
  87. data/lib/puppet/network/http/handler.rb +0 -1
  88. data/lib/puppet/network/http_pool.rb +16 -34
  89. data/lib/puppet/node.rb +1 -30
  90. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  91. data/lib/puppet/pal/pal_impl.rb +3 -1
  92. data/lib/puppet/parser/ast/leaf.rb +2 -3
  93. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  94. data/lib/puppet/parser/compiler.rb +0 -198
  95. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  96. data/lib/puppet/parser/resource.rb +0 -69
  97. data/lib/puppet/parser/templatewrapper.rb +1 -1
  98. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  99. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  100. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  101. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  102. data/lib/puppet/pops/issues.rb +0 -5
  103. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  104. data/lib/puppet/pops/model/ast.pp +0 -42
  105. data/lib/puppet/pops/model/ast.rb +0 -290
  106. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  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/apt.rb +0 -4
  125. data/lib/puppet/provider/package/dpkg.rb +0 -10
  126. data/lib/puppet/provider/package/gem.rb +23 -3
  127. data/lib/puppet/provider/package/pip.rb +0 -1
  128. data/lib/puppet/provider/package/pkg.rb +0 -4
  129. data/lib/puppet/provider/package/portage.rb +1 -1
  130. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  131. data/lib/puppet/provider/service/smf.rb +191 -73
  132. data/lib/puppet/provider/user/aix.rb +2 -2
  133. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  134. data/lib/puppet/reference/configuration.rb +7 -6
  135. data/lib/puppet/reference/indirection.rb +1 -1
  136. data/lib/puppet/resource.rb +1 -89
  137. data/lib/puppet/resource/catalog.rb +1 -14
  138. data/lib/puppet/resource/type.rb +3 -119
  139. data/lib/puppet/resource/type_collection.rb +3 -48
  140. data/lib/puppet/runtime.rb +1 -2
  141. data/lib/puppet/settings.rb +73 -66
  142. data/lib/puppet/settings/integer_setting.rb +17 -0
  143. data/lib/puppet/settings/port_setting.rb +15 -0
  144. data/lib/puppet/settings/priority_setting.rb +5 -4
  145. data/lib/puppet/ssl.rb +10 -6
  146. data/lib/puppet/ssl/base.rb +3 -5
  147. data/lib/puppet/ssl/certificate.rb +0 -6
  148. data/lib/puppet/ssl/certificate_request.rb +1 -12
  149. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  150. data/lib/puppet/ssl/oids.rb +3 -1
  151. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  152. data/lib/puppet/ssl/state_machine.rb +3 -1
  153. data/lib/puppet/ssl/verifier.rb +2 -0
  154. data/lib/puppet/test/test_helper.rb +1 -3
  155. data/lib/puppet/transaction.rb +1 -7
  156. data/lib/puppet/transaction/report.rb +2 -4
  157. data/lib/puppet/type.rb +0 -76
  158. data/lib/puppet/type/file.rb +5 -7
  159. data/lib/puppet/type/file/checksum.rb +1 -1
  160. data/lib/puppet/type/file/source.rb +1 -1
  161. data/lib/puppet/type/filebucket.rb +3 -3
  162. data/lib/puppet/type/package.rb +5 -13
  163. data/lib/puppet/util/autoload.rb +8 -1
  164. data/lib/puppet/util/execution.rb +0 -11
  165. data/lib/puppet/util/http_proxy.rb +2 -215
  166. data/lib/puppet/util/monkey_patches.rb +0 -46
  167. data/lib/puppet/util/posix.rb +5 -54
  168. data/lib/puppet/util/rdoc.rb +0 -7
  169. data/lib/puppet/util/retry_action.rb +1 -1
  170. data/lib/puppet/util/run_mode.rb +9 -1
  171. data/lib/puppet/util/windows.rb +3 -8
  172. data/lib/puppet/util/windows/daemon.rb +360 -0
  173. data/lib/puppet/util/windows/error.rb +1 -0
  174. data/lib/puppet/util/windows/eventlog.rb +4 -9
  175. data/lib/puppet/util/windows/file.rb +8 -242
  176. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  177. data/lib/puppet/util/windows/process.rb +4 -226
  178. data/lib/puppet/util/windows/service.rb +9 -460
  179. data/lib/puppet/util/windows/string.rb +12 -13
  180. data/lib/puppet/util/yaml.rb +0 -22
  181. data/lib/puppet/vendor/require_vendored.rb +0 -1
  182. data/lib/puppet/version.rb +1 -1
  183. data/lib/puppet/x509.rb +5 -1
  184. data/lib/puppet/x509/cert_provider.rb +29 -1
  185. data/locales/puppet.pot +587 -1312
  186. data/man/man5/puppet.conf.5 +39 -99
  187. data/man/man8/puppet-agent.8 +2 -2
  188. data/man/man8/puppet-apply.8 +2 -2
  189. data/man/man8/puppet-catalog.8 +1 -1
  190. data/man/man8/puppet-config.8 +1 -1
  191. data/man/man8/puppet-describe.8 +1 -1
  192. data/man/man8/puppet-device.8 +2 -2
  193. data/man/man8/puppet-doc.8 +1 -1
  194. data/man/man8/puppet-epp.8 +1 -1
  195. data/man/man8/puppet-facts.8 +51 -36
  196. data/man/man8/puppet-filebucket.8 +4 -4
  197. data/man/man8/puppet-generate.8 +1 -1
  198. data/man/man8/puppet-help.8 +1 -1
  199. data/man/man8/puppet-lookup.8 +1 -1
  200. data/man/man8/puppet-module.8 +1 -58
  201. data/man/man8/puppet-node.8 +1 -1
  202. data/man/man8/puppet-parser.8 +1 -1
  203. data/man/man8/puppet-plugin.8 +1 -1
  204. data/man/man8/puppet-report.8 +1 -1
  205. data/man/man8/puppet-resource.8 +1 -1
  206. data/man/man8/puppet-script.8 +2 -2
  207. data/man/man8/puppet-ssl.8 +1 -1
  208. data/man/man8/puppet.8 +2 -2
  209. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  210. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  211. data/spec/integration/application/agent_spec.rb +27 -138
  212. data/spec/integration/application/apply_spec.rb +1 -20
  213. data/spec/integration/application/filebucket_spec.rb +16 -16
  214. data/spec/integration/application/help_spec.rb +2 -0
  215. data/spec/integration/application/plugin_spec.rb +23 -1
  216. data/spec/integration/defaults_spec.rb +14 -3
  217. data/spec/integration/network/http_pool_spec.rb +3 -21
  218. data/spec/integration/parser/catalog_spec.rb +0 -38
  219. data/spec/integration/parser/node_spec.rb +0 -9
  220. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  221. data/spec/integration/resource/type_collection_spec.rb +6 -2
  222. data/spec/integration/transaction_spec.rb +9 -4
  223. data/spec/integration/type/file_spec.rb +5 -4
  224. data/spec/integration/util/windows/adsi_spec.rb +1 -3
  225. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  226. data/spec/integration/util/windows/registry_spec.rb +10 -0
  227. data/spec/integration/util/windows/security_spec.rb +1 -1
  228. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  229. data/spec/lib/puppet_spec/settings.rb +1 -0
  230. data/spec/spec_helper.rb +6 -1
  231. data/spec/unit/agent_spec.rb +6 -10
  232. data/spec/unit/application/agent_spec.rb +1 -0
  233. data/spec/unit/application/facts_spec.rb +35 -0
  234. data/spec/unit/application/filebucket_spec.rb +43 -39
  235. data/spec/unit/application/ssl_spec.rb +2 -2
  236. data/spec/unit/application_spec.rb +9 -51
  237. data/spec/unit/certificate_factory_spec.rb +1 -1
  238. data/spec/unit/configurer/downloader_spec.rb +6 -2
  239. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  240. data/spec/unit/configurer_spec.rb +12 -9
  241. data/spec/unit/confine/feature_spec.rb +1 -1
  242. data/spec/unit/confine_spec.rb +2 -8
  243. data/spec/unit/context/trusted_information_spec.rb +2 -6
  244. data/spec/unit/defaults_spec.rb +72 -42
  245. data/spec/unit/environments_spec.rb +19 -99
  246. data/spec/unit/face/facts_spec.rb +4 -0
  247. data/spec/unit/face/node_spec.rb +11 -0
  248. data/spec/unit/face/plugin_spec.rb +73 -33
  249. data/spec/unit/file_bucket/file_spec.rb +1 -1
  250. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
  251. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  252. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  253. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  254. data/spec/unit/forge/module_release_spec.rb +7 -2
  255. data/spec/unit/functions/camelcase_spec.rb +1 -1
  256. data/spec/unit/functions/capitalize_spec.rb +1 -1
  257. data/spec/unit/functions/downcase_spec.rb +1 -1
  258. data/spec/unit/functions/upcase_spec.rb +1 -1
  259. data/spec/unit/http/client_spec.rb +7 -8
  260. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  261. data/spec/unit/http/external_client_spec.rb +4 -4
  262. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  263. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  264. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  265. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  266. data/spec/unit/http/resolver_spec.rb +13 -13
  267. data/spec/unit/http/service/compiler_spec.rb +0 -62
  268. data/spec/unit/http/service/file_server_spec.rb +3 -3
  269. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  270. data/spec/unit/http/service_spec.rb +0 -1
  271. data/spec/unit/http/session_spec.rb +16 -14
  272. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  273. data/spec/unit/indirector/face_spec.rb +1 -0
  274. data/spec/unit/indirector/facts/facter_spec.rb +98 -0
  275. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  276. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  277. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  278. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  279. data/spec/unit/indirector/file_server_spec.rb +1 -15
  280. data/spec/unit/indirector/indirection_spec.rb +12 -8
  281. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  282. data/spec/unit/indirector/request_spec.rb +0 -264
  283. data/spec/unit/indirector/rest_spec.rb +98 -752
  284. data/spec/unit/indirector_spec.rb +2 -2
  285. data/spec/unit/module_tool/applications/installer_spec.rb +0 -66
  286. data/spec/unit/network/authconfig_spec.rb +2 -129
  287. data/spec/unit/network/authorization_spec.rb +2 -55
  288. data/spec/unit/network/formats_spec.rb +4 -4
  289. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  290. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  291. data/spec/unit/network/http/api_spec.rb +10 -0
  292. data/spec/unit/network/http/connection_spec.rb +19 -41
  293. data/spec/unit/network/http/handler_spec.rb +0 -1
  294. data/spec/unit/network/http_pool_spec.rb +0 -4
  295. data/spec/unit/node/environment_spec.rb +33 -21
  296. data/spec/unit/node_spec.rb +2 -54
  297. data/spec/unit/parser/compiler_spec.rb +19 -3
  298. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  299. data/spec/unit/parser/resource_spec.rb +8 -14
  300. data/spec/unit/parser/templatewrapper_spec.rb +3 -4
  301. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  302. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  303. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  304. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  305. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  306. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  307. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  308. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  309. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  310. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  311. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  312. data/spec/unit/pops/visitor_spec.rb +1 -1
  313. data/spec/unit/property_spec.rb +0 -1
  314. data/spec/unit/provider/nameservice_spec.rb +64 -122
  315. data/spec/unit/provider/package/apt_spec.rb +8 -4
  316. data/spec/unit/provider/package/base_spec.rb +5 -6
  317. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  318. data/spec/unit/provider/package/gem_spec.rb +32 -0
  319. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  320. data/spec/unit/provider/package/pip_spec.rb +11 -6
  321. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  322. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  323. data/spec/unit/provider/service/smf_spec.rb +401 -165
  324. data/spec/unit/provider/service/windows_spec.rb +0 -1
  325. data/spec/unit/provider/user/aix_spec.rb +0 -5
  326. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  327. data/spec/unit/provider/user/pw_spec.rb +0 -2
  328. data/spec/unit/provider/user/useradd_spec.rb +0 -1
  329. data/spec/unit/provider_spec.rb +8 -18
  330. data/spec/unit/resource/type_collection_spec.rb +2 -22
  331. data/spec/unit/resource/type_spec.rb +1 -1
  332. data/spec/unit/resource_spec.rb +10 -67
  333. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  334. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  335. data/spec/unit/settings/port_setting_spec.rb +31 -0
  336. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  337. data/spec/unit/settings_spec.rb +23 -13
  338. data/spec/unit/ssl/base_spec.rb +37 -3
  339. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  340. data/spec/unit/ssl/certificate_spec.rb +2 -11
  341. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  342. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  343. data/spec/unit/ssl/verifier_spec.rb +0 -21
  344. data/spec/unit/transaction/additional_resource_generator_spec.rb +7 -3
  345. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  346. data/spec/unit/transaction/report_spec.rb +0 -2
  347. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  348. data/spec/unit/transaction_spec.rb +48 -91
  349. data/spec/unit/type/file/checksum_spec.rb +6 -6
  350. data/spec/unit/type/file/content_spec.rb +2 -1
  351. data/spec/unit/type/file/ensure_spec.rb +1 -1
  352. data/spec/unit/type/file/mode_spec.rb +1 -1
  353. data/spec/unit/type/file/selinux_spec.rb +2 -0
  354. data/spec/unit/type/file/source_spec.rb +0 -1
  355. data/spec/unit/type/file_spec.rb +18 -6
  356. data/spec/unit/type/group_spec.rb +6 -13
  357. data/spec/unit/type/package_spec.rb +1 -1
  358. data/spec/unit/type/resources_spec.rb +7 -7
  359. data/spec/unit/type/service_spec.rb +1 -1
  360. data/spec/unit/type/tidy_spec.rb +1 -0
  361. data/spec/unit/type_spec.rb +22 -2
  362. data/spec/unit/util/at_fork_spec.rb +2 -2
  363. data/spec/unit/util/autoload_spec.rb +1 -5
  364. data/spec/unit/util/backups_spec.rb +2 -3
  365. data/spec/unit/util/execution_spec.rb +11 -44
  366. data/spec/unit/util/inifile_spec.rb +14 -6
  367. data/spec/unit/util/log_spec.rb +7 -8
  368. data/spec/unit/util/logging_spec.rb +3 -3
  369. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  370. data/spec/unit/util/posix_spec.rb +15 -363
  371. data/spec/unit/util/run_mode_spec.rb +21 -121
  372. data/spec/unit/util/selinux_spec.rb +52 -76
  373. data/spec/unit/util/storage_spec.rb +1 -3
  374. data/spec/unit/util/suidmanager_spec.rb +41 -44
  375. data/spec/unit/util/windows/string_spec.rb +1 -3
  376. data/spec/unit/util/yaml_spec.rb +0 -54
  377. data/spec/unit/util_spec.rb +6 -31
  378. metadata +40 -233
  379. data/conf/auth.conf +0 -150
  380. data/lib/puppet/application/cert.rb +0 -76
  381. data/lib/puppet/application/key.rb +0 -4
  382. data/lib/puppet/application/man.rb +0 -4
  383. data/lib/puppet/application/status.rb +0 -4
  384. data/lib/puppet/face/key.rb +0 -16
  385. data/lib/puppet/face/man.rb +0 -145
  386. data/lib/puppet/face/module/build.rb +0 -14
  387. data/lib/puppet/face/module/generate.rb +0 -14
  388. data/lib/puppet/face/module/search.rb +0 -103
  389. data/lib/puppet/face/status.rb +0 -51
  390. data/lib/puppet/ffi/posix.rb +0 -10
  391. data/lib/puppet/ffi/posix/constants.rb +0 -14
  392. data/lib/puppet/ffi/posix/functions.rb +0 -24
  393. data/lib/puppet/indirector/certificate/file.rb +0 -9
  394. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  395. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  396. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  397. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  398. data/lib/puppet/indirector/file_content/http.rb +0 -22
  399. data/lib/puppet/indirector/key/file.rb +0 -46
  400. data/lib/puppet/indirector/key/memory.rb +0 -7
  401. data/lib/puppet/indirector/ssl_file.rb +0 -162
  402. data/lib/puppet/indirector/status.rb +0 -3
  403. data/lib/puppet/indirector/status/local.rb +0 -12
  404. data/lib/puppet/indirector/status/rest.rb +0 -27
  405. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  406. data/lib/puppet/network/auth_config_parser.rb +0 -90
  407. data/lib/puppet/network/authstore.rb +0 -283
  408. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  409. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  410. data/lib/puppet/network/http/base_pool.rb +0 -36
  411. data/lib/puppet/network/http/compression.rb +0 -127
  412. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  413. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  414. data/lib/puppet/network/rest_controller.rb +0 -2
  415. data/lib/puppet/network/rights.rb +0 -210
  416. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  417. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  418. data/lib/puppet/parser/environment_compiler.rb +0 -202
  419. data/lib/puppet/pops/types/enumeration.rb +0 -16
  420. data/lib/puppet/resource/capability_finder.rb +0 -154
  421. data/lib/puppet/rest/errors.rb +0 -15
  422. data/lib/puppet/rest/response.rb +0 -35
  423. data/lib/puppet/rest/route.rb +0 -85
  424. data/lib/puppet/rest/routes.rb +0 -135
  425. data/lib/puppet/settings/alias_setting.rb +0 -37
  426. data/lib/puppet/ssl/host.rb +0 -505
  427. data/lib/puppet/ssl/key.rb +0 -61
  428. data/lib/puppet/ssl/validator.rb +0 -61
  429. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  430. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  431. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  432. data/lib/puppet/status.rb +0 -40
  433. data/lib/puppet/util/connection.rb +0 -88
  434. data/lib/puppet/util/fact_dif.rb +0 -62
  435. data/lib/puppet/util/ssl.rb +0 -83
  436. data/lib/puppet/util/windows/api_types.rb +0 -309
  437. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  438. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  439. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  440. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  441. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  442. data/lib/puppet/vendor/pathspec/README.md +0 -53
  443. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  444. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  445. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  446. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  447. data/man/man8/puppet-key.8 +0 -126
  448. data/man/man8/puppet-man.8 +0 -76
  449. data/man/man8/puppet-status.8 +0 -108
  450. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  451. data/spec/integration/network/authconfig_spec.rb +0 -256
  452. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  453. data/spec/unit/application/man_spec.rb +0 -52
  454. data/spec/unit/capability_spec.rb +0 -414
  455. data/spec/unit/face/key_spec.rb +0 -9
  456. data/spec/unit/face/module/search_spec.rb +0 -231
  457. data/spec/unit/face/status_spec.rb +0 -9
  458. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  459. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  460. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  461. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  462. data/spec/unit/indirector/key/file_spec.rb +0 -78
  463. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  464. data/spec/unit/indirector/status/local_spec.rb +0 -10
  465. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  466. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  467. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  468. data/spec/unit/network/authstore_spec.rb +0 -422
  469. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  470. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  471. data/spec/unit/network/http/compression_spec.rb +0 -240
  472. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  473. data/spec/unit/network/http_spec.rb +0 -9
  474. data/spec/unit/network/rights_spec.rb +0 -439
  475. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  476. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  477. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  478. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  479. data/spec/unit/rest/route_spec.rb +0 -132
  480. data/spec/unit/ssl/host_spec.rb +0 -645
  481. data/spec/unit/ssl/key_spec.rb +0 -173
  482. data/spec/unit/ssl/validator_spec.rb +0 -278
  483. data/spec/unit/status_spec.rb +0 -45
  484. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -1,17 +0,0 @@
1
- require 'pathspec/spec'
2
-
3
- class RegexSpec < Spec
4
- def initialize(regex)
5
- @regex = Regexp.compile regex
6
-
7
- super
8
- end
9
-
10
- def inclusive?
11
- true
12
- end
13
-
14
- def match(path)
15
- @regex.match(path) if @regex
16
- end
17
- end
@@ -1,14 +0,0 @@
1
- class Spec
2
- attr_reader :regex
3
-
4
- def initialize(*_)
5
- end
6
-
7
- def match(files)
8
- raise "Unimplemented"
9
- end
10
-
11
- def inclusive?
12
- true
13
- end
14
- end
@@ -1,126 +0,0 @@
1
- .\" generated with Ronn/v0.7.3
2
- .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
- .
4
- .TH "PUPPET\-KEY" "8" "January 2021" "Puppet, Inc." "Puppet manual"
5
- .
6
- .SH "NAME"
7
- \fBpuppet\-key\fR \- Create, save, and remove certificate keys\.
8
- .
9
- .SH "SYNOPSIS"
10
- puppet key \fIaction\fR [\-\-terminus _TERMINUS] [\-\-extra HASH]
11
- .
12
- .SH "DESCRIPTION"
13
- This subcommand manages certificate private keys\. Keys are created automatically by puppet agent and when certificate requests are generated with \'puppet ssl submit_request\'; it should not be necessary to use this subcommand directly\.
14
- .
15
- .SH "OPTIONS"
16
- Note that any setting that\'s valid in the configuration file is also a valid long argument, although it may or may not be relevant to the present action\. For example, \fBserver\fR and \fBrun_mode\fR are valid settings, so you can specify \fB\-\-server <servername>\fR, or \fB\-\-run_mode <runmode>\fR as an argument\.
17
- .
18
- .P
19
- See the configuration file documentation at \fIhttps://puppet\.com/docs/puppet/latest/configuration\.html\fR for the full list of acceptable parameters\. A commented list of all configuration options can also be generated by running puppet with \fB\-\-genconfig\fR\.
20
- .
21
- .TP
22
- \-\-render\-as FORMAT
23
- The format in which to render output\. The most common formats are \fBjson\fR, \fBs\fR (string), \fByaml\fR, and \fBconsole\fR, but other options such as \fBdot\fR are sometimes available\.
24
- .
25
- .TP
26
- \-\-verbose
27
- Whether to log verbosely\.
28
- .
29
- .TP
30
- \-\-debug
31
- Whether to log debug information\.
32
- .
33
- .TP
34
- \-\-extra HASH
35
- A terminus can take additional arguments to refine the operation, which are passed as an arbitrary hash to the back\-end\. Anything passed as the extra value is just send direct to the back\-end\.
36
- .
37
- .TP
38
- \-\-terminus _TERMINUS
39
- Indirector faces expose indirected subsystems of Puppet\. These subsystems are each able to retrieve and alter a specific type of data (with the familiar actions of \fBfind\fR, \fBsearch\fR, \fBsave\fR, and \fBdestroy\fR) from an arbitrary number of pluggable backends\. In Puppet parlance, these backends are called terminuses\.
40
- .
41
- .IP
42
- Almost all indirected subsystems have a \fBrest\fR terminus that interacts with the puppet master\'s data\. Most of them have additional terminuses for various local data models, which are in turn used by the indirected subsystem on the puppet master whenever it receives a remote request\.
43
- .
44
- .IP
45
- The terminus for an action is often determined by context, but occasionally needs to be set explicitly\. See the "Notes" section of this face\'s manpage for more details\.
46
- .
47
- .SH "ACTIONS"
48
- .
49
- .TP
50
- \fBdestroy\fR \- Delete an object\.
51
- \fBSYNOPSIS\fR
52
- .
53
- .IP
54
- puppet key destroy [\-\-terminus _TERMINUS] [\-\-extra HASH] \fIkey\fR
55
- .
56
- .IP
57
- \fBDESCRIPTION\fR
58
- .
59
- .IP
60
- Delete an object\.
61
- .
62
- .TP
63
- \fBfind\fR \- Retrieve an object by name\.
64
- \fBSYNOPSIS\fR
65
- .
66
- .IP
67
- puppet key find [\-\-terminus _TERMINUS] [\-\-extra HASH] [\fIkey\fR]
68
- .
69
- .IP
70
- \fBDESCRIPTION\fR
71
- .
72
- .IP
73
- Retrieve an object by name\.
74
- .
75
- .TP
76
- \fBinfo\fR \- Print the default terminus class for this face\.
77
- \fBSYNOPSIS\fR
78
- .
79
- .IP
80
- puppet key info [\-\-terminus _TERMINUS] [\-\-extra HASH]
81
- .
82
- .IP
83
- \fBDESCRIPTION\fR
84
- .
85
- .IP
86
- Prints the default terminus class for this subcommand\. Note that different run modes may have different default termini; when in doubt, specify the run mode with the \'\-\-run_mode\' option\.
87
- .
88
- .TP
89
- \fBsave\fR \- API only: create or overwrite an object\.
90
- \fBSYNOPSIS\fR
91
- .
92
- .IP
93
- puppet key save [\-\-terminus _TERMINUS] [\-\-extra HASH] \fIkey\fR
94
- .
95
- .IP
96
- \fBDESCRIPTION\fR
97
- .
98
- .IP
99
- API only: create or overwrite an object\. As the Faces framework does not currently accept data from STDIN, save actions cannot currently be invoked from the command line\.
100
- .
101
- .TP
102
- \fBsearch\fR \- Search for an object or retrieve multiple objects\.
103
- \fBSYNOPSIS\fR
104
- .
105
- .IP
106
- puppet key search [\-\-terminus _TERMINUS] [\-\-extra HASH] \fIquery\fR
107
- .
108
- .IP
109
- \fBDESCRIPTION\fR
110
- .
111
- .IP
112
- Search for an object or retrieve multiple objects\.
113
- .
114
- .SH "NOTES"
115
- This subcommand is an indirector face, which exposes \fBfind\fR, \fBsearch\fR, \fBsave\fR, and \fBdestroy\fR actions for an indirected subsystem of Puppet\. Valid termini for this face include:
116
- .
117
- .IP "\(bu" 4
118
- \fBfile\fR
119
- .
120
- .IP "\(bu" 4
121
- \fBmemory\fR
122
- .
123
- .IP "" 0
124
- .
125
- .SH "COPYRIGHT AND LICENSE"
126
- Copyright 2011 by Puppet Inc\. Apache 2 license; see COPYING
@@ -1,76 +0,0 @@
1
- .\" generated with Ronn/v0.7.3
2
- .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
- .
4
- .TH "PUPPET\-MAN" "8" "January 2021" "Puppet, Inc." "Puppet manual"
5
- .
6
- .SH "NAME"
7
- \fBpuppet\-man\fR \- Display Puppet manual pages\.
8
- .
9
- .SH "SYNOPSIS"
10
- puppet man \fIaction\fR
11
- .
12
- .SH "DESCRIPTION"
13
- Please use the command \'puppet help \fIsubcommand\fR\' or the system manpage system \'man puppet\-\fIsubcommand\fR\' to display information about Puppet subcommands\. The deprecated man subcommand displays manual pages for all Puppet subcommands\. If the \fBronn\fR gem (\fIhttps://github\.com/rtomayko/ronn/\fR) is installed on your system, puppet man will display fully\-formatted man pages\. If \fBronn\fR is not available, puppet man will display the raw (but human\-readable) source text in a pager\.
14
- .
15
- .SH "OPTIONS"
16
- Note that any setting that\'s valid in the configuration file is also a valid long argument, although it may or may not be relevant to the present action\. For example, \fBserver\fR and \fBrun_mode\fR are valid settings, so you can specify \fB\-\-server <servername>\fR, or \fB\-\-run_mode <runmode>\fR as an argument\.
17
- .
18
- .P
19
- See the configuration file documentation at \fIhttps://puppet\.com/docs/puppet/latest/configuration\.html\fR for the full list of acceptable parameters\. A commented list of all configuration options can also be generated by running puppet with \fB\-\-genconfig\fR\.
20
- .
21
- .TP
22
- \-\-render\-as FORMAT
23
- The format in which to render output\. The most common formats are \fBjson\fR, \fBs\fR (string), \fByaml\fR, and \fBconsole\fR, but other options such as \fBdot\fR are sometimes available\.
24
- .
25
- .TP
26
- \-\-verbose
27
- Whether to log verbosely\.
28
- .
29
- .TP
30
- \-\-debug
31
- Whether to log debug information\.
32
- .
33
- .SH "ACTIONS"
34
- .
35
- .TP
36
- \fBman\fR \- Display the manual page for a Puppet subcommand\.
37
- \fBSYNOPSIS\fR
38
- .
39
- .IP
40
- puppet man \fIsubcommand\fR
41
- .
42
- .IP
43
- \fBDESCRIPTION\fR
44
- .
45
- .IP
46
- Display the manual page for a Puppet subcommand\.
47
- .
48
- .IP
49
- \fBRETURNS\fR
50
- .
51
- .IP
52
- The man data, in Markdown format, suitable for consumption by Ronn\.
53
- .
54
- .IP
55
- RENDERING ISSUES: To skip fancy formatting and output the raw Markdown text (e\.g\. for use in a pipeline), call this action with \'\-\-render\-as s\'\.
56
- .
57
- .SH "EXAMPLES"
58
- \fBman\fR
59
- .
60
- .P
61
- View the installed manual page for the subcommand \'config\':
62
- .
63
- .P
64
- $ man puppet\-config
65
- .
66
- .P
67
- (Deprecated) View the manual page for the subcommand \'config\':
68
- .
69
- .P
70
- $ puppet man config
71
- .
72
- .SH "NOTES"
73
- The pager used for display will be the first found of \fB$MANPAGER\fR, \fB$PAGER\fR, \fBless\fR, \fBmost\fR, or \fBmore\fR\.
74
- .
75
- .SH "COPYRIGHT AND LICENSE"
76
- Copyright 2011 by Puppet Inc\. Apache 2 license; see COPYING
@@ -1,108 +0,0 @@
1
- .\" generated with Ronn/v0.7.3
2
- .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
- .
4
- .TH "PUPPET\-STATUS" "8" "January 2021" "Puppet, Inc." "Puppet manual"
5
- .
6
- .SH "NAME"
7
- \fBpuppet\-status\fR \- View puppet server status\.
8
- .
9
- .SH "SYNOPSIS"
10
- puppet status \fIaction\fR [\-\-terminus _TERMINUS] [\-\-extra HASH]
11
- .
12
- .SH "OPTIONS"
13
- Note that any setting that\'s valid in the configuration file is also a valid long argument, although it may or may not be relevant to the present action\. For example, \fBserver\fR and \fBrun_mode\fR are valid settings, so you can specify \fB\-\-server <servername>\fR, or \fB\-\-run_mode <runmode>\fR as an argument\.
14
- .
15
- .P
16
- See the configuration file documentation at \fIhttps://puppet\.com/docs/puppet/latest/configuration\.html\fR for the full list of acceptable parameters\. A commented list of all configuration options can also be generated by running puppet with \fB\-\-genconfig\fR\.
17
- .
18
- .TP
19
- \-\-render\-as FORMAT
20
- The format in which to render output\. The most common formats are \fBjson\fR, \fBs\fR (string), \fByaml\fR, and \fBconsole\fR, but other options such as \fBdot\fR are sometimes available\.
21
- .
22
- .TP
23
- \-\-verbose
24
- Whether to log verbosely\.
25
- .
26
- .TP
27
- \-\-debug
28
- Whether to log debug information\.
29
- .
30
- .TP
31
- \-\-extra HASH
32
- A terminus can take additional arguments to refine the operation, which are passed as an arbitrary hash to the back\-end\. Anything passed as the extra value is just send direct to the back\-end\.
33
- .
34
- .TP
35
- \-\-terminus _TERMINUS
36
- Indirector faces expose indirected subsystems of Puppet\. These subsystems are each able to retrieve and alter a specific type of data (with the familiar actions of \fBfind\fR, \fBsearch\fR, \fBsave\fR, and \fBdestroy\fR) from an arbitrary number of pluggable backends\. In Puppet parlance, these backends are called terminuses\.
37
- .
38
- .IP
39
- Almost all indirected subsystems have a \fBrest\fR terminus that interacts with the puppet master\'s data\. Most of them have additional terminuses for various local data models, which are in turn used by the indirected subsystem on the puppet master whenever it receives a remote request\.
40
- .
41
- .IP
42
- The terminus for an action is often determined by context, but occasionally needs to be set explicitly\. See the "Notes" section of this face\'s manpage for more details\.
43
- .
44
- .SH "ACTIONS"
45
- .
46
- .TP
47
- \fBfind\fR \- Check status of puppet master server\.
48
- \fBSYNOPSIS\fR
49
- .
50
- .IP
51
- puppet status [\-\-terminus _TERMINUS] [\-\-extra HASH] [\fIkey\fR]
52
- .
53
- .IP
54
- \fBDESCRIPTION\fR
55
- .
56
- .IP
57
- Checks whether a Puppet server is properly receiving and processing HTTP requests\. This action is only useful when used with \'\-\-terminus rest\'; when invoked with the \fBlocal\fR terminus, \fBfind\fR will always return true\.
58
- .
59
- .IP
60
- Over REST, this action will query the configured puppet master by default\. To query other servers, including puppet agent nodes started with the \fI\-\-listen\fR option, you can set the global \fI\-\-server\fR and \fI\-\-serverport\fR options on the command line; note that agent nodes listen on port 8139\.
61
- .
62
- .IP
63
- \fBRETURNS\fR
64
- .
65
- .IP
66
- A "true" response or a low\-level connection error\. When used from the Ruby API: returns a Puppet::Status object\.
67
- .
68
- .IP
69
- \fBNOTES\fR
70
- .
71
- .IP
72
- This action requires that the server\'s \fBauth\.conf\fR file allow find access to the \fBstatus\fR REST terminus\. Puppet agent does not use this facility, and it is turned off by default\. See \fIhttps://puppet\.com/docs/puppet/latest/config_file_auth\.html\fR for more details\.
73
- .
74
- .TP
75
- \fBinfo\fR \- Print the default terminus class for this face\.
76
- \fBSYNOPSIS\fR
77
- .
78
- .IP
79
- puppet status info [\-\-terminus _TERMINUS] [\-\-extra HASH]
80
- .
81
- .IP
82
- \fBDESCRIPTION\fR
83
- .
84
- .IP
85
- Prints the default terminus class for this subcommand\. Note that different run modes may have different default termini; when in doubt, specify the run mode with the \'\-\-run_mode\' option\.
86
- .
87
- .SH "EXAMPLES"
88
- \fBfind\fR
89
- .
90
- .P
91
- Check the status of the configured puppet master:
92
- .
93
- .P
94
- $ puppet status find \-\-terminus rest
95
- .
96
- .SH "NOTES"
97
- This subcommand is an indirector face, which exposes \fBfind\fR, \fBsearch\fR, \fBsave\fR, and \fBdestroy\fR actions for an indirected subsystem of Puppet\. Valid termini for this face include:
98
- .
99
- .IP "\(bu" 4
100
- \fBlocal\fR
101
- .
102
- .IP "\(bu" 4
103
- \fBrest\fR
104
- .
105
- .IP "" 0
106
- .
107
- .SH "COPYRIGHT AND LICENSE"
108
- Copyright 2011 by Puppet Inc\. Apache 2 license; see COPYING
@@ -1,91 +0,0 @@
1
- {
2
- "tags": [
3
- "settings"
4
- ],
5
- "name": "127.0.0.1",
6
- "version": 1607629733,
7
- "code_id": null,
8
- "catalog_uuid": "afc8472a-306b-4b24-b060-e956dffb79b8",
9
- "catalog_format": 1,
10
- "environment": "production",
11
- "resources": [
12
- {
13
- "type": "Stage",
14
- "title": "main",
15
- "tags": [
16
- "stage"
17
- ],
18
- "exported": false,
19
- "parameters": {
20
- "name": "main"
21
- }
22
- },
23
- {
24
- "type": "Class",
25
- "title": "Settings",
26
- "tags": [
27
- "class",
28
- "settings"
29
- ],
30
- "exported": false
31
- },
32
- {
33
- "type": "Class",
34
- "title": "main",
35
- "tags": [
36
- "class"
37
- ],
38
- "exported": false,
39
- "parameters": {
40
- "name": "main"
41
- }
42
- },
43
- {
44
- "type": "Notify",
45
- "title": "deferred",
46
- "tags": [
47
- "notify",
48
- "deferred",
49
- "class"
50
- ],
51
- "file": "",
52
- "line": 1,
53
- "exported": false,
54
- "parameters": {
55
- "message": {
56
- "__ptype": "Deferred",
57
- "name": "new",
58
- "arguments": [
59
- {
60
- "__ptype": "Pcore::StringType"
61
- },
62
- {
63
- "__ptype": "Deferred",
64
- "name": "binary_file",
65
- "arguments": [
66
- "__SOURCE_PATH__"
67
- ]
68
- }
69
- ]
70
- }
71
- }
72
- }
73
- ],
74
- "edges": [
75
- {
76
- "source": "Stage[main]",
77
- "target": "Class[Settings]"
78
- },
79
- {
80
- "source": "Stage[main]",
81
- "target": "Class[main]"
82
- },
83
- {
84
- "source": "Class[main]",
85
- "target": "Notify[deferred]"
86
- }
87
- ],
88
- "classes": [
89
- "settings"
90
- ]
91
- }
@@ -1,256 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'puppet/network/authconfig'
4
- require 'puppet/network/auth_config_parser'
5
-
6
- RSpec::Matchers.define :auth_allow do |params|
7
- match do |auth|
8
- begin
9
- auth.check_authorization(*params)
10
- true
11
- rescue Puppet::Network::AuthorizationError
12
- false
13
- end
14
- end
15
-
16
- failure_message do |instance|
17
- "expected #{params[2][:node]}/#{params[2][:ip]} to be allowed"
18
- end
19
-
20
- failure_message_when_negated do |instance|
21
- "expected #{params[2][:node]}/#{params[2][:ip]} to be forbidden"
22
- end
23
- end
24
-
25
- describe Puppet::Network::AuthConfig do
26
- include PuppetSpec::Files
27
-
28
- def add_rule(rule)
29
- parser = Puppet::Network::AuthConfigParser.new(
30
- "path /test\n#{rule}\n"
31
- )
32
- @auth = parser.parse
33
- end
34
-
35
- def add_regex_rule(regex, rule)
36
- parser = Puppet::Network::AuthConfigParser.new(
37
- "path ~ #{regex}\n#{rule}\n"
38
- )
39
- @auth = parser.parse
40
- end
41
-
42
- def add_raw_stanza(stanza)
43
- parser = Puppet::Network::AuthConfigParser.new(
44
- stanza
45
- )
46
- @auth = parser.parse
47
- end
48
-
49
- def request(args = {})
50
- args = {
51
- :key => 'key',
52
- :node => 'host.domain.com',
53
- :ip => '10.1.1.1',
54
- :authenticated => true
55
- }.merge(args)
56
- [:find, "/test/#{args[:key]}", args]
57
- end
58
-
59
- describe "allow" do
60
- it "should not match IP addresses" do
61
- add_rule("allow 10.1.1.1")
62
-
63
- expect(@auth).not_to auth_allow(request)
64
- end
65
-
66
- it "should not accept CIDR IPv4 address" do
67
- expect {
68
- add_rule("allow 10.0.0.0/8")
69
- }.to raise_error Puppet::ConfigurationError, /Invalid pattern 10\.0\.0\.0\/8/
70
- end
71
-
72
- it "should not match wildcard IPv4 address" do
73
- expect {
74
- add_rule("allow 10.1.1.*")
75
- }.to raise_error Puppet::ConfigurationError, /Invalid pattern 10\.1\.1\.*/
76
- end
77
-
78
- it "should not match IPv6 address" do
79
- expect {
80
- add_rule("allow 2001:DB8::8:800:200C:417A")
81
- }.to raise_error Puppet::ConfigurationError, /Invalid pattern 2001/
82
- end
83
-
84
- it "should support hostname" do
85
- add_rule("allow host.domain.com")
86
-
87
- expect(@auth).to auth_allow(request)
88
- end
89
-
90
- it "should support wildcard host" do
91
- add_rule("allow *.domain.com")
92
-
93
- expect(@auth).to auth_allow(request)
94
- end
95
-
96
- it 'should warn about missing path before allow_ip in stanza' do
97
- expect {
98
- add_raw_stanza("allow_ip 10.0.0.1\n")
99
- }.to raise_error Puppet::ConfigurationError, /Missing or invalid 'path' before right directive at \(line: .*\)/
100
- end
101
-
102
- it 'should warn about missing path before allow in stanza' do
103
- expect {
104
- add_raw_stanza("allow host.domain.com\n")
105
- }.to raise_error Puppet::ConfigurationError, /Missing or invalid 'path' before right directive at \(line: .*\)/
106
- end
107
-
108
- it "should support hostname backreferences" do
109
- add_regex_rule('^/test/([^/]+)$', "allow $1.domain.com")
110
-
111
- expect(@auth).to auth_allow(request(:key => 'host'))
112
- end
113
-
114
- it "should support opaque strings" do
115
- add_rule("allow this-is-opaque@or-not")
116
-
117
- expect(@auth).to auth_allow(request(:node => 'this-is-opaque@or-not'))
118
- end
119
-
120
- it "should support opaque strings and backreferences" do
121
- add_regex_rule('^/test/([^/]+)$', "allow $1")
122
-
123
- expect(@auth).to auth_allow(request(:key => 'this-is-opaque@or-not', :node => 'this-is-opaque@or-not'))
124
- end
125
-
126
- it "should support hostname ending with '.'" do
127
- pending('bug #7589')
128
- add_rule("allow host.domain.com.")
129
-
130
- expect(@auth).to auth_allow(request(:node => 'host.domain.com.'))
131
- end
132
-
133
- it "should support hostname ending with '.' and backreferences" do
134
- pending('bug #7589')
135
- add_regex_rule('^/test/([^/]+)$',"allow $1")
136
-
137
- expect(@auth).to auth_allow(request(:node => 'host.domain.com.'))
138
- end
139
-
140
- it "should support trailing whitespace" do
141
- add_rule('allow host.domain.com ')
142
-
143
- expect(@auth).to auth_allow(request)
144
- end
145
-
146
- it "should support inlined comments" do
147
- add_rule('allow host.domain.com # will it work?')
148
-
149
- expect(@auth).to auth_allow(request)
150
- end
151
-
152
- it "should deny non-matching host" do
153
- add_rule("allow inexistent")
154
-
155
- expect(@auth).not_to auth_allow(request)
156
- end
157
- end
158
-
159
- describe "allow_ip" do
160
- it "should not warn when matches against IP addresses fail" do
161
- add_rule("allow_ip 10.1.1.2")
162
-
163
- expect(@auth).not_to auth_allow(request)
164
-
165
- expect(@logs).not_to be_any {|log| log.level == :warning and log.message =~ /Authentication based on IP address is deprecated/}
166
- end
167
-
168
- it "should support IPv4 address" do
169
- add_rule("allow_ip 10.1.1.1")
170
-
171
- expect(@auth).to auth_allow(request)
172
- end
173
-
174
- it "should support CIDR IPv4 address" do
175
- add_rule("allow_ip 10.0.0.0/8")
176
-
177
- expect(@auth).to auth_allow(request)
178
- end
179
-
180
- it "should support wildcard IPv4 address" do
181
- add_rule("allow_ip 10.1.1.*")
182
-
183
- expect(@auth).to auth_allow(request)
184
- end
185
-
186
- it "should support IPv6 address" do
187
- add_rule("allow_ip 2001:DB8::8:800:200C:417A")
188
-
189
- expect(@auth).to auth_allow(request(:ip => '2001:DB8::8:800:200C:417A'))
190
- end
191
-
192
- it "should support hostname" do
193
- expect {
194
- add_rule("allow_ip host.domain.com")
195
- }.to raise_error Puppet::ConfigurationError, /Invalid IP pattern host.domain.com/
196
- end
197
- end
198
-
199
- describe "deny" do
200
- it "should deny denied hosts" do
201
- add_rule <<-EOALLOWRULE
202
- deny host.domain.com
203
- allow *.domain.com
204
- EOALLOWRULE
205
-
206
- expect(@auth).not_to auth_allow(request)
207
- end
208
-
209
- it "denies denied hosts after allowing them" do
210
- add_rule <<-EOALLOWRULE
211
- allow *.domain.com
212
- deny host.domain.com
213
- EOALLOWRULE
214
-
215
- expect(@auth).not_to auth_allow(request)
216
- end
217
-
218
- it "should not deny based on IP" do
219
- add_rule <<-EOALLOWRULE
220
- deny 10.1.1.1
221
- allow host.domain.com
222
- EOALLOWRULE
223
-
224
- expect(@auth).to auth_allow(request)
225
- end
226
-
227
- it "should not deny based on IP (ordering #2)" do
228
- add_rule <<-EOALLOWRULE
229
- allow host.domain.com
230
- deny 10.1.1.1
231
- EOALLOWRULE
232
-
233
- expect(@auth).to auth_allow(request)
234
- end
235
- end
236
-
237
- describe "deny_ip" do
238
- it "should deny based on IP" do
239
- add_rule <<-EOALLOWRULE
240
- deny_ip 10.1.1.1
241
- allow host.domain.com
242
- EOALLOWRULE
243
-
244
- expect(@auth).not_to auth_allow(request)
245
- end
246
-
247
- it "should deny based on IP (ordering #2)" do
248
- add_rule <<-EOALLOWRULE
249
- allow host.domain.com
250
- deny_ip 10.1.1.1
251
- EOALLOWRULE
252
-
253
- expect(@auth).not_to auth_allow(request)
254
- end
255
- end
256
- end