puppet 6.15.0-x86-mingw32 → 6.19.1-x86-mingw32

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

Potentially problematic release.


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

Files changed (418) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +2 -7
  3. data/Gemfile +4 -2
  4. data/Gemfile.lock +29 -27
  5. data/README.md +3 -4
  6. data/Rakefile +4 -12
  7. data/lib/puppet.rb +32 -8
  8. data/lib/puppet/agent.rb +18 -4
  9. data/lib/puppet/agent/locker.rb +0 -7
  10. data/lib/puppet/application/agent.rb +23 -8
  11. data/lib/puppet/application/apply.rb +18 -20
  12. data/lib/puppet/application/device.rb +1 -1
  13. data/lib/puppet/application/doc.rb +1 -1
  14. data/lib/puppet/application/lookup.rb +16 -4
  15. data/lib/puppet/application/plugin.rb +1 -0
  16. data/lib/puppet/application/ssl.rb +1 -1
  17. data/lib/puppet/configurer.rb +61 -21
  18. data/lib/puppet/configurer/downloader.rb +31 -10
  19. data/lib/puppet/confine.rb +2 -2
  20. data/lib/puppet/confine/any.rb +1 -1
  21. data/lib/puppet/context/trusted_information.rb +14 -8
  22. data/lib/puppet/daemon.rb +13 -27
  23. data/lib/puppet/defaults.rb +119 -39
  24. data/lib/puppet/environments.rb +51 -10
  25. data/lib/puppet/face/catalog.rb +1 -1
  26. data/lib/puppet/face/config.rb +46 -16
  27. data/lib/puppet/face/facts.rb +1 -1
  28. data/lib/puppet/face/help.rb +29 -3
  29. data/lib/puppet/face/module/search.rb +5 -0
  30. data/lib/puppet/face/node.rb +3 -3
  31. data/lib/puppet/face/node/clean.rb +2 -2
  32. data/lib/puppet/face/plugin.rb +1 -1
  33. data/lib/puppet/face/status.rb +1 -1
  34. data/lib/puppet/feature/base.rb +1 -1
  35. data/lib/puppet/file_bucket/dipper.rb +1 -1
  36. data/lib/puppet/file_serving/http_metadata.rb +14 -2
  37. data/lib/puppet/file_serving/metadata.rb +4 -1
  38. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  39. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  40. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  41. data/lib/puppet/file_serving/terminus_selector.rb +7 -8
  42. data/lib/puppet/file_system/file_impl.rb +4 -4
  43. data/lib/puppet/file_system/uniquefile.rb +12 -16
  44. data/lib/puppet/forge.rb +1 -1
  45. data/lib/puppet/forge/cache.rb +1 -1
  46. data/lib/puppet/forge/repository.rb +4 -7
  47. data/lib/puppet/functions/filter.rb +1 -0
  48. data/lib/puppet/functions/lstrip.rb +4 -4
  49. data/lib/puppet/functions/new.rb +8 -3
  50. data/lib/puppet/functions/reverse_each.rb +1 -1
  51. data/lib/puppet/functions/rstrip.rb +4 -4
  52. data/lib/puppet/functions/step.rb +1 -1
  53. data/lib/puppet/functions/strip.rb +4 -4
  54. data/lib/puppet/gettext/config.rb +5 -5
  55. data/lib/puppet/gettext/module_translations.rb +4 -4
  56. data/lib/puppet/http.rb +1 -0
  57. data/lib/puppet/http/client.rb +28 -12
  58. data/lib/puppet/http/external_client.rb +0 -6
  59. data/lib/puppet/http/redirector.rb +9 -7
  60. data/lib/puppet/http/resolver.rb +5 -8
  61. data/lib/puppet/http/resolver/server_list.rb +18 -36
  62. data/lib/puppet/http/resolver/settings.rb +4 -4
  63. data/lib/puppet/http/resolver/srv.rb +5 -5
  64. data/lib/puppet/http/response.rb +19 -0
  65. data/lib/puppet/http/service.rb +3 -1
  66. data/lib/puppet/http/service/compiler.rb +1 -1
  67. data/lib/puppet/http/service/file_server.rb +1 -1
  68. data/lib/puppet/http/service/puppetserver.rb +39 -0
  69. data/lib/puppet/http/session.rb +5 -4
  70. data/lib/puppet/indirector.rb +1 -1
  71. data/lib/puppet/indirector/catalog/compiler.rb +1 -1
  72. data/lib/puppet/indirector/exec.rb +1 -1
  73. data/lib/puppet/indirector/facts/facter.rb +3 -3
  74. data/lib/puppet/indirector/facts/yaml.rb +1 -1
  75. data/lib/puppet/indirector/file_content/http.rb +5 -0
  76. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  77. data/lib/puppet/indirector/file_metadata/http.rb +28 -8
  78. data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
  79. data/lib/puppet/indirector/hiera.rb +4 -0
  80. data/lib/puppet/indirector/indirection.rb +1 -1
  81. data/lib/puppet/indirector/json.rb +1 -1
  82. data/lib/puppet/indirector/msgpack.rb +1 -1
  83. data/lib/puppet/indirector/report/processor.rb +2 -2
  84. data/lib/puppet/indirector/request.rb +5 -5
  85. data/lib/puppet/indirector/rest.rb +7 -1
  86. data/lib/puppet/indirector/yaml.rb +1 -1
  87. data/lib/puppet/module.rb +1 -2
  88. data/lib/puppet/network/format_support.rb +2 -2
  89. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  90. data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
  91. data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
  92. data/lib/puppet/network/http/compression.rb +7 -0
  93. data/lib/puppet/network/http/connection.rb +2 -0
  94. data/lib/puppet/network/http/connection_adapter.rb +184 -0
  95. data/lib/puppet/network/http/nocache_pool.rb +1 -0
  96. data/lib/puppet/network/http/route.rb +2 -2
  97. data/lib/puppet/network/http_pool.rb +2 -2
  98. data/lib/puppet/node/environment.rb +12 -5
  99. data/lib/puppet/node/facts.rb +17 -0
  100. data/lib/puppet/pal/catalog_compiler.rb +5 -0
  101. data/lib/puppet/pal/pal_impl.rb +31 -4
  102. data/lib/puppet/parameter.rb +1 -1
  103. data/lib/puppet/parser/ast/leaf.rb +5 -5
  104. data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
  105. data/lib/puppet/parser/compiler.rb +29 -26
  106. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  107. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  108. data/lib/puppet/parser/environment_compiler.rb +4 -1
  109. data/lib/puppet/parser/functions.rb +21 -17
  110. data/lib/puppet/parser/functions/create_resources.rb +11 -7
  111. data/lib/puppet/parser/functions/filter.rb +1 -0
  112. data/lib/puppet/parser/resource.rb +3 -2
  113. data/lib/puppet/parser/resource/param.rb +6 -0
  114. data/lib/puppet/parser/type_loader.rb +2 -2
  115. data/lib/puppet/pops/adaptable.rb +7 -13
  116. data/lib/puppet/pops/adapters.rb +8 -4
  117. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  118. data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
  119. data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
  120. data/lib/puppet/pops/issues.rb +5 -0
  121. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
  122. data/lib/puppet/pops/loaders.rb +18 -11
  123. data/lib/puppet/pops/lookup/context.rb +1 -1
  124. data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
  125. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  126. data/lib/puppet/pops/types/iterable.rb +34 -8
  127. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  128. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  129. data/lib/puppet/pops/validation/checker4_0.rb +29 -15
  130. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  131. data/lib/puppet/provider/file/windows.rb +1 -1
  132. data/lib/puppet/provider/package/aix.rb +17 -2
  133. data/lib/puppet/provider/package/apt.rb +38 -1
  134. data/lib/puppet/provider/package/aptitude.rb +1 -1
  135. data/lib/puppet/provider/package/dnfmodule.rb +24 -4
  136. data/lib/puppet/provider/package/dpkg.rb +1 -1
  137. data/lib/puppet/provider/package/gem.rb +4 -2
  138. data/lib/puppet/provider/package/pip.rb +60 -37
  139. data/lib/puppet/provider/package/pip2.rb +17 -0
  140. data/lib/puppet/provider/package/portage.rb +2 -2
  141. data/lib/puppet/provider/package/puppet_gem.rb +5 -0
  142. data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
  143. data/lib/puppet/provider/package/yum.rb +9 -1
  144. data/lib/puppet/provider/package/zypper.rb +62 -1
  145. data/lib/puppet/provider/service/systemd.rb +21 -4
  146. data/lib/puppet/provider/service/windows.rb +23 -7
  147. data/lib/puppet/provider/user/aix.rb +1 -1
  148. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  149. data/lib/puppet/provider/user/useradd.rb +16 -5
  150. data/lib/puppet/provider/user/windows_adsi.rb +18 -1
  151. data/lib/puppet/reports/http.rb +7 -3
  152. data/lib/puppet/resource.rb +2 -1
  153. data/lib/puppet/resource/type.rb +10 -1
  154. data/lib/puppet/rest/route.rb +2 -2
  155. data/lib/puppet/runtime.rb +25 -2
  156. data/lib/puppet/settings.rb +43 -6
  157. data/lib/puppet/ssl/ssl_context.rb +2 -2
  158. data/lib/puppet/ssl/ssl_provider.rb +20 -1
  159. data/lib/puppet/ssl/state_machine.rb +33 -8
  160. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  161. data/lib/puppet/ssl/verifier_adapter.rb +9 -1
  162. data/lib/puppet/test/test_helper.rb +19 -14
  163. data/lib/puppet/transaction.rb +2 -2
  164. data/lib/puppet/transaction/persistence.rb +1 -1
  165. data/lib/puppet/transaction/report.rb +12 -8
  166. data/lib/puppet/trusted_external.rb +29 -1
  167. data/lib/puppet/type.rb +15 -7
  168. data/lib/puppet/type/file.rb +40 -15
  169. data/lib/puppet/type/file/checksum.rb +4 -4
  170. data/lib/puppet/type/file/source.rb +33 -13
  171. data/lib/puppet/type/filebucket.rb +1 -1
  172. data/lib/puppet/type/notify.rb +2 -2
  173. data/lib/puppet/type/package.rb +16 -1
  174. data/lib/puppet/type/service.rb +59 -8
  175. data/lib/puppet/type/user.rb +19 -10
  176. data/lib/puppet/util.rb +41 -3
  177. data/lib/puppet/util/autoload.rb +10 -25
  178. data/lib/puppet/util/character_encoding.rb +9 -5
  179. data/lib/puppet/util/checksums.rb +19 -4
  180. data/lib/puppet/util/connection.rb +8 -8
  181. data/lib/puppet/util/execution.rb +2 -2
  182. data/lib/puppet/util/fileparsing.rb +2 -2
  183. data/lib/puppet/util/log/destinations.rb +1 -10
  184. data/lib/puppet/util/package/version/range.rb +4 -1
  185. data/lib/puppet/util/package/version/range/eq.rb +14 -0
  186. data/lib/puppet/util/provider_features.rb +1 -1
  187. data/lib/puppet/util/reference.rb +1 -1
  188. data/lib/puppet/util/run_mode.rb +5 -1
  189. data/lib/puppet/util/windows.rb +1 -0
  190. data/lib/puppet/util/windows/api_types.rb +60 -33
  191. data/lib/puppet/util/windows/eventlog.rb +1 -6
  192. data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
  193. data/lib/puppet/util/windows/principal.rb +8 -6
  194. data/lib/puppet/util/windows/registry.rb +11 -11
  195. data/lib/puppet/util/windows/security.rb +4 -4
  196. data/lib/puppet/util/windows/service.rb +43 -26
  197. data/lib/puppet/util/windows/user.rb +242 -8
  198. data/lib/puppet/version.rb +1 -1
  199. data/locales/puppet.pot +541 -427
  200. data/man/man5/puppet.conf.5 +84 -19
  201. data/man/man8/puppet-agent.8 +7 -4
  202. data/man/man8/puppet-apply.8 +1 -1
  203. data/man/man8/puppet-catalog.8 +1 -1
  204. data/man/man8/puppet-config.8 +6 -6
  205. data/man/man8/puppet-describe.8 +1 -1
  206. data/man/man8/puppet-device.8 +1 -1
  207. data/man/man8/puppet-doc.8 +1 -1
  208. data/man/man8/puppet-epp.8 +1 -1
  209. data/man/man8/puppet-facts.8 +1 -1
  210. data/man/man8/puppet-filebucket.8 +1 -1
  211. data/man/man8/puppet-generate.8 +1 -1
  212. data/man/man8/puppet-help.8 +6 -3
  213. data/man/man8/puppet-key.8 +1 -1
  214. data/man/man8/puppet-lookup.8 +2 -2
  215. data/man/man8/puppet-man.8 +1 -1
  216. data/man/man8/puppet-module.8 +4 -1
  217. data/man/man8/puppet-node.8 +4 -4
  218. data/man/man8/puppet-parser.8 +1 -1
  219. data/man/man8/puppet-plugin.8 +1 -1
  220. data/man/man8/puppet-report.8 +1 -1
  221. data/man/man8/puppet-resource.8 +1 -1
  222. data/man/man8/puppet-script.8 +1 -1
  223. data/man/man8/puppet-ssl.8 +1 -1
  224. data/man/man8/puppet-status.8 +2 -2
  225. data/man/man8/puppet.8 +2 -2
  226. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
  227. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
  228. data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
  229. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  230. data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-enabled.txt → dnf-module-list.txt} +6 -0
  231. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
  232. data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
  233. data/spec/integration/application/agent_spec.rb +202 -52
  234. data/spec/integration/application/apply_spec.rb +149 -149
  235. data/spec/integration/application/config_spec.rb +74 -0
  236. data/spec/integration/application/doc_spec.rb +16 -6
  237. data/spec/integration/application/filebucket_spec.rb +70 -21
  238. data/spec/integration/application/help_spec.rb +42 -0
  239. data/spec/integration/application/lookup_spec.rb +13 -0
  240. data/spec/integration/application/module_spec.rb +68 -0
  241. data/spec/integration/application/plugin_spec.rb +75 -2
  242. data/spec/integration/configurer_spec.rb +14 -0
  243. data/spec/integration/data_binding_spec.rb +82 -0
  244. data/spec/integration/defaults_spec.rb +27 -3
  245. data/spec/integration/directory_environments_spec.rb +17 -17
  246. data/spec/integration/http/client_spec.rb +6 -1
  247. data/spec/integration/indirector/facts/facter_spec.rb +8 -6
  248. data/spec/integration/network/http_pool_spec.rb +73 -0
  249. data/spec/integration/node/environment_spec.rb +1 -1
  250. data/spec/integration/parser/compiler_spec.rb +11 -0
  251. data/spec/integration/type/file_spec.rb +1 -1
  252. data/spec/integration/util/execution_spec.rb +22 -0
  253. data/spec/integration/util/windows/adsi_spec.rb +7 -2
  254. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
  255. data/spec/integration/util/windows/process_spec.rb +26 -32
  256. data/spec/integration/util/windows/registry_spec.rb +7 -7
  257. data/spec/integration/util/windows/user_spec.rb +47 -5
  258. data/spec/integration/util_spec.rb +7 -33
  259. data/spec/lib/puppet_spec/https.rb +6 -0
  260. data/spec/lib/puppet_spec/matchers.rb +0 -80
  261. data/spec/lib/puppet_spec/puppetserver.rb +8 -0
  262. data/spec/shared_contexts/types_setup.rb +2 -0
  263. data/spec/unit/agent_spec.rb +47 -1
  264. data/spec/unit/application/agent_spec.rb +7 -8
  265. data/spec/unit/application/doc_spec.rb +2 -2
  266. data/spec/unit/application/face_base_spec.rb +6 -4
  267. data/spec/unit/application/facts_spec.rb +41 -10
  268. data/spec/unit/application/man_spec.rb +52 -0
  269. data/spec/unit/application/resource_spec.rb +3 -1
  270. data/spec/unit/application/ssl_spec.rb +15 -2
  271. data/spec/unit/application_spec.rb +9 -4
  272. data/spec/unit/configurer/downloader_spec.rb +10 -0
  273. data/spec/unit/configurer/fact_handler_spec.rb +4 -4
  274. data/spec/unit/configurer_spec.rb +86 -37
  275. data/spec/unit/confine_spec.rb +2 -1
  276. data/spec/unit/context/trusted_information_spec.rb +25 -2
  277. data/spec/unit/daemon_spec.rb +5 -64
  278. data/spec/unit/environments_spec.rb +99 -32
  279. data/spec/unit/face/config_spec.rb +59 -1
  280. data/spec/unit/face/module/search_spec.rb +17 -0
  281. data/spec/unit/face/node_spec.rb +2 -2
  282. data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
  283. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  284. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  285. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  286. data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
  287. data/spec/unit/file_system/uniquefile_spec.rb +29 -0
  288. data/spec/unit/file_system_spec.rb +1 -2
  289. data/spec/unit/http/client_spec.rb +74 -19
  290. data/spec/unit/http/external_client_spec.rb +9 -9
  291. data/spec/unit/http/resolver_spec.rb +24 -5
  292. data/spec/unit/http/response_spec.rb +6 -0
  293. data/spec/unit/http/service/ca_spec.rb +2 -3
  294. data/spec/unit/http/service/compiler_spec.rb +2 -3
  295. data/spec/unit/http/service/file_server_spec.rb +2 -3
  296. data/spec/unit/http/service/puppetserver_spec.rb +82 -0
  297. data/spec/unit/http/service/report_spec.rb +2 -3
  298. data/spec/unit/http/service_spec.rb +0 -1
  299. data/spec/unit/http/session_spec.rb +8 -21
  300. data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
  301. data/spec/unit/indirector/catalog/json_spec.rb +1 -1
  302. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  303. data/spec/unit/indirector/facts/rest_spec.rb +1 -1
  304. data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
  305. data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
  306. data/spec/unit/indirector/json_spec.rb +8 -8
  307. data/spec/unit/indirector/msgpack_spec.rb +8 -8
  308. data/spec/unit/indirector/node/rest_spec.rb +1 -1
  309. data/spec/unit/indirector/request_spec.rb +5 -5
  310. data/spec/unit/indirector/rest_spec.rb +14 -1
  311. data/spec/unit/indirector/status/rest_spec.rb +1 -1
  312. data/spec/unit/indirector/yaml_spec.rb +7 -7
  313. data/spec/unit/interface_spec.rb +3 -3
  314. data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
  315. data/spec/unit/network/format_support_spec.rb +3 -2
  316. data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
  317. data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
  318. data/spec/unit/network/http/connection_spec.rb +552 -190
  319. data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
  320. data/spec/unit/network/http_pool_spec.rb +63 -57
  321. data/spec/unit/network/http_spec.rb +1 -1
  322. data/spec/unit/node/environment_spec.rb +18 -1
  323. data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
  324. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  325. data/spec/unit/parser/scope_spec.rb +1 -1
  326. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
  327. data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
  328. data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
  329. data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
  330. data/spec/unit/provider/exec_spec.rb +4 -3
  331. data/spec/unit/provider/package/aix_spec.rb +29 -0
  332. data/spec/unit/provider/package/apt_spec.rb +77 -0
  333. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  334. data/spec/unit/provider/package/dnfmodule_spec.rb +25 -5
  335. data/spec/unit/provider/package/dpkg_spec.rb +22 -7
  336. data/spec/unit/provider/package/openbsd_spec.rb +2 -0
  337. data/spec/unit/provider/package/pip2_spec.rb +36 -0
  338. data/spec/unit/provider/package/pip_spec.rb +42 -16
  339. data/spec/unit/provider/package/portage_spec.rb +5 -0
  340. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
  341. data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
  342. data/spec/unit/provider/package/yum_spec.rb +47 -8
  343. data/spec/unit/provider/package/zypper_spec.rb +98 -0
  344. data/spec/unit/provider/service/base_spec.rb +2 -4
  345. data/spec/unit/provider/service/bsd_spec.rb +5 -1
  346. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  347. data/spec/unit/provider/service/debian_spec.rb +3 -5
  348. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  349. data/spec/unit/provider/service/gentoo_spec.rb +4 -5
  350. data/spec/unit/provider/service/init_spec.rb +46 -5
  351. data/spec/unit/provider/service/launchd_spec.rb +5 -6
  352. data/spec/unit/provider/service/openbsd_spec.rb +9 -0
  353. data/spec/unit/provider/service/openrc_spec.rb +4 -5
  354. data/spec/unit/provider/service/openwrt_spec.rb +2 -1
  355. data/spec/unit/provider/service/redhat_spec.rb +10 -1
  356. data/spec/unit/provider/service/runit_spec.rb +2 -1
  357. data/spec/unit/provider/service/smf_spec.rb +1 -1
  358. data/spec/unit/provider/service/src_spec.rb +3 -5
  359. data/spec/unit/provider/service/systemd_spec.rb +87 -19
  360. data/spec/unit/provider/service/upstart_spec.rb +4 -5
  361. data/spec/unit/provider/service/windows_spec.rb +50 -14
  362. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  363. data/spec/unit/provider/user/useradd_spec.rb +30 -16
  364. data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
  365. data/spec/unit/puppet_pal_2pec.rb +40 -0
  366. data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
  367. data/spec/unit/puppet_spec.rb +33 -0
  368. data/spec/unit/reports/http_spec.rb +1 -1
  369. data/spec/unit/reports/store_spec.rb +17 -13
  370. data/spec/unit/resource_spec.rb +3 -3
  371. data/spec/unit/rest/route_spec.rb +4 -4
  372. data/spec/unit/settings_spec.rb +182 -22
  373. data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
  374. data/spec/unit/ssl/state_machine_spec.rb +52 -8
  375. data/spec/unit/test/test_helper_spec.rb +17 -0
  376. data/spec/unit/transaction/persistence_spec.rb +15 -0
  377. data/spec/unit/transaction/report_spec.rb +3 -1
  378. data/spec/unit/type/file/source_spec.rb +4 -4
  379. data/spec/unit/type/file_spec.rb +122 -96
  380. data/spec/unit/type/filebucket_spec.rb +1 -1
  381. data/spec/unit/type/service_spec.rb +218 -8
  382. data/spec/unit/type/user_spec.rb +32 -3
  383. data/spec/unit/type_spec.rb +50 -0
  384. data/spec/unit/util/autoload_spec.rb +2 -1
  385. data/spec/unit/util/character_encoding_spec.rb +4 -4
  386. data/spec/unit/util/checksums_spec.rb +16 -0
  387. data/spec/unit/util/command_line_spec.rb +11 -6
  388. data/spec/unit/util/log/destinations_spec.rb +1 -29
  389. data/spec/unit/util/package/version/range_spec.rb +22 -1
  390. data/spec/unit/util/run_mode_spec.rb +6 -6
  391. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  392. data/spec/unit/util/windows/service_spec.rb +4 -4
  393. data/spec/unit/util_spec.rb +3 -3
  394. data/spec/unit/x509/cert_provider_spec.rb +1 -1
  395. data/tasks/manpages.rake +5 -35
  396. metadata +43 -49
  397. data/spec/integration/faces/config_spec.rb +0 -91
  398. data/spec/integration/faces/documentation_spec.rb +0 -57
  399. data/spec/integration/file_bucket/file_spec.rb +0 -50
  400. data/spec/integration/file_serving/content_spec.rb +0 -7
  401. data/spec/integration/file_serving/fileset_spec.rb +0 -12
  402. data/spec/integration/file_serving/metadata_spec.rb +0 -8
  403. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
  404. data/spec/integration/file_system/uniquefile_spec.rb +0 -26
  405. data/spec/integration/module_tool/forge_spec.rb +0 -51
  406. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  407. data/spec/integration/provider/service/init_spec.rb +0 -48
  408. data/spec/integration/provider/service/systemd_spec.rb +0 -25
  409. data/spec/integration/provider/service/windows_spec.rb +0 -50
  410. data/spec/integration/reference/providers_spec.rb +0 -21
  411. data/spec/integration/reports_spec.rb +0 -13
  412. data/spec/integration/ssl/certificate_request_spec.rb +0 -44
  413. data/spec/integration/ssl/host_spec.rb +0 -72
  414. data/spec/integration/ssl/key_spec.rb +0 -99
  415. data/spec/integration/test/test_helper_spec.rb +0 -31
  416. data/spec/shared_behaviours/file_serving_model.rb +0 -51
  417. data/spec/unit/face/man_spec.rb +0 -25
  418. data/spec/unit/man_spec.rb +0 -31
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-MAN" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-MAN" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-man\fR \- Display Puppet manual pages\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-MODULE" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-MODULE" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-module\fR \- Creates, installs and searches for modules on the Puppet Forge\.
@@ -170,6 +170,9 @@ puppet module search \fIsearch_term\fR
170
170
  \fBDESCRIPTION\fR
171
171
  .
172
172
  .IP
173
+ This action has been deprecated\. Please use the Puppet Forge to search for modules\.
174
+ .
175
+ .IP
173
176
  Searches a repository for modules whose names, descriptions, or keywords match the provided search term\.
174
177
  .
175
178
  .IP
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-NODE" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-NODE" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-node\fR \- View and manage node definitions\.
@@ -119,13 +119,13 @@ Retrieve an "empty" (no classes, no ENC\-imposed parameters, and an environment
119
119
  $ puppet node find somenode\.puppetlabs\.lan \-\-terminus plain \-\-render\-as yaml
120
120
  .
121
121
  .P
122
- Retrieve a node using the puppet master\'s configured ENC:
122
+ Retrieve a node using the Puppet Server\'s configured ENC:
123
123
  .
124
124
  .P
125
- $ puppet node find somenode\.puppetlabs\.lan \-\-terminus exec \-\-run_mode master \-\-render\-as yaml
125
+ $ puppet node find somenode\.puppetlabs\.lan \-\-terminus exec \-\-run_mode server \-\-render\-as yaml
126
126
  .
127
127
  .P
128
- Retrieve the same node from the puppet master:
128
+ Retrieve the same node from the Puppet Server:
129
129
  .
130
130
  .P
131
131
  $ puppet node find somenode\.puppetlabs\.lan \-\-terminus rest \-\-render\-as yaml
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-PARSER" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-PARSER" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-parser\fR \- Interact directly with the parser\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-PLUGIN" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-PLUGIN" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-plugin\fR \- Interact with the Puppet plugin system\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-REPORT" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-REPORT" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-report\fR \- Create, display, and submit reports\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-RESOURCE" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-RESOURCE" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-resource\fR \- The resource abstraction layer shell
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-SCRIPT" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-SCRIPT" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-script\fR \- Run a puppet manifests as a script without compiling a catalog
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-SSL" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-SSL" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-ssl\fR \- Manage SSL keys and certificates for puppet SSL clients
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-STATUS" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET\-STATUS" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-status\fR \- View puppet server status\.
@@ -57,7 +57,7 @@ puppet status [\-\-terminus _TERMINUS] [\-\-extra HASH] [\fIkey\fR]
57
57
  Checks whether a Puppet server is properly receiving and processing HTTP requests\. This action is only useful when used with \'\-\-terminus rest\'; when invoked with the \fBlocal\fR terminus, \fBfind\fR will always return true\.
58
58
  .
59
59
  .IP
60
- Over REST, this action will query the configured puppet master by default\. To query other servers, including puppet agent nodes started with the \fI\-\-listen\fR option, you can set the global \fI\-\-server\fR and \fI\-\-masterport\fR options on the command line; note that agent nodes listen on port 8139\.
60
+ Over REST, this action will query the configured puppet master by default\. To query other servers, including puppet agent nodes started with the \fI\-\-listen\fR option, you can set the global \fI\-\-server\fR and \fI\-\-serverport\fR options on the command line; note that agent nodes listen on port 8139\.
61
61
  .
62
62
  .IP
63
63
  \fBRETURNS\fR
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET" "8" "April 2020" "Puppet, Inc." "Puppet manual"
4
+ .TH "PUPPET" "8" "October 2020" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\fR
@@ -25,4 +25,4 @@ Specialized:
25
25
  catalog Compile, save, view, and convert catalogs\. describe Display help about resource types device Manage remote network devices doc Generate Puppet references epp Interact directly with the EPP template parser/renderer\. facts Retrieve and store facts\. filebucket Store and retrieve files in a filebucket generate Generates Puppet code from Ruby definitions\. node View and manage node definitions\. parser Interact directly with the parser\. plugin Interact with the Puppet plugin system\. script Run a puppet manifests as a script without compiling a catalog ssl Manage SSL keys and certificates for puppet SSL clients
26
26
  .
27
27
  .P
28
- See \'puppet help \fIsubcommand\fR \fIaction\fR\' for help on a specific subcommand action\. See \'puppet help \fIsubcommand\fR\' for help on a specific subcommand\. Puppet v6\.15\.0
28
+ See \'puppet help \fIsubcommand\fR \fIaction\fR\' for help on a specific subcommand action\. See \'puppet help \fIsubcommand\fR\' for help on a specific subcommand\. Puppet v6\.19\.0
@@ -0,0 +1,25 @@
1
+ # If you make changes to this file, regenerate the pcore resource type using
2
+ # bundle exec puppet generate types --environmentpath spec/fixtures/integration/application/apply/environments -E spec
3
+ Puppet::Type.newtype(:applytest) do
4
+ newproperty(:message) do
5
+ def sync
6
+ Puppet.send(@resource[:loglevel], self.should)
7
+ end
8
+
9
+ def retrieve
10
+ :absent
11
+ end
12
+
13
+ def insync?(is)
14
+ false
15
+ end
16
+
17
+ defaultto { @resource[:name] }
18
+ end
19
+
20
+ newparam(:name) do
21
+ desc "An arbitrary tag for your own reference; the name of the message."
22
+ Puppet.notice('the Puppet::Type says hello')
23
+ isnamevar
24
+ end
25
+ end
@@ -0,0 +1,128 @@
1
+ {
2
+ "pagination": {
3
+ "limit": 20,
4
+ "offset": 0,
5
+ "first": "/v3/releases?module=puppetlabs-bacula&sort_by=version&exclude_fields=readme%2Cchangelog%2Clicense%2Curi%2Cmodule%2Ctags%2Csupported%2Cfile_size%2Cdownloads%2Ccreated_at%2Cupdated_at%2Cdeleted_at&limit=20&offset=0",
6
+ "previous": null,
7
+ "current": "/v3/releases?module=puppetlabs-bacula&sort_by=version&exclude_fields=readme%2Cchangelog%2Clicense%2Curi%2Cmodule%2Ctags%2Csupported%2Cfile_size%2Cdownloads%2Ccreated_at%2Cupdated_at%2Cdeleted_at&limit=20&offset=0",
8
+ "next": null,
9
+ "total": 2
10
+ },
11
+ "results": [
12
+ {
13
+ "slug": "puppetlabs-bacula-0.0.2",
14
+ "version": "0.0.2",
15
+ "metadata": {
16
+ "description": "This module manages Bacula, a complete backup solution",
17
+ "source": "http://github.com/puppetlabs/puppetlabs-bacula",
18
+ "checksums": {
19
+ "templates/client_config.erb": "5d4005eda5ace78fd90a8cb6dcb388bd",
20
+ "spec/spec_helper.rb": "ca19ec4f451ebc7fdb035b52eae6e909",
21
+ "templates/bacula-fd.conf.erb": "344fff616e138fbf8cd150f4bab8125d",
22
+ "CHANGELOG": "a20043858790de6086b9b30c36806cd2",
23
+ "manifests/config/validate.pp": "7d2f9f7cffb2bd1d221eb699ea55f246",
24
+ "LICENSE": "26ce13c80c7a8493533c65c32dc29f09",
25
+ "manifests/director.pp": "36f34f749314634173b6a47b92a58421",
26
+ "manifests/config/client.pp": "5d25cbfd94be2829d9d530673cd2307f",
27
+ "lib/puppet/parser/functions/generate_clients.rb": "e09d77f88d18ec3e59bbe7bae4a48036",
28
+ "manifests/common.pp": "67391e5560ee7fc97d873ab5c3e2f84c",
29
+ "manifests/client.pp": "42e9255711d0a6abed6ab8deafb1248c",
30
+ "manifests/console.pp": "4cf8ac2f96f9268e2a3d70ed777797b7",
31
+ "README.md": "13d0f1119d510e41c539cbc3825a4f82",
32
+ "templates/bacula-sd.conf.erb": "df7987695bf1dd18bb789a2673b2cd95",
33
+ "manifests/config.pp": "624a225f85f907e7db5cf717561953f3",
34
+ "tests/init.pp": "b95d199119d5e592df7e1580bf23fe06",
35
+ "templates/bconsole.conf.erb": "ba5e1ef7d320a48bde6e403dc956952a",
36
+ "manifests/bat.pp": "3743bddf0197b4110e54a8e297e927e8",
37
+ "manifests/storage.pp": "84f4ec1413df4fdec7288c18d6ba2897",
38
+ "templates/bacula-dir.conf.erb": "5ab5aa263cf318ebf65c6b52a0726647",
39
+ "metadata.json": "d34d0b70aba36510fbc2df4e667479ef",
40
+ "spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c",
41
+ "Modulefile": "63f93af605871a69211cd3f79ac62582",
42
+ "manifests/init.pp": "fafac38161dd69f4b7e452cf910812f4"
43
+ },
44
+ "summary": "This module manages a bacula infrastructure",
45
+ "author": "Puppet Labs",
46
+ "dependencies": [
47
+
48
+ ],
49
+ "project_page": "http://github.com/puppetlabs/puppetlabs-bacula",
50
+ "types": [
51
+
52
+ ],
53
+ "license": "Apache",
54
+ "version": "0.0.2",
55
+ "name": "puppetlabs-bacula"
56
+ },
57
+ "pdk": false,
58
+ "validation_score": 22,
59
+ "file_uri": "/v3/files/puppetlabs-bacula-0.0.2.tar.gz",
60
+ "file_md5": "6cd7b8a3ec788e4ddbd06ae59be45d7a",
61
+ "file_sha256": "4cea5bae3c2b3dbe236bdc87ab9caa4f6d41943d1bf81651b2c0e08205910cdd",
62
+ "reference": null,
63
+ "tasks": [
64
+
65
+ ],
66
+ "plans": [
67
+
68
+ ],
69
+ "deleted_for": null
70
+ },
71
+ {
72
+ "slug": "puppetlabs-bacula-0.0.1",
73
+ "version": "0.0.1",
74
+ "metadata": {
75
+ "description": "This module manages Bacula, a complete backup solution",
76
+ "source": "http://github.com/puppetlabs/puppetlabs-bacula",
77
+ "checksums": {
78
+ "spec/spec_helper.rb": "ca19ec4f451ebc7fdb035b52eae6e909",
79
+ "templates/bacula-fd.conf.erb": "344fff616e138fbf8cd150f4bab8125d",
80
+ "CHANGELOG": "28c8a36d149971979b867491203b5fef",
81
+ "manifests/config/validate.pp": "e74d9dfbf4814d455a2c4a27ac516571",
82
+ "LICENSE": "26ce13c80c7a8493533c65c32dc29f09",
83
+ "manifests/director.pp": "bec6d5b6b8befca9640edb8bdb8b5b10",
84
+ "manifests/common.pp": "9c037f51fd8b70c4bed0ceeb55f93ffb",
85
+ "manifests/client.pp": "42e9255711d0a6abed6ab8deafb1248c",
86
+ "manifests/console.pp": "1ee546361e47c0bc43299b3b62baa925",
87
+ "README.md": "470c6e1e9b4d877bcfdc88d751de8d19",
88
+ "templates/bacula-sd.conf.erb": "df7987695bf1dd18bb789a2673b2cd95",
89
+ "manifests/config.pp": "4410fadc6d82543e0b19039e3365fd3a",
90
+ "tests/init.pp": "b95d199119d5e592df7e1580bf23fe06",
91
+ "templates/bconsole.conf.erb": "ba5e1ef7d320a48bde6e403dc956952a",
92
+ "manifests/bat.pp": "3743bddf0197b4110e54a8e297e927e8",
93
+ "manifests/storage.pp": "13eadb4376a07d095d1ee13e8ff60846",
94
+ "templates/bacula-dir.conf.erb": "c0b1b57660cf965bcff7e5fda547ee03",
95
+ "metadata.json": "d34d0b70aba36510fbc2df4e667479ef",
96
+ "spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c",
97
+ "Modulefile": "082b764ac91831266b7cbda75f79c199",
98
+ "manifests/init.pp": "6b9d2e9ca0a06c1a318837307fadcc70"
99
+ },
100
+ "summary": "This module manages a bacula infrastructure",
101
+ "author": "Puppet Labs",
102
+ "dependencies": [
103
+
104
+ ],
105
+ "project_page": "http://github.com/puppetlabs/puppetlabs-bacula",
106
+ "types": [
107
+
108
+ ],
109
+ "license": "Apache",
110
+ "version": "0.0.1",
111
+ "name": "puppetlabs-bacula"
112
+ },
113
+ "pdk": false,
114
+ "validation_score": 38,
115
+ "file_uri": "/v3/files/puppetlabs-bacula-0.0.1.tar.gz",
116
+ "file_md5": "c29882cf29eff17f18dcb74cc544c200",
117
+ "file_sha256": "7a68af4ab6e413a1cb3ec1694ddc3956138aa4c34d97abbe61a50947d0b12069",
118
+ "reference": null,
119
+ "tasks": [
120
+
121
+ ],
122
+ "plans": [
123
+
124
+ ],
125
+ "deleted_for": null
126
+ }
127
+ ]
128
+ }
@@ -9,5 +9,11 @@ postgresql 10 [d][e] client, server [d] [i] PostgreSQL s
9
9
  ruby 2.5 [d][e] common [d] An interpreter of object-oriented scripting language
10
10
  rust-toolset rhel8 [d][e] common [d] [i] Rust
11
11
  subversion 1.10 [d][e] common [d], server [i] Apache Subversion
12
+ scala 2.10 [d] common [d] A hybrid functional/object-oriented language for the JVM
13
+ squid 4 [d] common [d] Squid - Optimising Web Delivery
14
+ subversion 1.10 [d] common [d], server Apache Subversion
15
+ swig 3.0 [d][x] common [d], complete Connects C/C++/Objective C to some high-level programming languages
16
+ varnish 6 [d] common [d] Varnish HTTP cache
17
+ virt rhel [d][x] common [d] Virtualization module
12
18
 
13
19
  Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
@@ -0,0 +1,30 @@
1
+ concurrent-ruby (1.1.5)
2
+
3
+ deep_merge (1.0.1)
4
+
5
+ fast_gettext (1.1.2)
6
+
7
+ gettext (3.2.2)
8
+
9
+ hiera-eyaml (3.2.0)
10
+
11
+ highline (1.6.21)
12
+
13
+ hocon (1.3.1, 1.2.5)
14
+
15
+ locale (2.1.3, 2.1.2)
16
+
17
+ multi_json (1.14.1)
18
+
19
+ optimist (3.0.1)
20
+
21
+ puppet-resource_api (1.8.13)
22
+
23
+ puppetserver-ca (1.8.0)
24
+
25
+ semantic_puppet (1.0.2)
26
+
27
+ text (1.3.1)
28
+
29
+ world_airports (1.1.3)
30
+
@@ -0,0 +1,13 @@
1
+ Refreshing service 'spacewalk'.
2
+ Problem retrieving the repository index file for service 'spacewalk':
3
+ [|] This client is not registered to any spacewalk server.
4
+
5
+ Skipping service 'spacewalk' because of the above error.
6
+ Loading repository data...
7
+ Reading installed packages...
8
+
9
+ S | Name | Type | Version | Arch | Repository
10
+ --+---------+---------+-------------------+--------+-------------------------------------------------
11
+ | vim | package | 1.0.20040813-19.9 | noarch | localmirror-os
12
+ | vim | package | 1.0.20040813-19.9 | noarch | localmirror-os
13
+ | vim | package | 1.0.20040813-19.9 | noarch | SUSE-Linux-Enterprise-Server-11-SP4 11.4.4-1.109
@@ -15,21 +15,17 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
15
15
  let(:formatter) { Puppet::Network::FormatHandler.format(:rich_data_json) }
16
16
 
17
17
  context 'server_list' do
18
- before :each do
19
- Puppet[:log_level] = 'debug'
20
- end
21
-
22
18
  it "uses the first server in the list" do
23
19
  Puppet[:server_list] = '127.0.0.1'
20
+ Puppet[:log_level] = 'debug'
24
21
 
25
22
  server.start_server do |port|
26
- Puppet[:masterport] = port
23
+ Puppet[:serverport] = port
27
24
  expect {
28
- expect {
29
- agent.command_line.args << '--test'
30
- agent.run
31
- }.to exit_with(0)
32
- }.to output(%r{HTTP GET https://127.0.0.1:#{port}/status/v1/simple/master returned 200 OK}).to_stdout
25
+ agent.command_line.args << '--test'
26
+ agent.run
27
+ }.to exit_with(0)
28
+ .and output(%r{HTTP GET https://127.0.0.1:#{port}/status/v1/simple/master returned 200 OK}).to_stdout
33
29
  end
34
30
  end
35
31
 
@@ -37,16 +33,17 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
37
33
  Puppet[:server_list] = "puppet.example.com,#{Puppet[:server]}"
38
34
 
39
35
  server.start_server do |port|
40
- Puppet[:masterport] = port
36
+ Puppet[:serverport] = port
41
37
  expect {
42
- expect {
43
- agent.command_line.args << '--test'
44
- agent.run
45
- }.to exit_with(0)
46
- }.to output(%r{Unable to connect to server from server_list setting: Request to https://puppet.example.com:#{port}/status/v1/simple/master failed}).to_stdout
38
+ agent.command_line.args << '--test'
39
+ agent.run
40
+ }.to exit_with(0)
41
+ .and output(%r{Notice: Applied catalog}).to_stdout
42
+ .and output(%r{Unable to connect to server from server_list setting: Request to https://puppet.example.com:#{port}/status/v1/simple/master failed}).to_stderr
47
43
 
48
44
  report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
49
45
  expect(report.master_used).to eq("127.0.0.1:#{port}")
46
+ expect(report.server_used).to eq("127.0.0.1:#{port}")
50
47
  end
51
48
  end
52
49
 
@@ -54,32 +51,51 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
54
51
  Puppet[:server_list] = "puppet.example.com"
55
52
 
56
53
  expect {
57
- expect {
58
- expect {
59
- agent.command_line.args << '--test'
60
- agent.run
61
- }.to exit_with(1)
62
- }.to output(%r{Unable to connect to server from server_list setting: Could not select a functional puppet master from server_list: 'puppet.example.com'}).to_stdout
63
- }.to output(/Error: Could not run Puppet configuration client: Could not select a functional puppet master from server_list: 'puppet.example.com'/).to_stderr
54
+ agent.command_line.args << '--test'
55
+ agent.run
56
+ }.to exit_with(1)
57
+ .and output(a_string_matching(%r{Unable to connect to server from server_list setting})
58
+ .and matching(/Error: Could not run Puppet configuration client: Could not select a functional puppet server from server_list: 'puppet.example.com'/)).to_stderr
64
59
 
65
60
  # I'd expect puppet to update the last run report even if the server_list was
66
61
  # exhausted, but it doesn't work that way currently, see PUP-6708
67
62
  expect(File).to_not be_exist(Puppet[:lastrunreport])
68
63
  end
69
64
 
70
- it "omits master_used when not using server_list" do
65
+ it "omits server_used when not using server_list" do
66
+ Puppet[:log_level] = 'debug'
67
+
71
68
  server.start_server do |port|
72
- Puppet[:masterport] = port
69
+ Puppet[:serverport] = port
73
70
  expect {
74
- expect {
75
- agent.command_line.args << '--test'
76
- agent.run
77
- }.to exit_with(0)
78
- }.to output(%r{Resolved service 'puppet' to https://127.0.0.1:#{port}/puppet/v3}).to_stdout
71
+ agent.command_line.args << '--test'
72
+ agent.run
73
+ }.to exit_with(0)
74
+ .and output(%r{Resolved service 'puppet' to https://127.0.0.1:#{port}/puppet/v3}).to_stdout
79
75
  end
80
76
 
81
77
  report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
82
78
  expect(report.master_used).to be_nil
79
+ expect(report.server_used).to be_nil
80
+ end
81
+
82
+ it "server_list takes precedence over server" do
83
+ Puppet[:server] = 'notvalid.example.com'
84
+ Puppet[:log_level] = 'debug'
85
+
86
+ server.start_server do |port|
87
+ Puppet[:server_list] = "127.0.0.1:#{port}"
88
+
89
+ expect {
90
+ agent.command_line.args << '--test'
91
+ agent.run
92
+ }.to exit_with(0)
93
+ .and output(%r{Debug: Resolved service 'puppet' to https://127.0.0.1:#{port}/puppet/v3}).to_stdout
94
+
95
+ report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
96
+ expect(report.master_used).to eq("127.0.0.1:#{port}")
97
+ expect(report.server_used).to eq("127.0.0.1:#{port}")
98
+ end
83
99
  end
84
100
  end
85
101
 
@@ -97,13 +113,12 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
97
113
  }
98
114
 
99
115
  server.start_server(mounts: {catalog: catalog_handler}) do |port|
100
- Puppet[:masterport] = port
116
+ Puppet[:serverport] = port
101
117
  expect {
102
- expect {
103
- agent.command_line.args << '--test'
104
- agent.run
105
- }.to exit_with(2)
106
- }.to output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred\]/message: defined 'message' as '1:2:3'}).to_stdout
118
+ agent.command_line.args << '--test'
119
+ agent.run
120
+ }.to exit_with(2)
121
+ .and output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred\]/message: defined 'message' as '1:2:3'}).to_stdout
107
122
  end
108
123
  end
109
124
 
@@ -120,19 +135,40 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
120
135
  }
121
136
 
122
137
  server.start_server(mounts: {catalog: catalog_handler}) do |port|
123
- Puppet[:masterport] = port
138
+ Puppet[:serverport] = port
124
139
  expect {
125
- expect {
126
- agent.command_line.args << '--test'
127
- agent.run
128
- }.to exit_with(2)
129
- }.to output(a_string_matching(
140
+ agent.command_line.args << '--test'
141
+ agent.run
142
+ }.to exit_with(2)
143
+ .and output(a_string_matching(
130
144
  /Notice: Sensitive \[value redacted\]/
131
145
  ).and matching(
132
146
  /Notify\[sensitive\]\/message: changed \[redacted\] to \[redacted\]/
133
147
  )).to_stdout
134
148
  end
135
149
  end
150
+
151
+ it "applies binary data in a cached catalog" do
152
+ catalog = compile_to_catalog(<<-MANIFEST, node)
153
+ notify { 'some title':
154
+ message => Binary.new('aGk=')
155
+ }
156
+ MANIFEST
157
+
158
+ catalog_dir = File.join(Puppet[:client_datadir], 'catalog')
159
+ Puppet::FileSystem.mkpath(catalog_dir)
160
+ cached_catalog = "#{File.join(catalog_dir, Puppet[:certname])}.json"
161
+ File.write(cached_catalog, catalog.render(:rich_data_json))
162
+
163
+ expect {
164
+ Puppet[:report] = false
165
+ Puppet[:use_cached_catalog] = true
166
+ Puppet[:usecacheonfailure] = false
167
+ agent.command_line.args << '-t'
168
+ agent.run
169
+ }.to exit_with(2)
170
+ .and output(%r{defined 'message' as 'hi'}).to_stdout
171
+ end
136
172
  end
137
173
 
138
174
  context 'static catalogs' do
@@ -163,7 +199,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
163
199
  }
164
200
 
165
201
  server.start_server(mounts: {catalog: catalog_handler}) do |port|
166
- Puppet[:masterport] = port
202
+ Puppet[:serverport] = port
167
203
  expect {
168
204
  expect {
169
205
  agent.command_line.args << '--test'
@@ -208,13 +244,12 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
208
244
  }
209
245
 
210
246
  server.start_server(mounts: mounts) do |port|
211
- Puppet[:masterport] = port
247
+ Puppet[:serverport] = port
212
248
  expect {
213
- expect {
214
- agent.command_line.args << '--test'
215
- agent.run
216
- }.to exit_with(2)
217
- }.to output(/content changed '{md5}d41d8cd98f00b204e9800998ecf8427e' to '{md5}4cf49285ae567157ebfba72bd04ccf32'/).to_stdout
249
+ agent.command_line.args << '--test'
250
+ agent.run
251
+ }.to exit_with(2)
252
+ .and output(/content changed '{md5}d41d8cd98f00b204e9800998ecf8427e' to '{md5}4cf49285ae567157ebfba72bd04ccf32'/).to_stdout
218
253
 
219
254
  # verify puppet restored binary content
220
255
  expect(File.binread(path)).to eq(binary_content)
@@ -257,7 +292,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
257
292
  }
258
293
 
259
294
  server.start_server(mounts: {catalog: catalog_handler}) do |puppetserver_port|
260
- Puppet[:masterport] = puppetserver_port
295
+ Puppet[:serverport] = puppetserver_port
261
296
 
262
297
  # override path to system cacert bundle, this must be done before
263
298
  # the SSLContext is created and the call to X509::Store.set_default_paths
@@ -267,7 +302,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
267
302
  agent.run
268
303
  }.to exit_with(4)
269
304
  .and output(/Notice: Applied catalog/).to_stdout
270
- .and output(%r{Error: Could not retrieve file metadata for https://127.0.0.1:#{https_port}/path/to/file: .* certificate verify failed}).to_stderr
305
+ .and output(%r{Error: Could not retrieve file metadata for https://127.0.0.1:#{https_port}/path/to/file: certificate verify failed}).to_stderr
271
306
  end
272
307
 
273
308
  expect(File).to_not be_exist(path)
@@ -309,7 +344,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
309
344
  }
310
345
 
311
346
  server.start_server(mounts: {catalog: catalog_handler}) do |puppetserver_port|
312
- Puppet[:masterport] = puppetserver_port
347
+ Puppet[:serverport] = puppetserver_port
313
348
 
314
349
  # override path to system cacert bundle, this must be done before
315
350
  # the SSLContext is created and the call to X509::Store.set_default_paths
@@ -325,5 +360,120 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
325
360
  end
326
361
  end
327
362
  end
363
+
364
+ it 'accepts HTTPS servers whose cert is in the external CA store' do
365
+ unknown_ca_cert = cert_fixture('unknown-ca.pem')
366
+ https = PuppetSpec::HTTPSServer.new(
367
+ ca_cert: unknown_ca_cert,
368
+ server_cert: cert_fixture('unknown-127.0.0.1.pem'),
369
+ server_key: key_fixture('unknown-127.0.0.1-key.pem')
370
+ )
371
+
372
+ # create a temp cacert bundle
373
+ ssl_file = tmpfile('systemstore')
374
+ File.write(ssl_file, unknown_ca_cert.to_pem)
375
+
376
+ response_proc = -> (req, res) {
377
+ res.status = 200
378
+ res.body = response_body
379
+ }
380
+
381
+ https.start_server(response_proc: response_proc) do |https_port|
382
+ catalog_handler = -> (req, res) {
383
+ catalog = compile_to_catalog(<<-MANIFEST, node)
384
+ file { "#{path}":
385
+ ensure => file,
386
+ backup => false,
387
+ checksum => sha1,
388
+ checksum_value => '#{digest}',
389
+ source => "https://127.0.0.1:#{https_port}/path/to/file"
390
+ }
391
+ MANIFEST
392
+
393
+ res.body = formatter.render(catalog)
394
+ res['Content-Type'] = formatter.mime
395
+ }
396
+
397
+ server.start_server(mounts: {catalog: catalog_handler}) do |puppetserver_port|
398
+ Puppet[:serverport] = puppetserver_port
399
+
400
+ # set path to external cacert bundle, this must be done before
401
+ # the SSLContext is created
402
+ Puppet[:ssl_trust_store] = ssl_file
403
+ expect {
404
+ agent.command_line.args << '--test'
405
+ agent.run
406
+ }.to exit_with(2)
407
+ .and output(%r{https_file_source.*/ensure: created}).to_stdout
408
+ end
409
+
410
+ expect(File.binread(path)).to eq("from https server")
411
+ end
412
+ end
413
+ end
414
+
415
+ context 'multiple agents running' do
416
+ it "exits if an agent is already running" do
417
+ path = Puppet[:agent_catalog_run_lockfile]
418
+
419
+ th = Thread.new {
420
+ %x{ruby -e "$0 = 'puppet'; File.write('#{path}', Process.pid); sleep(2)"}
421
+ }
422
+
423
+ until File.exists?(path) && File.size(path) > 0 do
424
+ sleep 0.1
425
+ end
426
+
427
+ expect {
428
+ agent.command_line.args << '--test'
429
+ agent.run
430
+ }.to exit_with(1).and output(/Run of Puppet configuration client already in progress; skipping/).to_stdout
431
+
432
+ th.kill # kill thread so we don't wait too much
433
+ end
434
+
435
+ it "waits for other agent run to finish before starting" do
436
+ server.start_server do |port|
437
+ path = Puppet[:agent_catalog_run_lockfile]
438
+ Puppet[:serverport] = port
439
+ Puppet[:waitforlock] = 1
440
+
441
+ th = Thread.new {
442
+ %x{ruby -e "$0 = 'puppet'; File.write('#{path}', Process.pid); sleep(2)"}
443
+ }
444
+
445
+ until File.exists?(path) && File.size(path) > 0 do
446
+ sleep 0.1
447
+ end
448
+
449
+ expect {
450
+ agent.command_line.args << '--test'
451
+ agent.run
452
+ }.to exit_with(0).and output(/Info: Will try again in #{Puppet[:waitforlock]} seconds./).to_stdout
453
+
454
+ th.kill # kill thread so we don't wait too much
455
+ end
456
+ end
457
+
458
+ it "exits if maxwaitforlock is exceeded" do
459
+ path = Puppet[:agent_catalog_run_lockfile]
460
+ Puppet[:waitforlock] = 1
461
+ Puppet[:maxwaitforlock] = 0
462
+
463
+ th = Thread.new {
464
+ %x{ruby -e "$0 = 'puppet'; File.write('#{path}', Process.pid); sleep(2)"}
465
+ }
466
+
467
+ until File.exists?(path) && File.size(path) > 0 do
468
+ sleep 0.1
469
+ end
470
+
471
+ expect {
472
+ agent.command_line.args << '--test'
473
+ agent.run
474
+ }.to exit_with(1).and output(/Exiting now because the maxwaitforlock timeout has been exceeded./).to_stdout
475
+
476
+ th.kill # kill thread so we don't wait too much
477
+ end
328
478
  end
329
479
  end