puppet 6.23.0 → 7.0.0

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

Potentially problematic release.


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

Files changed (581) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/Gemfile +1 -3
  4. data/Gemfile.lock +34 -46
  5. data/README.md +1 -1
  6. data/conf/fileserver.conf +5 -10
  7. data/ext/build_defaults.yaml +1 -1
  8. data/ext/osx/file_mapping.yaml +0 -5
  9. data/ext/osx/puppet.plist +0 -2
  10. data/ext/project_data.yaml +1 -14
  11. data/ext/redhat/puppet.spec.erb +0 -1
  12. data/ext/windows/service/daemon.rb +6 -5
  13. data/install.rb +21 -17
  14. data/lib/puppet.rb +11 -20
  15. data/lib/puppet/application.rb +178 -108
  16. data/lib/puppet/application/agent.rb +4 -12
  17. data/lib/puppet/application/apply.rb +2 -4
  18. data/lib/puppet/application/device.rb +100 -106
  19. data/lib/puppet/application/filebucket.rb +13 -9
  20. data/lib/puppet/application/resource.rb +1 -2
  21. data/lib/puppet/application/script.rb +0 -2
  22. data/lib/puppet/application/ssl.rb +1 -12
  23. data/lib/puppet/application_support.rb +0 -7
  24. data/lib/puppet/configurer.rb +30 -45
  25. data/lib/puppet/configurer/downloader.rb +1 -2
  26. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  27. data/lib/puppet/defaults.rb +100 -192
  28. data/lib/puppet/environments.rb +60 -74
  29. data/lib/puppet/face/facts.rb +5 -103
  30. data/lib/puppet/face/help.rb +1 -1
  31. data/lib/puppet/face/plugin.rb +5 -8
  32. data/lib/puppet/ffi/windows.rb +12 -0
  33. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  34. data/lib/puppet/ffi/windows/constants.rb +404 -0
  35. data/lib/puppet/ffi/windows/functions.rb +628 -0
  36. data/lib/puppet/ffi/windows/structs.rb +338 -0
  37. data/lib/puppet/file_serving/configuration.rb +0 -5
  38. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  39. data/lib/puppet/file_serving/fileset.rb +2 -14
  40. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  41. data/lib/puppet/file_serving/mount.rb +1 -2
  42. data/lib/puppet/file_system/memory_file.rb +1 -8
  43. data/lib/puppet/file_system/windows.rb +0 -2
  44. data/lib/puppet/forge/repository.rb +0 -1
  45. data/lib/puppet/functions/all.rb +1 -1
  46. data/lib/puppet/functions/camelcase.rb +1 -1
  47. data/lib/puppet/functions/capitalize.rb +2 -2
  48. data/lib/puppet/functions/downcase.rb +2 -2
  49. data/lib/puppet/functions/get.rb +5 -5
  50. data/lib/puppet/functions/group_by.rb +5 -13
  51. data/lib/puppet/functions/lest.rb +1 -1
  52. data/lib/puppet/functions/new.rb +100 -100
  53. data/lib/puppet/functions/partition.rb +4 -12
  54. data/lib/puppet/functions/require.rb +5 -5
  55. data/lib/puppet/functions/sort.rb +3 -3
  56. data/lib/puppet/functions/tree_each.rb +9 -7
  57. data/lib/puppet/functions/type.rb +4 -4
  58. data/lib/puppet/functions/upcase.rb +2 -2
  59. data/lib/puppet/generate/models/type/type.rb +4 -1
  60. data/lib/puppet/http.rb +22 -13
  61. data/lib/puppet/http/client.rb +164 -114
  62. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  63. data/lib/puppet/http/errors.rb +16 -0
  64. data/lib/puppet/http/external_client.rb +5 -7
  65. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  66. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  67. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  68. data/lib/puppet/http/proxy.rb +137 -0
  69. data/lib/puppet/http/redirector.rb +4 -12
  70. data/lib/puppet/http/resolver.rb +5 -15
  71. data/lib/puppet/http/resolver/server_list.rb +10 -25
  72. data/lib/puppet/http/resolver/settings.rb +4 -7
  73. data/lib/puppet/http/resolver/srv.rb +7 -11
  74. data/lib/puppet/http/response.rb +36 -54
  75. data/lib/puppet/http/response_converter.rb +24 -0
  76. data/lib/puppet/http/response_net_http.rb +42 -0
  77. data/lib/puppet/http/retry_after_handler.rb +4 -13
  78. data/lib/puppet/http/service.rb +12 -26
  79. data/lib/puppet/http/service/ca.rb +11 -22
  80. data/lib/puppet/http/service/compiler.rb +22 -138
  81. data/lib/puppet/http/service/file_server.rb +19 -29
  82. data/lib/puppet/http/service/puppetserver.rb +26 -12
  83. data/lib/puppet/http/service/report.rb +8 -10
  84. data/lib/puppet/http/session.rb +11 -20
  85. data/lib/puppet/{network/http → http}/site.rb +1 -2
  86. data/lib/puppet/indirector/catalog/compiler.rb +0 -1
  87. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  88. data/lib/puppet/indirector/facts/rest.rb +3 -22
  89. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  90. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  91. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  92. data/lib/puppet/indirector/file_server.rb +1 -8
  93. data/lib/puppet/indirector/generic_http.rb +0 -11
  94. data/lib/puppet/indirector/node/rest.rb +2 -4
  95. data/lib/puppet/indirector/report/rest.rb +3 -8
  96. data/lib/puppet/indirector/request.rb +0 -101
  97. data/lib/puppet/indirector/rest.rb +12 -263
  98. data/lib/puppet/module_tool/applications.rb +0 -1
  99. data/lib/puppet/module_tool/applications/installer.rb +2 -48
  100. data/lib/puppet/module_tool/errors/shared.rb +2 -17
  101. data/lib/puppet/network/authconfig.rb +2 -96
  102. data/lib/puppet/network/authorization.rb +13 -35
  103. data/lib/puppet/network/formats.rb +0 -67
  104. data/lib/puppet/network/http.rb +3 -3
  105. data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
  106. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  107. data/lib/puppet/network/http/connection.rb +247 -316
  108. data/lib/puppet/network/http/handler.rb +0 -1
  109. data/lib/puppet/network/http_pool.rb +16 -34
  110. data/lib/puppet/node.rb +1 -30
  111. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  112. data/lib/puppet/pal/pal_impl.rb +3 -1
  113. data/lib/puppet/parser/ast/leaf.rb +2 -3
  114. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  115. data/lib/puppet/parser/compiler.rb +0 -198
  116. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  117. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  118. data/lib/puppet/parser/resource.rb +0 -69
  119. data/lib/puppet/parser/templatewrapper.rb +1 -1
  120. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  121. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  122. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  123. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  124. data/lib/puppet/pops/issues.rb +0 -5
  125. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  126. data/lib/puppet/pops/model/ast.pp +0 -42
  127. data/lib/puppet/pops/model/ast.rb +0 -290
  128. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  129. data/lib/puppet/pops/model/factory.rb +0 -45
  130. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  131. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  132. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  133. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  134. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  135. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  136. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  137. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  138. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  139. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  140. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  141. data/lib/puppet/pops/types/type_parser.rb +0 -4
  142. data/lib/puppet/pops/types/types.rb +0 -1
  143. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  144. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  145. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  146. data/lib/puppet/property/list.rb +1 -1
  147. data/lib/puppet/provider.rb +0 -13
  148. data/lib/puppet/provider/group/groupadd.rb +8 -13
  149. data/lib/puppet/provider/nameservice.rb +0 -18
  150. data/lib/puppet/provider/package/apt.rb +2 -34
  151. data/lib/puppet/provider/package/aptitude.rb +0 -6
  152. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  153. data/lib/puppet/provider/package/dpkg.rb +0 -10
  154. data/lib/puppet/provider/package/gem.rb +23 -3
  155. data/lib/puppet/provider/package/nim.rb +6 -11
  156. data/lib/puppet/provider/package/pip.rb +0 -1
  157. data/lib/puppet/provider/package/pkg.rb +0 -4
  158. data/lib/puppet/provider/package/portage.rb +1 -1
  159. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  160. data/lib/puppet/provider/service/debian.rb +0 -2
  161. data/lib/puppet/provider/service/smf.rb +191 -73
  162. data/lib/puppet/provider/service/systemd.rb +4 -14
  163. data/lib/puppet/provider/service/windows.rb +0 -38
  164. data/lib/puppet/provider/user/aix.rb +2 -2
  165. data/lib/puppet/provider/user/directoryservice.rb +10 -33
  166. data/lib/puppet/provider/user/useradd.rb +8 -62
  167. data/lib/puppet/reference/configuration.rb +8 -7
  168. data/lib/puppet/reference/indirection.rb +1 -1
  169. data/lib/puppet/resource.rb +1 -89
  170. data/lib/puppet/resource/catalog.rb +1 -14
  171. data/lib/puppet/resource/type.rb +3 -119
  172. data/lib/puppet/resource/type_collection.rb +3 -48
  173. data/lib/puppet/runtime.rb +1 -2
  174. data/lib/puppet/settings.rb +73 -66
  175. data/lib/puppet/settings/environment_conf.rb +0 -1
  176. data/lib/puppet/settings/integer_setting.rb +17 -0
  177. data/lib/puppet/settings/port_setting.rb +15 -0
  178. data/lib/puppet/settings/priority_setting.rb +5 -4
  179. data/lib/puppet/ssl.rb +10 -6
  180. data/lib/puppet/ssl/base.rb +3 -5
  181. data/lib/puppet/ssl/certificate.rb +0 -6
  182. data/lib/puppet/ssl/certificate_request.rb +1 -12
  183. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  184. data/lib/puppet/ssl/oids.rb +3 -1
  185. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  186. data/lib/puppet/ssl/state_machine.rb +3 -1
  187. data/lib/puppet/ssl/verifier.rb +2 -0
  188. data/lib/puppet/test/test_helper.rb +1 -3
  189. data/lib/puppet/transaction.rb +1 -7
  190. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  191. data/lib/puppet/transaction/report.rb +2 -4
  192. data/lib/puppet/type.rb +0 -76
  193. data/lib/puppet/type/file.rb +6 -26
  194. data/lib/puppet/type/file/checksum.rb +1 -1
  195. data/lib/puppet/type/file/selcontext.rb +1 -1
  196. data/lib/puppet/type/file/source.rb +1 -1
  197. data/lib/puppet/type/filebucket.rb +3 -3
  198. data/lib/puppet/type/package.rb +8 -16
  199. data/lib/puppet/type/service.rb +38 -18
  200. data/lib/puppet/type/tidy.rb +2 -21
  201. data/lib/puppet/type/user.rb +20 -38
  202. data/lib/puppet/util/autoload.rb +8 -1
  203. data/lib/puppet/util/execution.rb +0 -11
  204. data/lib/puppet/util/http_proxy.rb +2 -215
  205. data/lib/puppet/util/monkey_patches.rb +0 -53
  206. data/lib/puppet/util/posix.rb +5 -54
  207. data/lib/puppet/util/rdoc.rb +0 -7
  208. data/lib/puppet/util/retry_action.rb +1 -1
  209. data/lib/puppet/util/run_mode.rb +9 -1
  210. data/lib/puppet/util/selinux.rb +4 -30
  211. data/lib/puppet/util/windows.rb +3 -8
  212. data/lib/puppet/util/windows/adsi.rb +0 -46
  213. data/lib/puppet/util/windows/daemon.rb +360 -0
  214. data/lib/puppet/util/windows/error.rb +1 -0
  215. data/lib/puppet/util/windows/eventlog.rb +4 -9
  216. data/lib/puppet/util/windows/file.rb +8 -242
  217. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  218. data/lib/puppet/util/windows/principal.rb +2 -9
  219. data/lib/puppet/util/windows/process.rb +4 -226
  220. data/lib/puppet/util/windows/service.rb +9 -460
  221. data/lib/puppet/util/windows/sid.rb +2 -4
  222. data/lib/puppet/util/windows/string.rb +12 -13
  223. data/lib/puppet/util/yaml.rb +0 -22
  224. data/lib/puppet/vendor/require_vendored.rb +0 -1
  225. data/lib/puppet/version.rb +1 -1
  226. data/lib/puppet/x509.rb +5 -1
  227. data/lib/puppet/x509/cert_provider.rb +29 -1
  228. data/locales/puppet.pot +651 -1436
  229. data/man/man5/puppet.conf.5 +266 -354
  230. data/man/man8/puppet-agent.8 +2 -2
  231. data/man/man8/puppet-apply.8 +2 -2
  232. data/man/man8/puppet-catalog.8 +1 -1
  233. data/man/man8/puppet-config.8 +1 -1
  234. data/man/man8/puppet-describe.8 +1 -1
  235. data/man/man8/puppet-device.8 +2 -2
  236. data/man/man8/puppet-doc.8 +1 -1
  237. data/man/man8/puppet-epp.8 +1 -1
  238. data/man/man8/puppet-facts.8 +4 -47
  239. data/man/man8/puppet-filebucket.8 +4 -4
  240. data/man/man8/puppet-generate.8 +1 -1
  241. data/man/man8/puppet-help.8 +1 -1
  242. data/man/man8/puppet-lookup.8 +1 -1
  243. data/man/man8/puppet-module.8 +1 -58
  244. data/man/man8/puppet-node.8 +1 -1
  245. data/man/man8/puppet-parser.8 +1 -1
  246. data/man/man8/puppet-plugin.8 +1 -1
  247. data/man/man8/puppet-report.8 +1 -1
  248. data/man/man8/puppet-resource.8 +1 -1
  249. data/man/man8/puppet-script.8 +2 -2
  250. data/man/man8/puppet-ssl.8 +1 -5
  251. data/man/man8/puppet.8 +2 -2
  252. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  253. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  254. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  255. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  256. data/spec/fixtures/ssl/ca.pem +35 -57
  257. data/spec/fixtures/ssl/crl.pem +18 -28
  258. data/spec/fixtures/ssl/ec-key.pem +11 -11
  259. data/spec/fixtures/ssl/ec.pem +24 -33
  260. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  261. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  262. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  263. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  264. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  265. data/spec/fixtures/ssl/intermediate.pem +36 -57
  266. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  267. data/spec/fixtures/ssl/pluto.pem +30 -52
  268. data/spec/fixtures/ssl/request-key.pem +57 -107
  269. data/spec/fixtures/ssl/request.pem +26 -47
  270. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  271. data/spec/fixtures/ssl/revoked.pem +30 -52
  272. data/spec/fixtures/ssl/signed-key.pem +57 -107
  273. data/spec/fixtures/ssl/signed.pem +30 -52
  274. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  275. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  276. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  277. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  278. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  279. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  280. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  281. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  282. data/spec/integration/application/agent_spec.rb +27 -171
  283. data/spec/integration/application/apply_spec.rb +1 -20
  284. data/spec/integration/application/filebucket_spec.rb +16 -16
  285. data/spec/integration/application/help_spec.rb +2 -0
  286. data/spec/integration/application/plugin_spec.rb +24 -2
  287. data/spec/integration/defaults_spec.rb +14 -3
  288. data/spec/integration/http/client_spec.rb +0 -12
  289. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  290. data/spec/integration/network/http_pool_spec.rb +3 -21
  291. data/spec/integration/parser/catalog_spec.rb +0 -38
  292. data/spec/integration/parser/node_spec.rb +0 -9
  293. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  294. data/spec/integration/resource/type_collection_spec.rb +6 -2
  295. data/spec/integration/transaction_spec.rb +9 -4
  296. data/spec/integration/type/file_spec.rb +5 -4
  297. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  298. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  299. data/spec/integration/util/windows/principal_spec.rb +0 -21
  300. data/spec/integration/util/windows/registry_spec.rb +10 -6
  301. data/spec/integration/util/windows/security_spec.rb +1 -1
  302. data/spec/lib/matchers/include.rb +27 -0
  303. data/spec/lib/matchers/include_spec.rb +32 -0
  304. data/spec/lib/puppet/test_ca.rb +2 -2
  305. data/spec/lib/puppet_spec/puppetserver.rb +1 -1
  306. data/spec/lib/puppet_spec/settings.rb +1 -0
  307. data/spec/spec_helper.rb +7 -12
  308. data/spec/unit/agent_spec.rb +6 -10
  309. data/spec/unit/application/agent_spec.rb +3 -7
  310. data/spec/unit/application/facts_spec.rb +12 -456
  311. data/spec/unit/application/filebucket_spec.rb +43 -39
  312. data/spec/unit/application/ssl_spec.rb +2 -25
  313. data/spec/unit/application_spec.rb +9 -51
  314. data/spec/unit/certificate_factory_spec.rb +1 -1
  315. data/spec/unit/configurer/downloader_spec.rb +6 -8
  316. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  317. data/spec/unit/configurer_spec.rb +12 -32
  318. data/spec/unit/confine/feature_spec.rb +1 -1
  319. data/spec/unit/confine_spec.rb +2 -8
  320. data/spec/unit/context/trusted_information_spec.rb +2 -6
  321. data/spec/unit/defaults_spec.rb +68 -54
  322. data/spec/unit/environments_spec.rb +68 -224
  323. data/spec/unit/face/node_spec.rb +11 -0
  324. data/spec/unit/face/plugin_spec.rb +73 -33
  325. data/spec/unit/file_bucket/file_spec.rb +1 -1
  326. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -18
  327. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  328. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  329. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  330. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  331. data/spec/unit/file_system_spec.rb +0 -9
  332. data/spec/unit/forge/module_release_spec.rb +7 -2
  333. data/spec/unit/functions/camelcase_spec.rb +1 -1
  334. data/spec/unit/functions/capitalize_spec.rb +1 -1
  335. data/spec/unit/functions/downcase_spec.rb +1 -1
  336. data/spec/unit/functions/upcase_spec.rb +1 -1
  337. data/spec/unit/gettext/config_spec.rb +0 -12
  338. data/spec/unit/http/client_spec.rb +7 -8
  339. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  340. data/spec/unit/http/external_client_spec.rb +4 -4
  341. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  342. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  343. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  344. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  345. data/spec/unit/http/resolver_spec.rb +13 -13
  346. data/spec/unit/http/service/compiler_spec.rb +0 -185
  347. data/spec/unit/http/service/file_server_spec.rb +3 -3
  348. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  349. data/spec/unit/http/service_spec.rb +0 -1
  350. data/spec/unit/http/session_spec.rb +16 -14
  351. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  352. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -14
  353. data/spec/unit/indirector/face_spec.rb +1 -0
  354. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  355. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  356. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  357. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  358. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  359. data/spec/unit/indirector/file_server_spec.rb +1 -15
  360. data/spec/unit/indirector/indirection_spec.rb +12 -8
  361. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  362. data/spec/unit/indirector/request_spec.rb +0 -264
  363. data/spec/unit/indirector/rest_spec.rb +98 -752
  364. data/spec/unit/indirector_spec.rb +2 -2
  365. data/spec/unit/module_tool/applications/installer_spec.rb +0 -66
  366. data/spec/unit/network/authconfig_spec.rb +2 -129
  367. data/spec/unit/network/authorization_spec.rb +2 -55
  368. data/spec/unit/network/formats_spec.rb +4 -45
  369. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  370. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  371. data/spec/unit/network/http/api_spec.rb +10 -0
  372. data/spec/unit/network/http/connection_spec.rb +19 -41
  373. data/spec/unit/network/http/handler_spec.rb +0 -1
  374. data/spec/unit/network/http_pool_spec.rb +0 -4
  375. data/spec/unit/node/environment_spec.rb +33 -21
  376. data/spec/unit/node_spec.rb +2 -54
  377. data/spec/unit/parser/compiler_spec.rb +19 -3
  378. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  379. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  380. data/spec/unit/parser/resource_spec.rb +8 -14
  381. data/spec/unit/parser/templatewrapper_spec.rb +3 -4
  382. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  383. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  384. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  385. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  386. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  387. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  388. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  389. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  390. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  391. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  392. data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
  393. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  394. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  395. data/spec/unit/pops/visitor_spec.rb +1 -1
  396. data/spec/unit/property_spec.rb +0 -1
  397. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  398. data/spec/unit/provider/nameservice_spec.rb +64 -122
  399. data/spec/unit/provider/package/apt_spec.rb +23 -28
  400. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  401. data/spec/unit/provider/package/base_spec.rb +5 -6
  402. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  403. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  404. data/spec/unit/provider/package/gem_spec.rb +32 -0
  405. data/spec/unit/provider/package/nim_spec.rb +0 -42
  406. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  407. data/spec/unit/provider/package/pip_spec.rb +11 -6
  408. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  409. data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
  410. data/spec/unit/provider/service/init_spec.rb +0 -1
  411. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  412. data/spec/unit/provider/service/smf_spec.rb +401 -165
  413. data/spec/unit/provider/service/systemd_spec.rb +8 -53
  414. data/spec/unit/provider/service/windows_spec.rb +0 -203
  415. data/spec/unit/provider/user/aix_spec.rb +0 -5
  416. data/spec/unit/provider/user/directoryservice_spec.rb +35 -67
  417. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  418. data/spec/unit/provider/user/pw_spec.rb +0 -2
  419. data/spec/unit/provider/user/useradd_spec.rb +3 -71
  420. data/spec/unit/provider_spec.rb +8 -18
  421. data/spec/unit/resource/catalog_spec.rb +1 -1
  422. data/spec/unit/resource/type_collection_spec.rb +2 -22
  423. data/spec/unit/resource/type_spec.rb +1 -1
  424. data/spec/unit/resource_spec.rb +10 -67
  425. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  426. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  427. data/spec/unit/settings/port_setting_spec.rb +31 -0
  428. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  429. data/spec/unit/settings_spec.rb +23 -13
  430. data/spec/unit/ssl/base_spec.rb +37 -3
  431. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  432. data/spec/unit/ssl/certificate_spec.rb +2 -11
  433. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  434. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  435. data/spec/unit/ssl/verifier_spec.rb +0 -21
  436. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  437. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  438. data/spec/unit/transaction/report_spec.rb +0 -2
  439. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  440. data/spec/unit/transaction_spec.rb +55 -96
  441. data/spec/unit/type/file/checksum_spec.rb +6 -6
  442. data/spec/unit/type/file/content_spec.rb +2 -1
  443. data/spec/unit/type/file/ensure_spec.rb +1 -1
  444. data/spec/unit/type/file/mode_spec.rb +1 -1
  445. data/spec/unit/type/file/selinux_spec.rb +5 -3
  446. data/spec/unit/type/file/source_spec.rb +0 -1
  447. data/spec/unit/type/file_spec.rb +18 -6
  448. data/spec/unit/type/group_spec.rb +6 -13
  449. data/spec/unit/type/package_spec.rb +1 -1
  450. data/spec/unit/type/resources_spec.rb +7 -7
  451. data/spec/unit/type/service_spec.rb +189 -60
  452. data/spec/unit/type/tidy_spec.rb +8 -17
  453. data/spec/unit/type/user_spec.rb +0 -45
  454. data/spec/unit/type_spec.rb +22 -2
  455. data/spec/unit/util/at_fork_spec.rb +2 -2
  456. data/spec/unit/util/autoload_spec.rb +1 -5
  457. data/spec/unit/util/backups_spec.rb +2 -3
  458. data/spec/unit/util/execution_spec.rb +11 -44
  459. data/spec/unit/util/inifile_spec.rb +14 -6
  460. data/spec/unit/util/log_spec.rb +7 -8
  461. data/spec/unit/util/logging_spec.rb +3 -3
  462. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  463. data/spec/unit/util/posix_spec.rb +15 -363
  464. data/spec/unit/util/run_mode_spec.rb +21 -121
  465. data/spec/unit/util/selinux_spec.rb +68 -163
  466. data/spec/unit/util/storage_spec.rb +1 -3
  467. data/spec/unit/util/suidmanager_spec.rb +41 -44
  468. data/spec/unit/util/windows/sid_spec.rb +0 -6
  469. data/spec/unit/util/windows/string_spec.rb +1 -3
  470. data/spec/unit/util/yaml_spec.rb +0 -54
  471. data/spec/unit/util_spec.rb +6 -31
  472. data/tasks/generate_cert_fixtures.rake +2 -2
  473. metadata +44 -181
  474. data/conf/auth.conf +0 -150
  475. data/lib/puppet/application/cert.rb +0 -76
  476. data/lib/puppet/application/key.rb +0 -4
  477. data/lib/puppet/application/man.rb +0 -4
  478. data/lib/puppet/application/status.rb +0 -4
  479. data/lib/puppet/face/key.rb +0 -16
  480. data/lib/puppet/face/man.rb +0 -145
  481. data/lib/puppet/face/module/build.rb +0 -14
  482. data/lib/puppet/face/module/generate.rb +0 -14
  483. data/lib/puppet/face/module/search.rb +0 -103
  484. data/lib/puppet/face/status.rb +0 -51
  485. data/lib/puppet/ffi/posix.rb +0 -10
  486. data/lib/puppet/ffi/posix/constants.rb +0 -14
  487. data/lib/puppet/ffi/posix/functions.rb +0 -24
  488. data/lib/puppet/indirector/certificate/file.rb +0 -9
  489. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  490. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  491. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  492. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  493. data/lib/puppet/indirector/file_content/http.rb +0 -22
  494. data/lib/puppet/indirector/key/file.rb +0 -46
  495. data/lib/puppet/indirector/key/memory.rb +0 -7
  496. data/lib/puppet/indirector/ssl_file.rb +0 -162
  497. data/lib/puppet/indirector/status.rb +0 -3
  498. data/lib/puppet/indirector/status/local.rb +0 -12
  499. data/lib/puppet/indirector/status/rest.rb +0 -27
  500. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  501. data/lib/puppet/network/auth_config_parser.rb +0 -90
  502. data/lib/puppet/network/authstore.rb +0 -283
  503. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  504. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  505. data/lib/puppet/network/http/base_pool.rb +0 -36
  506. data/lib/puppet/network/http/compression.rb +0 -127
  507. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  508. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  509. data/lib/puppet/network/rest_controller.rb +0 -2
  510. data/lib/puppet/network/rights.rb +0 -210
  511. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  512. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  513. data/lib/puppet/parser/environment_compiler.rb +0 -202
  514. data/lib/puppet/pops/types/enumeration.rb +0 -16
  515. data/lib/puppet/resource/capability_finder.rb +0 -154
  516. data/lib/puppet/rest/errors.rb +0 -15
  517. data/lib/puppet/rest/response.rb +0 -35
  518. data/lib/puppet/rest/route.rb +0 -85
  519. data/lib/puppet/rest/routes.rb +0 -135
  520. data/lib/puppet/settings/alias_setting.rb +0 -37
  521. data/lib/puppet/ssl/host.rb +0 -505
  522. data/lib/puppet/ssl/key.rb +0 -61
  523. data/lib/puppet/ssl/validator.rb +0 -61
  524. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  525. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  526. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  527. data/lib/puppet/status.rb +0 -40
  528. data/lib/puppet/util/connection.rb +0 -88
  529. data/lib/puppet/util/fact_dif.rb +0 -81
  530. data/lib/puppet/util/ssl.rb +0 -83
  531. data/lib/puppet/util/windows/api_types.rb +0 -309
  532. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  533. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  534. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  535. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  536. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  537. data/lib/puppet/vendor/pathspec/README.md +0 -53
  538. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  539. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  540. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  541. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  542. data/man/man8/puppet-key.8 +0 -126
  543. data/man/man8/puppet-man.8 +0 -76
  544. data/man/man8/puppet-status.8 +0 -108
  545. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -91
  546. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  547. data/spec/integration/application/resource_spec.rb +0 -30
  548. data/spec/integration/network/authconfig_spec.rb +0 -256
  549. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  550. data/spec/unit/application/man_spec.rb +0 -52
  551. data/spec/unit/capability_spec.rb +0 -414
  552. data/spec/unit/face/key_spec.rb +0 -9
  553. data/spec/unit/face/module/search_spec.rb +0 -231
  554. data/spec/unit/face/status_spec.rb +0 -9
  555. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  556. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  557. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  558. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  559. data/spec/unit/indirector/key/file_spec.rb +0 -78
  560. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  561. data/spec/unit/indirector/status/local_spec.rb +0 -10
  562. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  563. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  564. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  565. data/spec/unit/network/authstore_spec.rb +0 -422
  566. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  567. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  568. data/spec/unit/network/http/compression_spec.rb +0 -240
  569. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  570. data/spec/unit/network/http_spec.rb +0 -9
  571. data/spec/unit/network/rights_spec.rb +0 -439
  572. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  573. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  574. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  575. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  576. data/spec/unit/rest/route_spec.rb +0 -132
  577. data/spec/unit/ssl/host_spec.rb +0 -645
  578. data/spec/unit/ssl/key_spec.rb +0 -173
  579. data/spec/unit/ssl/validator_spec.rb +0 -278
  580. data/spec/unit/status_spec.rb +0 -45
  581. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -42,6 +42,7 @@ describe Puppet::Application::Filebucket do
42
42
  describe "during setup" do
43
43
  before :each do
44
44
  allow(Puppet::Log).to receive(:newdestination)
45
+ allow(Puppet).to receive(:settraps)
45
46
  allow(Puppet::FileBucket::Dipper).to receive(:new)
46
47
  allow(@filebucket.options).to receive(:[])
47
48
  end
@@ -114,15 +115,15 @@ describe Puppet::Application::Filebucket do
114
115
  end
115
116
 
116
117
  it "should default to the first good server_list entry if server_list is set" do
117
- stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 200)
118
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 200)
118
119
  Puppet[:server_list] = "foo,bar,baz"
119
120
  expect(Puppet::FileBucket::Dipper).to receive(:new).with(hash_including(Server: "foo"))
120
121
  @filebucket.setup
121
122
  end
122
123
 
123
124
  it "should walk server_list until it finds a good entry" do
124
- stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 502)
125
- stub_request(:get, "https://bar:8140/status/v1/simple/master").to_return(status: 200)
125
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 502)
126
+ stub_request(:get, "https://bar:8140/status/v1/simple/server").to_return(status: 200)
126
127
  Puppet[:server_list] = "foo,bar,baz"
127
128
  expect(Puppet::FileBucket::Dipper).to receive(:new).with(hash_including(Server: "bar"))
128
129
  @filebucket.setup
@@ -130,6 +131,8 @@ describe Puppet::Application::Filebucket do
130
131
 
131
132
  # FileBucket catches any exceptions raised, logs them, then just exits
132
133
  it "raises an error if there are no functional servers in server_list" do
134
+ stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 404)
135
+ stub_request(:get, "https://bar:8140/status/v1/simple/server").to_return(status: 404)
133
136
  stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 404)
134
137
  stub_request(:get, "https://bar:8140/status/v1/simple/master").to_return(status: 404)
135
138
  Puppet[:server] = 'horacio'
@@ -145,7 +148,7 @@ describe Puppet::Application::Filebucket do
145
148
  end
146
149
 
147
150
  it "should take both the server and port specified in server_list" do
148
- stub_request(:get, "https://foo:632/status/v1/simple/master").to_return(status: 200)
151
+ stub_request(:get, "https://foo:632/status/v1/simple/server").to_return(status: 200)
149
152
  Puppet[:server_list] = "foo:632,bar:6215,baz:351"
150
153
  expect(Puppet::FileBucket::Dipper).to receive(:new).with({ :Server => "foo", :Port => 632 })
151
154
  @filebucket.setup
@@ -156,6 +159,7 @@ describe Puppet::Application::Filebucket do
156
159
  describe "when running" do
157
160
  before :each do
158
161
  allow(Puppet::Log).to receive(:newdestination)
162
+ allow(Puppet).to receive(:settraps)
159
163
  allow(Puppet::FileBucket::Dipper).to receive(:new)
160
164
  allow(@filebucket.options).to receive(:[])
161
165
 
@@ -185,11 +189,11 @@ describe Puppet::Application::Filebucket do
185
189
  @filebucket.get
186
190
  end
187
191
 
188
- it "should call the client getfile method with the given md5" do
189
- md5="DEADBEEF"
190
- allow(@filebucket).to receive(:args).and_return([md5])
192
+ it "should call the client getfile method with the given digest" do
193
+ digest = 'DEADBEEF'
194
+ allow(@filebucket).to receive(:args).and_return([digest])
191
195
 
192
- expect(@client).to receive(:getfile).with(md5)
196
+ expect(@client).to receive(:getfile).with(digest)
193
197
 
194
198
  @filebucket.get
195
199
  end
@@ -223,12 +227,12 @@ describe Puppet::Application::Filebucket do
223
227
  end
224
228
 
225
229
  describe "the command restore" do
226
- it "should call the client getfile method with the given md5" do
227
- md5="DEADBEEF"
228
- file="testfile"
229
- allow(@filebucket).to receive(:args).and_return([file, md5])
230
+ it "should call the client getfile method with the given digest" do
231
+ digest = 'DEADBEEF'
232
+ file = 'testfile'
233
+ allow(@filebucket).to receive(:args).and_return([file, digest])
230
234
 
231
- expect(@client).to receive(:restore).with(file,md5)
235
+ expect(@client).to receive(:restore).with(file, digest)
232
236
 
233
237
  @filebucket.restore
234
238
  end
@@ -236,55 +240,55 @@ describe Puppet::Application::Filebucket do
236
240
 
237
241
  describe "the command diff" do
238
242
  it "should call the client diff method with 2 given checksums" do
239
- md5a="DEADBEEF"
240
- md5b="BEEF"
243
+ digest_a = 'DEADBEEF'
244
+ digest_b = 'BEEF'
241
245
  allow(Puppet::FileSystem).to receive(:exist?).and_return(false)
242
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
246
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
243
247
 
244
- expect(@client).to receive(:diff).with(md5a,md5b, nil, nil)
248
+ expect(@client).to receive(:diff).with(digest_a, digest_b, nil, nil)
245
249
 
246
250
  @filebucket.diff
247
251
  end
248
252
 
249
- it "should call the clien diff with a path if the second argument is a file" do
250
- md5a="DEADBEEF"
251
- md5b="BEEF"
252
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(false)
253
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(true)
254
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
253
+ it "should call the client diff with a path if the second argument is a file" do
254
+ digest_a = 'DEADBEEF'
255
+ digest_b = 'BEEF'
256
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(false)
257
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(true)
258
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
255
259
 
256
- expect(@client).to receive(:diff).with(md5a, nil, nil, md5b)
260
+ expect(@client).to receive(:diff).with(digest_a, nil, nil, digest_b)
257
261
 
258
262
  @filebucket.diff
259
263
  end
260
264
 
261
- it "should call the clien diff with a path if the first argument is a file" do
262
- md5a="DEADBEEF"
263
- md5b="BEEF"
264
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(true)
265
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(false)
266
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
265
+ it "should call the client diff with a path if the first argument is a file" do
266
+ digest_a = 'DEADBEEF'
267
+ digest_b = 'BEEF'
268
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(true)
269
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(false)
270
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
267
271
 
268
- expect(@client).to receive(:diff).with(nil, md5b, md5a, nil)
272
+ expect(@client).to receive(:diff).with(nil, digest_b, digest_a, nil)
269
273
 
270
274
  @filebucket.diff
271
275
  end
272
276
 
273
277
  it "should call the clien diff with paths if the both arguments are files" do
274
- md5a="DEADBEEF"
275
- md5b="BEEF"
276
- allow(Puppet::FileSystem).to receive(:exist?).with(md5a).and_return(true)
277
- allow(Puppet::FileSystem).to receive(:exist?).with(md5b).and_return(true)
278
- allow(@filebucket).to receive(:args).and_return([md5a, md5b])
278
+ digest_a = 'DEADBEEF'
279
+ digest_b = 'BEEF'
280
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(true)
281
+ allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(true)
282
+ allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
279
283
 
280
- expect(@client).to receive(:diff).with(nil, nil, md5a, md5b)
284
+ expect(@client).to receive(:diff).with(nil, nil, digest_a, digest_b)
281
285
 
282
286
  @filebucket.diff
283
287
  end
284
288
 
285
289
  it "should fail if only one checksum is given" do
286
- md5a="DEADBEEF"
287
- allow(@filebucket).to receive(:args).and_return([md5a])
290
+ digest_a = 'DEADBEEF'
291
+ allow(@filebucket).to receive(:args).and_return([digest_a])
288
292
 
289
293
  expect { @filebucket.diff }.to raise_error Puppet::Error
290
294
  end
@@ -92,7 +92,7 @@ describe Puppet::Application::Ssl, unless: Puppet::Util::Platform.jruby? do
92
92
  end
93
93
 
94
94
  context 'when submitting a CSR' do
95
- let(:csr_path) { File.join(Puppet[:requestdir], "#{name}.pem") }
95
+ let(:csr_path) { Puppet[:hostcsr] }
96
96
 
97
97
  before do
98
98
  ssl.command_line.args << 'submit_request'
@@ -318,7 +318,7 @@ describe Puppet::Application::Ssl, unless: Puppet::Util::Platform.jruby? do
318
318
  end
319
319
 
320
320
  it 'deletes the request' do
321
- path = File.join(Puppet[:requestdir], "#{Puppet[:certname]}.pem")
321
+ path = Puppet[:hostcsr]
322
322
  File.write(path, @host[:csr].to_pem)
323
323
 
324
324
  expects_command_to_pass(%r{Removed certificate request #{path}})
@@ -432,27 +432,4 @@ describe Puppet::Application::Ssl, unless: Puppet::Util::Platform.jruby? do
432
432
  expects_command_to_pass
433
433
  end
434
434
  end
435
-
436
- context 'when showing' do
437
- before do
438
- ssl.command_line.args << 'show'
439
- File.write(Puppet[:hostcert], @host[:cert].to_pem)
440
- end
441
-
442
- it 'reports if the key is missing' do
443
- File.delete(Puppet[:hostprivkey])
444
-
445
- expects_command_to_fail(/The private key is missing from/)
446
- end
447
-
448
- it 'reports if the cert is missing' do
449
- File.delete(Puppet[:hostcert])
450
-
451
- expects_command_to_fail(/The client certificate is missing from/)
452
- end
453
-
454
- it 'prints certificate information' do
455
- expects_command_to_pass(@host[:cert].to_text)
456
- end
457
- end
458
435
  end
@@ -7,10 +7,8 @@ require 'timeout'
7
7
 
8
8
  describe Puppet::Application do
9
9
  before(:each) do
10
- @appclass = Class.new(Puppet::Application) do
11
- def handle_unknown(opt, arg); end
12
- end
13
- @app = @appclass.new
10
+ @app = Class.new(Puppet::Application).new
11
+ @appclass = @app.class
14
12
 
15
13
  allow(@app).to receive(:name).and_return("test_app")
16
14
  end
@@ -513,40 +511,6 @@ describe Puppet::Application do
513
511
 
514
512
  expect { @app.configure_indirector_routes }.to raise_error(Puppet::Error, /mapping values are not allowed/)
515
513
  end
516
-
517
- it "should treat master routes on server application" do
518
- allow(@app).to receive(:name).and_return("server")
519
-
520
- Puppet[:route_file] = tmpfile('routes')
521
- File.open(Puppet[:route_file], 'w') do |f|
522
- f.print <<-ROUTES
523
- master:
524
- node:
525
- terminus: exec
526
- ROUTES
527
- end
528
-
529
- @app.configure_indirector_routes
530
-
531
- expect(Puppet::Node.indirection.terminus_class).to eq('exec')
532
- end
533
-
534
- it "should treat server routes on master application" do
535
- allow(@app).to receive(:name).and_return("master")
536
-
537
- Puppet[:route_file] = tmpfile('routes')
538
- File.open(Puppet[:route_file], 'w') do |f|
539
- f.print <<-ROUTES
540
- server:
541
- node:
542
- terminus: exec
543
- ROUTES
544
- end
545
-
546
- @app.configure_indirector_routes
547
-
548
- expect(Puppet::Node.indirection.terminus_class).to eq('exec')
549
- end
550
514
  end
551
515
 
552
516
  describe "when running" do
@@ -596,6 +560,13 @@ describe Puppet::Application do
596
560
  end
597
561
 
598
562
  it "should raise an error if dispatch returns no command" do
563
+ allow(@app).to receive(:get_command).and_return(nil)
564
+ expect(Puppet).to receive(:send_log).with(:err, "Could not run: No valid command or main")
565
+ expect { @app.run }.to exit_with 1
566
+ end
567
+
568
+ it "should raise an error if dispatch returns an invalid command" do
569
+ allow(@app).to receive(:get_command).and_return(:this_function_doesnt_exist)
599
570
  expect(Puppet).to receive(:send_log).with(:err, "Could not run: No valid command or main")
600
571
  expect { @app.run }.to exit_with 1
601
572
  end
@@ -713,18 +684,5 @@ describe Puppet::Application do
713
684
 
714
685
  @app.handle_logdest_arg(nil)
715
686
  end
716
-
717
- it "accepts multiple destinations as a comma sepparated list" do
718
- dest1 = '/tmp/path1'
719
- dest2 = 'console'
720
- dest3 = '/tmp/path2'
721
- dest_args = [dest1, dest2, dest3].join(' , ')
722
-
723
- [dest1, dest2, dest3].each do |dest|
724
- expect(Puppet::Util::Log).to receive(:newdestination).with(dest)
725
- end
726
-
727
- @app.handle_logdest_arg(dest_args)
728
- end
729
687
  end
730
688
  end
@@ -7,7 +7,7 @@ describe Puppet::CertificateFactory, :unless => RUBY_PLATFORM == 'java' do
7
7
  let :serial do OpenSSL::BN.new('12') end
8
8
  let :name do "example.local" end
9
9
  let :x509_name do OpenSSL::X509::Name.new([['CN', name]]) end
10
- let :key do Puppet::SSL::Key.new(name).generate end
10
+ let :key do OpenSSL::PKey::RSA.new(Puppet[:keylength]) end
11
11
  let :csr do
12
12
  csr = Puppet::SSL::CertificateRequest.new(name)
13
13
  csr.generate(key)
@@ -81,12 +81,6 @@ describe Puppet::Configurer::Downloader do
81
81
  expect(file[:source_permissions]).to eq(:ignore)
82
82
  end
83
83
 
84
- it "should ignore the max file limit" do
85
- file = generate_file_resource
86
-
87
- expect(file[:max_files]).to eq(-1)
88
- end
89
-
90
84
  describe "on POSIX", :if => Puppet.features.posix? do
91
85
  it "should allow source_permissions to be overridden" do
92
86
  file = generate_file_resource(:source_permissions => :use)
@@ -195,6 +189,8 @@ describe Puppet::Configurer::Downloader do
195
189
  end
196
190
 
197
191
  it "should return all changed file paths" do
192
+ Puppet[:ignore_plugin_errors] = true
193
+
198
194
  trans = double('transaction')
199
195
 
200
196
  catalog = double('catalog')
@@ -210,6 +206,8 @@ describe Puppet::Configurer::Downloader do
210
206
  end
211
207
 
212
208
  it "should yield the resources if a block is given" do
209
+ Puppet[:ignore_plugin_errors] = true
210
+
213
211
  trans = double('transaction')
214
212
 
215
213
  catalog = double('catalog')
@@ -227,6 +225,8 @@ describe Puppet::Configurer::Downloader do
227
225
  end
228
226
 
229
227
  it "should catch and log exceptions" do
228
+ Puppet[:ignore_plugin_errors] = true
229
+
230
230
  expect(Puppet).to receive(:log_exception)
231
231
  # The downloader creates a new catalog for each apply, and really the only object
232
232
  # that it is possible to stub for the purpose of generating a puppet error
@@ -236,8 +236,6 @@ describe Puppet::Configurer::Downloader do
236
236
  end
237
237
 
238
238
  it "raises an exception if catalog application fails" do
239
- Puppet[:ignore_plugin_errors] = false
240
-
241
239
  expect(@dler.file).to receive(:retrieve).and_raise(Puppet::Error, "testing")
242
240
 
243
241
  expect {
@@ -19,30 +19,68 @@ describe Puppet::Configurer::PluginHandler do
19
19
  end
20
20
  end
21
21
 
22
- it "downloads plugins, facts, and locales" do
23
- times_called = 0
24
- allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { times_called += 1 }.and_return([])
22
+ context "when i18n is enabled" do
23
+ before :each do
24
+ Puppet[:disable_i18n] = false
25
+ end
25
26
 
26
- pluginhandler.download_plugins(environment)
27
- expect(times_called).to eq(3)
28
- end
27
+ it "downloads plugins, facts, and locales" do
28
+ times_called = 0
29
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { times_called += 1 }.and_return([])
29
30
 
30
- it "returns downloaded plugin, fact, and locale filenames" do
31
- times_called = 0
32
- allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
33
- times_called += 1
31
+ pluginhandler.download_plugins(environment)
32
+ expect(times_called).to eq(3)
33
+ end
34
34
 
35
- if times_called == 1
36
- %w[/a]
37
- elsif times_called == 2
38
- %w[/b]
39
- else
40
- %w[/c]
35
+ it "returns downloaded plugin, fact, and locale filenames" do
36
+ times_called = 0
37
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
38
+ times_called += 1
39
+
40
+ if times_called == 1
41
+ %w[/a]
42
+ elsif times_called == 2
43
+ %w[/b]
44
+ else
45
+ %w[/c]
46
+ end
41
47
  end
48
+
49
+ expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b /c])
50
+ expect(times_called).to eq(3)
51
+ end
52
+ end
53
+
54
+ context "when i18n is disabled" do
55
+ before :each do
56
+ Puppet[:disable_i18n] = true
57
+ end
58
+
59
+ it "downloads plugins, facts, but no locales" do
60
+ times_called = 0
61
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { times_called += 1 }.and_return([])
62
+
63
+ pluginhandler.download_plugins(environment)
64
+ expect(times_called).to eq(2)
42
65
  end
43
66
 
44
- expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b /c])
45
- expect(times_called).to eq(3)
67
+ it "returns downloaded plugin, fact, and locale filenames" do
68
+ times_called = 0
69
+ allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
70
+ times_called += 1
71
+
72
+ if times_called == 1
73
+ %w[/a]
74
+ elsif times_called == 2
75
+ %w[/b]
76
+ else
77
+ %w[/c]
78
+ end
79
+ end
80
+
81
+ expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b])
82
+ expect(times_called).to eq(2)
83
+ end
46
84
  end
47
85
  end
48
86
 
@@ -384,7 +384,7 @@ describe Puppet::Configurer do
384
384
 
385
385
  it "sets the checksum_type query param to the default supported_checksum_types in a catalog request" do
386
386
  expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything,
387
- hash_including(checksum_type: 'md5.sha256.sha384.sha512.sha224'))
387
+ hash_including(checksum_type: 'sha256.sha384.sha512.sha224.md5'))
388
388
  configurer.run
389
389
  end
390
390
 
@@ -657,6 +657,8 @@ describe Puppet::Configurer do
657
657
  end
658
658
 
659
659
  it "should pluginsync and compile a new catalog if none is found in the cache" do
660
+ Puppet[:ignore_plugin_errors] = true
661
+
660
662
  expects_fallback_to_new_catalog(catalog)
661
663
  stub_request(:get, %r{/puppet/v3/file_metadatas?/plugins}).to_return(:status => 404)
662
664
  stub_request(:get, %r{/puppet/v3/file_metadatas?/pluginfacts}).to_return(:status => 404)
@@ -668,6 +670,8 @@ describe Puppet::Configurer do
668
670
  end
669
671
 
670
672
  it "should not attempt to retrieve a cached catalog again if the first attempt failed" do
673
+ Puppet[:ignore_plugin_errors] = true
674
+
671
675
  expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
672
676
  expects_neither_new_or_cached_catalog
673
677
  expects_pluginsync
@@ -1039,11 +1043,10 @@ describe Puppet::Configurer do
1039
1043
  it "should select a server when it receives 200 OK response" do
1040
1044
  Puppet.settings[:server_list] = ["myserver:123"]
1041
1045
 
1042
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 200)
1046
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 200)
1043
1047
 
1044
1048
  options = {}
1045
1049
  configurer.run(options)
1046
- expect(options[:report].master_used).to eq('myserver:123')
1047
1050
  expect(options[:report].server_used).to eq('myserver:123')
1048
1051
  end
1049
1052
 
@@ -1051,7 +1054,7 @@ describe Puppet::Configurer do
1051
1054
  Puppet.settings[:server_list] = ["myserver:123"]
1052
1055
  Puppet[:usecacheonfailure] = false
1053
1056
 
1054
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: [500, "Internal Server Error"])
1057
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: [500, "Internal Server Error"])
1055
1058
 
1056
1059
  expect {
1057
1060
  configurer.run
@@ -1064,43 +1067,20 @@ describe Puppet::Configurer do
1064
1067
  Puppet.settings[:server_list] = "myserver:123,someotherservername"
1065
1068
  Puppet[:usecacheonfailure] = false
1066
1069
 
1067
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 400)
1068
- stub_request(:get, 'https://someotherservername:8140/status/v1/simple/master').to_return(status: 400)
1070
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 400)
1071
+ stub_request(:get, 'https://someotherservername:8140/status/v1/simple/server').to_return(status: 400)
1069
1072
 
1070
1073
  expect{
1071
1074
  configurer.run
1072
1075
  }.to raise_error(Puppet::Error, /Could not select a functional puppet server from server_list: 'myserver:123,someotherservername'/)
1073
1076
  end
1074
1077
 
1075
- it "should warn when servers in 'server_list' are unreachable" do
1076
- Puppet.settings[:server_list] = "mybadserver1:123,mybadserver2:123,mygoodserver"
1077
- Puppet[:usecacheonfailure] = false
1078
-
1079
- stub_request(:get, 'https://mybadserver1:123/status/v1/simple/master').and_raise(Puppet::HTTP::HTTPError)
1080
- stub_request(:get, 'https://mybadserver2:123/status/v1/simple/master').and_raise(Puppet::HTTP::HTTPError)
1081
- stub_request(:get, 'https://mygoodserver:8140/status/v1/simple/master').to_return(status: 200)
1082
-
1083
- expect(Puppet).to receive(:warning).with(/^Unable to connect to server from server_list setting:.*Trying with next server from server_list.$/).twice
1084
- configurer.run
1085
- end
1086
-
1087
- it "should warn when servers in 'server_list' respond with error" do
1088
- Puppet.settings[:server_list] = "mybadserver:123,someotherservername"
1089
- Puppet[:usecacheonfailure] = false
1090
-
1091
- stub_request(:get, 'https://mybadserver:123/status/v1/simple/master').to_return(status: 400)
1092
- stub_request(:get, 'https://someotherservername:8140/status/v1/simple/master').to_return(status: 200)
1093
-
1094
- expect(Puppet).to receive(:warning).with(/^Puppet server mybadserver:123 is unavailable: 400 Trying with next server from server_list.$/)
1095
- configurer.run
1096
- end
1097
-
1098
1078
  it "should not error when usecacheonfailure is true and no servers in 'server_list' are reachable" do
1099
1079
  Puppet.settings[:server_list] = "myserver:123,someotherservername"
1100
1080
  Puppet[:usecacheonfailure] = true
1101
1081
 
1102
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 400)
1103
- stub_request(:get, 'https://someotherservername:8140/status/v1/simple/master').to_return(status: 400)
1082
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 400)
1083
+ stub_request(:get, 'https://someotherservername:8140/status/v1/simple/server').to_return(status: 400)
1104
1084
 
1105
1085
  options = {}
1106
1086
 
@@ -1114,7 +1094,7 @@ describe Puppet::Configurer do
1114
1094
  Puppet::Node.indirection.terminus_class = :rest
1115
1095
  Puppet::Resource::Catalog.indirection.terminus_class = :rest
1116
1096
 
1117
- stub_request(:get, 'https://myserver:123/status/v1/simple/master').to_return(status: 200)
1097
+ stub_request(:get, 'https://myserver:123/status/v1/simple/server').to_return(status: 200)
1118
1098
  stub_request(:post, %r{https://myserver:123/puppet/v3/catalog}).to_return(status: 200)
1119
1099
  node_request = stub_request(:get, %r{https://myserver:123/puppet/v3/node/}).to_return(status: 200)
1120
1100