puppet 6.22.1-x86-mingw32 → 6.25.1-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +5 -5
  3. data/Gemfile +2 -2
  4. data/Gemfile.lock +20 -20
  5. data/README.md +4 -4
  6. data/{ext → examples/enc}/regexp_nodes/classes/databases +0 -0
  7. data/{ext → examples/enc}/regexp_nodes/classes/webservers +0 -0
  8. data/{ext → examples/enc}/regexp_nodes/environment/development +0 -0
  9. data/{ext → examples/enc}/regexp_nodes/parameters/service/prod +0 -0
  10. data/{ext → examples/enc}/regexp_nodes/parameters/service/qa +0 -0
  11. data/{ext → examples/enc}/regexp_nodes/parameters/service/sandbox +0 -0
  12. data/{ext → examples/enc}/regexp_nodes/regexp_nodes.rb +0 -0
  13. data/{ext → examples}/nagios/check_puppet.rb +2 -2
  14. data/ext/README.md +13 -0
  15. data/ext/osx/puppet.plist +2 -0
  16. data/ext/project_data.yaml +1 -0
  17. data/lib/puppet/application/agent.rb +16 -5
  18. data/lib/puppet/application/apply.rb +22 -3
  19. data/lib/puppet/application/device.rb +2 -1
  20. data/lib/puppet/application/filebucket.rb +1 -0
  21. data/lib/puppet/application/resource.rb +32 -16
  22. data/lib/puppet/application/script.rb +2 -1
  23. data/lib/puppet/application/ssl.rb +1 -0
  24. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  25. data/lib/puppet/configurer/downloader.rb +2 -1
  26. data/lib/puppet/configurer.rb +144 -56
  27. data/lib/puppet/confine/variable.rb +1 -1
  28. data/lib/puppet/defaults.rb +47 -33
  29. data/lib/puppet/environments.rb +75 -25
  30. data/lib/puppet/face/facts.rb +1 -1
  31. data/lib/puppet/face/help/action.erb +1 -0
  32. data/lib/puppet/face/help/face.erb +1 -0
  33. data/lib/puppet/face/node/clean.rb +11 -0
  34. data/lib/puppet/facter_impl.rb +96 -0
  35. data/lib/puppet/file_serving/configuration/parser.rb +2 -0
  36. data/lib/puppet/file_serving/configuration.rb +3 -0
  37. data/lib/puppet/file_serving/fileset.rb +14 -2
  38. data/lib/puppet/file_serving/mount/file.rb +4 -4
  39. data/lib/puppet/file_serving/mount/scripts.rb +24 -0
  40. data/lib/puppet/file_system/file_impl.rb +3 -1
  41. data/lib/puppet/file_system/windows.rb +2 -2
  42. data/lib/puppet/forge.rb +4 -4
  43. data/lib/puppet/functions/all.rb +1 -1
  44. data/lib/puppet/functions/camelcase.rb +1 -1
  45. data/lib/puppet/functions/capitalize.rb +2 -2
  46. data/lib/puppet/functions/downcase.rb +2 -2
  47. data/lib/puppet/functions/empty.rb +8 -0
  48. data/lib/puppet/functions/find_template.rb +2 -2
  49. data/lib/puppet/functions/get.rb +5 -5
  50. data/lib/puppet/functions/group_by.rb +13 -5
  51. data/lib/puppet/functions/lest.rb +1 -1
  52. data/lib/puppet/functions/new.rb +100 -100
  53. data/lib/puppet/functions/partition.rb +4 -4
  54. data/lib/puppet/functions/require.rb +5 -5
  55. data/lib/puppet/functions/sort.rb +3 -3
  56. data/lib/puppet/functions/strftime.rb +1 -0
  57. data/lib/puppet/functions/tree_each.rb +7 -9
  58. data/lib/puppet/functions/type.rb +4 -4
  59. data/lib/puppet/functions/unwrap.rb +17 -2
  60. data/lib/puppet/functions/upcase.rb +2 -2
  61. data/lib/puppet/http/client.rb +1 -1
  62. data/lib/puppet/http/redirector.rb +5 -0
  63. data/lib/puppet/http/resolver/server_list.rb +15 -4
  64. data/lib/puppet/http/service/compiler.rb +75 -1
  65. data/lib/puppet/http/service/file_server.rb +2 -1
  66. data/lib/puppet/indirector/catalog/compiler.rb +25 -6
  67. data/lib/puppet/indirector/catalog/rest.rb +1 -0
  68. data/lib/puppet/indirector/facts/facter.rb +6 -6
  69. data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
  70. data/lib/puppet/indirector/indirection.rb +1 -1
  71. data/lib/puppet/indirector/resource/ral.rb +6 -1
  72. data/lib/puppet/indirector/terminus.rb +4 -0
  73. data/lib/puppet/interface/documentation.rb +1 -0
  74. data/lib/puppet/module/plan.rb +0 -1
  75. data/lib/puppet/module/task.rb +1 -1
  76. data/lib/puppet/module.rb +1 -0
  77. data/lib/puppet/module_tool/applications/installer.rb +12 -4
  78. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  79. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  80. data/lib/puppet/module_tool/errors/shared.rb +17 -0
  81. data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
  82. data/lib/puppet/node/environment.rb +10 -11
  83. data/lib/puppet/pal/pal_impl.rb +1 -1
  84. data/lib/puppet/parser/functions/fqdn_rand.rb +14 -6
  85. data/lib/puppet/parser/resource.rb +1 -1
  86. data/lib/puppet/parser/scope.rb +1 -0
  87. data/lib/puppet/parser/templatewrapper.rb +1 -0
  88. data/lib/puppet/pops/evaluator/closure.rb +7 -5
  89. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +1 -0
  90. data/lib/puppet/pops/lookup/lookup_adapter.rb +3 -2
  91. data/lib/puppet/pops/model/ast.rb +1 -0
  92. data/lib/puppet/pops/model/factory.rb +2 -1
  93. data/lib/puppet/pops/parser/eparser.rb +201 -201
  94. data/lib/puppet/pops/parser/lexer2.rb +92 -91
  95. data/lib/puppet/pops/parser/slurp_support.rb +1 -0
  96. data/lib/puppet/pops/serialization/to_data_converter.rb +18 -6
  97. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  98. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -2
  99. data/lib/puppet/pops/types/p_sensitive_type.rb +10 -0
  100. data/lib/puppet/pops/types/type_formatter.rb +4 -3
  101. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  102. data/lib/puppet/pops/types/types.rb +1 -1
  103. data/lib/puppet/provider/aix_object.rb +1 -1
  104. data/lib/puppet/provider/exec/posix.rb +16 -4
  105. data/lib/puppet/provider/group/groupadd.rb +5 -2
  106. data/lib/puppet/provider/package/nim.rb +11 -6
  107. data/lib/puppet/provider/package/pip.rb +15 -3
  108. data/lib/puppet/provider/package/pkg.rb +19 -2
  109. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  110. data/lib/puppet/provider/package/yum.rb +1 -1
  111. data/lib/puppet/provider/parsedfile.rb +3 -0
  112. data/lib/puppet/provider/service/base.rb +1 -1
  113. data/lib/puppet/provider/service/init.rb +5 -5
  114. data/lib/puppet/provider/service/launchd.rb +2 -2
  115. data/lib/puppet/provider/service/redhat.rb +1 -1
  116. data/lib/puppet/provider/service/smf.rb +3 -3
  117. data/lib/puppet/provider/service/systemd.rb +15 -5
  118. data/lib/puppet/provider/service/upstart.rb +5 -5
  119. data/lib/puppet/provider/service/windows.rb +38 -0
  120. data/lib/puppet/provider/user/aix.rb +44 -1
  121. data/lib/puppet/provider/user/directoryservice.rb +26 -13
  122. data/lib/puppet/provider/user/useradd.rb +72 -16
  123. data/lib/puppet/provider.rb +1 -1
  124. data/lib/puppet/reference/configuration.rb +1 -1
  125. data/lib/puppet/reference/providers.rb +2 -2
  126. data/lib/puppet/resource/catalog.rb +1 -1
  127. data/lib/puppet/resource/type_collection.rb +1 -0
  128. data/lib/puppet/resource.rb +38 -5
  129. data/lib/puppet/runtime.rb +11 -1
  130. data/lib/puppet/settings.rb +32 -9
  131. data/lib/puppet/test/test_helper.rb +4 -1
  132. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  133. data/lib/puppet/transaction/persistence.rb +11 -1
  134. data/lib/puppet/transaction/report.rb +15 -1
  135. data/lib/puppet/type/exec.rb +35 -5
  136. data/lib/puppet/type/file/mode.rb +6 -0
  137. data/lib/puppet/type/file/selcontext.rb +1 -1
  138. data/lib/puppet/type/file.rb +25 -7
  139. data/lib/puppet/type/filebucket.rb +3 -3
  140. data/lib/puppet/type/group.rb +0 -1
  141. data/lib/puppet/type/resources.rb +1 -1
  142. data/lib/puppet/type/service.rb +26 -41
  143. data/lib/puppet/type/tidy.rb +22 -3
  144. data/lib/puppet/type/user.rb +38 -21
  145. data/lib/puppet/type.rb +1 -1
  146. data/lib/puppet/util/command_line.rb +1 -1
  147. data/lib/puppet/util/filetype.rb +2 -2
  148. data/lib/puppet/util/json.rb +3 -0
  149. data/lib/puppet/util/log.rb +1 -2
  150. data/lib/puppet/util/logging.rb +1 -25
  151. data/lib/puppet/util/pidlock.rb +1 -1
  152. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  153. data/lib/puppet/util/selinux.rb +30 -4
  154. data/lib/puppet/util/suidmanager.rb +1 -2
  155. data/lib/puppet/util/symbolic_file_mode.rb +29 -17
  156. data/lib/puppet/util/tagging.rb +1 -0
  157. data/lib/puppet/util/windows/service.rb +0 -5
  158. data/lib/puppet/util/windows/sid.rb +3 -1
  159. data/lib/puppet/util/windows/user.rb +0 -2
  160. data/lib/puppet/util/windows.rb +3 -0
  161. data/lib/puppet/util.rb +4 -3
  162. data/lib/puppet/version.rb +1 -1
  163. data/lib/puppet.rb +5 -9
  164. data/locales/puppet.pot +408 -364
  165. data/man/man5/puppet.conf.5 +303 -275
  166. data/man/man8/puppet-agent.8 +4 -1
  167. data/man/man8/puppet-apply.8 +1 -1
  168. data/man/man8/puppet-catalog.8 +9 -9
  169. data/man/man8/puppet-config.8 +1 -1
  170. data/man/man8/puppet-describe.8 +1 -1
  171. data/man/man8/puppet-device.8 +1 -1
  172. data/man/man8/puppet-doc.8 +1 -1
  173. data/man/man8/puppet-epp.8 +1 -1
  174. data/man/man8/puppet-facts.8 +8 -8
  175. data/man/man8/puppet-filebucket.8 +1 -1
  176. data/man/man8/puppet-generate.8 +1 -1
  177. data/man/man8/puppet-help.8 +1 -1
  178. data/man/man8/puppet-key.8 +7 -7
  179. data/man/man8/puppet-lookup.8 +1 -1
  180. data/man/man8/puppet-man.8 +1 -1
  181. data/man/man8/puppet-module.8 +3 -3
  182. data/man/man8/puppet-node.8 +5 -5
  183. data/man/man8/puppet-parser.8 +1 -1
  184. data/man/man8/puppet-plugin.8 +1 -1
  185. data/man/man8/puppet-report.8 +5 -5
  186. data/man/man8/puppet-resource.8 +1 -1
  187. data/man/man8/puppet-script.8 +1 -1
  188. data/man/man8/puppet-ssl.8 +1 -1
  189. data/man/man8/puppet-status.8 +4 -4
  190. data/man/man8/puppet.8 +2 -2
  191. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +2 -1
  192. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +3 -0
  193. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +4 -0
  194. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +3 -0
  195. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +8 -0
  196. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +25 -0
  197. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +19 -0
  198. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +20 -0
  199. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +8 -0
  200. data/spec/fixtures/ssl/127.0.0.1-key.pem +107 -57
  201. data/spec/fixtures/ssl/127.0.0.1.pem +52 -31
  202. data/spec/fixtures/ssl/bad-basic-constraints.pem +57 -35
  203. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +57 -35
  204. data/spec/fixtures/ssl/ca.pem +57 -35
  205. data/spec/fixtures/ssl/crl.pem +28 -18
  206. data/spec/fixtures/ssl/ec-key.pem +11 -11
  207. data/spec/fixtures/ssl/ec.pem +33 -24
  208. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  209. data/spec/fixtures/ssl/encrypted-key.pem +108 -58
  210. data/spec/fixtures/ssl/intermediate-agent-crl.pem +28 -19
  211. data/spec/fixtures/ssl/intermediate-agent.pem +57 -36
  212. data/spec/fixtures/ssl/intermediate-crl.pem +31 -21
  213. data/spec/fixtures/ssl/intermediate.pem +57 -36
  214. data/spec/fixtures/ssl/oid-key.pem +117 -0
  215. data/spec/fixtures/ssl/oid.pem +69 -0
  216. data/spec/fixtures/ssl/pluto-key.pem +107 -57
  217. data/spec/fixtures/ssl/pluto.pem +52 -30
  218. data/spec/fixtures/ssl/request-key.pem +107 -57
  219. data/spec/fixtures/ssl/request.pem +47 -26
  220. data/spec/fixtures/ssl/revoked-key.pem +107 -57
  221. data/spec/fixtures/ssl/revoked.pem +52 -30
  222. data/spec/fixtures/ssl/signed-key.pem +107 -57
  223. data/spec/fixtures/ssl/signed.pem +52 -30
  224. data/spec/fixtures/ssl/tampered-cert.pem +52 -30
  225. data/spec/fixtures/ssl/tampered-csr.pem +47 -26
  226. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +5 -0
  227. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +107 -57
  228. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +50 -29
  229. data/spec/fixtures/ssl/unknown-ca-key.pem +107 -57
  230. data/spec/fixtures/ssl/unknown-ca.pem +55 -33
  231. data/spec/integration/application/agent_spec.rb +141 -37
  232. data/spec/integration/application/filebucket_spec.rb +16 -0
  233. data/spec/integration/application/module_spec.rb +21 -0
  234. data/spec/integration/application/resource_spec.rb +64 -0
  235. data/spec/integration/application/ssl_spec.rb +20 -0
  236. data/spec/integration/configurer_spec.rb +18 -2
  237. data/spec/integration/environments/settings_interpolation_spec.rb +0 -4
  238. data/spec/integration/indirector/facts/facter_spec.rb +93 -39
  239. data/spec/integration/l10n/compiler_spec.rb +37 -0
  240. data/spec/integration/parser/pcore_resource_spec.rb +10 -0
  241. data/spec/integration/transaction/report_spec.rb +1 -1
  242. data/spec/integration/type/exec_spec.rb +70 -45
  243. data/spec/integration/type/file_spec.rb +2 -2
  244. data/spec/integration/type/package_spec.rb +6 -6
  245. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  246. data/spec/integration/util/windows/process_spec.rb +1 -9
  247. data/spec/lib/puppet/test_ca.rb +7 -2
  248. data/spec/lib/puppet_spec/modules.rb +13 -2
  249. data/spec/lib/puppet_spec/puppetserver.rb +15 -0
  250. data/spec/lib/puppet_spec/settings.rb +1 -0
  251. data/spec/shared_behaviours/documentation_on_faces.rb +0 -2
  252. data/spec/shared_contexts/l10n.rb +27 -0
  253. data/spec/spec_helper.rb +1 -10
  254. data/spec/unit/application/agent_spec.rb +7 -2
  255. data/spec/unit/application/apply_spec.rb +76 -56
  256. data/spec/unit/application/resource_spec.rb +29 -0
  257. data/spec/unit/configurer/downloader_spec.rb +6 -0
  258. data/spec/unit/configurer_spec.rb +256 -57
  259. data/spec/unit/defaults_spec.rb +1 -0
  260. data/spec/unit/environments_spec.rb +184 -0
  261. data/spec/unit/facter_impl_spec.rb +31 -0
  262. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  263. data/spec/unit/file_serving/configuration/parser_spec.rb +23 -0
  264. data/spec/unit/file_serving/configuration_spec.rb +14 -4
  265. data/spec/unit/file_serving/fileset_spec.rb +60 -0
  266. data/spec/unit/file_serving/mount/scripts_spec.rb +69 -0
  267. data/spec/unit/file_system_spec.rb +13 -0
  268. data/spec/unit/functions/assert_type_spec.rb +1 -1
  269. data/spec/unit/functions/empty_spec.rb +10 -0
  270. data/spec/unit/functions/logging_spec.rb +1 -0
  271. data/spec/unit/functions/lookup_spec.rb +64 -0
  272. data/spec/unit/functions/unwrap_spec.rb +8 -0
  273. data/spec/unit/functions4_spec.rb +2 -2
  274. data/spec/unit/gettext/config_spec.rb +12 -0
  275. data/spec/unit/http/client_spec.rb +58 -1
  276. data/spec/unit/http/service/compiler_spec.rb +131 -0
  277. data/spec/unit/indirector/catalog/compiler_spec.rb +101 -10
  278. data/spec/unit/indirector/catalog/rest_spec.rb +8 -0
  279. data/spec/unit/indirector/indirection_spec.rb +10 -3
  280. data/spec/unit/indirector/resource/ral_spec.rb +40 -75
  281. data/spec/unit/interface/action_spec.rb +0 -9
  282. data/spec/unit/module_spec.rb +15 -1
  283. data/spec/unit/module_tool/applications/installer_spec.rb +51 -12
  284. data/spec/unit/network/authstore_spec.rb +0 -15
  285. data/spec/unit/network/formats_spec.rb +6 -0
  286. data/spec/unit/parser/functions/fqdn_rand_spec.rb +15 -1
  287. data/spec/unit/parser/templatewrapper_spec.rb +12 -2
  288. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -11
  289. data/spec/unit/pops/serialization/to_from_hr_spec.rb +58 -0
  290. data/spec/unit/pops/serialization/to_stringified_spec.rb +5 -0
  291. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +18 -0
  292. data/spec/unit/pops/types/p_sensitive_type_spec.rb +18 -0
  293. data/spec/unit/pops/types/type_calculator_spec.rb +6 -0
  294. data/spec/unit/provider/package/gem_spec.rb +1 -1
  295. data/spec/unit/provider/package/nim_spec.rb +42 -0
  296. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  297. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  298. data/spec/unit/provider/package/pip_spec.rb +38 -1
  299. data/spec/unit/provider/package/pkg_spec.rb +29 -4
  300. data/spec/unit/provider/package/puppet_gem_spec.rb +1 -1
  301. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  302. data/spec/unit/provider/parsedfile_spec.rb +10 -0
  303. data/spec/unit/provider/service/init_spec.rb +1 -0
  304. data/spec/unit/provider/service/launchd_spec.rb +11 -0
  305. data/spec/unit/provider/service/openwrt_spec.rb +3 -1
  306. data/spec/unit/provider/service/systemd_spec.rb +43 -9
  307. data/spec/unit/provider/service/windows_spec.rb +202 -0
  308. data/spec/unit/provider/user/aix_spec.rb +100 -0
  309. data/spec/unit/provider/user/directoryservice_spec.rb +68 -36
  310. data/spec/unit/provider/user/useradd_spec.rb +43 -2
  311. data/spec/unit/provider_spec.rb +4 -4
  312. data/spec/unit/puppet_spec.rb +12 -4
  313. data/spec/unit/resource/catalog_spec.rb +14 -1
  314. data/spec/unit/resource_spec.rb +58 -2
  315. data/spec/unit/settings_spec.rb +97 -56
  316. data/spec/unit/ssl/certificate_request_spec.rb +8 -14
  317. data/spec/unit/ssl/state_machine_spec.rb +19 -5
  318. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -2
  319. data/spec/unit/transaction_spec.rb +18 -20
  320. data/spec/unit/type/exec_spec.rb +76 -29
  321. data/spec/unit/type/file/selinux_spec.rb +3 -3
  322. data/spec/unit/type/file/source_spec.rb +4 -4
  323. data/spec/unit/type/service_spec.rb +86 -188
  324. data/spec/unit/type/tidy_spec.rb +24 -7
  325. data/spec/unit/type/user_spec.rb +45 -0
  326. data/spec/unit/type_spec.rb +2 -2
  327. data/spec/unit/util/logging_spec.rb +2 -0
  328. data/spec/unit/util/selinux_spec.rb +87 -16
  329. data/spec/unit/util/windows/sid_spec.rb +39 -4
  330. data/tasks/generate_cert_fixtures.rake +12 -3
  331. data/tasks/parallel.rake +3 -3
  332. metadata +49 -95
  333. data/ext/README.environment +0 -8
  334. data/ext/dbfix.sql +0 -132
  335. data/ext/debian/README.Debian +0 -8
  336. data/ext/debian/README.source +0 -2
  337. data/ext/debian/TODO.Debian +0 -1
  338. data/ext/debian/changelog.erb +0 -1122
  339. data/ext/debian/compat +0 -1
  340. data/ext/debian/control +0 -144
  341. data/ext/debian/copyright +0 -339
  342. data/ext/debian/docs +0 -1
  343. data/ext/debian/fileserver.conf +0 -41
  344. data/ext/debian/puppet-common.dirs +0 -13
  345. data/ext/debian/puppet-common.install +0 -3
  346. data/ext/debian/puppet-common.lintian-overrides +0 -5
  347. data/ext/debian/puppet-common.manpages +0 -28
  348. data/ext/debian/puppet-common.postinst +0 -35
  349. data/ext/debian/puppet-common.postrm +0 -33
  350. data/ext/debian/puppet-el.dirs +0 -1
  351. data/ext/debian/puppet-el.emacsen-install +0 -25
  352. data/ext/debian/puppet-el.emacsen-remove +0 -11
  353. data/ext/debian/puppet-el.emacsen-startup +0 -9
  354. data/ext/debian/puppet-el.install +0 -1
  355. data/ext/debian/puppet-testsuite.install +0 -2
  356. data/ext/debian/puppet-testsuite.lintian-overrides +0 -4
  357. data/ext/debian/puppet.lintian-overrides +0 -3
  358. data/ext/debian/puppet.logrotate +0 -20
  359. data/ext/debian/puppet.postinst +0 -20
  360. data/ext/debian/puppet.postrm +0 -20
  361. data/ext/debian/puppet.preinst +0 -20
  362. data/ext/debian/puppetmaster-common.install +0 -2
  363. data/ext/debian/puppetmaster-common.manpages +0 -2
  364. data/ext/debian/puppetmaster-common.postinst +0 -6
  365. data/ext/debian/puppetmaster-passenger.dirs +0 -4
  366. data/ext/debian/puppetmaster-passenger.postinst +0 -162
  367. data/ext/debian/puppetmaster-passenger.postrm +0 -61
  368. data/ext/debian/puppetmaster.README.debian +0 -17
  369. data/ext/debian/puppetmaster.default +0 -14
  370. data/ext/debian/puppetmaster.init +0 -137
  371. data/ext/debian/puppetmaster.lintian-overrides +0 -3
  372. data/ext/debian/puppetmaster.postinst +0 -20
  373. data/ext/debian/puppetmaster.postrm +0 -5
  374. data/ext/debian/puppetmaster.preinst +0 -22
  375. data/ext/debian/rules +0 -132
  376. data/ext/debian/source/format +0 -1
  377. data/ext/debian/source/options +0 -1
  378. data/ext/debian/vim-puppet.README.Debian +0 -13
  379. data/ext/debian/vim-puppet.dirs +0 -5
  380. data/ext/debian/vim-puppet.yaml +0 -7
  381. data/ext/debian/watch +0 -2
  382. data/ext/freebsd/puppetd +0 -26
  383. data/ext/freebsd/puppetmasterd +0 -26
  384. data/ext/gentoo/conf.d/puppet +0 -5
  385. data/ext/gentoo/conf.d/puppetmaster +0 -12
  386. data/ext/gentoo/init.d/puppet +0 -38
  387. data/ext/gentoo/init.d/puppetmaster +0 -51
  388. data/ext/gentoo/puppet/fileserver.conf +0 -41
  389. data/ext/ips/puppet-agent +0 -44
  390. data/ext/ips/puppet-master +0 -44
  391. data/ext/ips/puppet.p5m.erb +0 -12
  392. data/ext/ips/puppetagent.xml +0 -42
  393. data/ext/ips/puppetmaster.xml +0 -42
  394. data/ext/ips/rules +0 -19
  395. data/ext/ips/transforms +0 -34
  396. data/ext/ldap/puppet.schema +0 -24
  397. data/ext/logcheck/puppet +0 -23
  398. data/ext/osx/file_mapping.yaml +0 -33
  399. data/ext/osx/postflight.erb +0 -109
  400. data/ext/osx/preflight.erb +0 -52
  401. data/ext/osx/prototype.plist.erb +0 -38
  402. data/ext/redhat/fileserver.conf +0 -41
  403. data/ext/redhat/logrotate +0 -21
  404. data/ext/redhat/puppet.spec.erb +0 -842
  405. data/ext/redhat/server.init +0 -128
  406. data/ext/redhat/server.sysconfig +0 -13
  407. data/ext/solaris/pkginfo +0 -6
  408. data/ext/solaris/smf/puppetd.xml +0 -77
  409. data/ext/solaris/smf/puppetmasterd.xml +0 -77
  410. data/ext/solaris/smf/svc-puppetd +0 -71
  411. data/ext/solaris/smf/svc-puppetmasterd +0 -67
  412. data/ext/suse/puppet.spec +0 -310
  413. data/ext/suse/server.init +0 -173
  414. data/ext/yaml_nodes.rb +0 -105
  415. data/spec/unit/indirector/store_configs_spec.rb +0 -7
@@ -36,7 +36,7 @@ module PuppetSpec::Modules
36
36
  end
37
37
  end
38
38
 
39
- if plans = options[:plans]
39
+ if (plans = options[:plans])
40
40
  plans_dir = File.join(module_dir, 'plans')
41
41
  FileUtils.mkdir_p(plans_dir)
42
42
  plans.each do |plan_file|
@@ -48,6 +48,17 @@ module PuppetSpec::Modules
48
48
  end
49
49
  end
50
50
 
51
+ if (scripts = options[:scripts])
52
+ scripts_dir = File.join(module_dir, 'scripts')
53
+ FileUtils.mkdir_p(scripts_dir)
54
+ scripts.each do |script_file|
55
+ if script_file.is_a?(String)
56
+ script_file = { :name => script_file, :content => "" }
57
+ end
58
+ File.write(File.join(scripts_dir, script_file[:name]), script_file[:content])
59
+ end
60
+ end
61
+
51
62
  (options[:files] || {}).each do |fname, content|
52
63
  path = File.join(module_dir, fname)
53
64
  FileUtils.mkdir_p(File.dirname(path))
@@ -61,7 +72,7 @@ module PuppetSpec::Modules
61
72
  module_dir = File.join(dir, name)
62
73
  FileUtils.mkdir_p(module_dir)
63
74
 
64
- if metadata = options[:metadata]
75
+ if (metadata = options[:metadata])
65
76
  File.open(File.join(module_dir, 'metadata.json'), 'w') do |f|
66
77
  f.write(metadata.to_json)
67
78
  end
@@ -31,6 +31,19 @@ class PuppetSpec::Puppetserver
31
31
  end
32
32
  end
33
33
 
34
+ class FileMetadataServlet < WEBrick::HTTPServlet::AbstractServlet
35
+ def do_GET request, response
36
+ response['Content-Type'] = 'application/json'
37
+ response.body = "{\"path\":\"/etc/puppetlabs/code/environments/production/modules\",\"relative_path\":\".\",\"links\":\"follow\",\"owner\":0,\"group\":0,\"mode\":493,\"checksum\":{\"type\":\"ctime\",\"value\":\"{ctime}2020-03-06 20:14:25 UTC\"},\"type\":\"directory\",\"destination\":null}"
38
+ end
39
+ end
40
+
41
+ class FileContentServlet < WEBrick::HTTPServlet::AbstractServlet
42
+ def do_GET request, response
43
+ response.status = 404
44
+ end
45
+ end
46
+
34
47
  class ReportServlet < WEBrick::HTTPServlet::AbstractServlet
35
48
  def do_PUT request, response
36
49
  response['Content-Type'] = 'application/json'
@@ -106,7 +119,9 @@ class PuppetSpec::Puppetserver
106
119
  register_mount('/status/v1/simple/master', proc { |req, res| }, nil)
107
120
  register_mount('/puppet/v3/node', mounts[:node], NodeServlet)
108
121
  register_mount('/puppet/v3/catalog', mounts[:catalog], CatalogServlet)
122
+ register_mount('/puppet/v3/file_metadata', mounts[:file_metadata], FileMetadataServlet)
109
123
  register_mount('/puppet/v3/file_metadatas', mounts[:file_metadatas], FileMetadatasServlet)
124
+ register_mount('/puppet/v3/file_content', mounts[:file_content], FileContentServlet)
110
125
  register_mount('/puppet/v3/static_file_content', mounts[:static_file_content], StaticFileContentServlet)
111
126
  register_mount('/puppet/v3/report', mounts[:report], ReportServlet)
112
127
  register_mount('/puppet/v3/file_bucket_file', mounts[:filebucket], FilebucketServlet)
@@ -20,6 +20,7 @@ module PuppetSpec::Settings
20
20
  end.freeze
21
21
 
22
22
  def set_puppet_conf(confdir, settings)
23
+ FileUtils.mkdir_p(confdir)
23
24
  write_file(File.join(confdir, "puppet.conf"), settings)
24
25
  end
25
26
 
@@ -176,8 +176,6 @@ shared_examples_for "documentation on faces" do
176
176
  subject.license = "foo"
177
177
  expect(subject.license).to eq("foo")
178
178
  end
179
-
180
- it "should accept symbols to specify existing licenses..."
181
179
  end
182
180
 
183
181
  describe "#copyright" do
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.shared_context('l10n') do |locale|
4
+ before :all do
5
+ @old_locale = Locale.current
6
+ Locale.current = locale
7
+ Puppet::GettextConfig.setup_locale
8
+
9
+ # overwrite stubs with real implementation
10
+ ::Object.send(:remove_method, :_)
11
+ ::Object.send(:remove_method, :n_)
12
+ class ::Object
13
+ include FastGettext::Translation
14
+ end
15
+ end
16
+
17
+ after :all do
18
+ Locale.current = @old_locale
19
+
20
+ # restore stubs
21
+ load File.expand_path(File.join(__dir__, '../../lib/puppet/gettext/stubs.rb'))
22
+ end
23
+
24
+ before :each do
25
+ Puppet[:disable_i18n] = false
26
+ end
27
+ end
data/spec/spec_helper.rb CHANGED
@@ -68,16 +68,7 @@ VCR.turn_off!
68
68
  RSpec.configure do |config|
69
69
  include PuppetSpec::Fixtures
70
70
 
71
- # Examples or groups can selectively tag themselves as broken.
72
- # For example;
73
- #
74
- # rbv = "#{RUBY_VERSION}-p#{RbConfig::CONFIG['PATCHLEVEL']}"
75
- # describe "mostly working", :broken => false unless rbv == "1.9.3-p327" do
76
- # it "parses a valid IP" do
77
- # IPAddr.new("::2:3:4:5:6:7:8")
78
- # end
79
- # end
80
- exclude_filters = {:broken => true}
71
+ exclude_filters = {}
81
72
  exclude_filters[:benchmark] = true unless ENV['BENCHMARK']
82
73
  config.filter_run_excluding exclude_filters
83
74
 
@@ -546,11 +546,16 @@ describe Puppet::Application::Agent do
546
546
  @puppetd.options[:digest] = :MD5
547
547
  end
548
548
 
549
+ def expected_fingerprint(name, x509)
550
+ digest = OpenSSL::Digest.new(name).hexdigest(x509.to_der)
551
+ digest.scan(/../).join(':').upcase
552
+ end
553
+
549
554
  it "should fingerprint the certificate if it exists" do
550
555
  cert = cert_fixture('signed.pem')
551
556
  allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_return(cert)
552
557
 
553
- expect(@puppetd).to receive(:puts).with('(MD5) E2:BA:9A:EF:20:A8:7D:10:8D:82:9A:61:5D:FD:5B:33')
558
+ expect(@puppetd).to receive(:puts).with("(MD5) #{expected_fingerprint('md5', cert)}")
554
559
 
555
560
  @puppetd.fingerprint
556
561
  end
@@ -560,7 +565,7 @@ describe Puppet::Application::Agent do
560
565
  allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_client_cert).and_return(nil)
561
566
  allow_any_instance_of(Puppet::X509::CertProvider).to receive(:load_request).and_return(request)
562
567
 
563
- expect(@puppetd).to receive(:puts).with('(MD5) B8:4C:FB:31:AE:17:86:E3:AD:53:97:CA:F6:3C:4A:CB')
568
+ expect(@puppetd).to receive(:puts).with("(MD5) #{expected_fingerprint('md5', request)}")
564
569
 
565
570
  @puppetd.fingerprint
566
571
  end
@@ -10,21 +10,22 @@ describe Puppet::Application::Apply do
10
10
 
11
11
  before :each do
12
12
  @apply = Puppet::Application[:apply]
13
- allow(Puppet::Util::Log).to receive(:newdestination)
14
13
  Puppet[:reports] = "none"
15
14
  end
16
15
 
17
- [:debug,:loadclasses,:test,:verbose,:use_nodes,:detailed_exitcodes,:catalog, :write_catalog_summary].each do |option|
18
- it "should declare handle_#{option} method" do
19
- expect(@apply).to respond_to("handle_#{option}".to_sym)
20
- end
21
-
16
+ [:debug,:loadclasses,:test,:verbose,:use_nodes,:detailed_exitcodes,:catalog].each do |option|
22
17
  it "should store argument value when calling handle_#{option}" do
23
18
  expect(@apply.options).to receive(:[]=).with(option, 'arg')
24
19
  @apply.send("handle_#{option}".to_sym, 'arg')
25
20
  end
26
21
  end
27
22
 
23
+ it "should handle write_catalog_summary" do
24
+ @apply.send(:handle_write_catalog_summary, true)
25
+
26
+ expect(Puppet[:write_catalog_summary]).to eq(true)
27
+ end
28
+
28
29
  it "should set the code to the provided code when :execute is used" do
29
30
  expect(@apply.options).to receive(:[]=).with(:code, 'arg')
30
31
  @apply.send("handle_execute".to_sym, 'arg')
@@ -53,23 +54,18 @@ describe Puppet::Application::Apply do
53
54
  end
54
55
 
55
56
  describe "with --test" do
56
- it "should call setup_test" do
57
- @apply.options[:test] = true
58
- expect(@apply).to receive(:setup_test)
59
-
60
- @apply.setup
61
- end
62
-
63
57
  it "should set options[:verbose] to true" do
64
58
  @apply.setup_test
65
59
 
66
60
  expect(@apply.options[:verbose]).to eq(true)
67
61
  end
62
+
68
63
  it "should set options[:show_diff] to true" do
69
64
  Puppet.settings.override_default(:show_diff, false)
70
65
  @apply.setup_test
71
66
  expect(Puppet[:show_diff]).to eq(true)
72
67
  end
68
+
73
69
  it "should set options[:detailed_exitcodes] to true" do
74
70
  @apply.setup_test
75
71
 
@@ -155,7 +151,7 @@ describe Puppet::Application::Apply do
155
151
  end
156
152
 
157
153
  describe "when executing" do
158
- it "should dispatch to 'apply' if it was called with 'apply'" do
154
+ it "should dispatch to 'apply' if it was called with a catalog" do
159
155
  @apply.options[:catalog] = "foo"
160
156
 
161
157
  expect(@apply).to receive(:apply)
@@ -213,47 +209,52 @@ describe Puppet::Application::Apply do
213
209
  @apply.options[:code] = "code to run"
214
210
  expect(Puppet).to receive(:[]=).with(:code,"code to run")
215
211
 
216
- expect { @apply.main }.to exit_with 0
212
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
217
213
  end
218
214
 
219
215
  it "should set the code to run from STDIN if no arguments" do
220
- allow(@apply.command_line).to receive(:args).and_return([])
216
+ @apply.command_line.args = []
221
217
  allow(STDIN).to receive(:read).and_return("code to run")
222
218
 
223
219
  expect(Puppet).to receive(:[]=).with(:code,"code to run")
224
220
 
225
- expect { @apply.main }.to exit_with 0
221
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
226
222
  end
227
223
 
228
224
  it "should raise an error if a file is passed on command line and the file does not exist" do
229
225
  noexist = tmpfile('noexist.pp')
230
- allow(@apply.command_line).to receive(:args).and_return([noexist])
231
- expect { @apply.main }.to raise_error(RuntimeError, "Could not find file #{noexist}")
226
+ @apply.command_line.args << noexist
227
+ expect {
228
+ @apply.run
229
+ }.to exit_with(1)
230
+ .and output(anything).to_stdout
231
+ .and output(/Could not find file #{noexist}/).to_stderr
232
232
  end
233
233
 
234
234
  it "should set the manifest to the first file and warn other files will be skipped" do
235
235
  manifest = tmpfile('starwarsIV')
236
236
  FileUtils.touch(manifest)
237
237
 
238
- allow(@apply.command_line).to receive(:args).and_return([manifest, 'starwarsI', 'starwarsII'])
239
-
240
- expect { @apply.main }.to exit_with 0
241
-
242
- msg = @logs.find {|m| m.message =~ /Only one file can be applied per run/ }
243
- expect(msg.message).to eq('Only one file can be applied per run. Skipping starwarsI, starwarsII')
244
- expect(msg.level).to eq(:warning)
238
+ @apply.command_line.args << manifest << 'starwarsI' << 'starwarsII'
239
+ expect {
240
+ @apply.run
241
+ }.to exit_with(0)
242
+ .and output(anything).to_stdout
243
+ .and output(/Warning: Only one file can be applied per run. Skipping starwarsI, starwarsII/).to_stderr
245
244
  end
246
245
 
247
246
  it "should splay" do
248
247
  expect(@apply).to receive(:splay)
249
248
 
250
- expect { @apply.main }.to exit_with 0
249
+ expect {
250
+ @apply.run
251
+ }.to exit_with(0).and output(anything).to_stdout
251
252
  end
252
253
 
253
- it "should raise an error if we can't find the node" do
254
+ it "should exit with 1 if we can't find the node" do
254
255
  expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
255
256
 
256
- expect { @apply.main }.to raise_error(RuntimeError, /Could not find node/)
257
+ expect { @apply.run }.to exit_with(1).and output(/Could not find node/).to_stderr
257
258
  end
258
259
 
259
260
  it "should load custom classes if loadclasses" do
@@ -264,18 +265,18 @@ describe Puppet::Application::Apply do
264
265
 
265
266
  expect(@node).to receive(:classes=).with(['class'])
266
267
 
267
- expect { @apply.main }.to exit_with 0
268
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
268
269
  end
269
270
 
270
271
  it "should compile the catalog" do
271
272
  expect(Puppet::Resource::Catalog.indirection).to receive(:find).and_return(@catalog)
272
273
 
273
- expect { @apply.main }.to exit_with 0
274
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
274
275
  end
275
276
 
276
277
  it 'should called the DeferredResolver to resolve any Deferred values' do
277
278
  expect(Puppet::Pops::Evaluator::DeferredResolver).to receive(:resolve_and_replace).with(any_args)
278
- expect { @apply.main }.to exit_with 0
279
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
279
280
  end
280
281
 
281
282
  it 'should make the Puppet::Pops::Loaders available when applying the compiled catalog' do
@@ -285,47 +286,67 @@ describe Puppet::Application::Apply do
285
286
  fail('Loaders not found') unless Puppet.lookup(:loaders) { nil }.is_a?(Puppet::Pops::Loaders)
286
287
  true
287
288
  end.and_return(0)
288
- expect { @apply.main }.to exit_with 0
289
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
289
290
  end
290
291
 
291
292
  it "should transform the catalog to ral" do
292
293
  expect(@catalog).to receive(:to_ral).and_return(@catalog)
293
294
 
294
- expect { @apply.main }.to exit_with 0
295
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
295
296
  end
296
297
 
297
298
  it "should finalize the catalog" do
298
299
  expect(@catalog).to receive(:finalize)
299
300
 
300
- expect { @apply.main }.to exit_with 0
301
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
301
302
  end
302
303
 
303
304
  it "should not save the classes or resource file by default" do
304
305
  expect(@catalog).not_to receive(:write_class_file)
305
306
  expect(@catalog).not_to receive(:write_resource_file)
306
- expect { @apply.main }.to exit_with 0
307
+
308
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
307
309
  end
308
310
 
309
- it "should save the classes and resources files when requested" do
310
- @apply.options[:write_catalog_summary] = true
311
+ it "should save the classes and resources files when requested on the command line using dashes" do
312
+ expect(@catalog).to receive(:write_class_file).once
313
+ expect(@catalog).to receive(:write_resource_file).once
314
+
315
+ # dashes are parsed by the application's OptionParser
316
+ @apply.command_line.args = ['--write-catalog-summary']
317
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
318
+ end
319
+
320
+ it "should save the classes and resources files when requested on the command line using underscores" do
321
+ expect(@catalog).to receive(:write_class_file).once
322
+ expect(@catalog).to receive(:write_resource_file).once
323
+
324
+ # underscores are parsed by the settings PuppetOptionParser
325
+ @apply.command_line.args = ['--write_catalog_summary']
326
+ Puppet.initialize_settings(['--write_catalog_summary'])
327
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
328
+ end
329
+
330
+ it "should save the classes and resources files when specified as a setting" do
331
+ Puppet[:write_catalog_summary] = true
311
332
 
312
333
  expect(@catalog).to receive(:write_class_file).once
313
334
  expect(@catalog).to receive(:write_resource_file).once
314
335
 
315
- expect { @apply.main }.to exit_with 0
336
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
316
337
  end
317
338
 
318
339
  it "should call the prerun and postrun commands on a Configurer instance" do
319
340
  expect_any_instance_of(Puppet::Configurer).to receive(:execute_prerun_command).and_return(true)
320
341
  expect_any_instance_of(Puppet::Configurer).to receive(:execute_postrun_command).and_return(true)
321
342
 
322
- expect { @apply.main }.to exit_with 0
343
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
323
344
  end
324
345
 
325
346
  it "should apply the catalog" do
326
347
  expect(@catalog).to receive(:apply).and_return(double('transaction'))
327
348
 
328
- expect { @apply.main }.to exit_with 0
349
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
329
350
  end
330
351
 
331
352
  it "should save the last run summary" do
@@ -334,7 +355,7 @@ describe Puppet::Application::Apply do
334
355
  allow(Puppet::Transaction::Report).to receive(:new).and_return(report)
335
356
 
336
357
  expect_any_instance_of(Puppet::Configurer).to receive(:save_last_run_summary).with(report)
337
- expect { @apply.main }.to exit_with 0
358
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
338
359
  end
339
360
 
340
361
  describe "when using node_name_fact" do
@@ -347,27 +368,27 @@ describe Puppet::Application::Apply do
347
368
  end
348
369
 
349
370
  it "should set the facts name based on the node_name_fact" do
350
- expect { @apply.main }.to exit_with 0
371
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
351
372
  expect(@facts.name).to eq('other_node_name')
352
373
  end
353
374
 
354
375
  it "should set the node_name_value based on the node_name_fact" do
355
- expect { @apply.main }.to exit_with 0
376
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
356
377
  expect(Puppet[:node_name_value]).to eq('other_node_name')
357
378
  end
358
379
 
359
380
  it "should merge in our node the loaded facts" do
360
381
  @facts.values.merge!('key' => 'value')
361
382
 
362
- expect { @apply.main }.to exit_with 0
383
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
363
384
 
364
385
  expect(@node.parameters['key']).to eq('value')
365
386
  end
366
387
 
367
- it "should raise an error if we can't find the facts" do
388
+ it "should exit if we can't find the facts" do
368
389
  expect(Puppet::Node::Facts.indirection).to receive(:find).and_return(nil)
369
390
 
370
- expect { @apply.main }.to raise_error(RuntimeError, /Could not find facts/)
391
+ expect { @apply.run }.to exit_with(1).and output(/Could not find facts/).to_stderr
371
392
  end
372
393
  end
373
394
 
@@ -380,14 +401,14 @@ describe Puppet::Application::Apply do
380
401
  Puppet[:noop] = false
381
402
  allow_any_instance_of(Puppet::Transaction::Report).to receive(:exit_status).and_return(666)
382
403
 
383
- expect { @apply.main }.to exit_with 666
404
+ expect { @apply.run }.to exit_with(666).and output(anything).to_stdout
384
405
  end
385
406
 
386
407
  it "should exit with report's computed exit status, even if --noop is set" do
387
408
  Puppet[:noop] = true
388
409
  allow_any_instance_of(Puppet::Transaction::Report).to receive(:exit_status).and_return(666)
389
410
 
390
- expect { @apply.main }.to exit_with 666
411
+ expect { @apply.run }.to exit_with(666).and output(anything).to_stdout
391
412
  end
392
413
 
393
414
  it "should always exit with 0 if option is disabled" do
@@ -395,7 +416,7 @@ describe Puppet::Application::Apply do
395
416
  report = double('report', :exit_status => 666)
396
417
  allow(@transaction).to receive(:report).and_return(report)
397
418
 
398
- expect { @apply.main }.to exit_with 0
419
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
399
420
  end
400
421
 
401
422
  it "should always exit with 0 if --noop" do
@@ -403,7 +424,7 @@ describe Puppet::Application::Apply do
403
424
  report = double('report', :exit_status => 666)
404
425
  allow(@transaction).to receive(:report).and_return(report)
405
426
 
406
- expect { @apply.main }.to exit_with 0
427
+ expect { @apply.run }.to exit_with(0).and output(anything).to_stdout
407
428
  end
408
429
  end
409
430
  end
@@ -503,16 +524,15 @@ describe Puppet::Application::Apply do
503
524
  }
504
525
  CODE
505
526
 
506
- @apply.options[:write_catalog_summary] = true
507
-
527
+ Puppet.settings[:write_catalog_summary] = true
508
528
  Puppet.settings[:resourcefile] = resourcefile
509
529
  Puppet.settings[:classfile] = classfile
510
530
 
511
531
  #We don't actually need the resource to do anything, we are using it's properties in other parts of the workflow.
512
- allow(Puppet::Util::Execution).to receive(:execute)
513
-
514
- expect { @apply.main }.to exit_with 0
532
+ allow_any_instance_of(Puppet::Type.type(:exec).defaultprovider).to receive(:which).and_return('cat')
533
+ allow(Puppet::Util::Execution).to receive(:execute).and_return(double(exitstatus: 0, output: ''))
515
534
 
535
+ expect { @apply.run }.to exit_with(0).and output(%r{Exec\[do it\]/returns: executed successfully}).to_stdout
516
536
  result = File.read(resourcefile)
517
537
 
518
538
  expect(result).not_to match(/secret_file_name/)
@@ -129,6 +129,35 @@ describe Puppet::Application::Resource do
129
129
  end
130
130
 
131
131
  describe "when printing output" do
132
+ it "should not emit puppet class tags when printing yaml" do
133
+ Puppet::Type.newtype(:stringify) do
134
+ ensurable
135
+ newparam(:name, isnamevar: true)
136
+ newproperty(:string)
137
+ end
138
+
139
+ Puppet::Type.type(:stringify).provide(:stringify) do
140
+ def exists?
141
+ true
142
+ end
143
+
144
+ def string
145
+ Puppet::Util::Execution::ProcessOutput.new('test', 0)
146
+ end
147
+ end
148
+
149
+ @resource_app.options[:to_yaml] = true
150
+ allow(@resource_app.command_line).to receive(:args).and_return(['stringify', 'hello', 'ensure=present', 'string=asd'])
151
+ expect(@resource_app).to receive(:puts).with(<<~YAML)
152
+ ---
153
+ stringify:
154
+ hello:
155
+ ensure: present
156
+ string: test
157
+ YAML
158
+ expect { @resource_app.main }.not_to raise_error
159
+ end
160
+
132
161
  it "should ensure all values to be printed are in the external encoding" do
133
162
  resources = [
134
163
  Puppet::Type.type(:user).new(:name => "\u2603".force_encoding(Encoding::UTF_8)).to_resource,
@@ -81,6 +81,12 @@ describe Puppet::Configurer::Downloader do
81
81
  expect(file[:source_permissions]).to eq(:ignore)
82
82
  end
83
83
 
84
+ it "should ignore the max file limit" do
85
+ file = generate_file_resource
86
+
87
+ expect(file[:max_files]).to eq(-1)
88
+ end
89
+
84
90
  describe "on POSIX", :if => Puppet.features.posix? do
85
91
  it "should allow source_permissions to be overridden" do
86
92
  file = generate_file_resource(:source_permissions => :use)