puppet 6.16.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 (645) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -3
  3. data/Gemfile.lock +31 -33
  4. data/README.md +4 -5
  5. data/Rakefile +4 -12
  6. data/conf/fileserver.conf +5 -10
  7. data/ext/build_defaults.yaml +1 -1
  8. data/ext/osx/file_mapping.yaml +0 -5
  9. data/ext/project_data.yaml +1 -14
  10. data/ext/redhat/puppet.spec.erb +0 -1
  11. data/ext/windows/service/daemon.rb +6 -5
  12. data/install.rb +21 -17
  13. data/lib/puppet.rb +11 -20
  14. data/lib/puppet/agent.rb +2 -2
  15. data/lib/puppet/agent/locker.rb +0 -7
  16. data/lib/puppet/application.rb +172 -98
  17. data/lib/puppet/application/agent.rb +22 -6
  18. data/lib/puppet/application/apply.rb +18 -20
  19. data/lib/puppet/application/device.rb +100 -104
  20. data/lib/puppet/application/doc.rb +1 -1
  21. data/lib/puppet/application/filebucket.rb +15 -11
  22. data/lib/puppet/application/lookup.rb +16 -4
  23. data/lib/puppet/application/ssl.rb +1 -1
  24. data/lib/puppet/configurer.rb +66 -31
  25. data/lib/puppet/configurer/downloader.rb +31 -10
  26. data/lib/puppet/configurer/plugin_handler.rb +21 -19
  27. data/lib/puppet/confine.rb +2 -2
  28. data/lib/puppet/confine/any.rb +1 -1
  29. data/lib/puppet/defaults.rb +166 -169
  30. data/lib/puppet/environments.rb +41 -15
  31. data/lib/puppet/face/catalog.rb +1 -1
  32. data/lib/puppet/face/config.rb +56 -16
  33. data/lib/puppet/face/epp.rb +12 -2
  34. data/lib/puppet/face/facts.rb +66 -6
  35. data/lib/puppet/face/help.rb +1 -1
  36. data/lib/puppet/face/node.rb +3 -3
  37. data/lib/puppet/face/node/clean.rb +2 -2
  38. data/lib/puppet/face/plugin.rb +5 -8
  39. data/lib/puppet/feature/base.rb +1 -1
  40. data/lib/puppet/ffi/windows.rb +12 -0
  41. data/lib/puppet/ffi/windows/api_types.rb +311 -0
  42. data/lib/puppet/ffi/windows/constants.rb +404 -0
  43. data/lib/puppet/ffi/windows/functions.rb +628 -0
  44. data/lib/puppet/ffi/windows/structs.rb +338 -0
  45. data/lib/puppet/file_bucket/dipper.rb +1 -1
  46. data/lib/puppet/file_serving/configuration.rb +0 -5
  47. data/lib/puppet/file_serving/configuration/parser.rb +3 -32
  48. data/lib/puppet/file_serving/http_metadata.rb +13 -1
  49. data/lib/puppet/file_serving/metadata.rb +4 -1
  50. data/lib/puppet/file_serving/mount.rb +1 -2
  51. data/lib/puppet/file_serving/mount/locales.rb +1 -2
  52. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
  53. data/lib/puppet/file_serving/mount/plugins.rb +1 -2
  54. data/lib/puppet/file_serving/terminus_selector.rb +7 -8
  55. data/lib/puppet/file_system/file_impl.rb +4 -4
  56. data/lib/puppet/file_system/uniquefile.rb +8 -16
  57. data/lib/puppet/forge.rb +1 -1
  58. data/lib/puppet/forge/cache.rb +1 -1
  59. data/lib/puppet/forge/repository.rb +3 -8
  60. data/lib/puppet/functions/epp.rb +1 -0
  61. data/lib/puppet/functions/inline_epp.rb +1 -0
  62. data/lib/puppet/functions/lstrip.rb +4 -4
  63. data/lib/puppet/functions/new.rb +8 -3
  64. data/lib/puppet/functions/reverse_each.rb +1 -1
  65. data/lib/puppet/functions/rstrip.rb +4 -4
  66. data/lib/puppet/functions/step.rb +1 -1
  67. data/lib/puppet/functions/strip.rb +4 -4
  68. data/lib/puppet/generate/models/type/type.rb +4 -1
  69. data/lib/puppet/gettext/config.rb +5 -5
  70. data/lib/puppet/gettext/module_translations.rb +4 -4
  71. data/lib/puppet/http.rb +23 -13
  72. data/lib/puppet/http/client.rb +170 -115
  73. data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
  74. data/lib/puppet/http/errors.rb +16 -0
  75. data/lib/puppet/http/external_client.rb +5 -7
  76. data/lib/puppet/{network/http → http}/factory.rb +8 -11
  77. data/lib/puppet/{network/http → http}/pool.rb +61 -26
  78. data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
  79. data/lib/puppet/http/proxy.rb +137 -0
  80. data/lib/puppet/http/redirector.rb +13 -19
  81. data/lib/puppet/http/resolver.rb +10 -23
  82. data/lib/puppet/http/resolver/server_list.rb +23 -45
  83. data/lib/puppet/http/resolver/settings.rb +7 -10
  84. data/lib/puppet/http/resolver/srv.rb +11 -15
  85. data/lib/puppet/http/response.rb +49 -48
  86. data/lib/puppet/http/response_converter.rb +24 -0
  87. data/lib/puppet/http/response_net_http.rb +42 -0
  88. data/lib/puppet/http/retry_after_handler.rb +4 -13
  89. data/lib/puppet/http/service.rb +15 -27
  90. data/lib/puppet/http/service/ca.rb +11 -22
  91. data/lib/puppet/http/service/compiler.rb +23 -70
  92. data/lib/puppet/http/service/file_server.rb +19 -28
  93. data/lib/puppet/http/service/puppetserver.rb +53 -0
  94. data/lib/puppet/http/service/report.rb +8 -10
  95. data/lib/puppet/http/session.rb +16 -24
  96. data/lib/puppet/{network/http → http}/site.rb +1 -2
  97. data/lib/puppet/indirector.rb +1 -1
  98. data/lib/puppet/indirector/catalog/compiler.rb +1 -1
  99. data/lib/puppet/indirector/catalog/rest.rb +2 -4
  100. data/lib/puppet/indirector/exec.rb +1 -1
  101. data/lib/puppet/indirector/fact_search.rb +60 -0
  102. data/lib/puppet/indirector/facts/facter.rb +27 -6
  103. data/lib/puppet/indirector/facts/json.rb +27 -0
  104. data/lib/puppet/indirector/facts/rest.rb +3 -22
  105. data/lib/puppet/indirector/facts/yaml.rb +4 -59
  106. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
  107. data/lib/puppet/indirector/file_content/rest.rb +3 -7
  108. data/lib/puppet/indirector/file_metadata/http.rb +25 -5
  109. data/lib/puppet/indirector/file_metadata/rest.rb +5 -11
  110. data/lib/puppet/indirector/file_server.rb +1 -8
  111. data/lib/puppet/indirector/generic_http.rb +0 -11
  112. data/lib/puppet/indirector/hiera.rb +4 -0
  113. data/lib/puppet/indirector/indirection.rb +1 -1
  114. data/lib/puppet/indirector/json.rb +5 -1
  115. data/lib/puppet/indirector/msgpack.rb +1 -1
  116. data/lib/puppet/indirector/node/json.rb +8 -0
  117. data/lib/puppet/indirector/node/rest.rb +2 -4
  118. data/lib/puppet/indirector/report/json.rb +34 -0
  119. data/lib/puppet/indirector/report/processor.rb +2 -2
  120. data/lib/puppet/indirector/report/rest.rb +3 -8
  121. data/lib/puppet/indirector/request.rb +2 -103
  122. data/lib/puppet/indirector/rest.rb +12 -263
  123. data/lib/puppet/indirector/yaml.rb +1 -1
  124. data/lib/puppet/module.rb +1 -2
  125. data/lib/puppet/module_tool/applications.rb +0 -1
  126. data/lib/puppet/network/authconfig.rb +2 -96
  127. data/lib/puppet/network/authorization.rb +13 -35
  128. data/lib/puppet/network/format_support.rb +2 -2
  129. data/lib/puppet/network/formats.rb +2 -1
  130. data/lib/puppet/network/http.rb +3 -3
  131. data/lib/puppet/network/http/api/indirected_routes.rb +3 -21
  132. data/lib/puppet/network/http/api/master/v3.rb +11 -13
  133. data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
  134. data/lib/puppet/network/http/connection.rb +247 -316
  135. data/lib/puppet/network/http/handler.rb +0 -1
  136. data/lib/puppet/network/http/route.rb +2 -2
  137. data/lib/puppet/network/http_pool.rb +16 -34
  138. data/lib/puppet/node.rb +1 -30
  139. data/lib/puppet/node/environment.rb +12 -5
  140. data/lib/puppet/node/facts.rb +17 -0
  141. data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
  142. data/lib/puppet/pal/pal_impl.rb +93 -14
  143. data/lib/puppet/parameter.rb +1 -1
  144. data/lib/puppet/parser/ast/leaf.rb +5 -5
  145. data/lib/puppet/parser/ast/pops_bridge.rb +0 -42
  146. data/lib/puppet/parser/compiler.rb +1 -199
  147. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
  148. data/lib/puppet/parser/functions.rb +21 -17
  149. data/lib/puppet/parser/functions/create_resources.rb +11 -7
  150. data/lib/puppet/parser/resource.rb +3 -71
  151. data/lib/puppet/parser/resource/param.rb +6 -0
  152. data/lib/puppet/parser/type_loader.rb +2 -2
  153. data/lib/puppet/pops/adaptable.rb +7 -13
  154. data/lib/puppet/pops/adapters.rb +8 -4
  155. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
  156. data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -13
  157. data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
  158. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
  159. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  160. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
  161. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
  162. data/lib/puppet/pops/loaders.rb +18 -11
  163. data/lib/puppet/pops/lookup/context.rb +1 -1
  164. data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
  165. data/lib/puppet/pops/model/ast.pp +0 -42
  166. data/lib/puppet/pops/model/ast.rb +0 -290
  167. data/lib/puppet/pops/model/factory.rb +0 -45
  168. data/lib/puppet/pops/model/model_label_provider.rb +0 -5
  169. data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
  170. data/lib/puppet/pops/model/pn_transformer.rb +0 -16
  171. data/lib/puppet/pops/parser/egrammar.ra +0 -56
  172. data/lib/puppet/pops/parser/eparser.rb +1520 -1712
  173. data/lib/puppet/pops/parser/lexer2.rb +4 -4
  174. data/lib/puppet/pops/parser/parser_support.rb +0 -5
  175. data/lib/puppet/pops/resource/resource_type_impl.rb +2 -22
  176. data/lib/puppet/pops/types/iterable.rb +34 -8
  177. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  178. data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
  179. data/lib/puppet/pops/types/type_calculator.rb +0 -7
  180. data/lib/puppet/pops/types/type_parser.rb +0 -4
  181. data/lib/puppet/pops/types/types.rb +0 -1
  182. data/lib/puppet/pops/validation/checker4_0.rb +28 -42
  183. data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
  184. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
  185. data/lib/puppet/provider.rb +0 -13
  186. data/lib/puppet/provider/file/windows.rb +1 -1
  187. data/lib/puppet/provider/nameservice.rb +0 -18
  188. data/lib/puppet/provider/package/apt.rb +34 -0
  189. data/lib/puppet/provider/package/aptitude.rb +1 -1
  190. data/lib/puppet/provider/package/dpkg.rb +1 -11
  191. data/lib/puppet/provider/package/gem.rb +27 -5
  192. data/lib/puppet/provider/package/pip.rb +0 -1
  193. data/lib/puppet/provider/package/pip2.rb +17 -0
  194. data/lib/puppet/provider/package/pkg.rb +0 -4
  195. data/lib/puppet/provider/package/portage.rb +1 -1
  196. data/lib/puppet/provider/package/puppet_gem.rb +6 -4
  197. data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
  198. data/lib/puppet/provider/package/yum.rb +2 -1
  199. data/lib/puppet/provider/package/zypper.rb +3 -0
  200. data/lib/puppet/provider/service/smf.rb +191 -73
  201. data/lib/puppet/provider/service/windows.rb +23 -7
  202. data/lib/puppet/provider/user/aix.rb +1 -1
  203. data/lib/puppet/provider/user/directoryservice.rb +0 -10
  204. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  205. data/lib/puppet/provider/user/useradd.rb +11 -4
  206. data/lib/puppet/provider/user/windows_adsi.rb +18 -1
  207. data/lib/puppet/reference/configuration.rb +2 -0
  208. data/lib/puppet/reference/indirection.rb +1 -1
  209. data/lib/puppet/reports/http.rb +2 -0
  210. data/lib/puppet/resource.rb +3 -90
  211. data/lib/puppet/resource/catalog.rb +1 -14
  212. data/lib/puppet/resource/type.rb +5 -112
  213. data/lib/puppet/resource/type_collection.rb +3 -48
  214. data/lib/puppet/runtime.rb +1 -2
  215. data/lib/puppet/settings.rb +84 -35
  216. data/lib/puppet/settings/base_setting.rb +26 -2
  217. data/lib/puppet/settings/integer_setting.rb +17 -0
  218. data/lib/puppet/settings/port_setting.rb +15 -0
  219. data/lib/puppet/settings/priority_setting.rb +5 -4
  220. data/lib/puppet/ssl.rb +10 -6
  221. data/lib/puppet/ssl/base.rb +3 -5
  222. data/lib/puppet/ssl/certificate.rb +0 -6
  223. data/lib/puppet/ssl/certificate_request.rb +1 -12
  224. data/lib/puppet/ssl/certificate_signer.rb +6 -0
  225. data/lib/puppet/ssl/oids.rb +3 -1
  226. data/lib/puppet/ssl/ssl_context.rb +2 -2
  227. data/lib/puppet/ssl/ssl_provider.rb +37 -1
  228. data/lib/puppet/ssl/state_machine.rb +3 -1
  229. data/lib/puppet/ssl/verifier.rb +2 -0
  230. data/lib/puppet/test/test_helper.rb +19 -16
  231. data/lib/puppet/transaction.rb +3 -9
  232. data/lib/puppet/transaction/persistence.rb +1 -1
  233. data/lib/puppet/transaction/report.rb +10 -8
  234. data/lib/puppet/trusted_external.rb +29 -1
  235. data/lib/puppet/type.rb +9 -77
  236. data/lib/puppet/type/file.rb +45 -22
  237. data/lib/puppet/type/file/checksum.rb +5 -5
  238. data/lib/puppet/type/file/source.rb +33 -13
  239. data/lib/puppet/type/filebucket.rb +4 -4
  240. data/lib/puppet/type/notify.rb +2 -2
  241. data/lib/puppet/type/package.rb +5 -13
  242. data/lib/puppet/type/service.rb +53 -0
  243. data/lib/puppet/type/user.rb +18 -3
  244. data/lib/puppet/util.rb +41 -3
  245. data/lib/puppet/util/autoload.rb +9 -7
  246. data/lib/puppet/util/character_encoding.rb +9 -5
  247. data/lib/puppet/util/checksums.rb +19 -4
  248. data/lib/puppet/util/execution.rb +2 -13
  249. data/lib/puppet/util/fileparsing.rb +2 -2
  250. data/lib/puppet/util/http_proxy.rb +2 -215
  251. data/lib/puppet/util/monkey_patches.rb +0 -46
  252. data/lib/puppet/util/provider_features.rb +1 -1
  253. data/lib/puppet/util/rdoc.rb +0 -7
  254. data/lib/puppet/util/reference.rb +1 -1
  255. data/lib/puppet/util/retry_action.rb +1 -1
  256. data/lib/puppet/util/rubygems.rb +5 -1
  257. data/lib/puppet/util/run_mode.rb +14 -2
  258. data/lib/puppet/util/windows.rb +3 -7
  259. data/lib/puppet/util/windows/daemon.rb +360 -0
  260. data/lib/puppet/util/windows/error.rb +1 -0
  261. data/lib/puppet/util/windows/eventlog.rb +5 -15
  262. data/lib/puppet/util/windows/file.rb +8 -242
  263. data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
  264. data/lib/puppet/util/windows/principal.rb +8 -6
  265. data/lib/puppet/util/windows/process.rb +4 -226
  266. data/lib/puppet/util/windows/registry.rb +11 -11
  267. data/lib/puppet/util/windows/security.rb +4 -4
  268. data/lib/puppet/util/windows/service.rb +52 -486
  269. data/lib/puppet/util/windows/string.rb +12 -13
  270. data/lib/puppet/util/windows/user.rb +242 -8
  271. data/lib/puppet/util/yaml.rb +0 -22
  272. data/lib/puppet/vendor/require_vendored.rb +0 -1
  273. data/lib/puppet/version.rb +1 -1
  274. data/lib/puppet/x509.rb +5 -1
  275. data/lib/puppet/x509/cert_provider.rb +29 -1
  276. data/locales/puppet.pot +713 -1380
  277. data/man/man5/puppet.conf.5 +84 -98
  278. data/man/man8/puppet-agent.8 +7 -4
  279. data/man/man8/puppet-apply.8 +1 -1
  280. data/man/man8/puppet-catalog.8 +1 -1
  281. data/man/man8/puppet-config.8 +6 -6
  282. data/man/man8/puppet-describe.8 +1 -1
  283. data/man/man8/puppet-device.8 +1 -1
  284. data/man/man8/puppet-doc.8 +1 -1
  285. data/man/man8/puppet-epp.8 +1 -1
  286. data/man/man8/puppet-facts.8 +55 -9
  287. data/man/man8/puppet-filebucket.8 +6 -6
  288. data/man/man8/puppet-generate.8 +1 -1
  289. data/man/man8/puppet-help.8 +1 -1
  290. data/man/man8/puppet-lookup.8 +2 -2
  291. data/man/man8/puppet-module.8 +1 -58
  292. data/man/man8/puppet-node.8 +7 -4
  293. data/man/man8/puppet-parser.8 +1 -1
  294. data/man/man8/puppet-plugin.8 +1 -1
  295. data/man/man8/puppet-report.8 +4 -1
  296. data/man/man8/puppet-resource.8 +1 -1
  297. data/man/man8/puppet-script.8 +1 -1
  298. data/man/man8/puppet-ssl.8 +1 -1
  299. data/man/man8/puppet.8 +2 -2
  300. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
  301. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
  302. data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
  303. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  304. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
  305. data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
  306. data/spec/integration/application/agent_spec.rb +157 -59
  307. data/spec/integration/application/apply_spec.rb +150 -150
  308. data/spec/integration/application/doc_spec.rb +16 -6
  309. data/spec/integration/application/filebucket_spec.rb +78 -29
  310. data/spec/integration/application/help_spec.rb +44 -0
  311. data/spec/integration/application/lookup_spec.rb +13 -0
  312. data/spec/integration/application/module_spec.rb +68 -0
  313. data/spec/integration/application/plugin_spec.rb +76 -4
  314. data/spec/integration/configurer_spec.rb +14 -0
  315. data/spec/integration/data_binding_spec.rb +82 -0
  316. data/spec/integration/defaults_spec.rb +33 -5
  317. data/spec/integration/directory_environments_spec.rb +17 -17
  318. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  319. data/spec/integration/indirector/facts/facter_spec.rb +8 -6
  320. data/spec/integration/network/http_pool_spec.rb +29 -30
  321. data/spec/integration/node/environment_spec.rb +1 -1
  322. data/spec/integration/parser/catalog_spec.rb +0 -38
  323. data/spec/integration/parser/compiler_spec.rb +11 -0
  324. data/spec/integration/parser/node_spec.rb +0 -9
  325. data/spec/integration/parser/pcore_resource_spec.rb +0 -37
  326. data/spec/integration/type/file_spec.rb +6 -5
  327. data/spec/integration/util/execution_spec.rb +22 -0
  328. data/spec/integration/util/windows/adsi_spec.rb +2 -2
  329. data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
  330. data/spec/integration/util/windows/process_spec.rb +26 -32
  331. data/spec/integration/util/windows/registry_spec.rb +7 -7
  332. data/spec/integration/util/windows/security_spec.rb +1 -1
  333. data/spec/integration/util/windows/user_spec.rb +47 -5
  334. data/spec/integration/util_spec.rb +7 -33
  335. data/spec/lib/puppet_spec/matchers.rb +0 -80
  336. data/spec/lib/puppet_spec/puppetserver.rb +9 -1
  337. data/spec/lib/puppet_spec/settings.rb +7 -1
  338. data/spec/shared_contexts/types_setup.rb +2 -0
  339. data/spec/spec_helper.rb +2 -0
  340. data/spec/unit/agent_spec.rb +0 -2
  341. data/spec/unit/application/agent_spec.rb +3 -4
  342. data/spec/unit/application/config_spec.rb +224 -4
  343. data/spec/unit/application/doc_spec.rb +2 -2
  344. data/spec/unit/application/face_base_spec.rb +6 -4
  345. data/spec/unit/application/facts_spec.rb +74 -8
  346. data/spec/unit/application/filebucket_spec.rb +41 -39
  347. data/spec/unit/application/resource_spec.rb +3 -1
  348. data/spec/unit/application/ssl_spec.rb +17 -4
  349. data/spec/unit/application_spec.rb +9 -4
  350. data/spec/unit/certificate_factory_spec.rb +1 -1
  351. data/spec/unit/configurer/downloader_spec.rb +14 -0
  352. data/spec/unit/configurer/fact_handler_spec.rb +4 -4
  353. data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
  354. data/spec/unit/configurer_spec.rb +96 -44
  355. data/spec/unit/confine_spec.rb +2 -1
  356. data/spec/unit/context/trusted_information_spec.rb +12 -10
  357. data/spec/unit/defaults_spec.rb +77 -28
  358. data/spec/unit/environments_spec.rb +96 -32
  359. data/spec/unit/face/config_spec.rb +65 -12
  360. data/spec/unit/face/facts_spec.rb +4 -0
  361. data/spec/unit/face/node_spec.rb +2 -2
  362. data/spec/unit/face/plugin_spec.rb +73 -33
  363. data/spec/unit/file_bucket/file_spec.rb +1 -1
  364. data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
  365. data/spec/unit/file_serving/configuration_spec.rb +6 -12
  366. data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
  367. data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
  368. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
  369. data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
  370. data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
  371. data/spec/unit/file_system/uniquefile_spec.rb +18 -0
  372. data/spec/unit/file_system_spec.rb +1 -2
  373. data/spec/unit/functions/camelcase_spec.rb +1 -1
  374. data/spec/unit/functions/capitalize_spec.rb +1 -1
  375. data/spec/unit/functions/downcase_spec.rb +1 -1
  376. data/spec/unit/functions/inline_epp_spec.rb +26 -1
  377. data/spec/unit/functions/upcase_spec.rb +1 -1
  378. data/spec/unit/http/client_spec.rb +71 -17
  379. data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
  380. data/spec/unit/http/external_client_spec.rb +4 -4
  381. data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
  382. data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
  383. data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
  384. data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
  385. data/spec/unit/http/resolver_spec.rb +34 -15
  386. data/spec/unit/http/response_spec.rb +6 -0
  387. data/spec/unit/http/service/ca_spec.rb +2 -3
  388. data/spec/unit/http/service/compiler_spec.rb +51 -65
  389. data/spec/unit/http/service/file_server_spec.rb +5 -6
  390. data/spec/unit/http/service/puppetserver_spec.rb +112 -0
  391. data/spec/unit/http/service/report_spec.rb +2 -3
  392. data/spec/unit/http/service_spec.rb +1 -3
  393. data/spec/unit/http/session_spec.rb +24 -35
  394. data/spec/unit/{network/http → http}/site_spec.rb +3 -3
  395. data/spec/unit/indirector/catalog/json_spec.rb +1 -1
  396. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  397. data/spec/unit/indirector/facts/facter_spec.rb +97 -0
  398. data/spec/unit/indirector/facts/json_spec.rb +255 -0
  399. data/spec/unit/indirector/facts/rest_spec.rb +1 -1
  400. data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
  401. data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
  402. data/spec/unit/indirector/file_metadata/http_spec.rb +27 -0
  403. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
  404. data/spec/unit/indirector/file_server_spec.rb +1 -15
  405. data/spec/unit/indirector/json_spec.rb +8 -8
  406. data/spec/unit/indirector/msgpack_spec.rb +8 -8
  407. data/spec/unit/indirector/node/json_spec.rb +33 -0
  408. data/spec/unit/indirector/node/rest_spec.rb +1 -1
  409. data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
  410. data/spec/unit/indirector/report/rest_spec.rb +2 -17
  411. data/spec/unit/indirector/report/yaml_spec.rb +72 -8
  412. data/spec/unit/indirector/request_spec.rb +3 -267
  413. data/spec/unit/indirector/rest_spec.rb +98 -752
  414. data/spec/unit/indirector/yaml_spec.rb +7 -7
  415. data/spec/unit/interface_spec.rb +3 -3
  416. data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
  417. data/spec/unit/network/authconfig_spec.rb +2 -132
  418. data/spec/unit/network/authorization_spec.rb +2 -55
  419. data/spec/unit/network/format_support_spec.rb +3 -2
  420. data/spec/unit/network/formats_spec.rb +4 -4
  421. data/spec/unit/network/http/api/indirected_routes_spec.rb +3 -98
  422. data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
  423. data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
  424. data/spec/unit/network/http/api_spec.rb +10 -0
  425. data/spec/unit/network/http/connection_spec.rb +61 -73
  426. data/spec/unit/network/http/handler_spec.rb +0 -6
  427. data/spec/unit/network/http_pool_spec.rb +0 -4
  428. data/spec/unit/node/environment_spec.rb +51 -22
  429. data/spec/unit/node_spec.rb +2 -54
  430. data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
  431. data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
  432. data/spec/unit/parser/scope_spec.rb +1 -1
  433. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +19 -8
  434. data/spec/unit/pops/loaders/loaders_spec.rb +77 -22
  435. data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
  436. data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
  437. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
  438. data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
  439. data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
  440. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
  441. data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
  442. data/spec/unit/pops/types/type_calculator_spec.rb +7 -17
  443. data/spec/unit/pops/types/type_factory_spec.rb +1 -1
  444. data/spec/unit/pops/validator/validator_spec.rb +61 -46
  445. data/spec/unit/pops/visitor_spec.rb +1 -1
  446. data/spec/unit/provider/exec_spec.rb +4 -3
  447. data/spec/unit/provider/nameservice_spec.rb +0 -57
  448. data/spec/unit/provider/package/apt_spec.rb +77 -0
  449. data/spec/unit/provider/package/aptitude_spec.rb +1 -0
  450. data/spec/unit/provider/package/dpkg_spec.rb +22 -55
  451. data/spec/unit/provider/package/gem_spec.rb +32 -0
  452. data/spec/unit/provider/package/openbsd_spec.rb +2 -0
  453. data/spec/unit/provider/package/pip2_spec.rb +36 -0
  454. data/spec/unit/provider/package/puppet_gem_spec.rb +6 -2
  455. data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
  456. data/spec/unit/provider/package/yum_spec.rb +31 -0
  457. data/spec/unit/provider/package/zypper_spec.rb +14 -0
  458. data/spec/unit/provider/service/base_spec.rb +2 -4
  459. data/spec/unit/provider/service/bsd_spec.rb +5 -1
  460. data/spec/unit/provider/service/daemontools_spec.rb +1 -1
  461. data/spec/unit/provider/service/debian_spec.rb +3 -5
  462. data/spec/unit/provider/service/freebsd_spec.rb +1 -1
  463. data/spec/unit/provider/service/gentoo_spec.rb +4 -5
  464. data/spec/unit/provider/service/init_spec.rb +45 -5
  465. data/spec/unit/provider/service/launchd_spec.rb +5 -6
  466. data/spec/unit/provider/service/openrc_spec.rb +4 -5
  467. data/spec/unit/provider/service/openwrt_spec.rb +1 -1
  468. data/spec/unit/provider/service/redhat_spec.rb +1 -1
  469. data/spec/unit/provider/service/runit_spec.rb +2 -1
  470. data/spec/unit/provider/service/smf_spec.rb +402 -166
  471. data/spec/unit/provider/service/src_spec.rb +3 -5
  472. data/spec/unit/provider/service/systemd_spec.rb +3 -6
  473. data/spec/unit/provider/service/upstart_spec.rb +4 -5
  474. data/spec/unit/provider/service/windows_spec.rb +50 -15
  475. data/spec/unit/provider/user/openbsd_spec.rb +1 -0
  476. data/spec/unit/provider/user/useradd_spec.rb +22 -16
  477. data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
  478. data/spec/unit/provider_spec.rb +0 -12
  479. data/spec/unit/puppet_pal_2pec.rb +40 -0
  480. data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
  481. data/spec/unit/reports/store_spec.rb +17 -13
  482. data/spec/unit/resource/type_collection_spec.rb +2 -22
  483. data/spec/unit/resource_spec.rb +3 -59
  484. data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
  485. data/spec/unit/settings/integer_setting_spec.rb +42 -0
  486. data/spec/unit/settings/port_setting_spec.rb +31 -0
  487. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  488. data/spec/unit/settings_spec.rb +586 -239
  489. data/spec/unit/ssl/base_spec.rb +36 -3
  490. data/spec/unit/ssl/certificate_request_spec.rb +15 -45
  491. data/spec/unit/ssl/certificate_spec.rb +2 -11
  492. data/spec/unit/ssl/ssl_provider_spec.rb +78 -49
  493. data/spec/unit/ssl/state_machine_spec.rb +0 -1
  494. data/spec/unit/ssl/verifier_spec.rb +0 -21
  495. data/spec/unit/test/test_helper_spec.rb +17 -0
  496. data/spec/unit/transaction/persistence_spec.rb +15 -0
  497. data/spec/unit/transaction/report_spec.rb +3 -3
  498. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  499. data/spec/unit/transaction_spec.rb +45 -79
  500. data/spec/unit/type/file/checksum_spec.rb +6 -6
  501. data/spec/unit/type/file/content_spec.rb +1 -1
  502. data/spec/unit/type/file/ensure_spec.rb +1 -1
  503. data/spec/unit/type/file/mode_spec.rb +1 -1
  504. data/spec/unit/type/file/source_spec.rb +4 -5
  505. data/spec/unit/type/file_spec.rb +134 -102
  506. data/spec/unit/type/filebucket_spec.rb +1 -1
  507. data/spec/unit/type/package_spec.rb +1 -1
  508. data/spec/unit/type/service_spec.rb +209 -0
  509. data/spec/unit/type/user_spec.rb +31 -2
  510. data/spec/unit/type_spec.rb +70 -0
  511. data/spec/unit/util/backups_spec.rb +0 -2
  512. data/spec/unit/util/character_encoding_spec.rb +4 -4
  513. data/spec/unit/util/checksums_spec.rb +16 -0
  514. data/spec/unit/util/command_line_spec.rb +11 -6
  515. data/spec/unit/util/execution_spec.rb +0 -29
  516. data/spec/unit/util/monkey_patches_spec.rb +0 -6
  517. data/spec/unit/util/rubygems_spec.rb +2 -2
  518. data/spec/unit/util/run_mode_spec.rb +27 -127
  519. data/spec/unit/util/windows/api_types_spec.rb +104 -40
  520. data/spec/unit/util/windows/service_spec.rb +4 -4
  521. data/spec/unit/util/windows/string_spec.rb +1 -3
  522. data/spec/unit/util/yaml_spec.rb +0 -54
  523. data/spec/unit/util_spec.rb +3 -21
  524. data/spec/unit/x509/cert_provider_spec.rb +1 -1
  525. metadata +76 -270
  526. data/conf/auth.conf +0 -150
  527. data/lib/puppet/application/cert.rb +0 -76
  528. data/lib/puppet/application/key.rb +0 -4
  529. data/lib/puppet/application/man.rb +0 -4
  530. data/lib/puppet/application/status.rb +0 -4
  531. data/lib/puppet/face/key.rb +0 -16
  532. data/lib/puppet/face/man.rb +0 -145
  533. data/lib/puppet/face/module/build.rb +0 -14
  534. data/lib/puppet/face/module/generate.rb +0 -14
  535. data/lib/puppet/face/module/search.rb +0 -103
  536. data/lib/puppet/face/status.rb +0 -51
  537. data/lib/puppet/indirector/certificate/file.rb +0 -9
  538. data/lib/puppet/indirector/certificate/rest.rb +0 -18
  539. data/lib/puppet/indirector/certificate_request/file.rb +0 -9
  540. data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
  541. data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
  542. data/lib/puppet/indirector/file_content/http.rb +0 -22
  543. data/lib/puppet/indirector/key/file.rb +0 -46
  544. data/lib/puppet/indirector/key/memory.rb +0 -7
  545. data/lib/puppet/indirector/ssl_file.rb +0 -162
  546. data/lib/puppet/indirector/status.rb +0 -3
  547. data/lib/puppet/indirector/status/local.rb +0 -12
  548. data/lib/puppet/indirector/status/rest.rb +0 -27
  549. data/lib/puppet/module_tool/applications/searcher.rb +0 -29
  550. data/lib/puppet/network/auth_config_parser.rb +0 -90
  551. data/lib/puppet/network/authstore.rb +0 -283
  552. data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
  553. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -85
  554. data/lib/puppet/network/http/base_pool.rb +0 -36
  555. data/lib/puppet/network/http/compression.rb +0 -127
  556. data/lib/puppet/network/http/connection_adapter.rb +0 -182
  557. data/lib/puppet/network/http/nocache_pool.rb +0 -28
  558. data/lib/puppet/network/rest_controller.rb +0 -2
  559. data/lib/puppet/network/rights.rb +0 -210
  560. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -64
  561. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -20
  562. data/lib/puppet/parser/environment_compiler.rb +0 -199
  563. data/lib/puppet/pops/types/enumeration.rb +0 -16
  564. data/lib/puppet/resource/capability_finder.rb +0 -154
  565. data/lib/puppet/rest/errors.rb +0 -15
  566. data/lib/puppet/rest/response.rb +0 -35
  567. data/lib/puppet/rest/route.rb +0 -85
  568. data/lib/puppet/rest/routes.rb +0 -135
  569. data/lib/puppet/ssl/host.rb +0 -505
  570. data/lib/puppet/ssl/key.rb +0 -61
  571. data/lib/puppet/ssl/validator.rb +0 -61
  572. data/lib/puppet/ssl/validator/default_validator.rb +0 -209
  573. data/lib/puppet/ssl/validator/no_validator.rb +0 -22
  574. data/lib/puppet/ssl/verifier_adapter.rb +0 -58
  575. data/lib/puppet/status.rb +0 -40
  576. data/lib/puppet/util/connection.rb +0 -88
  577. data/lib/puppet/util/ssl.rb +0 -83
  578. data/lib/puppet/util/windows/api_types.rb +0 -282
  579. data/lib/puppet/vendor/load_pathspec.rb +0 -1
  580. data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
  581. data/lib/puppet/vendor/pathspec/LICENSE +0 -201
  582. data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
  583. data/lib/puppet/vendor/pathspec/README.md +0 -53
  584. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
  585. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
  586. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
  587. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
  588. data/man/man8/puppet-key.8 +0 -126
  589. data/man/man8/puppet-man.8 +0 -76
  590. data/man/man8/puppet-status.8 +0 -108
  591. data/spec/integration/faces/config_spec.rb +0 -91
  592. data/spec/integration/faces/documentation_spec.rb +0 -57
  593. data/spec/integration/file_bucket/file_spec.rb +0 -50
  594. data/spec/integration/file_serving/content_spec.rb +0 -7
  595. data/spec/integration/file_serving/fileset_spec.rb +0 -12
  596. data/spec/integration/file_serving/metadata_spec.rb +0 -8
  597. data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
  598. data/spec/integration/file_system/uniquefile_spec.rb +0 -26
  599. data/spec/integration/module_tool/forge_spec.rb +0 -51
  600. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  601. data/spec/integration/network/authconfig_spec.rb +0 -256
  602. data/spec/integration/provider/service/init_spec.rb +0 -48
  603. data/spec/integration/provider/service/systemd_spec.rb +0 -25
  604. data/spec/integration/provider/service/windows_spec.rb +0 -50
  605. data/spec/integration/reference/providers_spec.rb +0 -21
  606. data/spec/integration/reports_spec.rb +0 -13
  607. data/spec/integration/ssl/certificate_request_spec.rb +0 -44
  608. data/spec/integration/ssl/host_spec.rb +0 -72
  609. data/spec/integration/ssl/key_spec.rb +0 -99
  610. data/spec/integration/test/test_helper_spec.rb +0 -31
  611. data/spec/shared_behaviours/file_serving_model.rb +0 -51
  612. data/spec/unit/capability_spec.rb +0 -414
  613. data/spec/unit/face/catalog_spec.rb +0 -6
  614. data/spec/unit/face/key_spec.rb +0 -9
  615. data/spec/unit/face/man_spec.rb +0 -25
  616. data/spec/unit/face/module/search_spec.rb +0 -231
  617. data/spec/unit/face/module_spec.rb +0 -3
  618. data/spec/unit/face/status_spec.rb +0 -9
  619. data/spec/unit/indirector/certificate/file_spec.rb +0 -14
  620. data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
  621. data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
  622. data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
  623. data/spec/unit/indirector/key/file_spec.rb +0 -79
  624. data/spec/unit/indirector/ssl_file_spec.rb +0 -305
  625. data/spec/unit/indirector/status/local_spec.rb +0 -10
  626. data/spec/unit/indirector/status/rest_spec.rb +0 -50
  627. data/spec/unit/man_spec.rb +0 -31
  628. data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
  629. data/spec/unit/network/auth_config_parser_spec.rb +0 -115
  630. data/spec/unit/network/authstore_spec.rb +0 -422
  631. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
  632. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
  633. data/spec/unit/network/http/compression_spec.rb +0 -240
  634. data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
  635. data/spec/unit/network/http_spec.rb +0 -9
  636. data/spec/unit/network/rights_spec.rb +0 -439
  637. data/spec/unit/parser/environment_compiler_spec.rb +0 -723
  638. data/spec/unit/pops/types/enumeration_spec.rb +0 -51
  639. data/spec/unit/resource/capability_finder_spec.rb +0 -143
  640. data/spec/unit/rest/route_spec.rb +0 -132
  641. data/spec/unit/ssl/host_spec.rb +0 -650
  642. data/spec/unit/ssl/key_spec.rb +0 -173
  643. data/spec/unit/ssl/validator_spec.rb +0 -278
  644. data/spec/unit/status_spec.rb +0 -45
  645. data/spec/unit/util/ssl_spec.rb +0 -91
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  require 'puppet_spec/handler'
4
4
  require 'puppet/indirector_testing'
5
- require 'puppet/network/authorization'
6
5
  require 'puppet/network/http'
7
6
 
8
7
  describe Puppet::Network::HTTP::Handler do
@@ -102,11 +101,6 @@ describe Puppet::Network::HTTP::Handler do
102
101
  { :status => 200 }
103
102
  end
104
103
 
105
- before do
106
- allow(handler).to receive(:check_authorization)
107
- allow(handler).to receive(:warn_if_near_expiration)
108
- end
109
-
110
104
  it "should setup a profiler when the puppet-profiling header exists" do
111
105
  request = a_request
112
106
  request[:headers][Puppet::Network::HTTP::HEADER_ENABLE_PROFILING.downcase] = "true"
@@ -69,10 +69,6 @@ describe Puppet::Network::HttpPool do
69
69
  expect(Puppet::Network::HttpPool.http_instance("me", 54321, true)).to be_use_ssl
70
70
  end
71
71
 
72
- it 'has an http_ssl_instance method' do
73
- expect(Puppet::Network::HttpPool.http_ssl_instance("me", 54321)).to be_use_ssl
74
- end
75
-
76
72
  context "when calling 'connection'" do
77
73
  it 'requires an ssl_context' do
78
74
  expect {
@@ -426,7 +426,7 @@ describe Puppet::Node::Environment do
426
426
  it "includes the Bolt project in modules if it's defined" do
427
427
  path = tmpdir('project')
428
428
  PuppetSpec::Modules.generate_files('bolt_project', path)
429
- project = Struct.new("Project", :name, :path).new('bolt_project', path)
429
+ project = Struct.new("Project", :name, :path, :load_as_module?).new('bolt_project', path, true)
430
430
 
431
431
  Puppet.override(bolt_project: project) do
432
432
  %w{foo bar}.each do |mod_name|
@@ -438,6 +438,23 @@ describe Puppet::Node::Environment do
438
438
  expect(env.modules.collect{|mod| mod.name}.sort).to eq(%w{bolt_project foo bar bee baz}.sort)
439
439
  end
440
440
  end
441
+
442
+ it "does not include the Bolt project in modules if load_as_module? is false" do
443
+ path = tmpdir('project')
444
+ PuppetSpec::Modules.generate_files('bolt_project', path)
445
+ project = Struct.new("Project", :name, :path, :load_as_module?).new('bolt_project', path, false)
446
+
447
+ Puppet.override(bolt_project: project) do
448
+ %w{foo bar}.each do |mod_name|
449
+ PuppetSpec::Modules.generate_files(mod_name, first_modulepath)
450
+ end
451
+ %w{bee baz}.each do |mod_name|
452
+ PuppetSpec::Modules.generate_files(mod_name, second_modulepath)
453
+ end
454
+ expect(env.modules.collect{|mod| mod.name}.sort).to eq(%w{foo bar bee baz}.sort)
455
+ end
456
+
457
+ end
441
458
  end
442
459
  end
443
460
  end
@@ -509,34 +526,46 @@ describe Puppet::Node::Environment do
509
526
  end
510
527
 
511
528
  describe "managing module translations" do
512
- it "creates a new text domain the first time we try to use the text domain" do
513
- expect(Puppet::GettextConfig).to receive(:reset_text_domain).with(env.name)
514
- expect(Puppet::ModuleTranslations).to receive(:load_from_modulepath)
515
- expect(Puppet::GettextConfig).to receive(:clear_text_domain)
529
+ context "when i18n is enabled" do
530
+ before(:each) do
531
+ Puppet[:disable_i18n] = false
532
+ end
516
533
 
517
- env.with_text_domain do; end
518
- end
534
+ it "yields block results" do
535
+ ran = false
536
+ expect(env.with_text_domain { ran = true; :result }).to eq(:result)
537
+ expect(ran).to eq(true)
538
+ end
519
539
 
520
- it "uses the existing text domain once it has been created" do
521
- env.with_text_domain do; end
540
+ it "creates a new text domain the first time we try to use the text domain" do
541
+ expect(Puppet::GettextConfig).to receive(:reset_text_domain).with(env.name)
542
+ expect(Puppet::ModuleTranslations).to receive(:load_from_modulepath)
543
+ expect(Puppet::GettextConfig).to receive(:clear_text_domain)
522
544
 
523
- expect(Puppet::GettextConfig).to receive(:use_text_domain).with(env.name)
524
- env.with_text_domain do; end
525
- end
545
+ env.with_text_domain do; end
546
+ end
526
547
 
527
- it "yields block results" do
528
- ran = false
529
- expect(env.with_text_domain { ran = true; :result }).to eq(:result)
530
- expect(ran).to eq(true)
548
+ it "uses the existing text domain once it has been created" do
549
+ env.with_text_domain do; end
550
+
551
+ expect(Puppet::GettextConfig).to receive(:use_text_domain).with(env.name)
552
+ env.with_text_domain do; end
553
+ end
531
554
  end
532
555
 
533
- it "yields block results when i18n is disabled" do
534
- Puppet[:disable_i18n] = true
556
+ context "when i18n is disabled" do
557
+ it "yields block results" do
558
+ ran = false
559
+ expect(env.with_text_domain { ran = true; :result }).to eq(:result)
560
+ expect(ran).to eq(true)
561
+ end
562
+
563
+ it "does not create a new text domain the first time we try to use the text domain" do
564
+ expect(Puppet::GettextConfig).not_to receive(:reset_text_domain)
565
+ expect(Puppet::ModuleTranslations).not_to receive(:load_from_modulepath)
535
566
 
536
- ran = false
537
- expect(env.with_text_domain { ran = true; :result }).to eq(:result)
538
- expect(ran).to eq(true)
567
+ env.with_text_domain do; end
568
+ end
539
569
  end
540
570
  end
541
-
542
571
  end
@@ -417,64 +417,12 @@ end
417
417
 
418
418
  describe Puppet::Node, "when generating the list of names to search through" do
419
419
  before do
420
- Puppet[:strict_hostname_checking] = false
421
420
  @node = Puppet::Node.new("foo.domain.com",
422
421
  :parameters => {"hostname" => "yay", "domain" => "domain.com"})
423
422
  end
424
423
 
425
- it "returns an array of names" do
424
+ it "returns an array of one name" do
426
425
  expect(@node.names).to be_instance_of(Array)
427
- end
428
-
429
- describe "and the node name is fully qualified" do
430
- it "contains an entry for each part of the node name" do
431
- expect(@node.names).to include("foo.domain.com")
432
- expect(@node.names).to include("foo.domain")
433
- expect(@node.names).to include("foo")
434
- end
435
- end
436
-
437
- it "includes the node's fqdn" do
438
- expect(@node.names).to include("yay.domain.com")
439
- end
440
-
441
- it "combines and include the node's hostname and domain if no fqdn is available" do
442
- expect(@node.names).to include("yay.domain.com")
443
- end
444
-
445
- it "contains an entry for each name available by stripping a segment of the fqdn" do
446
- @node.parameters["fqdn"] = "foo.deep.sub.domain.com"
447
- expect(@node.names).to include("foo.deep.sub.domain")
448
- expect(@node.names).to include("foo.deep.sub")
449
- end
450
-
451
- describe "and :node_name is set to 'cert'" do
452
- before do
453
- Puppet[:node_name] = "cert"
454
- end
455
-
456
- it "uses the passed-in key as the first value" do
457
- expect(@node.names[0]).to eq("foo.domain.com")
458
- end
459
-
460
- describe "and strict hostname checking is enabled" do
461
- before do
462
- Puppet[:strict_hostname_checking] = true
463
- end
464
-
465
- it "only uses the passed-in key" do
466
- expect(@node.names).to eq(["foo.domain.com"])
467
- end
468
- end
469
- end
470
-
471
- describe "and :node_name is set to 'facter'" do
472
- before do
473
- Puppet[:node_name] = "facter"
474
- end
475
-
476
- it "uses the node's 'hostname' fact as the first value" do
477
- expect(@node.names[0]).to eq("yay")
478
- end
426
+ expect(@node.names).to eq ["foo.domain.com"]
479
427
  end
480
428
  end
@@ -12,7 +12,7 @@ describe 'Puppet::Parser::AST::BlockExpression' do
12
12
  NO_SCOPE = nil
13
13
 
14
14
  def depth_probe
15
- StackDepthAST.new({})
15
+ StackDepthAST.new
16
16
  end
17
17
 
18
18
  def sequence_probe(name)
@@ -257,31 +257,13 @@ describe 'function for dynamically creating resources' do
257
257
  expect(catalog.resource(:class, "bar")).not_to be_nil
258
258
  end
259
259
 
260
- [:off, :warning].each do | strictness |
261
- it "should warn if strict = #{strictness} and class is exported" do
262
- Puppet[:strict] = strictness
263
- collect_notices('class test{} create_resources("@@class", {test => {}})')
264
- expect(warnings).to include(/Classes are not virtualizable/)
265
- end
266
- end
267
-
268
- it 'should error if strict = error and class is exported' do
269
- Puppet[:strict] = :error
260
+ it 'should error if class is exported' do
270
261
  expect{
271
262
  compile_to_catalog('class test{} create_resources("@@class", {test => {}})')
272
263
  }.to raise_error(/Classes are not virtualizable/)
273
264
  end
274
265
 
275
- [:off, :warning].each do | strictness |
276
- it "should warn if strict = #{strictness} and class is virtual" do
277
- Puppet[:strict] = strictness
278
- collect_notices('class test{} create_resources("@class", {test => {}})')
279
- expect(warnings).to include(/Classes are not virtualizable/)
280
- end
281
- end
282
-
283
- it 'should error if strict = error and class is virtual' do
284
- Puppet[:strict] = :error
266
+ it 'should error if class is virtual' do
285
267
  expect{
286
268
  compile_to_catalog('class test{} create_resources("@class", {test => {}})')
287
269
  }.to raise_error(/Classes are not virtualizable/)
@@ -105,7 +105,7 @@ describe Puppet::Parser::Scope do
105
105
 
106
106
  it "should fail if something that isn't a compiler is supplied" do
107
107
  expect {
108
- Puppet::Parser::Scope.new(:compiler => true)
108
+ Puppet::Parser::Scope.new(nil)
109
109
  }.to raise_error(Puppet::DevError, /you must pass a compiler instance/)
110
110
  end
111
111
 
@@ -818,14 +818,11 @@ describe 'Puppet::Pops::Evaluator::EvaluatorImpl' do
818
818
  end
819
819
  end
820
820
 
821
- # Integer for >= 2.4.0, otherwise Fixnum
822
- int_class_name = 0.class.name
823
-
824
821
  # Errors when wrong number/type of keys are used
825
822
  {
826
- "Array[0]" => "Array-Type[] arguments must be types. Got #{int_class_name}",
827
- "Hash[0]" => "Hash-Type[] arguments must be types. Got #{int_class_name}",
828
- "Hash[Integer, 0]" => "Hash-Type[] arguments must be types. Got #{int_class_name}",
823
+ "Array[0]" => "Array-Type[] arguments must be types. Got Integer",
824
+ "Hash[0]" => "Hash-Type[] arguments must be types. Got Integer",
825
+ "Hash[Integer, 0]" => "Hash-Type[] arguments must be types. Got Integer",
829
826
  "Array[Integer,1,2,3]" => 'Array-Type[] accepts 1 to 3 arguments. Got 4',
830
827
  "Array[Integer,String]" => "A Type's size constraint arguments must be a single Integer type, or 1-2 integers (or default). Got a String-Type",
831
828
  "Hash[Integer,String, 1,2,3]" => 'Hash-Type[] accepts 2 to 4 arguments. Got 5',
@@ -833,7 +830,7 @@ describe 'Puppet::Pops::Evaluator::EvaluatorImpl' do
833
830
  "'abc'[1.0]" => "A substring operation does not accept a Float as a character index. Expected an Integer",
834
831
  "'abc'[1, x]" => "A substring operation does not accept a String as a character index. Expected an Integer",
835
832
  "'abc'[1,2,3]" => "String supports [] with one or two arguments. Got 3",
836
- "NotUndef[0]" => "NotUndef-Type[] argument must be a Type or a String. Got #{int_class_name}",
833
+ "NotUndef[0]" => "NotUndef-Type[] argument must be a Type or a String. Got Integer",
837
834
  "NotUndef[a,b]" => 'NotUndef-Type[] accepts 0 to 1 arguments. Got 2',
838
835
  "Resource[0]" => 'First argument to Resource[] must be a resource type or a String. Got Integer',
839
836
  "Resource[a, 0]" => 'Error creating type specialization of a Resource-Type, Cannot use Integer where a resource title String is expected',
@@ -1578,7 +1575,10 @@ describe 'Puppet::Pops::Evaluator::EvaluatorImpl' do
1578
1575
  let(:applicator) { double('apply_executor') }
1579
1576
 
1580
1577
  it 'invokes an apply_executor' do
1581
- expect(applicator).to receive(:apply).with(['arg1', 'arg2'], nil, scope).and_return(:result)
1578
+ expect(applicator).to receive(:apply).with(
1579
+ ['arg1', 'arg2'],
1580
+ instance_of(Puppet::Pops::Model::BlockExpression),
1581
+ scope).and_return(:result)
1582
1582
  src = "apply('arg1', 'arg2') { }"
1583
1583
  Puppet.override(apply_executor: applicator) do
1584
1584
  expect(parser.evaluate_string(scope, src)).to eq(:result)
@@ -1595,6 +1595,17 @@ describe 'Puppet::Pops::Evaluator::EvaluatorImpl' do
1595
1595
  expect(parser.evaluate_string(scope, src)).to eq(:result)
1596
1596
  end
1597
1597
  end
1598
+
1599
+ it 'returns a BlockExpression with an empty apply block' do
1600
+ expect(applicator).to receive(:apply).with(
1601
+ [['arg1']],
1602
+ instance_of(Puppet::Pops::Model::BlockExpression),
1603
+ scope).and_return(:result)
1604
+ src = "apply(['arg1']) { }"
1605
+ Puppet.override(apply_executor: applicator) do
1606
+ expect(parser.evaluate_string(scope, src)).to eq(:result)
1607
+ end
1608
+ end
1598
1609
  end
1599
1610
  end
1600
1611
 
@@ -92,6 +92,35 @@ describe 'loaders' do
92
92
  it 'errors with message about empty file for files that contain no logic' do
93
93
  expect{loader.load(:resource_type_pp, 'empty')}.to raise_error(ArgumentError, /it is empty/)
94
94
  end
95
+
96
+ it 'creates a pcore resource type loader' do
97
+ pcore_loader = env.loaders.runtime3_type_loader.resource_3x_loader
98
+ expect(pcore_loader.loader_name).to eq('pcore_resource_types')
99
+ expect(pcore_loader).to be_a(Puppet::Pops::Loader::ModuleLoaders::FileBased)
100
+ end
101
+
102
+ it 'does not create a pcore resource type loader if requested not to' do
103
+ env.loaders = nil # clear cached loaders
104
+ loaders = Puppet::Pops::Loaders.new(env, false, false)
105
+ expect(loaders.runtime3_type_loader.resource_3x_loader).to be_nil
106
+ end
107
+
108
+ it 'does not create a pcore resource type loader for an empty environment' do
109
+ loaders = Puppet::Pops::Loaders.new(empty_test_env)
110
+ expect(loaders.runtime3_type_loader.resource_3x_loader).to be_nil
111
+ end
112
+ end
113
+
114
+ def expect_loader_hierarchy(loaders, expected_loaders)
115
+ actual_loaders = []
116
+
117
+ loader = loaders.private_environment_loader
118
+ while loader
119
+ actual_loaders << [loader.loader_name, loader]
120
+ loader = loader.parent
121
+ end
122
+
123
+ expect(actual_loaders).to contain_exactly(*expected_loaders)
95
124
  end
96
125
 
97
126
  it 'creates a puppet_system loader' do
@@ -123,6 +152,47 @@ describe 'loaders' do
123
152
  expect(loaders.private_environment_loader().to_s).to eql("(DependencyLoader 'environment private' [])")
124
153
  end
125
154
 
155
+ it 'creates a hierarchy of loaders' do
156
+ expect_loader_hierarchy(
157
+ Puppet::Pops::Loaders.new(empty_test_env),
158
+ [
159
+ [nil, Puppet::Pops::Loader::StaticLoader],
160
+ ['puppet_system', Puppet::Pops::Loader::ModuleLoaders::LibRootedFileBased],
161
+ [empty_test_env.name, Puppet::Pops::Loader::Runtime3TypeLoader],
162
+ ['environment', Puppet::Pops::Loader::SimpleEnvironmentLoader],
163
+ ['environment private', Puppet::Pops::Loader::DependencyLoader],
164
+ ]
165
+ )
166
+ end
167
+
168
+ it 'excludes the Runtime3TypeLoader when tasks are enabled' do
169
+ Puppet[:tasks] = true
170
+
171
+ expect_loader_hierarchy(
172
+ Puppet::Pops::Loaders.new(empty_test_env),
173
+ [
174
+ [nil, Puppet::Pops::Loader::StaticLoader],
175
+ ['puppet_system', Puppet::Pops::Loader::ModuleLoaders::LibRootedFileBased],
176
+ ['environment', Puppet::Pops::Loader::ModuleLoaders::EmptyLoader],
177
+ ['environment private', Puppet::Pops::Loader::DependencyLoader],
178
+ ]
179
+ )
180
+ end
181
+
182
+ it 'includes the agent cache loader when for_agent is true' do
183
+ expect_loader_hierarchy(
184
+ Puppet::Pops::Loaders.new(empty_test_env, true),
185
+ [
186
+ [nil, Puppet::Pops::Loader::StaticLoader],
187
+ ['puppet_system', Puppet::Pops::Loader::ModuleLoaders::LibRootedFileBased],
188
+ ['cached_puppet_lib', Puppet::Pops::Loader::ModuleLoaders::LibRootedFileBased],
189
+ [empty_test_env.name, Puppet::Pops::Loader::Runtime3TypeLoader],
190
+ ['environment', Puppet::Pops::Loader::SimpleEnvironmentLoader],
191
+ ['environment private', Puppet::Pops::Loader::DependencyLoader],
192
+ ],
193
+ )
194
+ end
195
+
126
196
  context 'when loading from a module' do
127
197
  it 'loads a ruby function using a qualified or unqualified name' do
128
198
  loaders = Puppet::Pops::Loaders.new(environment_for(module_with_metadata))
@@ -461,7 +531,7 @@ describe 'loaders' do
461
531
  it "a function with syntax error has helpful error message" do
462
532
  expect {
463
533
  loader.load_typed(typed_name(:function, 'func_with_syntax_error'))
464
- }.to raise_error(/syntax error, unexpected (keyword_)?end/)
534
+ }.to raise_error(/syntax error, unexpected (keyword_|`)?end/)
465
535
  end
466
536
  end
467
537
 
@@ -505,27 +575,6 @@ describe 'loaders' do
505
575
  end
506
576
  end
507
577
 
508
- context 'when a 3x load has illegal construct and --func3x_check is false' do
509
- let(:env) { environment_for(mix_4x_and_3x_functions) }
510
- let(:compiler) { Puppet::Parser::Compiler.new(Puppet::Node.new("test", :environment => env)) }
511
- let(:scope) { compiler.topscope }
512
- let(:loader) { compiler.loaders.private_loader_for_module('user') }
513
-
514
- before(:each) do
515
- Puppet.push_context(:current_environment => scope.environment, :global_scope => scope, :loaders => compiler.loaders)
516
- Puppet[:func3x_check] = false
517
- end
518
- after(:each) do
519
- Puppet.pop_context
520
- Puppet[:func3x_check] = true
521
- end
522
-
523
- it "an illegal function is loaded" do
524
- f = loader.load_typed(typed_name(:function, 'bad_func_load3')).value
525
- expect(f.call(scope)).to eql("some return value")
526
- end
527
- end
528
-
529
578
  context 'when causing a 3x load followed by a 4x load' do
530
579
  let(:env) { environment_for(mix_4x_and_3x_functions) }
531
580
  let(:compiler) { Puppet::Parser::Compiler.new(Puppet::Node.new("test", :environment => env)) }
@@ -553,6 +602,12 @@ end
553
602
  function = loader.load_typed(typed_name(:function, 'callee_ws')).value
554
603
  expect(function.call(scope, 'passed in scope')).to eql("usee::callee_ws() got 'value'")
555
604
  end
605
+
606
+ it "an illegal function is loaded" do
607
+ expect {
608
+ loader.load_typed(typed_name(:function, 'bad_func_load3')).value
609
+ }.to raise_error(SecurityError, /Illegal method definition of method 'bad_func_load3_illegal_method' on line 8 in legacy function/)
610
+ end
556
611
  end
557
612
 
558
613
  context 'loading' do
@@ -14,6 +14,7 @@ describe 'The lookup API' do
14
14
  let(:env) { Puppet::Node::Environment.create(env_name.to_sym, [File.join(populated_env_dir, 'modules')]) }
15
15
  let(:node) { Puppet::Node.new('test', :environment => env) }
16
16
  let(:compiler) { Puppet::Parser::Compiler.new(node) }
17
+ let(:pal_compiler) { Puppet::Pal::ScriptCompiler.new(compiler) }
17
18
  let(:scope) { compiler.topscope }
18
19
  let(:invocation) { Invocation.new(scope) }
19
20
 
@@ -345,6 +346,30 @@ describe 'The lookup API' do
345
346
  end
346
347
  end
347
348
  end
349
+
350
+ context 'when using plan_hierarchy' do
351
+ let(:code_dir_content) do
352
+ {
353
+ 'hiera.yaml' => <<-YAML.unindent,
354
+ version: 5
355
+ plan_hierarchy:
356
+ - path: foo.yaml
357
+ name: Common
358
+ YAML
359
+ 'data' => {
360
+ 'foo.yaml' => <<-YAML.unindent
361
+ pop: star
362
+ YAML
363
+ }
364
+ }
365
+ end
366
+
367
+ it 'uses plan_hierarchy when using ScriptCompiler' do
368
+ Puppet.override(pal_compiler: pal_compiler) do
369
+ expect(Lookup.lookup('pop', nil, nil, true, nil, invocation)).to eq('star')
370
+ end
371
+ end
372
+ end
348
373
  end
349
374
  end
350
375
  end