puppet 5.4.0-x86-mingw32 → 5.5.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (441) hide show
  1. data/Gemfile +3 -3
  2. data/MAINTAINERS +0 -19
  3. data/README.md +5 -5
  4. data/Rakefile +26 -0
  5. data/conf/auth.conf +5 -0
  6. data/ext/project_data.yaml +1 -0
  7. data/ext/regexp_nodes/regexp_nodes.rb +3 -4
  8. data/lib/puppet/application/apply.rb +1 -1
  9. data/lib/puppet/application/cert.rb +3 -1
  10. data/lib/puppet/application/device.rb +100 -13
  11. data/lib/puppet/application/facts.rb +5 -0
  12. data/lib/puppet/application/lookup.rb +12 -2
  13. data/lib/puppet/configurer.rb +37 -17
  14. data/lib/puppet/confine.rb +4 -1
  15. data/lib/puppet/datatypes.rb +1 -1
  16. data/lib/puppet/environments.rb +1 -1
  17. data/lib/puppet/error.rb +6 -3
  18. data/lib/puppet/external/dot.rb +0 -7
  19. data/lib/puppet/external/nagios/parser.rb +1 -1
  20. data/lib/puppet/face/config.rb +92 -10
  21. data/lib/puppet/face/epp.rb +31 -6
  22. data/lib/puppet/face/facts.rb +49 -0
  23. data/lib/puppet/face/help.rb +33 -35
  24. data/lib/puppet/face/help/action.erb +1 -1
  25. data/lib/puppet/face/help/face.erb +1 -1
  26. data/lib/puppet/face/man.rb +55 -12
  27. data/lib/puppet/face/parser.rb +30 -3
  28. data/lib/puppet/file_bucket/file.rb +0 -2
  29. data/lib/puppet/file_serving/base.rb +10 -10
  30. data/lib/puppet/forge.rb +3 -3
  31. data/lib/puppet/forge/errors.rb +3 -3
  32. data/lib/puppet/functions.rb +1 -3
  33. data/lib/puppet/functions/alert.rb +1 -1
  34. data/lib/puppet/functions/all.rb +6 -6
  35. data/lib/puppet/functions/annotate.rb +10 -10
  36. data/lib/puppet/functions/any.rb +6 -6
  37. data/lib/puppet/functions/assert_type.rb +4 -4
  38. data/lib/puppet/functions/binary_file.rb +14 -2
  39. data/lib/puppet/functions/break.rb +31 -2
  40. data/lib/puppet/functions/call.rb +4 -4
  41. data/lib/puppet/functions/contain.rb +19 -3
  42. data/lib/puppet/functions/convert_to.rb +6 -5
  43. data/lib/puppet/functions/crit.rb +1 -1
  44. data/lib/puppet/functions/debug.rb +1 -1
  45. data/lib/puppet/functions/defined.rb +11 -9
  46. data/lib/puppet/functions/dig.rb +26 -2
  47. data/lib/puppet/functions/each.rb +8 -8
  48. data/lib/puppet/functions/emerg.rb +1 -1
  49. data/lib/puppet/functions/empty.rb +79 -0
  50. data/lib/puppet/functions/err.rb +1 -1
  51. data/lib/puppet/functions/eyaml_lookup_key.rb +3 -1
  52. data/lib/puppet/functions/filter.rb +7 -7
  53. data/lib/puppet/functions/find_file.rb +15 -1
  54. data/lib/puppet/functions/flatten.rb +64 -0
  55. data/lib/puppet/functions/hiera.rb +6 -6
  56. data/lib/puppet/functions/hiera_array.rb +6 -6
  57. data/lib/puppet/functions/hiera_hash.rb +6 -6
  58. data/lib/puppet/functions/hiera_include.rb +8 -8
  59. data/lib/puppet/functions/include.rb +28 -2
  60. data/lib/puppet/functions/info.rb +1 -1
  61. data/lib/puppet/functions/inline_epp.rb +2 -2
  62. data/lib/puppet/functions/join.rb +56 -0
  63. data/lib/puppet/functions/json_data.rb +2 -2
  64. data/lib/puppet/functions/keys.rb +25 -0
  65. data/lib/puppet/functions/length.rb +44 -0
  66. data/lib/puppet/functions/lest.rb +39 -1
  67. data/lib/puppet/functions/lookup.rb +2 -1
  68. data/lib/puppet/functions/map.rb +10 -9
  69. data/lib/puppet/functions/match.rb +6 -6
  70. data/lib/puppet/functions/new.rb +995 -2
  71. data/lib/puppet/functions/next.rb +1 -1
  72. data/lib/puppet/functions/notice.rb +1 -1
  73. data/lib/puppet/functions/reduce.rb +6 -6
  74. data/lib/puppet/functions/regsubst.rb +9 -3
  75. data/lib/puppet/functions/require.rb +36 -2
  76. data/lib/puppet/functions/return.rb +1 -1
  77. data/lib/puppet/functions/reverse_each.rb +71 -2
  78. data/lib/puppet/functions/slice.rb +23 -9
  79. data/lib/puppet/functions/split.rb +12 -10
  80. data/lib/puppet/functions/step.rb +73 -1
  81. data/lib/puppet/functions/strftime.rb +176 -2
  82. data/lib/puppet/functions/then.rb +65 -2
  83. data/lib/puppet/functions/tree_each.rb +19 -19
  84. data/lib/puppet/functions/type.rb +42 -1
  85. data/lib/puppet/functions/unique.rb +13 -13
  86. data/lib/puppet/functions/unwrap.rb +8 -4
  87. data/lib/puppet/functions/values.rb +25 -0
  88. data/lib/puppet/functions/versioncmp.rb +1 -1
  89. data/lib/puppet/functions/warning.rb +1 -1
  90. data/lib/puppet/functions/with.rb +6 -4
  91. data/lib/puppet/functions/yaml_data.rb +3 -1
  92. data/lib/puppet/indirector/certificate_status/file.rb +1 -1
  93. data/lib/puppet/indirector/facts/facter.rb +1 -3
  94. data/lib/puppet/indirector/facts/rest.rb +21 -0
  95. data/lib/puppet/indirector/facts/yaml.rb +0 -4
  96. data/lib/puppet/indirector/rest.rb +2 -2
  97. data/lib/puppet/module.rb +3 -3
  98. data/lib/puppet/module/task.rb +2 -3
  99. data/lib/puppet/module_tool/applications/application.rb +4 -4
  100. data/lib/puppet/module_tool/applications/builder.rb +2 -2
  101. data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
  102. data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
  103. data/lib/puppet/module_tool/metadata.rb +3 -3
  104. data/lib/puppet/network/authconfig.rb +1 -1
  105. data/lib/puppet/network/format_support.rb +1 -1
  106. data/lib/puppet/network/formats.rb +5 -7
  107. data/lib/puppet/network/http/api/indirected_routes.rb +1 -0
  108. data/lib/puppet/network/http/api/master/v3/environment.rb +2 -2
  109. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
  110. data/lib/puppet/network/http/error.rb +3 -3
  111. data/lib/puppet/network/resolver.rb +1 -2
  112. data/lib/puppet/parser/compiler.rb +12 -5
  113. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
  114. data/lib/puppet/parser/functions/fqdn_rand.rb +15 -4
  115. data/lib/puppet/parser/functions/new.rb +31 -46
  116. data/lib/puppet/parser/parser_factory.rb +1 -1
  117. data/lib/puppet/parser/resource.rb +1 -1
  118. data/lib/puppet/parser/type_loader.rb +11 -11
  119. data/lib/puppet/pops/evaluator/closure.rb +1 -1
  120. data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
  121. data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
  122. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -2
  123. data/lib/puppet/pops/evaluator/runtime3_support.rb +5 -2
  124. data/lib/puppet/pops/functions/dispatch.rb +1 -1
  125. data/lib/puppet/pops/issue_reporter.rb +18 -1
  126. data/lib/puppet/pops/issues.rb +6 -3
  127. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -2
  128. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
  129. data/lib/puppet/pops/loader/task_instantiator.rb +5 -5
  130. data/lib/puppet/pops/loader/type_definition_instantiator.rb +4 -1
  131. data/lib/puppet/pops/loaders.rb +18 -7
  132. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  133. data/lib/puppet/pops/lookup/lookup_adapter.rb +55 -6
  134. data/lib/puppet/pops/model/factory.rb +6 -3
  135. data/lib/puppet/pops/model/model_tree_dumper.rb +4 -0
  136. data/lib/puppet/pops/model/pn_transformer.rb +400 -0
  137. data/lib/puppet/pops/parser/egrammar.ra +1 -1
  138. data/lib/puppet/pops/parser/eparser.rb +1 -1
  139. data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
  140. data/lib/puppet/pops/parser/lexer_support.rb +3 -2
  141. data/lib/puppet/pops/parser/locator.rb +0 -2
  142. data/lib/puppet/pops/parser/pn_parser.rb +316 -0
  143. data/lib/puppet/pops/pcore.rb +17 -17
  144. data/lib/puppet/pops/pn.rb +236 -0
  145. data/lib/puppet/pops/serialization/json.rb +7 -7
  146. data/lib/puppet/pops/types/class_loader.rb +6 -3
  147. data/lib/puppet/pops/types/implementation_registry.rb +28 -35
  148. data/lib/puppet/pops/types/p_object_type.rb +3 -3
  149. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  150. data/lib/puppet/pops/types/p_type_set_type.rb +24 -1
  151. data/lib/puppet/pops/types/ruby_generator.rb +3 -4
  152. data/lib/puppet/pops/types/type_calculator.rb +1 -1
  153. data/lib/puppet/pops/types/type_factory.rb +0 -4
  154. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  155. data/lib/puppet/pops/types/type_parser.rb +14 -7
  156. data/lib/puppet/pops/types/types.rb +1 -1
  157. data/lib/puppet/pops/utils.rb +2 -2
  158. data/lib/puppet/pops/validation/checker4_0.rb +6 -2
  159. data/lib/puppet/provider/group/groupadd.rb +3 -1
  160. data/lib/puppet/provider/group/windows_adsi.rb +4 -7
  161. data/lib/puppet/provider/nameservice.rb +3 -3
  162. data/lib/puppet/provider/package/pacman.rb +4 -4
  163. data/lib/puppet/provider/package/pip.rb +3 -3
  164. data/lib/puppet/provider/package/pkgdmg.rb +3 -3
  165. data/lib/puppet/provider/package/pkgutil.rb +2 -2
  166. data/lib/puppet/provider/package/portage.rb +9 -9
  167. data/lib/puppet/provider/package/zypper.rb +2 -2
  168. data/lib/puppet/provider/service/base.rb +1 -1
  169. data/lib/puppet/provider/service/smf.rb +3 -2
  170. data/lib/puppet/provider/service/systemd.rb +1 -1
  171. data/lib/puppet/provider/user/useradd.rb +6 -2
  172. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  173. data/lib/puppet/provider/yumrepo/inifile.rb +20 -9
  174. data/lib/puppet/provider/zfs/zfs.rb +1 -1
  175. data/lib/puppet/reference/configuration.rb +2 -0
  176. data/lib/puppet/reference/type.rb +11 -11
  177. data/lib/puppet/resource.rb +1 -1
  178. data/lib/puppet/resource/capability_finder.rb +5 -5
  179. data/lib/puppet/resource/catalog.rb +6 -3
  180. data/lib/puppet/resource/status.rb +9 -2
  181. data/lib/puppet/resource/type.rb +1 -1
  182. data/lib/puppet/settings.rb +31 -19
  183. data/lib/puppet/settings/base_setting.rb +5 -0
  184. data/lib/puppet/settings/config_file.rb +1 -1
  185. data/lib/puppet/settings/ttl_setting.rb +5 -0
  186. data/lib/puppet/ssl/certificate_factory.rb +2 -2
  187. data/lib/puppet/ssl/certificate_request.rb +0 -2
  188. data/lib/puppet/syntax_checkers/json.rb +1 -1
  189. data/lib/puppet/transaction/additional_resource_generator.rb +2 -2
  190. data/lib/puppet/transaction/event.rb +1 -1
  191. data/lib/puppet/transaction/report.rb +18 -12
  192. data/lib/puppet/type.rb +9 -13
  193. data/lib/puppet/type/augeas.rb +2 -2
  194. data/lib/puppet/type/cron.rb +11 -6
  195. data/lib/puppet/type/exec.rb +1 -1
  196. data/lib/puppet/type/file.rb +4 -5
  197. data/lib/puppet/type/host.rb +1 -1
  198. data/lib/puppet/type/k5login.rb +30 -54
  199. data/lib/puppet/type/package.rb +3 -3
  200. data/lib/puppet/type/schedule.rb +12 -12
  201. data/lib/puppet/type/scheduled_task.rb +2 -2
  202. data/lib/puppet/type/ssh_authorized_key.rb +5 -5
  203. data/lib/puppet/type/sshkey.rb +2 -2
  204. data/lib/puppet/type/tidy.rb +1 -1
  205. data/lib/puppet/type/user.rb +1 -1
  206. data/lib/puppet/type/yumrepo.rb +26 -5
  207. data/lib/puppet/util.rb +0 -4
  208. data/lib/puppet/util/backups.rb +1 -1
  209. data/lib/puppet/util/inifile.rb +3 -4
  210. data/lib/puppet/util/json.rb +68 -0
  211. data/lib/puppet/util/json_lockfile.rb +3 -3
  212. data/lib/puppet/util/log.rb +2 -5
  213. data/lib/puppet/util/log/destinations.rb +2 -2
  214. data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
  215. data/lib/puppet/util/plist.rb +1 -1
  216. data/lib/puppet/util/reference.rb +1 -8
  217. data/lib/puppet/util/tagging.rb +1 -1
  218. data/lib/puppet/util/warnings.rb +0 -2
  219. data/lib/puppet/util/windows/adsi.rb +15 -18
  220. data/lib/puppet/util/windows/com.rb +2 -1
  221. data/lib/puppet/util/windows/file.rb +2 -2
  222. data/lib/puppet/util/windows/principal.rb +7 -6
  223. data/lib/puppet/util/windows/sid.rb +60 -7
  224. data/lib/puppet/util/windows/taskscheduler.rb +0 -9
  225. data/lib/puppet/version.rb +1 -1
  226. data/lib/puppet_pal.rb +53 -48
  227. data/locales/ja/puppet.po +1357 -912
  228. data/locales/puppet.pot +549 -466
  229. data/man/man5/puppet.conf.5 +103 -20
  230. data/man/man8/puppet-agent.8 +6 -2
  231. data/man/man8/puppet-apply.8 +2 -2
  232. data/man/man8/puppet-ca.8 +1 -1
  233. data/man/man8/puppet-catalog.8 +1 -1
  234. data/man/man8/puppet-cert.8 +1 -1
  235. data/man/man8/puppet-certificate.8 +1 -1
  236. data/man/man8/puppet-certificate_request.8 +1 -1
  237. data/man/man8/puppet-certificate_revocation_list.8 +1 -1
  238. data/man/man8/puppet-config.8 +35 -1
  239. data/man/man8/puppet-describe.8 +1 -1
  240. data/man/man8/puppet-device.8 +33 -11
  241. data/man/man8/puppet-doc.8 +1 -1
  242. data/man/man8/puppet-epp.8 +34 -12
  243. data/man/man8/puppet-facts.8 +50 -1
  244. data/man/man8/puppet-filebucket.8 +38 -11
  245. data/man/man8/puppet-generate.8 +1 -1
  246. data/man/man8/puppet-help.8 +1 -1
  247. data/man/man8/puppet-key.8 +1 -1
  248. data/man/man8/puppet-lookup.8 +1 -1
  249. data/man/man8/puppet-man.8 +10 -4
  250. data/man/man8/puppet-master.8 +1 -1
  251. data/man/man8/puppet-module.8 +15 -6
  252. data/man/man8/puppet-node.8 +1 -1
  253. data/man/man8/puppet-parser.8 +31 -8
  254. data/man/man8/puppet-plugin.8 +1 -1
  255. data/man/man8/puppet-report.8 +1 -1
  256. data/man/man8/puppet-resource.8 +1 -1
  257. data/man/man8/puppet-script.8 +67 -0
  258. data/man/man8/puppet-status.8 +1 -1
  259. data/man/man8/puppet.8 +3 -3
  260. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
  261. data/spec/integration/application/apply_spec.rb +15 -15
  262. data/spec/integration/application/lookup_spec.rb +21 -0
  263. data/spec/integration/faces/config_spec.rb +16 -4
  264. data/spec/integration/network/http/api/indirected_routes_spec.rb +5 -5
  265. data/spec/integration/parser/catalog_spec.rb +1 -1
  266. data/spec/integration/parser/collection_spec.rb +2 -2
  267. data/spec/integration/parser/compiler_spec.rb +17 -18
  268. data/spec/integration/parser/pcore_resource_spec.rb +2 -2
  269. data/spec/integration/parser/scope_spec.rb +2 -2
  270. data/spec/integration/ssl/certificate_authority_spec.rb +7 -7
  271. data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
  272. data/spec/integration/ssl/key_spec.rb +1 -1
  273. data/spec/integration/transaction/report_spec.rb +3 -3
  274. data/spec/integration/transaction_spec.rb +0 -1
  275. data/spec/integration/type/file_spec.rb +10 -11
  276. data/spec/integration/type_spec.rb +1 -2
  277. data/spec/integration/util/windows/adsi_spec.rb +86 -1
  278. data/spec/integration/util/windows/principal_spec.rb +11 -2
  279. data/spec/integration/util/windows/security_spec.rb +2 -2
  280. data/spec/lib/matchers/json.rb +4 -4
  281. data/spec/lib/puppet_spec/language.rb +34 -35
  282. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  283. data/spec/shared_behaviours/file_server_terminus.rb +0 -2
  284. data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
  285. data/spec/spec_helper.rb +1 -1
  286. data/spec/unit/application/cert_spec.rb +21 -9
  287. data/spec/unit/application/device_spec.rb +96 -2
  288. data/spec/unit/application/face_base_spec.rb +2 -2
  289. data/spec/unit/application/lookup_spec.rb +0 -1
  290. data/spec/unit/configurer_spec.rb +14 -0
  291. data/spec/unit/confine_spec.rb +16 -0
  292. data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -4
  293. data/spec/unit/datatypes_spec.rb +49 -0
  294. data/spec/unit/environments_spec.rb +7 -0
  295. data/spec/unit/face/config_spec.rb +116 -12
  296. data/spec/unit/face/epp_face_spec.rb +53 -2
  297. data/spec/unit/face/facts_spec.rb +53 -0
  298. data/spec/unit/face/help_spec.rb +62 -69
  299. data/spec/unit/face/man_spec.rb +26 -0
  300. data/spec/unit/face/module/list_spec.rb +0 -1
  301. data/spec/unit/face/parser_spec.rb +78 -0
  302. data/spec/unit/file_bucket/dipper_spec.rb +0 -4
  303. data/spec/unit/file_serving/content_spec.rb +0 -1
  304. data/spec/unit/file_serving/fileset_spec.rb +0 -1
  305. data/spec/unit/file_serving/metadata_spec.rb +0 -1
  306. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -2
  307. data/spec/unit/forge_spec.rb +1 -2
  308. data/spec/unit/functions/assert_type_spec.rb +1 -1
  309. data/spec/unit/functions/empty_spec.rb +77 -0
  310. data/spec/unit/functions/epp_spec.rb +1 -1
  311. data/spec/unit/functions/flatten_spec.rb +31 -0
  312. data/spec/unit/functions/include_spec.rb +2 -2
  313. data/spec/unit/functions/inline_epp_spec.rb +1 -1
  314. data/spec/unit/functions/join_spec.rb +33 -0
  315. data/spec/unit/functions/keys_spec.rb +31 -0
  316. data/spec/unit/functions/length_spec.rb +50 -0
  317. data/spec/unit/functions/lookup_fixture_spec.rb +1 -1
  318. data/spec/unit/functions/lookup_spec.rb +52 -0
  319. data/spec/unit/functions/shared.rb +1 -1
  320. data/spec/unit/functions/values_spec.rb +30 -0
  321. data/spec/unit/functions/versioncmp_spec.rb +1 -1
  322. data/spec/unit/functions4_spec.rb +30 -32
  323. data/spec/unit/graph/title_hash_prioritizer_spec.rb +2 -1
  324. data/spec/unit/indirector/catalog/compiler_spec.rb +0 -15
  325. data/spec/unit/indirector/facts/rest_spec.rb +45 -0
  326. data/spec/unit/indirector/facts/yaml_spec.rb +6 -0
  327. data/spec/unit/indirector/file_bucket_file/file_spec.rb +2 -2
  328. data/spec/unit/indirector/indirection_spec.rb +1 -1
  329. data/spec/unit/indirector/node/ldap_spec.rb +2 -2
  330. data/spec/unit/indirector/request_spec.rb +0 -2
  331. data/spec/unit/indirector/rest_spec.rb +2 -2
  332. data/spec/unit/indirector_spec.rb +0 -1
  333. data/spec/unit/info_service_spec.rb +1 -1
  334. data/spec/unit/interface/action_manager_spec.rb +1 -1
  335. data/spec/unit/interface/action_spec.rb +1 -1
  336. data/spec/unit/module_spec.rb +0 -5
  337. data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
  338. data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -4
  339. data/spec/unit/network/formats_spec.rb +5 -13
  340. data/spec/unit/network/http/api/indirected_routes_spec.rb +6 -2
  341. data/spec/unit/network/http/connection_spec.rb +1 -1
  342. data/spec/unit/network/http/handler_spec.rb +3 -2
  343. data/spec/unit/node/environment_spec.rb +1 -1
  344. data/spec/unit/node_spec.rb +3 -3
  345. data/spec/unit/parser/compiler_spec.rb +9 -2
  346. data/spec/unit/parser/environment_compiler_spec.rb +8 -8
  347. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  348. data/spec/unit/parser/functions/fail_spec.rb +1 -1
  349. data/spec/unit/parser/functions/fqdn_rand_spec.rb +24 -0
  350. data/spec/unit/parser/functions/realize_spec.rb +1 -1
  351. data/spec/unit/parser/resource_spec.rb +0 -1
  352. data/spec/unit/parser/scope_spec.rb +3 -3
  353. data/spec/unit/parser/type_loader_spec.rb +1 -1
  354. data/spec/unit/pops/adaptable_spec.rb +0 -1
  355. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -3
  356. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -4
  357. data/spec/unit/pops/factory_rspec_helper.rb +1 -1
  358. data/spec/unit/pops/factory_spec.rb +5 -5
  359. data/spec/unit/pops/issues_spec.rb +23 -8
  360. data/spec/unit/pops/loaders/loaders_spec.rb +24 -2
  361. data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
  362. data/spec/unit/pops/lookup/interpolation_spec.rb +5 -0
  363. data/spec/unit/pops/lookup/lookup_spec.rb +56 -0
  364. data/spec/unit/pops/model/pn_transformer_spec.rb +53 -0
  365. data/spec/unit/pops/parser/lexer2_spec.rb +14 -5
  366. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +9 -9
  367. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -1
  368. data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
  369. data/spec/unit/pops/parser/parse_heredoc_spec.rb +3 -3
  370. data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
  371. data/spec/unit/pops/parser/parse_resource_spec.rb +35 -35
  372. data/spec/unit/pops/parser/pn_parser_spec.rb +101 -0
  373. data/spec/unit/pops/pn_spec.rb +148 -0
  374. data/spec/unit/pops/types/iterable_spec.rb +1 -1
  375. data/spec/unit/pops/types/p_object_type_spec.rb +5 -5
  376. data/spec/unit/pops/types/p_timespan_type_spec.rb +11 -4
  377. data/spec/unit/pops/types/p_timestamp_type_spec.rb +9 -2
  378. data/spec/unit/pops/types/p_type_set_type_spec.rb +106 -2
  379. data/spec/unit/pops/types/ruby_generator_spec.rb +3 -8
  380. data/spec/unit/pops/types/string_converter_spec.rb +3 -3
  381. data/spec/unit/pops/types/type_calculator_spec.rb +1 -1
  382. data/spec/unit/pops/validator/validator_spec.rb +3 -1
  383. data/spec/unit/property_spec.rb +2 -2
  384. data/spec/unit/provider/aixobject_spec.rb +1 -1
  385. data/spec/unit/provider/cron/crontab_spec.rb +3 -3
  386. data/spec/unit/provider/exec/posix_spec.rb +6 -6
  387. data/spec/unit/provider/group/groupadd_spec.rb +4 -4
  388. data/spec/unit/provider/group/windows_adsi_spec.rb +79 -22
  389. data/spec/unit/provider/ldap_spec.rb +0 -1
  390. data/spec/unit/provider/nameservice_spec.rb +5 -5
  391. data/spec/unit/provider/package/rpm_spec.rb +3 -4
  392. data/spec/unit/provider/package/yum_spec.rb +6 -2
  393. data/spec/unit/provider/parsedfile_spec.rb +1 -1
  394. data/spec/unit/provider/service/base_spec.rb +2 -4
  395. data/spec/unit/provider/service/init_spec.rb +2 -2
  396. data/spec/unit/provider/service/openrc_spec.rb +2 -2
  397. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  398. data/spec/unit/provider/service/smf_spec.rb +2 -0
  399. data/spec/unit/provider/service/systemd_spec.rb +3 -3
  400. data/spec/unit/provider/service/upstart_spec.rb +7 -7
  401. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -4
  402. data/spec/unit/provider/sshkey/parsed_spec.rb +0 -2
  403. data/spec/unit/provider/user/useradd_spec.rb +15 -9
  404. data/spec/unit/provider/user/windows_adsi_spec.rb +4 -4
  405. data/spec/unit/provider/yumrepo/inifile_spec.rb +76 -0
  406. data/spec/unit/puppet_pal_2pec.rb +4 -5
  407. data/spec/unit/resource/catalog_spec.rb +8 -3
  408. data/spec/unit/resource/status_spec.rb +15 -4
  409. data/spec/unit/resource/type_spec.rb +2 -3
  410. data/spec/unit/settings_spec.rb +9 -4
  411. data/spec/unit/ssl/certificate_authority_spec.rb +1 -9
  412. data/spec/unit/ssl/certificate_request_spec.rb +1 -2
  413. data/spec/unit/transaction/report_spec.rb +41 -0
  414. data/spec/unit/transaction_spec.rb +1 -1
  415. data/spec/unit/type/exec_spec.rb +7 -9
  416. data/spec/unit/type/file/selinux_spec.rb +0 -1
  417. data/spec/unit/type/file_spec.rb +4 -3
  418. data/spec/unit/type/k5login_spec.rb +79 -10
  419. data/spec/unit/type/mount_spec.rb +1 -1
  420. data/spec/unit/type/nagios_spec.rb +6 -6
  421. data/spec/unit/type/user_spec.rb +1 -1
  422. data/spec/unit/type/yumrepo_spec.rb +18 -0
  423. data/spec/unit/type/zfs_spec.rb +1 -1
  424. data/spec/unit/type_spec.rb +14 -15
  425. data/spec/unit/util/docs_spec.rb +1 -1
  426. data/spec/unit/util/execution_spec.rb +0 -1
  427. data/spec/unit/util/inifile_spec.rb +35 -4
  428. data/spec/unit/util/log/destinations_spec.rb +2 -2
  429. data/spec/unit/util/log_spec.rb +6 -5
  430. data/spec/unit/util/network_device/cisco/device_spec.rb +2 -2
  431. data/spec/unit/util/plist_spec.rb +3 -3
  432. data/spec/unit/util/selinux_spec.rb +2 -2
  433. data/spec/unit/util/tagging_spec.rb +1 -7
  434. data/spec/unit/util/windows/adsi_spec.rb +31 -27
  435. data/spec/unit/util/windows/sid_spec.rb +86 -15
  436. data/spec/unit/util_spec.rb +2 -2
  437. data/spec/watchr.rb +0 -1
  438. data/tasks/benchmark.rake +37 -0
  439. data/tasks/manpages.rake +1 -1
  440. metadata +83 -11
  441. checksums.yaml +0 -7
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-NODE" "8" "June 2017" "Puppet Labs, LLC" "Puppet manual"
4
+ .TH "PUPPET\-NODE" "8" "March 2018" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-node\fR \- View and manage node definitions\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-PARSER" "8" "June 2017" "Puppet Labs, LLC" "Puppet manual"
4
+ .TH "PUPPET\-PARSER" "8" "March 2018" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-parser\fR \- Interact directly with the parser\.
@@ -29,12 +29,11 @@ Whether to log debug information\.
29
29
  .
30
30
  .SH "ACTIONS"
31
31
  .
32
- .TP
33
- \fBdump\fR \- Outputs a dump of the internal parse tree for debugging
34
- \fBSYNOPSIS\fR
32
+ .IP "\(bu" 4
33
+ \fBdump\fR \- Outputs a dump of the internal parse tree for debugging: \fBSYNOPSIS\fR
35
34
  .
36
35
  .IP
37
- puppet parser dump [\-\-e \fIsource\fR] [\-\-[no\-]validate] \-e \fIsource\fR| [\fImanifest\fR \.\.\.]
36
+ puppet parser dump [\-\-e \fIsource\fR] [\-\-[no\-]validate] [\-\-format \fIold, pn, or json\fR] [\-\-pretty] [\-\-format \fIold|pn|json\fR] [\-\-pretty] { \-e \fIsource\fR | [\fItemplates\fR \.\.\.] }
38
37
  .
39
38
  .IP
40
39
  \fBDESCRIPTION\fR
@@ -43,6 +42,23 @@ puppet parser dump [\-\-e \fIsource\fR] [\-\-[no\-]validate] \-e \fIsource\fR| [
43
42
  This action parses and validates the Puppet DSL syntax without compiling a catalog or syncing any resources\.
44
43
  .
45
44
  .IP
45
+ The output format can be controlled using the \-\-format \fIold|pn|json\fR where:
46
+ .
47
+ .IP "\(bu" 4
48
+ \'old\' is the default, but now deprecated format which is not API\.
49
+ .
50
+ .IP "\(bu" 4
51
+ \'pn\' is the Puppet Extended S\-Expression Notation\.
52
+ .
53
+ .IP "\(bu" 4
54
+ \'json\' outputs the same graph as \'pn\' but with JSON syntax\.
55
+ .
56
+ .IP "" 0
57
+ .
58
+ .IP
59
+ The output will be "pretty printed" when the option \-\-pretty is given together with \-\-format \'pn\' or \'json\'\. This option has no effect on the \'old\' format\.
60
+ .
61
+ .IP
46
62
  The command accepts one or more manifests (\.pp) files, or an \-e followed by the puppet source text\. If no arguments are given, the stdin is read (unless it is attached to a terminal)
47
63
  .
48
64
  .IP
@@ -52,6 +68,12 @@ The output format of the dumped tree is intended for debugging purposes and is n
52
68
  \fBOPTIONS\fR \fI\-\-e <source\fR> \- dump one source expression given on the command line\.
53
69
  .
54
70
  .IP
71
+ \fI\-\-format <old, pn, or json\fR> \- Get result in \'old\' (deprecated format), \'pn\' (new format), or \'json\' (new format in JSON)\.
72
+ .
73
+ .IP
74
+ \fI\-\-pretty\fR \- Pretty print output\. Only applicable together with \-\-format pn or json
75
+ .
76
+ .IP
55
77
  \fI\-\-[no\-]validate\fR \- Whether or not to validate the parsed result, if no\-validate only syntax errors are reported
56
78
  .
57
79
  .IP
@@ -60,9 +82,8 @@ The output format of the dumped tree is intended for debugging purposes and is n
60
82
  .IP
61
83
  A dump of the resulting AST model unless there are syntax or validation errors\.
62
84
  .
63
- .TP
64
- \fBvalidate\fR \- Validate the syntax of one or more Puppet manifests\.
65
- \fBSYNOPSIS\fR
85
+ .IP "\(bu" 4
86
+ \fBvalidate\fR \- Validate the syntax of one or more Puppet manifests\.: \fBSYNOPSIS\fR
66
87
  .
67
88
  .IP
68
89
  puppet parser validate [\fImanifest\fR] [\fImanifest\fR \.\.\.]
@@ -82,6 +103,8 @@ When validating multiple issues per file are reported up to the settings of max_
82
103
  .IP
83
104
  Nothing, or the first syntax error encountered\.
84
105
  .
106
+ .IP "" 0
107
+ .
85
108
  .SH "EXAMPLES"
86
109
  \fBvalidate\fR
87
110
  .
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-PLUGIN" "8" "June 2017" "Puppet Labs, LLC" "Puppet manual"
4
+ .TH "PUPPET\-PLUGIN" "8" "March 2018" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-plugin\fR \- Interact with the Puppet plugin system\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-REPORT" "8" "June 2017" "Puppet Labs, LLC" "Puppet manual"
4
+ .TH "PUPPET\-REPORT" "8" "March 2018" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-report\fR \- Create, display, and submit reports\.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-RESOURCE" "8" "June 2017" "Puppet Labs, LLC" "Puppet manual"
4
+ .TH "PUPPET\-RESOURCE" "8" "March 2018" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-resource\fR \- The resource abstraction layer shell
@@ -0,0 +1,67 @@
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "PUPPET\-SCRIPT" "8" "March 2018" "Puppet, Inc." "Puppet manual"
5
+ .
6
+ .SH "NAME"
7
+ \fBpuppet\-script\fR \- Run a puppet manifests as a script without compiling a catalog
8
+ .
9
+ .SH "SYNOPSIS"
10
+ Runs a puppet language script without compiling a catalog\.
11
+ .
12
+ .SH "USAGE"
13
+ puppet script [\-h|\-\-help] [\-V|\-\-version] [\-d|\-\-debug] [\-v|\-\-verbose] [\-e|\-\-execute] [\-l|\-\-logdest syslog|eventlog|\fIFILE\fR|console] [\-\-noop] \fIfile\fR
14
+ .
15
+ .SH "DESCRIPTION"
16
+ This is a standalone puppet script runner tool; use it to run puppet code without compiling a catalog\.
17
+ .
18
+ .P
19
+ When provided with a modulepath, via command line or config file, puppet script can load functions, types, tasks and plans from modules\.
20
+ .
21
+ .SH "OPTIONS"
22
+ Note that any setting that\'s valid in the configuration file is also a valid long argument\. For example, \'environment\' is a valid setting, so you can specify \'\-\-environment mytest\' as an argument\.
23
+ .
24
+ .P
25
+ See the configuration file documentation at https://docs\.puppetlabs\.com/puppet/latest/reference/configuration\.html for the full list of acceptable parameters\. A commented list of all configuration options can also be generated by running puppet with \'\-\-genconfig\'\.
26
+ .
27
+ .TP
28
+ \-\-debug
29
+ Enable full debugging\.
30
+ .
31
+ .TP
32
+ \-\-help
33
+ Print this help message
34
+ .
35
+ .TP
36
+ \-\-logdest
37
+ Where to send log messages\. Choose between \'syslog\' (the POSIX syslog service), \'eventlog\' (the Windows Event Log), \'console\', or the path to a log file\. Defaults to \'console\'\.
38
+ .
39
+ .IP
40
+ A path ending with \'\.json\' will receive structured output in JSON format\. The log file will not have an ending \']\' automatically written to it due to the appending nature of logging\. It must be appended manually to make the content valid JSON\.
41
+ .
42
+ .TP
43
+ \-\-noop
44
+ Use \'noop\' mode where Puppet runs in a no\-op or dry\-run mode\. This is useful for seeing what changes Puppet will make without actually executing the changes\. Applies to tasks only\.
45
+ .
46
+ .TP
47
+ \-\-execute
48
+ Execute a specific piece of Puppet code
49
+ .
50
+ .TP
51
+ \-\-verbose
52
+ Print extra information\.
53
+ .
54
+ .SH "EXAMPLE"
55
+ .
56
+ .nf
57
+
58
+ $ puppet script \-l /tmp/manifest\.log manifest\.pp
59
+ $ puppet script \-\-modulepath=/root/dev/modules \-e \'notice("hello world")\'
60
+ .
61
+ .fi
62
+ .
63
+ .SH "AUTHOR"
64
+ Henrik Lindberg
65
+ .
66
+ .SH "COPYRIGHT"
67
+ Copyright (c) 2017 Puppet Inc\., LLC Licensed under the Apache 2\.0 License
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET\-STATUS" "8" "June 2017" "Puppet Labs, LLC" "Puppet manual"
4
+ .TH "PUPPET\-STATUS" "8" "March 2018" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\-status\fR \- View puppet server status\.
data/man/man8/puppet.8 CHANGED
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "PUPPET" "8" "June 2017" "Puppet Labs, LLC" "Puppet manual"
4
+ .TH "PUPPET" "8" "March 2018" "Puppet, Inc." "Puppet manual"
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBpuppet\fR
@@ -13,7 +13,7 @@ Usage: puppet \fIsubcommand\fR [options] \fIaction\fR [options]
13
13
  Available subcommands:
14
14
  .
15
15
  .P
16
- agent The puppet agent daemon apply Apply Puppet manifests locally ca Local Puppet Certificate Authority management\. (Deprecated) catalog Compile, save, view, and convert catalogs\. cert Manage certificates and requests certificate Provide access to the CA for certificate management\. certificate_request Manage certificate requests\. (Deprecated) certificate_revocation_list Manage the list of revoked certificates\. (Deprecated) config Interact with Puppet\'s settings\. describe Display help about resource types device Manage remote network devices doc Generate Puppet references epp Interact directly with the EPP template parser/renderer\. facts Retrieve and store facts\. filebucket Store and retrieve files in a filebucket generate Generates Puppet code from Ruby definitions\. help Display Puppet help\. key Create, save, and remove certificate keys\. (Deprecated) lookup Interactive Hiera lookup man Display Puppet manual pages\. master The puppet master daemon module Creates, installs and searches for modules on the Puppet Forge\. node View and manage node definitions\. parser Interact directly with the parser\. plugin Interact with the Puppet plugin system\. report Create, display, and submit reports\. resource The resource abstraction layer shell status View puppet server status\. (Deprecated)
16
+ agent The puppet agent daemon apply Apply Puppet manifests locally ca Local Puppet Certificate Authority management\. (Deprecated) catalog Compile, save, view, and convert catalogs\. cert Manage certificates and requests certificate Provide access to the CA for certificate management\. certificate_request Manage certificate requests\. (Deprecated) certificate_revocation_list Manage the list of revoked certificates\. (Deprecated) config Interact with Puppet\'s settings\. describe Display help about resource types device Manage remote network devices doc Generate Puppet references epp Interact directly with the EPP template parser/renderer\. facts Retrieve and store facts\. filebucket Store and retrieve files in a filebucket generate Generates Puppet code from Ruby definitions\. help Display Puppet help\. key Create, save, and remove certificate keys\. (Deprecated) lookup Interactive Hiera lookup man Display Puppet manual pages\. (Deprecated) master The puppet master daemon module Creates, installs and searches for modules on the Puppet Forge\. node View and manage node definitions\. parser Interact directly with the parser\. plugin Interact with the Puppet plugin system\. report Create, display, and submit reports\. resource The resource abstraction layer shell script Run a puppet manifests as a script without compiling a catalog status View puppet server status\. (Deprecated)
17
17
  .
18
18
  .P
19
- See \'puppet help \fIsubcommand\fR \fIaction\fR\' for help on a specific subcommand action\. See \'puppet help \fIsubcommand\fR\' for help on a specific subcommand\. Puppet v5\.0\.0
19
+ See \'puppet help \fIsubcommand\fR \fIaction\fR\' for help on a specific subcommand action\. See \'puppet help \fIsubcommand\fR\' for help on a specific subcommand\. Puppet v5\.5\.0
@@ -11,7 +11,7 @@ module PuppetX
11
11
  factory = ::Puppet::Pops::Binder::BindingsFactory
12
12
  bindings = factory.named_bindings("echo")
13
13
  bindings.bind.name(uri.path.gsub(/\//, '::')).to("echo: #{uri.path.gsub(/\//, ' ').strip!}")
14
- result = factory.contributed_bindings("echo", bindings.model) ### , nil)
14
+ factory.contributed_bindings("echo", bindings.model) ### , nil)
15
15
  end
16
16
  end
17
17
  end
@@ -470,13 +470,13 @@ class amod::bad_type {
470
470
  catalog = compile_to_catalog(execute, node)
471
471
  apply = Puppet::Application[:apply]
472
472
  apply.options[:catalog] = file_containing('manifest', catalog.to_json)
473
- apply.expects(:apply_catalog).with do |catalog|
474
- catalog.resource(:notify, 'rx')['message'].is_a?(String)
475
- catalog.resource(:notify, 'bin')['message'].is_a?(String)
476
- catalog.resource(:notify, 'ver')['message'].is_a?(String)
477
- catalog.resource(:notify, 'vrange')['message'].is_a?(String)
478
- catalog.resource(:notify, 'tspan')['message'].is_a?(String)
479
- catalog.resource(:notify, 'tstamp')['message'].is_a?(String)
473
+ apply.expects(:apply_catalog).with do |cat|
474
+ cat.resource(:notify, 'rx')['message'].is_a?(String)
475
+ cat.resource(:notify, 'bin')['message'].is_a?(String)
476
+ cat.resource(:notify, 'ver')['message'].is_a?(String)
477
+ cat.resource(:notify, 'vrange')['message'].is_a?(String)
478
+ cat.resource(:notify, 'tspan')['message'].is_a?(String)
479
+ cat.resource(:notify, 'tstamp')['message'].is_a?(String)
480
480
  end
481
481
  apply.run
482
482
  end
@@ -493,7 +493,7 @@ class amod::bad_type {
493
493
 
494
494
  it 'will log a warning that a value of unknown type is converted into a string' do
495
495
  logs = []
496
- json = Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
496
+ Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
497
497
  compile_to_catalog('include amod::bad_type', node).to_json
498
498
  end
499
499
  logs = logs.select { |log| log.level == :warning }.map { |log| log.message }
@@ -509,13 +509,13 @@ class amod::bad_type {
509
509
  catalog = compile_to_catalog(execute, node)
510
510
  apply = Puppet::Application[:apply]
511
511
  apply.options[:catalog] = file_containing('manifest', catalog.to_json)
512
- apply.expects(:apply_catalog).with do |catalog|
513
- catalog.resource(:notify, 'rx')['message'].is_a?(Regexp)
514
- catalog.resource(:notify, 'bin')['message'].is_a?(Puppet::Pops::Types::PBinaryType::Binary)
515
- catalog.resource(:notify, 'ver')['message'].is_a?(SemanticPuppet::Version)
516
- catalog.resource(:notify, 'vrange')['message'].is_a?(SemanticPuppet::VersionRange)
517
- catalog.resource(:notify, 'tspan')['message'].is_a?(Puppet::Pops::Time::Timespan)
518
- catalog.resource(:notify, 'tstamp')['message'].is_a?(Puppet::Pops::Time::Timestamp)
512
+ apply.expects(:apply_catalog).with do |cat|
513
+ cat.resource(:notify, 'rx')['message'].is_a?(Regexp)
514
+ cat.resource(:notify, 'bin')['message'].is_a?(Puppet::Pops::Types::PBinaryType::Binary)
515
+ cat.resource(:notify, 'ver')['message'].is_a?(SemanticPuppet::Version)
516
+ cat.resource(:notify, 'vrange')['message'].is_a?(SemanticPuppet::VersionRange)
517
+ cat.resource(:notify, 'tspan')['message'].is_a?(Puppet::Pops::Time::Timespan)
518
+ cat.resource(:notify, 'tstamp')['message'].is_a?(Puppet::Pops::Time::Timestamp)
519
519
  end
520
520
  apply.run
521
521
  end
@@ -90,6 +90,27 @@ describe 'lookup' do
90
90
  expect(lookup('a')).to eql('value a')
91
91
  end
92
92
 
93
+ context 'uses node_terminus' do
94
+ require 'puppet/indirector/node/exec'
95
+ require 'puppet/indirector/node/plain'
96
+
97
+ let(:node) { Puppet::Node.new('testnode', :environment => env) }
98
+
99
+ it ':plain without --compile' do
100
+ Puppet.settings[:node_terminus] = 'exec'
101
+ Puppet::Node::Plain.any_instance.expects(:find).returns(node)
102
+ Puppet::Node::Exec.any_instance.expects(:find).never
103
+ expect(lookup('a')).to eql('value a')
104
+ end
105
+
106
+ it 'configured in Puppet settings with --compile' do
107
+ Puppet.settings[:node_terminus] = 'exec'
108
+ Puppet::Node::Plain.any_instance.expects(:find).never
109
+ Puppet::Node::Exec.any_instance.expects(:find).returns(node)
110
+ expect(lookup('a', :compile => true)).to eql('value a')
111
+ end
112
+ end
113
+
93
114
  context 'configured with the wrong environment' do
94
115
  let(:env) { Puppet::Node::Environment.create(env_name.to_sym, [File.join(populated_env_dir, env_name, 'modules')]) }
95
116
  it 'does not find data in non-existing environment' do
@@ -57,11 +57,21 @@ rando_key=foobar
57
57
  end
58
58
 
59
59
  context 'when getting / setting UTF8 values' do
60
+
61
+ let(:config) { described_class }
62
+
63
+ def render(action, result)
64
+ config.get_action(action).when_rendering(:console).call(result)
65
+ end
66
+
67
+ before :each do
68
+ subject.stubs(:report_section_and_environment)
69
+ end
70
+
60
71
  # key must be a defined setting
61
72
  ['rando_key', MIXED_UTF8].each do |key|
62
73
  it "can change '#{key}' keyed ASCII value to a UTF-8 value and read it back" do
63
- key = "rando_key"
64
- value = "value#{MIXED_UTF8.reverse}value"
74
+ value = "value#{key.reverse}value"
65
75
 
66
76
  # needed for the subject.set to write to correct file
67
77
  Puppet.settings.stubs(:which_configuration_file).returns(tmp_config)
@@ -72,8 +82,10 @@ rando_key=foobar
72
82
  # instead of the default Puppet.settings (implementation detail)
73
83
  Puppet.stubs(:settings).returns(test_settings)
74
84
 
75
- expect { subject.print() }.to have_printed("#{key} = #{value}")
76
- expect { subject.print(key, :section => 'main') }.to have_printed("#{value}")
85
+ result = subject.print()
86
+ expect(render(:print, result)).to match(/^#{key} = #{value}$/)
87
+ result = subject.print(key, :section => 'main')
88
+ expect(render(:print, result)).to eq("#{value}\n")
77
89
  end
78
90
  end
79
91
  end
@@ -7,7 +7,7 @@ require 'puppet/network/http/rack/rest'
7
7
  require 'puppet/indirector_proxy'
8
8
  require 'puppet_spec/files'
9
9
  require 'puppet_spec/network'
10
- require 'json'
10
+ require 'puppet/util/json'
11
11
 
12
12
  describe Puppet::Network::HTTP::API::IndirectedRoutes do
13
13
  include PuppetSpec::Files
@@ -33,7 +33,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
33
33
  {:accept_header => 'unknown, text/pson'},
34
34
  {:environment => 'production', :checksum_type => checksum_type})
35
35
  handler.call(request, response)
36
- resp = JSON.parse(response.body)
36
+ resp = Puppet::Util::Json.load(response.body)
37
37
 
38
38
  expect(resp['checksum']['type']).to eq(checksum_type)
39
39
  expect(checksum_valid(checksum_type, checksum, resp['checksum']['value'])).to be_truthy
@@ -44,7 +44,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
44
44
  {:accept_header => 'unknown, text/pson'},
45
45
  {:environment => 'production', :checksum_type => checksum_type, :recurse => 'yes'})
46
46
  handler.call(request, response)
47
- resp = JSON.parse(response.body)
47
+ resp = Puppet::Util::Json.load(response.body)
48
48
 
49
49
  expect(resp.length).to eq(2)
50
50
  file = resp.find {|x| x['relative_path'] == 'file.rb'}
@@ -67,7 +67,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
67
67
  handler.process(request, response)
68
68
 
69
69
  expect(response.header["Content-Type"]).to match(/json/)
70
- resp = JSON.parse(response.body.first)
70
+ resp = Puppet::Util::Json.load(response.body.first)
71
71
  expect(resp["message"]).to match(/The indirection name must be purely alphanumeric/)
72
72
  expect(resp["issue_kind"]).to be_a_kind_of(String)
73
73
  end
@@ -79,7 +79,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
79
79
  handler.process(request, response)
80
80
 
81
81
  expect(response.header["Content-Type"]).to match(/json/)
82
- resp = JSON.parse(response.body.first)
82
+ resp = Puppet::Util::Json.load(response.body.first)
83
83
  expect(resp["message"]).to match(/Could not find indirection/)
84
84
  expect(resp["issue_kind"]).to be_a_kind_of(String)
85
85
  end
@@ -90,7 +90,7 @@ describe "A catalog" do
90
90
  end
91
91
 
92
92
  def master_catalog_for(manifest)
93
- master_catalog = Puppet::Resource::Catalog::Compiler.new.filter(compile_to_catalog(manifest, node))
93
+ Puppet::Resource::Catalog::Compiler.new.filter(compile_to_catalog(manifest, node))
94
94
  end
95
95
 
96
96
  def master_and_agent_catalogs_for(manifest)
@@ -180,7 +180,7 @@ describe 'collectors' do
180
180
  it "does not collect classes" do
181
181
  node = Puppet::Node.new('the node')
182
182
  expect do
183
- catalog = compile_to_catalog(<<-MANIFEST, node)
183
+ compile_to_catalog(<<-MANIFEST, node)
184
184
  class theclass {
185
185
  @notify { "testing": message => "good message" }
186
186
  }
@@ -192,7 +192,7 @@ describe 'collectors' do
192
192
  it "does not collect resources that don't exist" do
193
193
  node = Puppet::Node.new('the node')
194
194
  expect do
195
- catalog = compile_to_catalog(<<-MANIFEST, node)
195
+ compile_to_catalog(<<-MANIFEST, node)
196
196
  class theclass {
197
197
  @notify { "testing": message => "good message" }
198
198
  }
@@ -259,7 +259,7 @@ describe Puppet::Parser::Compiler do
259
259
  it "should not create duplicate resources when a class is referenced both directly and indirectly by the node classifier (4792)" do
260
260
  node = Puppet::Node.new("testnodex")
261
261
  node.classes = ['foo', 'bar']
262
- catalog = compile_to_catalog(<<-PP, node)
262
+ compile_to_catalog(<<-PP, node)
263
263
  class foo
264
264
  {
265
265
  notify { foo_notify: }
@@ -401,7 +401,7 @@ describe Puppet::Parser::Compiler do
401
401
 
402
402
  it "should not favor local name scope" do
403
403
  expect {
404
- catalog = compile_to_catalog(<<-PP)
404
+ compile_to_catalog(<<-PP)
405
405
  class experiment {
406
406
  class baz {
407
407
  }
@@ -683,7 +683,7 @@ describe Puppet::Parser::Compiler do
683
683
 
684
684
  it 'an initial underscore in not ok if elsewhere than last segment' do
685
685
  expect do
686
- catalog = compile_to_catalog(<<-MANIFEST)
686
+ compile_to_catalog(<<-MANIFEST)
687
687
  class a { $_a = 10}
688
688
  include a
689
689
  notify { 'test': message => $_a::_a }
@@ -769,7 +769,7 @@ describe Puppet::Parser::Compiler do
769
769
 
770
770
  it 'accepts anything when parameters are untyped' do
771
771
  expect do
772
- catalog = compile_to_catalog(<<-MANIFEST)
772
+ compile_to_catalog(<<-MANIFEST)
773
773
  define foo($a, $b, $c) { }
774
774
  foo { 'test': a => String, b=>10, c=>undef }
775
775
  MANIFEST
@@ -778,7 +778,7 @@ describe Puppet::Parser::Compiler do
778
778
 
779
779
  it 'denies non type compliant arguments' do
780
780
  expect do
781
- catalog = compile_to_catalog(<<-MANIFEST)
781
+ compile_to_catalog(<<-MANIFEST)
782
782
  define foo(Integer $x) { }
783
783
  foo { 'test': x =>'say friend' }
784
784
  MANIFEST
@@ -787,7 +787,7 @@ describe Puppet::Parser::Compiler do
787
787
 
788
788
  it 'denies undef for a non-optional type' do
789
789
  expect do
790
- catalog = compile_to_catalog(<<-MANIFEST)
790
+ compile_to_catalog(<<-MANIFEST)
791
791
  define foo(Integer $x) { }
792
792
  foo { 'test': x => undef }
793
793
  MANIFEST
@@ -796,7 +796,7 @@ describe Puppet::Parser::Compiler do
796
796
 
797
797
  it 'denies non type compliant default argument' do
798
798
  expect do
799
- catalog = compile_to_catalog(<<-MANIFEST)
799
+ compile_to_catalog(<<-MANIFEST)
800
800
  define foo(Integer $x = 'pow') { }
801
801
  foo { 'test': }
802
802
  MANIFEST
@@ -805,7 +805,7 @@ describe Puppet::Parser::Compiler do
805
805
 
806
806
  it 'denies undef as the default for a non-optional type' do
807
807
  expect do
808
- catalog = compile_to_catalog(<<-MANIFEST)
808
+ compile_to_catalog(<<-MANIFEST)
809
809
  define foo(Integer $x = undef) { }
810
810
  foo { 'test': }
811
811
  MANIFEST
@@ -826,7 +826,7 @@ describe Puppet::Parser::Compiler do
826
826
 
827
827
  it 'uses infer_set when reporting type mismatch' do
828
828
  expect do
829
- catalog = compile_to_catalog(<<-MANIFEST)
829
+ compile_to_catalog(<<-MANIFEST)
830
830
  define foo(Struct[{b => Integer, d=>String}] $a) { }
831
831
  foo{ bar: a => {b => 5, c => 'stuff'}}
832
832
  MANIFEST
@@ -855,7 +855,7 @@ describe Puppet::Parser::Compiler do
855
855
 
856
856
  it 'accepts anything when parameters are untyped' do
857
857
  expect do
858
- catalog = compile_to_catalog(<<-MANIFEST)
858
+ compile_to_catalog(<<-MANIFEST)
859
859
  class foo($a, $b, $c) { }
860
860
  class { 'foo': a => String, b=>10, c=>undef }
861
861
  MANIFEST
@@ -864,7 +864,7 @@ describe Puppet::Parser::Compiler do
864
864
 
865
865
  it 'denies non type compliant arguments' do
866
866
  expect do
867
- catalog = compile_to_catalog(<<-MANIFEST)
867
+ compile_to_catalog(<<-MANIFEST)
868
868
  class foo(Integer $x) { }
869
869
  class { 'foo': x =>'say friend' }
870
870
  MANIFEST
@@ -873,7 +873,7 @@ describe Puppet::Parser::Compiler do
873
873
 
874
874
  it 'denies undef for a non-optional type' do
875
875
  expect do
876
- catalog = compile_to_catalog(<<-MANIFEST)
876
+ compile_to_catalog(<<-MANIFEST)
877
877
  class foo(Integer $x) { }
878
878
  class { 'foo': x => undef }
879
879
  MANIFEST
@@ -882,7 +882,7 @@ describe Puppet::Parser::Compiler do
882
882
 
883
883
  it 'denies non type compliant default argument' do
884
884
  expect do
885
- catalog = compile_to_catalog(<<-MANIFEST)
885
+ compile_to_catalog(<<-MANIFEST)
886
886
  class foo(Integer $x = 'pow') { }
887
887
  class { 'foo': }
888
888
  MANIFEST
@@ -891,7 +891,7 @@ describe Puppet::Parser::Compiler do
891
891
 
892
892
  it 'denies undef as the default for a non-optional type' do
893
893
  expect do
894
- catalog = compile_to_catalog(<<-MANIFEST)
894
+ compile_to_catalog(<<-MANIFEST)
895
895
  class foo(Integer $x = undef) { }
896
896
  class { 'foo': }
897
897
  MANIFEST
@@ -900,7 +900,7 @@ describe Puppet::Parser::Compiler do
900
900
 
901
901
  it 'denies a regexp (rich data) argument given to class String parameter (even if later encoding of it is a string)' do
902
902
  expect do
903
- catalog = compile_to_catalog(<<-MANIFEST)
903
+ compile_to_catalog(<<-MANIFEST)
904
904
  class foo(String $x) { }
905
905
  class { 'foo': x => /I am a regexp and I don't want to be a String/}
906
906
  MANIFEST
@@ -909,7 +909,7 @@ describe Puppet::Parser::Compiler do
909
909
 
910
910
  it 'denies a regexp (rich data) argument given to define String parameter (even if later encoding of it is a string)' do
911
911
  expect do
912
- catalog = compile_to_catalog(<<-MANIFEST)
912
+ compile_to_catalog(<<-MANIFEST)
913
913
  define foo(String $x) { }
914
914
  foo { 'foo': x => /I am a regexp and I don't want to be a String/}
915
915
  MANIFEST
@@ -1162,7 +1162,7 @@ describe Puppet::Parser::Compiler do
1162
1162
  it 'errors when an alias cannot be found when relationship is formed with -> operator' do
1163
1163
  node = Puppet::Node.new("testnodex")
1164
1164
  expect {
1165
- catalog = compile_to_catalog(<<-PP, node)
1165
+ compile_to_catalog(<<-PP, node)
1166
1166
  notify { 'actual_2': }
1167
1167
  notify { 'actual_1': alias => 'alias_1' }
1168
1168
  Notify[actual_2] -> Notify[alias_2]
@@ -1190,7 +1190,6 @@ describe Puppet::Parser::Compiler do
1190
1190
  include foo
1191
1191
  include bar
1192
1192
  MANIFEST
1193
- package = catalog.resource('Package', 'pip')
1194
1193
  expect(catalog.resource('Package', 'pip')[:require].to_s).to eql('Package[python]')
1195
1194
  end
1196
1195