puppet 6.23.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -53,14 +53,12 @@ describe Puppet::Type.type(:user).provider(:pw) do
53
53
 
54
54
  it "should use -G with the correct argument when the groups property is set" do
55
55
  resource[:groups] = "group1"
56
- allow(Puppet::Util::POSIX).to receive(:groups_of).with('testuser').and_return([])
57
56
  expect(provider).to receive(:execute).with(include("-G").and(include("group1")), kind_of(Hash))
58
57
  provider.create
59
58
  end
60
59
 
61
60
  it "should use -G with all the given groups when the groups property is set to an array" do
62
61
  resource[:groups] = ["group1", "group2"]
63
- allow(Puppet::Util::POSIX).to receive(:groups_of).with('testuser').and_return([])
64
62
  expect(provider).to receive(:execute).with(include("-G").and(include("group1,group2")), kind_of(Hash))
65
63
  provider.create
66
64
  end
@@ -4,7 +4,6 @@ RSpec::Matchers.define_negated_matcher :excluding, :include
4
4
 
5
5
  describe Puppet::Type.type(:user).provider(:useradd) do
6
6
  before :each do
7
- allow(Puppet::Util::POSIX).to receive(:groups_of).and_return([])
8
7
  allow(described_class).to receive(:command).with(:password).and_return('/usr/bin/chage')
9
8
  allow(described_class).to receive(:command).with(:localpassword).and_return('/usr/sbin/lchage')
10
9
  allow(described_class).to receive(:command).with(:add).and_return('/usr/sbin/useradd')
@@ -152,7 +151,6 @@ describe Puppet::Type.type(:user).provider(:useradd) do
152
151
 
153
152
  it "should not use -G for luseradd and should call usermod with -G after luseradd when groups property is set" do
154
153
  resource[:groups] = ['group1', 'group2']
155
- allow(provider).to receive(:localgroups)
156
154
  expect(provider).to receive(:execute).with(include('/usr/sbin/luseradd').and(excluding('-G')), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
157
155
  expect(provider).to receive(:execute).with(include('/usr/sbin/usermod').and(include('-G')), hash_including(custom_environment: hash_including('LIBUSER_CONF')))
158
156
  provider.create
@@ -338,8 +336,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
338
336
 
339
337
  it "should return the local comment string when forcelocal is true" do
340
338
  resource[:forcelocal] = true
341
- allow(Puppet::FileSystem).to receive(:exist?).with('/etc/passwd').and_return(true)
342
- allow(Puppet::FileSystem).to receive(:each_line).with('/etc/passwd').and_yield(content)
339
+ allow(File).to receive(:read).with('/etc/passwd').and_return(content)
343
340
  expect(provider.comment).to eq('local comment')
344
341
  end
345
342
 
@@ -351,73 +348,8 @@ describe Puppet::Type.type(:user).provider(:useradd) do
351
348
  end
352
349
  end
353
350
 
354
- describe "#gid" do
355
- before { described_class.has_feature :manages_local_users_and_groups }
356
-
357
- let(:content) { "myuser:x:x:999:x:x:x" }
358
-
359
- it "should return the local GID when forcelocal is true" do
360
- resource[:forcelocal] = true
361
- allow(Puppet::FileSystem).to receive(:exist?).with('/etc/passwd').and_return(true)
362
- allow(Puppet::FileSystem).to receive(:each_line).with('/etc/passwd').and_yield(content)
363
- expect(provider.gid).to eq(999)
364
- end
365
-
366
- it "should fall back to nameservice GID when forcelocal is false" do
367
- resource[:forcelocal] = false
368
- allow(provider).to receive(:get).with(:gid).and_return(1234)
369
- expect(provider).not_to receive(:localgid)
370
- expect(provider.gid).to eq(1234)
371
- end
372
- end
373
-
374
- describe "#groups" do
375
- before { described_class.has_feature :manages_local_users_and_groups }
376
-
377
- let(:content) do
378
- StringIO.new(<<~EOF)
379
- group1:x:0:myuser
380
- group2:x:999:
381
- group3:x:998:myuser
382
- EOF
383
- end
384
-
385
- let(:content_with_empty_line) do
386
- StringIO.new(<<~EOF)
387
- group1:x:0:myuser
388
- group2:x:999:
389
- group3:x:998:myuser
390
-
391
- EOF
392
- end
393
-
394
- it "should return the local groups string when forcelocal is true" do
395
- resource[:forcelocal] = true
396
- allow(Puppet::FileSystem).to receive(:exist?).with('/etc/group').and_return(true)
397
- allow(File).to receive(:open).with(Pathname.new('/etc/group')).and_yield(content)
398
- expect(provider.groups).to eq(['group1', 'group3'])
399
- end
400
-
401
- it "does not raise when parsing empty lines in /etc/group" do
402
- resource[:forcelocal] = true
403
- allow(Puppet::FileSystem).to receive(:exist?).with('/etc/group').and_return(true)
404
- allow(File).to receive(:open).with(Pathname.new('/etc/group')).and_yield(content_with_empty_line)
405
- expect { provider.groups }.not_to raise_error
406
- end
407
-
408
- it "should fall back to nameservice groups when forcelocal is false" do
409
- resource[:forcelocal] = false
410
- allow(Puppet::Util::POSIX).to receive(:groups_of).with('myuser').and_return(['remote groups'])
411
- expect(provider).not_to receive(:localgroups)
412
- expect(provider.groups).to eq('remote groups')
413
- end
414
- end
415
-
416
351
  describe "#finduser" do
417
- before do
418
- allow(Puppet::FileSystem).to receive(:exist?).with('/etc/passwd').and_return(true)
419
- allow(Puppet::FileSystem).to receive(:each_line).with('/etc/passwd').and_yield(content)
420
- end
352
+ before { allow(File).to receive(:read).with('/etc/passwd').and_return(content) }
421
353
 
422
354
  let(:content) { "sample_account:sample_password:sample_uid:sample_gid:sample_gecos:sample_directory:sample_shell" }
423
355
  let(:output) do
@@ -443,7 +375,7 @@ describe Puppet::Type.type(:user).provider(:useradd) do
443
375
  end
444
376
 
445
377
  it "reads the user file only once per resource" do
446
- expect(Puppet::FileSystem).to receive(:each_line).with('/etc/passwd').once
378
+ expect(File).to receive(:read).with('/etc/passwd').once
447
379
  5.times { provider.finduser(:account, 'sample_account') }
448
380
  end
449
381
  end
@@ -648,37 +648,27 @@ describe Puppet::Provider do
648
648
  it "delegates instance execute to Puppet::Util::Execution" do
649
649
  expect(Puppet::Util::Execution).to receive(:execute).with("a_command", { :option => "value" })
650
650
 
651
- provider.new.execute("a_command", { :option => "value" })
651
+ provider.new.send(:execute, "a_command", { :option => "value" })
652
652
  end
653
653
 
654
654
  it "delegates class execute to Puppet::Util::Execution" do
655
655
  expect(Puppet::Util::Execution).to receive(:execute).with("a_command", { :option => "value" })
656
656
 
657
- provider.execute("a_command", { :option => "value" })
657
+ provider.send(:execute, "a_command", { :option => "value" })
658
658
  end
659
659
 
660
660
  it "delegates instance execpipe to Puppet::Util::Execution" do
661
- allow(Puppet::Util::Execution).to receive(:execpipe).with("a_command", true).and_yield('some output')
661
+ block = Proc.new { }
662
+ expect(Puppet::Util::Execution).to receive(:execpipe).with("a_command", true, block)
662
663
 
663
- expect { |b| provider.new.execpipe("a_command", true, &b) }.to yield_with_args('some output')
664
+ provider.new.send(:execpipe, "a_command", true, block)
664
665
  end
665
666
 
666
667
  it "delegates class execpipe to Puppet::Util::Execution" do
667
- allow(Puppet::Util::Execution).to receive(:execpipe).with("a_command", true).and_yield('some output')
668
+ block = Proc.new { }
669
+ expect(Puppet::Util::Execution).to receive(:execpipe).with("a_command", true, block)
668
670
 
669
- expect { |b| provider.execpipe("a_command", true, &b) }.to yield_with_args('some output')
670
- end
671
-
672
- it "delegates instance execfail to Puppet::Util::Execution" do
673
- expect(Puppet::Util::Execution).to receive(:execfail).with("a_command", "an exception to raise")
674
-
675
- provider.new.execfail("a_command", "an exception to raise")
676
- end
677
-
678
- it "delegates class execfail to Puppet::Util::Execution" do
679
- expect(Puppet::Util::Execution).to receive(:execfail).with("a_command", "an exception to raise")
680
-
681
- provider.execfail("a_command", "an exception to raise")
671
+ provider.send(:execpipe, "a_command", true, block)
682
672
  end
683
673
  end
684
674
 
@@ -205,7 +205,7 @@ describe Puppet::Resource::Catalog, "when compiling" do
205
205
  end
206
206
 
207
207
  it "should set itself as the catalog for each converted resource" do
208
- @catalog.vertices.each { |v| expect(v.catalog.object_id).to eql(@catalog.object_id) }
208
+ @catalog.vertices.each { |v| expect(v.catalog.object_id).to equal(@catalog.object_id) }
209
209
  end
210
210
 
211
211
  # This tests #931.
@@ -75,18 +75,16 @@ describe Puppet::Resource::TypeCollection do
75
75
  end.to raise_error(Puppet::ParseError, /cannot be redefined/)
76
76
  end
77
77
 
78
- it "should remove all nodes, classes, definitions, and applications when cleared" do
78
+ it "should remove all nodes, classes and definitions when cleared" do
79
79
  loader = Puppet::Resource::TypeCollection.new(environment)
80
80
  loader.add Puppet::Resource::Type.new(:hostclass, "class")
81
81
  loader.add Puppet::Resource::Type.new(:definition, "define")
82
82
  loader.add Puppet::Resource::Type.new(:node, "node")
83
- loader.add Puppet::Resource::Type.new(:application, "application")
84
83
 
85
84
  loader.clear
86
85
  expect(loader.hostclass("class")).to be_nil
87
86
  expect(loader.definition("define")).to be_nil
88
87
  expect(loader.node("node")).to be_nil
89
- expect(loader.node("application")).to be_nil
90
88
  end
91
89
 
92
90
  describe "when looking up names" do
@@ -155,7 +153,7 @@ describe Puppet::Resource::TypeCollection do
155
153
  end
156
154
  end
157
155
 
158
- KINDS = %w{hostclass node definition application}
156
+ KINDS = %w{hostclass node definition}
159
157
  KINDS.each do |data|
160
158
  describe "behavior of add for #{data}" do
161
159
 
@@ -178,24 +176,6 @@ describe Puppet::Resource::TypeCollection do
178
176
  it "should return nil when asked for a #{data} that has not been added" do
179
177
  expect(Puppet::Resource::TypeCollection.new(environment).send(data, "foo")).to be_nil
180
178
  end
181
-
182
- if data != "node"
183
- it "should fail if an application with the same name is added" do
184
- loader = Puppet::Resource::TypeCollection.new(environment)
185
- instance = Puppet::Resource::Type.new(data, "foo")
186
- application = Puppet::Resource::Type.new(:application, "foo")
187
- loader.add(instance)
188
- expect { loader.add(application) }.to raise_error(Puppet::ParseError, /redefine/)
189
- end
190
-
191
- it "should fail if there is an application with the same name" do
192
- loader = Puppet::Resource::TypeCollection.new(environment)
193
- application = Puppet::Resource::Type.new(:application, "foo")
194
- instance = Puppet::Resource::Type.new(data, "foo")
195
- loader.add(instance)
196
- expect { loader.add(application) }.to raise_error(Puppet::ParseError, /redefine/)
197
- end
198
- end
199
179
  end
200
180
  end
201
181
 
@@ -554,7 +554,7 @@ describe Puppet::Resource::Type do
554
554
 
555
555
  it "should not create a subscope for the :main class" do
556
556
  allow(@resource).to receive(:title).and_return(:main)
557
- expect(@scope).not_to receive(:newscope)
557
+ expect(@type).not_to receive(:subscope)
558
558
  expect(@type).to receive(:set_resource_parameters).with(@resource, @scope)
559
559
 
560
560
  @type.evaluate_code(@resource)
@@ -286,42 +286,9 @@ describe Puppet::Resource do
286
286
  Puppet::Parser::AST::Leaf.new(value: value)
287
287
  end
288
288
 
289
- it "should fail when asked to set default values and it is not a parser resource" do
290
- environment.known_resource_types.add(
291
- Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_leaf("default")})
292
- )
293
- resource = Puppet::Resource.new("default_param", "name", :environment => environment)
294
- expect { resource.set_default_parameters(scope) }.to raise_error(Puppet::DevError)
295
- end
296
-
297
- it "should evaluate and set any default values when no value is provided" do
298
- environment.known_resource_types.add(
299
- Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_leaf("a_default_value")})
300
- )
301
- resource = Puppet::Parser::Resource.new("default_param", "name", :scope => scope)
302
- resource.set_default_parameters(scope)
303
- expect(resource["a"]).to eq("a_default_value")
304
- end
305
-
306
- it "should skip attributes with no default value" do
307
- environment.known_resource_types.add(
308
- Puppet::Resource::Type.new(:definition, "no_default_param", :arguments => {"a" => ast_leaf("a_default_value")})
309
- )
310
- resource = Puppet::Parser::Resource.new("no_default_param", "name", :scope => scope)
311
- expect { resource.set_default_parameters(scope) }.not_to raise_error
312
- end
313
-
314
- it "should return the list of default parameters set" do
315
- environment.known_resource_types.add(
316
- Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_leaf("a_default_value")})
317
- )
318
- resource = Puppet::Parser::Resource.new("default_param", "name", :scope => scope)
319
- expect(resource.set_default_parameters(scope)).to eq(["a"])
320
- end
321
-
322
289
  describe "when the resource type is :hostclass" do
323
290
  let(:environment_name) { "testing env" }
324
- let(:fact_values) { { 'a' => 1 } }
291
+ let(:fact_values) { { :a => 1 } }
325
292
  let(:port) { Puppet::Parser::AST::Leaf.new(:value => '80') }
326
293
 
327
294
  def inject_and_set_defaults(resource, scope)
@@ -330,7 +297,10 @@ describe Puppet::Resource do
330
297
 
331
298
  before do
332
299
  environment.known_resource_types.add(apache)
333
- scope.set_facts(fact_values)
300
+
301
+ allow(scope).to receive(:host).and_return('host')
302
+ allow(scope).to receive(:environment).and_return(environment)
303
+ allow(scope).to receive(:facts).and_return(Puppet::Node::Facts.new("facts", fact_values))
334
304
  end
335
305
 
336
306
  context 'with a default value expression' do
@@ -402,7 +372,6 @@ describe Puppet::Resource do
402
372
 
403
373
  it "should use the value provided" do
404
374
  expect(Puppet::DataBinding.indirection).not_to receive(:find)
405
- expect(resource.set_default_parameters(scope)).to eq([])
406
375
  expect(resource[:port]).to eq('8080')
407
376
  end
408
377
 
@@ -444,28 +413,6 @@ describe Puppet::Resource do
444
413
  end
445
414
  end
446
415
 
447
- describe "when validating all required parameters are present" do
448
- it "should be able to validate that all required parameters are present" do
449
- environment.known_resource_types.add(
450
- Puppet::Resource::Type.new(:definition, "required_param", :arguments => {"a" => nil})
451
- )
452
- expect { Puppet::Resource.new("required_param", "name", :environment => environment).validate_complete }.to raise_error(Puppet::ParseError)
453
- end
454
-
455
- it "should not fail when all required parameters are present" do
456
- environment.known_resource_types.add(
457
- Puppet::Resource::Type.new(:definition, "no_required_param")
458
- )
459
- resource = Puppet::Resource.new("no_required_param", "name", :environment => environment)
460
- resource["a"] = "meh"
461
- expect { resource.validate_complete }.not_to raise_error
462
- end
463
-
464
- it "should not validate against builtin types" do
465
- expect { Puppet::Resource.new("file", "/bar").validate_complete }.not_to raise_error
466
- end
467
- end
468
-
469
416
  describe "when referring to a resource with name canonicalization" do
470
417
  it "should canonicalize its own name" do
471
418
  res = Puppet::Resource.new("file", "/path/")
@@ -624,15 +571,11 @@ describe Puppet::Resource do
624
571
  expect(resource.to_hash[:myvar]).to eq("bob")
625
572
  end
626
573
 
627
- it "should set :name to the title if :name is not present for non-existent types" do
628
- resource = Puppet::Resource.new :doesnotexist, "bar"
629
- expect(resource.to_hash[:name]).to eq("bar")
630
- end
631
-
632
- it "should set :name to the title if :name is not present for a definition" do
633
- type = Puppet::Resource::Type.new(:definition, :foo)
634
- environment.known_resource_types.add(type)
635
- resource = Puppet::Resource.new :foo, "bar", :environment => environment
574
+ it "should set :name to the title if :name is not present for non-builtin types" do
575
+ krt = Puppet::Resource::TypeCollection.new("myenv")
576
+ krt.add Puppet::Resource::Type.new(:definition, :foo)
577
+ resource = Puppet::Resource.new :foo, "bar"
578
+ allow(resource).to receive(:known_resource_types).and_return(krt)
636
579
  expect(resource.to_hash[:name]).to eq("bar")
637
580
  end
638
581
  end
@@ -46,18 +46,16 @@ describe Puppet::Settings::HttpExtraHeadersSetting do
46
46
  end
47
47
 
48
48
  describe 'raises an error when' do
49
-
50
- # Ruby 2.3 reports the class of these objects as Fixnum, whereas later ruby versions report them as Integer
51
49
  it 'is given an unexpected object type' do
52
50
  expect {
53
51
  subject.munge(65)
54
- }.to raise_error(ArgumentError, /^Expected an Array, String, or Hash, got a (Integer|Fixnum)/)
52
+ }.to raise_error(ArgumentError, /^Expected an Array, String, or Hash, got a Integer/)
55
53
  end
56
54
 
57
55
  it 'is given an array of unexpected object types' do
58
56
  expect {
59
57
  subject.munge([65, 82])
60
- }.to raise_error(ArgumentError, /^Expected an Array or String, got a (Integer|Fixnum)/)
58
+ }.to raise_error(ArgumentError, /^Expected an Array or String, got a Integer/)
61
59
  end
62
60
  end
63
61
  end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ require 'puppet/settings'
4
+ require 'puppet/settings/integer_setting'
5
+
6
+ describe Puppet::Settings::IntegerSetting do
7
+ let(:setting) { described_class.new(:settings => double('settings'), :desc => "test") }
8
+
9
+ it "is of type :integer" do
10
+ expect(setting.type).to eq(:integer)
11
+ end
12
+
13
+ describe "when munging the setting" do
14
+ it "returns the same value if given a positive integer" do
15
+ expect(setting.munge(5)).to eq(5)
16
+ end
17
+
18
+ it "returns the same value if given a negative integer" do
19
+ expect(setting.munge(-25)).to eq(-25)
20
+ end
21
+
22
+ it "returns an integer if given a valid integer as string" do
23
+ expect(setting.munge('12')).to eq(12)
24
+ end
25
+
26
+ it "returns an integer if given a valid negative integer as string" do
27
+ expect(setting.munge('-12')).to eq(-12)
28
+ end
29
+
30
+ it "returns an integer if given a valid positive integer as string" do
31
+ expect(setting.munge('+12')).to eq(12)
32
+ end
33
+
34
+ it "raises if given an invalid value" do
35
+ expect { setting.munge('a5') }.to raise_error(Puppet::Settings::ValidationError)
36
+ end
37
+
38
+ it "raises if given nil" do
39
+ expect { setting.munge(nil) }.to raise_error(Puppet::Settings::ValidationError)
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ require 'puppet/settings'
4
+ require 'puppet/settings/port_setting'
5
+
6
+ describe Puppet::Settings::PortSetting do
7
+ let(:setting) { described_class.new(:settings => double('settings'), :desc => "test") }
8
+
9
+ it "is of type :port" do
10
+ expect(setting.type).to eq(:port)
11
+ end
12
+
13
+ describe "when munging the setting" do
14
+ it "returns the same value if given a valid port as integer" do
15
+ expect(setting.munge(5)).to eq(5)
16
+ end
17
+
18
+ it "returns an integer if given valid port as string" do
19
+ expect(setting.munge('12')).to eq(12)
20
+ end
21
+
22
+ it "raises if given a negative port number" do
23
+ expect { setting.munge('-5') }.to raise_error(Puppet::Settings::ValidationError)
24
+ end
25
+
26
+ it "raises if the port number is too high" do
27
+ expect { setting.munge(65536) }.to raise_error(Puppet::Settings::ValidationError)
28
+ end
29
+
30
+ end
31
+ end