puppet 5.4.0 → 5.5.0

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 +71 -11
  441. checksums.yaml +0 -7
@@ -230,7 +230,7 @@ describe 'The iterable support' do
230
230
  include Enumerable
231
231
  include Iterable
232
232
 
233
- def step(step_size)
233
+ def step(step_size)
234
234
  if block_given?
235
235
  begin
236
236
  current = 0
@@ -761,7 +761,7 @@ describe 'The Object Type' do
761
761
 
762
762
  context 'when using the initialization hash' do
763
763
  it 'produced hash that contains features using short form (type instead of detailed hash when only type is declared)' do
764
- obj = t = parse_object('MyObject', <<-OBJECT)
764
+ obj = parse_object('MyObject', <<-OBJECT)
765
765
  attributes => {
766
766
  a => { type => Integer }
767
767
  }
@@ -770,7 +770,7 @@ describe 'The Object Type' do
770
770
  end
771
771
 
772
772
  it 'produced hash that does not include default for equality_include_type' do
773
- obj = t = parse_object('MyObject', <<-OBJECT)
773
+ obj = parse_object('MyObject', <<-OBJECT)
774
774
  attributes => { a => Integer },
775
775
  equality_include_type => true
776
776
  OBJECT
@@ -778,7 +778,7 @@ describe 'The Object Type' do
778
778
  end
779
779
 
780
780
  it 'constants are presented in a separate hash if they use a generic type' do
781
- obj = t = parse_object('MyObject', <<-OBJECT)
781
+ obj = parse_object('MyObject', <<-OBJECT)
782
782
  attributes => {
783
783
  a => { type => Integer, value => 23, kind => constant },
784
784
  },
@@ -787,7 +787,7 @@ describe 'The Object Type' do
787
787
  end
788
788
 
789
789
  it 'constants are not presented in a separate hash unless they use a generic type' do
790
- obj = t = parse_object('MyObject', <<-OBJECT)
790
+ obj = parse_object('MyObject', <<-OBJECT)
791
791
  attributes => {
792
792
  a => { type => Integer[0, 30], value => 23, kind => constant },
793
793
  },
@@ -796,7 +796,7 @@ describe 'The Object Type' do
796
796
  end
797
797
 
798
798
  it 'can create an equal copy from produced hash' do
799
- obj = t = parse_object('MyObject', <<-OBJECT)
799
+ obj = parse_object('MyObject', <<-OBJECT)
800
800
  attributes => {
801
801
  a => { type => Struct[{x => Integer, y => Integer}], value => {x => 4, y => 9}, kind => constant },
802
802
  b => Integer
@@ -47,9 +47,16 @@ describe 'Timespan type' do
47
47
  expect(eval_and_collect_notices(code)).to eq(%w(true true))
48
48
  end
49
49
 
50
- it 'using just one parameter is the same as using that parameter twice' do
50
+ it 'using just one parameter is the same as using default for the second parameter' do
51
51
  code = <<-CODE
52
- notice(Timespan['01:00:00'] == Timespan['01:00:00', '01:00:00'])
52
+ notice(Timespan['01:00:00'] == Timespan['01:00:00', default])
53
+ CODE
54
+ expect(eval_and_collect_notices(code)).to eq(%w(true))
55
+ end
56
+
57
+ it 'if the second parameter is default, it is unlimited' do
58
+ code = <<-CODE
59
+ notice(Timespan('12345-23:59:59') =~ Timespan['01:00:00', default])
53
60
  CODE
54
61
  expect(eval_and_collect_notices(code)).to eq(%w(true))
55
62
  end
@@ -114,7 +121,7 @@ describe 'Timespan type' do
114
121
  expect { eval_and_collect_notices(code) }.to raise_error(Puppet::Error, /parameter 'format' variant 1 expects size to be at least 1, got 0/)
115
122
  end
116
123
 
117
- it 'can be created from a integer that represents seconds since epoch' do
124
+ it 'can be created from a integer that represents seconds' do
118
125
  code = <<-CODE
119
126
  $o = Timespan(6800)
120
127
  notice(Integer($o) == 6800)
@@ -123,7 +130,7 @@ describe 'Timespan type' do
123
130
  expect(eval_and_collect_notices(code)).to eq(%w(true true))
124
131
  end
125
132
 
126
- it 'can be created from a float that represents seconds with fraction since epoch' do
133
+ it 'can be created from a float that represents seconds with fraction' do
127
134
  code = <<-CODE
128
135
  $o = Timespan(6800.123456789)
129
136
  notice(Float($o) == 6800.123456789)
@@ -53,9 +53,16 @@ describe 'Timestamp type' do
53
53
  expect(eval_and_collect_notices(code)).to eq(%w(true true))
54
54
  end
55
55
 
56
- it 'using just one parameter is the same as using that parameter twice' do
56
+ it 'using just one parameter is the same as using default for the second parameter' do
57
57
  code = <<-CODE
58
- notice(Timestamp['2015-03-01'] == Timestamp['2015-03-01', '2015-03-01'])
58
+ notice(Timestamp['2015-03-01'] == Timestamp['2015-03-01', default])
59
+ CODE
60
+ expect(eval_and_collect_notices(code)).to eq(%w(true))
61
+ end
62
+
63
+ it 'if the second parameter is default, it is unlimited' do
64
+ code = <<-CODE
65
+ notice(Timestamp('5553-12-31') =~ Timestamp['2015-03-01', default])
59
66
  CODE
60
67
  expect(eval_and_collect_notices(code)).to eq(%w(true))
61
68
  end
@@ -314,7 +314,7 @@ module Puppet::Pops
314
314
  OBJECT
315
315
  end
316
316
 
317
- it 'can declare a type and Object type' do
317
+ it 'can declare an Object type using Object[{}]' do
318
318
  expect { parse_type_set('TheSet', <<-OBJECT) }.not_to raise_error
319
319
  version => '1.0.0',
320
320
  pcore_version => '1.0.0',
@@ -410,6 +410,110 @@ module Puppet::Pops
410
410
  }
411
411
  OBJECT
412
412
  end
413
+
414
+ context 'allows bracket-less form' do
415
+ let(:logs) { [] }
416
+ let(:notices) { logs.select { |log| log.level == :notice }.map { |log| log.message } }
417
+ let(:warnings) { logs.select { |log| log.level == :warning }.map { |log| log.message } }
418
+ let(:node) { Puppet::Node.new('example.com') }
419
+ let(:compiler) { Puppet::Parser::Compiler.new(node) }
420
+
421
+ def compile(code)
422
+ Puppet[:code] = code
423
+ Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) { compiler.compile }
424
+ end
425
+
426
+ it 'on the TypeSet declaration itself' do
427
+ compile(<<-PUPPET)
428
+ type TS = TypeSet { pcore_version => '1.0.0' }
429
+ notice(TS =~ Type[TypeSet])
430
+ PUPPET
431
+ expect(warnings).to be_empty
432
+ expect(notices).to eql(['true'])
433
+ end
434
+
435
+ it 'without prefix on declared types (implies Object)' do
436
+ compile(<<-PUPPET)
437
+ type TS = TypeSet {
438
+ pcore_version => '1.0.0',
439
+ types => {
440
+ MyObject => { attributes => { a => Integer} }
441
+ }
442
+ }
443
+ notice(TS =~ Type[TypeSet])
444
+ notice(TS::MyObject =~ Type)
445
+ notice(TS::MyObject(3))
446
+ PUPPET
447
+ expect(warnings).to be_empty
448
+ expect(notices).to eql(['true', 'true', "TS::MyObject({'a' => 3})"])
449
+ end
450
+
451
+ it "prefixed with QREF 'Object' on declared types" do
452
+ compile(<<-PUPPET)
453
+ type TS = TypeSet {
454
+ pcore_version => '1.0.0',
455
+ types => {
456
+ MyObject => Object { attributes => { a => Integer} }
457
+ }
458
+ }
459
+ notice(TS =~ Type[TypeSet])
460
+ notice(TS::MyObject =~ Type)
461
+ notice(TS::MyObject(3))
462
+ PUPPET
463
+ expect(warnings).to be_empty
464
+ expect(notices).to eql(['true', 'true', "TS::MyObject({'a' => 3})"])
465
+ end
466
+
467
+ it 'prefixed with QREF to declare parent on declared types' do
468
+ compile(<<-PUPPET)
469
+ type TS = TypeSet {
470
+ pcore_version => '1.0.0',
471
+ types => {
472
+ MyObject => { attributes => { a => String }},
473
+ MySecondObject => MyObject { attributes => { b => String }}
474
+ }
475
+ }
476
+ notice(TS =~ Type[TypeSet])
477
+ notice(TS::MySecondObject =~ Type)
478
+ notice(TS::MySecondObject < TS::MyObject)
479
+ notice(TS::MyObject('hi'))
480
+ notice(TS::MySecondObject('hello', 'world'))
481
+ PUPPET
482
+ expect(warnings).to be_empty
483
+ expect(notices).to eql(
484
+ ['true', 'true', 'true', "TS::MyObject({'a' => 'hi'})", "TS::MySecondObject({'a' => 'hello', 'b' => 'world'})"])
485
+ end
486
+
487
+ it 'and warns when parent is specified both before and inside the hash if strict == warning' do
488
+ Puppet[:strict] = 'warning'
489
+ compile(<<-PUPPET)
490
+ type TS = TypeSet {
491
+ pcore_version => '1.0.0',
492
+ types => {
493
+ MyObject => { attributes => { a => String }},
494
+ MySecondObject => MyObject { parent => MyObject, attributes => { b => String }}
495
+ }
496
+ }
497
+ notice(TS =~ Type[TypeSet])
498
+ PUPPET
499
+ expect(warnings).to eql(["The key 'parent' is declared more than once"])
500
+ expect(notices).to eql(['true'])
501
+ end
502
+
503
+ it 'and errors when parent is specified both before and inside the hash if strict == error' do
504
+ Puppet[:strict] = 'error'
505
+ expect{ compile(<<-PUPPET) }.to raise_error(/The key 'parent' is declared more than once/)
506
+ type TS = TypeSet {
507
+ pcore_version => '1.0.0',
508
+ types => {
509
+ MyObject => { attributes => { a => String }},
510
+ MySecondObject => MyObject { parent => MyObject, attributes => { b => String }}
511
+ }
512
+ }
513
+ notice(TS =~ Type[TypeSet])
514
+ PUPPET
515
+ end
516
+ end
413
517
  end
414
518
 
415
519
  it '#name_for method reports the name of deeply nested type correctly' do
@@ -418,7 +522,7 @@ module Puppet::Pops
418
522
  pcore_version => '1.0.0',
419
523
  types => { Car => Object[{}] }
420
524
  OBJECT
421
- tt = parse_type_set('Transports', <<-OBJECT)
525
+ parse_type_set('Transports', <<-OBJECT)
422
526
  version => '1.0.0',
423
527
  pcore_version => '1.0.0',
424
528
  references => {
@@ -291,8 +291,6 @@ describe 'Puppet Ruby Generator' do
291
291
  end)
292
292
  end
293
293
 
294
- after(:each) { typeset = nil }
295
-
296
294
  context 'the generated class' do
297
295
  it 'inherits the PuppetObject module' do
298
296
  expect(first < PuppetObject).to be_truthy
@@ -432,10 +430,9 @@ describe 'Puppet Ruby Generator' do
432
430
  first_type = parser.parse('MyModule::FirstGenerated')
433
431
  second_type = parser.parse('MyModule::SecondGenerated')
434
432
 
435
- loader = Loaders.find_loader(nil)
436
433
  Loaders.implementation_registry.register_type_mapping(
437
434
  PRuntimeType.new(:ruby, [/^PuppetSpec::RubyGenerator::(\w+)$/, 'MyModule::\1']),
438
- [/^MyModule::(\w+)$/, 'PuppetSpec::RubyGenerator::\1'], loader)
435
+ [/^MyModule::(\w+)$/, 'PuppetSpec::RubyGenerator::\1'])
439
436
 
440
437
  module_def = generator.module_definition([first_type, second_type], 'Generated stuff')
441
438
  end
@@ -740,19 +737,17 @@ describe 'Puppet Ruby Generator' do
740
737
  # Ideally, this would be in a before(:all) but that is impossible since lots of Puppet
741
738
  # environment specific settings are configured by the spec_helper in before(:each)
742
739
  if module_def.nil?
743
- typeset = nil
744
740
  eval_and_collect_notices(source) do
745
741
  typeset1 = parser.parse('MyModule')
746
742
  typeset2 = parser.parse('OtherModule')
747
743
 
748
- loader = Loaders.find_loader(nil)
749
744
  Loaders.implementation_registry.register_type_mapping(
750
745
  PRuntimeType.new(:ruby, [/^PuppetSpec::RubyGenerator::My::(\w+)$/, 'MyModule::\1']),
751
- [/^MyModule::(\w+)$/, 'PuppetSpec::RubyGenerator::My::\1'], loader)
746
+ [/^MyModule::(\w+)$/, 'PuppetSpec::RubyGenerator::My::\1'])
752
747
 
753
748
  Loaders.implementation_registry.register_type_mapping(
754
749
  PRuntimeType.new(:ruby, [/^PuppetSpec::RubyGenerator::Other::(\w+)$/, 'OtherModule::\1']),
755
- [/^OtherModule::(\w+)$/, 'PuppetSpec::RubyGenerator::Other::\1'], loader)
750
+ [/^OtherModule::(\w+)$/, 'PuppetSpec::RubyGenerator::Other::\1'])
756
751
 
757
752
  module_def = generator.module_definition_from_typeset(typeset1)
758
753
  module_def2 = generator.module_definition_from_typeset(typeset2)
@@ -83,19 +83,19 @@ describe 'The string converter' do
83
83
 
84
84
  it "Is an error to specify different delimiters at the same time" do
85
85
  expect do
86
- fmt = format.new("%[{d")
86
+ format.new("%[{d")
87
87
  end.to raise_error(/Only one of the delimiters/)
88
88
  end
89
89
 
90
90
  it "Is an error to have trailing characters after the format" do
91
91
  expect do
92
- fmt = format.new("%dv")
92
+ format.new("%dv")
93
93
  end.to raise_error(/The format '%dv' is not a valid format/)
94
94
  end
95
95
 
96
96
  it "Is an error to specify the same flag more than once" do
97
97
  expect do
98
- fmt = format.new("%[[d")
98
+ format.new("%[[d")
99
99
  end.to raise_error(/The same flag can only be used once/)
100
100
  end
101
101
  end
@@ -67,7 +67,7 @@ describe 'The type calculator' do
67
67
  end
68
68
 
69
69
  def empty_array_t
70
- empty_array = array_t(unit_t, range_t(0,0))
70
+ array_t(unit_t, range_t(0,0))
71
71
  end
72
72
 
73
73
  def hash_t(k,v,s = nil)
@@ -283,7 +283,9 @@ describe "validating 4x" do
283
283
  'Foo[a] -> Foo[b]',
284
284
  '($a=1)',
285
285
  'foo()',
286
- '$a.foo()'
286
+ '$a.foo()',
287
+ '"foo" =~ /foo/', # may produce or modify $n vars
288
+ '"foo" !~ /foo/', # may produce or modify $n vars
287
289
  ].each do |expr|
288
290
 
289
291
  it "does not produce error when for productive: #{expr}" do
@@ -294,7 +294,7 @@ describe Puppet::Property do
294
294
  end
295
295
 
296
296
  it "should validate that all required features are present for regexes" do
297
- value = subclass.newvalue(/./, :required_features => [:a, :b])
297
+ subclass.newvalue(/./, :required_features => [:a, :b])
298
298
 
299
299
  resource.provider.expects(:satisfies?).with([:a, :b]).returns true
300
300
 
@@ -302,7 +302,7 @@ describe Puppet::Property do
302
302
  end
303
303
 
304
304
  it "should support specifying an individual required feature" do
305
- value = subclass.newvalue(/./, :required_features => :a)
305
+ subclass.newvalue(/./, :required_features => :a)
306
306
 
307
307
  resource.provider.expects(:satisfies?).returns true
308
308
 
@@ -10,7 +10,7 @@ describe Puppet::Provider::AixObject do
10
10
  end
11
11
 
12
12
  let(:provider) do
13
- provider = Puppet::Provider::AixObject.new resource
13
+ Puppet::Provider::AixObject.new resource
14
14
  end
15
15
 
16
16
  describe "base provider methods" do
@@ -59,7 +59,7 @@ describe Puppet::Type.type(:cron).provider(:crontab) do
59
59
 
60
60
  it "should parse all sample records at once" do
61
61
  subject.parse(text).zip(records).each do |round|
62
- compare_crontab_record *round
62
+ compare_crontab_record(*round)
63
63
  end
64
64
  end
65
65
 
@@ -95,7 +95,7 @@ describe Puppet::Type.type(:cron).provider(:crontab) do
95
95
 
96
96
  it "should parse the records from the text" do
97
97
  subject.parse(text).zip(records).each do |round|
98
- compare_crontab_record *round
98
+ compare_crontab_record(*round)
99
99
  end
100
100
  end
101
101
  end
@@ -103,7 +103,7 @@ describe Puppet::Type.type(:cron).provider(:crontab) do
103
103
 
104
104
  it "should parse the whole set of records from the text" do
105
105
  subject.parse(all_text).zip(all_records).each do |round|
106
- compare_crontab_record *round
106
+ compare_crontab_record(*round)
107
107
  end
108
108
  end
109
109
 
@@ -140,14 +140,14 @@ describe Puppet::Type.type(:exec).provider(:posix), :if => Puppet.features.posix
140
140
  Puppet::Util::POSIX::LOCALE_ENV_VARS.each { |var| orig_env[var] = ENV[var] if ENV[var] }
141
141
 
142
142
  orig_env.keys.each do |var|
143
- output, status = provider.run(command % var)
143
+ output, _ = provider.run(command % var)
144
144
  expect(output.strip).to eq(orig_env[var])
145
145
  end
146
146
 
147
147
  # now, once more... but with our sentinel values
148
148
  Puppet::Util.withenv(locale_sentinel_env) do
149
149
  Puppet::Util::POSIX::LOCALE_ENV_VARS.each do |var|
150
- output, status = provider.run(command % var)
150
+ output, _ = provider.run(command % var)
151
151
  expect(output.strip).to eq(locale_sentinel_env[var])
152
152
  end
153
153
  end
@@ -155,9 +155,9 @@ describe Puppet::Type.type(:exec).provider(:posix), :if => Puppet.features.posix
155
155
 
156
156
  it "should respect locale overrides in user's 'environment' configuration" do
157
157
  provider.resource[:environment] = ['LANG=C', 'LC_ALL=C']
158
- output, status = provider.run(command % 'LANG')
158
+ output, _ = provider.run(command % 'LANG')
159
159
  expect(output.strip).to eq('C')
160
- output, status = provider.run(command % 'LC_ALL')
160
+ output, _ = provider.run(command % 'LC_ALL')
161
161
  expect(output.strip).to eq('C')
162
162
  end
163
163
  end
@@ -180,7 +180,7 @@ describe Puppet::Type.type(:exec).provider(:posix), :if => Puppet.features.posix
180
180
  expect(ENV[var]).to eq(user_sentinel_env[var])
181
181
 
182
182
  # run an "exec" via the provider and ensure that it unsets the vars
183
- output, status = provider.run(command % var)
183
+ output, _ = provider.run(command % var)
184
184
  expect(output.strip).to eq("")
185
185
 
186
186
  # ensure that after the exec, our temporary env is still intact
@@ -199,7 +199,7 @@ describe Puppet::Type.type(:exec).provider(:posix), :if => Puppet.features.posix
199
199
  # loop over the posix user-related environment variables
200
200
  Puppet::Util::POSIX::USER_ENV_VARS.each do |var|
201
201
  # run an 'exec' to get the value of each variable
202
- output, status = provider.run(command % var)
202
+ output, _ = provider.run(command % var)
203
203
  # ensure that it matches our expected sentinel value
204
204
  expect(output.strip).to eq(sentinel_value)
205
205
  end
@@ -78,13 +78,13 @@ describe Puppet::Type.type(:group).provider(:groupadd) do
78
78
  end
79
79
 
80
80
  it "should use groupmod" do
81
- provider.expects(:execute).with(['/usr/sbin/groupmod', '-g', 150, 'mygroup'], has_entry(:custom_environment, {}))
81
+ provider.expects(:execute).with(['/usr/sbin/groupmod', '-g', 150, 'mygroup'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
82
82
  provider.gid = 150
83
83
  end
84
84
 
85
85
  it "should pass -o to groupmod" do
86
86
  resource[:allowdupe] = :true
87
- provider.expects(:execute).with(['/usr/sbin/groupmod', '-g', 150, '-o', 'mygroup'], has_entry(:custom_environment, {}))
87
+ provider.expects(:execute).with(['/usr/sbin/groupmod', '-g', 150, '-o', 'mygroup'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
88
88
  provider.gid = 150
89
89
  end
90
90
  end
@@ -116,7 +116,7 @@ describe Puppet::Type.type(:group).provider(:groupadd) do
116
116
  describe "#gid=" do
117
117
  it "should add -o when allowdupe is enabled and the gid is being modified" do
118
118
  resource[:allowdupe] = :true
119
- provider.expects(:execute).with(['/usr/sbin/groupmod', '-g', 150, '-o', 'mygroup'], has_entry(:custom_environment, {}))
119
+ provider.expects(:execute).with(['/usr/sbin/groupmod', '-g', 150, '-o', 'mygroup'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
120
120
  provider.gid = 150
121
121
  end
122
122
  end
@@ -132,7 +132,7 @@ describe Puppet::Type.type(:group).provider(:groupadd) do
132
132
  end
133
133
 
134
134
  it "should use groupdel" do
135
- provider.expects(:execute).with(['/usr/sbin/groupdel', 'mygroup'], has_entry(:custom_environment, {}))
135
+ provider.expects(:execute).with(['/usr/sbin/groupdel', 'mygroup'], has_entries({:failonfail => true, :combine => true, :custom_environment => {}}))
136
136
  provider.delete
137
137
  end
138
138
  end