puppet 6.25.1-universal-darwin → 7.0.0-universal-darwin

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 (784) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +16 -2
  3. data/CONTRIBUTING.md +5 -5
  4. data/Gemfile +3 -5
  5. data/Gemfile.lock +39 -51
  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 +1 -15
  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/{examples/enc → ext}/regexp_nodes/classes/databases +0 -0
  87. data/{examples/enc → ext}/regexp_nodes/classes/webservers +0 -0
  88. data/{examples/enc → ext}/regexp_nodes/environment/development +0 -0
  89. data/{examples/enc → ext}/regexp_nodes/parameters/service/prod +0 -0
  90. data/{examples/enc → ext}/regexp_nodes/parameters/service/qa +0 -0
  91. data/{examples/enc → ext}/regexp_nodes/parameters/service/sandbox +0 -0
  92. data/{examples/enc → ext}/regexp_nodes/regexp_nodes.rb +0 -0
  93. data/ext/solaris/pkginfo +6 -0
  94. data/ext/solaris/smf/puppetd.xml +77 -0
  95. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  96. data/ext/solaris/smf/svc-puppetd +71 -0
  97. data/ext/solaris/smf/svc-puppetmasterd +67 -0
  98. data/ext/suse/puppet.spec +310 -0
  99. data/ext/suse/server.init +173 -0
  100. data/ext/windows/service/daemon.rb +6 -5
  101. data/ext/yaml_nodes.rb +105 -0
  102. data/install.rb +21 -17
  103. data/lib/puppet/application/agent.rb +4 -16
  104. data/lib/puppet/application/apply.rb +4 -24
  105. data/lib/puppet/application/device.rb +100 -106
  106. data/lib/puppet/application/filebucket.rb +13 -10
  107. data/lib/puppet/application/resource.rb +16 -32
  108. data/lib/puppet/application/script.rb +0 -2
  109. data/lib/puppet/application/ssl.rb +1 -13
  110. data/lib/puppet/application.rb +178 -108
  111. data/lib/puppet/application_support.rb +0 -7
  112. data/lib/puppet/concurrent/thread_local_singleton.rb +0 -1
  113. data/lib/puppet/configurer/downloader.rb +1 -2
  114. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  115. data/lib/puppet/configurer.rb +86 -189
  116. data/lib/puppet/confine/variable.rb +1 -1
  117. data/lib/puppet/defaults.rb +128 -232
  118. data/lib/puppet/environments.rb +82 -146
  119. data/lib/puppet/face/facts.rb +5 -103
  120. data/lib/puppet/face/help/action.erb +0 -1
  121. data/lib/puppet/face/help/face.erb +0 -1
  122. data/lib/puppet/face/help.rb +1 -1
  123. data/lib/puppet/face/node/clean.rb +0 -11
  124. data/lib/puppet/face/plugin.rb +5 -8
  125. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  126. data/lib/puppet/ffi/windows/constants.rb +404 -0
  127. data/lib/puppet/ffi/windows/functions.rb +628 -0
  128. data/lib/puppet/ffi/windows/structs.rb +338 -0
  129. data/lib/puppet/ffi/windows.rb +12 -0
  130. data/lib/puppet/file_serving/configuration/parser.rb +3 -34
  131. data/lib/puppet/file_serving/configuration.rb +0 -8
  132. data/lib/puppet/file_serving/fileset.rb +2 -14
  133. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  134. data/lib/puppet/file_serving/mount/file.rb +4 -4
  135. data/lib/puppet/file_serving/mount.rb +1 -2
  136. data/lib/puppet/file_system/file_impl.rb +1 -3
  137. data/lib/puppet/file_system/memory_file.rb +1 -8
  138. data/lib/puppet/file_system/windows.rb +2 -4
  139. data/lib/puppet/forge/repository.rb +0 -1
  140. data/lib/puppet/forge.rb +4 -4
  141. data/lib/puppet/functions/all.rb +1 -1
  142. data/lib/puppet/functions/camelcase.rb +1 -1
  143. data/lib/puppet/functions/capitalize.rb +2 -2
  144. data/lib/puppet/functions/downcase.rb +2 -2
  145. data/lib/puppet/functions/empty.rb +0 -8
  146. data/lib/puppet/functions/find_template.rb +2 -2
  147. data/lib/puppet/functions/get.rb +5 -5
  148. data/lib/puppet/functions/group_by.rb +5 -13
  149. data/lib/puppet/functions/lest.rb +1 -1
  150. data/lib/puppet/functions/new.rb +100 -100
  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 +9 -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/generate/models/type/type.rb +4 -1
  160. data/lib/puppet/http/client.rb +165 -115
  161. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  162. data/lib/puppet/http/errors.rb +16 -0
  163. data/lib/puppet/http/external_client.rb +5 -7
  164. data/lib/puppet/{network/http → http}/factory.rb +8 -15
  165. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  166. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  167. data/lib/puppet/http/proxy.rb +137 -0
  168. data/lib/puppet/http/redirector.rb +4 -17
  169. data/lib/puppet/http/resolver/server_list.rb +10 -25
  170. data/lib/puppet/http/resolver/settings.rb +4 -7
  171. data/lib/puppet/http/resolver/srv.rb +7 -11
  172. data/lib/puppet/http/resolver.rb +5 -15
  173. data/lib/puppet/http/response.rb +36 -54
  174. data/lib/puppet/http/response_converter.rb +24 -0
  175. data/lib/puppet/http/response_net_http.rb +42 -0
  176. data/lib/puppet/http/retry_after_handler.rb +4 -13
  177. data/lib/puppet/http/service/ca.rb +11 -22
  178. data/lib/puppet/http/service/compiler.rb +23 -144
  179. data/lib/puppet/http/service/file_server.rb +19 -29
  180. data/lib/puppet/http/service/puppetserver.rb +26 -12
  181. data/lib/puppet/http/service/report.rb +8 -10
  182. data/lib/puppet/http/service.rb +12 -26
  183. data/lib/puppet/http/session.rb +11 -20
  184. data/lib/puppet/{network/http → http}/site.rb +1 -2
  185. data/lib/puppet/http.rb +22 -13
  186. data/lib/puppet/indirector/catalog/compiler.rb +6 -25
  187. data/lib/puppet/indirector/catalog/rest.rb +2 -5
  188. data/lib/puppet/indirector/facts/facter.rb +6 -6
  189. data/lib/puppet/indirector/facts/rest.rb +3 -22
  190. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  191. data/lib/puppet/indirector/file_content/rest.rb +2 -6
  192. data/lib/puppet/indirector/file_metadata/rest.rb +3 -10
  193. data/lib/puppet/indirector/file_server.rb +1 -8
  194. data/lib/puppet/indirector/generic_http.rb +0 -11
  195. data/lib/puppet/indirector/indirection.rb +1 -1
  196. data/lib/puppet/indirector/node/rest.rb +2 -4
  197. data/lib/puppet/indirector/report/rest.rb +3 -8
  198. data/lib/puppet/indirector/request.rb +0 -101
  199. data/lib/puppet/indirector/resource/ral.rb +1 -6
  200. data/lib/puppet/indirector/rest.rb +12 -263
  201. data/lib/puppet/indirector/terminus.rb +0 -4
  202. data/lib/puppet/interface/documentation.rb +0 -1
  203. data/lib/puppet/module/plan.rb +1 -0
  204. data/lib/puppet/module/task.rb +1 -1
  205. data/lib/puppet/module.rb +0 -1
  206. data/lib/puppet/module_tool/applications/installer.rb +2 -56
  207. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  208. data/lib/puppet/module_tool/applications/upgrader.rb +1 -1
  209. data/lib/puppet/module_tool/applications.rb +0 -1
  210. data/lib/puppet/module_tool/errors/shared.rb +2 -34
  211. data/lib/puppet/network/authconfig.rb +2 -96
  212. data/lib/puppet/network/authorization.rb +13 -35
  213. data/lib/puppet/network/formats.rb +0 -67
  214. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  215. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  216. data/lib/puppet/network/http/connection.rb +247 -316
  217. data/lib/puppet/network/http/handler.rb +0 -1
  218. data/lib/puppet/network/http.rb +3 -3
  219. data/lib/puppet/network/http_pool.rb +16 -34
  220. data/lib/puppet/node/environment.rb +11 -10
  221. data/lib/puppet/node.rb +1 -30
  222. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  223. data/lib/puppet/pal/pal_impl.rb +4 -2
  224. data/lib/puppet/parser/ast/leaf.rb +2 -3
  225. data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
  226. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  227. data/lib/puppet/parser/compiler.rb +0 -198
  228. data/lib/puppet/parser/functions/fqdn_rand.rb +6 -14
  229. data/lib/puppet/parser/resource.rb +1 -70
  230. data/lib/puppet/parser/scope.rb +0 -1
  231. data/lib/puppet/parser/templatewrapper.rb +1 -2
  232. data/lib/puppet/pops/evaluator/closure.rb +5 -7
  233. data/lib/puppet/pops/evaluator/deferred_resolver.rb +3 -5
  234. data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
  235. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -4
  236. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  237. data/lib/puppet/pops/issues.rb +0 -5
  238. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  239. data/lib/puppet/pops/lookup/lookup_adapter.rb +2 -3
  240. data/lib/puppet/pops/model/ast.pp +0 -42
  241. data/lib/puppet/pops/model/ast.rb +0 -291
  242. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  243. data/lib/puppet/pops/model/factory.rb +1 -47
  244. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  245. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  246. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  247. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  248. data/lib/puppet/pops/parser/eparser.rb +1691 -1883
  249. data/lib/puppet/pops/parser/lexer2.rb +91 -92
  250. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  251. data/lib/puppet/pops/parser/slurp_support.rb +0 -1
  252. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
  253. data/lib/puppet/pops/serialization/to_data_converter.rb +6 -18
  254. data/lib/puppet/pops/serialization/to_stringified_converter.rb +1 -1
  255. data/lib/puppet/pops/types/p_sem_ver_type.rb +2 -8
  256. data/lib/puppet/pops/types/p_sensitive_type.rb +0 -10
  257. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  258. data/lib/puppet/pops/types/type_formatter.rb +3 -4
  259. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  260. data/lib/puppet/pops/types/type_parser.rb +0 -4
  261. data/lib/puppet/pops/types/types.rb +1 -2
  262. data/lib/puppet/pops/validation/checker4_0.rb +9 -37
  263. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  264. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
  265. data/lib/puppet/property/list.rb +1 -1
  266. data/lib/puppet/provider/aix_object.rb +1 -1
  267. data/lib/puppet/provider/exec/posix.rb +4 -16
  268. data/lib/puppet/provider/group/groupadd.rb +10 -18
  269. data/lib/puppet/provider/nameservice.rb +0 -18
  270. data/lib/puppet/provider/package/apt.rb +2 -34
  271. data/lib/puppet/provider/package/aptitude.rb +0 -6
  272. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  273. data/lib/puppet/provider/package/dpkg.rb +0 -10
  274. data/lib/puppet/provider/package/gem.rb +23 -3
  275. data/lib/puppet/provider/package/nim.rb +6 -11
  276. data/lib/puppet/provider/package/pip.rb +3 -16
  277. data/lib/puppet/provider/package/pkg.rb +2 -23
  278. data/lib/puppet/provider/package/portage.rb +1 -1
  279. data/lib/puppet/provider/package/puppet_gem.rb +1 -4
  280. data/lib/puppet/provider/package/puppetserver_gem.rb +1 -1
  281. data/lib/puppet/provider/package/yum.rb +1 -1
  282. data/lib/puppet/provider/parsedfile.rb +0 -3
  283. data/lib/puppet/provider/service/base.rb +1 -1
  284. data/lib/puppet/provider/service/debian.rb +0 -2
  285. data/lib/puppet/provider/service/init.rb +5 -5
  286. data/lib/puppet/provider/service/launchd.rb +2 -2
  287. data/lib/puppet/provider/service/redhat.rb +1 -1
  288. data/lib/puppet/provider/service/smf.rb +194 -76
  289. data/lib/puppet/provider/service/systemd.rb +6 -16
  290. data/lib/puppet/provider/service/upstart.rb +5 -5
  291. data/lib/puppet/provider/service/windows.rb +0 -38
  292. data/lib/puppet/provider/user/aix.rb +3 -46
  293. data/lib/puppet/provider/user/directoryservice.rb +11 -34
  294. data/lib/puppet/provider/user/useradd.rb +24 -134
  295. data/lib/puppet/provider.rb +1 -14
  296. data/lib/puppet/reference/configuration.rb +8 -7
  297. data/lib/puppet/reference/indirection.rb +1 -1
  298. data/lib/puppet/reference/providers.rb +2 -2
  299. data/lib/puppet/resource/catalog.rb +2 -15
  300. data/lib/puppet/resource/type.rb +3 -119
  301. data/lib/puppet/resource/type_collection.rb +3 -49
  302. data/lib/puppet/resource.rb +6 -127
  303. data/lib/puppet/runtime.rb +2 -13
  304. data/lib/puppet/settings/environment_conf.rb +0 -1
  305. data/lib/puppet/settings/integer_setting.rb +17 -0
  306. data/lib/puppet/settings/port_setting.rb +15 -0
  307. data/lib/puppet/settings/priority_setting.rb +5 -4
  308. data/lib/puppet/settings.rb +82 -98
  309. data/lib/puppet/ssl/base.rb +3 -5
  310. data/lib/puppet/ssl/certificate.rb +0 -6
  311. data/lib/puppet/ssl/certificate_request.rb +1 -12
  312. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  313. data/lib/puppet/ssl/oids.rb +3 -1
  314. data/lib/puppet/ssl/ssl_provider.rb +17 -0
  315. data/lib/puppet/ssl/state_machine.rb +3 -1
  316. data/lib/puppet/ssl/verifier.rb +2 -0
  317. data/lib/puppet/ssl.rb +10 -6
  318. data/lib/puppet/test/test_helper.rb +2 -7
  319. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  320. data/lib/puppet/transaction/persistence.rb +1 -11
  321. data/lib/puppet/transaction/report.rb +3 -19
  322. data/lib/puppet/transaction.rb +1 -7
  323. data/lib/puppet/type/exec.rb +5 -35
  324. data/lib/puppet/type/file/checksum.rb +1 -1
  325. data/lib/puppet/type/file/mode.rb +0 -6
  326. data/lib/puppet/type/file/selcontext.rb +1 -1
  327. data/lib/puppet/type/file/source.rb +1 -1
  328. data/lib/puppet/type/file.rb +12 -32
  329. data/lib/puppet/type/filebucket.rb +4 -4
  330. data/lib/puppet/type/group.rb +1 -0
  331. data/lib/puppet/type/package.rb +8 -16
  332. data/lib/puppet/type/resources.rb +1 -1
  333. data/lib/puppet/type/service.rb +41 -26
  334. data/lib/puppet/type/tidy.rb +3 -22
  335. data/lib/puppet/type/user.rb +21 -38
  336. data/lib/puppet/type.rb +1 -77
  337. data/lib/puppet/util/autoload.rb +8 -1
  338. data/lib/puppet/util/command_line.rb +1 -1
  339. data/lib/puppet/util/execution.rb +0 -11
  340. data/lib/puppet/util/filetype.rb +2 -2
  341. data/lib/puppet/util/http_proxy.rb +2 -215
  342. data/lib/puppet/util/json.rb +0 -3
  343. data/lib/puppet/util/log.rb +2 -1
  344. data/lib/puppet/util/logging.rb +25 -1
  345. data/lib/puppet/util/monkey_patches.rb +0 -53
  346. data/lib/puppet/util/pidlock.rb +1 -1
  347. data/lib/puppet/util/posix.rb +5 -54
  348. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  349. data/lib/puppet/util/rdoc.rb +0 -7
  350. data/lib/puppet/util/retry_action.rb +1 -1
  351. data/lib/puppet/util/run_mode.rb +9 -1
  352. data/lib/puppet/util/selinux.rb +4 -30
  353. data/lib/puppet/util/suidmanager.rb +2 -1
  354. data/lib/puppet/util/symbolic_file_mode.rb +17 -29
  355. data/lib/puppet/util/tagging.rb +0 -1
  356. data/lib/puppet/util/windows/adsi.rb +0 -46
  357. data/lib/puppet/util/windows/daemon.rb +360 -0
  358. data/lib/puppet/util/windows/error.rb +1 -0
  359. data/lib/puppet/util/windows/eventlog.rb +4 -9
  360. data/lib/puppet/util/windows/file.rb +8 -242
  361. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  362. data/lib/puppet/util/windows/principal.rb +2 -9
  363. data/lib/puppet/util/windows/process.rb +4 -226
  364. data/lib/puppet/util/windows/service.rb +11 -457
  365. data/lib/puppet/util/windows/sid.rb +2 -6
  366. data/lib/puppet/util/windows/string.rb +12 -13
  367. data/lib/puppet/util/windows/user.rb +2 -0
  368. data/lib/puppet/util/windows.rb +3 -11
  369. data/lib/puppet/util/yaml.rb +0 -22
  370. data/lib/puppet/util.rb +3 -4
  371. data/lib/puppet/vendor/require_vendored.rb +0 -1
  372. data/lib/puppet/version.rb +1 -1
  373. data/lib/puppet/x509/cert_provider.rb +29 -1
  374. data/lib/puppet/x509.rb +5 -1
  375. data/lib/puppet.rb +20 -25
  376. data/locales/puppet.pot +816 -1637
  377. data/man/man5/puppet.conf.5 +286 -382
  378. data/man/man8/puppet-agent.8 +2 -5
  379. data/man/man8/puppet-apply.8 +2 -2
  380. data/man/man8/puppet-catalog.8 +9 -9
  381. data/man/man8/puppet-config.8 +1 -1
  382. data/man/man8/puppet-describe.8 +1 -1
  383. data/man/man8/puppet-device.8 +2 -2
  384. data/man/man8/puppet-doc.8 +1 -1
  385. data/man/man8/puppet-epp.8 +1 -1
  386. data/man/man8/puppet-facts.8 +8 -51
  387. data/man/man8/puppet-filebucket.8 +4 -4
  388. data/man/man8/puppet-generate.8 +1 -1
  389. data/man/man8/puppet-help.8 +1 -1
  390. data/man/man8/puppet-lookup.8 +1 -1
  391. data/man/man8/puppet-module.8 +3 -60
  392. data/man/man8/puppet-node.8 +5 -5
  393. data/man/man8/puppet-parser.8 +1 -1
  394. data/man/man8/puppet-plugin.8 +1 -1
  395. data/man/man8/puppet-report.8 +5 -5
  396. data/man/man8/puppet-resource.8 +1 -1
  397. data/man/man8/puppet-script.8 +2 -2
  398. data/man/man8/puppet-ssl.8 +1 -5
  399. data/man/man8/puppet.8 +2 -2
  400. data/spec/fixtures/ssl/127.0.0.1-key.pem +57 -107
  401. data/spec/fixtures/ssl/127.0.0.1.pem +31 -52
  402. data/spec/fixtures/ssl/bad-basic-constraints.pem +35 -57
  403. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +35 -57
  404. data/spec/fixtures/ssl/ca.pem +35 -57
  405. data/spec/fixtures/ssl/crl.pem +18 -28
  406. data/spec/fixtures/ssl/ec-key.pem +11 -11
  407. data/spec/fixtures/ssl/ec.pem +24 -33
  408. data/spec/fixtures/ssl/encrypted-ec-key.pem +12 -12
  409. data/spec/fixtures/ssl/encrypted-key.pem +58 -108
  410. data/spec/fixtures/ssl/intermediate-agent-crl.pem +19 -28
  411. data/spec/fixtures/ssl/intermediate-agent.pem +36 -57
  412. data/spec/fixtures/ssl/intermediate-crl.pem +21 -31
  413. data/spec/fixtures/ssl/intermediate.pem +36 -57
  414. data/spec/fixtures/ssl/pluto-key.pem +57 -107
  415. data/spec/fixtures/ssl/pluto.pem +30 -52
  416. data/spec/fixtures/ssl/request-key.pem +57 -107
  417. data/spec/fixtures/ssl/request.pem +26 -47
  418. data/spec/fixtures/ssl/revoked-key.pem +57 -107
  419. data/spec/fixtures/ssl/revoked.pem +30 -52
  420. data/spec/fixtures/ssl/signed-key.pem +57 -107
  421. data/spec/fixtures/ssl/signed.pem +30 -52
  422. data/spec/fixtures/ssl/tampered-cert.pem +30 -52
  423. data/spec/fixtures/ssl/tampered-csr.pem +26 -47
  424. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +57 -107
  425. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +29 -50
  426. data/spec/fixtures/ssl/unknown-ca-key.pem +57 -107
  427. data/spec/fixtures/ssl/unknown-ca.pem +33 -55
  428. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  429. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -4
  430. data/spec/integration/application/agent_spec.rb +51 -299
  431. data/spec/integration/application/apply_spec.rb +1 -20
  432. data/spec/integration/application/filebucket_spec.rb +16 -32
  433. data/spec/integration/application/help_spec.rb +2 -0
  434. data/spec/integration/application/module_spec.rb +0 -21
  435. data/spec/integration/application/plugin_spec.rb +24 -2
  436. data/spec/integration/configurer_spec.rb +2 -18
  437. data/spec/integration/defaults_spec.rb +14 -3
  438. data/spec/integration/environments/settings_interpolation_spec.rb +4 -0
  439. data/spec/integration/http/client_spec.rb +0 -12
  440. data/spec/integration/indirector/direct_file_server_spec.rb +3 -1
  441. data/spec/integration/indirector/facts/facter_spec.rb +39 -93
  442. data/spec/integration/network/http_pool_spec.rb +3 -21
  443. data/spec/integration/parser/catalog_spec.rb +0 -38
  444. data/spec/integration/parser/node_spec.rb +0 -9
  445. data/spec/integration/parser/pcore_resource_spec.rb +0 -47
  446. data/spec/integration/resource/type_collection_spec.rb +6 -2
  447. data/spec/integration/transaction/report_spec.rb +1 -1
  448. data/spec/integration/transaction_spec.rb +9 -4
  449. data/spec/integration/type/exec_spec.rb +45 -70
  450. data/spec/integration/type/file_spec.rb +7 -6
  451. data/spec/integration/type/package_spec.rb +6 -6
  452. data/spec/integration/util/rdoc/parser_spec.rb +1 -1
  453. data/spec/integration/util/windows/adsi_spec.rb +1 -21
  454. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  455. data/spec/integration/util/windows/principal_spec.rb +0 -21
  456. data/spec/integration/util/windows/process_spec.rb +9 -1
  457. data/spec/integration/util/windows/registry_spec.rb +10 -6
  458. data/spec/integration/util/windows/security_spec.rb +1 -1
  459. data/spec/lib/matchers/include.rb +27 -0
  460. data/spec/lib/matchers/include_spec.rb +32 -0
  461. data/spec/lib/puppet/test_ca.rb +2 -7
  462. data/spec/lib/puppet_spec/modules.rb +2 -13
  463. data/spec/lib/puppet_spec/puppetserver.rb +1 -16
  464. data/spec/lib/puppet_spec/settings.rb +1 -1
  465. data/spec/shared_behaviours/documentation_on_faces.rb +2 -0
  466. data/spec/spec_helper.rb +17 -13
  467. data/spec/unit/agent_spec.rb +6 -10
  468. data/spec/unit/application/agent_spec.rb +3 -7
  469. data/spec/unit/application/apply_spec.rb +56 -76
  470. data/spec/unit/application/facts_spec.rb +12 -456
  471. data/spec/unit/application/filebucket_spec.rb +43 -39
  472. data/spec/unit/application/resource_spec.rb +0 -29
  473. data/spec/unit/application/ssl_spec.rb +2 -25
  474. data/spec/unit/application_spec.rb +9 -51
  475. data/spec/unit/certificate_factory_spec.rb +1 -1
  476. data/spec/unit/configurer/downloader_spec.rb +6 -8
  477. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  478. data/spec/unit/configurer_spec.rb +68 -264
  479. data/spec/unit/confine/feature_spec.rb +1 -1
  480. data/spec/unit/confine_spec.rb +2 -8
  481. data/spec/unit/context/trusted_information_spec.rb +2 -6
  482. data/spec/unit/defaults_spec.rb +68 -55
  483. data/spec/unit/environments_spec.rb +68 -408
  484. data/spec/unit/face/node_spec.rb +11 -0
  485. data/spec/unit/face/plugin_spec.rb +73 -33
  486. data/spec/unit/file_bucket/dipper_spec.rb +2 -2
  487. data/spec/unit/file_bucket/file_spec.rb +1 -1
  488. data/spec/unit/file_serving/configuration/parser_spec.rb +15 -41
  489. data/spec/unit/file_serving/configuration_spec.rb +10 -26
  490. data/spec/unit/file_serving/fileset_spec.rb +0 -60
  491. data/spec/unit/file_serving/metadata_spec.rb +3 -3
  492. data/spec/unit/file_serving/terminus_helper_spec.rb +4 -11
  493. data/spec/unit/file_system_spec.rb +0 -22
  494. data/spec/unit/forge/module_release_spec.rb +7 -2
  495. data/spec/unit/functions/assert_type_spec.rb +1 -1
  496. data/spec/unit/functions/camelcase_spec.rb +1 -1
  497. data/spec/unit/functions/capitalize_spec.rb +1 -1
  498. data/spec/unit/functions/downcase_spec.rb +1 -1
  499. data/spec/unit/functions/empty_spec.rb +0 -10
  500. data/spec/unit/functions/logging_spec.rb +0 -1
  501. data/spec/unit/functions/lookup_spec.rb +0 -64
  502. data/spec/unit/functions/unwrap_spec.rb +0 -8
  503. data/spec/unit/functions/upcase_spec.rb +1 -1
  504. data/spec/unit/functions4_spec.rb +2 -2
  505. data/spec/unit/gettext/config_spec.rb +0 -12
  506. data/spec/unit/http/client_spec.rb +8 -66
  507. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  508. data/spec/unit/http/external_client_spec.rb +4 -4
  509. data/spec/unit/{network/http → http}/factory_spec.rb +5 -30
  510. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  511. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  512. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  513. data/spec/unit/http/resolver_spec.rb +13 -13
  514. data/spec/unit/http/service/compiler_spec.rb +0 -193
  515. data/spec/unit/http/service/file_server_spec.rb +3 -3
  516. data/spec/unit/http/service/puppetserver_spec.rb +34 -4
  517. data/spec/unit/http/service_spec.rb +0 -1
  518. data/spec/unit/http/session_spec.rb +16 -14
  519. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  520. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -101
  521. data/spec/unit/indirector/catalog/rest_spec.rb +0 -8
  522. data/spec/unit/indirector/face_spec.rb +1 -0
  523. data/spec/unit/indirector/facts/facter_spec.rb +3 -0
  524. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  525. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +8 -26
  526. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  527. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  528. data/spec/unit/indirector/file_server_spec.rb +1 -15
  529. data/spec/unit/indirector/indirection_spec.rb +15 -18
  530. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  531. data/spec/unit/indirector/request_spec.rb +0 -264
  532. data/spec/unit/indirector/resource/ral_spec.rb +75 -40
  533. data/spec/unit/indirector/rest_spec.rb +98 -752
  534. data/spec/unit/indirector/store_configs_spec.rb +7 -0
  535. data/spec/unit/indirector_spec.rb +2 -2
  536. data/spec/unit/interface/action_spec.rb +9 -0
  537. data/spec/unit/module_spec.rb +1 -15
  538. data/spec/unit/module_tool/applications/installer_spec.rb +0 -105
  539. data/spec/unit/network/authconfig_spec.rb +2 -129
  540. data/spec/unit/network/authorization_spec.rb +2 -55
  541. data/spec/unit/network/formats_spec.rb +4 -51
  542. data/spec/unit/network/http/api/indirected_routes_spec.rb +5 -92
  543. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  544. data/spec/unit/network/http/api_spec.rb +10 -0
  545. data/spec/unit/network/http/connection_spec.rb +19 -41
  546. data/spec/unit/network/http/handler_spec.rb +0 -1
  547. data/spec/unit/network/http_pool_spec.rb +0 -4
  548. data/spec/unit/node/environment_spec.rb +33 -21
  549. data/spec/unit/node_spec.rb +2 -54
  550. data/spec/unit/parser/compiler_spec.rb +19 -3
  551. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  552. data/spec/unit/parser/functions/fqdn_rand_spec.rb +1 -15
  553. data/spec/unit/parser/resource_spec.rb +8 -14
  554. data/spec/unit/parser/templatewrapper_spec.rb +5 -16
  555. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
  556. data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
  557. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  558. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  559. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  560. data/spec/unit/pops/parser/parse_containers_spec.rb +11 -0
  561. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  562. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  563. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -59
  564. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -5
  565. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -18
  566. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -18
  567. data/spec/unit/pops/types/type_calculator_spec.rb +6 -12
  568. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  569. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  570. data/spec/unit/pops/visitor_spec.rb +1 -1
  571. data/spec/unit/property_spec.rb +0 -1
  572. data/spec/unit/provider/group/groupadd_spec.rb +2 -5
  573. data/spec/unit/provider/nameservice_spec.rb +64 -122
  574. data/spec/unit/provider/package/apt_spec.rb +23 -28
  575. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  576. data/spec/unit/provider/package/base_spec.rb +5 -6
  577. data/spec/unit/provider/package/dnfmodule_spec.rb +1 -10
  578. data/spec/unit/provider/package/dpkg_spec.rb +0 -48
  579. data/spec/unit/provider/package/gem_spec.rb +33 -1
  580. data/spec/unit/provider/package/nim_spec.rb +0 -42
  581. data/spec/unit/provider/package/pacman_spec.rb +12 -18
  582. data/spec/unit/provider/package/pip2_spec.rb +1 -1
  583. data/spec/unit/provider/package/pip3_spec.rb +1 -1
  584. data/spec/unit/provider/package/pip_spec.rb +12 -44
  585. data/spec/unit/provider/package/pkg_spec.rb +4 -29
  586. data/spec/unit/provider/package/pkgdmg_spec.rb +4 -0
  587. data/spec/unit/provider/package/puppet_gem_spec.rb +4 -3
  588. data/spec/unit/provider/package/puppetserver_gem_spec.rb +1 -1
  589. data/spec/unit/provider/parsedfile_spec.rb +0 -10
  590. data/spec/unit/provider/service/init_spec.rb +0 -1
  591. data/spec/unit/provider/service/launchd_spec.rb +0 -11
  592. data/spec/unit/provider/service/openwrt_spec.rb +1 -3
  593. data/spec/unit/provider/service/smf_spec.rb +401 -165
  594. data/spec/unit/provider/service/systemd_spec.rb +9 -54
  595. data/spec/unit/provider/service/windows_spec.rb +0 -203
  596. data/spec/unit/provider/user/aix_spec.rb +0 -105
  597. data/spec/unit/provider/user/directoryservice_spec.rb +36 -68
  598. data/spec/unit/provider/user/hpux_spec.rb +1 -1
  599. data/spec/unit/provider/user/pw_spec.rb +0 -2
  600. data/spec/unit/provider/user/useradd_spec.rb +5 -114
  601. data/spec/unit/provider_spec.rb +12 -22
  602. data/spec/unit/puppet_spec.rb +4 -12
  603. data/spec/unit/resource/catalog_spec.rb +2 -15
  604. data/spec/unit/resource/type_collection_spec.rb +2 -22
  605. data/spec/unit/resource/type_spec.rb +1 -1
  606. data/spec/unit/resource_spec.rb +12 -125
  607. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  608. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  609. data/spec/unit/settings/port_setting_spec.rb +31 -0
  610. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  611. data/spec/unit/settings_spec.rb +79 -110
  612. data/spec/unit/ssl/base_spec.rb +37 -3
  613. data/spec/unit/ssl/certificate_request_spec.rb +21 -45
  614. data/spec/unit/ssl/certificate_spec.rb +2 -11
  615. data/spec/unit/ssl/ssl_provider_spec.rb +2 -5
  616. data/spec/unit/ssl/state_machine_spec.rb +5 -20
  617. data/spec/unit/ssl/verifier_spec.rb +0 -21
  618. data/spec/unit/transaction/additional_resource_generator_spec.rb +9 -3
  619. data/spec/unit/transaction/event_manager_spec.rb +11 -14
  620. data/spec/unit/transaction/report_spec.rb +0 -2
  621. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  622. data/spec/unit/transaction_spec.rb +55 -96
  623. data/spec/unit/type/exec_spec.rb +29 -76
  624. data/spec/unit/type/file/checksum_spec.rb +6 -6
  625. data/spec/unit/type/file/content_spec.rb +2 -1
  626. data/spec/unit/type/file/ensure_spec.rb +1 -1
  627. data/spec/unit/type/file/mode_spec.rb +1 -1
  628. data/spec/unit/type/file/selinux_spec.rb +5 -3
  629. data/spec/unit/type/file/source_spec.rb +4 -5
  630. data/spec/unit/type/file_spec.rb +18 -6
  631. data/spec/unit/type/group_spec.rb +6 -13
  632. data/spec/unit/type/package_spec.rb +1 -1
  633. data/spec/unit/type/resources_spec.rb +7 -7
  634. data/spec/unit/type/service_spec.rb +189 -87
  635. data/spec/unit/type/tidy_spec.rb +8 -24
  636. data/spec/unit/type/user_spec.rb +0 -45
  637. data/spec/unit/type_spec.rb +24 -4
  638. data/spec/unit/util/at_fork_spec.rb +2 -2
  639. data/spec/unit/util/autoload_spec.rb +1 -5
  640. data/spec/unit/util/backups_spec.rb +2 -3
  641. data/spec/unit/util/execution_spec.rb +11 -44
  642. data/spec/unit/util/inifile_spec.rb +14 -6
  643. data/spec/unit/util/log_spec.rb +7 -8
  644. data/spec/unit/util/logging_spec.rb +3 -5
  645. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  646. data/spec/unit/util/posix_spec.rb +15 -363
  647. data/spec/unit/util/run_mode_spec.rb +21 -121
  648. data/spec/unit/util/selinux_spec.rb +68 -163
  649. data/spec/unit/util/storage_spec.rb +1 -3
  650. data/spec/unit/util/suidmanager_spec.rb +41 -44
  651. data/spec/unit/util/windows/sid_spec.rb +0 -41
  652. data/spec/unit/util/windows/string_spec.rb +1 -3
  653. data/spec/unit/util/yaml_spec.rb +0 -54
  654. data/spec/unit/util_spec.rb +6 -31
  655. data/tasks/generate_cert_fixtures.rake +3 -12
  656. data/tasks/parallel.rake +3 -3
  657. metadata +137 -226
  658. data/conf/auth.conf +0 -150
  659. data/ext/README.md +0 -13
  660. data/lib/puppet/application/cert.rb +0 -76
  661. data/lib/puppet/application/key.rb +0 -4
  662. data/lib/puppet/application/man.rb +0 -4
  663. data/lib/puppet/application/status.rb +0 -4
  664. data/lib/puppet/face/key.rb +0 -16
  665. data/lib/puppet/face/man.rb +0 -145
  666. data/lib/puppet/face/module/build.rb +0 -14
  667. data/lib/puppet/face/module/generate.rb +0 -14
  668. data/lib/puppet/face/module/search.rb +0 -103
  669. data/lib/puppet/face/status.rb +0 -51
  670. data/lib/puppet/facter_impl.rb +0 -96
  671. data/lib/puppet/ffi/posix/constants.rb +0 -14
  672. data/lib/puppet/ffi/posix/functions.rb +0 -24
  673. data/lib/puppet/ffi/posix.rb +0 -10
  674. data/lib/puppet/file_serving/mount/scripts.rb +0 -24
  675. data/lib/puppet/indirector/certificate/file.rb +0 -9
  676. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  677. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  678. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  679. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  680. data/lib/puppet/indirector/file_content/http.rb +0 -22
  681. data/lib/puppet/indirector/key/file.rb +0 -46
  682. data/lib/puppet/indirector/key/memory.rb +0 -7
  683. data/lib/puppet/indirector/ssl_file.rb +0 -162
  684. data/lib/puppet/indirector/status/local.rb +0 -12
  685. data/lib/puppet/indirector/status/rest.rb +0 -27
  686. data/lib/puppet/indirector/status.rb +0 -3
  687. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  688. data/lib/puppet/network/auth_config_parser.rb +0 -90
  689. data/lib/puppet/network/authstore.rb +0 -283
  690. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  691. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
  692. data/lib/puppet/network/http/base_pool.rb +0 -36
  693. data/lib/puppet/network/http/compression.rb +0 -127
  694. data/lib/puppet/network/http/connection_adapter.rb +0 -184
  695. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  696. data/lib/puppet/network/rest_controller.rb +0 -2
  697. data/lib/puppet/network/rights.rb +0 -210
  698. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
  699. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
  700. data/lib/puppet/parser/environment_compiler.rb +0 -202
  701. data/lib/puppet/pops/types/enumeration.rb +0 -16
  702. data/lib/puppet/resource/capability_finder.rb +0 -154
  703. data/lib/puppet/rest/errors.rb +0 -15
  704. data/lib/puppet/rest/response.rb +0 -35
  705. data/lib/puppet/rest/route.rb +0 -85
  706. data/lib/puppet/rest/routes.rb +0 -135
  707. data/lib/puppet/settings/alias_setting.rb +0 -37
  708. data/lib/puppet/ssl/host.rb +0 -505
  709. data/lib/puppet/ssl/key.rb +0 -61
  710. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  711. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  712. data/lib/puppet/ssl/validator.rb +0 -61
  713. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  714. data/lib/puppet/status.rb +0 -40
  715. data/lib/puppet/util/connection.rb +0 -88
  716. data/lib/puppet/util/fact_dif.rb +0 -81
  717. data/lib/puppet/util/ssl.rb +0 -83
  718. data/lib/puppet/util/windows/api_types.rb +0 -309
  719. data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
  720. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  721. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  722. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  723. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  724. data/lib/puppet/vendor/pathspec/README.md +0 -53
  725. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  726. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  727. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  728. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  729. data/man/man8/puppet-key.8 +0 -126
  730. data/man/man8/puppet-man.8 +0 -76
  731. data/man/man8/puppet-status.8 +0 -108
  732. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  733. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  734. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  735. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  736. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  737. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  738. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  739. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  740. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  741. data/spec/fixtures/ssl/oid-key.pem +0 -117
  742. data/spec/fixtures/ssl/oid.pem +0 -69
  743. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  744. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  745. data/spec/integration/application/resource_spec.rb +0 -64
  746. data/spec/integration/application/ssl_spec.rb +0 -20
  747. data/spec/integration/l10n/compiler_spec.rb +0 -37
  748. data/spec/integration/network/authconfig_spec.rb +0 -256
  749. data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
  750. data/spec/shared_contexts/l10n.rb +0 -27
  751. data/spec/unit/application/man_spec.rb +0 -52
  752. data/spec/unit/capability_spec.rb +0 -414
  753. data/spec/unit/face/key_spec.rb +0 -9
  754. data/spec/unit/face/module/search_spec.rb +0 -231
  755. data/spec/unit/face/status_spec.rb +0 -9
  756. data/spec/unit/facter_impl_spec.rb +0 -31
  757. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  758. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  759. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  760. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  761. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  762. data/spec/unit/indirector/key/file_spec.rb +0 -78
  763. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  764. data/spec/unit/indirector/status/local_spec.rb +0 -10
  765. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  766. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  767. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  768. data/spec/unit/network/authstore_spec.rb +0 -407
  769. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  770. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  771. data/spec/unit/network/http/compression_spec.rb +0 -240
  772. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  773. data/spec/unit/network/http_spec.rb +0 -9
  774. data/spec/unit/network/rights_spec.rb +0 -439
  775. data/spec/unit/parser/environment_compiler_spec.rb +0 -730
  776. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -20
  777. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  778. data/spec/unit/resource/capability_finder_spec.rb +0 -148
  779. data/spec/unit/rest/route_spec.rb +0 -132
  780. data/spec/unit/ssl/host_spec.rb +0 -645
  781. data/spec/unit/ssl/key_spec.rb +0 -173
  782. data/spec/unit/ssl/validator_spec.rb +0 -278
  783. data/spec/unit/status_spec.rb +0 -45
  784. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -1,730 +0,0 @@
1
- require 'spec_helper'
2
- require 'puppet_spec/compiler'
3
- require 'puppet/parser/environment_compiler'
4
-
5
- describe "Application instantiation" do
6
- include PuppetSpec::Compiler
7
-
8
- let(:env) { Puppet::Node::Environment.create(:testing, []) }
9
- let(:node) { Puppet::Node.new('test', :environment => env) }
10
- let(:loaders) { Puppet::Pops::Loaders.new(env) }
11
- let(:logs) { [] }
12
- let(:notices) { logs.select { |log| log.level == :notice }.map { |log| log.message } }
13
- let(:warnings) { logs.select { |log| log.level == :warning }.map { |log| log.message } }
14
-
15
- def compile_collect_log(string)
16
- Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
17
- compile_to_catalog(string, Puppet::Node.new('other', :environment => env))
18
- end
19
- end
20
-
21
- def compile_to_env_catalog(string, code_id=nil)
22
- Puppet[:code] = string
23
- Puppet::Parser::EnvironmentCompiler.compile(env, code_id).filter { |r| r.virtual? }
24
- end
25
-
26
- before(:each) do
27
- allow_any_instance_of(Puppet::Parser::Compiler).to receive(:loaders).and_return(loaders)
28
- allow_any_instance_of(Puppet::Parser::EnvironmentCompiler).to receive(:loaders).and_return(loaders)
29
- Puppet.push_context({:loaders => loaders, :current_environment => env})
30
- Puppet::Type.newtype :cap, :is_capability => true do
31
- newparam :name
32
- newparam :host
33
- end
34
- end
35
-
36
- after(:each) do
37
- Puppet::Type.rmtype(:cap)
38
- Puppet.pop_context()
39
- end
40
-
41
- MANIFEST = <<-EOS
42
- define prod($host) {
43
- notify { "host ${host}":}
44
- }
45
-
46
- Prod produces Cap { }
47
-
48
- define cons($host) {
49
- notify { "host ${host}": }
50
- }
51
-
52
- Cons consumes Cap { }
53
-
54
- application app {
55
- prod { one: host => ahost, export => Cap[cap] }
56
- cons { two: host => ahost, consume => Cap[cap] }
57
- cons { three: consume => Cap[cap] }
58
- }
59
-
60
- site {
61
- app { anapp:
62
- nodes => {
63
- Node[first] => Prod[one],
64
- Node[second] => Cons[two]
65
- }
66
- }
67
- }
68
- EOS
69
-
70
- MANIFEST_WO_EXPORT = <<-EOS
71
- define prod($host) {
72
- notify { "host ${host}":}
73
- }
74
-
75
- Prod produces Cap { }
76
-
77
- define cons($host) {
78
- notify { "host ${host}": }
79
- }
80
-
81
- Cons consumes Cap { }
82
-
83
- application app {
84
- cons { two: host => ahost, consume => Cap[cap] }
85
- }
86
-
87
- site {
88
- app { anapp:
89
- nodes => {
90
- Node[first] => Prod[one],
91
- Node[second] => Cons[two]
92
- }
93
- }
94
- }
95
- EOS
96
-
97
- MANIFEST_WO_NODE = <<-EOS
98
- define prod($host) {
99
- notify { "host ${host}":}
100
- }
101
-
102
- Prod produces Cap { }
103
-
104
- define cons($host) {
105
- notify { "host ${host}": }
106
- }
107
-
108
- Cons consumes Cap { }
109
-
110
- application app {
111
- prod { one: host => ahost, export => Cap[cap] }
112
- cons { two: host => ahost, consume => Cap[cap] }
113
- }
114
-
115
- site {
116
- app { anapp:
117
- }
118
- }
119
- EOS
120
-
121
- MANIFEST_WITH_STRING_NODES = <<-EOS
122
- application app {
123
- }
124
-
125
- site {
126
- app { anapp:
127
- nodes => "foobar",
128
- }
129
- }
130
- EOS
131
-
132
- MANIFEST_WITH_FALSE_NODES = <<-EOS
133
- application app {
134
- }
135
-
136
- site {
137
- app { anapp:
138
- nodes => false,
139
- }
140
- }
141
- EOS
142
-
143
- MANIFEST_REQ_WO_EXPORT = <<-EOS
144
- define prod($host) {
145
- notify { "host ${host}":}
146
- }
147
-
148
- Prod produces Cap { }
149
-
150
- define cons($host) {
151
- notify { "host ${host}": }
152
- }
153
-
154
- Cons consumes Cap { }
155
-
156
- application app {
157
- cons { two: host => ahost, require => Cap[cap] }
158
- }
159
-
160
- site {
161
- app { anapp:
162
- nodes => {
163
- Node[first] => Prod[one],
164
- Node[second] => Cons[two]
165
- }
166
- }
167
- }
168
- EOS
169
-
170
- MANIFEST_WITH_DOUBLE_EXPORT = <<-EOS
171
- define prod($host) {
172
- notify { "host ${host}":}
173
- }
174
-
175
- Prod produces Cap { }
176
-
177
- define cons($host) {
178
- notify { "host ${host}": }
179
- }
180
-
181
- Cons consumes Cap { }
182
-
183
- application app {
184
- prod { one: host => ahost, export => Cap[cap] }
185
- prod { two: host => anotherhost, export => Cap[cap] }
186
- cons { two: host => ahost, consume => Cap[cap] }
187
- }
188
-
189
- site {
190
- app { anapp:
191
- nodes => {
192
- Node[first] => Prod[one],
193
- Node[second] => Cons[two]
194
- }
195
- }
196
- }
197
- EOS
198
-
199
- FAULTY_MANIFEST = <<-EOS
200
- define prod($host) {
201
- notify { "host ${host}":}
202
- }
203
-
204
- Prod produces Cap { }
205
-
206
- define cons($host) {
207
- notify { "host ${host}": }
208
- }
209
-
210
- Cons consumes Cap { }
211
-
212
- application app {
213
- prod { one: host => ahost, export => Cap[cap] }
214
- cons { two: host => ahost, consume => Cap[cap] }
215
- }
216
-
217
- # app is not in site => error
218
- app { anapp:
219
- nodes => {
220
- Node[first] => Prod[one],
221
- Node[second] => Cons[two]
222
- }
223
- }
224
- EOS
225
-
226
- MANIFEST_WITH_SITE = <<-EOS
227
- define prod($host) {
228
- notify { "host ${host}":}
229
- }
230
-
231
- Prod produces Cap { }
232
-
233
- define cons($host) {
234
- notify { "host ${host}": }
235
- }
236
-
237
- Cons consumes Cap { }
238
-
239
- application app {
240
- prod { one: host => ahost, export => Cap[cap] }
241
- cons { two: host => ahost, consume => Cap[cap] }
242
- }
243
-
244
- $one = not_the_value_one
245
- $two = two
246
-
247
- node default {
248
- notify { "on a node": }
249
- }
250
-
251
- notify { 'ignore me': }
252
-
253
- site {
254
- $one = one
255
- app { anapp:
256
- nodes => {
257
- Node[first] => Prod[$one],
258
- Node[second] => Cons[$two]
259
- }
260
- }
261
- }
262
- EOS
263
-
264
- MANIFEST_WITH_ILLEGAL_RESOURCE = <<-EOS
265
- define prod($host) {
266
- notify { "host ${host}":}
267
- }
268
-
269
- Prod produces Cap { }
270
-
271
- define cons($host) {
272
- notify { "host ${host}": }
273
- }
274
-
275
- Cons consumes Cap { }
276
-
277
- application app {
278
- prod { one: host => ahost, export => Cap[cap] }
279
- cons { two: consume => Cap[cap] }
280
- }
281
-
282
- site {
283
- # The rouge expression is here
284
- notify { 'fail me': }
285
- $one = one
286
- app { anapp:
287
- nodes => {
288
- Node[first] => Prod[one],
289
- Node[second] => Cons[two]
290
- }
291
- }
292
- }
293
- EOS
294
-
295
- MANIFEST_WITH_CLASS = <<-EOS
296
- define test($host) {
297
- notify { "c $host": }
298
- }
299
-
300
- class prod($host) {
301
- notify { "p $host": }
302
- }
303
-
304
- class cons($host) {
305
- test { c: host => $host }
306
- }
307
-
308
- Class[prod] produces Cap {}
309
-
310
- Class[cons] consumes Cap {}
311
-
312
- application app {
313
- class { prod: host => 'ahost', export => Cap[cap]}
314
- class { cons: consume => Cap[cap]}
315
- }
316
-
317
- site {
318
- app { anapp:
319
- nodes => {
320
- Node[first] => Class[prod],
321
- Node[second] => Class[cons]
322
- }
323
- }
324
- }
325
- EOS
326
-
327
-
328
- context 'a node catalog' do
329
- it "is unaffected for a non-participating node" do
330
- catalog = compile_to_catalog(MANIFEST, Puppet::Node.new('other', :environment => env))
331
- types = catalog.resource_keys.map { |type, _| type }.uniq.sort
332
- expect(types).to eq(["Class", "Stage"])
333
- end
334
-
335
- it "an application instance must be contained in a site" do
336
- expect { compile_to_catalog(FAULTY_MANIFEST, Puppet::Node.new('first', :environment => env))
337
- }.to raise_error(/Application instances .* can only be contained within a Site/)
338
- end
339
-
340
- it "does not raise an error when node mappings are not provided" do
341
- expect { compile_to_catalog(MANIFEST_WO_NODE, node) }.to_not raise_error
342
- end
343
-
344
- it "raises an error if node mapping is a string" do
345
- expect { compile_to_catalog(MANIFEST_WITH_STRING_NODES, node)
346
- }.to raise_error(/Invalid node mapping in .*: Mapping must be a hash/)
347
- end
348
-
349
- it "raises an error if node mapping is false" do
350
- expect { compile_to_catalog(MANIFEST_WITH_FALSE_NODES, node)
351
- }.to raise_error(/Invalid node mapping in .*: Mapping must be a hash/)
352
- end
353
-
354
- it "detects that consumed capability is never exported" do
355
- expect { compile_to_env_catalog(MANIFEST_WO_EXPORT)
356
- }.to raise_error(/Capability 'Cap\[cap\]' referenced by 'consume' is never exported/)
357
- end
358
-
359
- it "detects that required capability is never exported" do
360
- expect { compile_to_env_catalog(MANIFEST_REQ_WO_EXPORT)
361
- }.to raise_error(/Capability 'Cap\[cap\]' referenced by 'require' is never exported/)
362
- end
363
-
364
- it "detects that a capability is exported more than once" do
365
- expect { compile_to_env_catalog(MANIFEST_WITH_DOUBLE_EXPORT)
366
- }.to raise_error(/'Cap\[cap\]' is exported by both 'Prod\[one\]' and 'Prod\[two\]'/)
367
- end
368
-
369
- it "issues deprecation warnings" do
370
- expect {compile_collect_log(MANIFEST_WO_NODE)}.not_to raise_error
371
- expect(warnings).to include(/Capability Mapping is deprecated/) # there are two of these
372
- expect(warnings).to include(/Application is deprecated/)
373
- expect(warnings).to include(/Site Definition is deprecated/)
374
- end
375
-
376
- context "for producing node" do
377
- let(:compiled_node) { Puppet::Node.new('first', :environment => env) }
378
- let(:compiled_catalog) { compile_to_catalog(MANIFEST, compiled_node)}
379
-
380
- { "App[anapp]" => 'application instance',
381
- "Cap[cap]" => 'capability resource',
382
- "Prod[one]" => 'component',
383
- "Notify[host ahost]" => 'node resource'
384
- }.each do |k,v|
385
- it "contains the #{v} (#{k})" do
386
- expect(compiled_catalog.resource(k)).not_to be_nil
387
- end
388
- end
389
-
390
- it "does not contain the consumed resource (Cons[two])" do
391
- expect(compiled_catalog.resource("Cons[two]")).to be_nil
392
- end
393
- end
394
-
395
- context "for consuming node" do
396
- let(:compiled_node) { Puppet::Node.new('second', :environment => env) }
397
- let(:compiled_catalog) { compile_to_catalog(MANIFEST, compiled_node)}
398
- let(:cap) {
399
- the_cap = Puppet::Resource.new("Cap", "cap")
400
- the_cap["host"] = "ahost"
401
- the_cap
402
- }
403
-
404
- { "App[anapp]" => 'application instance',
405
- "Cap[cap]" => 'capability resource',
406
- "Cons[two]" => 'component',
407
- "Notify[host ahost]" => 'node resource'
408
- }.each do |k,v|
409
- it "contains the #{v} (#{k})" do
410
- # Mock the connection to Puppet DB
411
- expect(Puppet::Resource::CapabilityFinder).to receive(:find).and_return(cap)
412
- expect(compiled_catalog.resource(k)).not_to be_nil
413
- end
414
- end
415
-
416
- it "does not contain the produced resource (Prod[one])" do
417
- # Mock the connection to Puppet DB
418
- expect(Puppet::Resource::CapabilityFinder).to receive(:find).and_return(cap)
419
- expect(compiled_catalog.resource("Prod[one]")).to be_nil
420
- end
421
- end
422
-
423
- context "for node with class producer" do
424
- let(:compiled_node) { Puppet::Node.new('first', :environment => env) }
425
- let(:compiled_catalog) { compile_to_catalog(MANIFEST_WITH_CLASS, compiled_node)}
426
-
427
- { "App[anapp]" => 'application instance',
428
- "Cap[cap]" => 'capability resource',
429
- "Class[prod]" => 'class',
430
- "Notify[p ahost]" => 'node resource'
431
- }.each do |k,v|
432
- it "contains the #{v} (#{k})" do
433
- cat = compiled_catalog
434
- expect(cat.resource(k)).not_to be_nil
435
- end
436
- end
437
-
438
- it "does not contain the consumed resource (Class[cons])" do
439
- expect(compiled_catalog.resource("Class[cons]")).to be_nil
440
- end
441
- end
442
-
443
- context "for node with class consumer" do
444
- let(:compiled_node) { Puppet::Node.new('second', :environment => env) }
445
- let(:compiled_catalog) { compile_to_catalog(MANIFEST_WITH_CLASS, compiled_node)}
446
- let(:cap) {
447
- the_cap = Puppet::Resource.new("Cap", "cap")
448
- the_cap["host"] = "ahost"
449
- the_cap
450
- }
451
-
452
- { "App[anapp]" => 'application instance',
453
- "Cap[cap]" => 'capability resource',
454
- "Class[cons]" => 'class',
455
- "Notify[c ahost]" => 'node resource'
456
- }.each do |k,v|
457
- it "contains the #{v} (#{k})" do
458
- # Mock the connection to Puppet DB
459
- expect(Puppet::Resource::CapabilityFinder).to receive(:find).and_return(cap)
460
- expect(compiled_catalog.resource(k)).not_to be_nil
461
- end
462
- end
463
-
464
- it "does not contain the produced resource (Class[prod])" do
465
- # Mock the connection to Puppet DB
466
- expect(Puppet::Resource::CapabilityFinder).to receive(:find).and_return(cap)
467
- expect(compiled_catalog.resource("Class[prod]")).to be_nil
468
- end
469
- end
470
-
471
- context "when using a site expression" do
472
- # The site expression must be evaluated in a node catalog compilation because
473
- # the application instantiations inside it may contain other logic (local variables)
474
- # that are used to instantiate an application. The application instances are needed.
475
- #
476
- it "the node expressions is evaluated" do
477
- catalog = compile_to_catalog(MANIFEST_WITH_SITE, Puppet::Node.new('other', :environment => env))
478
- types = catalog.resource_keys.map { |type, _| type }.uniq.sort
479
- expect(types).to eq(["Class", "Node", "Notify", "Stage"])
480
- expect(catalog.resource("Notify[on a node]")).to_not be_nil
481
- expect(catalog.resource("Notify[on the site]")).to be_nil
482
- end
483
-
484
- end
485
-
486
- context "when using a site expression" do
487
- it "the site expression is not evaluated in a node compilation" do
488
- catalog = compile_to_catalog(MANIFEST_WITH_SITE, Puppet::Node.new('other', :environment => env))
489
- types = catalog.resource_keys.map { |type, _| type }.uniq.sort
490
- expect(types).to eq(["Class", "Node", "Notify", "Stage"])
491
- expect(catalog.resource("Notify[on a node]")).to_not be_nil
492
- expect(catalog.resource("Notify[on the site]")).to be_nil
493
- end
494
-
495
- end
496
- end
497
-
498
- describe "in the environment catalog" do
499
- it "does not fail if there is no site expression" do
500
- expect {
501
- compile_to_env_catalog(<<-EOC).to_resource
502
- notify { 'ignore me':}
503
- EOC
504
- }.to_not raise_error()
505
- end
506
-
507
- it "ignores usage of hiera_include() at topscope for classification" do
508
- expect(Puppet).to receive(:debug).with(/Ignoring hiera_include/)
509
-
510
- expect {
511
- compile_to_env_catalog(<<-EOC).to_resource
512
- hiera_include('classes')
513
- site { }
514
- EOC
515
- }.to_not raise_error()
516
-
517
- end
518
-
519
- it 'removes overriden functions after compile' do
520
- expect {
521
- compile_to_env_catalog(<<-EOC)
522
- hiera_include('classes')
523
- site { }
524
- EOC
525
- }.to_not raise_error()
526
- func = Puppet::Pops::Loaders.loaders.puppet_system_loader.load(:function, 'hiera_include')
527
- expect(func).to be_a(Puppet::Functions::Function)
528
- end
529
-
530
- it "includes components and capability resources" do
531
- catalog = compile_to_env_catalog(MANIFEST).to_resource
532
- apps = catalog.resources.select do |res|
533
- res.resource_type && res.resource_type.application?
534
- end
535
- expect(apps.size).to eq(1)
536
- app = apps.first
537
- expect(app["nodes"]).not_to be_nil
538
- comps = catalog.direct_dependents_of(app).map(&:ref).sort
539
- expect(comps).to eq(["Cons[three]", "Cons[two]", "Prod[one]"])
540
-
541
- prod = catalog.resource("Prod[one]")
542
- expect(prod).not_to be_nil
543
- expect(prod.export.map(&:ref)).to eq(["Cap[cap]"])
544
-
545
- cons = catalog.resource("Cons[two]")
546
- expect(cons).not_to be_nil
547
- expect(cons[:consume].ref).to eq("Cap[cap]")
548
- end
549
-
550
- it "includes class components" do
551
- catalog = compile_to_env_catalog(MANIFEST_WITH_CLASS).to_resource
552
- classes = catalog.resources.select do |res|
553
- res.type == 'Class' && (res.title == 'Prod' || res.title == 'Cons')
554
- end
555
- expect(classes.size).to eq(2)
556
- expect(classes.map(&:ref).sort).to eq(["Class[Cons]", "Class[Prod]"])
557
-
558
- prod = catalog.resource("Class[prod]")
559
- expect(prod).not_to be_nil
560
- expect(prod.export.map(&:ref)).to eq(["Cap[cap]"])
561
-
562
- cons = catalog.resource("Class[cons]")
563
- expect(cons).not_to be_nil
564
- expect(cons[:consume].ref).to eq("Cap[cap]")
565
- end
566
-
567
- it "an application instance must be contained in a site" do
568
- expect { compile_to_env_catalog(FAULTY_MANIFEST)
569
- }.to raise_error(/Application instances .* can only be contained within a Site/)
570
- end
571
-
572
- context "when using a site expression" do
573
- it "includes components and capability resources" do
574
- catalog = compile_to_env_catalog(MANIFEST_WITH_SITE).to_resource
575
- apps = catalog.resources.select do |res|
576
- res.resource_type && res.resource_type.application?
577
- end
578
- expect(apps.size).to eq(1)
579
- app = apps.first
580
- expect(app["nodes"]).not_to be_nil
581
- comps = catalog.direct_dependents_of(app).map(&:ref).sort
582
- expect(comps).to eq(["Cons[two]", "Prod[one]"])
583
-
584
- prod = catalog.resource("Prod[one]")
585
- expect(prod).not_to be_nil
586
- expect(prod.export.map(&:ref)).to eq(["Cap[cap]"])
587
-
588
- cons = catalog.resource("Cons[two]")
589
- expect(cons).not_to be_nil
590
- expect(cons[:consume].ref).to eq("Cap[cap]")
591
- end
592
-
593
- it "the site expression is evaluated in an environment compilation" do
594
- catalog = compile_to_env_catalog(MANIFEST_WITH_SITE).to_resource
595
- types = catalog.resource_keys.map { |type, _| type }.uniq.sort
596
- expect(types).to eq(["App", "Class", "Cons", "Prod", "Site", "Stage"])
597
- expect(catalog.resource("Notify[on a node]")).to be_nil
598
- apps = catalog.resources.select do |res|
599
- res.resource_type && res.resource_type.application?
600
- end
601
- expect(apps.size).to eq(1)
602
- app = apps.first
603
- comps = catalog.direct_dependents_of(app).map(&:ref).sort
604
- expect(comps).to eq(["Cons[two]", "Prod[one]"])
605
- end
606
-
607
- it "fails if there are non component resources in the site" do
608
- expect {
609
- compile_to_env_catalog(MANIFEST_WITH_ILLEGAL_RESOURCE).to_resource
610
- }.to raise_error(/Only application components can appear inside a site - Notify\[fail me\] is not allowed \(line: 20\)/)
611
- end
612
- end
613
-
614
- it "includes code_id if specified" do
615
- catalog = compile_to_env_catalog(MANIFEST_WITH_SITE, "12345")
616
- expect(catalog.code_id).to eq("12345")
617
- end
618
-
619
- it "omits code_id if unspecified" do
620
- catalog = compile_to_env_catalog(MANIFEST_WITH_SITE)
621
- expect(catalog.code_id).to be_nil
622
- end
623
- end
624
-
625
-
626
- describe "when validation of nodes" do
627
- it 'validates that the key of a node mapping is a Node' do
628
- expect { compile_to_catalog(<<-EOS, Puppet::Node.new('other', :environment => env))
629
- application app {
630
- }
631
-
632
- site {
633
- app { anapp:
634
- nodes => {
635
- 'hello' => Node[other],
636
- }
637
- }
638
- }
639
- EOS
640
- }.to raise_error(Puppet::Error, /hello is not a Node/)
641
- end
642
-
643
- it 'validates that the value of a node mapping is a resource' do
644
- expect { compile_to_catalog(<<-EOS, Puppet::Node.new('other', :environment => env))
645
- application app {
646
- }
647
-
648
- site {
649
- app { anapp:
650
- nodes => {
651
- Node[other] => 'hello'
652
- }
653
- }
654
- }
655
- EOS
656
- }.to raise_error(Puppet::Error, /hello is not a resource/)
657
- end
658
-
659
- it 'validates that the value can be an array or resources' do
660
- expect { compile_to_catalog(<<-EOS, Puppet::Node.new('other', :environment => env))
661
- define p {
662
- notify {$title:}
663
- }
664
-
665
- application app {
666
- p{one:}
667
- p{two:}
668
- }
669
-
670
- site {
671
- app { anapp:
672
- nodes => {
673
- Node[other] => [P[one],P[two]]
674
- }
675
- }
676
- }
677
- EOS
678
- }.not_to raise_error
679
- end
680
-
681
- it 'validates that the is bound to exactly one node' do
682
- expect { compile_to_catalog(<<-EOS, Puppet::Node.new('first', :environment => env))
683
- define p {
684
- notify {$title:}
685
- }
686
-
687
- application app {
688
- p{one:}
689
- }
690
-
691
- site {
692
- app { anapp:
693
- nodes => {
694
- Node[first] => P[one],
695
- Node[second] => P[one],
696
- }
697
- }
698
- }
699
- EOS
700
- }.to raise_error(Puppet::Error, /maps component P\[one\] to multiple nodes/)
701
- end
702
- end
703
-
704
- describe "site containing a resource named 'plan'" do
705
- it 'finds an application named plan' do
706
- expect {compile_collect_log(<<-PUPPET)}.not_to raise_error
707
- define plan::node_file() {
708
- file { "/tmp/plans/${name}.txt":
709
- content => "this is ${name}.txt",
710
- }
711
- }
712
- Plan::Node_file produces Node_file {}
713
- application plan() {
714
- plan::node_file { "node_file_${name}":
715
- export => Node_file["node_file_${name}"]
716
- }
717
- }
718
- site {
719
- plan { "test":
720
- nodes => {
721
- Node["test.example.com"] => Plan::Node_file["node_file_plan_test"],
722
- }
723
- }
724
- }
725
- PUPPET
726
-
727
- expect(warnings).to include(/Use of future reserved word: 'plan'/)
728
- end
729
- end
730
- end