puppet 6.20.0 → 7.4.0

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

Potentially problematic release.


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

Files changed (430) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -4
  3. data/Gemfile.lock +13 -13
  4. data/README.md +1 -1
  5. data/conf/fileserver.conf +5 -10
  6. data/ext/build_defaults.yaml +1 -2
  7. data/ext/osx/file_mapping.yaml +0 -5
  8. data/ext/project_data.yaml +2 -14
  9. data/ext/redhat/puppet.spec.erb +0 -1
  10. data/ext/windows/service/daemon.rb +6 -5
  11. data/install.rb +21 -17
  12. data/lib/puppet.rb +11 -20
  13. data/lib/puppet/application.rb +172 -98
  14. data/lib/puppet/application/device.rb +100 -104
  15. data/lib/puppet/application/filebucket.rb +13 -9
  16. data/lib/puppet/application/ssl.rb +1 -1
  17. data/lib/puppet/configurer.rb +27 -29
  18. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  19. data/lib/puppet/defaults.rb +57 -162
  20. data/lib/puppet/environments.rb +8 -23
  21. data/lib/puppet/face/facts.rb +73 -49
  22. data/lib/puppet/face/help.rb +1 -1
  23. data/lib/puppet/face/node/clean.rb +8 -0
  24. data/lib/puppet/face/plugin.rb +5 -8
  25. data/lib/puppet/ffi/windows.rb +12 -0
  26. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  27. data/lib/puppet/ffi/windows/constants.rb +404 -0
  28. data/lib/puppet/ffi/windows/functions.rb +628 -0
  29. data/lib/puppet/ffi/windows/structs.rb +338 -0
  30. data/lib/puppet/file_serving/configuration.rb +0 -5
  31. data/lib/puppet/file_serving/configuration/parser.rb +6 -32
  32. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  33. data/lib/puppet/file_serving/mount.rb +1 -2
  34. data/lib/puppet/forge/repository.rb +0 -1
  35. data/lib/puppet/generate/models/type/type.rb +4 -1
  36. data/lib/puppet/http.rb +22 -13
  37. data/lib/puppet/http/client.rb +164 -114
  38. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  39. data/lib/puppet/http/errors.rb +16 -0
  40. data/lib/puppet/http/external_client.rb +5 -7
  41. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  42. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  43. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  44. data/lib/puppet/http/proxy.rb +137 -0
  45. data/lib/puppet/http/redirector.rb +4 -12
  46. data/lib/puppet/http/resolver.rb +5 -15
  47. data/lib/puppet/http/resolver/server_list.rb +6 -10
  48. data/lib/puppet/http/resolver/settings.rb +4 -7
  49. data/lib/puppet/http/resolver/srv.rb +7 -11
  50. data/lib/puppet/http/response.rb +36 -54
  51. data/lib/puppet/http/response_converter.rb +24 -0
  52. data/lib/puppet/http/response_net_http.rb +42 -0
  53. data/lib/puppet/http/retry_after_handler.rb +4 -13
  54. data/lib/puppet/http/service.rb +12 -26
  55. data/lib/puppet/http/service/ca.rb +11 -22
  56. data/lib/puppet/http/service/compiler.rb +22 -69
  57. data/lib/puppet/http/service/file_server.rb +18 -27
  58. data/lib/puppet/http/service/puppetserver.rb +26 -12
  59. data/lib/puppet/http/service/report.rb +8 -10
  60. data/lib/puppet/http/session.rb +11 -20
  61. data/lib/puppet/{network/http → http}/site.rb +1 -2
  62. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  63. data/lib/puppet/indirector/facts/facter.rb +25 -3
  64. data/lib/puppet/indirector/facts/rest.rb +3 -22
  65. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  66. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  67. data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
  68. data/lib/puppet/indirector/file_server.rb +1 -8
  69. data/lib/puppet/indirector/generic_http.rb +0 -11
  70. data/lib/puppet/indirector/node/rest.rb +2 -4
  71. data/lib/puppet/indirector/report/rest.rb +3 -8
  72. data/lib/puppet/indirector/request.rb +0 -101
  73. data/lib/puppet/indirector/rest.rb +12 -263
  74. data/lib/puppet/module_tool/applications.rb +0 -1
  75. data/lib/puppet/network/authconfig.rb +2 -96
  76. data/lib/puppet/network/authorization.rb +13 -35
  77. data/lib/puppet/network/formats.rb +67 -0
  78. data/lib/puppet/network/http.rb +3 -3
  79. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  80. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  81. data/lib/puppet/network/http/connection.rb +247 -316
  82. data/lib/puppet/network/http/handler.rb +0 -1
  83. data/lib/puppet/network/http_pool.rb +16 -34
  84. data/lib/puppet/node.rb +1 -30
  85. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  86. data/lib/puppet/pal/pal_impl.rb +3 -1
  87. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  88. data/lib/puppet/parser/compiler.rb +0 -198
  89. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  90. data/lib/puppet/parser/resource.rb +0 -69
  91. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  92. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  93. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  94. data/lib/puppet/pops/issues.rb +0 -5
  95. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  96. data/lib/puppet/pops/model/ast.pp +0 -42
  97. data/lib/puppet/pops/model/ast.rb +0 -290
  98. data/lib/puppet/pops/model/factory.rb +0 -45
  99. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  100. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  101. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  102. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  103. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  104. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  105. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  106. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  107. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  108. data/lib/puppet/pops/types/type_parser.rb +0 -4
  109. data/lib/puppet/pops/types/types.rb +0 -1
  110. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  111. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  112. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  113. data/lib/puppet/property/list.rb +1 -1
  114. data/lib/puppet/provider.rb +0 -13
  115. data/lib/puppet/provider/group/groupadd.rb +13 -8
  116. data/lib/puppet/provider/nameservice.rb +0 -18
  117. data/lib/puppet/provider/package/apt.rb +30 -2
  118. data/lib/puppet/provider/package/aptitude.rb +6 -0
  119. data/lib/puppet/provider/package/dpkg.rb +0 -10
  120. data/lib/puppet/provider/package/gem.rb +23 -3
  121. data/lib/puppet/provider/package/pip.rb +0 -1
  122. data/lib/puppet/provider/package/pkg.rb +0 -4
  123. data/lib/puppet/provider/package/portage.rb +1 -1
  124. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  125. data/lib/puppet/provider/service/debian.rb +2 -0
  126. data/lib/puppet/provider/service/smf.rb +191 -73
  127. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  128. data/lib/puppet/provider/user/useradd.rb +55 -8
  129. data/lib/puppet/reference/configuration.rb +7 -5
  130. data/lib/puppet/reference/indirection.rb +1 -1
  131. data/lib/puppet/resource.rb +1 -89
  132. data/lib/puppet/resource/catalog.rb +1 -14
  133. data/lib/puppet/resource/type.rb +3 -119
  134. data/lib/puppet/resource/type_collection.rb +3 -48
  135. data/lib/puppet/runtime.rb +1 -2
  136. data/lib/puppet/settings.rb +45 -33
  137. data/lib/puppet/settings/integer_setting.rb +17 -0
  138. data/lib/puppet/settings/port_setting.rb +15 -0
  139. data/lib/puppet/settings/priority_setting.rb +5 -4
  140. data/lib/puppet/ssl.rb +10 -6
  141. data/lib/puppet/ssl/base.rb +3 -5
  142. data/lib/puppet/ssl/certificate.rb +0 -6
  143. data/lib/puppet/ssl/certificate_request.rb +1 -12
  144. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  145. data/lib/puppet/ssl/oids.rb +3 -1
  146. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  147. data/lib/puppet/ssl/state_machine.rb +3 -1
  148. data/lib/puppet/ssl/verifier.rb +2 -0
  149. data/lib/puppet/test/test_helper.rb +1 -3
  150. data/lib/puppet/transaction.rb +1 -7
  151. data/lib/puppet/transaction/report.rb +2 -4
  152. data/lib/puppet/type.rb +0 -76
  153. data/lib/puppet/type/file.rb +5 -7
  154. data/lib/puppet/type/file/checksum.rb +1 -1
  155. data/lib/puppet/type/file/source.rb +1 -1
  156. data/lib/puppet/type/filebucket.rb +3 -3
  157. data/lib/puppet/type/package.rb +8 -16
  158. data/lib/puppet/type/user.rb +1 -1
  159. data/lib/puppet/util/execution.rb +0 -11
  160. data/lib/puppet/util/http_proxy.rb +2 -215
  161. data/lib/puppet/util/monkey_patches.rb +0 -46
  162. data/lib/puppet/util/rdoc.rb +0 -7
  163. data/lib/puppet/util/retry_action.rb +1 -1
  164. data/lib/puppet/util/run_mode.rb +9 -1
  165. data/lib/puppet/util/windows.rb +3 -8
  166. data/lib/puppet/util/windows/daemon.rb +360 -0
  167. data/lib/puppet/util/windows/error.rb +1 -0
  168. data/lib/puppet/util/windows/eventlog.rb +4 -9
  169. data/lib/puppet/util/windows/file.rb +8 -242
  170. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  171. data/lib/puppet/util/windows/process.rb +4 -226
  172. data/lib/puppet/util/windows/service.rb +9 -460
  173. data/lib/puppet/util/windows/string.rb +12 -13
  174. data/lib/puppet/util/yaml.rb +0 -22
  175. data/lib/puppet/vendor/require_vendored.rb +0 -1
  176. data/lib/puppet/version.rb +1 -1
  177. data/lib/puppet/x509.rb +5 -1
  178. data/lib/puppet/x509/cert_provider.rb +29 -1
  179. data/locales/puppet.pot +521 -1226
  180. data/man/man5/puppet.conf.5 +35 -95
  181. data/man/man8/puppet-agent.8 +1 -1
  182. data/man/man8/puppet-apply.8 +1 -1
  183. data/man/man8/puppet-catalog.8 +1 -1
  184. data/man/man8/puppet-config.8 +1 -1
  185. data/man/man8/puppet-describe.8 +1 -1
  186. data/man/man8/puppet-device.8 +1 -1
  187. data/man/man8/puppet-doc.8 +1 -1
  188. data/man/man8/puppet-epp.8 +1 -1
  189. data/man/man8/puppet-facts.8 +57 -36
  190. data/man/man8/puppet-filebucket.8 +4 -4
  191. data/man/man8/puppet-generate.8 +1 -1
  192. data/man/man8/puppet-help.8 +1 -1
  193. data/man/man8/puppet-lookup.8 +1 -1
  194. data/man/man8/puppet-module.8 +1 -58
  195. data/man/man8/puppet-node.8 +1 -1
  196. data/man/man8/puppet-parser.8 +1 -1
  197. data/man/man8/puppet-plugin.8 +1 -1
  198. data/man/man8/puppet-report.8 +1 -1
  199. data/man/man8/puppet-resource.8 +1 -1
  200. data/man/man8/puppet-script.8 +1 -1
  201. data/man/man8/puppet-ssl.8 +1 -1
  202. data/man/man8/puppet.8 +2 -2
  203. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  204. data/spec/integration/application/agent_spec.rb +57 -11
  205. data/spec/integration/application/apply_spec.rb +1 -1
  206. data/spec/integration/application/filebucket_spec.rb +16 -16
  207. data/spec/integration/application/help_spec.rb +2 -0
  208. data/spec/integration/application/plugin_spec.rb +23 -1
  209. data/spec/integration/defaults_spec.rb +7 -3
  210. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
  211. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
  212. data/spec/integration/network/http_pool_spec.rb +3 -21
  213. data/spec/integration/parser/catalog_spec.rb +0 -38
  214. data/spec/integration/parser/node_spec.rb +0 -9
  215. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  216. data/spec/integration/type/file_spec.rb +5 -4
  217. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  218. data/spec/integration/util/windows/security_spec.rb +1 -1
  219. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  220. data/spec/lib/puppet_spec/settings.rb +1 -0
  221. data/spec/spec_helper.rb +2 -0
  222. data/spec/unit/agent_spec.rb +0 -2
  223. data/spec/unit/application/facts_spec.rb +86 -0
  224. data/spec/unit/application/filebucket_spec.rb +41 -39
  225. data/spec/unit/application/ssl_spec.rb +2 -2
  226. data/spec/unit/certificate_factory_spec.rb +1 -1
  227. data/spec/unit/configurer/downloader_spec.rb +6 -2
  228. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  229. data/spec/unit/configurer_spec.rb +12 -9
  230. data/spec/unit/context/trusted_information_spec.rb +2 -6
  231. data/spec/unit/defaults_spec.rb +22 -47
  232. data/spec/unit/environments_spec.rb +0 -3
  233. data/spec/unit/face/facts_spec.rb +4 -0
  234. data/spec/unit/face/node_spec.rb +14 -2
  235. data/spec/unit/face/plugin_spec.rb +73 -33
  236. data/spec/unit/file_bucket/file_spec.rb +1 -1
  237. data/spec/unit/file_serving/configuration/parser_spec.rb +22 -18
  238. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  239. data/spec/unit/functions/camelcase_spec.rb +1 -1
  240. data/spec/unit/functions/capitalize_spec.rb +1 -1
  241. data/spec/unit/functions/downcase_spec.rb +1 -1
  242. data/spec/unit/functions/upcase_spec.rb +1 -1
  243. data/spec/unit/http/client_spec.rb +7 -8
  244. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  245. data/spec/unit/http/external_client_spec.rb +4 -4
  246. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  247. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  248. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  249. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  250. data/spec/unit/http/resolver_spec.rb +13 -13
  251. data/spec/unit/http/service/compiler_spec.rb +0 -62
  252. data/spec/unit/http/service/file_server_spec.rb +3 -3
  253. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  254. data/spec/unit/http/service_spec.rb +0 -1
  255. data/spec/unit/http/session_spec.rb +16 -14
  256. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  257. data/spec/unit/indirector/facts/facter_spec.rb +113 -0
  258. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  259. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  260. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  261. data/spec/unit/indirector/file_server_spec.rb +1 -15
  262. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  263. data/spec/unit/indirector/request_spec.rb +0 -264
  264. data/spec/unit/indirector/rest_spec.rb +98 -752
  265. data/spec/unit/network/authconfig_spec.rb +2 -129
  266. data/spec/unit/network/authorization_spec.rb +2 -55
  267. data/spec/unit/network/formats_spec.rb +45 -4
  268. data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -92
  269. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  270. data/spec/unit/network/http/api_spec.rb +10 -0
  271. data/spec/unit/network/http/connection_spec.rb +19 -41
  272. data/spec/unit/network/http/handler_spec.rb +0 -1
  273. data/spec/unit/network/http_pool_spec.rb +0 -4
  274. data/spec/unit/node/environment_spec.rb +33 -21
  275. data/spec/unit/node_spec.rb +2 -54
  276. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  277. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  278. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  279. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  280. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  281. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  282. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  283. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  284. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  285. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  286. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  287. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  288. data/spec/unit/pops/visitor_spec.rb +1 -1
  289. data/spec/unit/provider/group/groupadd_spec.rb +5 -2
  290. data/spec/unit/provider/nameservice_spec.rb +0 -57
  291. data/spec/unit/provider/package/apt_spec.rb +24 -15
  292. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  293. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  294. data/spec/unit/provider/package/gem_spec.rb +32 -0
  295. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  296. data/spec/unit/provider/service/smf_spec.rb +401 -165
  297. data/spec/unit/provider/service/windows_spec.rb +0 -1
  298. data/spec/unit/provider/user/useradd_spec.rb +55 -3
  299. data/spec/unit/provider_spec.rb +0 -12
  300. data/spec/unit/resource/type_collection_spec.rb +2 -22
  301. data/spec/unit/resource_spec.rb +0 -56
  302. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  303. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  304. data/spec/unit/settings/port_setting_spec.rb +31 -0
  305. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  306. data/spec/unit/settings_spec.rb +17 -0
  307. data/spec/unit/ssl/base_spec.rb +36 -3
  308. data/spec/unit/ssl/certificate_request_spec.rb +19 -55
  309. data/spec/unit/ssl/certificate_spec.rb +2 -11
  310. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  311. data/spec/unit/ssl/verifier_spec.rb +0 -21
  312. data/spec/unit/transaction/report_spec.rb +0 -2
  313. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  314. data/spec/unit/transaction_spec.rb +45 -79
  315. data/spec/unit/type/file/checksum_spec.rb +6 -6
  316. data/spec/unit/type/file/content_spec.rb +1 -1
  317. data/spec/unit/type/file/ensure_spec.rb +1 -1
  318. data/spec/unit/type/file/mode_spec.rb +1 -1
  319. data/spec/unit/type/file/source_spec.rb +0 -1
  320. data/spec/unit/type/file_spec.rb +12 -6
  321. data/spec/unit/type/package_spec.rb +1 -1
  322. data/spec/unit/type_spec.rb +20 -0
  323. data/spec/unit/util/backups_spec.rb +0 -2
  324. data/spec/unit/util/execution_spec.rb +0 -29
  325. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  326. data/spec/unit/util/run_mode_spec.rb +21 -121
  327. data/spec/unit/util/windows/string_spec.rb +1 -3
  328. data/spec/unit/util/yaml_spec.rb +0 -54
  329. data/spec/unit/util_spec.rb +0 -18
  330. metadata +48 -163
  331. data/conf/auth.conf +0 -150
  332. data/lib/puppet/application/cert.rb +0 -76
  333. data/lib/puppet/application/key.rb +0 -4
  334. data/lib/puppet/application/man.rb +0 -4
  335. data/lib/puppet/application/status.rb +0 -4
  336. data/lib/puppet/face/key.rb +0 -16
  337. data/lib/puppet/face/man.rb +0 -145
  338. data/lib/puppet/face/module/build.rb +0 -14
  339. data/lib/puppet/face/module/generate.rb +0 -14
  340. data/lib/puppet/face/module/search.rb +0 -103
  341. data/lib/puppet/face/status.rb +0 -51
  342. data/lib/puppet/indirector/certificate/file.rb +0 -9
  343. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  344. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  345. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  346. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  347. data/lib/puppet/indirector/file_content/http.rb +0 -22
  348. data/lib/puppet/indirector/key/file.rb +0 -46
  349. data/lib/puppet/indirector/key/memory.rb +0 -7
  350. data/lib/puppet/indirector/ssl_file.rb +0 -162
  351. data/lib/puppet/indirector/status.rb +0 -3
  352. data/lib/puppet/indirector/status/local.rb +0 -12
  353. data/lib/puppet/indirector/status/rest.rb +0 -27
  354. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  355. data/lib/puppet/network/auth_config_parser.rb +0 -90
  356. data/lib/puppet/network/authstore.rb +0 -283
  357. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  358. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  359. data/lib/puppet/network/http/base_pool.rb +0 -36
  360. data/lib/puppet/network/http/compression.rb +0 -127
  361. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  362. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  363. data/lib/puppet/network/rest_controller.rb +0 -2
  364. data/lib/puppet/network/rights.rb +0 -210
  365. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  366. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  367. data/lib/puppet/parser/environment_compiler.rb +0 -202
  368. data/lib/puppet/pops/types/enumeration.rb +0 -16
  369. data/lib/puppet/resource/capability_finder.rb +0 -154
  370. data/lib/puppet/rest/errors.rb +0 -15
  371. data/lib/puppet/rest/response.rb +0 -35
  372. data/lib/puppet/rest/route.rb +0 -85
  373. data/lib/puppet/rest/routes.rb +0 -135
  374. data/lib/puppet/ssl/host.rb +0 -505
  375. data/lib/puppet/ssl/key.rb +0 -61
  376. data/lib/puppet/ssl/validator.rb +0 -61
  377. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  378. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  379. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  380. data/lib/puppet/status.rb +0 -40
  381. data/lib/puppet/util/connection.rb +0 -88
  382. data/lib/puppet/util/fact_dif.rb +0 -62
  383. data/lib/puppet/util/ssl.rb +0 -83
  384. data/lib/puppet/util/windows/api_types.rb +0 -309
  385. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  386. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  387. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  388. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  389. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  390. data/lib/puppet/vendor/pathspec/README.md +0 -53
  391. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  392. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  393. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  394. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  395. data/man/man8/puppet-key.8 +0 -126
  396. data/man/man8/puppet-man.8 +0 -76
  397. data/man/man8/puppet-status.8 +0 -108
  398. data/spec/integration/network/authconfig_spec.rb +0 -256
  399. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  400. data/spec/unit/application/man_spec.rb +0 -52
  401. data/spec/unit/capability_spec.rb +0 -414
  402. data/spec/unit/face/key_spec.rb +0 -9
  403. data/spec/unit/face/module/search_spec.rb +0 -231
  404. data/spec/unit/face/status_spec.rb +0 -9
  405. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  406. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  407. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  408. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  409. data/spec/unit/indirector/key/file_spec.rb +0 -78
  410. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  411. data/spec/unit/indirector/status/local_spec.rb +0 -10
  412. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  413. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  414. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  415. data/spec/unit/network/authstore_spec.rb +0 -422
  416. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  417. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  418. data/spec/unit/network/http/compression_spec.rb +0 -240
  419. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  420. data/spec/unit/network/http_spec.rb +0 -9
  421. data/spec/unit/network/rights_spec.rb +0 -439
  422. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  423. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  424. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  425. data/spec/unit/rest/route_spec.rb +0 -132
  426. data/spec/unit/ssl/host_spec.rb +0 -645
  427. data/spec/unit/ssl/key_spec.rb +0 -173
  428. data/spec/unit/ssl/validator_spec.rb +0 -278
  429. data/spec/unit/status_spec.rb +0 -45
  430. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -4,7 +4,7 @@ require 'puppet/certificate_factory'
4
4
  require 'puppet/ssl/certificate'
5
5
 
6
6
  describe Puppet::SSL::Certificate do
7
- let :key do Puppet::SSL::Key.new("test.localdomain").generate end
7
+ let :key do OpenSSL::PKey::RSA.new(Puppet[:keylength]) end
8
8
 
9
9
  # Sign the provided cert so that it can be DER-decoded later
10
10
  def sign_wrapped_cert(cert)
@@ -16,14 +16,6 @@ describe Puppet::SSL::Certificate do
16
16
  @class = Puppet::SSL::Certificate
17
17
  end
18
18
 
19
- it "should be extended with the Indirector module" do
20
- expect(@class.singleton_class).to be_include(Puppet::Indirector)
21
- end
22
-
23
- it "should indirect certificate" do
24
- expect(@class.indirection.name).to eq(:certificate)
25
- end
26
-
27
19
  it "should only support the text format" do
28
20
  expect(@class.supported_formats).to eq([:s])
29
21
  end
@@ -82,8 +74,7 @@ describe Puppet::SSL::Certificate do
82
74
 
83
75
  describe "when managing instances" do
84
76
  def build_cert(opts)
85
- key = Puppet::SSL::Key.new('quux')
86
- key.generate
77
+ key = OpenSSL::PKey::RSA.new(Puppet[:keylength])
87
78
  csr = Puppet::SSL::CertificateRequest.new('quux')
88
79
  csr.generate(key, opts)
89
80
 
@@ -505,7 +505,6 @@ describe Puppet::SSL::StateMachine, unless: Puppet::Util::Platform.jruby? do
505
505
  Puppet[:certificate_revocation] = false
506
506
 
507
507
  expect(cert_provider).not_to receive(:load_crls)
508
- expect(Puppet::Rest::Routes).not_to receive(:get_crls)
509
508
 
510
509
  state.next_state
511
510
 
@@ -6,7 +6,6 @@ describe Puppet::SSL::Verifier do
6
6
  let(:host) { 'example.com' }
7
7
  let(:http) { Net::HTTP.new(host) }
8
8
  let(:verifier) { described_class.new(host, ssl_context) }
9
- let(:adapter) { Puppet::SSL::VerifierAdapter.new(Puppet::SSL::Validator::DefaultValidator.new) }
10
9
 
11
10
  context '#reusable?' do
12
11
  it 'Verifiers with the same ssl_context are reusable' do
@@ -16,26 +15,6 @@ describe Puppet::SSL::Verifier do
16
15
  it 'Verifiers with different ssl_contexts are not reusable' do
17
16
  expect(verifier).to_not be_reusable(described_class.new(host, Puppet::SSL::SSLContext.new))
18
17
  end
19
-
20
- it 'Verifier is not reusable with VerifierAdapter' do
21
- expect(verifier).to_not be_reusable(adapter)
22
- end
23
-
24
- it 'VerifierAdapter is not reusable with Verifier' do
25
- expect(adapter).to_not be_reusable(verifier)
26
- end
27
-
28
- it 'VerifierAdapters with the same class of Validator are reusable' do
29
- expect(
30
- adapter
31
- ).to be_reusable(Puppet::SSL::VerifierAdapter.new(Puppet::SSL::Validator::DefaultValidator.new))
32
- end
33
-
34
- it 'VerifierAdapters with different classes of Validators are not reusable' do
35
- expect(
36
- adapter
37
- ).to_not be_reusable(Puppet::SSL::VerifierAdapter.new(Puppet::SSL::Validator::NoValidator.new))
38
- end
39
18
  end
40
19
 
41
20
  context '#setup_connection' do
@@ -675,7 +675,6 @@ Version:
675
675
  report.code_id = "some code id"
676
676
  report.catalog_uuid = "some catalog uuid"
677
677
  report.cached_catalog_status = "not_used"
678
- report.master_used = "test:000"
679
678
  report.server_used = "test:000"
680
679
  report.add_resource_status(status)
681
680
  report.transaction_completed = true
@@ -694,7 +693,6 @@ Version:
694
693
  report.code_id = "some code id"
695
694
  report.catalog_uuid = "some catalog uuid"
696
695
  report.cached_catalog_status = "not_used"
697
- report.master_used = "test:000"
698
696
  report.server_used = "test:000"
699
697
  report.add_resource_status(status)
700
698
  report.transaction_completed = true
@@ -612,14 +612,14 @@ describe Puppet::Transaction::ResourceHarness do
612
612
  allow_any_instance_of(Puppet::Transaction::Event).to receive(:corrective_change).and_return(true)
613
613
  status = @harness.evaluate(resource)
614
614
  sync_event = status.events[0]
615
- expect(sync_event.message).to match(/content changed '{md5}[0-9a-f]+' to '{md5}[0-9a-f]+' \(corrective\)/)
615
+ expect(sync_event.message).to match(/content changed '{sha256}[0-9a-f]+' to '{sha256}[0-9a-f]+' \(corrective\)/)
616
616
  end
617
617
 
618
618
  it "contains no modifier when intentional change" do
619
619
  allow_any_instance_of(Puppet::Transaction::Event).to receive(:corrective_change).and_return(false)
620
620
  status = @harness.evaluate(resource)
621
621
  sync_event = status.events[0]
622
- expect(sync_event.message).to match(/content changed '{md5}[0-9a-f]+' to '{md5}[0-9a-f]+'$/)
622
+ expect(sync_event.message).to match(/content changed '{sha256}[0-9a-f]+' to '{sha256}[0-9a-f]+'$/)
623
623
  end
624
624
  end
625
625
  end
@@ -605,115 +605,81 @@ describe Puppet::Transaction do
605
605
  transaction.prefetch_if_necessary(resource)
606
606
  end
607
607
 
608
- it "should not rescue SystemExit without future_features flag" do
609
- Puppet.settings[:future_features] = false
608
+ it "should not rescue SystemExit" do
610
609
  expect(resource.provider.class).to receive(:prefetch).and_raise(SystemExit, "SystemMessage")
611
610
  expect { transaction.prefetch_if_necessary(resource) }.to raise_error(SystemExit, "SystemMessage")
612
611
  end
613
612
 
614
- it "should not rescue SystemExit with future_features flag" do
615
- Puppet.settings[:future_features] = true
616
- expect(resource.provider.class).to receive(:prefetch).and_raise(SystemExit, "SystemMessage")
617
- expect { transaction.prefetch_if_necessary(resource) }.to raise_error(SystemExit, "SystemMessage")
618
- end
619
-
620
- it "should rescue LoadError without future_features flag" do
621
- Puppet.settings[:future_features] = false
622
- expect(resource.provider.class).to receive(:prefetch).and_raise(LoadError, "LoadMessage")
623
- expect { transaction.prefetch_if_necessary(resource) }.not_to raise_error
624
- end
625
-
626
- it "should rescue LoadError with future_features flag" do
627
- Puppet.settings[:future_features] = true
613
+ it "should mark resources as failed when prefetching raises LoadError" do
628
614
  expect(resource.provider.class).to receive(:prefetch).and_raise(LoadError, "LoadMessage")
629
- expect { transaction.prefetch_if_necessary(resource) }.not_to raise_error
615
+ transaction.prefetch_if_necessary(resource)
616
+ expect(transaction.prefetched_providers[:package][:pkgng]).to be_truthy
630
617
  end
631
618
 
632
- describe "and prefetching fails" do
619
+ describe "and prefetching raises Puppet::Error" do
633
620
  before :each do
634
621
  expect(resource.provider.class).to receive(:prefetch).and_raise(Puppet::Error, "message")
635
622
  end
636
623
 
637
- context "without future_features flag" do
638
- before :each do
639
- Puppet.settings[:future_features] = false
640
- end
641
-
642
- it "should not rescue prefetch executions" do
643
- expect { transaction.prefetch_if_necessary(resource) }.to raise_error(Puppet::Error)
644
- end
624
+ it "should rescue prefetch executions" do
625
+ transaction.prefetch_if_necessary(resource)
645
626
 
646
- it "should log the exception during prefetch" do
647
- expect(Puppet).to receive(:log_exception).with(anything, "Could not prefetch package provider 'pkgng': message")
648
- expect { transaction.prefetch_if_necessary(resource) }.to raise_error(Puppet::Error, "message")
649
- end
627
+ expect(transaction.prefetched_providers[:package][:pkgng]).to be_truthy
650
628
  end
651
629
 
652
- context "with future_features flag" do
653
- before :each do
654
- Puppet.settings[:future_features] = true
655
- end
630
+ it "should mark resources as failed", :unless => RUBY_PLATFORM == 'java' do
631
+ transaction.evaluate
656
632
 
657
- it "should rescue prefetch executions" do
658
- transaction.prefetch_if_necessary(resource)
633
+ expect(transaction.resource_status(resource).failed?).to be_truthy
634
+ end
659
635
 
660
- expect(transaction.prefetched_providers[:package][:pkgng]).to be_truthy
661
- end
636
+ it "should mark a provider that has failed prefetch" do
637
+ transaction.prefetch_if_necessary(resource)
662
638
 
663
- it "should mark resources as failed", :unless => RUBY_PLATFORM == 'java' do
664
- transaction.evaluate
639
+ expect(transaction.prefetch_failed_providers[:package][:pkgng]).to be_truthy
640
+ end
665
641
 
666
- expect(transaction.resource_status(resource).failed?).to be_truthy
642
+ describe "and new resources are generated" do
643
+ let(:generator) { Puppet::Type.type(:generator).new :title => "generator" }
644
+ let(:generated) do
645
+ %w[a b c].map { |name| Puppet::Type.type(:package).new :title => "foo", :name => name, :provider => :apt }
667
646
  end
668
647
 
669
- it "should mark a provider that has failed prefetch" do
670
- transaction.prefetch_if_necessary(resource)
671
-
672
- expect(transaction.prefetch_failed_providers[:package][:pkgng]).to be_truthy
648
+ before :each do
649
+ catalog.add_resource generator
650
+ allow(generator).to receive(:generate).and_return(generated)
651
+ allow(catalog).to receive(:container_of).and_return(generator)
673
652
  end
674
653
 
675
- describe "and new resources are generated" do
676
- let(:generator) { Puppet::Type.type(:generator).new :title => "generator" }
677
- let(:generated) do
678
- %w[a b c].map { |name| Puppet::Type.type(:package).new :title => "foo", :name => name, :provider => :apt }
679
- end
680
-
681
- before :each do
682
- catalog.add_resource generator
683
- allow(generator).to receive(:generate).and_return(generated)
684
- allow(catalog).to receive(:container_of).and_return(generator)
685
- end
686
-
687
- it "should not evaluate resources with a failed provider, even if the prefetch is rescued" do
688
- #Only the generator resource should be applied, all the other resources are failed, and skipped.
689
- catalog.remove_resource resource2
690
- expect(transaction).to receive(:apply).once
654
+ it "should not evaluate resources with a failed provider, even if the prefetch is rescued" do
655
+ #Only the generator resource should be applied, all the other resources are failed, and skipped.
656
+ catalog.remove_resource resource2
657
+ expect(transaction).to receive(:apply).once
691
658
 
692
- transaction.evaluate
693
- end
659
+ transaction.evaluate
660
+ end
694
661
 
695
- it "should not fail other resources added after the failing resource", :unless => RUBY_PLATFORM == 'java' do
696
- new_resource = Puppet::Type.type(:notify).new :name => "baz"
697
- catalog.add_resource(new_resource)
662
+ it "should not fail other resources added after the failing resource", :unless => RUBY_PLATFORM == 'java' do
663
+ new_resource = Puppet::Type.type(:notify).new :name => "baz"
664
+ catalog.add_resource(new_resource)
698
665
 
699
- transaction.evaluate
666
+ transaction.evaluate
700
667
 
701
- expect(transaction.resource_status(new_resource).failed?).to be_falsey
702
- end
668
+ expect(transaction.resource_status(new_resource).failed?).to be_falsey
669
+ end
703
670
 
704
- it "should fail other resources that require the failing resource" do
705
- new_resource = Puppet::Type.type(:notify).new(:name => "baz", :require => resource)
706
- catalog.add_resource(new_resource)
671
+ it "should fail other resources that require the failing resource" do
672
+ new_resource = Puppet::Type.type(:notify).new(:name => "baz", :require => resource)
673
+ catalog.add_resource(new_resource)
707
674
 
708
- catalog.remove_resource resource2
709
- expect(transaction).to receive(:apply).once
675
+ catalog.remove_resource resource2
676
+ expect(transaction).to receive(:apply).once
710
677
 
711
- transaction.evaluate
678
+ transaction.evaluate
712
679
 
713
- expect(transaction.resource_status(resource).failed?).to be_truthy
714
- expect(transaction.resource_status(new_resource).dependency_failed?).to be_truthy
715
- expect(transaction.skip?(new_resource)).to be_truthy
716
- end
680
+ expect(transaction.resource_status(resource).failed?).to be_truthy
681
+ expect(transaction.resource_status(new_resource).dependency_failed?).to be_truthy
682
+ expect(transaction.skip?(new_resource)).to be_truthy
717
683
  end
718
684
  end
719
685
  end
@@ -18,8 +18,8 @@ describe checksum do
18
18
  @checksum.sum("foobar")
19
19
  end
20
20
 
21
- it "should use :md5 to sum when no value is set" do
22
- expect(@checksum).to receive(:md5).with("foobar").and_return("yay")
21
+ it "should use :sha256 to sum when no value is set" do
22
+ expect(@checksum).to receive(:sha256).with("foobar").and_return("yay")
23
23
  @checksum.sum("foobar")
24
24
  end
25
25
 
@@ -47,8 +47,8 @@ describe checksum do
47
47
  expect(@checksum.sum("foobar")).to eq("{sha384}#{sum}")
48
48
  end
49
49
 
50
- it "should use :md5 as its default type" do
51
- expect(@checksum.default).to eq(:md5)
50
+ it "should use :sha256 as its default type" do
51
+ expect(@checksum.default).to eq(:sha256)
52
52
  end
53
53
 
54
54
  it "should use its current value when asked to sum a file's content" do
@@ -57,8 +57,8 @@ describe checksum do
57
57
  @checksum.sum_file(@path)
58
58
  end
59
59
 
60
- it "should use :md5 to sum a file when no value is set" do
61
- expect(@checksum).to receive(:md5_file).with(@path).and_return("yay")
60
+ it "should use :sha256 to sum a file when no value is set" do
61
+ expect(@checksum).to receive(:sha256_file).with(@path).and_return("yay")
62
62
  @checksum.sum_file(@path)
63
63
  end
64
64
 
@@ -7,7 +7,7 @@ describe Puppet::Type.type(:file).attrclass(:content), :uses_checksums => true d
7
7
  let(:filename) { tmpfile('testfile') }
8
8
  let(:environment) { Puppet::Node::Environment.create(:testing, []) }
9
9
  let(:catalog) { Puppet::Resource::Catalog.new(:test, environment) }
10
- let(:resource) { Puppet::Type.type(:file).new :path => filename, :catalog => catalog }
10
+ let(:resource) { Puppet::Type.type(:file).new :path => filename, :catalog => catalog, :backup => 'puppet' }
11
11
 
12
12
  before do
13
13
  File.open(filename, 'w') {|f| f.write "initial file content"}
@@ -85,7 +85,7 @@ describe Puppet::Type.type(:file).attrclass(:ensure) do
85
85
  }.to raise_error(Puppet::Error, /Cannot create #{newpath}; parent directory #{File.dirname(newpath)} does not exist/)
86
86
  end
87
87
 
88
- it "should accept octal mode as fixnum" do
88
+ it "should accept octal mode as integer" do
89
89
  resource[:mode] = '0700'
90
90
  expect(resource).to receive(:property_fix)
91
91
  expect(Dir).to receive(:mkdir).with(path, 0700)
@@ -11,7 +11,7 @@ describe Puppet::Type.type(:file).attrclass(:mode) do
11
11
  it "should reject non-string values" do
12
12
  expect {
13
13
  mode.value = 0755
14
- }.to raise_error(Puppet::Error, /The file mode specification must be a string, not '(?:Fixnum|Integer)'/)
14
+ }.to raise_error(Puppet::Error, /The file mode specification must be a string, not 'Integer'/)
15
15
  end
16
16
 
17
17
  it "should accept values specified as octal numbers in strings" do
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'uri'
3
3
  require 'puppet/network/http_pool'
4
- #require 'puppet/network/resolver'
5
4
 
6
5
  describe Puppet::Type.type(:file).attrclass(:source), :uses_checksums => true do
7
6
  include PuppetSpec::Files
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'spec_helper'
2
3
 
3
4
  describe Puppet::Type.type(:file) do
@@ -133,6 +134,10 @@ describe Puppet::Type.type(:file) do
133
134
  end
134
135
 
135
136
  describe "the backup parameter" do
137
+ it 'should be disabled by default' do
138
+ expect(file[:backup]).to eq(nil)
139
+ end
140
+
136
141
  [false, 'false', :false].each do |value|
137
142
  it "should disable backup if the value is #{value.inspect}" do
138
143
  file[:backup] = value
@@ -768,7 +773,7 @@ describe Puppet::Type.type(:file) do
768
773
  it "should set the checksum parameter based on the metadata" do
769
774
  allow(file).to receive(:perform_recursion).and_return([@first])
770
775
  allow(@resource).to receive(:[]=)
771
- expect(@resource).to receive(:[]=).with(:checksum, "md5")
776
+ expect(@resource).to receive(:[]=).with(:checksum, "sha256")
772
777
  file.recurse_remote("first" => @resource)
773
778
  end
774
779
 
@@ -804,7 +809,7 @@ describe Puppet::Type.type(:file) do
804
809
  allow(file).to receive(:perform_recursion).and_return([@first])
805
810
 
806
811
  allow(file).to receive(:[]=)
807
- expect(file). to receive(:[]=).with(:checksum, "md5")
812
+ expect(file). to receive(:[]=).with(:checksum, "sha256")
808
813
 
809
814
  file.recurse_remote("first" => @resource)
810
815
  end
@@ -922,7 +927,7 @@ describe Puppet::Type.type(:file) do
922
927
  end
923
928
 
924
929
  it "should fail if it can't backup the file" do
925
- # Default: file[:backup] = true
930
+ file[:backup] = true
926
931
  allow(file).to receive(:stat).and_return(double('stat', :ftype => 'file'))
927
932
  allow(file).to receive(:perform_backup).and_return(false)
928
933
 
@@ -931,7 +936,7 @@ describe Puppet::Type.type(:file) do
931
936
 
932
937
  describe "backing up directories" do
933
938
  it "should not backup directories if backup is true and force is false" do
934
- # Default: file[:backup] = true
939
+ file[:backup] = true
935
940
  file[:force] = false
936
941
  allow(file).to receive(:stat).and_return(double('stat', :ftype => 'directory'))
937
942
 
@@ -941,7 +946,7 @@ describe Puppet::Type.type(:file) do
941
946
  end
942
947
 
943
948
  it "should backup directories if backup is true and force is true" do
944
- # Default: file[:backup] = true
949
+ file[:backup] = true
945
950
  file[:force] = true
946
951
  allow(file).to receive(:stat).and_return(double('stat', :ftype => 'directory'))
947
952
 
@@ -968,7 +973,7 @@ describe Puppet::Type.type(:file) do
968
973
  end
969
974
 
970
975
  it "should remove a directory if backup is true and force is true" do
971
- # Default: file[:backup] = true
976
+ file[:backup] = true
972
977
  file[:force] = true
973
978
  allow(file).to receive(:stat).and_return(double('stat', :ftype => 'directory'))
974
979
 
@@ -1000,6 +1005,7 @@ describe Puppet::Type.type(:file) do
1000
1005
  end
1001
1006
 
1002
1007
  it "should fail if the file is not a directory, link, file, fifo, socket, or is unknown" do
1008
+ file[:backup] = 'puppet'
1003
1009
  allow(file).to receive(:stat).and_return(double('stat', :ftype => 'blockSpecial'))
1004
1010
 
1005
1011
  expect(file).to receive(:warning).with("Could not back up file of type blockSpecial")
@@ -349,7 +349,7 @@ describe Puppet::Type.type(:package) do
349
349
  end
350
350
  end
351
351
 
352
- [:purged, :absent, :held].each do |state|
352
+ [:purged, :absent].each do |state|
353
353
  it "should not reinstall if it should be #{state.to_s} and reinstall_on_refresh is true" do
354
354
  @package[:ensure] = state
355
355
  allow(@provider).to receive(:reinstallable?).and_return(true)
@@ -195,6 +195,26 @@ describe Puppet::Type, :unless => Puppet::Util::Platform.windows? do
195
195
  end
196
196
  end
197
197
 
198
+ context 'aliased resource' do
199
+ it 'fails if a resource is defined and then redefined using name that results in the same alias' do
200
+ drive = Puppet::Util::Platform.windows? ? 'C:' : ''
201
+ code = <<~PUPPET
202
+ $dir='#{drive}/tmp/test'
203
+ $same_dir='#{drive}/tmp/test/'
204
+
205
+ file {$dir:
206
+ ensure => directory
207
+ }
208
+
209
+ file { $same_dir:
210
+ ensure => directory
211
+ }
212
+ PUPPET
213
+
214
+ expect { compile_to_ral(code) }.to raise_error(/resource \["File", "#{drive}\/tmp\/test"\] already declared/)
215
+ end
216
+ end
217
+
198
218
  context "resource attributes" do
199
219
  let(:resource) {
200
220
  resource = klass.new(:name => "foo")