puppet 6.14.0 → 6.19.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 (496) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -7
  3. data/Gemfile +4 -2
  4. data/Gemfile.lock +36 -34
  5. data/README.md +3 -4
  6. data/Rakefile +4 -12
  7. data/ext/windows/service/daemon.rb +3 -3
  8. data/lib/puppet.rb +33 -9
  9. data/lib/puppet/agent.rb +20 -14
  10. data/lib/puppet/agent/locker.rb +0 -7
  11. data/lib/puppet/application/agent.rb +25 -9
  12. data/lib/puppet/application/apply.rb +18 -20
  13. data/lib/puppet/application/device.rb +1 -1
  14. data/lib/puppet/application/doc.rb +1 -1
  15. data/lib/puppet/application/filebucket.rb +5 -14
  16. data/lib/puppet/application/lookup.rb +16 -4
  17. data/lib/puppet/application/plugin.rb +1 -0
  18. data/lib/puppet/application/ssl.rb +3 -3
  19. data/lib/puppet/configurer.rb +68 -24
  20. data/lib/puppet/configurer/downloader.rb +31 -10
  21. data/lib/puppet/configurer/plugin_handler.rb +1 -1
  22. data/lib/puppet/confine.rb +2 -2
  23. data/lib/puppet/confine/any.rb +1 -1
  24. data/lib/puppet/context/trusted_information.rb +14 -8
  25. data/lib/puppet/daemon.rb +13 -27
  26. data/lib/puppet/defaults.rb +141 -41
  27. data/lib/puppet/environments.rb +55 -15
  28. data/lib/puppet/face/catalog.rb +1 -1
  29. data/lib/puppet/face/config.rb +46 -16
  30. data/lib/puppet/face/facts.rb +1 -1
  31. data/lib/puppet/face/help.rb +29 -3
  32. data/lib/puppet/face/module/search.rb +5 -0
  33. data/lib/puppet/face/node.rb +3 -3
  34. data/lib/puppet/face/node/clean.rb +2 -2
  35. data/lib/puppet/face/plugin.rb +2 -2
  36. data/lib/puppet/face/status.rb +1 -1
  37. data/lib/puppet/feature/base.rb +1 -1
  38. data/lib/puppet/file_bucket/dipper.rb +1 -1
  39. data/lib/puppet/file_serving/http_metadata.rb +14 -2
  40. data/lib/puppet/file_serving/metadata.rb +4 -1
  41. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  42. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  43. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  44. data/lib/puppet/file_serving/terminus_selector.rb +7 -8
  45. data/lib/puppet/file_system/file_impl.rb +17 -13
  46. data/lib/puppet/file_system/uniquefile.rb +12 -16
  47. data/lib/puppet/forge.rb +1 -1
  48. data/lib/puppet/forge/cache.rb +1 -1
  49. data/lib/puppet/forge/repository.rb +4 -7
  50. data/lib/puppet/functions/call.rb +1 -1
  51. data/lib/puppet/functions/filter.rb +1 -0
  52. data/lib/puppet/functions/lstrip.rb +4 -4
  53. data/lib/puppet/functions/new.rb +8 -3
  54. data/lib/puppet/functions/reduce.rb +2 -4
  55. data/lib/puppet/functions/reverse_each.rb +1 -1
  56. data/lib/puppet/functions/rstrip.rb +4 -4
  57. data/lib/puppet/functions/step.rb +1 -1
  58. data/lib/puppet/functions/strip.rb +4 -4
  59. data/lib/puppet/gettext/config.rb +5 -5
  60. data/lib/puppet/gettext/module_translations.rb +4 -4
  61. data/lib/puppet/http.rb +3 -0
  62. data/lib/puppet/http/client.rb +215 -60
  63. data/lib/puppet/http/external_client.rb +90 -0
  64. data/lib/puppet/http/redirector.rb +43 -7
  65. data/lib/puppet/http/resolver.rb +43 -3
  66. data/lib/puppet/http/resolver/server_list.rb +66 -24
  67. data/lib/puppet/http/resolver/settings.rb +21 -1
  68. data/lib/puppet/http/resolver/srv.rb +28 -2
  69. data/lib/puppet/http/response.rb +82 -1
  70. data/lib/puppet/http/retry_after_handler.rb +39 -0
  71. data/lib/puppet/http/service.rb +70 -2
  72. data/lib/puppet/http/service/ca.rb +71 -9
  73. data/lib/puppet/http/service/compiler.rb +214 -12
  74. data/lib/puppet/http/service/file_server.rb +106 -5
  75. data/lib/puppet/http/service/puppetserver.rb +39 -0
  76. data/lib/puppet/http/service/report.rb +36 -3
  77. data/lib/puppet/http/session.rb +60 -8
  78. data/lib/puppet/indirector.rb +1 -1
  79. data/lib/puppet/indirector/catalog/compiler.rb +1 -1
  80. data/lib/puppet/indirector/catalog/rest.rb +2 -1
  81. data/lib/puppet/indirector/exec.rb +1 -1
  82. data/lib/puppet/indirector/facts/facter.rb +3 -3
  83. data/lib/puppet/indirector/facts/rest.rb +2 -1
  84. data/lib/puppet/indirector/facts/yaml.rb +1 -1
  85. data/lib/puppet/indirector/file_bucket_file/rest.rb +48 -0
  86. data/lib/puppet/indirector/file_content/http.rb +5 -0
  87. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  88. data/lib/puppet/indirector/file_metadata/http.rb +28 -8
  89. data/lib/puppet/indirector/file_metadata/rest.rb +6 -4
  90. data/lib/puppet/indirector/hiera.rb +4 -0
  91. data/lib/puppet/indirector/indirection.rb +1 -1
  92. data/lib/puppet/indirector/json.rb +1 -1
  93. data/lib/puppet/indirector/msgpack.rb +1 -1
  94. data/lib/puppet/indirector/node/rest.rb +2 -1
  95. data/lib/puppet/indirector/report/processor.rb +2 -2
  96. data/lib/puppet/indirector/report/yaml.rb +23 -0
  97. data/lib/puppet/indirector/request.rb +5 -5
  98. data/lib/puppet/indirector/rest.rb +7 -1
  99. data/lib/puppet/indirector/status/rest.rb +2 -1
  100. data/lib/puppet/indirector/yaml.rb +1 -1
  101. data/lib/puppet/metatype/manager.rb +80 -80
  102. data/lib/puppet/module.rb +1 -2
  103. data/lib/puppet/network/format_support.rb +2 -2
  104. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  105. data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
  106. data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
  107. data/lib/puppet/network/http/base_pool.rb +6 -1
  108. data/lib/puppet/network/http/compression.rb +7 -0
  109. data/lib/puppet/network/http/connection.rb +2 -0
  110. data/lib/puppet/network/http/connection_adapter.rb +184 -0
  111. data/lib/puppet/network/http/nocache_pool.rb +1 -0
  112. data/lib/puppet/network/http/pool.rb +2 -4
  113. data/lib/puppet/network/http/route.rb +2 -2
  114. data/lib/puppet/network/http_pool.rb +2 -1
  115. data/lib/puppet/node/environment.rb +22 -5
  116. data/lib/puppet/node/facts.rb +17 -0
  117. data/lib/puppet/pal/catalog_compiler.rb +5 -0
  118. data/lib/puppet/pal/pal_impl.rb +30 -31
  119. data/lib/puppet/parameter.rb +1 -1
  120. data/lib/puppet/parser/ast/leaf.rb +5 -5
  121. data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
  122. data/lib/puppet/parser/compiler.rb +43 -33
  123. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  124. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  125. data/lib/puppet/parser/environment_compiler.rb +4 -1
  126. data/lib/puppet/parser/functions.rb +18 -9
  127. data/lib/puppet/parser/functions/create_resources.rb +11 -7
  128. data/lib/puppet/parser/functions/filter.rb +1 -0
  129. data/lib/puppet/parser/resource.rb +3 -2
  130. data/lib/puppet/parser/resource/param.rb +6 -0
  131. data/lib/puppet/parser/type_loader.rb +2 -2
  132. data/lib/puppet/pops/adaptable.rb +7 -13
  133. data/lib/puppet/pops/adapters.rb +8 -4
  134. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  135. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
  136. data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
  137. data/lib/puppet/pops/issues.rb +5 -0
  138. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
  139. data/lib/puppet/pops/loaders.rb +24 -15
  140. data/lib/puppet/pops/lookup/context.rb +1 -1
  141. data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
  142. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  143. data/lib/puppet/pops/types/iterable.rb +34 -8
  144. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  145. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  146. data/lib/puppet/pops/validation/checker4_0.rb +29 -15
  147. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  148. data/lib/puppet/provider/file/windows.rb +1 -1
  149. data/lib/puppet/provider/group/windows_adsi.rb +3 -3
  150. data/lib/puppet/provider/package/aix.rb +17 -2
  151. data/lib/puppet/provider/package/apt.rb +98 -1
  152. data/lib/puppet/provider/package/aptitude.rb +1 -1
  153. data/lib/puppet/provider/package/dnfmodule.rb +61 -14
  154. data/lib/puppet/provider/package/dpkg.rb +1 -1
  155. data/lib/puppet/provider/package/gem.rb +45 -9
  156. data/lib/puppet/provider/package/pacman.rb +2 -5
  157. data/lib/puppet/provider/package/pip.rb +143 -48
  158. data/lib/puppet/provider/package/pip2.rb +17 -0
  159. data/lib/puppet/provider/package/pip3.rb +0 -2
  160. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  161. data/lib/puppet/provider/package/pkgng.rb +16 -4
  162. data/lib/puppet/provider/package/portage.rb +2 -2
  163. data/lib/puppet/provider/package/puppet_gem.rb +11 -2
  164. data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
  165. data/lib/puppet/provider/package/rpm.rb +6 -213
  166. data/lib/puppet/provider/package/yum.rb +101 -20
  167. data/lib/puppet/provider/package/zypper.rb +62 -1
  168. data/lib/puppet/provider/service/systemd.rb +22 -4
  169. data/lib/puppet/provider/service/windows.rb +23 -7
  170. data/lib/puppet/provider/user/aix.rb +1 -1
  171. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  172. data/lib/puppet/provider/user/useradd.rb +16 -5
  173. data/lib/puppet/provider/user/windows_adsi.rb +18 -1
  174. data/lib/puppet/reports/http.rb +15 -9
  175. data/lib/puppet/resource.rb +2 -1
  176. data/lib/puppet/resource/type.rb +10 -1
  177. data/lib/puppet/resource/type_collection.rb +20 -16
  178. data/lib/puppet/rest/route.rb +2 -2
  179. data/lib/puppet/runtime.rb +25 -2
  180. data/lib/puppet/settings.rb +20 -6
  181. data/lib/puppet/ssl.rb +1 -0
  182. data/lib/puppet/ssl/host.rb +4 -4
  183. data/lib/puppet/ssl/oids.rb +1 -0
  184. data/lib/puppet/ssl/ssl_context.rb +2 -2
  185. data/lib/puppet/ssl/ssl_provider.rb +20 -1
  186. data/lib/puppet/ssl/state_machine.rb +79 -37
  187. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  188. data/lib/puppet/ssl/verifier_adapter.rb +9 -1
  189. data/lib/puppet/test/test_helper.rb +19 -14
  190. data/lib/puppet/transaction.rb +2 -2
  191. data/lib/puppet/transaction/persistence.rb +1 -1
  192. data/lib/puppet/transaction/report.rb +14 -10
  193. data/lib/puppet/trusted_external.rb +29 -1
  194. data/lib/puppet/type.rb +21 -8
  195. data/lib/puppet/type/file.rb +40 -15
  196. data/lib/puppet/type/file/checksum.rb +4 -4
  197. data/lib/puppet/type/file/source.rb +35 -13
  198. data/lib/puppet/type/filebucket.rb +1 -1
  199. data/lib/puppet/type/notify.rb +2 -2
  200. data/lib/puppet/type/package.rb +41 -3
  201. data/lib/puppet/type/service.rb +59 -8
  202. data/lib/puppet/type/user.rb +19 -29
  203. data/lib/puppet/util.rb +41 -3
  204. data/lib/puppet/util/at_fork.rb +1 -1
  205. data/lib/puppet/util/autoload.rb +13 -25
  206. data/lib/puppet/util/character_encoding.rb +9 -5
  207. data/lib/puppet/util/checksums.rb +19 -4
  208. data/lib/puppet/util/connection.rb +8 -8
  209. data/lib/puppet/util/execution.rb +2 -2
  210. data/lib/puppet/util/fileparsing.rb +2 -2
  211. data/lib/puppet/util/instance_loader.rb +14 -10
  212. data/lib/puppet/util/log/destinations.rb +1 -10
  213. data/lib/puppet/util/package/version/debian.rb +175 -0
  214. data/lib/puppet/util/package/version/gem.rb +15 -0
  215. data/lib/puppet/util/package/version/pip.rb +167 -0
  216. data/lib/puppet/util/package/version/range.rb +53 -0
  217. data/lib/puppet/util/package/version/range/eq.rb +14 -0
  218. data/lib/puppet/util/package/version/range/gt.rb +14 -0
  219. data/lib/puppet/util/package/version/range/gt_eq.rb +14 -0
  220. data/lib/puppet/util/package/version/range/lt.rb +14 -0
  221. data/lib/puppet/util/package/version/range/lt_eq.rb +14 -0
  222. data/lib/puppet/util/package/version/range/min_max.rb +21 -0
  223. data/lib/puppet/util/package/version/range/simple.rb +11 -0
  224. data/lib/puppet/util/package/version/rpm.rb +73 -0
  225. data/lib/puppet/util/pidlock.rb +13 -7
  226. data/lib/puppet/util/platform.rb +5 -0
  227. data/lib/puppet/util/provider_features.rb +1 -1
  228. data/lib/puppet/util/reference.rb +1 -1
  229. data/lib/puppet/util/rpm_compare.rb +193 -0
  230. data/lib/puppet/util/run_mode.rb +5 -1
  231. data/lib/puppet/util/windows.rb +1 -0
  232. data/lib/puppet/util/windows/adsi.rb +2 -2
  233. data/lib/puppet/util/windows/api_types.rb +60 -33
  234. data/lib/puppet/util/windows/eventlog.rb +1 -6
  235. data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
  236. data/lib/puppet/util/windows/principal.rb +8 -6
  237. data/lib/puppet/util/windows/process.rb +15 -14
  238. data/lib/puppet/util/windows/registry.rb +11 -11
  239. data/lib/puppet/util/windows/security.rb +5 -4
  240. data/lib/puppet/util/windows/service.rb +43 -26
  241. data/lib/puppet/util/windows/sid.rb +3 -3
  242. data/lib/puppet/util/windows/user.rb +242 -8
  243. data/lib/puppet/version.rb +1 -1
  244. data/locales/puppet.pot +627 -507
  245. data/man/man5/puppet.conf.5 +93 -20
  246. data/man/man8/puppet-agent.8 +7 -4
  247. data/man/man8/puppet-apply.8 +1 -1
  248. data/man/man8/puppet-catalog.8 +1 -1
  249. data/man/man8/puppet-config.8 +6 -6
  250. data/man/man8/puppet-describe.8 +1 -1
  251. data/man/man8/puppet-device.8 +1 -1
  252. data/man/man8/puppet-doc.8 +1 -1
  253. data/man/man8/puppet-epp.8 +1 -1
  254. data/man/man8/puppet-facts.8 +1 -1
  255. data/man/man8/puppet-filebucket.8 +1 -1
  256. data/man/man8/puppet-generate.8 +1 -1
  257. data/man/man8/puppet-help.8 +6 -3
  258. data/man/man8/puppet-key.8 +1 -1
  259. data/man/man8/puppet-lookup.8 +2 -2
  260. data/man/man8/puppet-man.8 +1 -1
  261. data/man/man8/puppet-module.8 +4 -1
  262. data/man/man8/puppet-node.8 +4 -4
  263. data/man/man8/puppet-parser.8 +1 -1
  264. data/man/man8/puppet-plugin.8 +1 -1
  265. data/man/man8/puppet-report.8 +1 -1
  266. data/man/man8/puppet-resource.8 +1 -1
  267. data/man/man8/puppet-script.8 +1 -1
  268. data/man/man8/puppet-ssl.8 +1 -1
  269. data/man/man8/puppet-status.8 +2 -2
  270. data/man/man8/puppet.8 +2 -2
  271. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
  272. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
  273. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +67 -0
  274. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +48 -0
  275. data/spec/fixtures/ssl/unknown-ca-key.pem +67 -0
  276. data/spec/fixtures/ssl/unknown-ca.pem +59 -0
  277. data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
  278. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  279. data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-installed.txt → dnf-module-list.txt} +8 -0
  280. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
  281. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
  282. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
  283. data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
  284. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
  285. data/spec/integration/application/agent_spec.rb +479 -0
  286. data/spec/integration/application/apply_spec.rb +279 -150
  287. data/spec/integration/application/config_spec.rb +74 -0
  288. data/spec/integration/application/doc_spec.rb +16 -6
  289. data/spec/integration/application/filebucket_spec.rb +239 -0
  290. data/spec/integration/application/help_spec.rb +42 -0
  291. data/spec/integration/application/lookup_spec.rb +13 -0
  292. data/spec/integration/application/module_spec.rb +68 -0
  293. data/spec/integration/application/plugin_spec.rb +123 -0
  294. data/spec/integration/configurer_spec.rb +14 -0
  295. data/spec/integration/data_binding_spec.rb +82 -0
  296. data/spec/integration/defaults_spec.rb +27 -3
  297. data/spec/integration/directory_environments_spec.rb +17 -17
  298. data/spec/integration/http/client_spec.rb +39 -40
  299. data/spec/integration/indirector/facts/facter_spec.rb +8 -6
  300. data/spec/integration/indirector/report/yaml.rb +83 -0
  301. data/spec/integration/network/http_pool_spec.rb +84 -19
  302. data/spec/integration/node/environment_spec.rb +15 -0
  303. data/spec/integration/parser/compiler_spec.rb +11 -0
  304. data/spec/integration/type/file_spec.rb +1 -1
  305. data/spec/integration/util/execution_spec.rb +22 -0
  306. data/spec/integration/util/windows/adsi_spec.rb +8 -3
  307. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
  308. data/spec/integration/util/windows/process_spec.rb +26 -32
  309. data/spec/integration/util/windows/registry_spec.rb +7 -7
  310. data/spec/integration/util/windows/user_spec.rb +47 -5
  311. data/spec/integration/util_spec.rb +7 -33
  312. data/spec/lib/puppet/test_ca.rb +2 -2
  313. data/spec/lib/puppet_spec/https.rb +16 -7
  314. data/spec/lib/puppet_spec/matchers.rb +0 -80
  315. data/spec/lib/puppet_spec/puppetserver.rb +127 -0
  316. data/spec/shared_contexts/https.rb +29 -0
  317. data/spec/shared_contexts/types_setup.rb +2 -0
  318. data/spec/unit/agent_spec.rb +80 -26
  319. data/spec/unit/application/agent_spec.rb +12 -9
  320. data/spec/unit/application/device_spec.rb +2 -2
  321. data/spec/unit/application/doc_spec.rb +2 -2
  322. data/spec/unit/application/face_base_spec.rb +6 -4
  323. data/spec/unit/application/facts_spec.rb +41 -10
  324. data/spec/unit/application/filebucket_spec.rb +22 -2
  325. data/spec/unit/application/man_spec.rb +52 -0
  326. data/spec/unit/application/resource_spec.rb +3 -1
  327. data/spec/unit/application/ssl_spec.rb +15 -2
  328. data/spec/unit/application_spec.rb +9 -4
  329. data/spec/unit/configurer/downloader_spec.rb +10 -0
  330. data/spec/unit/configurer/fact_handler_spec.rb +4 -4
  331. data/spec/unit/configurer_spec.rb +87 -38
  332. data/spec/unit/confine_spec.rb +2 -1
  333. data/spec/unit/context/trusted_information_spec.rb +25 -2
  334. data/spec/unit/daemon_spec.rb +5 -64
  335. data/spec/unit/defaults_spec.rb +24 -1
  336. data/spec/unit/environments_spec.rb +107 -32
  337. data/spec/unit/face/config_spec.rb +59 -1
  338. data/spec/unit/face/module/search_spec.rb +17 -0
  339. data/spec/unit/face/node_spec.rb +2 -2
  340. data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
  341. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  342. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  343. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  344. data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
  345. data/spec/unit/file_system/uniquefile_spec.rb +29 -0
  346. data/spec/unit/file_system_spec.rb +11 -2
  347. data/spec/unit/http/client_spec.rb +173 -59
  348. data/spec/unit/http/external_client_spec.rb +201 -0
  349. data/spec/unit/http/resolver_spec.rb +44 -5
  350. data/spec/unit/http/response_spec.rb +6 -0
  351. data/spec/unit/http/service/ca_spec.rb +27 -5
  352. data/spec/unit/http/service/compiler_spec.rb +186 -9
  353. data/spec/unit/http/service/file_server_spec.rb +37 -6
  354. data/spec/unit/http/service/puppetserver_spec.rb +82 -0
  355. data/spec/unit/http/service/report_spec.rb +5 -4
  356. data/spec/unit/http/service_spec.rb +3 -4
  357. data/spec/unit/http/session_spec.rb +48 -12
  358. data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
  359. data/spec/unit/indirector/catalog/json_spec.rb +1 -1
  360. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  361. data/spec/unit/indirector/facts/rest_spec.rb +1 -1
  362. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +82 -2
  363. data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
  364. data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
  365. data/spec/unit/indirector/json_spec.rb +8 -8
  366. data/spec/unit/indirector/msgpack_spec.rb +8 -8
  367. data/spec/unit/indirector/node/rest_spec.rb +1 -1
  368. data/spec/unit/indirector/request_spec.rb +5 -5
  369. data/spec/unit/indirector/rest_spec.rb +14 -1
  370. data/spec/unit/indirector/status/rest_spec.rb +1 -1
  371. data/spec/unit/indirector/yaml_spec.rb +7 -7
  372. data/spec/unit/interface_spec.rb +3 -3
  373. data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
  374. data/spec/unit/network/format_support_spec.rb +3 -2
  375. data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
  376. data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
  377. data/spec/unit/network/http/connection_spec.rb +552 -190
  378. data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
  379. data/spec/unit/network/http/pool_spec.rb +3 -3
  380. data/spec/unit/network/http_pool_spec.rb +63 -57
  381. data/spec/unit/network/http_spec.rb +1 -1
  382. data/spec/unit/node/environment_spec.rb +33 -0
  383. data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
  384. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  385. data/spec/unit/parser/scope_spec.rb +1 -1
  386. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
  387. data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
  388. data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
  389. data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
  390. data/spec/unit/provider/exec_spec.rb +4 -3
  391. data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
  392. data/spec/unit/provider/package/aix_spec.rb +29 -0
  393. data/spec/unit/provider/package/apt_spec.rb +107 -0
  394. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  395. data/spec/unit/provider/package/dnfmodule_spec.rb +54 -15
  396. data/spec/unit/provider/package/dpkg_spec.rb +22 -7
  397. data/spec/unit/provider/package/gem_spec.rb +40 -0
  398. data/spec/unit/provider/package/openbsd_spec.rb +2 -0
  399. data/spec/unit/provider/package/pacman_spec.rb +6 -21
  400. data/spec/unit/provider/package/pip2_spec.rb +36 -0
  401. data/spec/unit/provider/package/pip_spec.rb +68 -19
  402. data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
  403. data/spec/unit/provider/package/pkgng_spec.rb +38 -0
  404. data/spec/unit/provider/package/portage_spec.rb +5 -0
  405. data/spec/unit/provider/package/puppet_gem_spec.rb +12 -1
  406. data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
  407. data/spec/unit/provider/package/rpm_spec.rb +0 -212
  408. data/spec/unit/provider/package/yum_spec.rb +274 -1
  409. data/spec/unit/provider/package/zypper_spec.rb +98 -0
  410. data/spec/unit/provider/service/base_spec.rb +2 -4
  411. data/spec/unit/provider/service/bsd_spec.rb +5 -1
  412. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  413. data/spec/unit/provider/service/debian_spec.rb +3 -5
  414. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  415. data/spec/unit/provider/service/gentoo_spec.rb +4 -5
  416. data/spec/unit/provider/service/init_spec.rb +46 -5
  417. data/spec/unit/provider/service/launchd_spec.rb +5 -6
  418. data/spec/unit/provider/service/openbsd_spec.rb +9 -0
  419. data/spec/unit/provider/service/openrc_spec.rb +4 -5
  420. data/spec/unit/provider/service/openwrt_spec.rb +2 -1
  421. data/spec/unit/provider/service/redhat_spec.rb +10 -1
  422. data/spec/unit/provider/service/runit_spec.rb +2 -1
  423. data/spec/unit/provider/service/smf_spec.rb +1 -1
  424. data/spec/unit/provider/service/src_spec.rb +3 -5
  425. data/spec/unit/provider/service/systemd_spec.rb +95 -18
  426. data/spec/unit/provider/service/upstart_spec.rb +4 -5
  427. data/spec/unit/provider/service/windows_spec.rb +50 -14
  428. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  429. data/spec/unit/provider/user/useradd_spec.rb +30 -16
  430. data/spec/unit/provider/user/windows_adsi_spec.rb +85 -3
  431. data/spec/unit/puppet_pal_2pec.rb +11 -0
  432. data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
  433. data/spec/unit/puppet_spec.rb +33 -0
  434. data/spec/unit/reports/http_spec.rb +70 -52
  435. data/spec/unit/reports/store_spec.rb +17 -13
  436. data/spec/unit/resource_spec.rb +3 -3
  437. data/spec/unit/rest/route_spec.rb +4 -4
  438. data/spec/unit/settings_spec.rb +44 -22
  439. data/spec/unit/ssl/host_spec.rb +4 -2
  440. data/spec/unit/ssl/oids_spec.rb +1 -0
  441. data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
  442. data/spec/unit/ssl/state_machine_spec.rb +90 -14
  443. data/spec/unit/test/test_helper_spec.rb +17 -0
  444. data/spec/unit/transaction/persistence_spec.rb +15 -0
  445. data/spec/unit/transaction/report_spec.rb +7 -1
  446. data/spec/unit/type/file/source_spec.rb +4 -4
  447. data/spec/unit/type/file_spec.rb +122 -96
  448. data/spec/unit/type/filebucket_spec.rb +1 -1
  449. data/spec/unit/type/service_spec.rb +218 -8
  450. data/spec/unit/type/user_spec.rb +32 -3
  451. data/spec/unit/type_spec.rb +50 -0
  452. data/spec/unit/util/at_fork_spec.rb +2 -2
  453. data/spec/unit/util/autoload_spec.rb +2 -1
  454. data/spec/unit/util/character_encoding_spec.rb +4 -4
  455. data/spec/unit/util/checksums_spec.rb +16 -0
  456. data/spec/unit/util/command_line_spec.rb +11 -6
  457. data/spec/unit/util/log/destinations_spec.rb +1 -29
  458. data/spec/unit/util/package/version/debian_spec.rb +83 -0
  459. data/spec/unit/util/package/version/pip_spec.rb +464 -0
  460. data/spec/unit/util/package/version/range_spec.rb +175 -0
  461. data/spec/unit/util/package/version/rpm_spec.rb +121 -0
  462. data/spec/unit/util/pidlock_spec.rb +83 -47
  463. data/spec/unit/util/rpm_compare_spec.rb +196 -0
  464. data/spec/unit/util/run_mode_spec.rb +6 -6
  465. data/spec/unit/util/windows/adsi_spec.rb +4 -4
  466. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  467. data/spec/unit/util/windows/service_spec.rb +4 -4
  468. data/spec/unit/util/windows/sid_spec.rb +2 -2
  469. data/spec/unit/util_spec.rb +3 -3
  470. data/spec/unit/x509/cert_provider_spec.rb +1 -1
  471. data/tasks/generate_cert_fixtures.rake +15 -1
  472. data/tasks/manpages.rake +5 -35
  473. metadata +90 -51
  474. data/spec/integration/faces/config_spec.rb +0 -91
  475. data/spec/integration/faces/documentation_spec.rb +0 -57
  476. data/spec/integration/faces/plugin_spec.rb +0 -63
  477. data/spec/integration/file_bucket/file_spec.rb +0 -50
  478. data/spec/integration/file_serving/content_spec.rb +0 -7
  479. data/spec/integration/file_serving/fileset_spec.rb +0 -12
  480. data/spec/integration/file_serving/metadata_spec.rb +0 -8
  481. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
  482. data/spec/integration/file_system/uniquefile_spec.rb +0 -26
  483. data/spec/integration/module_tool/forge_spec.rb +0 -64
  484. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  485. data/spec/integration/provider/service/init_spec.rb +0 -48
  486. data/spec/integration/provider/service/systemd_spec.rb +0 -25
  487. data/spec/integration/provider/service/windows_spec.rb +0 -50
  488. data/spec/integration/reference/providers_spec.rb +0 -21
  489. data/spec/integration/reports_spec.rb +0 -13
  490. data/spec/integration/ssl/certificate_request_spec.rb +0 -44
  491. data/spec/integration/ssl/host_spec.rb +0 -72
  492. data/spec/integration/ssl/key_spec.rb +0 -99
  493. data/spec/integration/test/test_helper_spec.rb +0 -31
  494. data/spec/shared_behaviours/file_serving_model.rb +0 -51
  495. data/spec/unit/face/man_spec.rb +0 -25
  496. data/spec/unit/man_spec.rb +0 -31
@@ -1,101 +1,119 @@
1
1
  require 'spec_helper'
2
2
  require 'puppet/reports'
3
3
 
4
- processor = Puppet::Reports.report(:http)
4
+ describe Puppet::Reports.report(:http) do
5
+ subject { Puppet::Transaction::Report.new.extend(described_class) }
5
6
 
6
- describe processor do
7
- subject { Puppet::Transaction::Report.new.extend(processor) }
7
+ let(:url) { "https://puppet.example.com/report/upload" }
8
+
9
+ before :each do
10
+ Puppet[:reporturl] = url
11
+ end
8
12
 
9
13
  describe "when setting up the connection" do
10
- let(:http) { double("http") }
11
- let(:httpok) { Net::HTTPOK.new('1.1', 200, '') }
14
+ it "raises if the connection fails" do
15
+ stub_request(:post, url).to_raise(Errno::ECONNREFUSED.new('Connection refused - connect(2)'))
12
16
 
13
- before :each do
14
- expect(http).to receive(:post).and_return(httpok)
17
+ expect {
18
+ subject.process
19
+ }.to raise_error(Puppet::HTTP::HTTPError, /Request to #{url} failed after .* seconds: .*Connection refused/)
15
20
  end
16
21
 
17
22
  it "configures the connection for ssl when using https" do
18
- Puppet[:reporturl] = 'https://testing:8080/the/path'
23
+ stub_request(:post, url)
19
24
 
20
- expect(Puppet::Network::HttpPool).to receive(:connection).with(
21
- 'testing', 8080, hash_including(ssl_context: instance_of(Puppet::SSL::SSLContext))
22
- ).and_return(http)
25
+ expect_any_instance_of(Net::HTTP).to receive(:start) do |http|
26
+ expect(http).to be_use_ssl
27
+ expect(http.verify_mode).to eq(OpenSSL::SSL::VERIFY_PEER)
28
+ end
23
29
 
24
30
  subject.process
25
31
  end
26
32
 
27
33
  it "does not configure the connection for ssl when using http" do
28
- Puppet[:reporturl] = 'http://testing:8080/the/path'
34
+ Puppet[:reporturl] = 'http://puppet.example.com:8080/the/path'
35
+ stub_request(:post, Puppet[:reporturl])
29
36
 
30
- expect(Puppet::Network::HttpPool).to receive(:connection).with(
31
- 'testing', 8080, use_ssl: false, ssl_context: nil
32
- ).and_return(http)
37
+ expect_any_instance_of(Net::HTTP).to receive(:start) do |http|
38
+ expect(http).to_not be_use_ssl
39
+ end
33
40
 
34
41
  subject.process
35
42
  end
36
43
  end
37
44
 
38
45
  describe "when making a request" do
39
- let(:connection) { double("connection") }
40
- let(:httpok) { Net::HTTPOK.new('1.1', 200, '') }
41
- let(:options) { {:metric_id => [:puppet, :report, :http]} }
46
+ it "uses the path specified by the 'reporturl' setting" do
47
+ req = stub_request(:post, url)
48
+
49
+ subject.process
42
50
 
43
- before :each do
44
- expect(Puppet::Network::HttpPool).to receive(:connection).and_return(connection)
51
+ expect(req).to have_been_requested
45
52
  end
46
53
 
47
- it "should use the path specified by the 'reporturl' setting" do
48
- report_path = URI.parse(Puppet[:reporturl]).path
49
- expect(connection).to receive(:post).with(report_path, anything, anything, options).and_return(httpok)
54
+ it "uses the username and password specified by the 'reporturl' setting" do
55
+ Puppet[:reporturl] = "https://user:pass@puppet.example.com/report/upload"
56
+
57
+ req = stub_request(:post, %r{/report/upload}).with(basic_auth: ['user', 'pass'])
50
58
 
51
59
  subject.process
60
+
61
+ expect(req).to have_been_requested
52
62
  end
53
63
 
54
- it "should use the username and password specified by the 'reporturl' setting" do
55
- Puppet[:reporturl] = "https://user:pass@myhost.mydomain:1234/report/upload"
64
+ it "passes metric_id options" do
65
+ stub_request(:post, url)
56
66
 
57
- expect(connection).to receive(:post).with(anything, anything, anything,
58
- {:metric_id => [:puppet, :report, :http],
59
- :basic_auth => {
60
- :user => 'user',
61
- :password => 'pass'
62
- }}).and_return(httpok)
67
+ expect(Puppet.runtime[:http]).to receive(:post).with(anything, anything, hash_including(options: hash_including(metric_id: [:puppet, :report, :http]))).and_call_original
63
68
 
64
69
  subject.process
65
70
  end
66
71
 
67
- it "should give the body as the report as YAML" do
68
- expect(connection).to receive(:post).with(anything, subject.to_yaml, anything, options).and_return(httpok)
72
+ it "passes the report as YAML" do
73
+ req = stub_request(:post, url).with(body: subject.to_yaml)
69
74
 
70
75
  subject.process
76
+
77
+ expect(req).to have_been_requested
71
78
  end
72
79
 
73
- it "should set content-type to 'application/x-yaml'" do
74
- expect(connection).to receive(:post).with(anything, anything, hash_including("Content-Type" => "application/x-yaml"), options).and_return(httpok)
80
+ it "sets content-type to 'application/x-yaml'" do
81
+ req = stub_request(:post, url).with(headers: {'Content-Type' => 'application/x-yaml'})
75
82
 
76
83
  subject.process
84
+
85
+ expect(req).to have_been_requested
77
86
  end
78
87
 
79
- Net::HTTPResponse::CODE_TO_OBJ.each do |code, klass|
80
- if code.to_i >= 200 and code.to_i < 300
81
- it "should succeed on http code #{code}" do
82
- response = klass.new('1.1', code, '')
83
- expect(connection).to receive(:post).and_return(response)
88
+ it "doesn't log anything if the request succeeds" do
89
+ req = stub_request(:post, url).to_return(status: [200, "OK"])
84
90
 
85
- expect(Puppet).not_to receive(:err)
86
- subject.process
87
- end
88
- end
91
+ subject.process
89
92
 
90
- if code.to_i >= 300 && ![301, 302, 307].include?(code.to_i)
91
- it "should log error on http code #{code}" do
92
- response = klass.new('1.1', code, '')
93
- expect(connection).to receive(:post).and_return(response)
93
+ expect(req).to have_been_requested
94
+ expect(@logs).to eq([])
95
+ end
94
96
 
95
- expect(Puppet).to receive(:err)
96
- subject.process
97
- end
98
- end
97
+ it "follows redirects" do
98
+ location = {headers: {'Location' => url}}
99
+
100
+ req = stub_request(:post, url)
101
+ .to_return(**location, status: [301, "Moved Permanently"]).then
102
+ .to_return(**location, status: [302, "Found"]).then
103
+ .to_return(**location, status: [307, "Temporary Redirect"]).then
104
+ .to_return(status: [200, "OK"])
105
+
106
+ subject.process
107
+
108
+ expect(req).to have_been_requested.times(4)
109
+ end
110
+
111
+ it "logs an error if the request fails" do
112
+ stub_request(:post, url).to_return(status: [500, "Internal Server Error"])
113
+
114
+ subject.process
115
+
116
+ expect(@logs).to include(having_attributes(level: :err, message: "Unable to submit report to #{url} [500] Internal Server Error"))
99
117
  end
100
118
  end
101
119
  end
@@ -6,53 +6,57 @@ require 'pathname'
6
6
  require 'tempfile'
7
7
  require 'fileutils'
8
8
 
9
- processor = Puppet::Reports.report(:store)
10
-
11
- describe processor do
9
+ describe Puppet::Reports.report(:store) do
12
10
  describe "#process" do
13
11
  include PuppetSpec::Files
12
+
14
13
  before :each do
15
14
  Puppet[:reportdir] = File.join(tmpdir('reports'), 'reports')
16
- @report = YAML.load_file(File.join(PuppetSpec::FIXTURE_DIR, 'yaml/report2.6.x.yaml')).extend processor
15
+ end
16
+
17
+ let(:report) do
18
+ report = YAML.load_file(File.join(PuppetSpec::FIXTURE_DIR, 'yaml/report2.6.x.yaml'))
19
+ report.extend(described_class)
20
+ report
17
21
  end
18
22
 
19
23
  it "should create a report directory for the client if one doesn't exist" do
20
- @report.process
24
+ report.process
21
25
 
22
- expect(File).to be_directory(File.join(Puppet[:reportdir], @report.host))
26
+ expect(File).to be_directory(File.join(Puppet[:reportdir], report.host))
23
27
  end
24
28
 
25
29
  it "should write the report to the file in YAML" do
26
30
  allow(Time).to receive(:now).and_return(Time.utc(2011,01,06,12,00,00))
27
- @report.process
31
+ report.process
28
32
 
29
- expect(File.read(File.join(Puppet[:reportdir], @report.host, "201101061200.yaml"))).to eq(@report.to_yaml)
33
+ expect(File.read(File.join(Puppet[:reportdir], report.host, "201101061200.yaml"))).to eq(report.to_yaml)
30
34
  end
31
35
 
32
36
  it "rejects invalid hostnames" do
33
- @report.host = ".."
37
+ report.host = ".."
34
38
  expect(Puppet::FileSystem).not_to receive(:exist?)
35
- expect { @report.process }.to raise_error(ArgumentError, /Invalid node/)
39
+ expect { report.process }.to raise_error(ArgumentError, /Invalid node/)
36
40
  end
37
41
  end
38
42
 
39
43
  describe "::destroy" do
40
44
  it "rejects invalid hostnames" do
41
45
  expect(Puppet::FileSystem).not_to receive(:unlink)
42
- expect { processor.destroy("..") }.to raise_error(ArgumentError, /Invalid node/)
46
+ expect { described_class.destroy("..") }.to raise_error(ArgumentError, /Invalid node/)
43
47
  end
44
48
  end
45
49
 
46
50
  describe "::validate_host" do
47
51
  ['..', 'hello/', '/hello', 'he/llo', 'hello/..', '.'].each do |node|
48
52
  it "rejects #{node.inspect}" do
49
- expect { processor.validate_host(node) }.to raise_error(ArgumentError, /Invalid node/)
53
+ expect { described_class.validate_host(node) }.to raise_error(ArgumentError, /Invalid node/)
50
54
  end
51
55
  end
52
56
 
53
57
  ['.hello', 'hello.', '..hi', 'hi..'].each do |node|
54
58
  it "accepts #{node.inspect}" do
55
- processor.validate_host(node)
59
+ described_class.validate_host(node)
56
60
  end
57
61
  end
58
62
  end
@@ -283,7 +283,7 @@ describe Puppet::Resource do
283
283
  let(:scope) { Puppet::Parser::Scope.new(compiler) }
284
284
 
285
285
  def ast_leaf(value)
286
- Puppet::Parser::AST::Leaf.new({:value => value})
286
+ Puppet::Parser::AST::Leaf.new(value: value)
287
287
  end
288
288
 
289
289
  it "should fail when asked to set default values and it is not a parser resource" do
@@ -389,7 +389,7 @@ describe Puppet::Resource do
389
389
  context "when a value is provided" do
390
390
  let(:port_parameter) do
391
391
  Puppet::Parser::Resource::Param.new(
392
- { :name => 'port', :value => '8080' }
392
+ name: 'port', value: '8080'
393
393
  )
394
394
  end
395
395
 
@@ -414,7 +414,7 @@ describe Puppet::Resource do
414
414
  expect_lookup('apache::port', returns: '443')
415
415
 
416
416
  rs = Puppet::Parser::Resource.new("class", "apache", :scope => scope,
417
- :parameters => [Puppet::Parser::Resource::Param.new({ :name => 'port', :value => nil })])
417
+ :parameters => [Puppet::Parser::Resource::Param.new(name: 'port', value: nil)])
418
418
 
419
419
  rs.resource_type.set_resource_parameters(rs, scope)
420
420
  expect(rs[:port]).to eq('443')
@@ -30,7 +30,7 @@ describe Puppet::Rest::Route do
30
30
 
31
31
  it "yields a base URL with Puppet's configured server and port when no defaults are specified" do
32
32
  Puppet[:server] = 'configured.net'
33
- Puppet[:masterport] = 8140
33
+ Puppet[:serverport] = 8140
34
34
  fallback_route = Puppet::Rest::Route.new(api: '/fakeapi/v1/')
35
35
  count = 0
36
36
  rval = fallback_route.with_base_url(dns_resolver) do |url|
@@ -55,9 +55,9 @@ describe Puppet::Rest::Route do
55
55
  expect(rval).to eq('Block return value')
56
56
  end
57
57
 
58
- it 'falls back to :server and :masterport if nil is passed' do
58
+ it 'falls back to :server and :serverport if nil is passed' do
59
59
  Puppet[:server] = 'one.net'
60
- Puppet[:masterport] = 111
60
+ Puppet[:serverport] = 111
61
61
  nil_route = Puppet::Rest::Route.new(api: '/fakeapi/v1/',
62
62
  server_setting: nil,
63
63
  port_setting: nil)
@@ -109,7 +109,7 @@ describe Puppet::Rest::Route do
109
109
 
110
110
  it "should fall back to the default server when the block raises a SystemCallError" do
111
111
  Puppet[:server] = "testserver"
112
- Puppet[:masterport] = 555
112
+ Puppet[:serverport] = 555
113
113
 
114
114
  count = 0
115
115
  rval = route.with_base_url(Puppet::Network::Resolver.new) do |url|
@@ -9,7 +9,7 @@ describe Puppet::Settings do
9
9
  include Matchers::Resource
10
10
 
11
11
  let(:main_config_file_default_location) do
12
- File.join(Puppet::Util::RunMode[:master].conf_dir, "puppet.conf")
12
+ File.join(Puppet::Util::RunMode[:server].conf_dir, "puppet.conf")
13
13
  end
14
14
 
15
15
  let(:user_config_file_default_location) do
@@ -112,9 +112,9 @@ describe Puppet::Settings do
112
112
  # case behaviors / uses. However, until that time... we need to make sure that our private run_mode=
113
113
  # setter method gets properly called during app initialization.
114
114
  it "sets the preferred run mode when initializing the app defaults" do
115
- @settings.initialize_app_defaults(default_values.merge(:run_mode => :master))
115
+ @settings.initialize_app_defaults(default_values.merge(:run_mode => :server))
116
116
 
117
- expect(@settings.preferred_run_mode).to eq(:master)
117
+ expect(@settings.preferred_run_mode).to eq(:server)
118
118
  end
119
119
 
120
120
  it "creates ancestor directories for all required app settings" do
@@ -326,7 +326,7 @@ describe Puppet::Settings do
326
326
  end
327
327
 
328
328
  it "should identify configured settings from the specified run mode" do
329
- user_config_text = "[master]\nmyval = foo"
329
+ user_config_text = "[server]\nmyval = foo"
330
330
 
331
331
  allow(Puppet.features).to receive(:root?).and_return(false)
332
332
  expect(Puppet::FileSystem).to receive(:exist?).
@@ -337,7 +337,7 @@ describe Puppet::Settings do
337
337
  and_return(user_config_text).ordered
338
338
 
339
339
  @settings.send(:parse_config_files)
340
- expect(@settings.set_by_config?(:myval, nil, :master)).to be_truthy
340
+ expect(@settings.set_by_config?(:myval, nil, :server)).to be_truthy
341
341
  end
342
342
 
343
343
  it "should not identify configured settings from an unspecified run mode" do
@@ -382,7 +382,7 @@ describe Puppet::Settings do
382
382
 
383
383
  it "should clear the cache when the preferred_run_mode is changed" do
384
384
  expect(@settings).to receive(:flush_cache)
385
- @settings.preferred_run_mode = :master
385
+ @settings.preferred_run_mode = :server
386
386
  end
387
387
 
388
388
  it "should not clear other values when setting getopt-specific values" do
@@ -658,6 +658,28 @@ describe Puppet::Settings do
658
658
  expect(@settings[:one]).to eq("modeval")
659
659
  end
660
660
 
661
+ [:master, :server].each do |run_mode|
662
+ describe "when run mode is '#{run_mode}'" do
663
+ before(:each) { @settings.preferred_run_mode = run_mode }
664
+
665
+ it "returns values set in the 'master' section if the 'server' section does not exist" do
666
+ text = "[main]\none = mainval\n[master]\none = modeval\n"
667
+ allow(@settings).to receive(:read_file).and_return(text)
668
+ @settings.send(:parse_config_files)
669
+
670
+ expect(@settings[:one]).to eq("modeval")
671
+ end
672
+
673
+ it "prioritizes values set in the 'server' section if set" do
674
+ text = "[main]\none = mainval\n[server]\none = serverval\n[master]\none = masterval\n"
675
+ allow(@settings).to receive(:read_file).and_return(text)
676
+ @settings.send(:parse_config_files)
677
+
678
+ expect(@settings[:one]).to eq("serverval")
679
+ end
680
+ end
681
+ end
682
+
661
683
  it "should not return values outside of its search path" do
662
684
  text = "[other]\none = oval\n"
663
685
  allow(@settings).to receive(:read_file).and_return(text)
@@ -854,10 +876,10 @@ describe Puppet::Settings do
854
876
  default_values[key] = 'default value'
855
877
  end
856
878
  @settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
857
- @settings.define_settings :master, :myfile => { :type => :file, :default => make_absolute("/myfile"), :desc => "a" }
879
+ @settings.define_settings :server, :myfile => { :type => :file, :default => make_absolute("/myfile"), :desc => "a" }
858
880
 
859
881
  otherfile = make_absolute("/other/file")
860
- text = "[master]
882
+ text = "[server]
861
883
  myfile = #{otherfile} {mode = 664}
862
884
  "
863
885
  expect(@settings).to receive(:read_file).and_return(text)
@@ -866,9 +888,9 @@ describe Puppet::Settings do
866
888
  expect(@settings.preferred_run_mode).to eq(:user)
867
889
  @settings.send(:parse_config_files)
868
890
 
869
- # change app run_mode to master
870
- @settings.initialize_app_defaults(default_values.merge(:run_mode => :master))
871
- expect(@settings.preferred_run_mode).to eq(:master)
891
+ # change app run_mode to server
892
+ @settings.initialize_app_defaults(default_values.merge(:run_mode => :server))
893
+ expect(@settings.preferred_run_mode).to eq(:server)
872
894
 
873
895
  # initializing the app should have reloaded the metadata based on run_mode
874
896
  expect(@settings[:myfile]).to eq(otherfile)
@@ -884,9 +906,9 @@ describe Puppet::Settings do
884
906
  file = make_absolute("/file")
885
907
  default_mode = "0600"
886
908
  @settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
887
- @settings.define_settings :master, :myfile => { :type => :file, :default => file, :desc => "a", :mode => default_mode }
909
+ @settings.define_settings :server, :myfile => { :type => :file, :default => file, :desc => "a", :mode => default_mode }
888
910
 
889
- text = "[master]
911
+ text = "[server]
890
912
  myfile = #{file}/foo
891
913
  [agent]
892
914
  myfile = #{file} {mode = 664}
@@ -897,9 +919,9 @@ describe Puppet::Settings do
897
919
  expect(@settings.preferred_run_mode).to eq(:user)
898
920
  @settings.send(:parse_config_files)
899
921
 
900
- # change app run_mode to master
901
- @settings.initialize_app_defaults(default_values.merge(:run_mode => :master))
902
- expect(@settings.preferred_run_mode).to eq(:master)
922
+ # change app run_mode to server
923
+ @settings.initialize_app_defaults(default_values.merge(:run_mode => :server))
924
+ expect(@settings.preferred_run_mode).to eq(:server)
903
925
 
904
926
  # initializing the app should have reloaded the metadata based on run_mode
905
927
  expect(@settings[:myfile]).to eq("#{file}/foo")
@@ -1900,18 +1922,18 @@ describe Puppet::Settings do
1900
1922
  end
1901
1923
 
1902
1924
  it "should set preferred run mode from --run_mode <foo> string without error" do
1903
- args = ["--run_mode", "master"]
1904
- expect(settings).not_to receive(:handlearg).with("--run_mode", "master")
1925
+ args = ["--run_mode", "server"]
1926
+ expect(settings).not_to receive(:handlearg).with("--run_mode", "server")
1905
1927
  expect { settings.send(:parse_global_options, args) } .to_not raise_error
1906
- expect(Puppet.settings.preferred_run_mode).to eq(:master)
1928
+ expect(Puppet.settings.preferred_run_mode).to eq(:server)
1907
1929
  expect(args.empty?).to eq(true)
1908
1930
  end
1909
1931
 
1910
1932
  it "should set preferred run mode from --run_mode=<foo> string without error" do
1911
- args = ["--run_mode=master"]
1912
- expect(settings).not_to receive(:handlearg).with("--run_mode", "master")
1933
+ args = ["--run_mode=server"]
1934
+ expect(settings).not_to receive(:handlearg).with("--run_mode", "server")
1913
1935
  expect { settings.send(:parse_global_options, args) }.to_not raise_error
1914
- expect(Puppet.settings.preferred_run_mode).to eq(:master)
1936
+ expect(Puppet.settings.preferred_run_mode).to eq(:server)
1915
1937
  expect(args.empty?).to eq(true)
1916
1938
  end
1917
1939
  end
@@ -51,8 +51,10 @@ describe Puppet::SSL::Host, if: !Puppet::Util::Platform.jruby? do
51
51
  allow_any_instance_of(Puppet::SSL::Host).to receive(:generate)
52
52
  end
53
53
 
54
- it "should have a method for producing an instance to manage the local host's keys" do
55
- expect(Puppet::SSL::Host).to respond_to(:localhost)
54
+ it "is deprecated" do
55
+ Puppet::SSL::Host.localhost
56
+
57
+ expect(@logs).to include(an_object_having_attributes(message: /Puppet::SSL::Host is deprecated/))
56
58
  end
57
59
 
58
60
  it "should allow to reset localhost" do