puppet 5.5.16-x86-mingw32 → 5.5.21-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 (359) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +10 -10
  3. data/Gemfile +2 -3
  4. data/Gemfile.lock +57 -52
  5. data/ext/build_defaults.yaml +1 -0
  6. data/ext/cert_inspector +3 -3
  7. data/ext/project_data.yaml +2 -2
  8. data/ext/puppet-test +2 -2
  9. data/ext/regexp_nodes/regexp_nodes.rb +4 -4
  10. data/ext/windows/service/daemon.rb +54 -8
  11. data/install.rb +6 -24
  12. data/lib/puppet.rb +5 -2
  13. data/lib/puppet/agent.rb +5 -13
  14. data/lib/puppet/application.rb +1 -1
  15. data/lib/puppet/application/agent.rb +15 -1
  16. data/lib/puppet/application/apply.rb +2 -2
  17. data/lib/puppet/application/describe.rb +3 -9
  18. data/lib/puppet/application/device.rb +4 -4
  19. data/lib/puppet/application/doc.rb +1 -1
  20. data/lib/puppet/application/filebucket.rb +13 -0
  21. data/lib/puppet/application/lookup.rb +1 -1
  22. data/lib/puppet/application/resource.rb +4 -4
  23. data/lib/puppet/application/script.rb +2 -2
  24. data/lib/puppet/configurer.rb +86 -28
  25. data/lib/puppet/configurer/downloader.rb +2 -6
  26. data/lib/puppet/daemon.rb +1 -1
  27. data/lib/puppet/defaults.rb +82 -38
  28. data/lib/puppet/error.rb +9 -1
  29. data/lib/puppet/external/nagios/base.rb +1 -1
  30. data/lib/puppet/face/ca.rb +1 -1
  31. data/lib/puppet/face/config.rb +10 -48
  32. data/lib/puppet/face/facts.rb +1 -1
  33. data/lib/puppet/face/module/list.rb +5 -5
  34. data/lib/puppet/face/module/search.rb +1 -1
  35. data/lib/puppet/face/module/uninstall.rb +1 -1
  36. data/lib/puppet/face/module/upgrade.rb +1 -1
  37. data/lib/puppet/face/plugin.rb +9 -2
  38. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  39. data/lib/puppet/file_system.rb +0 -8
  40. data/lib/puppet/file_system/memory_file.rb +1 -1
  41. data/lib/puppet/file_system/posix.rb +3 -2
  42. data/lib/puppet/file_system/uniquefile.rb +4 -0
  43. data/lib/puppet/forge.rb +3 -3
  44. data/lib/puppet/functions/epp.rb +4 -4
  45. data/lib/puppet/functions/inline_epp.rb +5 -5
  46. data/lib/puppet/functions/reduce.rb +2 -4
  47. data/lib/puppet/gettext/module_translations.rb +1 -1
  48. data/lib/puppet/graph/rb_tree_map.rb +2 -2
  49. data/lib/puppet/graph/simple_graph.rb +6 -5
  50. data/lib/puppet/indirector/catalog/compiler.rb +8 -0
  51. data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
  52. data/lib/puppet/indirector/hiera.rb +2 -0
  53. data/lib/puppet/indirector/resource/ral.rb +1 -3
  54. data/lib/puppet/indirector/resource/validator.rb +1 -1
  55. data/lib/puppet/interface.rb +2 -1
  56. data/lib/puppet/loaders.rb +0 -1
  57. data/lib/puppet/metatype/manager.rb +1 -1
  58. data/lib/puppet/module.rb +1 -1
  59. data/lib/puppet/module_tool/applications/builder.rb +1 -1
  60. data/lib/puppet/module_tool/applications/installer.rb +1 -1
  61. data/lib/puppet/module_tool/applications/uninstaller.rb +3 -3
  62. data/lib/puppet/module_tool/metadata.rb +1 -1
  63. data/lib/puppet/module_tool/shared_behaviors.rb +4 -4
  64. data/lib/puppet/module_tool/tar/mini.rb +12 -2
  65. data/lib/puppet/network/http/api/indirected_routes.rb +13 -12
  66. data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
  67. data/lib/puppet/network/http/connection.rb +14 -12
  68. data/lib/puppet/network/http/factory.rb +1 -11
  69. data/lib/puppet/network/http/pool.rb +7 -1
  70. data/lib/puppet/network/http/rack/rest.rb +2 -2
  71. data/lib/puppet/network/http/site.rb +1 -1
  72. data/lib/puppet/network/resolver.rb +2 -2
  73. data/lib/puppet/node/environment.rb +4 -2
  74. data/lib/puppet/parameter.rb +8 -0
  75. data/lib/puppet/parser/ast.rb +1 -1
  76. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  77. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
  78. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
  79. data/lib/puppet/parser/environment_compiler.rb +3 -0
  80. data/lib/puppet/parser/functions.rb +1 -1
  81. data/lib/puppet/parser/functions/epp.rb +3 -3
  82. data/lib/puppet/parser/functions/inline_epp.rb +5 -5
  83. data/lib/puppet/parser/resource.rb +3 -2
  84. data/lib/puppet/parser/resource/param.rb +6 -0
  85. data/lib/puppet/pops/evaluator/access_operator.rb +2 -2
  86. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
  87. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
  88. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
  89. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
  90. data/lib/puppet/pops/evaluator/runtime3_support.rb +4 -4
  91. data/lib/puppet/pops/issues.rb +5 -0
  92. data/lib/puppet/pops/loaders.rb +1 -1
  93. data/lib/puppet/pops/lookup/hiera_config.rb +1 -0
  94. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  95. data/lib/puppet/pops/merge_strategy.rb +22 -18
  96. data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
  97. data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
  98. data/lib/puppet/pops/parser/locator.rb +1 -1
  99. data/lib/puppet/pops/parser/pn_parser.rb +17 -16
  100. data/lib/puppet/pops/puppet_stack.rb +51 -48
  101. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
  102. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  103. data/lib/puppet/pops/types/string_converter.rb +10 -10
  104. data/lib/puppet/pops/types/type_calculator.rb +24 -0
  105. data/lib/puppet/pops/types/types.rb +3 -3
  106. data/lib/puppet/pops/validation/checker4_0.rb +10 -0
  107. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  108. data/lib/puppet/property.rb +1 -1
  109. data/lib/puppet/property/ensure.rb +1 -1
  110. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  111. data/lib/puppet/provider/cron/crontab.rb +1 -1
  112. data/lib/puppet/provider/exec.rb +6 -2
  113. data/lib/puppet/provider/file/posix.rb +5 -0
  114. data/lib/puppet/provider/group/groupadd.rb +19 -19
  115. data/lib/puppet/provider/group/windows_adsi.rb +3 -3
  116. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  117. data/lib/puppet/provider/mount.rb +1 -1
  118. data/lib/puppet/provider/mount/parsed.rb +8 -8
  119. data/lib/puppet/provider/nameservice.rb +10 -3
  120. data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
  121. data/lib/puppet/provider/nameservice/pw.rb +2 -2
  122. data/lib/puppet/provider/package/aix.rb +17 -2
  123. data/lib/puppet/provider/package/apt.rb +14 -3
  124. data/lib/puppet/provider/package/dnf.rb +1 -1
  125. data/lib/puppet/provider/package/dnfmodule.rb +141 -0
  126. data/lib/puppet/provider/package/dpkg.rb +16 -18
  127. data/lib/puppet/provider/package/fink.rb +20 -3
  128. data/lib/puppet/provider/package/openbsd.rb +14 -2
  129. data/lib/puppet/provider/package/pip.rb +37 -10
  130. data/lib/puppet/provider/package/pkg.rb +18 -5
  131. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  132. data/lib/puppet/provider/package/pkgng.rb +16 -4
  133. data/lib/puppet/provider/package/portage.rb +4 -4
  134. data/lib/puppet/provider/package/rpm.rb +57 -19
  135. data/lib/puppet/provider/package/windows/package.rb +1 -1
  136. data/lib/puppet/provider/package/yum.rb +35 -24
  137. data/lib/puppet/provider/package/zypper.rb +1 -0
  138. data/lib/puppet/provider/package_targetable.rb +5 -4
  139. data/lib/puppet/provider/parsedfile.rb +1 -1
  140. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +3 -3
  141. data/lib/puppet/provider/selmodule/semodule.rb +43 -26
  142. data/lib/puppet/provider/service/daemontools.rb +9 -9
  143. data/lib/puppet/provider/service/launchd.rb +20 -5
  144. data/lib/puppet/provider/service/openbsd.rb +1 -1
  145. data/lib/puppet/provider/service/rcng.rb +2 -2
  146. data/lib/puppet/provider/service/runit.rb +2 -8
  147. data/lib/puppet/provider/service/systemd.rb +35 -22
  148. data/lib/puppet/provider/service/windows.rb +8 -0
  149. data/lib/puppet/provider/user/directoryservice.rb +31 -6
  150. data/lib/puppet/provider/user/hpux.rb +1 -1
  151. data/lib/puppet/provider/user/pw.rb +12 -3
  152. data/lib/puppet/provider/user/user_role_add.rb +5 -1
  153. data/lib/puppet/provider/user/useradd.rb +62 -27
  154. data/lib/puppet/provider/user/windows_adsi.rb +4 -5
  155. data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
  156. data/lib/puppet/reference/indirection.rb +2 -2
  157. data/lib/puppet/reference/metaparameter.rb +1 -3
  158. data/lib/puppet/reference/providers.rb +1 -1
  159. data/lib/puppet/reference/type.rb +3 -9
  160. data/lib/puppet/reports.rb +1 -1
  161. data/lib/puppet/resource.rb +18 -1
  162. data/lib/puppet/resource/catalog.rb +1 -1
  163. data/lib/puppet/resource/type.rb +8 -0
  164. data/lib/puppet/settings.rb +43 -3
  165. data/lib/puppet/settings/environment_conf.rb +1 -0
  166. data/lib/puppet/ssl/certificate.rb +2 -1
  167. data/lib/puppet/ssl/certificate_authority.rb +6 -5
  168. data/lib/puppet/ssl/certificate_authority/interface.rb +1 -1
  169. data/lib/puppet/ssl/certificate_factory.rb +2 -2
  170. data/lib/puppet/ssl/host.rb +3 -3
  171. data/lib/puppet/ssl/oids.rb +1 -1
  172. data/lib/puppet/test/test_helper.rb +15 -10
  173. data/lib/puppet/transaction/report.rb +1 -1
  174. data/lib/puppet/transaction/resource_harness.rb +1 -1
  175. data/lib/puppet/type.rb +15 -4
  176. data/lib/puppet/type/cron.rb +1 -1
  177. data/lib/puppet/type/exec.rb +21 -9
  178. data/lib/puppet/type/file.rb +14 -2
  179. data/lib/puppet/type/file/data_sync.rb +5 -1
  180. data/lib/puppet/type/group.rb +4 -2
  181. data/lib/puppet/type/interface.rb +1 -1
  182. data/lib/puppet/type/notify.rb +3 -2
  183. data/lib/puppet/type/package.rb +107 -8
  184. data/lib/puppet/type/schedule.rb +1 -1
  185. data/lib/puppet/type/selboolean.rb +17 -3
  186. data/lib/puppet/type/service.rb +9 -10
  187. data/lib/puppet/type/user.rb +6 -24
  188. data/lib/puppet/type/yumrepo.rb +3 -7
  189. data/lib/puppet/util.rb +47 -25
  190. data/lib/puppet/util/command_line/trollop.rb +1 -1
  191. data/lib/puppet/util/execution.rb +4 -3
  192. data/lib/puppet/util/http_proxy.rb +24 -16
  193. data/lib/puppet/util/instance_loader.rb +1 -1
  194. data/lib/puppet/util/log.rb +1 -1
  195. data/lib/puppet/util/log/destinations.rb +3 -12
  196. data/lib/puppet/util/logging.rb +30 -18
  197. data/lib/puppet/util/metric.rb +2 -2
  198. data/lib/puppet/util/monkey_patches.rb +1 -1
  199. data/lib/puppet/util/nagios_maker.rb +2 -2
  200. data/lib/puppet/util/network_device/cisco/device.rb +1 -1
  201. data/lib/puppet/util/network_device/cisco/interface.rb +2 -2
  202. data/lib/puppet/util/network_device/transport/ssh.rb +1 -1
  203. data/lib/puppet/util/pidlock.rb +12 -6
  204. data/lib/puppet/util/plist.rb +6 -0
  205. data/lib/puppet/util/provider_features.rb +2 -4
  206. data/lib/puppet/util/rdoc.rb +1 -1
  207. data/lib/puppet/util/reference.rb +1 -1
  208. data/lib/puppet/util/resource_template.rb +1 -1
  209. data/lib/puppet/util/selinux.rb +8 -2
  210. data/lib/puppet/util/windows/adsi.rb +60 -30
  211. data/lib/puppet/util/windows/api_types.rb +45 -32
  212. data/lib/puppet/util/windows/eventlog.rb +1 -6
  213. data/lib/puppet/util/windows/principal.rb +8 -6
  214. data/lib/puppet/util/windows/process.rb +16 -15
  215. data/lib/puppet/util/windows/registry.rb +17 -15
  216. data/lib/puppet/util/windows/security.rb +3 -0
  217. data/lib/puppet/util/windows/service.rb +149 -4
  218. data/lib/puppet/util/windows/sid.rb +4 -3
  219. data/lib/puppet/vendor.rb +1 -1
  220. data/lib/puppet/version.rb +1 -1
  221. data/lib/puppet_pal.rb +2 -2
  222. data/locales/puppet.pot +479 -443
  223. data/man/man5/puppet.conf.5 +38 -8
  224. data/man/man8/puppet-agent.8 +2 -2
  225. data/man/man8/puppet-apply.8 +1 -1
  226. data/man/man8/puppet-ca.8 +1 -1
  227. data/man/man8/puppet-catalog.8 +1 -1
  228. data/man/man8/puppet-cert.8 +1 -1
  229. data/man/man8/puppet-certificate.8 +1 -1
  230. data/man/man8/puppet-certificate_request.8 +1 -1
  231. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  232. data/man/man8/puppet-config.8 +1 -1
  233. data/man/man8/puppet-describe.8 +1 -1
  234. data/man/man8/puppet-device.8 +1 -1
  235. data/man/man8/puppet-doc.8 +1 -1
  236. data/man/man8/puppet-epp.8 +1 -1
  237. data/man/man8/puppet-facts.8 +1 -1
  238. data/man/man8/puppet-filebucket.8 +16 -1
  239. data/man/man8/puppet-generate.8 +1 -1
  240. data/man/man8/puppet-help.8 +1 -1
  241. data/man/man8/puppet-key.8 +1 -1
  242. data/man/man8/puppet-lookup.8 +1 -1
  243. data/man/man8/puppet-man.8 +1 -1
  244. data/man/man8/puppet-master.8 +1 -1
  245. data/man/man8/puppet-module.8 +1 -1
  246. data/man/man8/puppet-node.8 +1 -1
  247. data/man/man8/puppet-parser.8 +1 -1
  248. data/man/man8/puppet-plugin.8 +1 -1
  249. data/man/man8/puppet-report.8 +1 -1
  250. data/man/man8/puppet-resource.8 +1 -1
  251. data/man/man8/puppet-script.8 +1 -1
  252. data/man/man8/puppet-status.8 +1 -1
  253. data/man/man8/puppet.8 +2 -2
  254. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +1 -0
  255. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +19 -0
  256. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +2 -0
  257. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +9 -0
  258. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +9 -0
  259. data/spec/integration/configurer_spec.rb +52 -0
  260. data/spec/integration/defaults_spec.rb +1 -2
  261. data/spec/integration/indirector/facts/facter_spec.rb +4 -0
  262. data/spec/integration/parser/compiler_spec.rb +11 -0
  263. data/spec/integration/provider/service/systemd_spec.rb +8 -5
  264. data/spec/integration/type/file_spec.rb +28 -0
  265. data/spec/integration/type/notify_spec.rb +46 -0
  266. data/spec/integration/util/execution_spec.rb +27 -0
  267. data/spec/integration/util/windows/adsi_spec.rb +6 -1
  268. data/spec/integration/util/windows/registry_spec.rb +7 -7
  269. data/spec/unit/agent_spec.rb +34 -26
  270. data/spec/unit/application/agent_spec.rb +18 -0
  271. data/spec/unit/application/apply_spec.rb +2 -12
  272. data/spec/unit/application/device_spec.rb +1 -1
  273. data/spec/unit/configurer/fact_handler_spec.rb +0 -4
  274. data/spec/unit/configurer_spec.rb +377 -397
  275. data/spec/unit/daemon_spec.rb +0 -1
  276. data/spec/unit/face/facts_spec.rb +9 -0
  277. data/spec/unit/face/plugin_spec.rb +8 -0
  278. data/spec/unit/file_system/uniquefile_spec.rb +11 -0
  279. data/spec/unit/forge/forge_spec.rb +1 -3
  280. data/spec/unit/forge/repository_spec.rb +1 -3
  281. data/spec/unit/indirector/catalog/compiler_spec.rb +45 -26
  282. data/spec/unit/indirector/resource/ral_spec.rb +4 -4
  283. data/spec/unit/module_tool/tar/mini_spec.rb +1 -1
  284. data/spec/unit/network/http/api/indirected_routes_spec.rb +28 -11
  285. data/spec/unit/network/http/connection_spec.rb +43 -1
  286. data/spec/unit/network/http/factory_spec.rb +27 -5
  287. data/spec/unit/network/http/pool_spec.rb +32 -0
  288. data/spec/unit/node_spec.rb +7 -4
  289. data/spec/unit/parser/environment_compiler_spec.rb +7 -0
  290. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -3
  291. data/spec/unit/pops/validator/validator_spec.rb +7 -0
  292. data/spec/unit/provider/exec_spec.rb +209 -0
  293. data/spec/unit/provider/group/groupadd_spec.rb +30 -1
  294. data/spec/unit/provider/group/windows_adsi_spec.rb +43 -10
  295. data/spec/unit/provider/package/aix_spec.rb +29 -0
  296. data/spec/unit/provider/package/apt_spec.rb +13 -2
  297. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  298. data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
  299. data/spec/unit/provider/package/dnf_spec.rb +7 -0
  300. data/spec/unit/provider/package/dnfmodule_spec.rb +247 -0
  301. data/spec/unit/provider/package/dpkg_spec.rb +35 -7
  302. data/spec/unit/provider/package/openbsd_spec.rb +17 -0
  303. data/spec/unit/provider/package/pip_spec.rb +93 -22
  304. data/spec/unit/provider/package/pkg_spec.rb +13 -1
  305. data/spec/unit/provider/package/pkgdmg_spec.rb +1 -1
  306. data/spec/unit/provider/package/pkgng_spec.rb +36 -0
  307. data/spec/unit/provider/package/portage_spec.rb +4 -4
  308. data/spec/unit/provider/package/rpm_spec.rb +150 -16
  309. data/spec/unit/provider/package/yum_spec.rb +66 -0
  310. data/spec/unit/provider/package/zypper_spec.rb +13 -0
  311. data/spec/unit/provider/package_targetable_spec.rb +60 -0
  312. data/spec/unit/provider/selmodule_spec.rb +118 -47
  313. data/spec/unit/provider/service/daemontools_spec.rb +24 -0
  314. data/spec/unit/provider/service/launchd_spec.rb +28 -0
  315. data/spec/unit/provider/service/runit_spec.rb +24 -0
  316. data/spec/unit/provider/service/systemd_spec.rb +109 -36
  317. data/spec/unit/provider/service/windows_spec.rb +20 -0
  318. data/spec/unit/provider/user/directoryservice_spec.rb +41 -0
  319. data/spec/unit/provider/user/hpux_spec.rb +2 -2
  320. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  321. data/spec/unit/provider/user/pw_spec.rb +37 -0
  322. data/spec/unit/provider/user/useradd_spec.rb +122 -15
  323. data/spec/unit/provider/user/windows_adsi_spec.rb +3 -3
  324. data/spec/unit/puppet_pal_2pec.rb +3 -0
  325. data/spec/unit/resource_spec.rb +26 -1
  326. data/spec/unit/ssl/certificate_authority_spec.rb +2 -3
  327. data/spec/unit/ssl/certificate_spec.rb +7 -0
  328. data/spec/unit/test/test_helper_spec.rb +17 -0
  329. data/spec/unit/transaction_spec.rb +18 -0
  330. data/spec/unit/type/exec_spec.rb +15 -12
  331. data/spec/unit/type/file/content_spec.rb +9 -3
  332. data/spec/unit/type/file/source_spec.rb +4 -4
  333. data/spec/unit/type/file_spec.rb +9 -4
  334. data/spec/unit/type/package_spec.rb +8 -0
  335. data/spec/unit/type/schedule_spec.rb +3 -1
  336. data/spec/unit/type/selboolean_spec.rb +4 -6
  337. data/spec/unit/type/service_spec.rb +25 -8
  338. data/spec/unit/type/user_spec.rb +32 -26
  339. data/spec/unit/type/yumrepo_spec.rb +30 -0
  340. data/spec/unit/type_spec.rb +40 -0
  341. data/spec/unit/util/execution_spec.rb +16 -0
  342. data/spec/unit/util/http_proxy_spec.rb +121 -1
  343. data/spec/unit/util/log/destinations_spec.rb +2 -26
  344. data/spec/unit/util/log_spec.rb +0 -112
  345. data/spec/unit/util/logging_spec.rb +200 -0
  346. data/spec/unit/util/pidlock_spec.rb +67 -40
  347. data/spec/unit/util/plist_spec.rb +20 -0
  348. data/spec/unit/util/windows/adsi_spec.rb +55 -4
  349. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  350. data/spec/unit/util/windows/service_spec.rb +9 -0
  351. data/spec/unit/util/windows/sid_spec.rb +2 -2
  352. data/tasks/manpages.rake +1 -0
  353. metadata +18 -13
  354. data/ext/windows/eventlog/Rakefile +0 -32
  355. data/ext/windows/eventlog/puppetres.dll +0 -0
  356. data/ext/windows/eventlog/puppetres.mc +0 -18
  357. data/lib/puppet/pops/loader/null_loader.rb +0 -60
  358. data/locales/ja/puppet.po +0 -12114
  359. data/spec/integration/test/test_helper_spec.rb +0 -31
@@ -0,0 +1,19 @@
1
+ localmirror-appstream
2
+ Name Stream Profiles Summary
3
+ 389-ds 1.4 [e] 389 Directory Server (base)
4
+ gimp 2.8 [d][e] common [d], devel [i] gimp module
5
+ mariadb 10.3 [d][e] client [i], server [d], galera MariaDB Module
6
+ nodejs 10 [d][e] common [d], development, minimal [i], s2i Javascript runtime
7
+ perl 5.26 [d][e] common [d], minimal [i] Practical Extraction and Report Language
8
+ postgresql 10 [d][e] client, server [d] [i] PostgreSQL server and client module
9
+ ruby 2.5 [d][e] common [d] An interpreter of object-oriented scripting language
10
+ rust-toolset rhel8 [d][e] common [d] [i] Rust
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
18
+
19
+ Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
@@ -1,3 +1,5 @@
1
1
  shells/bash-completion < needs updating (index has 2.1_3)
2
2
  ftp/curl < needs updating (index has 7.33.0_2)
3
3
  shells/zsh < needs updating (index has 5.0.4)
4
+ sysutils/orphan ? orphaned: sysutils/orphan
5
+ sysutils/broken ! Comparison failed
@@ -0,0 +1,9 @@
1
+ Loaded plugins: product-id, search-disabled-repos, subscription-manager
2
+
3
+ This system is not registered with an entitlement server. You can use subscription-manager to register on.
4
+
5
+ curl.i686 7.32.0-10.fc20 updates
6
+ curl.x86_64 7.32.0-10.fc20 updates
7
+ gawk.i686 4.1.0-3.fc20 updates
8
+ dhclient.i686 12:4.1.1-38.P1.fc20 updates
9
+ java-1.8.0-openjdk.x86_64 1:1.8.0.131-2.b11.el7_3 updates
@@ -5,3 +5,12 @@ autovt@.service disabled
5
5
  avahi-daemon.service enabled
6
6
  blk-availability.service disabled
7
7
  brandbot.service static
8
+ apparmor.service bad
9
+ udev.service enabled-runtime
10
+ ufw.service linked
11
+ umountfs.service linked-runtime
12
+ umountnfs.service masked
13
+ umountroot.service masked-runtime
14
+ urandom.service indirect
15
+ user@.service generated
16
+ uuidd.service transient
@@ -62,5 +62,57 @@ describe Puppet::Configurer do
62
62
  expect(summary["time"]).to be_key("notify")
63
63
  expect(summary["time"]["last_run"]).to be_between(t1, t2)
64
64
  end
65
+
66
+ describe 'resubmitting facts' do
67
+ context 'when resubmit_facts is set to false' do
68
+ it 'should not send data' do
69
+ expect(@configurer).to receive(:resubmit_facts).never
70
+
71
+ @configurer.run(catalog: @catalog)
72
+ end
73
+ end
74
+
75
+ context 'when resubmit_facts is set to true' do
76
+ let(:test_facts) { Puppet::Node::Facts.new('configurer.test') }
77
+ let(:fact_rest_terminus) { Puppet::Node::Facts.indirection.terminus(:rest) }
78
+
79
+ before(:each) do
80
+ Puppet[:resubmit_facts] = true
81
+
82
+ allow(@configurer).to receive(:find_facts).and_return(test_facts)
83
+ allow(fact_rest_terminus).to receive(:save)
84
+ end
85
+
86
+ it 'sends fact data using the rest terminus' do
87
+ expect(fact_rest_terminus).to receive(:save)
88
+
89
+ @configurer.run(catalog: @catalog)
90
+ end
91
+
92
+ it 'logs errors that occur during fact generation' do
93
+ allow(@configurer).to receive(:find_facts).and_raise('error generating facts')
94
+ expect(Puppet).to receive(:log_exception).with(instance_of(RuntimeError),
95
+ /^Failed to submit facts/)
96
+
97
+ @configurer.run(catalog: @catalog)
98
+ end
99
+
100
+ it 'logs errors that occur during fact submission' do
101
+ allow(fact_rest_terminus).to receive(:save).and_raise('error sending facts')
102
+ expect(Puppet).to receive(:log_exception).with(instance_of(RuntimeError),
103
+ /^Failed to submit facts/)
104
+
105
+ @configurer.run(catalog: @catalog)
106
+ end
107
+
108
+ it 'records time spent resubmitting facts' do
109
+ report = Puppet::Transaction::Report.new
110
+
111
+ @configurer.run(catalog: @catalog, report: report)
112
+
113
+ expect(report.metrics['time'].values).to include(["resubmit_facts", anything, Numeric])
114
+ end
115
+ end
116
+ end
65
117
  end
66
118
  end
@@ -130,8 +130,7 @@ describe "Puppet defaults" do
130
130
  Puppet::Util.withenv( {"PATH" => path }, :windows) do
131
131
  Puppet.settings[:path] = "none" # this causes it to ignore the setting
132
132
 
133
- envhash = Puppet::Util::Windows::Process.get_environment_strings
134
- expect(envhash['Path']).to eq(path)
133
+ expect(Puppet::Util.get_env('Path')).to eq(path)
135
134
  end
136
135
  end
137
136
  end
@@ -8,6 +8,10 @@ describe Puppet::Node::Facts::Facter do
8
8
  include PuppetSpec::Files
9
9
  include PuppetSpec::Compiler
10
10
 
11
+ before :each do
12
+ Puppet::Node::Facts.indirection.terminus_class = :facter
13
+ end
14
+
11
15
  it "preserves case in fact values" do
12
16
  Facter.add(:downcase_test) do
13
17
  setcode do
@@ -841,6 +841,17 @@ describe Puppet::Parser::Compiler do
841
841
  MANIFEST
842
842
  end.to raise_error(/Foo\[bar\]:\s+parameter 'a' expects a value for key 'd'\s+parameter 'a' unrecognized key 'c'/m)
843
843
  end
844
+
845
+ it 'handles Sensitive type in resource array' do
846
+ catalog = compile_to_catalog(<<-MANIFEST)
847
+ define foo(Sensitive[String] $password) {
848
+ notify{ "${title}": message => "${password}" }
849
+ }
850
+ foo { ['testA', 'testB']: password =>Sensitive('some password') }
851
+ MANIFEST
852
+ expect(catalog).to have_resource("Notify[testA]").with_parameter(:message, 'Sensitive [value redacted]')
853
+ expect(catalog).to have_resource("Notify[testB]").with_parameter(:message, 'Sensitive [value redacted]')
854
+ end
844
855
  end
845
856
 
846
857
  context 'when using typed parameters in class' do
@@ -3,16 +3,19 @@ require 'spec_helper'
3
3
  describe Puppet::Type.type(:service).provider(:systemd), '(integration)' do
4
4
  # TODO: Unfortunately there does not seem a way to stub the executable
5
5
  # checks in the systemd provider because they happen at load time.
6
- it "should be considered suitable if /bin/systemctl is present", :if => File.executable?('/bin/systemctl') do
6
+
7
+ it "should be considered suitable if /proc/1/comm is present and contains 'systemd'",
8
+ :if => File.exist?('/proc/1/comm') && Puppet::FileSystem.read('/proc/1/comm').include?('systemd') do
7
9
  expect(described_class).to be_suitable
8
10
  end
9
11
 
10
- it "should be considered suitable if /usr/bin/systemctl is present", :if => File.executable?('/usr/bin/systemctl') do
11
- expect(described_class).to be_suitable
12
+ it "should not be considered suitable if /proc/1/comm is present it does not contain 'systemd'",
13
+ :if => File.exist?('/proc/1/comm') && !Puppet::FileSystem.read('/proc/1/comm').include?('systemd') do
14
+ expect(described_class).not_to be_suitable
12
15
  end
13
16
 
14
- it "should not be cosidered suitable if systemctl is absent",
15
- :unless => (File.executable?('/bin/systemctl') or File.executable?('/usr/bin/systemctl')) do
17
+ it "should not be considered suitable if /proc/1/comm is absent",
18
+ :if => !File.exist?('/proc/1/comm') do
16
19
  expect(described_class).not_to be_suitable
17
20
  end
18
21
  end
@@ -21,6 +21,13 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
21
21
  File.join(parent, 'file_testing')
22
22
  end
23
23
 
24
+ let(:path_protected) do
25
+ # we create a file inside windows protected folders (C:\Windows, C:\Windows\system32, etc)
26
+ # the file will also be removed after the tests
27
+ parent = 'C:\Windows'
28
+ File.join(parent, 'file_testing')
29
+ end
30
+
24
31
  let(:dir) do
25
32
  # we create a directory first so backups of :path that are stored in
26
33
  # the same directory will also be removed after the tests
@@ -268,6 +275,27 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
268
275
  expect(get_mode(path) & 07777).to eq(0666)
269
276
  end
270
277
 
278
+ context "file is in protected windows directory", :if => Puppet.features.microsoft_windows? do
279
+ after { FileUtils.rm(path_protected) }
280
+
281
+ it "should set and get the correct mode for files inside protected windows folders" do
282
+ catalog.add_resource described_class.new(:path => path_protected, :ensure => :file, :mode => '0640')
283
+ catalog.apply
284
+
285
+ expect(get_mode(path_protected) & 07777).to eq(0640)
286
+ end
287
+
288
+ it "should not change resource's status inside protected windows folders if mode is the same" do
289
+ FileUtils.touch(path_protected)
290
+ set_mode(0644, path_protected)
291
+ catalog.add_resource described_class.new(:path => path_protected, :ensure => :file, :mode => '0644')
292
+ result = catalog.apply
293
+ status = result.report.resource_statuses["File[#{path_protected}]"]
294
+ expect(status).not_to be_failed
295
+ expect(status).not_to be_changed
296
+ end
297
+ end
298
+
271
299
  it "should not set executable bits when replacing an executable directory (#10365)" do
272
300
  pending("bug #10365")
273
301
 
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ require 'puppet_spec/compiler'
3
+
4
+ describe Puppet::Type.type(:notify) do
5
+ include PuppetSpec::Compiler
6
+
7
+ it "logs the title at notice level" do
8
+ apply_compiled_manifest(<<-MANIFEST)
9
+ notify { 'hi': }
10
+ MANIFEST
11
+
12
+ expect(@logs).to include(an_object_having_attributes(level: :notice, message: 'hi'))
13
+ end
14
+
15
+ it "logs the message property" do
16
+ apply_compiled_manifest(<<-MANIFEST)
17
+ notify { 'title':
18
+ message => 'hello'
19
+ }
20
+ MANIFEST
21
+
22
+ expect(@logs).to include(an_object_having_attributes(level: :notice, message: "defined 'message' as 'hello'"))
23
+ end
24
+
25
+ it "redacts sensitive message properties" do
26
+ apply_compiled_manifest(<<-MANIFEST)
27
+ $message = Sensitive('secret')
28
+ notify { 'notify1':
29
+ message => $message
30
+ }
31
+ MANIFEST
32
+
33
+ expect(@logs).to include(an_object_having_attributes(level: :notice, message: 'changed [redacted] to [redacted]'))
34
+ end
35
+
36
+ it "redacts sensitive interpolated message properties" do
37
+ apply_compiled_manifest(<<-MANIFEST)
38
+ $message = Sensitive('secret')
39
+ notify { 'notify2':
40
+ message => "${message}"
41
+ }
42
+ MANIFEST
43
+
44
+ expect(@logs).to include(an_object_having_attributes(level: :notice, message: "defined 'message' as 'Sensitive [value redacted]'"))
45
+ end
46
+ end
@@ -25,6 +25,33 @@ describe Puppet::Util::Execution do
25
25
  end
26
26
  end
27
27
 
28
+ describe "#execute" do
29
+ if Puppet::Util::Platform.windows?
30
+ let(:argv) { ["cmd", "/c", "echo", 123] }
31
+ else
32
+ let(:argv) { ["echo", 123] }
33
+ end
34
+
35
+ it 'stringifies sensitive arguments when given an array containing integers' do
36
+ result = Puppet::Util::Execution.execute(argv, sensitive: true)
37
+ expect(result.to_s.strip).to eq("123")
38
+ expect(result.exitstatus).to eq(0)
39
+ end
40
+
41
+ it 'redacts sensitive arguments when given an array' do
42
+ Puppet[:log_level] = :debug
43
+ Puppet::Util::Execution.execute(argv, sensitive: true)
44
+ expect(@logs).to include(an_object_having_attributes(level: :debug, message: "Executing: '[redacted]'"))
45
+ end
46
+
47
+ it 'redacts sensitive arguments when given a string' do
48
+ Puppet[:log_level] = :debug
49
+ str = argv.map(&:to_s).join(' ')
50
+ Puppet::Util::Execution.execute(str, sensitive: true)
51
+ expect(@logs).to include(an_object_having_attributes(level: :debug, message: "Executing: '[redacted]'"))
52
+ end
53
+ end
54
+
28
55
  describe "#execute (non-Windows)", :if => !Puppet.features.microsoft_windows? do
29
56
  it "should execute basic shell command" do
30
57
  result = Puppet::Util::Execution.execute("ls /tmp", :failonfail => true)
@@ -82,6 +82,9 @@ describe Puppet::Util::Windows::ADSI::Group,
82
82
  it 'should return a list of members resolvable with Puppet::Util::Windows::ADSI::Group.name_sid_hash' do
83
83
  temp_groupname = "g#{SecureRandom.uuid}"
84
84
  temp_username = "u#{SecureRandom.uuid}"[0..12]
85
+ # From https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements
86
+ specials = "~!@#$%^&*_-+=`|\(){}[]:;\"'<>,.?/"
87
+ temp_password = "p#{SecureRandom.uuid[0..7]}-#{SecureRandom.uuid.upcase[0..7]}-#{specials[rand(specials.length)]}"
85
88
 
86
89
  # select a virtual account that requires an authority to be able to resolve to SID
87
90
  # the Dhcp service is chosen for no particular reason aside from it's a service available on all Windows versions
@@ -110,6 +113,8 @@ describe Puppet::Util::Windows::ADSI::Group,
110
113
  begin
111
114
  # :SidTypeUser as user on localhost, can be resolved with or without authority prefix
112
115
  user = Puppet::Util::Windows::ADSI::User.create(temp_username)
116
+ # appveyor sometimes requires a password
117
+ user.password = temp_password
113
118
  user.commit()
114
119
  users.push({ :sid => user.sid.sid, :name => Puppet::Util::Windows::ADSI.computer_name + '\\' + temp_username })
115
120
 
@@ -160,7 +165,7 @@ describe Puppet::Util::Windows::ADSI::Group,
160
165
 
161
166
  # unresolvable SID
162
167
  expect(admins.members[1].sid).to eq('S-1-5-21-3661721861-956923663-2119435483-1112')
163
- expect(admins.members[1].account).to eq('S-1-5-21-3661721861-956923663-2119435483-1112 (unresolvable)')
168
+ expect(admins.members[1].account).to eq('S-1-5-21-3661721861-956923663-2119435483-1112')
164
169
  expect(admins.members[1].account_type).to eq(:SidTypeUnknown)
165
170
  end
166
171
 
@@ -259,23 +259,23 @@ describe Puppet::Util::Windows::Registry do
259
259
  {
260
260
  name: 'REG_SZ',
261
261
  type: Win32::Registry::REG_SZ,
262
- value: "reg sz\u0000 string",
263
- expected_value: "reg sz string"
262
+ value: "reg sz\u0000\u0000 string",
263
+ expected_value: "reg sz"
264
264
  },
265
265
  {
266
266
  name: 'REG_SZ_2',
267
267
  type: Win32::Registry::REG_SZ,
268
- value: "reg sz\x00 string",
269
- expected_value: "reg sz string"
268
+ value: "reg sz 2\x00\x00 string",
269
+ expected_value: "reg sz 2"
270
270
  },
271
271
  {
272
272
  name: 'REG_EXPAND_SZ',
273
273
  type: Win32::Registry::REG_EXPAND_SZ,
274
- value: "\0reg expand string",
275
- expected_value: " reg expand string"
274
+ value: "\0\0\0reg expand string",
275
+ expected_value: ""
276
276
  }
277
277
  ].each do |pair|
278
- it 'replaces null bytes with spaces' do
278
+ it 'reads up to the first wide null' do
279
279
  hklm.create("#{puppet_key}\\#{subkey_name}", Win32::Registry::KEY_ALL_ACCESS) do |reg|
280
280
  reg.write(value_name, pair[:type], pair[:value])
281
281
  end
@@ -185,31 +185,26 @@ describe Puppet::Agent do
185
185
 
186
186
  # So we don't actually try to hit the filesystem.
187
187
  allow(@agent).to receive(:lock).and_yield
188
-
189
- allow(Kernel).to receive(:fork)
190
- allow(Process).to receive(:waitpid2).and_return([123, double('process::status', :exitstatus => 0)])
191
- allow(@agent).to receive(:exit)
192
188
  end
193
189
 
194
190
  it "should run the agent in a forked process" do
195
191
  client = AgentTestClient.new
196
192
  expect(AgentTestClient).to receive(:new).and_return(client)
197
193
 
198
- expect(client).to receive(:run)
194
+ expect(client).to receive(:run).and_return(0)
199
195
 
200
196
  expect(Kernel).to receive(:fork).and_yield
201
- @agent.run
197
+ expect { @agent.run }.to exit_with(0)
202
198
  end
203
199
 
204
200
  it "should exit child process if child exit" do
205
201
  client = AgentTestClient.new
206
202
  expect(AgentTestClient).to receive(:new).and_return(client)
207
203
 
208
- expect(client).to receive(:run).and_raise(SystemExit)
204
+ expect(client).to receive(:run).and_raise(SystemExit.new(-1))
209
205
 
210
206
  expect(Kernel).to receive(:fork).and_yield
211
- expect(@agent).to receive(:exit).with(-1)
212
- @agent.run
207
+ expect { @agent.run }.to exit_with(-1)
213
208
  end
214
209
 
215
210
  it 'should exit with 1 if an exception is raised' do
@@ -219,31 +214,44 @@ describe Puppet::Agent do
219
214
  expect(client).to receive(:run).and_raise(StandardError)
220
215
 
221
216
  expect(Kernel).to receive(:fork).and_yield
222
- expect(@agent).to receive(:exit).with(1)
223
- @agent.run
217
+ expect { @agent.run }.to exit_with(1)
224
218
  end
225
219
 
226
- it "should re-raise exit happening in the child" do
227
- allow(Process).to receive(:waitpid2).and_return([123, double('process::status', :exitstatus => -1)])
228
- expect { @agent.run }.to raise_error(SystemExit)
220
+ it 'should exit with 254 if NoMemoryError exception is raised' do
221
+ client = AgentTestClient.new
222
+ expect(AgentTestClient).to receive(:new).and_return(client)
223
+
224
+ expect(client).to receive(:run).and_raise(NoMemoryError)
225
+
226
+ expect(Kernel).to receive(:fork).and_yield
227
+ expect { @agent.run }.to exit_with(254)
229
228
  end
230
229
 
231
- it "should re-raise NoMoreMemory happening in the child" do
232
- allow(Process).to receive(:waitpid2).and_return([123, double('process::status', :exitstatus => -2)])
233
- expect { @agent.run }.to raise_error(NoMemoryError)
230
+ it "should return the block exit code as the child exit code" do
231
+ expect(Kernel).to receive(:fork).and_yield
232
+ expect {
233
+ @agent.run_in_fork {
234
+ 777
235
+ }
236
+ }.to exit_with(777)
234
237
  end
235
238
 
236
- it "should return the child exit code" do
237
- allow(Process).to receive(:waitpid2).and_return([123, double('process::status', :exitstatus => 777)])
238
- expect(@agent.run).to eq(777)
239
+ it "should return `1` exit code if the block returns `nil`" do
240
+ expect(Kernel).to receive(:fork).and_yield
241
+ expect {
242
+ @agent.run_in_fork {
243
+ nil
244
+ }
245
+ }.to exit_with(1)
239
246
  end
240
247
 
241
- it "should return the block exit code as the child exit code" do
248
+ it "should return `1` exit code if the block returns `false`" do
242
249
  expect(Kernel).to receive(:fork).and_yield
243
- expect(@agent).to receive(:exit).with(777)
244
- @agent.run_in_fork {
245
- 777
246
- }
250
+ expect {
251
+ @agent.run_in_fork {
252
+ false
253
+ }
254
+ }.to exit_with(1)
247
255
  end
248
256
  end
249
257
 
@@ -283,7 +291,7 @@ describe Puppet::Agent do
283
291
  expect(client).not_to receive(:handling)
284
292
  expect(Puppet).to receive(:log_exception).with(be_an_instance_of(Puppet::Agent::RunTimeoutError), anything)
285
293
 
286
- expect(@agent.run).to eq(1)
294
+ expect(@agent.run).to eq(nil)
287
295
  end
288
296
  end
289
297
  end