puppet 6.29.0-x64-mingw32 → 7.0.0-x64-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 (811) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +5 -7
  5. data/Gemfile.lock +52 -143
  6. data/README.md +5 -5
  7. data/conf/fileserver.conf +5 -10
  8. data/ext/README.environment +8 -0
  9. data/ext/build_defaults.yaml +1 -1
  10. data/ext/dbfix.sql +132 -0
  11. data/ext/debian/README.Debian +8 -0
  12. data/ext/debian/README.source +2 -0
  13. data/ext/debian/TODO.Debian +1 -0
  14. data/ext/debian/changelog.erb +1122 -0
  15. data/ext/debian/compat +1 -0
  16. data/ext/debian/control +144 -0
  17. data/ext/debian/copyright +339 -0
  18. data/ext/debian/docs +1 -0
  19. data/ext/debian/fileserver.conf +41 -0
  20. data/ext/debian/puppet-common.dirs +13 -0
  21. data/ext/debian/puppet-common.install +3 -0
  22. data/ext/debian/puppet-common.lintian-overrides +5 -0
  23. data/ext/debian/puppet-common.manpages +28 -0
  24. data/ext/debian/puppet-common.postinst +35 -0
  25. data/ext/debian/puppet-common.postrm +33 -0
  26. data/ext/debian/puppet-el.dirs +1 -0
  27. data/ext/debian/puppet-el.emacsen-install +25 -0
  28. data/ext/debian/puppet-el.emacsen-remove +11 -0
  29. data/ext/debian/puppet-el.emacsen-startup +9 -0
  30. data/ext/debian/puppet-el.install +1 -0
  31. data/ext/debian/puppet-testsuite.install +2 -0
  32. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  33. data/ext/debian/puppet.lintian-overrides +3 -0
  34. data/ext/debian/puppet.logrotate +20 -0
  35. data/ext/debian/puppet.postinst +20 -0
  36. data/ext/debian/puppet.postrm +20 -0
  37. data/ext/debian/puppet.preinst +20 -0
  38. data/ext/debian/puppetmaster-common.install +2 -0
  39. data/ext/debian/puppetmaster-common.manpages +2 -0
  40. data/ext/debian/puppetmaster-common.postinst +6 -0
  41. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  42. data/ext/debian/puppetmaster-passenger.postinst +162 -0
  43. data/ext/debian/puppetmaster-passenger.postrm +61 -0
  44. data/ext/debian/puppetmaster.README.debian +17 -0
  45. data/ext/debian/puppetmaster.default +14 -0
  46. data/ext/debian/puppetmaster.init +137 -0
  47. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  48. data/ext/debian/puppetmaster.postinst +20 -0
  49. data/ext/debian/puppetmaster.postrm +5 -0
  50. data/ext/debian/puppetmaster.preinst +22 -0
  51. data/ext/debian/rules +132 -0
  52. data/ext/debian/source/format +1 -0
  53. data/ext/debian/source/options +1 -0
  54. data/ext/debian/vim-puppet.README.Debian +13 -0
  55. data/ext/debian/vim-puppet.dirs +5 -0
  56. data/ext/debian/vim-puppet.yaml +7 -0
  57. data/ext/debian/watch +2 -0
  58. data/ext/freebsd/puppetd +26 -0
  59. data/ext/freebsd/puppetmasterd +26 -0
  60. data/ext/gentoo/conf.d/puppet +5 -0
  61. data/ext/gentoo/conf.d/puppetmaster +12 -0
  62. data/ext/gentoo/init.d/puppet +38 -0
  63. data/ext/gentoo/init.d/puppetmaster +51 -0
  64. data/ext/gentoo/puppet/fileserver.conf +41 -0
  65. data/ext/ips/puppet-agent +44 -0
  66. data/ext/ips/puppet-master +44 -0
  67. data/ext/ips/puppet.p5m.erb +12 -0
  68. data/ext/ips/puppetagent.xml +42 -0
  69. data/ext/ips/puppetmaster.xml +42 -0
  70. data/ext/ips/rules +19 -0
  71. data/ext/ips/transforms +34 -0
  72. data/ext/ldap/puppet.schema +24 -0
  73. data/ext/logcheck/puppet +23 -0
  74. data/{examples → ext}/nagios/check_puppet.rb +2 -2
  75. data/ext/osx/file_mapping.yaml +28 -0
  76. data/ext/osx/postflight.erb +109 -0
  77. data/ext/osx/preflight.erb +52 -0
  78. data/ext/osx/prototype.plist.erb +38 -0
  79. data/ext/osx/puppet.plist +0 -2
  80. data/ext/project_data.yaml +2 -16
  81. data/ext/redhat/fileserver.conf +41 -0
  82. data/ext/redhat/logrotate +21 -0
  83. data/ext/redhat/puppet.spec.erb +841 -0
  84. data/ext/redhat/server.init +128 -0
  85. data/ext/redhat/server.sysconfig +13 -0
  86. data/ext/solaris/pkginfo +6 -0
  87. data/ext/solaris/smf/puppetd.xml +77 -0
  88. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  89. data/ext/solaris/smf/svc-puppetd +71 -0
  90. data/ext/solaris/smf/svc-puppetmasterd +67 -0
  91. data/ext/suse/puppet.spec +310 -0
  92. data/ext/suse/server.init +173 -0
  93. data/ext/windows/service/daemon.rb +6 -5
  94. data/ext/yaml_nodes.rb +105 -0
  95. data/install.rb +21 -17
  96. data/lib/puppet/agent.rb +11 -47
  97. data/lib/puppet/application/agent.rb +16 -18
  98. data/lib/puppet/application/apply.rb +4 -24
  99. data/lib/puppet/application/device.rb +100 -106
  100. data/lib/puppet/application/filebucket.rb +13 -10
  101. data/lib/puppet/application/lookup.rb +24 -74
  102. data/lib/puppet/application/resource.rb +16 -32
  103. data/lib/puppet/application/script.rb +0 -2
  104. data/lib/puppet/application/ssl.rb +1 -13
  105. data/lib/puppet/application.rb +178 -108
  106. data/lib/puppet/application_support.rb +0 -7
  107. data/lib/puppet/concurrent/thread_local_singleton.rb +3 -6
  108. data/lib/puppet/configurer/downloader.rb +1 -2
  109. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  110. data/lib/puppet/configurer.rb +86 -183
  111. data/lib/puppet/confine/variable.rb +1 -1
  112. data/lib/puppet/defaults.rb +130 -244
  113. data/lib/puppet/environments.rb +82 -146
  114. data/lib/puppet/face/facts.rb +5 -103
  115. data/lib/puppet/face/generate.rb +0 -2
  116. data/lib/puppet/face/help/action.erb +0 -1
  117. data/lib/puppet/face/help/face.erb +0 -1
  118. data/lib/puppet/face/help.rb +1 -1
  119. data/lib/puppet/face/node/clean.rb +0 -11
  120. data/lib/puppet/face/plugin.rb +5 -8
  121. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  122. data/lib/puppet/ffi/windows/constants.rb +404 -0
  123. data/lib/puppet/ffi/windows/functions.rb +628 -0
  124. data/lib/puppet/ffi/windows/structs.rb +338 -0
  125. data/lib/puppet/ffi/windows.rb +12 -0
  126. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  127. data/lib/puppet/file_serving/configuration.rb +0 -8
  128. data/lib/puppet/file_serving/fileset.rb +2 -14
  129. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  130. data/lib/puppet/file_serving/metadata.rb +0 -3
  131. data/lib/puppet/file_serving/mount/file.rb +4 -4
  132. data/lib/puppet/file_serving/mount.rb +1 -2
  133. data/lib/puppet/file_system/file_impl.rb +8 -10
  134. data/lib/puppet/file_system/jruby.rb +1 -1
  135. data/lib/puppet/file_system/memory_file.rb +1 -8
  136. data/lib/puppet/file_system/windows.rb +6 -8
  137. data/lib/puppet/file_system.rb +1 -1
  138. data/lib/puppet/forge/repository.rb +0 -1
  139. data/lib/puppet/forge.rb +4 -4
  140. data/lib/puppet/functions/all.rb +1 -1
  141. data/lib/puppet/functions/camelcase.rb +1 -1
  142. data/lib/puppet/functions/capitalize.rb +2 -2
  143. data/lib/puppet/functions/downcase.rb +2 -2
  144. data/lib/puppet/functions/empty.rb +0 -8
  145. data/lib/puppet/functions/find_template.rb +2 -2
  146. data/lib/puppet/functions/get.rb +5 -5
  147. data/lib/puppet/functions/group_by.rb +5 -13
  148. data/lib/puppet/functions/lest.rb +1 -1
  149. data/lib/puppet/functions/new.rb +100 -100
  150. data/lib/puppet/functions/next.rb +1 -18
  151. data/lib/puppet/functions/partition.rb +4 -12
  152. data/lib/puppet/functions/require.rb +5 -5
  153. data/lib/puppet/functions/sort.rb +3 -3
  154. data/lib/puppet/functions/strftime.rb +0 -1
  155. data/lib/puppet/functions/tree_each.rb +10 -7
  156. data/lib/puppet/functions/type.rb +4 -4
  157. data/lib/puppet/functions/unwrap.rb +2 -17
  158. data/lib/puppet/functions/upcase.rb +2 -2
  159. data/lib/puppet/functions/versioncmp.rb +2 -6
  160. data/lib/puppet/generate/models/type/type.rb +4 -1
  161. data/lib/puppet/generate/type.rb +0 -9
  162. data/lib/puppet/http/client.rb +167 -137
  163. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  164. data/lib/puppet/http/errors.rb +16 -0
  165. data/lib/puppet/http/external_client.rb +5 -7
  166. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  167. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  168. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  169. data/lib/puppet/http/proxy.rb +137 -0
  170. data/lib/puppet/http/redirector.rb +4 -17
  171. data/lib/puppet/http/resolver/server_list.rb +10 -25
  172. data/lib/puppet/http/resolver/settings.rb +4 -7
  173. data/lib/puppet/http/resolver/srv.rb +7 -11
  174. data/lib/puppet/http/resolver.rb +5 -15
  175. data/lib/puppet/http/response.rb +36 -54
  176. data/lib/puppet/http/response_converter.rb +24 -0
  177. data/lib/puppet/http/response_net_http.rb +42 -0
  178. data/lib/puppet/http/retry_after_handler.rb +4 -13
  179. data/lib/puppet/http/service/ca.rb +11 -22
  180. data/lib/puppet/http/service/compiler.rb +23 -144
  181. data/lib/puppet/http/service/file_server.rb +19 -29
  182. data/lib/puppet/http/service/puppetserver.rb +26 -12
  183. data/lib/puppet/http/service/report.rb +8 -10
  184. data/lib/puppet/http/service.rb +12 -26
  185. data/lib/puppet/http/session.rb +11 -20
  186. data/lib/puppet/{network/http → http}/site.rb +1 -2
  187. data/lib/puppet/http.rb +22 -13
  188. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  189. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  190. data/lib/puppet/indirector/facts/facter.rb +6 -6
  191. data/lib/puppet/indirector/facts/rest.rb +3 -22
  192. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  193. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  194. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  195. data/lib/puppet/indirector/file_server.rb +1 -8
  196. data/lib/puppet/indirector/generic_http.rb +0 -11
  197. data/lib/puppet/indirector/indirection.rb +1 -1
  198. data/lib/puppet/indirector/node/rest.rb +2 -4
  199. data/lib/puppet/indirector/report/rest.rb +3 -8
  200. data/lib/puppet/indirector/request.rb +0 -101
  201. data/lib/puppet/indirector/resource/ral.rb +1 -6
  202. data/lib/puppet/indirector/rest.rb +12 -263
  203. data/lib/puppet/indirector/terminus.rb +0 -4
  204. data/lib/puppet/interface/documentation.rb +0 -1
  205. data/lib/puppet/module/plan.rb +1 -0
  206. data/lib/puppet/module/task.rb +1 -1
  207. data/lib/puppet/module.rb +0 -1
  208. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  209. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  210. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  211. data/lib/puppet/module_tool/applications.rb +0 -1
  212. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  213. data/lib/puppet/network/authconfig.rb +2 -96
  214. data/lib/puppet/network/authorization.rb +13 -35
  215. data/lib/puppet/network/formats.rb +0 -67
  216. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  217. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  218. data/lib/puppet/network/http/connection.rb +247 -316
  219. data/lib/puppet/network/http/handler.rb +0 -1
  220. data/lib/puppet/network/http.rb +3 -3
  221. data/lib/puppet/network/http_pool.rb +16 -34
  222. data/lib/puppet/node/environment.rb +11 -10
  223. data/lib/puppet/node.rb +2 -31
  224. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  225. data/lib/puppet/pal/pal_impl.rb +4 -2
  226. data/lib/puppet/parser/ast/leaf.rb +2 -3
  227. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  228. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  229. data/lib/puppet/parser/compiler.rb +0 -198
  230. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  231. data/lib/puppet/parser/resource.rb +1 -70
  232. data/lib/puppet/parser/scope.rb +0 -1
  233. data/lib/puppet/parser/templatewrapper.rb +1 -2
  234. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  235. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  236. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  237. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  238. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  239. data/lib/puppet/pops/issues.rb +0 -5
  240. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  241. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  242. data/lib/puppet/pops/model/ast.pp +0 -42
  243. data/lib/puppet/pops/model/ast.rb +0 -291
  244. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  245. data/lib/puppet/pops/model/factory.rb +1 -47
  246. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  247. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  248. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  249. data/lib/puppet/pops/parser/code_merger.rb +4 -4
  250. data/lib/puppet/pops/parser/egrammar.ra +0 -58
  251. data/lib/puppet/pops/parser/eparser.rb +1685 -1896
  252. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  253. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  254. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  255. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  256. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  257. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  258. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  259. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  260. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  261. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  262. data/lib/puppet/pops/types/type_parser.rb +0 -4
  263. data/lib/puppet/pops/types/types.rb +1 -2
  264. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  265. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  266. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  267. data/lib/puppet/property/list.rb +1 -1
  268. data/lib/puppet/provider/aix_object.rb +1 -1
  269. data/lib/puppet/provider/exec/posix.rb +4 -16
  270. data/lib/puppet/provider/group/groupadd.rb +10 -18
  271. data/lib/puppet/provider/nameservice.rb +0 -18
  272. data/lib/puppet/provider/package/apt.rb +2 -34
  273. data/lib/puppet/provider/package/aptitude.rb +0 -6
  274. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  275. data/lib/puppet/provider/package/dpkg.rb +0 -10
  276. data/lib/puppet/provider/package/gem.rb +23 -3
  277. data/lib/puppet/provider/package/nim.rb +6 -11
  278. data/lib/puppet/provider/package/pip.rb +3 -16
  279. data/lib/puppet/provider/package/pkg.rb +2 -23
  280. data/lib/puppet/provider/package/portage.rb +1 -1
  281. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  282. data/lib/puppet/provider/package/puppetserver_gem.rb +17 -8
  283. data/lib/puppet/provider/package/windows/exe_package.rb +1 -30
  284. data/lib/puppet/provider/package/windows/package.rb +1 -2
  285. data/lib/puppet/provider/package/windows.rb +1 -14
  286. data/lib/puppet/provider/package/yum.rb +1 -1
  287. data/lib/puppet/provider/parsedfile.rb +0 -3
  288. data/lib/puppet/provider/service/base.rb +1 -1
  289. data/lib/puppet/provider/service/debian.rb +0 -2
  290. data/lib/puppet/provider/service/init.rb +9 -10
  291. data/lib/puppet/provider/service/launchd.rb +2 -2
  292. data/lib/puppet/provider/service/redhat.rb +1 -1
  293. data/lib/puppet/provider/service/smf.rb +194 -76
  294. data/lib/puppet/provider/service/systemd.rb +6 -16
  295. data/lib/puppet/provider/service/upstart.rb +5 -5
  296. data/lib/puppet/provider/service/windows.rb +0 -38
  297. data/lib/puppet/provider/user/aix.rb +3 -46
  298. data/lib/puppet/provider/user/directoryservice.rb +11 -39
  299. data/lib/puppet/provider/user/useradd.rb +24 -134
  300. data/lib/puppet/provider.rb +1 -14
  301. data/lib/puppet/reference/configuration.rb +8 -7
  302. data/lib/puppet/reference/indirection.rb +1 -1
  303. data/lib/puppet/reference/providers.rb +2 -2
  304. data/lib/puppet/resource/catalog.rb +2 -15
  305. data/lib/puppet/resource/type.rb +3 -119
  306. data/lib/puppet/resource/type_collection.rb +3 -49
  307. data/lib/puppet/resource.rb +6 -127
  308. data/lib/puppet/runtime.rb +2 -13
  309. data/lib/puppet/settings/environment_conf.rb +0 -1
  310. data/lib/puppet/settings/integer_setting.rb +17 -0
  311. data/lib/puppet/settings/port_setting.rb +15 -0
  312. data/lib/puppet/settings/priority_setting.rb +5 -4
  313. data/lib/puppet/settings.rb +82 -98
  314. data/lib/puppet/ssl/base.rb +3 -5
  315. data/lib/puppet/ssl/certificate.rb +0 -6
  316. data/lib/puppet/ssl/certificate_request.rb +1 -12
  317. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  318. data/lib/puppet/ssl/oids.rb +3 -1
  319. data/lib/puppet/ssl/ssl_provider.rb +36 -75
  320. data/lib/puppet/ssl/state_machine.rb +20 -14
  321. data/lib/puppet/ssl/verifier.rb +2 -6
  322. data/lib/puppet/ssl.rb +10 -6
  323. data/lib/puppet/test/test_helper.rb +2 -7
  324. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  325. data/lib/puppet/transaction/persistence.rb +1 -21
  326. data/lib/puppet/transaction/report.rb +3 -19
  327. data/lib/puppet/transaction.rb +1 -7
  328. data/lib/puppet/type/exec.rb +6 -36
  329. data/lib/puppet/type/file/checksum.rb +1 -1
  330. data/lib/puppet/type/file/data_sync.rb +1 -1
  331. data/lib/puppet/type/file/mode.rb +0 -6
  332. data/lib/puppet/type/file/selcontext.rb +1 -1
  333. data/lib/puppet/type/file/source.rb +1 -1
  334. data/lib/puppet/type/file.rb +12 -32
  335. data/lib/puppet/type/filebucket.rb +4 -4
  336. data/lib/puppet/type/group.rb +1 -0
  337. data/lib/puppet/type/package.rb +8 -16
  338. data/lib/puppet/type/resources.rb +1 -1
  339. data/lib/puppet/type/service.rb +41 -26
  340. data/lib/puppet/type/tidy.rb +3 -22
  341. data/lib/puppet/type/user.rb +13 -35
  342. data/lib/puppet/type.rb +1 -77
  343. data/lib/puppet/util/autoload.rb +8 -1
  344. data/lib/puppet/util/command_line.rb +1 -1
  345. data/lib/puppet/util/execution.rb +0 -11
  346. data/lib/puppet/util/filetype.rb +2 -2
  347. data/lib/puppet/util/http_proxy.rb +2 -215
  348. data/lib/puppet/util/json.rb +0 -20
  349. data/lib/puppet/util/log.rb +4 -8
  350. data/lib/puppet/util/logging.rb +25 -1
  351. data/lib/puppet/util/monkey_patches.rb +2 -59
  352. data/lib/puppet/util/package.rb +16 -25
  353. data/lib/puppet/util/pidlock.rb +1 -1
  354. data/lib/puppet/util/posix.rb +5 -54
  355. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  356. data/lib/puppet/util/rdoc.rb +0 -7
  357. data/lib/puppet/util/retry_action.rb +1 -1
  358. data/lib/puppet/util/run_mode.rb +9 -1
  359. data/lib/puppet/util/selinux.rb +4 -30
  360. data/lib/puppet/util/suidmanager.rb +2 -1
  361. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  362. data/lib/puppet/util/tagging.rb +0 -1
  363. data/lib/puppet/util/windows/adsi.rb +0 -46
  364. data/lib/puppet/util/windows/daemon.rb +360 -0
  365. data/lib/puppet/util/windows/error.rb +1 -0
  366. data/lib/puppet/util/windows/eventlog.rb +4 -9
  367. data/lib/puppet/util/windows/file.rb +8 -242
  368. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  369. data/lib/puppet/util/windows/principal.rb +2 -9
  370. data/lib/puppet/util/windows/process.rb +4 -226
  371. data/lib/puppet/util/windows/service.rb +11 -457
  372. data/lib/puppet/util/windows/sid.rb +2 -6
  373. data/lib/puppet/util/windows/string.rb +12 -13
  374. data/lib/puppet/util/windows/user.rb +2 -0
  375. data/lib/puppet/util/windows.rb +3 -11
  376. data/lib/puppet/util/yaml.rb +1 -42
  377. data/lib/puppet/util.rb +5 -5
  378. data/lib/puppet/vendor/require_vendored.rb +0 -1
  379. data/lib/puppet/version.rb +1 -1
  380. data/lib/puppet/x509/cert_provider.rb +29 -1
  381. data/lib/puppet/x509.rb +5 -1
  382. data/lib/puppet.rb +34 -27
  383. data/locales/puppet.pot +9633 -5
  384. data/man/man5/puppet.conf.5 +286 -401
  385. data/man/man8/puppet-agent.8 +2 -5
  386. data/man/man8/puppet-apply.8 +2 -2
  387. data/man/man8/puppet-catalog.8 +9 -9
  388. data/man/man8/puppet-config.8 +1 -1
  389. data/man/man8/puppet-describe.8 +1 -1
  390. data/man/man8/puppet-device.8 +2 -2
  391. data/man/man8/puppet-doc.8 +1 -1
  392. data/man/man8/puppet-epp.8 +1 -1
  393. data/man/man8/puppet-facts.8 +8 -51
  394. data/man/man8/puppet-filebucket.8 +4 -4
  395. data/man/man8/puppet-generate.8 +1 -1
  396. data/man/man8/puppet-help.8 +1 -1
  397. data/man/man8/puppet-lookup.8 +6 -9
  398. data/man/man8/puppet-module.8 +3 -60
  399. data/man/man8/puppet-node.8 +5 -5
  400. data/man/man8/puppet-parser.8 +1 -1
  401. data/man/man8/puppet-plugin.8 +1 -1
  402. data/man/man8/puppet-report.8 +5 -5
  403. data/man/man8/puppet-resource.8 +1 -1
  404. data/man/man8/puppet-script.8 +2 -2
  405. data/man/man8/puppet-ssl.8 +1 -5
  406. data/man/man8/puppet.8 +2 -2
  407. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  408. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  409. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  410. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  411. data/spec/fixtures/ssl/ca.pem +35 -57
  412. data/spec/fixtures/ssl/crl.pem +18 -28
  413. data/spec/fixtures/ssl/ec-key.pem +11 -11
  414. data/spec/fixtures/ssl/ec.pem +24 -33
  415. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  416. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  417. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  418. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  419. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  420. data/spec/fixtures/ssl/intermediate.pem +36 -57
  421. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  422. data/spec/fixtures/ssl/pluto.pem +30 -52
  423. data/spec/fixtures/ssl/request-key.pem +57 -107
  424. data/spec/fixtures/ssl/request.pem +26 -47
  425. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  426. data/spec/fixtures/ssl/revoked.pem +30 -52
  427. data/spec/fixtures/ssl/signed-key.pem +57 -107
  428. data/spec/fixtures/ssl/signed.pem +30 -52
  429. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  430. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  431. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  432. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  433. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  434. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  435. data/spec/fixtures/unit/forge/bacula.json +1 -1
  436. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  437. data/spec/integration/application/agent_spec.rb +50 -406
  438. data/spec/integration/application/apply_spec.rb +1 -20
  439. data/spec/integration/application/filebucket_spec.rb +16 -32
  440. data/spec/integration/application/help_spec.rb +2 -0
  441. data/spec/integration/application/lookup_spec.rb +50 -81
  442. data/spec/integration/application/module_spec.rb +0 -21
  443. data/spec/integration/application/plugin_spec.rb +24 -2
  444. data/spec/integration/configurer_spec.rb +2 -18
  445. data/spec/integration/defaults_spec.rb +14 -3
  446. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  447. data/spec/integration/http/client_spec.rb +4 -63
  448. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  449. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  450. data/spec/integration/network/http_pool_spec.rb +3 -21
  451. data/spec/integration/parser/catalog_spec.rb +0 -38
  452. data/spec/integration/parser/node_spec.rb +0 -9
  453. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  454. data/spec/integration/resource/type_collection_spec.rb +6 -2
  455. data/spec/integration/transaction/report_spec.rb +1 -1
  456. data/spec/integration/transaction_spec.rb +9 -4
  457. data/spec/integration/type/exec_spec.rb +45 -70
  458. data/spec/integration/type/file_spec.rb +7 -6
  459. data/spec/integration/type/package_spec.rb +6 -6
  460. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  461. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  462. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  463. data/spec/integration/util/windows/principal_spec.rb +0 -21
  464. data/spec/integration/util/windows/process_spec.rb +9 -1
  465. data/spec/integration/util/windows/registry_spec.rb +10 -6
  466. data/spec/integration/util/windows/security_spec.rb +1 -1
  467. data/spec/lib/matchers/include.rb +27 -0
  468. data/spec/lib/matchers/include_spec.rb +32 -0
  469. data/spec/lib/puppet/test_ca.rb +2 -7
  470. data/spec/lib/puppet_spec/https.rb +1 -1
  471. data/spec/lib/puppet_spec/modules.rb +2 -13
  472. data/spec/lib/puppet_spec/puppetserver.rb +3 -55
  473. data/spec/lib/puppet_spec/settings.rb +1 -1
  474. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  475. data/spec/spec_helper.rb +17 -13
  476. data/spec/unit/agent_spec.rb +8 -38
  477. data/spec/unit/application/agent_spec.rb +19 -33
  478. data/spec/unit/application/apply_spec.rb +56 -76
  479. data/spec/unit/application/facts_spec.rb +12 -456
  480. data/spec/unit/application/filebucket_spec.rb +43 -39
  481. data/spec/unit/application/lookup_spec.rb +10 -131
  482. data/spec/unit/application/resource_spec.rb +0 -29
  483. data/spec/unit/application/ssl_spec.rb +2 -25
  484. data/spec/unit/application_spec.rb +9 -51
  485. data/spec/unit/certificate_factory_spec.rb +1 -1
  486. data/spec/unit/configurer/downloader_spec.rb +6 -8
  487. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  488. data/spec/unit/configurer_spec.rb +68 -327
  489. data/spec/unit/confine/feature_spec.rb +1 -1
  490. data/spec/unit/confine_spec.rb +2 -8
  491. data/spec/unit/context/trusted_information_spec.rb +2 -6
  492. data/spec/unit/daemon_spec.rb +11 -2
  493. data/spec/unit/defaults_spec.rb +68 -55
  494. data/spec/unit/environments_spec.rb +68 -408
  495. data/spec/unit/face/generate_spec.rb +0 -64
  496. data/spec/unit/face/node_spec.rb +11 -0
  497. data/spec/unit/face/plugin_spec.rb +73 -33
  498. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  499. data/spec/unit/file_bucket/file_spec.rb +1 -1
  500. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  501. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  502. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  503. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  504. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  505. data/spec/unit/file_system_spec.rb +4 -56
  506. data/spec/unit/forge/module_release_spec.rb +10 -5
  507. data/spec/unit/functions/assert_type_spec.rb +1 -1
  508. data/spec/unit/functions/camelcase_spec.rb +1 -1
  509. data/spec/unit/functions/capitalize_spec.rb +1 -1
  510. data/spec/unit/functions/downcase_spec.rb +1 -1
  511. data/spec/unit/functions/empty_spec.rb +0 -10
  512. data/spec/unit/functions/logging_spec.rb +0 -1
  513. data/spec/unit/functions/lookup_spec.rb +0 -64
  514. data/spec/unit/functions/unwrap_spec.rb +0 -8
  515. data/spec/unit/functions/upcase_spec.rb +1 -1
  516. data/spec/unit/functions/versioncmp_spec.rb +4 -40
  517. data/spec/unit/functions4_spec.rb +2 -2
  518. data/spec/unit/gettext/config_spec.rb +0 -12
  519. data/spec/unit/http/client_spec.rb +8 -84
  520. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  521. data/spec/unit/http/external_client_spec.rb +4 -4
  522. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  523. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  524. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  525. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  526. data/spec/unit/http/resolver_spec.rb +13 -13
  527. data/spec/unit/http/service/compiler_spec.rb +0 -193
  528. data/spec/unit/http/service/file_server_spec.rb +3 -3
  529. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  530. data/spec/unit/http/service_spec.rb +0 -1
  531. data/spec/unit/http/session_spec.rb +16 -14
  532. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  533. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  534. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  535. data/spec/unit/indirector/face_spec.rb +1 -0
  536. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  537. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  538. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  539. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  540. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  541. data/spec/unit/indirector/file_server_spec.rb +1 -15
  542. data/spec/unit/indirector/indirection_spec.rb +15 -18
  543. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  544. data/spec/unit/indirector/request_spec.rb +0 -264
  545. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  546. data/spec/unit/indirector/rest_spec.rb +98 -752
  547. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  548. data/spec/unit/indirector_spec.rb +2 -2
  549. data/spec/unit/interface/action_spec.rb +9 -0
  550. data/spec/unit/module_spec.rb +1 -15
  551. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  552. data/spec/unit/network/authconfig_spec.rb +2 -129
  553. data/spec/unit/network/authorization_spec.rb +2 -55
  554. data/spec/unit/network/formats_spec.rb +4 -51
  555. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  556. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  557. data/spec/unit/network/http/api_spec.rb +10 -0
  558. data/spec/unit/network/http/connection_spec.rb +19 -41
  559. data/spec/unit/network/http/handler_spec.rb +0 -1
  560. data/spec/unit/network/http_pool_spec.rb +0 -4
  561. data/spec/unit/node/environment_spec.rb +33 -21
  562. data/spec/unit/node_spec.rb +2 -60
  563. data/spec/unit/parser/compiler_spec.rb +19 -3
  564. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  565. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  566. data/spec/unit/parser/resource_spec.rb +8 -14
  567. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  568. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  569. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  570. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  571. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  572. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  573. data/spec/unit/pops/parser/parse_containers_spec.rb +13 -2
  574. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  575. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  576. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  577. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  578. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  579. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  580. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  581. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  582. data/spec/unit/pops/validator/validator_spec.rb +61 -51
  583. data/spec/unit/pops/visitor_spec.rb +1 -1
  584. data/spec/unit/property_spec.rb +0 -1
  585. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  586. data/spec/unit/provider/nameservice_spec.rb +64 -122
  587. data/spec/unit/provider/package/apt_spec.rb +23 -28
  588. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  589. data/spec/unit/provider/package/base_spec.rb +5 -6
  590. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  591. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  592. data/spec/unit/provider/package/gem_spec.rb +33 -1
  593. data/spec/unit/provider/package/nim_spec.rb +0 -42
  594. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  595. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  596. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  597. data/spec/unit/provider/package/pip_spec.rb +12 -44
  598. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  599. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  600. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  601. data/spec/unit/provider/package/puppetserver_gem_spec.rb +3 -3
  602. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -17
  603. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  604. data/spec/unit/provider/service/gentoo_spec.rb +5 -6
  605. data/spec/unit/provider/service/init_spec.rb +9 -16
  606. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  607. data/spec/unit/provider/service/openwrt_spec.rb +29 -23
  608. data/spec/unit/provider/service/redhat_spec.rb +2 -3
  609. data/spec/unit/provider/service/smf_spec.rb +401 -165
  610. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  611. data/spec/unit/provider/service/windows_spec.rb +0 -203
  612. data/spec/unit/provider/user/aix_spec.rb +0 -105
  613. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  614. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  615. data/spec/unit/provider/user/pw_spec.rb +0 -2
  616. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  617. data/spec/unit/provider_spec.rb +12 -22
  618. data/spec/unit/puppet_spec.rb +4 -12
  619. data/spec/unit/resource/catalog_spec.rb +2 -15
  620. data/spec/unit/resource/type_collection_spec.rb +2 -22
  621. data/spec/unit/resource/type_spec.rb +1 -1
  622. data/spec/unit/resource_spec.rb +12 -125
  623. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  624. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  625. data/spec/unit/settings/port_setting_spec.rb +31 -0
  626. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  627. data/spec/unit/settings_spec.rb +79 -110
  628. data/spec/unit/ssl/base_spec.rb +37 -3
  629. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  630. data/spec/unit/ssl/certificate_spec.rb +2 -11
  631. data/spec/unit/ssl/ssl_provider_spec.rb +3 -80
  632. data/spec/unit/ssl/state_machine_spec.rb +5 -21
  633. data/spec/unit/ssl/verifier_spec.rb +0 -21
  634. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  635. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  636. data/spec/unit/transaction/persistence_spec.rb +0 -51
  637. data/spec/unit/transaction/report_spec.rb +0 -2
  638. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  639. data/spec/unit/transaction_spec.rb +55 -96
  640. data/spec/unit/type/exec_spec.rb +29 -76
  641. data/spec/unit/type/file/checksum_spec.rb +6 -6
  642. data/spec/unit/type/file/content_spec.rb +2 -1
  643. data/spec/unit/type/file/ensure_spec.rb +1 -1
  644. data/spec/unit/type/file/mode_spec.rb +1 -1
  645. data/spec/unit/type/file/selinux_spec.rb +5 -3
  646. data/spec/unit/type/file/source_spec.rb +4 -5
  647. data/spec/unit/type/file_spec.rb +18 -6
  648. data/spec/unit/type/group_spec.rb +6 -13
  649. data/spec/unit/type/package_spec.rb +1 -1
  650. data/spec/unit/type/resources_spec.rb +7 -7
  651. data/spec/unit/type/service_spec.rb +189 -87
  652. data/spec/unit/type/tidy_spec.rb +8 -24
  653. data/spec/unit/type_spec.rb +24 -4
  654. data/spec/unit/util/at_fork_spec.rb +2 -2
  655. data/spec/unit/util/autoload_spec.rb +1 -5
  656. data/spec/unit/util/backups_spec.rb +2 -3
  657. data/spec/unit/util/execution_spec.rb +11 -44
  658. data/spec/unit/util/inifile_spec.rb +14 -6
  659. data/spec/unit/util/log_spec.rb +7 -8
  660. data/spec/unit/util/logging_spec.rb +3 -5
  661. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  662. data/spec/unit/util/posix_spec.rb +15 -363
  663. data/spec/unit/util/run_mode_spec.rb +21 -121
  664. data/spec/unit/util/selinux_spec.rb +68 -163
  665. data/spec/unit/util/storage_spec.rb +1 -3
  666. data/spec/unit/util/suidmanager_spec.rb +41 -44
  667. data/spec/unit/util/windows/sid_spec.rb +0 -41
  668. data/spec/unit/util/windows/string_spec.rb +1 -3
  669. data/spec/unit/util/yaml_spec.rb +13 -92
  670. data/spec/unit/util_spec.rb +6 -31
  671. data/tasks/generate_cert_fixtures.rake +7 -17
  672. data/tasks/parallel.rake +3 -3
  673. metadata +138 -301
  674. data/conf/auth.conf +0 -150
  675. data/ext/README.md +0 -13
  676. data/lib/puppet/application/cert.rb +0 -76
  677. data/lib/puppet/application/key.rb +0 -4
  678. data/lib/puppet/application/man.rb +0 -4
  679. data/lib/puppet/application/status.rb +0 -4
  680. data/lib/puppet/face/key.rb +0 -16
  681. data/lib/puppet/face/man.rb +0 -145
  682. data/lib/puppet/face/module/build.rb +0 -14
  683. data/lib/puppet/face/module/generate.rb +0 -14
  684. data/lib/puppet/face/module/search.rb +0 -103
  685. data/lib/puppet/face/status.rb +0 -51
  686. data/lib/puppet/facter_impl.rb +0 -96
  687. data/lib/puppet/ffi/posix/constants.rb +0 -14
  688. data/lib/puppet/ffi/posix/functions.rb +0 -24
  689. data/lib/puppet/ffi/posix.rb +0 -10
  690. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  691. data/lib/puppet/indirector/certificate/file.rb +0 -9
  692. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  693. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  694. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  695. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  696. data/lib/puppet/indirector/file_content/http.rb +0 -22
  697. data/lib/puppet/indirector/key/file.rb +0 -46
  698. data/lib/puppet/indirector/key/memory.rb +0 -7
  699. data/lib/puppet/indirector/ssl_file.rb +0 -162
  700. data/lib/puppet/indirector/status/local.rb +0 -12
  701. data/lib/puppet/indirector/status/rest.rb +0 -27
  702. data/lib/puppet/indirector/status.rb +0 -3
  703. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  704. data/lib/puppet/network/auth_config_parser.rb +0 -90
  705. data/lib/puppet/network/authstore.rb +0 -283
  706. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  707. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  708. data/lib/puppet/network/http/base_pool.rb +0 -36
  709. data/lib/puppet/network/http/compression.rb +0 -127
  710. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  711. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  712. data/lib/puppet/network/rest_controller.rb +0 -2
  713. data/lib/puppet/network/rights.rb +0 -210
  714. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  715. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  716. data/lib/puppet/parser/environment_compiler.rb +0 -202
  717. data/lib/puppet/pops/types/enumeration.rb +0 -16
  718. data/lib/puppet/resource/capability_finder.rb +0 -154
  719. data/lib/puppet/rest/errors.rb +0 -15
  720. data/lib/puppet/rest/response.rb +0 -35
  721. data/lib/puppet/rest/route.rb +0 -85
  722. data/lib/puppet/rest/routes.rb +0 -135
  723. data/lib/puppet/settings/alias_setting.rb +0 -37
  724. data/lib/puppet/ssl/host.rb +0 -505
  725. data/lib/puppet/ssl/key.rb +0 -61
  726. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  727. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  728. data/lib/puppet/ssl/validator.rb +0 -61
  729. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  730. data/lib/puppet/status.rb +0 -40
  731. data/lib/puppet/util/connection.rb +0 -88
  732. data/lib/puppet/util/fact_dif.rb +0 -81
  733. data/lib/puppet/util/ssl.rb +0 -83
  734. data/lib/puppet/util/windows/api_types.rb +0 -309
  735. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  736. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  737. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  738. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  739. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  740. data/lib/puppet/vendor/pathspec/README.md +0 -53
  741. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  742. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  743. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  744. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  745. data/man/man8/puppet-key.8 +0 -126
  746. data/man/man8/puppet-man.8 +0 -76
  747. data/man/man8/puppet-status.8 +0 -108
  748. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  749. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  750. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  751. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  752. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  753. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  754. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  755. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  756. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  757. data/spec/fixtures/ssl/oid-key.pem +0 -117
  758. data/spec/fixtures/ssl/oid.pem +0 -69
  759. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  760. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  761. data/spec/integration/application/resource_spec.rb +0 -68
  762. data/spec/integration/application/ssl_spec.rb +0 -20
  763. data/spec/integration/l10n/compiler_spec.rb +0 -37
  764. data/spec/integration/network/authconfig_spec.rb +0 -256
  765. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  766. data/spec/shared_contexts/l10n.rb +0 -32
  767. data/spec/unit/application/man_spec.rb +0 -52
  768. data/spec/unit/capability_spec.rb +0 -414
  769. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  770. data/spec/unit/face/key_spec.rb +0 -9
  771. data/spec/unit/face/module/search_spec.rb +0 -231
  772. data/spec/unit/face/status_spec.rb +0 -9
  773. data/spec/unit/facter_impl_spec.rb +0 -31
  774. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  775. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  776. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  777. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  778. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  779. data/spec/unit/indirector/key/file_spec.rb +0 -78
  780. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  781. data/spec/unit/indirector/status/local_spec.rb +0 -10
  782. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  783. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  784. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  785. data/spec/unit/network/authstore_spec.rb +0 -407
  786. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  787. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  788. data/spec/unit/network/http/compression_spec.rb +0 -240
  789. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  790. data/spec/unit/network/http_spec.rb +0 -9
  791. data/spec/unit/network/rights_spec.rb +0 -439
  792. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  793. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  794. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  795. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  796. data/spec/unit/rest/route_spec.rb +0 -132
  797. data/spec/unit/ssl/host_spec.rb +0 -645
  798. data/spec/unit/ssl/key_spec.rb +0 -173
  799. data/spec/unit/ssl/validator_spec.rb +0 -278
  800. data/spec/unit/status_spec.rb +0 -45
  801. data/spec/unit/util/json_spec.rb +0 -126
  802. data/spec/unit/util/ssl_spec.rb +0 -91
  803. data/spec/unit/util/windows_spec.rb +0 -23
  804. /data/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
  805. /data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
  806. /data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
  807. /data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
  808. /data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
  809. /data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
  810. /data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
  811. /data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
@@ -37,7 +37,7 @@
37
37
  "license": "Apache 2.0",
38
38
  "checksums": { },
39
39
  "version": "0.0.2",
40
- "source": "https://github.com/puppetlabs/puppetlabs-bacula",
40
+ "source": "git://github.com/puppetlabs/puppetlabs-bacula.git",
41
41
  "project_page": "https://github.com/puppetlabs/puppetlabs-bacula",
42
42
  "summary": "bacula",
43
43
  "dependencies": [ ],
@@ -6,10 +6,6 @@ test_aix_user:
6
6
  no_password_user:
7
7
  lastupdate = another_last_update
8
8
 
9
- tab_password_user:
10
- password = some_password
11
- lastupdate = another_last_update
12
-
13
9
  daemon:
14
10
  password = *
15
11
 
@@ -3,7 +3,6 @@ require 'puppet_spec/files'
3
3
  require 'puppet_spec/puppetserver'
4
4
  require 'puppet_spec/compiler'
5
5
  require 'puppet_spec/https'
6
- require 'puppet/application/agent'
7
6
 
8
7
  describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
9
8
  include PuppetSpec::Files
@@ -26,7 +25,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
26
25
  agent.command_line.args << '--test'
27
26
  agent.run
28
27
  }.to exit_with(0)
29
- .and output(%r{HTTP GET https://127.0.0.1:#{port}/status/v1/simple/master returned 200 OK}).to_stdout
28
+ .and output(%r{HTTP GET https://127.0.0.1:#{port}/status/v1/simple/server returned 200 OK}).to_stdout
30
29
  end
31
30
  end
32
31
 
@@ -40,10 +39,9 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
40
39
  agent.run
41
40
  }.to exit_with(0)
42
41
  .and output(%r{Notice: Applied catalog}).to_stdout
43
- .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
42
+ .and output(%r{Unable to connect to server from server_list setting: Request to https://puppet.example.com:#{port}/status/v1/simple/server failed}).to_stderr
44
43
 
45
44
  report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
46
- expect(report.master_used).to eq("127.0.0.1:#{port}")
47
45
  expect(report.server_used).to eq("127.0.0.1:#{port}")
48
46
  end
49
47
  end
@@ -76,7 +74,6 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
76
74
  end
77
75
 
78
76
  report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
79
- expect(report.master_used).to be_nil
80
77
  expect(report.server_used).to be_nil
81
78
  end
82
79
 
@@ -94,17 +91,16 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
94
91
  .and output(%r{Debug: Resolved service 'puppet' to https://127.0.0.1:#{port}/puppet/v3}).to_stdout
95
92
 
96
93
  report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
97
- expect(report.master_used).to eq("127.0.0.1:#{port}")
98
94
  expect(report.server_used).to eq("127.0.0.1:#{port}")
99
95
  end
100
96
  end
101
97
  end
102
98
 
103
99
  context 'rich data' do
104
- it "calls a deferred 4x function" do
100
+ it "applies deferred values" do
105
101
  catalog_handler = -> (req, res) {
106
102
  catalog = compile_to_catalog(<<-MANIFEST, node)
107
- notify { 'deferred4x':
103
+ notify { 'deferred':
108
104
  message => Deferred('join', [[1,2,3], ':'])
109
105
  }
110
106
  MANIFEST
@@ -119,66 +115,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
119
115
  agent.command_line.args << '--test'
120
116
  agent.run
121
117
  }.to exit_with(2)
122
- .and output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred4x\]/message: defined 'message' as '1:2:3'}).to_stdout
123
- end
124
- end
125
-
126
- it "calls a deferred 3x function" do
127
- catalog_handler = -> (req, res) {
128
- catalog = compile_to_catalog(<<-MANIFEST, node)
129
- notify { 'deferred3x':
130
- message => Deferred('sprintf', ['%s', 'I am deferred'])
131
- }
132
- MANIFEST
133
-
134
- res.body = formatter.render(catalog)
135
- res['Content-Type'] = formatter.mime
136
- }
137
-
138
- server.start_server(mounts: {catalog: catalog_handler}) do |port|
139
- Puppet[:serverport] = port
140
- expect {
141
- agent.command_line.args << '--test'
142
- agent.run
143
- }.to exit_with(2)
144
- .and output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred3x\]/message: defined 'message' as 'I am deferred'}).to_stdout
145
- end
146
- end
147
-
148
- it "re-evaluates a deferred function in a cached catalog" do
149
- Puppet[:report] = false
150
- Puppet[:use_cached_catalog] = true
151
- Puppet[:usecacheonfailure] = false
152
-
153
- catalog_dir = File.join(Puppet[:client_datadir], 'catalog')
154
- Puppet::FileSystem.mkpath(catalog_dir)
155
- cached_catalog_path = "#{File.join(catalog_dir, Puppet[:certname])}.json"
156
-
157
- # our catalog contains a deferred function that calls `binary_file`
158
- # to read `source`. The function returns a Binary object, whose
159
- # base64 value is printed to stdout
160
- source = tmpfile('deferred_source')
161
- catalog = File.read(my_fixture('cached_deferred_catalog.json'))
162
- catalog.gsub!('__SOURCE_PATH__', source)
163
- File.write(cached_catalog_path, catalog)
164
-
165
- # verify we get a different result each time the deferred function
166
- # is evaluated, and reads `source`.
167
- {
168
- '1234' => 'MTIzNA==',
169
- '5678' => 'NTY3OA=='
170
- }.each_pair do |content, base64|
171
- File.write(source, content)
172
-
173
- expect {
174
- agent.command_line.args << '-t'
175
- agent.run
176
-
177
- }.to exit_with(2)
178
- .and output(/Notice: #{base64}/).to_stdout
179
-
180
- # reset state so we can run again
181
- Puppet::Application.clear!
118
+ .and output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred\]/message: defined 'message' as '1:2:3'}).to_stdout
182
119
  end
183
120
  end
184
121
 
@@ -309,7 +246,7 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
309
246
  agent.command_line.args << '--test'
310
247
  agent.run
311
248
  }.to exit_with(2)
312
- .and output(/content changed '{md5}d41d8cd98f00b204e9800998ecf8427e' to '{md5}4cf49285ae567157ebfba72bd04ccf32'/).to_stdout
249
+ .and output(/content changed '{sha256}e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' to '{sha256}3bef83ad320b471d8e3a03c9b9f150749eea610fe266560395d3195cfbd8e6b8'/).to_stdout
313
250
 
314
251
  # verify puppet restored binary content
315
252
  expect(File.binread(path)).to eq(binary_content)
@@ -473,376 +410,83 @@ describe "puppet agent", unless: Puppet::Util::Platform.jruby? do
473
410
  end
474
411
 
475
412
  context 'multiple agents running' do
476
- def with_another_agent_running(&block)
413
+ it "exits if an agent is already running" do
477
414
  path = Puppet[:agent_catalog_run_lockfile]
478
415
 
479
416
  th = Thread.new {
480
- %x{ruby -e "$0 = 'puppet'; File.write('#{path}', Process.pid); sleep(5)"}
417
+ %x{ruby -e "$0 = 'puppet'; File.write('#{path}', Process.pid); sleep(20)"}
481
418
  }
482
419
 
483
- # ensure file is written before yielding
484
420
  until File.exists?(path) && File.size(path) > 0 do
485
421
  sleep 0.1
486
422
  end
487
423
 
488
- begin
489
- yield
490
- ensure
491
- th.kill # kill thread so we don't wait too much
492
- end
493
- end
424
+ expect {
425
+ agent.command_line.args << '--test'
426
+ agent.run
427
+ }.to exit_with(1).and output(/Run of Puppet configuration client already in progress; skipping/).to_stdout
494
428
 
495
- it "exits if an agent is already running" do
496
- with_another_agent_running do
497
- expect {
498
- agent.command_line.args << '--test'
499
- agent.run
500
- }.to exit_with(1).and output(/Run of Puppet configuration client already in progress; skipping/).to_stdout
501
- end
429
+ th.kill # kill thread so we don't wait too much
502
430
  end
503
431
 
504
432
  it "waits for other agent run to finish before starting" do
505
433
  server.start_server do |port|
434
+ script = tmpfile('wait_for_log_entry')
435
+ logdest = tmpfile('agent_log')
436
+ path = Puppet[:agent_catalog_run_lockfile]
506
437
  Puppet[:serverport] = port
507
438
  Puppet[:waitforlock] = 1
508
439
 
509
- with_another_agent_running do
510
- expect {
511
- agent.command_line.args << '--test'
512
- agent.run
513
- }.to exit_with(0).and output(/Info: Will try again in #{Puppet[:waitforlock]} seconds./).to_stdout
514
- end
515
- end
516
- end
517
-
518
- it "exits if maxwaitforlock is exceeded" do
519
- Puppet[:waitforlock] = 1
520
- Puppet[:maxwaitforlock] = 0
521
-
522
- with_another_agent_running do
523
- expect {
524
- agent.command_line.args << '--test'
525
- agent.run
526
- }.to exit_with(1).and output(/Exiting now because the maxwaitforlock timeout has been exceeded./).to_stdout
527
- end
528
- end
529
- end
530
-
531
- context 'cached catalogs' do
532
- it 'falls back to a cached catalog' do
533
- catalog_handler = -> (req, res) {
534
- catalog = compile_to_catalog(<<-MANIFEST, node)
535
- notify { 'a message': }
536
- MANIFEST
537
-
538
- res.body = formatter.render(catalog)
539
- res['Content-Type'] = formatter.mime
540
- }
541
-
542
- server.start_server(mounts: {catalog: catalog_handler}) do |port|
543
- Puppet[:serverport] = port
544
- expect {
545
- agent.command_line.args << '--test'
546
- agent.run
547
- }.to exit_with(2)
548
- .and output(%r{Caching catalog for #{Puppet[:certname]}}).to_stdout
549
- end
550
-
551
- # reset state so we can run again
552
- Puppet::Application.clear!
553
-
554
- # --test above turns off `usecacheonfailure` so re-enable here
555
- Puppet[:usecacheonfailure] = true
556
-
557
- # run agent without server
558
- expect {
559
- agent.command_line.args << '--no-daemonize' << '--onetime' << '--server' << '127.0.0.1'
560
- agent.run
561
- }.to exit_with(2)
562
- .and output(a_string_matching(
563
- /Using cached catalog from environment 'production'/
564
- ).and matching(
565
- /Notify\[a message\]\/message:/
566
- )).to_stdout
567
- .and output(/Could not retrieve catalog from remote server/).to_stderr
568
- end
569
-
570
- it 'preserves the old cached catalog if validation fails with the old one' do
571
- catalog_handler = -> (req, res) {
572
- catalog = compile_to_catalog(<<-MANIFEST, node)
573
- exec { 'unqualified_command': }
574
- MANIFEST
575
-
576
- res.body = formatter.render(catalog)
577
- res['Content-Type'] = formatter.mime
578
- }
579
-
580
- server.start_server(mounts: {catalog: catalog_handler}) do |port|
581
- Puppet[:serverport] = port
582
- expect {
583
- agent.command_line.args << '--test'
584
- agent.run
585
- }.to exit_with(1)
586
- .and output(%r{Retrieving plugin}).to_stdout
587
- .and output(%r{Validation of Exec\[unqualified_command\] failed: 'unqualified_command' is not qualified and no path was specified}).to_stderr
588
- end
589
-
590
- # cached catalog should not be updated
591
- cached_catalog = "#{File.join(Puppet[:client_datadir], 'catalog', Puppet[:certname])}.json"
592
- expect(File).to_not be_exist(cached_catalog)
593
- end
594
- end
595
-
596
- context "reporting" do
597
- it "stores a finalized report" do
598
- catalog_handler = -> (req, res) {
599
- catalog = compile_to_catalog(<<-MANIFEST, node)
600
- notify { 'foo':
601
- require => Notify['bar']
440
+ th = Thread.new {
441
+ File.write(script, <<~SCRIPT)
442
+ $0 = 'puppet'
443
+ # lock pidfile
444
+ File.write('#{path}', Process.pid)
445
+ # wait for foreground agent to fail once
446
+ until File.exists?("#{logdest}") && File.readlines("#{logdest}").grep(/Will try again/).any? do
447
+ sleep 0.1
448
+ end
449
+ SCRIPT
450
+ %x{ruby '#{script}'}
602
451
  }
603
452
 
604
- notify { 'bar':
605
- require => Notify['foo']
606
- }
607
- MANIFEST
608
-
609
- res.body = formatter.render(catalog)
610
- res['Content-Type'] = formatter.mime
611
- }
612
-
613
- server.start_server(mounts: {catalog: catalog_handler}) do |port|
614
- Puppet[:serverport] = port
615
- expect {
616
- agent.command_line.args << '--test'
617
- agent.run
618
- }.to exit_with(1)
619
- .and output(%r{Applying configuration}).to_stdout
620
- .and output(%r{Found 1 dependency cycle}).to_stderr
621
-
622
- report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
623
- expect(report.status).to eq("failed")
624
- expect(report.metrics).to_not be_empty
625
- end
626
- end
627
-
628
- it "caches a report even if the REST request fails" do
629
- server.start_server do |port|
630
- Puppet[:serverport] = port
631
- Puppet[:report_port] = "-1"
632
- expect {
633
- agent.command_line.args << '--test'
634
- agent.run
635
- }.to exit_with(0)
636
- .and output(%r{Applied catalog}).to_stdout
637
- .and output(%r{Could not send report}).to_stderr
638
-
639
- report = Puppet::Transaction::Report.convert_from(:yaml, File.read(Puppet[:lastrunreport]))
640
- expect(report).to be
641
- end
642
- end
643
- end
644
-
645
- context "environment convergence" do
646
- it "falls back to making a node request if the last server-specified environment cannot be loaded" do
647
- mounts = {}
648
- mounts[:node] = -> (req, res) {
649
- node = Puppet::Node.new('test', environment: Puppet::Node::Environment.remote('doesnotexistonagent'))
650
- res.body = formatter.render(node)
651
- res['Content-Type'] = formatter.mime
652
- }
653
-
654
- server.start_server(mounts: mounts) do |port|
655
- Puppet[:serverport] = port
656
- Puppet[:log_level] = 'debug'
453
+ until File.exists?(path) && File.size(path) > 0 do
454
+ sleep 0.1
455
+ end
657
456
 
658
457
  expect {
659
- agent.command_line.args << '--test'
458
+ agent.command_line.args << '--test' << '--logdest' << logdest << '--logdest' << 'console'
660
459
  agent.run
661
460
  }.to exit_with(0)
662
- .and output(a_string_matching(%r{Debug: Requesting environment from the server})).to_stdout
663
-
664
- Puppet::Application.clear!
461
+ .and output(a_string_matching(
462
+ /Info: Will try again in #{Puppet[:waitforlock]} seconds/
463
+ ).and matching(
464
+ /Applied catalog/
465
+ )).to_stdout
665
466
 
666
- expect {
667
- agent.command_line.args << '--test'
668
- agent.run
669
- }.to exit_with(0)
670
- .and output(a_string_matching(%r{Debug: Successfully loaded last environment from the lastrunfile})).to_stdout
467
+ th.kill # kill thread so we don't wait too much
671
468
  end
672
469
  end
673
470
 
674
- it "switches to 'newenv' environment and retries the run" do
675
- first_run = true
676
- libdir = File.join(my_fixture_dir, 'lib')
677
-
678
- # we have to use the :facter terminus to reliably test that pluginsynced
679
- # facts are included in the catalog request
680
- Puppet::Node::Facts.indirection.terminus_class = :facter
681
-
682
- mounts = {}
683
-
684
- # During the first run, only return metadata for the top-level directory.
685
- # During the second run, include metadata for all of the 'lib' fixtures
686
- # due to the `recurse` option.
687
- mounts[:file_metadatas] = -> (req, res) {
688
- request = Puppet::FileServing::Metadata.indirection.request(
689
- :search, libdir, nil, recurse: !first_run
690
- )
691
- data = Puppet::FileServing::Metadata.indirection.terminus(:file).search(request)
692
- res.body = formatter.render(data)
693
- res['Content-Type'] = formatter.mime
694
- }
695
-
696
- mounts[:file_content] = -> (req, res) {
697
- request = Puppet::FileServing::Content.indirection.request(
698
- :find, File.join(libdir, 'facter', 'agent_spec_role.rb'), nil
699
- )
700
- content = Puppet::FileServing::Content.indirection.terminus(:file).find(request)
701
- res.body = content.content
702
- res['Content-Length'] = content.content.length
703
- res['Content-Type'] = 'application/octet-stream'
704
- }
705
-
706
- # During the first run, return an empty catalog referring to the newenv.
707
- # During the second run, compile a catalog that depends on a fact that
708
- # only exists in the second environment. If the fact is missing/empty,
709
- # then compilation will fail since resources can't have an empty title.
710
- mounts[:catalog] = -> (req, res) {
711
- node = Puppet::Node.new('test')
712
-
713
- code = if first_run
714
- first_run = false
715
- ''
716
- else
717
- data = CGI.unescape(req.query['facts'])
718
- facts = Puppet::Node::Facts.convert_from('json', data)
719
- node.fact_merge(facts)
720
- 'notify { $facts["agent_spec_role"]: }'
721
- end
722
-
723
- catalog = compile_to_catalog(code, node)
724
- catalog.environment = 'newenv'
471
+ it "exits if maxwaitforlock is exceeded" do
472
+ path = Puppet[:agent_catalog_run_lockfile]
473
+ Puppet[:waitforlock] = 1
474
+ Puppet[:maxwaitforlock] = 0
725
475
 
726
- res.body = formatter.render(catalog)
727
- res['Content-Type'] = formatter.mime
476
+ th = Thread.new {
477
+ %x{ruby -e "$0 = 'puppet'; File.write('#{path}', Process.pid); sleep(20)"}
728
478
  }
729
479
 
730
- server.start_server(mounts: mounts) do |port|
731
- Puppet[:serverport] = port
732
- expect {
733
- agent.command_line.args << '--test'
734
- agent.run
735
- }.to exit_with(2)
736
- .and output(a_string_matching(%r{Notice: Local environment: 'production' doesn't match server specified environment 'newenv', restarting agent run with environment 'newenv'})
737
- .and matching(%r{defined 'message' as 'web'})).to_stdout
738
- end
739
- end
740
- end
741
-
742
- context "ssl" do
743
- context "bootstrapping" do
744
- before :each do
745
- # reconfigure ssl to non-existent dir and files to force bootstrapping
746
- dir = tmpdir('ssl')
747
- Puppet[:ssldir] = dir
748
- Puppet[:localcacert] = File.join(dir, 'ca.pem')
749
- Puppet[:hostcrl] = File.join(dir, 'crl.pem')
750
- Puppet[:hostprivkey] = File.join(dir, 'cert.pem')
751
- Puppet[:hostcert] = File.join(dir, 'key.pem')
752
-
753
- Puppet[:daemonize] = false
754
- Puppet[:logdest] = 'console'
755
- Puppet[:log_level] = 'info'
756
- end
757
-
758
- it "exits if the agent is not allowed to wait" do
759
- Puppet[:waitforcert] = 0
760
-
761
- server.start_server do |port|
762
- Puppet[:serverport] = port
763
- expect {
764
- agent.run
765
- }.to exit_with(1)
766
- .and output(%r{Exiting now because the waitforcert setting is set to 0}).to_stdout
767
- .and output(%r{Failed to submit the CSR, HTTP response was 404}).to_stderr
768
- end
769
- end
770
-
771
- it "exits if the maxwaitforcert time is exceeded" do
772
- Puppet[:waitforcert] = 1
773
- Puppet[:maxwaitforcert] = 1
774
-
775
- server.start_server do |port|
776
- Puppet[:serverport] = port
777
- expect {
778
- agent.run
779
- }.to exit_with(1)
780
- .and output(%r{Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate \(127.0.0.1\). Exiting now because the maxwaitforcert timeout has been exceeded.}).to_stdout
781
- .and output(%r{Failed to submit the CSR, HTTP response was 404}).to_stderr
782
- end
783
- end
784
- end
785
-
786
- def copy_fixtures(sources, dest)
787
- ssldir = File.join(PuppetSpec::FIXTURE_DIR, 'ssl')
788
- File.open(dest, 'w') do |f|
789
- sources.each do |s|
790
- f.write(File.read(File.join(ssldir, s)))
791
- end
480
+ until File.exists?(path) && File.size(path) > 0 do
481
+ sleep 0.1
792
482
  end
793
- end
794
-
795
- it "reloads the CRL between runs" do
796
- Puppet[:localcacert] = ca = tmpfile('ca')
797
- Puppet[:hostcrl] = crl = tmpfile('crl')
798
- Puppet[:hostcert] = cert = tmpfile('cert')
799
- Puppet[:hostprivkey] = key = tmpfile('key')
800
-
801
- copy_fixtures(%w[ca.pem intermediate.pem], ca)
802
- copy_fixtures(%w[crl.pem intermediate-crl.pem], crl)
803
- copy_fixtures(%w[127.0.0.1.pem], cert)
804
- copy_fixtures(%w[127.0.0.1-key.pem], key)
805
-
806
- revoked = cert_fixture('revoked.pem')
807
- revoked_key = key_fixture('revoked-key.pem')
808
-
809
- mounts = {}
810
- mounts[:catalog] = -> (req, res) {
811
- catalog = compile_to_catalog(<<~MANIFEST, node)
812
- file { '#{cert}':
813
- ensure => file,
814
- content => '#{revoked}'
815
- }
816
- file { '#{key}':
817
- ensure => file,
818
- content => '#{revoked_key}'
819
- }
820
- MANIFEST
821
483
 
822
- res.body = formatter.render(catalog)
823
- res['Content-Type'] = formatter.mime
824
- }
825
-
826
- server.start_server(mounts: mounts) do |port|
827
- Puppet[:serverport] = port
828
- Puppet[:daemonize] = false
829
- Puppet[:runinterval] = 1
830
- Puppet[:waitforcert] = 1
831
- Puppet[:maxwaitforcert] = 1
832
-
833
- # simulate two runs of the agent, then return so we don't infinite loop
834
- allow_any_instance_of(Puppet::Daemon).to receive(:run_event_loop) do |instance|
835
- instance.agent.run(splay: false)
836
- instance.agent.run(splay: false)
837
- end
484
+ expect {
485
+ agent.command_line.args << '--test'
486
+ agent.run
487
+ }.to exit_with(1).and output(/Exiting now because the maxwaitforlock timeout has been exceeded./).to_stdout
838
488
 
839
- agent.command_line.args << '--verbose'
840
- expect {
841
- agent.run
842
- }.to exit_with(1)
843
- .and output(%r{Exiting now because the maxwaitforcert timeout has been exceeded}).to_stdout
844
- .and output(%r{Certificate 'CN=revoked' is revoked}).to_stderr
845
- end
489
+ th.kill # kill thread so we don't wait too much
846
490
  end
847
491
  end
848
492
  end
@@ -532,7 +532,7 @@ class amod::bad_type {
532
532
  ).and matching(
533
533
  /dir1\/dir2\]\/ensure: created/
534
534
  ).and matching(
535
- /dir1\/dir2\/file\]\/ensure: defined content as '{md5}51f37efb13c3a1e486106f90db6490a5'/
535
+ /dir1\/dir2\/file\]\/ensure: defined content as '{sha256}b37c1d77e09471b3139b2cdfee449fd8ba72ebf7634d52023aff0c0cd088cf1b'/
536
536
  )).to_stdout
537
537
 
538
538
  dest_file = File.join(base_dir, 'dir1', 'dir2', 'file')
@@ -663,23 +663,4 @@ class amod::bad_type {
663
663
  end
664
664
  end
665
665
  end
666
-
667
- context 'rich data' do
668
- it "calls a deferred 4x function" do
669
- apply.command_line.args = ['-e', 'notify { "deferred3x": message => Deferred("join", [[1,2,3], ":"]) }']
670
-
671
- expect {
672
- apply.run
673
- }.to exit_with(0) # for some reason apply returns 0 instead of 2
674
- .and output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred3x\]/message: defined 'message' as '1:2:3'}).to_stdout
675
- end
676
-
677
- it "calls a deferred 3x function" do
678
- apply.command_line.args = ['-e', 'notify { "deferred4x": message => Deferred("sprintf", ["%s", "I am deferred"]) }']
679
- expect {
680
- apply.run
681
- }.to exit_with(0) # for some reason apply returns 0 instead of 2
682
- .and output(%r{Notice: /Stage\[main\]/Main/Notify\[deferred4x\]/message: defined 'message' as 'I am deferred'}).to_stdout
683
- end
684
- end
685
666
  end