puppet 3.8.7 → 4.0.0.rc1

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 (1586) hide show
  1. data/CONTRIBUTING.md +26 -11
  2. data/Gemfile +13 -25
  3. data/LICENSE +1 -1
  4. data/Rakefile +9 -0
  5. data/bin/puppet +7 -6
  6. data/conf/auth.conf +30 -26
  7. data/conf/environment.conf +16 -0
  8. data/conf/fileserver.conf +2 -2
  9. data/conf/puppet.conf +6 -0
  10. data/ext/README.environment +1 -1
  11. data/ext/build_defaults.yaml +16 -7
  12. data/ext/debian/control +5 -5
  13. data/ext/debian/puppet-common.manpages +0 -5
  14. data/ext/debian/puppet-common.postinst +3 -3
  15. data/ext/debian/puppet.init +23 -12
  16. data/ext/debian/puppet.logrotate +1 -2
  17. data/ext/debian/puppetmaster-common.postinst +6 -0
  18. data/ext/debian/puppetmaster.init +5 -5
  19. data/ext/debian/rules +4 -1
  20. data/ext/debian/vim-puppet.dirs +2 -0
  21. data/ext/debian/vim-puppet.yaml +2 -0
  22. data/ext/emacs/puppet-mode.el +0 -1
  23. data/ext/gentoo/conf.d/puppet +1 -1
  24. data/ext/gentoo/conf.d/puppetmaster +1 -1
  25. data/ext/nagios/check_puppet.rb +1 -1
  26. data/ext/project_data.yaml +6 -7
  27. data/ext/puppet-nm-dispatcher +13 -0
  28. data/ext/puppet-test +0 -66
  29. data/ext/puppetlisten/puppetlisten.rb +7 -5
  30. data/ext/rack/config.ru +12 -5
  31. data/ext/redhat/client.init +3 -3
  32. data/ext/redhat/logrotate +1 -2
  33. data/ext/redhat/puppet.spec.erb +12 -8
  34. data/ext/redhat/server.init +1 -1
  35. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  36. data/ext/solaris/smf/svc-puppetd +1 -1
  37. data/ext/solaris/smf/svc-puppetmasterd +1 -1
  38. data/ext/suse/client.init +1 -1
  39. data/ext/suse/server.init +1 -1
  40. data/ext/systemd/puppet.service +1 -3
  41. data/ext/vim/syntax/puppet.vim +1 -1
  42. data/ext/windows/service/daemon.rb +19 -2
  43. data/install.rb +63 -7
  44. data/lib/hiera/puppet_function.rb +7 -18
  45. data/lib/hiera/scope.rb +4 -1
  46. data/lib/puppet.rb +19 -51
  47. data/lib/puppet/agent.rb +2 -6
  48. data/lib/puppet/application.rb +14 -65
  49. data/lib/puppet/application/agent.rb +7 -56
  50. data/lib/puppet/application/apply.rb +1 -6
  51. data/lib/puppet/application/ca.rb +5 -0
  52. data/lib/puppet/application/cert.rb +7 -3
  53. data/lib/puppet/application/certificate.rb +2 -0
  54. data/lib/puppet/application/device.rb +10 -36
  55. data/lib/puppet/application/doc.rb +16 -63
  56. data/lib/puppet/application/epp.rb +5 -0
  57. data/lib/puppet/application/face_base.rb +24 -5
  58. data/lib/puppet/application/master.rb +2 -5
  59. data/lib/puppet/application/resource.rb +17 -17
  60. data/lib/puppet/application_support.rb +57 -0
  61. data/lib/puppet/configurer.rb +3 -7
  62. data/lib/puppet/configurer/downloader.rb +1 -0
  63. data/lib/puppet/configurer/fact_handler.rb +1 -1
  64. data/lib/puppet/daemon.rb +6 -15
  65. data/lib/puppet/data_providers.rb +28 -0
  66. data/lib/puppet/data_providers/data_adapter.rb +86 -0
  67. data/lib/puppet/data_providers/data_function_support.rb +32 -0
  68. data/lib/puppet/data_providers/function_env_data_provider.rb +28 -0
  69. data/lib/puppet/data_providers/function_module_data_provider.rb +44 -0
  70. data/lib/puppet/defaults.rb +135 -530
  71. data/lib/puppet/environments.rb +10 -156
  72. data/lib/puppet/error.rb +4 -30
  73. data/lib/puppet/external/nagios/base.rb +2 -2
  74. data/lib/puppet/external/pson/common.rb +2 -17
  75. data/lib/puppet/external/pson/pure/generator.rb +1 -0
  76. data/lib/puppet/external/pson/pure/parser.rb +0 -11
  77. data/lib/puppet/face/catalog.rb +4 -4
  78. data/lib/puppet/face/certificate.rb +2 -3
  79. data/lib/puppet/face/certificate_request.rb +4 -3
  80. data/lib/puppet/face/certificate_revocation_list.rb +5 -9
  81. data/lib/puppet/face/config.rb +2 -2
  82. data/lib/puppet/face/epp.rb +479 -0
  83. data/lib/puppet/face/facts.rb +6 -49
  84. data/lib/puppet/face/file.rb +2 -2
  85. data/lib/puppet/face/file/download.rb +1 -2
  86. data/lib/puppet/face/help.rb +2 -3
  87. data/lib/puppet/face/module/build.rb +5 -5
  88. data/lib/puppet/face/module/changes.rb +1 -1
  89. data/lib/puppet/face/module/generate.rb +6 -6
  90. data/lib/puppet/face/module/install.rb +16 -16
  91. data/lib/puppet/face/module/list.rb +9 -9
  92. data/lib/puppet/face/module/uninstall.rb +5 -5
  93. data/lib/puppet/face/module/upgrade.rb +3 -3
  94. data/lib/puppet/face/node.rb +3 -4
  95. data/lib/puppet/face/node/clean.rb +5 -68
  96. data/lib/puppet/face/parser.rb +6 -8
  97. data/lib/puppet/face/report.rb +4 -4
  98. data/lib/puppet/face/resource.rb +1 -1
  99. data/lib/puppet/face/resource_type.rb +7 -4
  100. data/lib/puppet/face/status.rb +6 -12
  101. data/lib/puppet/feature/base.rb +0 -7
  102. data/lib/puppet/file_bucket/dipper.rb +1 -2
  103. data/lib/puppet/file_bucket/file.rb +12 -25
  104. data/lib/puppet/file_serving/base.rb +1 -11
  105. data/lib/puppet/file_serving/content.rb +5 -7
  106. data/lib/puppet/file_serving/metadata.rb +4 -61
  107. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -1
  108. data/lib/puppet/file_serving/mount/plugins.rb +1 -1
  109. data/lib/puppet/file_serving/terminus_helper.rb +16 -5
  110. data/lib/puppet/file_system.rb +6 -22
  111. data/lib/puppet/file_system/file_impl.rb +0 -4
  112. data/lib/puppet/file_system/memory_file.rb +0 -5
  113. data/lib/puppet/file_system/memory_impl.rb +0 -4
  114. data/lib/puppet/file_system/{file19.rb → posix.rb} +1 -1
  115. data/lib/puppet/file_system/{file19windows.rb → windows.rb} +2 -10
  116. data/lib/puppet/forge/repository.rb +12 -8
  117. data/lib/puppet/functions.rb +17 -51
  118. data/lib/puppet/functions/assert_type.rb +7 -7
  119. data/lib/puppet/functions/each.rb +1 -3
  120. data/lib/puppet/functions/epp.rb +3 -3
  121. data/lib/puppet/functions/filter.rb +3 -5
  122. data/lib/puppet/functions/hiera.rb +2 -23
  123. data/lib/puppet/functions/hiera_array.rb +3 -25
  124. data/lib/puppet/functions/hiera_hash.rb +2 -26
  125. data/lib/puppet/functions/hiera_include.rb +4 -37
  126. data/lib/puppet/functions/inline_epp.rb +1 -2
  127. data/lib/puppet/functions/lookup.rb +234 -0
  128. data/lib/puppet/functions/map.rb +1 -3
  129. data/lib/puppet/functions/match.rb +5 -5
  130. data/lib/puppet/functions/reduce.rb +1 -3
  131. data/lib/puppet/functions/regsubst.rb +79 -0
  132. data/lib/puppet/functions/scanf.rb +4 -3
  133. data/lib/puppet/functions/slice.rb +1 -3
  134. data/lib/puppet/functions/split.rb +47 -0
  135. data/lib/puppet/functions/with.rb +1 -1
  136. data/lib/puppet/graph/relationship_graph.rb +41 -13
  137. data/lib/puppet/graph/simple_graph.rb +6 -10
  138. data/lib/puppet/indirector/catalog/compiler.rb +0 -2
  139. data/lib/puppet/indirector/catalog/static_compiler.rb +4 -5
  140. data/lib/puppet/indirector/direct_file_server.rb +1 -3
  141. data/lib/puppet/indirector/face.rb +11 -2
  142. data/lib/puppet/indirector/facts/facter.rb +5 -1
  143. data/lib/puppet/indirector/facts/network_device.rb +5 -2
  144. data/lib/puppet/indirector/facts/store_configs.rb +3 -0
  145. data/lib/puppet/indirector/facts/yaml.rb +4 -0
  146. data/lib/puppet/indirector/file_metadata/file.rb +0 -15
  147. data/lib/puppet/indirector/file_server.rb +2 -16
  148. data/lib/puppet/indirector/hiera.rb +39 -1
  149. data/lib/puppet/indirector/indirection.rb +2 -9
  150. data/lib/puppet/indirector/node/ldap.rb +1 -1
  151. data/lib/puppet/indirector/request.rb +21 -81
  152. data/lib/puppet/indirector/resource/ral.rb +1 -2
  153. data/lib/puppet/indirector/resource/store_configs.rb +1 -2
  154. data/lib/puppet/indirector/resource_type/parser.rb +1 -1
  155. data/lib/puppet/indirector/rest.rb +21 -33
  156. data/lib/puppet/interface.rb +0 -7
  157. data/lib/puppet/interface/action_builder.rb +1 -1
  158. data/lib/puppet/interface/action_manager.rb +9 -13
  159. data/lib/puppet/interface/face_collection.rb +2 -2
  160. data/lib/puppet/interface/option_builder.rb +1 -3
  161. data/lib/puppet/metatype/manager.rb +1 -7
  162. data/lib/puppet/module.rb +42 -35
  163. data/lib/puppet/module_tool.rb +5 -7
  164. data/lib/puppet/module_tool/applications/application.rb +3 -10
  165. data/lib/puppet/module_tool/applications/installer.rb +13 -15
  166. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  167. data/lib/puppet/module_tool/applications/upgrader.rb +9 -11
  168. data/lib/puppet/module_tool/contents_description.rb +17 -13
  169. data/lib/puppet/module_tool/installed_modules.rb +4 -6
  170. data/lib/puppet/module_tool/metadata.rb +3 -14
  171. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +3 -3
  172. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +0 -1
  173. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +1 -1
  174. data/lib/puppet/module_tool/tar/gnu.rb +1 -1
  175. data/lib/puppet/module_tool/tar/mini.rb +2 -2
  176. data/lib/puppet/network/auth_config_parser.rb +2 -2
  177. data/lib/puppet/network/authconfig.rb +32 -16
  178. data/lib/puppet/network/format_handler.rb +7 -7
  179. data/lib/puppet/network/format_support.rb +4 -0
  180. data/lib/puppet/network/formats.rb +6 -62
  181. data/lib/puppet/network/http.rb +12 -2
  182. data/lib/puppet/network/http/api.rb +42 -0
  183. data/lib/puppet/network/http/api/ca.rb +2 -0
  184. data/lib/puppet/network/http/api/ca/v1.rb +11 -0
  185. data/lib/puppet/network/http/api/{v1.rb → indirected_routes.rb} +57 -29
  186. data/lib/puppet/network/http/api/indirection_type.rb +32 -0
  187. data/lib/puppet/network/http/api/master.rb +2 -0
  188. data/lib/puppet/network/http/api/master/v3.rb +22 -0
  189. data/lib/puppet/network/http/api/master/v3/authorization.rb +18 -0
  190. data/lib/puppet/network/http/api/{v2 → master/v3}/environments.rb +2 -2
  191. data/lib/puppet/network/http/compression.rb +3 -5
  192. data/lib/puppet/network/http/connection.rb +1 -8
  193. data/lib/puppet/network/http/factory.rb +2 -3
  194. data/lib/puppet/network/http/handler.rb +3 -11
  195. data/lib/puppet/network/http/rack/rest.rb +4 -4
  196. data/lib/puppet/network/http/request.rb +4 -4
  197. data/lib/puppet/network/http/webrick.rb +1 -6
  198. data/lib/puppet/network/http/webrick/rest.rb +15 -8
  199. data/lib/puppet/network/resolver.rb +2 -2
  200. data/lib/puppet/network/rights.rb +2 -2
  201. data/lib/puppet/node.rb +2 -29
  202. data/lib/puppet/node/environment.rb +92 -184
  203. data/lib/puppet/node/facts.rb +22 -44
  204. data/lib/puppet/parameter.rb +3 -16
  205. data/lib/puppet/parameter/value.rb +1 -3
  206. data/lib/puppet/parameter/value_collection.rb +12 -11
  207. data/lib/puppet/parser.rb +12 -2
  208. data/lib/puppet/parser/ast.rb +9 -78
  209. data/lib/puppet/parser/ast/block_expression.rb +11 -36
  210. data/lib/puppet/parser/ast/branch.rb +15 -18
  211. data/lib/puppet/parser/ast/hostclass.rb +1 -3
  212. data/lib/puppet/parser/ast/leaf.rb +55 -212
  213. data/lib/puppet/parser/ast/node.rb +3 -11
  214. data/lib/puppet/parser/ast/pops_bridge.rb +2 -7
  215. data/lib/puppet/parser/ast/resource.rb +14 -20
  216. data/lib/puppet/parser/ast/resource_instance.rb +4 -7
  217. data/lib/puppet/parser/ast/resourceparam.rb +21 -22
  218. data/lib/puppet/parser/compiler.rb +41 -70
  219. data/lib/puppet/parser/e4_parser_adapter.rb +2 -23
  220. data/lib/puppet/parser/files.rb +22 -67
  221. data/lib/puppet/parser/functions.rb +1 -3
  222. data/lib/puppet/parser/functions/assert_type.rb +1 -2
  223. data/lib/puppet/parser/functions/contain.rb +5 -3
  224. data/lib/puppet/parser/functions/create_resources.rb +9 -1
  225. data/lib/puppet/parser/functions/defined.rb +33 -61
  226. data/lib/puppet/parser/functions/each.rb +1 -3
  227. data/lib/puppet/parser/functions/epp.rb +1 -2
  228. data/lib/puppet/parser/functions/file.rb +1 -3
  229. data/lib/puppet/parser/functions/filter.rb +1 -3
  230. data/lib/puppet/parser/functions/hiera.rb +4 -6
  231. data/lib/puppet/parser/functions/hiera_array.rb +4 -6
  232. data/lib/puppet/parser/functions/hiera_hash.rb +6 -8
  233. data/lib/puppet/parser/functions/hiera_include.rb +2 -10
  234. data/lib/puppet/parser/functions/include.rb +4 -2
  235. data/lib/puppet/parser/functions/lookup.rb +115 -105
  236. data/lib/puppet/parser/functions/map.rb +1 -3
  237. data/lib/puppet/parser/functions/match.rb +1 -2
  238. data/lib/puppet/parser/functions/realize.rb +1 -6
  239. data/lib/puppet/parser/functions/reduce.rb +1 -3
  240. data/lib/puppet/parser/functions/regsubst.rb +1 -57
  241. data/lib/puppet/parser/functions/require.rb +6 -4
  242. data/lib/puppet/parser/functions/scanf.rb +1 -1
  243. data/lib/puppet/parser/functions/slice.rb +1 -3
  244. data/lib/puppet/parser/functions/split.rb +1 -1
  245. data/lib/puppet/parser/functions/with.rb +1 -2
  246. data/lib/puppet/parser/parser_factory.rb +5 -21
  247. data/lib/puppet/parser/relationship.rb +14 -37
  248. data/lib/puppet/parser/resource.rb +11 -22
  249. data/lib/puppet/parser/scope.rb +45 -135
  250. data/lib/puppet/parser/templatewrapper.rb +1 -29
  251. data/lib/puppet/parser/type_loader.rb +12 -15
  252. data/lib/puppet/plugins.rb +9 -0
  253. data/lib/{puppetx/puppet/bindings_scheme_handler.rb → puppet/plugins/binding_schemes.rb} +14 -4
  254. data/lib/puppet/plugins/configuration.rb +68 -0
  255. data/lib/puppet/plugins/data_providers.rb +90 -0
  256. data/lib/{puppetx/puppet/syntax_checker.rb → puppet/plugins/syntax_checkers.rb} +14 -2
  257. data/lib/puppet/pops.rb +6 -7
  258. data/lib/puppet/pops/adaptable.rb +16 -5
  259. data/lib/puppet/pops/binder/binder.rb +5 -4
  260. data/lib/puppet/pops/binder/bindings_composer.rb +6 -4
  261. data/lib/puppet/pops/binder/bindings_factory.rb +4 -0
  262. data/lib/puppet/pops/binder/bindings_label_provider.rb +1 -1
  263. data/lib/puppet/pops/binder/bindings_loader.rb +3 -8
  264. data/lib/puppet/pops/binder/bindings_model_dumper.rb +36 -8
  265. data/lib/puppet/pops/binder/config/binder_config.rb +2 -2
  266. data/lib/puppet/pops/binder/config/binder_config_checker.rb +1 -1
  267. data/lib/puppet/pops/binder/config/issues.rb +4 -0
  268. data/lib/puppet/pops/binder/injector.rb +0 -1
  269. data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +1 -1
  270. data/lib/puppet/pops/evaluator/access_operator.rb +18 -50
  271. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +5 -5
  272. data/lib/puppet/pops/evaluator/callable_signature.rb +2 -2
  273. data/lib/puppet/pops/evaluator/closure.rb +16 -21
  274. data/lib/puppet/pops/evaluator/collector_transformer.rb +11 -1
  275. data/lib/puppet/pops/evaluator/compare_operator.rb +0 -43
  276. data/lib/puppet/pops/evaluator/epp_evaluator.rb +1 -1
  277. data/lib/puppet/pops/evaluator/evaluator_impl.rb +36 -152
  278. data/lib/puppet/pops/evaluator/external_syntax_support.rb +6 -3
  279. data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -1
  280. data/lib/puppet/pops/evaluator/runtime3_converter.rb +1 -1
  281. data/lib/puppet/pops/evaluator/runtime3_support.rb +9 -57
  282. data/lib/puppet/pops/functions/dispatch.rb +1 -6
  283. data/lib/puppet/pops/issue_reporter.rb +16 -42
  284. data/lib/puppet/pops/issues.rb +13 -128
  285. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  286. data/lib/puppet/pops/loader/loader.rb +21 -20
  287. data/lib/puppet/pops/loaders.rb +13 -8
  288. data/lib/puppet/pops/lookup.rb +96 -0
  289. data/lib/puppet/pops/merge_strategy.rb +283 -0
  290. data/lib/puppet/pops/model/ast_transformer.rb +4 -522
  291. data/lib/puppet/pops/model/factory.rb +20 -21
  292. data/lib/puppet/pops/model/model.rb +1 -1
  293. data/lib/puppet/pops/model/model_label_provider.rb +1 -1
  294. data/lib/puppet/pops/model/model_meta.rb +10 -7
  295. data/lib/puppet/pops/model/tree_dumper.rb +1 -1
  296. data/lib/puppet/pops/parser/egrammar.ra +1 -13
  297. data/lib/puppet/pops/parser/eparser.rb +1132 -1272
  298. data/lib/puppet/pops/parser/epp_support.rb +11 -22
  299. data/lib/puppet/pops/parser/evaluating_parser.rb +11 -10
  300. data/lib/puppet/pops/parser/heredoc_support.rb +12 -13
  301. data/lib/puppet/pops/parser/interpolation_support.rb +1 -7
  302. data/lib/puppet/pops/parser/lexer2.rb +33 -36
  303. data/lib/puppet/pops/parser/lexer_support.rb +20 -46
  304. data/lib/puppet/pops/parser/locator.rb +6 -30
  305. data/lib/puppet/pops/parser/parser_support.rb +14 -11
  306. data/lib/puppet/pops/parser/slurp_support.rb +6 -22
  307. data/lib/puppet/pops/patterns.rb +0 -3
  308. data/lib/puppet/pops/types/class_loader.rb +8 -8
  309. data/lib/puppet/pops/types/enumeration.rb +1 -1
  310. data/lib/puppet/pops/types/type_asserter.rb +45 -0
  311. data/lib/puppet/pops/types/type_assertion_error.rb +26 -0
  312. data/lib/puppet/pops/types/type_calculator.rb +110 -212
  313. data/lib/puppet/pops/types/type_factory.rb +15 -74
  314. data/lib/puppet/pops/types/type_parser.rb +15 -24
  315. data/lib/puppet/pops/types/types.rb +25 -35
  316. data/lib/puppet/pops/types/types_meta.rb +2 -13
  317. data/lib/puppet/pops/utils.rb +1 -1
  318. data/lib/puppet/pops/validation.rb +3 -26
  319. data/lib/puppet/pops/validation/checker4_0.rb +6 -56
  320. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -3
  321. data/lib/puppet/pops/visitor.rb +10 -7
  322. data/lib/puppet/property.rb +44 -124
  323. data/lib/puppet/provider.rb +0 -52
  324. data/lib/puppet/provider/aixobject.rb +2 -2
  325. data/lib/puppet/provider/augeas/augeas.rb +9 -6
  326. data/lib/puppet/provider/command.rb +1 -1
  327. data/lib/puppet/provider/cron/crontab.rb +37 -0
  328. data/lib/puppet/provider/exec.rb +2 -16
  329. data/lib/puppet/provider/file/posix.rb +1 -1
  330. data/lib/puppet/provider/file/windows.rb +1 -1
  331. data/lib/puppet/provider/group/aix.rb +1 -1
  332. data/lib/puppet/provider/group/pw.rb +0 -1
  333. data/lib/puppet/provider/group/windows_adsi.rb +4 -18
  334. data/lib/puppet/provider/host/parsed.rb +4 -2
  335. data/lib/puppet/provider/macauthorization/macauthorization.rb +0 -12
  336. data/lib/puppet/provider/mailalias/aliases.rb +23 -12
  337. data/lib/puppet/provider/mount/parsed.rb +2 -145
  338. data/lib/puppet/provider/nameservice/directoryservice.rb +57 -131
  339. data/lib/puppet/provider/network_device.rb +3 -0
  340. data/lib/puppet/provider/package/appdmg.rb +5 -2
  341. data/lib/puppet/provider/package/apt.rb +1 -1
  342. data/lib/puppet/provider/package/fink.rb +1 -1
  343. data/lib/puppet/provider/package/openbsd.rb +26 -12
  344. data/lib/puppet/provider/package/opkg.rb +6 -1
  345. data/lib/puppet/provider/package/pacman.rb +159 -127
  346. data/lib/puppet/provider/package/pip.rb +1 -11
  347. data/lib/puppet/provider/package/pkg.rb +73 -29
  348. data/lib/puppet/provider/package/pkgdmg.rb +2 -2
  349. data/lib/puppet/provider/package/pkgin.rb +1 -1
  350. data/lib/puppet/provider/package/portage.rb +5 -1
  351. data/lib/puppet/provider/package/portupgrade.rb +0 -2
  352. data/lib/puppet/provider/package/rpm.rb +109 -0
  353. data/lib/puppet/provider/package/rug.rb +0 -1
  354. data/lib/puppet/provider/package/windows/package.rb +1 -1
  355. data/lib/puppet/provider/package/yum.rb +121 -30
  356. data/lib/puppet/provider/package/zypper.rb +8 -17
  357. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +7 -32
  358. data/lib/puppet/provider/service/base.rb +17 -3
  359. data/lib/puppet/provider/service/bsd.rb +1 -1
  360. data/lib/puppet/provider/service/daemontools.rb +1 -1
  361. data/lib/puppet/provider/service/init.rb +0 -7
  362. data/lib/puppet/provider/service/launchd.rb +11 -89
  363. data/lib/puppet/provider/service/openbsd.rb +56 -298
  364. data/lib/puppet/provider/service/runit.rb +1 -1
  365. data/lib/puppet/provider/service/systemd.rb +1 -0
  366. data/lib/puppet/provider/service/upstart.rb +4 -2
  367. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  368. data/lib/puppet/provider/user/aix.rb +1 -1
  369. data/lib/puppet/provider/user/directoryservice.rb +40 -70
  370. data/lib/puppet/provider/user/hpux.rb +31 -2
  371. data/lib/puppet/provider/user/openbsd.rb +74 -0
  372. data/lib/puppet/provider/user/pw.rb +0 -1
  373. data/lib/puppet/provider/user/user_role_add.rb +1 -3
  374. data/lib/puppet/provider/user/windows_adsi.rb +2 -9
  375. data/lib/puppet/provider/yumrepo/inifile.rb +1 -3
  376. data/lib/puppet/provider/zfs/zfs.rb +3 -2
  377. data/lib/puppet/provider/zone/solaris.rb +3 -3
  378. data/lib/puppet/reference/configuration.rb +4 -3
  379. data/lib/puppet/reference/metaparameter.rb +0 -9
  380. data/lib/puppet/reference/providers.rb +1 -1
  381. data/lib/puppet/reference/type.rb +8 -10
  382. data/lib/puppet/relationship.rb +4 -17
  383. data/lib/puppet/resource.rb +132 -114
  384. data/lib/puppet/resource/catalog.rb +23 -30
  385. data/lib/puppet/resource/status.rb +74 -22
  386. data/lib/puppet/resource/type.rb +12 -52
  387. data/lib/puppet/resource/type_collection.rb +26 -73
  388. data/lib/puppet/settings.rb +94 -153
  389. data/lib/puppet/settings/base_setting.rb +6 -30
  390. data/lib/puppet/settings/config_file.rb +14 -11
  391. data/lib/puppet/settings/duration_setting.rb +1 -1
  392. data/lib/puppet/settings/environment_conf.rb +14 -12
  393. data/lib/puppet/settings/file_setting.rb +9 -10
  394. data/lib/puppet/settings/ttl_setting.rb +1 -3
  395. data/lib/puppet/ssl/certificate.rb +38 -8
  396. data/lib/puppet/ssl/certificate_authority/interface.rb +7 -1
  397. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  398. data/lib/puppet/ssl/certificate_request.rb +36 -8
  399. data/lib/puppet/ssl/configuration.rb +2 -8
  400. data/lib/puppet/ssl/host.rb +1 -8
  401. data/lib/puppet/ssl/inventory.rb +0 -7
  402. data/lib/puppet/ssl/oids.rb +72 -3
  403. data/lib/puppet/ssl/validator/default_validator.rb +0 -1
  404. data/lib/puppet/status.rb +0 -5
  405. data/lib/puppet/syntax_checkers.rb +3 -0
  406. data/lib/{puppetx/puppetlabs → puppet}/syntax_checkers/json.rb +2 -2
  407. data/lib/puppet/test/test_helper.rb +11 -12
  408. data/lib/puppet/transaction.rb +12 -9
  409. data/lib/puppet/transaction/event.rb +4 -5
  410. data/lib/puppet/transaction/event_manager.rb +50 -5
  411. data/lib/puppet/transaction/report.rb +5 -10
  412. data/lib/puppet/transaction/resource_harness.rb +7 -2
  413. data/lib/puppet/type.rb +113 -29
  414. data/lib/puppet/type/augeas.rb +1 -0
  415. data/lib/puppet/type/exec.rb +2 -2
  416. data/lib/puppet/type/file.rb +8 -9
  417. data/lib/puppet/type/file/content.rb +19 -15
  418. data/lib/puppet/type/file/mode.rb +16 -11
  419. data/lib/puppet/type/file/selcontext.rb +1 -1
  420. data/lib/puppet/type/file/source.rb +15 -15
  421. data/lib/puppet/type/filebucket.rb +2 -2
  422. data/lib/puppet/type/group.rb +5 -17
  423. data/lib/puppet/type/host.rb +12 -3
  424. data/lib/puppet/type/k5login.rb +1 -1
  425. data/lib/puppet/type/mailalias.rb +20 -6
  426. data/lib/puppet/type/maillist.rb +1 -1
  427. data/lib/puppet/type/mount.rb +6 -16
  428. data/lib/puppet/type/notify.rb +1 -1
  429. data/lib/puppet/type/package.rb +91 -16
  430. data/lib/puppet/type/resources.rb +0 -7
  431. data/lib/puppet/type/router.rb +1 -1
  432. data/lib/puppet/type/schedule.rb +1 -1
  433. data/lib/puppet/type/scheduled_task.rb +0 -13
  434. data/lib/puppet/type/selboolean.rb +2 -2
  435. data/lib/puppet/type/service.rb +1 -1
  436. data/lib/puppet/type/ssh_authorized_key.rb +1 -1
  437. data/lib/puppet/type/sshkey.rb +1 -1
  438. data/lib/puppet/type/tidy.rb +4 -1
  439. data/lib/puppet/type/user.rb +16 -3
  440. data/lib/puppet/type/yumrepo.rb +26 -0
  441. data/lib/puppet/type/zfs.rb +1 -1
  442. data/lib/puppet/type/zpool.rb +1 -1
  443. data/lib/puppet/util.rb +2 -85
  444. data/lib/puppet/util/autoload.rb +3 -13
  445. data/lib/puppet/util/checksums.rb +59 -22
  446. data/lib/puppet/util/classgen.rb +1 -9
  447. data/lib/puppet/util/colors.rb +0 -117
  448. data/lib/puppet/util/command_line.rb +1 -23
  449. data/lib/puppet/util/errors.rb +2 -4
  450. data/lib/puppet/util/execution.rb +19 -22
  451. data/lib/puppet/util/feature.rb +2 -4
  452. data/lib/puppet/util/fileparsing.rb +3 -2
  453. data/lib/puppet/util/log.rb +13 -56
  454. data/lib/puppet/util/log/destinations.rb +17 -36
  455. data/lib/puppet/util/logging.rb +52 -37
  456. data/lib/puppet/util/metric.rb +0 -149
  457. data/lib/puppet/util/monkey_patches.rb +1 -94
  458. data/lib/puppet/util/network_device/base.rb +1 -5
  459. data/lib/puppet/util/network_device/cisco/interface.rb +2 -2
  460. data/lib/puppet/util/network_device/config.rb +0 -5
  461. data/lib/puppet/util/network_device/transport/ssh.rb +2 -2
  462. data/lib/puppet/util/profiler.rb +1 -1
  463. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  464. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  465. data/lib/puppet/util/psych_support.rb +38 -0
  466. data/lib/puppet/util/rdoc.rb +6 -42
  467. data/lib/puppet/util/rdoc/code_objects.rb +5 -45
  468. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
  469. data/lib/puppet/util/rdoc/parser.rb +5 -15
  470. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +8 -227
  471. data/lib/puppet/util/retry_action.rb +46 -0
  472. data/lib/puppet/util/run_mode.rb +31 -7
  473. data/lib/puppet/util/selinux.rb +2 -2
  474. data/lib/puppet/util/ssl.rb +11 -11
  475. data/lib/puppet/util/suidmanager.rb +4 -31
  476. data/lib/puppet/util/tag_set.rb +0 -11
  477. data/lib/puppet/util/tagging.rb +50 -19
  478. data/lib/puppet/util/warnings.rb +1 -0
  479. data/lib/puppet/util/windows/adsi.rb +13 -60
  480. data/lib/puppet/util/windows/api_types.rb +16 -2
  481. data/lib/puppet/util/windows/file.rb +2 -8
  482. data/lib/puppet/util/windows/process.rb +58 -0
  483. data/lib/puppet/util/windows/registry.rb +319 -31
  484. data/lib/puppet/util/windows/security.rb +1 -68
  485. data/lib/puppet/util/windows/taskscheduler.rb +0 -21
  486. data/lib/puppet/util/windows/user.rb +2 -3
  487. data/lib/puppet/vendor/deep_merge/CHANGELOG +45 -0
  488. data/lib/puppet/vendor/deep_merge/Gemfile +3 -0
  489. data/lib/puppet/vendor/deep_merge/LICENSE +21 -0
  490. data/lib/puppet/vendor/deep_merge/README.md +113 -0
  491. data/lib/puppet/vendor/deep_merge/Rakefile +19 -0
  492. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +35 -0
  493. data/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +2 -0
  494. data/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +210 -0
  495. data/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +28 -0
  496. data/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +27 -0
  497. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +608 -0
  498. data/lib/puppet/vendor/load_deep_merge.rb +1 -0
  499. data/lib/puppet/vendor/load_rgen.rb +1 -0
  500. data/lib/puppet/vendor/require_vendored.rb +1 -3
  501. data/lib/puppet/vendor/rgen_patch.rb +132 -0
  502. data/lib/puppet/version.rb +1 -1
  503. data/lib/puppet_x.rb +8 -0
  504. data/lib/semver.rb +0 -1
  505. data/man/man5/puppet.conf.5 +432 -287
  506. data/man/man8/extlookup2hiera.8 +2 -15
  507. data/man/man8/puppet-agent.8 +14 -14
  508. data/man/man8/puppet-apply.8 +29 -30
  509. data/man/man8/puppet-ca.8 +29 -17
  510. data/man/man8/puppet-catalog.8 +5 -34
  511. data/man/man8/puppet-cert.8 +8 -4
  512. data/man/man8/puppet-certificate.8 +15 -29
  513. data/man/man8/puppet-certificate_request.8 +9 -16
  514. data/man/man8/puppet-certificate_revocation_list.8 +5 -31
  515. data/man/man8/puppet-config.8 +52 -11
  516. data/man/man8/puppet-describe.8 +1 -1
  517. data/man/man8/puppet-device.8 +5 -16
  518. data/man/man8/puppet-doc.8 +7 -80
  519. data/man/man8/puppet-epp.8 +349 -0
  520. data/man/man8/puppet-facts.8 +5 -95
  521. data/man/man8/puppet-file.8 +2 -28
  522. data/man/man8/puppet-filebucket.8 +2 -2
  523. data/man/man8/puppet-help.8 +2 -2
  524. data/man/man8/puppet-inspect.8 +1 -1
  525. data/man/man8/puppet-key.8 +6 -3
  526. data/man/man8/puppet-man.8 +2 -2
  527. data/man/man8/puppet-master.8 +11 -7
  528. data/man/man8/puppet-module.8 +75 -49
  529. data/man/man8/puppet-node.8 +8 -56
  530. data/man/man8/puppet-parser.8 +38 -4
  531. data/man/man8/puppet-plugin.8 +2 -2
  532. data/man/man8/puppet-report.8 +8 -70
  533. data/man/man8/puppet-resource.8 +7 -3
  534. data/man/man8/puppet-resource_type.8 +2 -28
  535. data/man/man8/puppet-status.8 +5 -47
  536. data/man/man8/puppet.8 +2 -2
  537. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +3 -0
  538. data/spec/fixtures/integration/provider/sshkey/sample +21 -0
  539. data/spec/fixtures/unit/data_providers/environments/production/environment.conf +2 -0
  540. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +7 -0
  541. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +9 -0
  542. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +8 -0
  543. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +9 -0
  544. data/spec/fixtures/unit/data_providers/environments/sample/environment.conf +2 -0
  545. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +6 -0
  546. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet/bindings/dataprovider/default.rb +54 -0
  547. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +31 -0
  548. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +32 -0
  549. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +5 -0
  550. data/spec/fixtures/unit/functions/lookup/environments/production/environment.conf +2 -0
  551. data/spec/fixtures/unit/functions/lookup/environments/production/lib/puppet/functions/environment/data.rb +11 -0
  552. data/spec/fixtures/unit/functions/lookup/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +9 -0
  553. data/spec/fixtures/unit/functions/lookup/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +9 -0
  554. data/spec/fixtures/unit/functions/lookup/environments/production/modules/abc/manifests/init.pp +8 -0
  555. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
  556. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +1 -1
  557. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/{puppetx → puppet_x}/awesome2/echo_scheme_handler.rb +3 -3
  558. data/spec/fixtures/unit/pops/binder/config/binder_config/nolayer/binder_config.yaml +6 -0
  559. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
  560. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +85 -93
  561. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +7 -11
  562. data/spec/fixtures/unit/provider/package/pkg/dummy_implicit_version +3 -0
  563. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +1 -1
  564. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.certificate_warning +1 -1
  565. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.installed +1 -1
  566. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +1 -1
  567. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +1 -1
  568. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +1 -1
  569. data/spec/fixtures/unit/provider/package/pkg/incomplete +1 -1
  570. data/spec/fixtures/unit/provider/package/pkg/solaris11 +2 -2
  571. data/spec/fixtures/unit/provider/package/pkg/unknown_status +12 -12
  572. data/spec/fixtures/unit/provider/package/yum/yum-check-update-multiline.txt +201 -0
  573. data/spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt +12 -0
  574. data/spec/fixtures/unit/provider/parsedfile/simple.txt +3 -0
  575. data/spec/fixtures/unit/provider/service/openbsd/rcctl_getall +6 -0
  576. data/spec/fixtures/unit/ssl/certificate/old-style-cert-exts.pem +33 -0
  577. data/spec/fixtures/unit/ssl/certificate_request/old-style-cert-request.pem +28 -0
  578. data/spec/integration/agent/logging_spec.rb +1 -5
  579. data/spec/integration/application/apply_spec.rb +1 -1
  580. data/spec/integration/application/doc_spec.rb +1 -43
  581. data/spec/integration/configurer_spec.rb +5 -5
  582. data/spec/integration/data_binding.rb +4 -0
  583. data/spec/integration/defaults_spec.rb +42 -143
  584. data/spec/integration/directory_environments_spec.rb +3 -3
  585. data/spec/integration/environments/default_manifest_spec.rb +3 -51
  586. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  587. data/spec/integration/environments/settings_interpolation_spec.rb +50 -105
  588. data/spec/integration/environments/settings_spec.rb +100 -0
  589. data/spec/integration/faces/ca_spec.rb +51 -51
  590. data/spec/integration/faces/documentation_spec.rb +6 -6
  591. data/spec/integration/file_bucket/file_spec.rb +5 -16
  592. data/spec/integration/file_serving/fileset_spec.rb +1 -1
  593. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -1
  594. data/spec/integration/indirector/catalog/compiler_spec.rb +6 -6
  595. data/spec/integration/indirector/direct_file_server_spec.rb +40 -12
  596. data/spec/integration/indirector/facts/facter_spec.rb +1 -1
  597. data/spec/integration/indirector/file_content/file_server_spec.rb +23 -21
  598. data/spec/integration/indirector/file_metadata/file_server_spec.rb +53 -0
  599. data/spec/integration/indirector/node/ldap_spec.rb +0 -0
  600. data/spec/integration/network/authconfig_spec.rb +26 -26
  601. data/spec/integration/network/formats_spec.rb +12 -12
  602. data/spec/integration/network/http/api/indirected_routes_spec.rb +56 -0
  603. data/spec/integration/node/environment_spec.rb +12 -15
  604. data/spec/integration/node/facts_spec.rb +3 -3
  605. data/spec/integration/node_spec.rb +8 -8
  606. data/spec/integration/parser/catalog_spec.rb +1 -32
  607. data/spec/integration/parser/class_spec.rb +0 -4
  608. data/spec/integration/parser/{collector_spec.rb → collection_spec.rb} +3 -27
  609. data/spec/integration/parser/compiler_spec.rb +769 -385
  610. data/spec/integration/parser/conditionals_spec.rb +2 -27
  611. data/spec/integration/parser/functions/require_spec.rb +8 -8
  612. data/spec/integration/parser/node_spec.rb +29 -42
  613. data/spec/integration/parser/resource_expressions_spec.rb +125 -210
  614. data/spec/integration/parser/scope_spec.rb +168 -319
  615. data/spec/integration/parser/undef_param_spec.rb +5 -5
  616. data/spec/integration/provider/cron/crontab_spec.rb +3 -3
  617. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
  618. data/spec/integration/provider/mount_spec.rb +33 -28
  619. data/spec/integration/provider/package_spec.rb +3 -14
  620. data/spec/integration/provider/service/init_spec.rb +4 -4
  621. data/spec/integration/provider/service/systemd_spec.rb +3 -3
  622. data/spec/integration/provider/ssh_authorized_key_spec.rb +12 -12
  623. data/spec/integration/provider/sshkey_spec.rb +159 -0
  624. data/spec/integration/reference/providers_spec.rb +1 -1
  625. data/spec/integration/reports_spec.rb +1 -1
  626. data/spec/integration/resource/catalog_spec.rb +3 -3
  627. data/spec/integration/resource/type_collection_spec.rb +10 -25
  628. data/spec/integration/ssl/autosign_spec.rb +1 -1
  629. data/spec/integration/ssl/certificate_authority_spec.rb +8 -8
  630. data/spec/integration/ssl/certificate_request_spec.rb +2 -2
  631. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -0
  632. data/spec/integration/ssl/host_spec.rb +7 -7
  633. data/spec/integration/transaction/report_spec.rb +0 -0
  634. data/spec/integration/transaction_spec.rb +86 -50
  635. data/spec/integration/type/exec_spec.rb +5 -5
  636. data/spec/integration/type/file_spec.rb +277 -280
  637. data/spec/integration/type/package_spec.rb +105 -6
  638. data/spec/integration/type/tidy_spec.rb +1 -1
  639. data/spec/integration/type/user_spec.rb +4 -4
  640. data/spec/integration/type_spec.rb +2 -2
  641. data/spec/integration/util/autoload_spec.rb +7 -12
  642. data/spec/integration/util/rdoc/parser_spec.rb +13 -99
  643. data/spec/integration/util/settings_spec.rb +1 -1
  644. data/spec/integration/util/windows/process_spec.rb +6 -6
  645. data/spec/integration/util/windows/security_spec.rb +79 -105
  646. data/spec/integration/util/windows/user_spec.rb +12 -12
  647. data/spec/integration/util_spec.rb +8 -8
  648. data/spec/lib/matchers/containment_matchers.rb +1 -1
  649. data/spec/lib/matchers/include.rb +3 -3
  650. data/spec/lib/matchers/include_in_order.rb +2 -2
  651. data/spec/lib/matchers/json.rb +5 -35
  652. data/spec/lib/matchers/match_tokens2.rb +1 -1
  653. data/spec/lib/matchers/relationship_graph_matchers.rb +1 -1
  654. data/spec/lib/matchers/resource.rb +8 -23
  655. data/spec/lib/puppet/face/1.0.0/huzzah.rb +2 -2
  656. data/spec/lib/puppet/face/basetest.rb +0 -0
  657. data/spec/lib/puppet/face/huzzah.rb +2 -2
  658. data/spec/lib/puppet/face/version_matching.rb +1 -1
  659. data/spec/lib/puppet/indirector_proxy.rb +34 -0
  660. data/spec/lib/puppet/indirector_testing.rb +1 -11
  661. data/spec/lib/puppet_spec/files.rb +1 -1
  662. data/spec/lib/puppet_spec/fixtures.rb +0 -0
  663. data/spec/lib/puppet_spec/handler.rb +53 -0
  664. data/spec/lib/puppet_spec/matchers.rb +12 -5
  665. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +3 -3
  666. data/spec/lib/puppet_spec/modules.rb +11 -0
  667. data/spec/lib/puppet_spec/network.rb +101 -0
  668. data/spec/lib/puppet_spec/pops.rb +2 -2
  669. data/spec/lib/puppet_spec/settings.rb +17 -0
  670. data/spec/lib/puppet_spec/verbose.rb +0 -0
  671. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  672. data/spec/shared_behaviours/an_indirector_face.rb +2 -2
  673. data/spec/shared_behaviours/documentation_on_faces.rb +46 -46
  674. data/spec/shared_behaviours/file_server_terminus.rb +1 -1
  675. data/spec/shared_behaviours/file_serving.rb +0 -0
  676. data/spec/shared_behaviours/hiera_indirections.rb +10 -10
  677. data/spec/shared_behaviours/iterative_functions.rb +1 -1
  678. data/spec/shared_behaviours/memory_terminus.rb +5 -5
  679. data/spec/shared_behaviours/path_parameters.rb +8 -8
  680. data/spec/shared_behaviours/store_configs_terminus.rb +3 -3
  681. data/spec/shared_behaviours/things_that_declare_options.rb +25 -25
  682. data/spec/shared_contexts/checksum.rb +62 -0
  683. data/spec/shared_contexts/{checksums.rb → digests.rb} +2 -2
  684. data/spec/spec_helper.rb +14 -5
  685. data/spec/unit/agent/disabler_spec.rb +3 -3
  686. data/spec/unit/agent/locker_spec.rb +9 -9
  687. data/spec/unit/agent_spec.rb +18 -18
  688. data/spec/unit/application/agent_spec.rb +25 -92
  689. data/spec/unit/application/apply_spec.rb +16 -16
  690. data/spec/unit/application/cert_spec.rb +15 -15
  691. data/spec/unit/application/certificate_spec.rb +2 -2
  692. data/spec/unit/application/config_spec.rb +1 -1
  693. data/spec/unit/application/describe_spec.rb +6 -6
  694. data/spec/unit/application/device_spec.rb +25 -63
  695. data/spec/unit/application/doc_spec.rb +22 -31
  696. data/spec/unit/application/face_base_spec.rb +88 -59
  697. data/spec/unit/application/facts_spec.rb +2 -11
  698. data/spec/unit/application/filebucket_spec.rb +7 -7
  699. data/spec/unit/application/indirection_base_spec.rb +0 -4
  700. data/spec/unit/application/inspect_spec.rb +21 -21
  701. data/spec/unit/application/master_spec.rb +8 -9
  702. data/spec/unit/application/resource_spec.rb +27 -79
  703. data/spec/unit/application_spec.rb +54 -58
  704. data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
  705. data/spec/unit/configurer/downloader_spec.rb +26 -20
  706. data/spec/unit/configurer/fact_handler_spec.rb +19 -12
  707. data/spec/unit/configurer/plugin_handler_spec.rb +0 -0
  708. data/spec/unit/configurer_spec.rb +44 -44
  709. data/spec/unit/confine/exists_spec.rb +10 -10
  710. data/spec/unit/confine/false_spec.rb +7 -7
  711. data/spec/unit/confine/feature_spec.rb +7 -7
  712. data/spec/unit/confine/true_spec.rb +7 -7
  713. data/spec/unit/confine/variable_spec.rb +13 -13
  714. data/spec/unit/confine_collection_spec.rb +12 -12
  715. data/spec/unit/confine_spec.rb +10 -10
  716. data/spec/unit/confiner_spec.rb +8 -8
  717. data/spec/unit/context/trusted_information_spec.rb +9 -2
  718. data/spec/unit/daemon_spec.rb +10 -21
  719. data/spec/unit/data_binding_spec.rb +1 -1
  720. data/spec/unit/data_providers/function_data_provider_spec.rb +96 -0
  721. data/spec/unit/data_providers/sample_data_provider_spec.rb +52 -0
  722. data/spec/unit/defaults_spec.rb +6 -6
  723. data/spec/unit/environments_spec.rb +4 -6
  724. data/spec/unit/{util → external}/pson_spec.rb +15 -25
  725. data/spec/unit/face/catalog_spec.rb +0 -0
  726. data/spec/unit/face/certificate_spec.rb +19 -19
  727. data/spec/unit/face/config_spec.rb +2 -7
  728. data/spec/unit/face/epp_face_spec.rb +303 -0
  729. data/spec/unit/face/facts_spec.rb +1 -15
  730. data/spec/unit/face/file_spec.rb +3 -5
  731. data/spec/unit/face/help_spec.rb +17 -16
  732. data/spec/unit/face/module/build_spec.rb +2 -2
  733. data/spec/unit/face/module/list_spec.rb +11 -11
  734. data/spec/unit/face/module/search_spec.rb +17 -17
  735. data/spec/unit/face/node_spec.rb +4 -122
  736. data/spec/unit/face/parser_spec.rb +1 -1
  737. data/spec/unit/face/plugin_spec.rb +2 -2
  738. data/spec/unit/face_spec.rb +0 -0
  739. data/spec/unit/file_bucket/dipper_spec.rb +23 -23
  740. data/spec/unit/file_bucket/file_spec.rb +12 -28
  741. data/spec/unit/file_serving/base_spec.rb +26 -26
  742. data/spec/unit/file_serving/configuration/parser_spec.rb +10 -10
  743. data/spec/unit/file_serving/configuration_spec.rb +17 -17
  744. data/spec/unit/file_serving/content_spec.rb +19 -31
  745. data/spec/unit/file_serving/fileset_spec.rb +32 -33
  746. data/spec/unit/file_serving/metadata_spec.rb +115 -71
  747. data/spec/unit/file_serving/mount/file_spec.rb +15 -15
  748. data/spec/unit/file_serving/mount/modules_spec.rb +2 -2
  749. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +5 -5
  750. data/spec/unit/file_serving/mount/plugins_spec.rb +5 -5
  751. data/spec/unit/file_serving/mount_spec.rb +5 -5
  752. data/spec/unit/file_serving/terminus_helper_spec.rb +19 -0
  753. data/spec/unit/file_serving/terminus_selector_spec.rb +6 -6
  754. data/spec/unit/file_system/uniquefile_spec.rb +2 -2
  755. data/spec/unit/file_system_spec.rb +79 -117
  756. data/spec/unit/forge/errors_spec.rb +8 -8
  757. data/spec/unit/forge/module_release_spec.rb +2 -4
  758. data/spec/unit/forge/repository_spec.rb +38 -44
  759. data/spec/unit/forge_spec.rb +1 -1
  760. data/spec/unit/functions/assert_type_spec.rb +1 -1
  761. data/spec/unit/functions/each_spec.rb +19 -23
  762. data/spec/unit/functions/epp_spec.rb +9 -17
  763. data/spec/unit/functions/filter_spec.rb +0 -22
  764. data/spec/unit/functions/hiera_spec.rb +18 -24
  765. data/spec/unit/functions/inline_epp_spec.rb +8 -16
  766. data/spec/unit/functions/lookup_spec.rb +324 -0
  767. data/spec/unit/functions/map_spec.rb +1 -7
  768. data/spec/unit/functions/reduce_spec.rb +0 -11
  769. data/spec/unit/functions/regsubst_spec.rb +94 -0
  770. data/spec/unit/functions/scanf_spec.rb +0 -4
  771. data/spec/unit/functions/slice_spec.rb +0 -12
  772. data/spec/unit/functions/split_spec.rb +46 -0
  773. data/spec/unit/functions/with_spec.rb +4 -13
  774. data/spec/unit/functions4_spec.rb +57 -162
  775. data/spec/unit/graph/rb_tree_map_spec.rb +78 -78
  776. data/spec/unit/graph/relationship_graph_spec.rb +17 -17
  777. data/spec/unit/graph/{simple_graph.rb → simple_graph_spec.rb} +122 -126
  778. data/spec/unit/hiera/scope_spec.rb +13 -12
  779. data/spec/unit/hiera_puppet_spec.rb +12 -12
  780. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -15
  781. data/spec/unit/indirector/catalog/json_spec.rb +2 -2
  782. data/spec/unit/indirector/catalog/msgpack_spec.rb +2 -2
  783. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  784. data/spec/unit/indirector/catalog/static_compiler_spec.rb +14 -14
  785. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
  786. data/spec/unit/indirector/catalog/yaml_spec.rb +4 -4
  787. data/spec/unit/indirector/certificate/ca_spec.rb +3 -3
  788. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
  789. data/spec/unit/indirector/certificate/file_spec.rb +3 -3
  790. data/spec/unit/indirector/certificate/rest_spec.rb +6 -6
  791. data/spec/unit/indirector/certificate_request/ca_spec.rb +8 -8
  792. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
  793. data/spec/unit/indirector/certificate_request/file_spec.rb +2 -2
  794. data/spec/unit/indirector/certificate_request/rest_spec.rb +4 -4
  795. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +2 -2
  796. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
  797. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +2 -2
  798. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +4 -4
  799. data/spec/unit/indirector/certificate_status/file_spec.rb +18 -18
  800. data/spec/unit/indirector/certificate_status/rest_spec.rb +2 -2
  801. data/spec/unit/indirector/code_spec.rb +3 -3
  802. data/spec/unit/indirector/data_binding/hiera_spec.rb +3 -3
  803. data/spec/unit/indirector/data_binding/none_spec.rb +5 -5
  804. data/spec/unit/indirector/direct_file_server_spec.rb +14 -4
  805. data/spec/unit/indirector/envelope_spec.rb +4 -4
  806. data/spec/unit/indirector/exec_spec.rb +4 -4
  807. data/spec/unit/indirector/face_spec.rb +13 -8
  808. data/spec/unit/indirector/facts/facter_spec.rb +10 -20
  809. data/spec/unit/indirector/facts/network_device_spec.rb +10 -20
  810. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
  811. data/spec/unit/indirector/facts/yaml_spec.rb +6 -6
  812. data/spec/unit/indirector/file_bucket_file/file_spec.rb +34 -34
  813. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -1
  814. data/spec/unit/indirector/file_content/file_server_spec.rb +2 -2
  815. data/spec/unit/indirector/file_content/file_spec.rb +2 -2
  816. data/spec/unit/indirector/file_content/rest_spec.rb +1 -1
  817. data/spec/unit/indirector/file_metadata/file_server_spec.rb +2 -2
  818. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -5
  819. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -1
  820. data/spec/unit/indirector/file_server_spec.rb +35 -17
  821. data/spec/unit/indirector/indirection_spec.rb +56 -56
  822. data/spec/unit/indirector/json_spec.rb +15 -16
  823. data/spec/unit/indirector/key/ca_spec.rb +3 -3
  824. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
  825. data/spec/unit/indirector/key/file_spec.rb +5 -5
  826. data/spec/unit/indirector/ldap_spec.rb +13 -13
  827. data/spec/unit/indirector/memory_spec.rb +0 -0
  828. data/spec/unit/indirector/msgpack_spec.rb +15 -15
  829. data/spec/unit/indirector/node/exec_spec.rb +20 -9
  830. data/spec/unit/indirector/node/ldap_spec.rb +48 -48
  831. data/spec/unit/indirector/node/memory_spec.rb +0 -0
  832. data/spec/unit/indirector/node/msgpack_spec.rb +4 -4
  833. data/spec/unit/indirector/node/plain_spec.rb +2 -2
  834. data/spec/unit/indirector/node/rest_spec.rb +0 -0
  835. data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
  836. data/spec/unit/indirector/node/yaml_spec.rb +4 -4
  837. data/spec/unit/indirector/none_spec.rb +2 -2
  838. data/spec/unit/indirector/plain_spec.rb +1 -1
  839. data/spec/unit/indirector/report/msgpack_spec.rb +5 -5
  840. data/spec/unit/indirector/report/processor_spec.rb +4 -4
  841. data/spec/unit/indirector/report/rest_spec.rb +8 -8
  842. data/spec/unit/indirector/report/yaml_spec.rb +5 -5
  843. data/spec/unit/indirector/request_spec.rb +103 -206
  844. data/spec/unit/indirector/resource/ral_spec.rb +8 -10
  845. data/spec/unit/indirector/resource/store_configs_spec.rb +2 -4
  846. data/spec/unit/indirector/resource_type/parser_spec.rb +37 -37
  847. data/spec/unit/indirector/resource_type/rest_spec.rb +2 -2
  848. data/spec/unit/indirector/rest_spec.rb +70 -55
  849. data/spec/unit/indirector/ssl_file_spec.rb +13 -13
  850. data/spec/unit/indirector/status/rest_spec.rb +1 -1
  851. data/spec/unit/indirector/store_configs_spec.rb +0 -0
  852. data/spec/unit/indirector/terminus_spec.rb +17 -17
  853. data/spec/unit/indirector/yaml_spec.rb +12 -12
  854. data/spec/unit/indirector_spec.rb +7 -7
  855. data/spec/unit/interface/action_builder_spec.rb +15 -15
  856. data/spec/unit/interface/action_manager_spec.rb +31 -56
  857. data/spec/unit/interface/action_spec.rb +62 -65
  858. data/spec/unit/interface/documentation_spec.rb +2 -2
  859. data/spec/unit/interface/face_collection_spec.rb +33 -33
  860. data/spec/unit/interface/option_builder_spec.rb +8 -8
  861. data/spec/unit/interface/option_spec.rb +23 -23
  862. data/spec/unit/interface_spec.rb +19 -24
  863. data/spec/unit/man_spec.rb +0 -0
  864. data/spec/unit/module_spec.rb +163 -115
  865. data/spec/unit/module_tool/applications/builder_spec.rb +0 -19
  866. data/spec/unit/module_tool/applications/installer_spec.rb +29 -29
  867. data/spec/unit/module_tool/applications/searcher_spec.rb +4 -4
  868. data/spec/unit/module_tool/applications/uninstaller_spec.rb +15 -15
  869. data/spec/unit/module_tool/applications/unpacker_spec.rb +3 -3
  870. data/spec/unit/module_tool/applications/upgrader_spec.rb +28 -28
  871. data/spec/unit/module_tool/install_directory_spec.rb +3 -3
  872. data/spec/unit/module_tool/metadata_spec.rb +26 -26
  873. data/spec/unit/module_tool/tar/gnu_spec.rb +1 -1
  874. data/spec/unit/module_tool/tar/mini_spec.rb +2 -2
  875. data/spec/unit/module_tool/tar_spec.rb +2 -2
  876. data/spec/unit/module_tool_spec.rb +13 -34
  877. data/spec/unit/network/auth_config_parser_spec.rb +7 -7
  878. data/spec/unit/network/authconfig_spec.rb +9 -9
  879. data/spec/unit/network/authstore_spec.rb +38 -39
  880. data/spec/unit/network/format_handler_spec.rb +14 -14
  881. data/spec/unit/network/format_spec.rb +34 -34
  882. data/spec/unit/network/format_support_spec.rb +10 -10
  883. data/spec/unit/network/formats_spec.rb +50 -136
  884. data/spec/unit/network/http/api/ca/v1_spec.rb +26 -0
  885. data/spec/unit/network/http/api/{v1_spec.rb → indirected_routes_spec.rb} +128 -184
  886. data/spec/unit/network/http/api/{v2 → master/v3}/authorization_spec.rb +23 -21
  887. data/spec/unit/network/http/api/{v2 → master/v3}/environments_spec.rb +5 -5
  888. data/spec/unit/network/http/api/master/v3_spec.rb +39 -0
  889. data/spec/unit/network/http/api_spec.rb +127 -0
  890. data/spec/unit/network/http/compression_spec.rb +20 -26
  891. data/spec/unit/network/http/connection_spec.rb +2 -5
  892. data/spec/unit/network/http/factory_spec.rb +6 -8
  893. data/spec/unit/network/http/handler_spec.rb +31 -84
  894. data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
  895. data/spec/unit/network/http/pool_spec.rb +0 -0
  896. data/spec/unit/network/http/rack/rest_spec.rb +38 -39
  897. data/spec/unit/network/http/rack_spec.rb +1 -1
  898. data/spec/unit/network/http/route_spec.rb +3 -3
  899. data/spec/unit/network/http/session_spec.rb +4 -4
  900. data/spec/unit/network/http/site_spec.rb +1 -1
  901. data/spec/unit/network/http/webrick/rest_spec.rb +36 -55
  902. data/spec/unit/network/http/webrick_spec.rb +16 -27
  903. data/spec/unit/network/http_pool_spec.rb +11 -11
  904. data/spec/unit/network/http_spec.rb +0 -0
  905. data/spec/unit/network/resolver_spec.rb +10 -10
  906. data/spec/unit/network/rights_spec.rb +67 -67
  907. data/spec/unit/network/server_spec.rb +3 -3
  908. data/spec/unit/node/environment_spec.rb +177 -273
  909. data/spec/unit/node/facts_spec.rb +71 -33
  910. data/spec/unit/node_spec.rb +150 -158
  911. data/spec/unit/other/selinux_spec.rb +6 -6
  912. data/spec/unit/parameter/boolean_spec.rb +4 -3
  913. data/spec/unit/parameter/package_options_spec.rb +5 -5
  914. data/spec/unit/parameter/path_spec.rb +1 -1
  915. data/spec/unit/parameter/value_collection_spec.rb +23 -28
  916. data/spec/unit/parameter/value_spec.rb +20 -24
  917. data/spec/unit/parameter_spec.rb +26 -26
  918. data/spec/unit/parser/ast/block_expression_spec.rb +3 -2
  919. data/spec/unit/parser/ast/leaf_spec.rb +5 -378
  920. data/spec/unit/parser/compiler_spec.rb +84 -74
  921. data/spec/unit/parser/files_spec.rb +55 -121
  922. data/spec/unit/parser/functions/contain_spec.rb +8 -11
  923. data/spec/unit/parser/functions/create_resources_spec.rb +29 -29
  924. data/spec/unit/parser/functions/defined_spec.rb +52 -51
  925. data/spec/unit/parser/functions/digest_spec.rb +2 -2
  926. data/spec/unit/parser/functions/fail_spec.rb +1 -1
  927. data/spec/unit/parser/functions/file_spec.rb +7 -13
  928. data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -5
  929. data/spec/unit/parser/functions/generate_spec.rb +20 -20
  930. data/spec/unit/parser/functions/hiera_array_spec.rb +2 -16
  931. data/spec/unit/parser/functions/hiera_hash_spec.rb +2 -12
  932. data/spec/unit/parser/functions/hiera_include_spec.rb +2 -29
  933. data/spec/unit/parser/functions/hiera_spec.rb +2 -12
  934. data/spec/unit/parser/functions/include_spec.rb +9 -19
  935. data/spec/unit/parser/functions/inline_template_spec.rb +3 -3
  936. data/spec/unit/parser/functions/lookup_spec.rb +3 -140
  937. data/spec/unit/parser/functions/realize_spec.rb +0 -0
  938. data/spec/unit/parser/functions/regsubst_spec.rb +7 -179
  939. data/spec/unit/parser/functions/require_spec.rb +14 -21
  940. data/spec/unit/parser/functions/scanf_spec.rb +0 -0
  941. data/spec/unit/parser/functions/shellquote_spec.rb +20 -20
  942. data/spec/unit/parser/functions/split_spec.rb +2 -37
  943. data/spec/unit/parser/functions/sprintf_spec.rb +7 -11
  944. data/spec/unit/parser/functions/tag_spec.rb +3 -3
  945. data/spec/unit/parser/functions/template_spec.rb +10 -10
  946. data/spec/unit/parser/functions/versioncmp_spec.rb +3 -3
  947. data/spec/unit/parser/functions_spec.rb +8 -8
  948. data/spec/unit/parser/relationship_spec.rb +14 -32
  949. data/spec/unit/parser/resource/param_spec.rb +0 -0
  950. data/spec/unit/parser/resource_spec.rb +57 -57
  951. data/spec/unit/parser/scope_spec.rb +89 -101
  952. data/spec/unit/parser/templatewrapper_spec.rb +15 -32
  953. data/spec/unit/parser/type_loader_spec.rb +53 -73
  954. data/spec/unit/pops/adaptable_spec.rb +22 -22
  955. data/spec/unit/pops/binder/bindings_checker_spec.rb +14 -14
  956. data/spec/unit/pops/binder/bindings_composer_spec.rb +4 -6
  957. data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +3 -3
  958. data/spec/unit/pops/binder/config/binder_config_spec.rb +8 -1
  959. data/spec/unit/pops/binder/injector_spec.rb +92 -92
  960. data/spec/unit/pops/containment_spec.rb +4 -4
  961. data/spec/unit/pops/evaluator/access_ops_spec.rb +5 -24
  962. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +23 -23
  963. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +22 -22
  964. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -3
  965. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +104 -107
  966. data/spec/unit/pops/evaluator/conditionals_spec.rb +39 -39
  967. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +75 -143
  968. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +1 -5
  969. data/spec/unit/pops/evaluator/logical_ops_spec.rb +15 -15
  970. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +5 -5
  971. data/spec/unit/pops/evaluator/variables_spec.rb +18 -18
  972. data/spec/unit/pops/factory_rspec_helper.rb +0 -8
  973. data/spec/unit/pops/factory_spec.rb +104 -104
  974. data/spec/unit/pops/issues_spec.rb +21 -21
  975. data/spec/unit/pops/label_provider_spec.rb +6 -6
  976. data/spec/unit/pops/loaders/loaders_spec.rb +3 -3
  977. data/spec/unit/pops/model/model_spec.rb +10 -10
  978. data/spec/unit/pops/parser/epp_parser_spec.rb +20 -20
  979. data/spec/unit/pops/parser/evaluating_parser_spec.rb +2 -2
  980. data/spec/unit/pops/parser/lexer2_spec.rb +65 -276
  981. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +91 -91
  982. data/spec/unit/pops/parser/parse_calls_spec.rb +19 -19
  983. data/spec/unit/pops/parser/parse_conditionals_spec.rb +38 -22
  984. data/spec/unit/pops/parser/parse_containers_spec.rb +47 -47
  985. data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -62
  986. data/spec/unit/pops/parser/parse_resource_spec.rb +75 -70
  987. data/spec/unit/pops/parser/parser_rspec_helper.rb +0 -5
  988. data/spec/unit/pops/parser/parser_spec.rb +7 -7
  989. data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +0 -7
  990. data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +2 -2
  991. data/spec/unit/pops/types/class_loader_spec.rb +10 -0
  992. data/spec/unit/pops/types/type_calculator_spec.rb +456 -651
  993. data/spec/unit/pops/types/type_factory_spec.rb +59 -59
  994. data/spec/unit/pops/types/type_parser_spec.rb +2 -10
  995. data/spec/unit/pops/validator/validator_spec.rb +3 -57
  996. data/spec/unit/pops/visitor_spec.rb +4 -4
  997. data/spec/unit/property/boolean_spec.rb +2 -2
  998. data/spec/unit/property/ensure_spec.rb +1 -1
  999. data/spec/unit/property/keyvalue_spec.rb +16 -16
  1000. data/spec/unit/property/list_spec.rb +18 -18
  1001. data/spec/unit/property/ordered_list_spec.rb +7 -7
  1002. data/spec/unit/property_spec.rb +72 -96
  1003. data/spec/unit/provider/aixobject_spec.rb +12 -12
  1004. data/spec/unit/provider/augeas/augeas_spec.rb +171 -149
  1005. data/spec/unit/provider/cisco_spec.rb +2 -2
  1006. data/spec/unit/provider/command_spec.rb +1 -1
  1007. data/spec/unit/provider/cron/crontab_spec.rb +9 -9
  1008. data/spec/unit/provider/cron/parsed_spec.rb +59 -38
  1009. data/spec/unit/provider/exec/posix_spec.rb +9 -19
  1010. data/spec/unit/provider/exec/shell_spec.rb +13 -13
  1011. data/spec/unit/provider/exec/windows_spec.rb +10 -10
  1012. data/spec/unit/provider/exec_spec.rb +2 -2
  1013. data/spec/unit/provider/file/posix_spec.rb +27 -27
  1014. data/spec/unit/provider/file/windows_spec.rb +15 -15
  1015. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  1016. data/spec/unit/provider/group/ldap_spec.rb +11 -11
  1017. data/spec/unit/provider/group/pw_spec.rb +3 -3
  1018. data/spec/unit/provider/group/windows_adsi_spec.rb +48 -62
  1019. data/spec/unit/provider/host/parsed_spec.rb +58 -22
  1020. data/spec/unit/provider/interface/cisco_spec.rb +3 -3
  1021. data/spec/unit/provider/ldap_spec.rb +23 -23
  1022. data/spec/unit/provider/macauthorization_spec.rb +6 -6
  1023. data/spec/unit/provider/mcx/mcxcontent_spec.rb +6 -6
  1024. data/spec/unit/provider/mount/parsed_spec.rb +101 -119
  1025. data/spec/unit/provider/mount_spec.rb +0 -0
  1026. data/spec/unit/provider/naginator_spec.rb +8 -8
  1027. data/spec/unit/provider/nameservice/directoryservice_spec.rb +5 -27
  1028. data/spec/unit/provider/nameservice_spec.rb +26 -26
  1029. data/spec/unit/provider/network_device_spec.rb +11 -11
  1030. data/spec/unit/provider/package/aix_spec.rb +3 -3
  1031. data/spec/unit/provider/package/appdmg_spec.rb +1 -1
  1032. data/spec/unit/provider/package/apt_spec.rb +4 -4
  1033. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  1034. data/spec/unit/provider/package/aptrpm_spec.rb +3 -3
  1035. data/spec/unit/provider/package/dpkg_spec.rb +0 -0
  1036. data/spec/unit/provider/package/freebsd_spec.rb +1 -1
  1037. data/spec/unit/provider/package/gem_spec.rb +12 -12
  1038. data/spec/unit/provider/package/hpux_spec.rb +3 -3
  1039. data/spec/unit/provider/package/macports_spec.rb +15 -15
  1040. data/spec/unit/provider/package/nim_spec.rb +11 -11
  1041. data/spec/unit/provider/package/openbsd_spec.rb +72 -37
  1042. data/spec/unit/provider/package/opkg_spec.rb +14 -11
  1043. data/spec/unit/provider/package/pacman_spec.rb +185 -86
  1044. data/spec/unit/provider/package/pip_spec.rb +25 -54
  1045. data/spec/unit/provider/package/pkg_spec.rb +145 -71
  1046. data/spec/unit/provider/package/pkgdmg_spec.rb +9 -9
  1047. data/spec/unit/provider/package/pkgin_spec.rb +18 -18
  1048. data/spec/unit/provider/package/pkgutil_spec.rb +19 -19
  1049. data/spec/unit/provider/package/portage_spec.rb +8 -4
  1050. data/spec/unit/provider/package/rpm_spec.rb +103 -9
  1051. data/spec/unit/provider/package/sun_spec.rb +14 -14
  1052. data/spec/unit/provider/package/up2date_spec.rb +1 -1
  1053. data/spec/unit/provider/package/{urpmi.rb → urpmi_spec.rb} +3 -3
  1054. data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -13
  1055. data/spec/unit/provider/package/windows/msi_package_spec.rb +16 -16
  1056. data/spec/unit/provider/package/windows/package_spec.rb +14 -14
  1057. data/spec/unit/provider/package/windows_spec.rb +26 -26
  1058. data/spec/unit/provider/package/yum_spec.rb +292 -98
  1059. data/spec/unit/provider/package/zypper_spec.rb +20 -31
  1060. data/spec/unit/provider/parsedfile_spec.rb +9 -9
  1061. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +192 -434
  1062. data/spec/unit/provider/selboolean_spec.rb +2 -2
  1063. data/spec/unit/provider/selmodule_spec.rb +8 -8
  1064. data/spec/unit/provider/service/base_spec.rb +27 -38
  1065. data/spec/unit/provider/service/daemontools_spec.rb +11 -11
  1066. data/spec/unit/provider/service/debian_spec.rb +8 -8
  1067. data/spec/unit/provider/service/freebsd_spec.rb +7 -8
  1068. data/spec/unit/provider/service/gentoo_spec.rb +12 -13
  1069. data/spec/unit/provider/service/init_spec.rb +25 -38
  1070. data/spec/unit/provider/service/launchd_spec.rb +19 -125
  1071. data/spec/unit/provider/service/openbsd_spec.rb +90 -144
  1072. data/spec/unit/provider/service/openrc_spec.rb +14 -14
  1073. data/spec/unit/provider/service/openwrt_spec.rb +9 -9
  1074. data/spec/unit/provider/service/redhat_spec.rb +14 -15
  1075. data/spec/unit/provider/service/runit_spec.rb +11 -11
  1076. data/spec/unit/provider/service/smf_spec.rb +19 -19
  1077. data/spec/unit/provider/service/src_spec.rb +9 -9
  1078. data/spec/unit/provider/service/systemd_spec.rb +33 -15
  1079. data/spec/unit/provider/service/upstart_spec.rb +59 -59
  1080. data/spec/unit/provider/service/windows_spec.rb +6 -6
  1081. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +18 -18
  1082. data/spec/unit/provider/sshkey/parsed_spec.rb +11 -11
  1083. data/spec/unit/provider/user/aix_spec.rb +19 -19
  1084. data/spec/unit/provider/user/directoryservice_spec.rb +51 -95
  1085. data/spec/unit/provider/user/hpux_spec.rb +24 -3
  1086. data/spec/unit/provider/user/ldap_spec.rb +12 -12
  1087. data/spec/unit/provider/user/openbsd_spec.rb +77 -0
  1088. data/spec/unit/provider/user/pw_spec.rb +5 -5
  1089. data/spec/unit/provider/user/user_role_add_spec.rb +20 -20
  1090. data/spec/unit/provider/user/useradd_spec.rb +48 -32
  1091. data/spec/unit/provider/user/windows_adsi_spec.rb +9 -31
  1092. data/spec/unit/provider/vlan/cisco_spec.rb +3 -3
  1093. data/spec/unit/provider/yumrepo/inifile_spec.rb +3 -3
  1094. data/spec/unit/provider/zfs/zfs_spec.rb +11 -11
  1095. data/spec/unit/provider/zone/solaris_spec.rb +22 -55
  1096. data/spec/unit/provider/zpool/zpool_spec.rb +22 -22
  1097. data/spec/unit/provider_spec.rb +110 -102
  1098. data/spec/unit/puppet_spec.rb +15 -8
  1099. data/spec/unit/relationship_spec.rb +37 -41
  1100. data/spec/unit/reports/http_spec.rb +0 -0
  1101. data/spec/unit/reports/store_spec.rb +3 -3
  1102. data/spec/unit/reports_spec.rb +5 -5
  1103. data/spec/unit/resource/catalog_spec.rb +93 -111
  1104. data/spec/unit/resource/status_spec.rb +49 -75
  1105. data/spec/unit/resource/type_collection_helper_spec.rb +1 -1
  1106. data/spec/unit/resource/type_collection_spec.rb +59 -164
  1107. data/spec/unit/resource/type_spec.rb +115 -120
  1108. data/spec/unit/resource_spec.rb +176 -159
  1109. data/spec/unit/scheduler/job_spec.rb +12 -12
  1110. data/spec/unit/scheduler/scheduler_spec.rb +8 -8
  1111. data/spec/unit/scheduler/splay_job_spec.rb +4 -4
  1112. data/spec/unit/semver_spec.rb +66 -64
  1113. data/spec/unit/settings/autosign_setting_spec.rb +1 -0
  1114. data/spec/unit/settings/config_file_spec.rb +13 -40
  1115. data/spec/unit/settings/directory_setting_spec.rb +1 -1
  1116. data/spec/unit/settings/duration_setting_spec.rb +9 -5
  1117. data/spec/unit/settings/environment_conf_spec.rb +0 -11
  1118. data/spec/unit/settings/file_setting_spec.rb +38 -69
  1119. data/spec/unit/settings/ini_file_spec.rb +2 -2
  1120. data/spec/unit/settings/path_setting_spec.rb +5 -5
  1121. data/spec/unit/settings/priority_setting_spec.rb +7 -7
  1122. data/spec/unit/settings/string_setting_spec.rb +7 -7
  1123. data/spec/unit/settings/terminus_setting_spec.rb +4 -4
  1124. data/spec/unit/settings/value_translator_spec.rb +22 -22
  1125. data/spec/unit/settings_spec.rb +189 -338
  1126. data/spec/unit/ssl/base_spec.rb +5 -5
  1127. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +2 -2
  1128. data/spec/unit/ssl/certificate_authority/interface_spec.rb +40 -13
  1129. data/spec/unit/ssl/certificate_authority_spec.rb +23 -23
  1130. data/spec/unit/ssl/certificate_factory_spec.rb +39 -26
  1131. data/spec/unit/ssl/certificate_request_attributes_spec.rb +2 -2
  1132. data/spec/unit/ssl/certificate_request_spec.rb +52 -40
  1133. data/spec/unit/ssl/certificate_revocation_list_spec.rb +10 -10
  1134. data/spec/unit/ssl/certificate_spec.rb +35 -38
  1135. data/spec/unit/ssl/configuration_spec.rb +12 -14
  1136. data/spec/unit/ssl/digest_spec.rb +5 -5
  1137. data/spec/unit/ssl/host_spec.rb +91 -91
  1138. data/spec/unit/ssl/inventory_spec.rb +11 -34
  1139. data/spec/unit/ssl/key_spec.rb +23 -23
  1140. data/spec/unit/ssl/oids_spec.rb +28 -15
  1141. data/spec/unit/ssl/validator_spec.rb +16 -17
  1142. data/spec/unit/status_spec.rb +6 -12
  1143. data/spec/unit/transaction/additional_resource_generator_spec.rb +2 -2
  1144. data/spec/unit/transaction/event_manager_spec.rb +38 -8
  1145. data/spec/unit/transaction/event_spec.rb +29 -29
  1146. data/spec/unit/transaction/report_spec.rb +76 -90
  1147. data/spec/unit/transaction/resource_harness_spec.rb +42 -42
  1148. data/spec/unit/transaction_spec.rb +66 -59
  1149. data/spec/unit/type/augeas_spec.rb +20 -20
  1150. data/spec/unit/type/component_spec.rb +10 -10
  1151. data/spec/unit/type/computer_spec.rb +10 -10
  1152. data/spec/unit/type/cron_spec.rb +21 -21
  1153. data/spec/unit/type/exec_spec.rb +65 -73
  1154. data/spec/unit/type/file/checksum_spec.rb +8 -8
  1155. data/spec/unit/type/file/content_spec.rb +144 -85
  1156. data/spec/unit/type/file/ctime_spec.rb +4 -4
  1157. data/spec/unit/type/file/ensure_spec.rb +11 -11
  1158. data/spec/unit/type/file/group_spec.rb +5 -5
  1159. data/spec/unit/type/file/mode_spec.rb +30 -28
  1160. data/spec/unit/type/file/mtime_spec.rb +4 -4
  1161. data/spec/unit/type/file/owner_spec.rb +5 -5
  1162. data/spec/unit/type/file/selinux_spec.rb +8 -8
  1163. data/spec/unit/type/file/source_spec.rb +118 -135
  1164. data/spec/unit/type/file/type_spec.rb +2 -2
  1165. data/spec/unit/type/file_spec.rb +161 -160
  1166. data/spec/unit/type/filebucket_spec.rb +8 -8
  1167. data/spec/unit/type/group_spec.rb +12 -12
  1168. data/spec/unit/type/host_spec.rb +41 -25
  1169. data/spec/unit/type/interface_spec.rb +6 -6
  1170. data/spec/unit/type/k5login_spec.rb +18 -18
  1171. data/spec/unit/type/macauthorization_spec.rb +17 -17
  1172. data/spec/unit/type/mailalias_spec.rb +34 -6
  1173. data/spec/unit/type/maillist_spec.rb +2 -2
  1174. data/spec/unit/type/mcx_spec.rb +13 -13
  1175. data/spec/unit/type/mount_spec.rb +40 -40
  1176. data/spec/unit/type/nagios_spec.rb +23 -23
  1177. data/spec/unit/type/noop_metaparam_spec.rb +5 -5
  1178. data/spec/unit/type/package/package_settings_spec.rb +9 -9
  1179. data/spec/unit/type/package_spec.rb +87 -18
  1180. data/spec/unit/type/resources_spec.rb +46 -46
  1181. data/spec/unit/type/schedule_spec.rb +83 -83
  1182. data/spec/unit/type/scheduled_task_spec.rb +15 -15
  1183. data/spec/unit/type/selboolean_spec.rb +2 -2
  1184. data/spec/unit/type/selmodule_spec.rb +2 -2
  1185. data/spec/unit/type/service_spec.rb +24 -24
  1186. data/spec/unit/type/ssh_authorized_key_spec.rb +2 -2
  1187. data/spec/unit/type/sshkey_spec.rb +0 -0
  1188. data/spec/unit/type/stage_spec.rb +1 -1
  1189. data/spec/unit/type/tidy_spec.rb +58 -39
  1190. data/spec/unit/type/user_spec.rb +56 -56
  1191. data/spec/unit/type/vlan_spec.rb +6 -6
  1192. data/spec/unit/type/whit_spec.rb +1 -1
  1193. data/spec/unit/type/yumrepo_spec.rb +15 -0
  1194. data/spec/unit/type/zfs_spec.rb +3 -3
  1195. data/spec/unit/type/zone_spec.rb +19 -19
  1196. data/spec/unit/type/zpool_spec.rb +15 -15
  1197. data/spec/unit/type_spec.rb +236 -163
  1198. data/spec/unit/util/autoload_spec.rb +31 -25
  1199. data/spec/unit/util/backups_spec.rb +4 -4
  1200. data/spec/unit/util/checksums_spec.rb +55 -27
  1201. data/spec/unit/util/colors_spec.rb +6 -50
  1202. data/spec/unit/util/command_line_spec.rb +13 -41
  1203. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +2 -2
  1204. data/spec/unit/util/constant_inflector_spec.rb +12 -12
  1205. data/spec/unit/util/diff_spec.rb +4 -4
  1206. data/spec/unit/util/errors_spec.rb +5 -5
  1207. data/spec/unit/util/execution_spec.rb +74 -29
  1208. data/spec/unit/util/execution_stub_spec.rb +10 -10
  1209. data/spec/unit/util/feature_spec.rb +15 -19
  1210. data/spec/unit/util/filetype_spec.rb +9 -9
  1211. data/spec/unit/util/http_proxy_spec.rb +18 -18
  1212. data/spec/unit/util/inifile_spec.rb +2 -2
  1213. data/spec/unit/util/json_lockfile_spec.rb +1 -1
  1214. data/spec/unit/util/ldap/connection_spec.rb +6 -6
  1215. data/spec/unit/util/ldap/generator_spec.rb +8 -8
  1216. data/spec/unit/util/ldap/manager_spec.rb +40 -40
  1217. data/spec/unit/util/lockfile_spec.rb +13 -13
  1218. data/spec/unit/util/log/destinations_spec.rb +52 -49
  1219. data/spec/unit/util/log_spec.rb +48 -173
  1220. data/spec/unit/util/logging_spec.rb +120 -3
  1221. data/spec/unit/util/metric_spec.rb +18 -33
  1222. data/spec/unit/util/monkey_patches_spec.rb +18 -139
  1223. data/spec/unit/util/nagios_maker_spec.rb +2 -2
  1224. data/spec/unit/util/network_device/cisco/device_spec.rb +23 -23
  1225. data/spec/unit/util/network_device/cisco/facts_spec.rb +3 -3
  1226. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
  1227. data/spec/unit/util/network_device/config_spec.rb +10 -16
  1228. data/spec/unit/util/network_device/ipcalc_spec.rb +10 -10
  1229. data/spec/unit/util/network_device/transport/base_spec.rb +2 -2
  1230. data/spec/unit/util/network_device/transport/ssh_spec.rb +10 -10
  1231. data/spec/unit/util/network_device/transport/telnet_spec.rb +3 -3
  1232. data/spec/unit/util/network_device_spec.rb +2 -2
  1233. data/spec/unit/util/package_spec.rb +2 -2
  1234. data/spec/unit/util/pidlock_spec.rb +38 -38
  1235. data/spec/unit/util/posix_spec.rb +25 -25
  1236. data/spec/unit/util/profiler/aggregate_spec.rb +14 -18
  1237. data/spec/unit/util/profiler/around_profiler_spec.rb +6 -6
  1238. data/spec/unit/util/profiler/logging_spec.rb +8 -8
  1239. data/spec/unit/util/profiler/object_counts_spec.rb +3 -5
  1240. data/spec/unit/util/profiler/wall_clock_spec.rb +1 -1
  1241. data/spec/unit/util/profiler_spec.rb +6 -14
  1242. data/spec/unit/util/rdoc_spec.rb +0 -85
  1243. data/spec/unit/util/reference_spec.rb +1 -1
  1244. data/spec/unit/util/resource_template_spec.rb +2 -2
  1245. data/spec/unit/util/{retryaction_spec.rb → retry_action_spec.rb} +25 -2
  1246. data/spec/unit/util/rubygems_spec.rb +8 -8
  1247. data/spec/unit/util/run_mode_spec.rb +159 -17
  1248. data/spec/unit/util/selinux_spec.rb +61 -39
  1249. data/spec/unit/util/ssl_spec.rb +13 -13
  1250. data/spec/unit/util/storage_spec.rb +27 -27
  1251. data/spec/unit/util/suidmanager_spec.rb +56 -67
  1252. data/spec/unit/util/symbolic_file_mode_spec.rb +15 -16
  1253. data/spec/unit/util/tag_set_spec.rb +5 -5
  1254. data/spec/unit/util/tagging_spec.rb +0 -0
  1255. data/spec/unit/util/terminal_spec.rb +5 -5
  1256. data/spec/unit/util/user_attr_spec.rb +6 -6
  1257. data/spec/unit/util/warnings_spec.rb +9 -1
  1258. data/spec/unit/util/watcher_spec.rb +1 -1
  1259. data/spec/unit/util/windows/access_control_entry_spec.rb +9 -9
  1260. data/spec/unit/util/windows/access_control_list_spec.rb +21 -21
  1261. data/spec/unit/util/windows/adsi_spec.rb +71 -209
  1262. data/spec/unit/util/windows/api_types_spec.rb +3 -3
  1263. data/spec/unit/util/windows/registry_spec.rb +71 -46
  1264. data/spec/unit/util/windows/root_certs_spec.rb +1 -1
  1265. data/spec/unit/util/windows/security_descriptor_spec.rb +18 -18
  1266. data/spec/unit/util/windows/sid_spec.rb +40 -20
  1267. data/spec/unit/util/windows/string_spec.rb +4 -4
  1268. data/spec/unit/util/yaml_spec.rb +1 -1
  1269. data/spec/unit/util_spec.rb +73 -124
  1270. data/spec/unit/version_spec.rb +4 -4
  1271. data/spec/watchr.rb +1 -5
  1272. data/tasks/benchmark.rake +1 -6
  1273. data/tasks/ci.rake +1 -1
  1274. data/tasks/manpages.rake +0 -9
  1275. data/tasks/parallel.rake +4 -7
  1276. data/tasks/parser.rake +0 -5
  1277. metadata +175 -461
  1278. data/conf/tagmail.conf +0 -16
  1279. data/ext/debian/puppet.conf +0 -14
  1280. data/ext/debian/puppetmaster-common.puppetqd.default +0 -27
  1281. data/ext/debian/puppetmaster-common.puppetqd.init +0 -84
  1282. data/ext/gentoo/puppet/puppet.conf +0 -25
  1283. data/ext/ips/puppet.conf +0 -29
  1284. data/ext/nagios/naggen +0 -309
  1285. data/ext/puppet-load.rb +0 -393
  1286. data/ext/redhat/puppet.conf +0 -25
  1287. data/ext/redhat/queue.init +0 -105
  1288. data/lib/hiera/backend/puppet_backend.rb +0 -103
  1289. data/lib/puppet/application/instrumentation_data.rb +0 -7
  1290. data/lib/puppet/application/instrumentation_listener.rb +0 -7
  1291. data/lib/puppet/application/instrumentation_probe.rb +0 -7
  1292. data/lib/puppet/application/kick.rb +0 -351
  1293. data/lib/puppet/application/queue.rb +0 -161
  1294. data/lib/puppet/application/secret_agent.rb +0 -9
  1295. data/lib/puppet/dsl.rb +0 -7
  1296. data/lib/puppet/dsl/resource_api.rb +0 -120
  1297. data/lib/puppet/dsl/resource_type_api.rb +0 -34
  1298. data/lib/puppet/face/instrumentation_data.rb +0 -30
  1299. data/lib/puppet/face/instrumentation_listener.rb +0 -98
  1300. data/lib/puppet/face/instrumentation_probe.rb +0 -79
  1301. data/lib/puppet/face/secret_agent.rb +0 -54
  1302. data/lib/puppet/feature/pson.rb +0 -4
  1303. data/lib/puppet/feature/rails.rb +0 -47
  1304. data/lib/puppet/feature/rdoc1.rb +0 -16
  1305. data/lib/puppet/feature/rubygems.rb +0 -7
  1306. data/lib/puppet/feature/stomp.rb +0 -5
  1307. data/lib/puppet/file_collection.rb +0 -19
  1308. data/lib/puppet/file_collection/lookup.rb +0 -10
  1309. data/lib/puppet/file_system/file18.rb +0 -5
  1310. data/lib/puppet/functions/defined.rb +0 -130
  1311. data/lib/puppet/indirector/active_record.rb +0 -29
  1312. data/lib/puppet/indirector/catalog/active_record.rb +0 -39
  1313. data/lib/puppet/indirector/catalog/queue.rb +0 -9
  1314. data/lib/puppet/indirector/couch.rb +0 -78
  1315. data/lib/puppet/indirector/facts/active_record.rb +0 -44
  1316. data/lib/puppet/indirector/facts/couch.rb +0 -36
  1317. data/lib/puppet/indirector/facts/inventory_active_record.rb +0 -110
  1318. data/lib/puppet/indirector/facts/inventory_service.rb +0 -20
  1319. data/lib/puppet/indirector/facts/rest.rb +0 -8
  1320. data/lib/puppet/indirector/instrumentation_data.rb +0 -3
  1321. data/lib/puppet/indirector/instrumentation_data/local.rb +0 -22
  1322. data/lib/puppet/indirector/instrumentation_data/rest.rb +0 -8
  1323. data/lib/puppet/indirector/instrumentation_listener.rb +0 -3
  1324. data/lib/puppet/indirector/instrumentation_listener/local.rb +0 -26
  1325. data/lib/puppet/indirector/instrumentation_listener/rest.rb +0 -8
  1326. data/lib/puppet/indirector/instrumentation_probe.rb +0 -3
  1327. data/lib/puppet/indirector/instrumentation_probe/local.rb +0 -27
  1328. data/lib/puppet/indirector/instrumentation_probe/rest.rb +0 -8
  1329. data/lib/puppet/indirector/node/active_record.rb +0 -22
  1330. data/lib/puppet/indirector/queue.rb +0 -80
  1331. data/lib/puppet/indirector/resource/active_record.rb +0 -104
  1332. data/lib/puppet/indirector/resource/rest.rb +0 -17
  1333. data/lib/puppet/indirector/run/local.rb +0 -15
  1334. data/lib/puppet/indirector/run/rest.rb +0 -12
  1335. data/lib/puppet/module_tool/modulefile.rb +0 -78
  1336. data/lib/puppet/network/authentication.rb +0 -35
  1337. data/lib/puppet/network/http/api/v2.rb +0 -32
  1338. data/lib/puppet/network/http/api/v2/authorization.rb +0 -15
  1339. data/lib/puppet/parser/ast/arithmetic_operator.rb +0 -91
  1340. data/lib/puppet/parser/ast/astarray.rb +0 -50
  1341. data/lib/puppet/parser/ast/asthash.rb +0 -37
  1342. data/lib/puppet/parser/ast/boolean_operator.rb +0 -46
  1343. data/lib/puppet/parser/ast/caseopt.rb +0 -52
  1344. data/lib/puppet/parser/ast/casestatement.rb +0 -41
  1345. data/lib/puppet/parser/ast/collection.rb +0 -53
  1346. data/lib/puppet/parser/ast/collexpr.rb +0 -109
  1347. data/lib/puppet/parser/ast/comparison_operator.rb +0 -38
  1348. data/lib/puppet/parser/ast/definition.rb +0 -17
  1349. data/lib/puppet/parser/ast/else.rb +0 -22
  1350. data/lib/puppet/parser/ast/function.rb +0 -59
  1351. data/lib/puppet/parser/ast/ifstatement.rb +0 -34
  1352. data/lib/puppet/parser/ast/in_operator.rb +0 -24
  1353. data/lib/puppet/parser/ast/lambda.rb +0 -135
  1354. data/lib/puppet/parser/ast/match_operator.rb +0 -28
  1355. data/lib/puppet/parser/ast/method_call.rb +0 -77
  1356. data/lib/puppet/parser/ast/minus.rb +0 -23
  1357. data/lib/puppet/parser/ast/nop.rb +0 -11
  1358. data/lib/puppet/parser/ast/not.rb +0 -19
  1359. data/lib/puppet/parser/ast/relationship.rb +0 -47
  1360. data/lib/puppet/parser/ast/resource_defaults.rb +0 -24
  1361. data/lib/puppet/parser/ast/resource_override.rb +0 -62
  1362. data/lib/puppet/parser/ast/resource_reference.rb +0 -28
  1363. data/lib/puppet/parser/ast/selector.rb +0 -50
  1364. data/lib/puppet/parser/ast/vardef.rb +0 -38
  1365. data/lib/puppet/parser/code_merger.rb +0 -13
  1366. data/lib/puppet/parser/collector.rb +0 -177
  1367. data/lib/puppet/parser/functions/extlookup.rb +0 -153
  1368. data/lib/puppet/parser/functions/search.rb +0 -12
  1369. data/lib/puppet/parser/grammar.ra +0 -806
  1370. data/lib/puppet/parser/lexer.rb +0 -608
  1371. data/lib/puppet/parser/makefile +0 -8
  1372. data/lib/puppet/parser/methods.rb +0 -69
  1373. data/lib/puppet/parser/parser.rb +0 -2559
  1374. data/lib/puppet/parser/parser_support.rb +0 -195
  1375. data/lib/puppet/pops/binder/lookup.rb +0 -216
  1376. data/lib/puppet/pops/migration/migration_checker.rb +0 -45
  1377. data/lib/puppet/pops/model/ast_tree_dumper.rb +0 -386
  1378. data/lib/puppet/provider/package/msi.rb +0 -125
  1379. data/lib/puppet/provider/package/yumhelper.py +0 -159
  1380. data/lib/puppet/rails.rb +0 -139
  1381. data/lib/puppet/rails/benchmark.rb +0 -63
  1382. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +0 -13
  1383. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +0 -13
  1384. data/lib/puppet/rails/database/003_add_environment_to_host.rb +0 -9
  1385. data/lib/puppet/rails/database/004_add_inventory_service_tables.rb +0 -36
  1386. data/lib/puppet/rails/database/schema.rb +0 -136
  1387. data/lib/puppet/rails/fact_name.rb +0 -7
  1388. data/lib/puppet/rails/fact_value.rb +0 -10
  1389. data/lib/puppet/rails/host.rb +0 -258
  1390. data/lib/puppet/rails/inventory_fact.rb +0 -5
  1391. data/lib/puppet/rails/inventory_node.rb +0 -43
  1392. data/lib/puppet/rails/param_name.rb +0 -25
  1393. data/lib/puppet/rails/param_value.rb +0 -74
  1394. data/lib/puppet/rails/puppet_tag.rb +0 -10
  1395. data/lib/puppet/rails/resource.rb +0 -235
  1396. data/lib/puppet/rails/resource_tag.rb +0 -26
  1397. data/lib/puppet/rails/source_file.rb +0 -8
  1398. data/lib/puppet/reports/rrdgraph.rb +0 -128
  1399. data/lib/puppet/reports/tagmail.rb +0 -179
  1400. data/lib/puppet/run.rb +0 -109
  1401. data/lib/puppet/util/cacher.rb +0 -74
  1402. data/lib/puppet/util/inline_docs.rb +0 -26
  1403. data/lib/puppet/util/instrumentation.rb +0 -152
  1404. data/lib/puppet/util/instrumentation/data.rb +0 -46
  1405. data/lib/puppet/util/instrumentation/indirection_probe.rb +0 -41
  1406. data/lib/puppet/util/instrumentation/instrumentable.rb +0 -136
  1407. data/lib/puppet/util/instrumentation/listener.rb +0 -72
  1408. data/lib/puppet/util/instrumentation/listeners/log.rb +0 -23
  1409. data/lib/puppet/util/instrumentation/listeners/performance.rb +0 -24
  1410. data/lib/puppet/util/log/rate_limited_logger.rb +0 -40
  1411. data/lib/puppet/util/monkey_patches/lines.rb +0 -13
  1412. data/lib/puppet/util/plugins.rb +0 -82
  1413. data/lib/puppet/util/pson.rb +0 -13
  1414. data/lib/puppet/util/queue.rb +0 -96
  1415. data/lib/puppet/util/queue/stomp.rb +0 -60
  1416. data/lib/puppet/util/rails/cache_accumulator.rb +0 -65
  1417. data/lib/puppet/util/rails/collection_merger.rb +0 -17
  1418. data/lib/puppet/util/rails/reference_serializer.rb +0 -32
  1419. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc1.rb +0 -19
  1420. data/lib/puppet/util/retryaction.rb +0 -47
  1421. data/lib/puppet/util/zaml.rb +0 -419
  1422. data/lib/puppet/vendor/load_safe_yaml.rb +0 -1
  1423. data/lib/puppet/vendor/safe_yaml/CHANGES.md +0 -104
  1424. data/lib/puppet/vendor/safe_yaml/Gemfile +0 -11
  1425. data/lib/puppet/vendor/safe_yaml/LICENSE.txt +0 -22
  1426. data/lib/puppet/vendor/safe_yaml/PUPPET_README.md +0 -6
  1427. data/lib/puppet/vendor/safe_yaml/README.md +0 -179
  1428. data/lib/puppet/vendor/safe_yaml/Rakefile +0 -6
  1429. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb +0 -253
  1430. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/deep.rb +0 -34
  1431. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/date.rb +0 -27
  1432. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/hexadecimal.rb +0 -12
  1433. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/sexagesimal.rb +0 -26
  1434. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb +0 -92
  1435. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_resolver.rb +0 -52
  1436. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/resolver.rb +0 -94
  1437. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -17
  1438. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_hack.rb +0 -36
  1439. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb +0 -43
  1440. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_resolver.rb +0 -38
  1441. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform.rb +0 -41
  1442. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_boolean.rb +0 -21
  1443. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_date.rb +0 -11
  1444. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_float.rb +0 -33
  1445. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_integer.rb +0 -25
  1446. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_nil.rb +0 -18
  1447. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_symbol.rb +0 -13
  1448. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/transformation_map.rb +0 -47
  1449. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/version.rb +0 -3
  1450. data/lib/puppet/vendor/safe_yaml/run_specs_all_ruby_versions.sh +0 -21
  1451. data/lib/puppet/vendor/safe_yaml/safe_yaml.gemspec +0 -18
  1452. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.2.yaml +0 -2
  1453. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.3.yaml +0 -2
  1454. data/lib/puppet/vendor/safe_yaml/spec/psych_resolver_spec.rb +0 -10
  1455. data/lib/puppet/vendor/safe_yaml/spec/resolver_specs.rb +0 -250
  1456. data/lib/puppet/vendor/safe_yaml/spec/safe_yaml_spec.rb +0 -702
  1457. data/lib/puppet/vendor/safe_yaml/spec/spec_helper.rb +0 -18
  1458. data/lib/puppet/vendor/safe_yaml/spec/support/exploitable_back_door.rb +0 -29
  1459. data/lib/puppet/vendor/safe_yaml/spec/syck_resolver_spec.rb +0 -10
  1460. data/lib/puppet/vendor/safe_yaml/spec/transform/base64_spec.rb +0 -11
  1461. data/lib/puppet/vendor/safe_yaml/spec/transform/to_date_spec.rb +0 -34
  1462. data/lib/puppet/vendor/safe_yaml/spec/transform/to_float_spec.rb +0 -42
  1463. data/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb +0 -59
  1464. data/lib/puppet/vendor/safe_yaml/spec/transform/to_symbol_spec.rb +0 -49
  1465. data/lib/puppet/vendor/safe_yaml_patches.rb +0 -9
  1466. data/lib/puppetx.rb +0 -89
  1467. data/man/man8/puppet-instrumentation_data.8 +0 -141
  1468. data/man/man8/puppet-instrumentation_listener.8 +0 -218
  1469. data/man/man8/puppet-instrumentation_probe.8 +0 -203
  1470. data/man/man8/puppet-kick.8 +0 -131
  1471. data/man/man8/puppet-queue.8 +0 -55
  1472. data/man/man8/puppet-secret_agent.8 +0 -70
  1473. data/spec/fixtures/module.tar.gz +0 -0
  1474. data/spec/fixtures/unit/provider/package/pkg/publisher +0 -2
  1475. data/spec/fixtures/unit/provider/package/pkg/simple +0 -2
  1476. data/spec/fixtures/yaml/report0.25.x.yaml +0 -64
  1477. data/spec/integration/indirector/catalog/queue_spec.rb +0 -55
  1478. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  1479. data/spec/integration/parser/dynamic_scoping_spec.rb +0 -131
  1480. data/spec/integration/parser/future_compiler_spec.rb +0 -822
  1481. data/spec/integration/parser/parser_spec.rb +0 -207
  1482. data/spec/integration/parser/ruby_manifest_spec.rb +0 -119
  1483. data/spec/integration/type/sshkey_spec.rb +0 -22
  1484. data/spec/integration/util/feature_spec.rb +0 -53
  1485. data/spec/lib/puppet_spec/database.rb +0 -29
  1486. data/spec/monkey_patches/alias_should_to_must.rb +0 -21
  1487. data/spec/shared_contexts/platform.rb +0 -52
  1488. data/spec/unit/application/kick_spec.rb +0 -296
  1489. data/spec/unit/application/queue_spec.rb +0 -168
  1490. data/spec/unit/application/secret_agent_spec.rb +0 -34
  1491. data/spec/unit/dsl/resource_api_spec.rb +0 -180
  1492. data/spec/unit/dsl/resource_type_api_spec.rb +0 -53
  1493. data/spec/unit/face/instrumentation_data_spec.rb +0 -7
  1494. data/spec/unit/face/instrumentation_listener_spec.rb +0 -38
  1495. data/spec/unit/face/instrumentation_probe_spec.rb +0 -21
  1496. data/spec/unit/face/secret_agent_spec.rb +0 -27
  1497. data/spec/unit/functions/defined_spec.rb +0 -291
  1498. data/spec/unit/hiera/backend/puppet_backend_spec.rb +0 -148
  1499. data/spec/unit/indirector/active_record_spec.rb +0 -75
  1500. data/spec/unit/indirector/catalog/active_record_spec.rb +0 -107
  1501. data/spec/unit/indirector/catalog/queue_spec.rb +0 -19
  1502. data/spec/unit/indirector/facts/active_record_spec.rb +0 -113
  1503. data/spec/unit/indirector/facts/couch_spec.rb +0 -102
  1504. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +0 -175
  1505. data/spec/unit/indirector/facts/inventory_service_spec.rb +0 -21
  1506. data/spec/unit/indirector/facts/rest_spec.rb +0 -10
  1507. data/spec/unit/indirector/instrumentation_data/local_spec.rb +0 -52
  1508. data/spec/unit/indirector/instrumentation_data/rest_spec.rb +0 -11
  1509. data/spec/unit/indirector/instrumentation_listener/local_spec.rb +0 -65
  1510. data/spec/unit/indirector/instrumentation_listener/rest_spec.rb +0 -11
  1511. data/spec/unit/indirector/instrumentation_probe/local_spec.rb +0 -65
  1512. data/spec/unit/indirector/instrumentation_probe/rest_spec.rb +0 -11
  1513. data/spec/unit/indirector/node/active_record_spec.rb +0 -48
  1514. data/spec/unit/indirector/queue_spec.rb +0 -115
  1515. data/spec/unit/indirector/resource/active_record_spec.rb +0 -166
  1516. data/spec/unit/indirector/resource/rest_spec.rb +0 -10
  1517. data/spec/unit/indirector/run/local_spec.rb +0 -21
  1518. data/spec/unit/indirector/run/rest_spec.rb +0 -10
  1519. data/spec/unit/network/authentication_spec.rb +0 -104
  1520. data/spec/unit/network/http/api/v2_spec.rb +0 -14
  1521. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +0 -160
  1522. data/spec/unit/parser/ast/astarray_spec.rb +0 -56
  1523. data/spec/unit/parser/ast/asthash_spec.rb +0 -98
  1524. data/spec/unit/parser/ast/boolean_operator_spec.rb +0 -54
  1525. data/spec/unit/parser/ast/casestatement_spec.rb +0 -168
  1526. data/spec/unit/parser/ast/collection_spec.rb +0 -70
  1527. data/spec/unit/parser/ast/collexpr_spec.rb +0 -120
  1528. data/spec/unit/parser/ast/comparison_operator_spec.rb +0 -118
  1529. data/spec/unit/parser/ast/definition_spec.rb +0 -21
  1530. data/spec/unit/parser/ast/function_spec.rb +0 -92
  1531. data/spec/unit/parser/ast/hostclass_spec.rb +0 -72
  1532. data/spec/unit/parser/ast/ifstatement_spec.rb +0 -77
  1533. data/spec/unit/parser/ast/in_operator_spec.rb +0 -61
  1534. data/spec/unit/parser/ast/match_operator_spec.rb +0 -51
  1535. data/spec/unit/parser/ast/minus_spec.rb +0 -37
  1536. data/spec/unit/parser/ast/node_spec.rb +0 -30
  1537. data/spec/unit/parser/ast/nop_spec.rb +0 -19
  1538. data/spec/unit/parser/ast/not_spec.rb +0 -31
  1539. data/spec/unit/parser/ast/relationship_spec.rb +0 -87
  1540. data/spec/unit/parser/ast/resource_defaults_spec.rb +0 -21
  1541. data/spec/unit/parser/ast/resource_override_spec.rb +0 -50
  1542. data/spec/unit/parser/ast/resource_reference_spec.rb +0 -56
  1543. data/spec/unit/parser/ast/resource_spec.rb +0 -183
  1544. data/spec/unit/parser/ast/resourceparam_spec.rb +0 -51
  1545. data/spec/unit/parser/ast/selector_spec.rb +0 -88
  1546. data/spec/unit/parser/ast/vardef_spec.rb +0 -68
  1547. data/spec/unit/parser/ast_spec.rb +0 -76
  1548. data/spec/unit/parser/collector_spec.rb +0 -438
  1549. data/spec/unit/parser/functions/extlookup_spec.rb +0 -102
  1550. data/spec/unit/parser/functions/search_spec.rb +0 -28
  1551. data/spec/unit/parser/lexer_spec.rb +0 -877
  1552. data/spec/unit/parser/parser_spec.rb +0 -535
  1553. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -19
  1554. data/spec/unit/pops/migration_spec.rb +0 -180
  1555. data/spec/unit/pops/model/ast_transformer_spec.rb +0 -76
  1556. data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +0 -243
  1557. data/spec/unit/pops/transformer/transform_calls_spec.rb +0 -115
  1558. data/spec/unit/pops/transformer/transform_conditionals_spec.rb +0 -123
  1559. data/spec/unit/pops/transformer/transform_containers_spec.rb +0 -190
  1560. data/spec/unit/pops/transformer/transformer_rspec_helper.rb +0 -27
  1561. data/spec/unit/pops/validation_spec.rb +0 -66
  1562. data/spec/unit/provider/package/msi_spec.rb +0 -229
  1563. data/spec/unit/rails/host_spec.rb +0 -162
  1564. data/spec/unit/rails/param_value_spec.rb +0 -46
  1565. data/spec/unit/rails/resource_spec.rb +0 -115
  1566. data/spec/unit/rails_spec.rb +0 -244
  1567. data/spec/unit/reports/rrdgraph_spec.rb +0 -29
  1568. data/spec/unit/reports/tagmail_spec.rb +0 -218
  1569. data/spec/unit/run_spec.rb +0 -175
  1570. data/spec/unit/util/cache_accumulator_spec.rb +0 -74
  1571. data/spec/unit/util/cacher_spec.rb +0 -107
  1572. data/spec/unit/util/inline_docs_spec.rb +0 -31
  1573. data/spec/unit/util/instrumentation/data_spec.rb +0 -46
  1574. data/spec/unit/util/instrumentation/indirection_probe_spec.rb +0 -21
  1575. data/spec/unit/util/instrumentation/instrumentable_spec.rb +0 -186
  1576. data/spec/unit/util/instrumentation/listener_spec.rb +0 -101
  1577. data/spec/unit/util/instrumentation/listeners/log_spec.rb +0 -34
  1578. data/spec/unit/util/instrumentation/listeners/performance_spec.rb +0 -36
  1579. data/spec/unit/util/instrumentation_spec.rb +0 -181
  1580. data/spec/unit/util/log/rate_limited_logger_spec.rb +0 -51
  1581. data/spec/unit/util/monkey_patches/lines_spec.rb +0 -83
  1582. data/spec/unit/util/queue/stomp_spec.rb +0 -137
  1583. data/spec/unit/util/queue_spec.rb +0 -94
  1584. data/spec/unit/util/rdoc/parser_spec.rb +0 -608
  1585. data/spec/unit/util/reference_serializer_spec.rb +0 -51
  1586. data/spec/unit/util/zaml_spec.rb +0 -308
@@ -20,7 +20,7 @@ describe Puppet::Type.type(:exec) do
20
20
  catalog.add_resource exec
21
21
  catalog.apply
22
22
 
23
- File.read(path).should == 'foo'
23
+ expect(File.read(path)).to eq('foo')
24
24
  end
25
25
 
26
26
  it "should not execute the command if onlyif returns non-zero" do
@@ -33,7 +33,7 @@ describe Puppet::Type.type(:exec) do
33
33
  catalog.add_resource exec
34
34
  catalog.apply
35
35
 
36
- Puppet::FileSystem.exist?(path).should be_false
36
+ expect(Puppet::FileSystem.exist?(path)).to be_falsey
37
37
  end
38
38
 
39
39
  it "should execute the command if onlyif returns zero" do
@@ -46,7 +46,7 @@ describe Puppet::Type.type(:exec) do
46
46
  catalog.add_resource exec
47
47
  catalog.apply
48
48
 
49
- File.read(path).should == 'foo'
49
+ expect(File.read(path)).to eq('foo')
50
50
  end
51
51
 
52
52
  it "should execute the command if unless returns non-zero" do
@@ -59,7 +59,7 @@ describe Puppet::Type.type(:exec) do
59
59
  catalog.add_resource exec
60
60
  catalog.apply
61
61
 
62
- File.read(path).should == 'foo'
62
+ expect(File.read(path)).to eq('foo')
63
63
  end
64
64
 
65
65
  it "should not execute the command if unless returns zero" do
@@ -72,6 +72,6 @@ describe Puppet::Type.type(:exec) do
72
72
  catalog.add_resource exec
73
73
  catalog.apply
74
74
 
75
- Puppet::FileSystem.exist?(path).should be_false
75
+ expect(Puppet::FileSystem.exist?(path)).to be_falsey
76
76
  end
77
77
  end
@@ -12,6 +12,7 @@ end
12
12
 
13
13
  describe Puppet::Type.type(:file), :uses_checksums => true do
14
14
  include PuppetSpec::Files
15
+ include_context 'with supported checksum types'
15
16
 
16
17
  let(:catalog) { Puppet::Resource::Catalog.new }
17
18
  let(:path) do
@@ -87,9 +88,9 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
87
88
  catalog.add_resource described_class.new :path => source, :mode => '0755'
88
89
 
89
90
  status = catalog.apply.report.resource_statuses["File[#{source}]"]
90
- status.should_not be_failed
91
- status.should_not be_changed
92
- Puppet::FileSystem.exist?(source).should be_false
91
+ expect(status).not_to be_failed
92
+ expect(status).not_to be_changed
93
+ expect(Puppet::FileSystem.exist?(source)).to be_falsey
93
94
  end
94
95
 
95
96
  describe "when ensure is absent" do
@@ -97,15 +98,15 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
97
98
  FileUtils.touch(path)
98
99
  catalog.add_resource(described_class.new(:path => path, :ensure => :absent, :backup => :false))
99
100
  report = catalog.apply.report
100
- report.resource_statuses["File[#{path}]"].should_not be_failed
101
- Puppet::FileSystem.exist?(path).should be_false
101
+ expect(report.resource_statuses["File[#{path}]"]).not_to be_failed
102
+ expect(Puppet::FileSystem.exist?(path)).to be_falsey
102
103
  end
103
104
 
104
105
  it "should do nothing if file is not present" do
105
106
  catalog.add_resource(described_class.new(:path => path, :ensure => :absent, :backup => :false))
106
107
  report = catalog.apply.report
107
- report.resource_statuses["File[#{path}]"].should_not be_failed
108
- Puppet::FileSystem.exist?(path).should be_false
108
+ expect(report.resource_statuses["File[#{path}]"]).not_to be_failed
109
+ expect(Puppet::FileSystem.exist?(path)).to be_falsey
109
110
  end
110
111
 
111
112
  # issue #14599
@@ -113,7 +114,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
113
114
  FileUtils.touch(path)
114
115
  catalog.add_resource(described_class.new(:path => File.join(path,'no_such_file'), :ensure => :absent, :backup => :false))
115
116
  report = catalog.apply.report
116
- report.resource_statuses["File[#{File.join(path,'no_such_file')}]"].should_not be_failed
117
+ expect(report.resource_statuses["File[#{File.join(path,'no_such_file')}]"]).not_to be_failed
117
118
  end
118
119
  end
119
120
 
@@ -129,7 +130,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
129
130
 
130
131
  catalog.apply
131
132
 
132
- get_owner(target).should == owner
133
+ expect(get_owner(target)).to eq(owner)
133
134
  end
134
135
 
135
136
  it "should set the group" do
@@ -143,7 +144,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
143
144
 
144
145
  catalog.apply
145
146
 
146
- get_group(target).should == group
147
+ expect(get_group(target)).to eq(group)
147
148
  end
148
149
 
149
150
  describe "when setting mode" do
@@ -151,11 +152,11 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
151
152
  let(:target) { tmpdir('dir_mode') }
152
153
 
153
154
  it "should set executable bits for newly created directories" do
154
- catalog.add_resource described_class.new(:path => target, :ensure => :directory, :mode => 0600)
155
+ catalog.add_resource described_class.new(:path => target, :ensure => :directory, :mode => '0600')
155
156
 
156
157
  catalog.apply
157
158
 
158
- (get_mode(target) & 07777).should == 0700
159
+ expect(get_mode(target) & 07777).to eq(0700)
159
160
  end
160
161
 
161
162
  it "should set executable bits for existing readable directories" do
@@ -164,16 +165,16 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
164
165
  catalog.add_resource described_class.new(:path => target, :ensure => :directory, :mode => '0644')
165
166
  catalog.apply
166
167
 
167
- (get_mode(target) & 07777).should == 0755
168
+ expect(get_mode(target) & 07777).to eq(0755)
168
169
  end
169
170
 
170
171
  it "should not set executable bits for unreadable directories" do
171
172
  begin
172
- catalog.add_resource described_class.new(:path => target, :ensure => :directory, :mode => 0300)
173
+ catalog.add_resource described_class.new(:path => target, :ensure => :directory, :mode => '0300')
173
174
 
174
175
  catalog.apply
175
176
 
176
- (get_mode(target) & 07777).should == 0300
177
+ expect(get_mode(target) & 07777).to eq(0300)
177
178
  ensure
178
179
  # so we can cleanup
179
180
  set_mode(0700, target)
@@ -181,31 +182,31 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
181
182
  end
182
183
 
183
184
  it "should set user, group, and other executable bits" do
184
- catalog.add_resource described_class.new(:path => target, :ensure => :directory, :mode => 0664)
185
+ catalog.add_resource described_class.new(:path => target, :ensure => :directory, :mode => '0664')
185
186
 
186
187
  catalog.apply
187
188
 
188
- (get_mode(target) & 07777).should == 0775
189
+ expect(get_mode(target) & 07777).to eq(0775)
189
190
  end
190
191
 
191
192
  it "should set executable bits when overwriting a non-executable file" do
192
193
  target_path = tmpfile_with_contents('executable', '')
193
194
  set_mode(0444, target_path)
194
195
 
195
- catalog.add_resource described_class.new(:path => target_path, :ensure => :directory, :mode => 0666, :backup => false)
196
+ catalog.add_resource described_class.new(:path => target_path, :ensure => :directory, :mode => '0666', :backup => false)
196
197
  catalog.apply
197
198
 
198
- (get_mode(target_path) & 07777).should == 0777
199
- File.should be_directory(target_path)
199
+ expect(get_mode(target_path) & 07777).to eq(0777)
200
+ expect(File).to be_directory(target_path)
200
201
  end
201
202
  end
202
203
 
203
204
  describe "for files" do
204
205
  it "should not set executable bits" do
205
- catalog.add_resource described_class.new(:path => path, :ensure => :file, :mode => 0666)
206
+ catalog.add_resource described_class.new(:path => path, :ensure => :file, :mode => '0666')
206
207
  catalog.apply
207
208
 
208
- (get_mode(path) & 07777).should == 0666
209
+ expect(get_mode(path) & 07777).to eq(0666)
209
210
  end
210
211
 
211
212
  it "should not set executable bits when replacing an executable directory (#10365)" do
@@ -217,7 +218,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
217
218
  catalog.add_resource described_class.new(:path => path, :ensure => :file, :mode => 0666, :backup => false, :force => true)
218
219
  catalog.apply
219
220
 
220
- (get_mode(path) & 07777).should == 0666
221
+ expect(get_mode(path) & 07777).to eq(0666)
221
222
  end
222
223
  end
223
224
 
@@ -235,7 +236,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
235
236
  end
236
237
 
237
238
  it "should not set the executable bit on the link nor the target" do
238
- catalog.add_resource described_class.new(:path => link, :ensure => :link, :mode => 0666, :target => link_target, :links => :manage)
239
+ catalog.add_resource described_class.new(:path => link, :ensure => :link, :mode => '0666', :target => link_target, :links => :manage)
239
240
 
240
241
  catalog.apply
241
242
 
@@ -246,10 +247,10 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
246
247
  it "should ignore dangling symlinks (#6856)" do
247
248
  File.delete(link_target)
248
249
 
249
- catalog.add_resource described_class.new(:path => link, :ensure => :link, :mode => 0666, :target => link_target, :links => :manage)
250
+ catalog.add_resource described_class.new(:path => link, :ensure => :link, :mode => '0666', :target => link_target, :links => :manage)
250
251
  catalog.apply
251
252
 
252
- Puppet::FileSystem.exist?(link).should be_false
253
+ expect(Puppet::FileSystem.exist?(link)).to be_falsey
253
254
  end
254
255
 
255
256
  it "should create a link to the target if ensure is omitted" do
@@ -257,9 +258,9 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
257
258
  catalog.add_resource described_class.new(:path => link, :target => link_target)
258
259
  catalog.apply
259
260
 
260
- Puppet::FileSystem.exist?(link).should be_true
261
- Puppet::FileSystem.lstat(link).ftype.should == 'link'
262
- Puppet::FileSystem.readlink(link).should == link_target
261
+ expect(Puppet::FileSystem.exist?(link)).to be_truthy
262
+ expect(Puppet::FileSystem.lstat(link).ftype).to eq('link')
263
+ expect(Puppet::FileSystem.readlink(link)).to eq(link_target)
263
264
  end
264
265
  end
265
266
 
@@ -271,7 +272,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
271
272
  Puppet::FileSystem.symlink(target, link)
272
273
  File.delete(target)
273
274
 
274
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0600, :links => :follow)
275
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0600', :links => :follow)
275
276
  catalog.apply
276
277
  end
277
278
 
@@ -290,21 +291,21 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
290
291
 
291
292
  describe "that is readable" do
292
293
  it "should set the executable bits when creating the destination (#10315)" do
293
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow)
294
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0666', :links => :follow)
294
295
  catalog.apply
295
296
 
296
- File.should be_directory(path)
297
- (get_mode(path) & 07777).should == 0777
297
+ expect(File).to be_directory(path)
298
+ expect(get_mode(path) & 07777).to eq(0777)
298
299
  end
299
300
 
300
301
  it "should set the executable bits when overwriting the destination (#10315)" do
301
302
  FileUtils.touch(path)
302
303
 
303
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow, :backup => false)
304
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0666', :links => :follow, :backup => false)
304
305
  catalog.apply
305
306
 
306
- File.should be_directory(path)
307
- (get_mode(path) & 07777).should == 0777
307
+ expect(File).to be_directory(path)
308
+ expect(get_mode(path) & 07777).to eq(0777)
308
309
  end
309
310
  end
310
311
 
@@ -319,21 +320,21 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
319
320
  end
320
321
 
321
322
  it "should set executable bits when creating the destination (#10315)" do
322
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow)
323
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0666', :links => :follow)
323
324
  catalog.apply
324
325
 
325
- File.should be_directory(path)
326
- (get_mode(path) & 07777).should == 0777
326
+ expect(File).to be_directory(path)
327
+ expect(get_mode(path) & 07777).to eq(0777)
327
328
  end
328
329
 
329
330
  it "should set executable bits when overwriting the destination" do
330
331
  FileUtils.touch(path)
331
332
 
332
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0666, :links => :follow, :backup => false)
333
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0666', :links => :follow, :backup => false)
333
334
  catalog.apply
334
335
 
335
- File.should be_directory(path)
336
- (get_mode(path) & 07777).should == 0777
336
+ expect(File).to be_directory(path)
337
+ expect(get_mode(path) & 07777).to eq(0777)
337
338
  end
338
339
  end
339
340
  end
@@ -348,21 +349,21 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
348
349
  end
349
350
 
350
351
  it "should create the file, not a symlink (#2817, #10315)" do
351
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0600, :links => :follow)
352
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0600', :links => :follow)
352
353
  catalog.apply
353
354
 
354
- File.should be_file(path)
355
- (get_mode(path) & 07777).should == 0600
355
+ expect(File).to be_file(path)
356
+ expect(get_mode(path) & 07777).to eq(0600)
356
357
  end
357
358
 
358
359
  it "should overwrite the file" do
359
360
  FileUtils.touch(path)
360
361
 
361
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0600, :links => :follow)
362
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0600', :links => :follow)
362
363
  catalog.apply
363
364
 
364
- File.should be_file(path)
365
- (get_mode(path) & 07777).should == 0600
365
+ expect(File).to be_file(path)
366
+ expect(get_mode(path) & 07777).to eq(0600)
366
367
  end
367
368
  end
368
369
 
@@ -384,21 +385,21 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
384
385
 
385
386
  describe "when following all links" do
386
387
  it "should create the destination and apply executable bits (#10315)" do
387
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0600, :links => :follow)
388
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0600', :links => :follow)
388
389
  catalog.apply
389
390
 
390
- File.should be_directory(path)
391
- (get_mode(path) & 07777).should == 0700
391
+ expect(File).to be_directory(path)
392
+ expect(get_mode(path) & 07777).to eq(0700)
392
393
  end
393
394
 
394
395
  it "should overwrite the destination and apply executable bits" do
395
396
  FileUtils.mkdir(path)
396
397
 
397
- catalog.add_resource described_class.new(:path => path, :source => link, :mode => 0600, :links => :follow)
398
+ catalog.add_resource described_class.new(:path => path, :source => link, :mode => '0600', :links => :follow)
398
399
  catalog.apply
399
400
 
400
- File.should be_directory(path)
401
- (get_mode(path) & 0111).should == 0100
401
+ expect(File).to be_directory(path)
402
+ expect(get_mode(path) & 0111).to eq(0100)
402
403
  end
403
404
  end
404
405
  end
@@ -408,24 +409,24 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
408
409
  end
409
410
 
410
411
  describe "when writing files" do
411
- with_digest_algorithms do
412
+ shared_examples "files are backed up" do |resource_options|
412
413
  it "should backup files to a filebucket when one is configured" do
413
414
  filebucket = Puppet::Type.type(:filebucket).new :path => tmpfile("filebucket"), :name => "mybucket"
414
- file = described_class.new :path => path, :backup => "mybucket", :content => "foo"
415
+ file = described_class.new({:path => path, :backup => "mybucket", :content => "foo"}.merge(resource_options))
415
416
  catalog.add_resource file
416
417
  catalog.add_resource filebucket
417
418
 
418
419
  File.open(file[:path], "w") { |f| f.write("bar") }
419
420
 
420
- d = digest(IO.binread(file[:path]))
421
+ d = filebucket_digest.call(IO.binread(file[:path]))
421
422
 
422
423
  catalog.apply
423
424
 
424
- filebucket.bucket.getfile(d).should == "bar"
425
+ expect(filebucket.bucket.getfile(d)).to eq("bar")
425
426
  end
426
427
 
427
428
  it "should backup files in the local directory when a backup string is provided" do
428
- file = described_class.new :path => path, :backup => ".bak", :content => "foo"
429
+ file = described_class.new({:path => path, :backup => ".bak", :content => "foo"}.merge(resource_options))
429
430
  catalog.add_resource file
430
431
 
431
432
  File.open(file[:path], "w") { |f| f.puts "bar" }
@@ -433,14 +434,14 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
433
434
  catalog.apply
434
435
 
435
436
  backup = file[:path] + ".bak"
436
- Puppet::FileSystem.exist?(backup).should be_true
437
- File.read(backup).should == "bar\n"
437
+ expect(Puppet::FileSystem.exist?(backup)).to be_truthy
438
+ expect(File.read(backup)).to eq("bar\n")
438
439
  end
439
440
 
440
441
  it "should fail if no backup can be performed" do
441
442
  dir = tmpdir("backups")
442
443
 
443
- file = described_class.new :path => File.join(dir, "testfile"), :backup => ".bak", :content => "foo"
444
+ file = described_class.new({:path => File.join(dir, "testfile"), :backup => ".bak", :content => "foo"}.merge(resource_options))
444
445
  catalog.add_resource file
445
446
 
446
447
  File.open(file[:path], 'w') { |f| f.puts "bar" }
@@ -452,7 +453,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
452
453
 
453
454
  catalog.apply
454
455
 
455
- File.read(file[:path]).should == "bar\n"
456
+ expect(File.read(file[:path])).to eq("bar\n")
456
457
  end
457
458
 
458
459
  it "should not backup symlinks", :if => described_class.defaultprovider.feature?(:manages_symlinks) do
@@ -460,23 +461,23 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
460
461
  dest1 = tmpfile("dest1")
461
462
  dest2 = tmpfile("dest2")
462
463
  bucket = Puppet::Type.type(:filebucket).new :path => tmpfile("filebucket"), :name => "mybucket"
463
- file = described_class.new :path => link, :target => dest2, :ensure => :link, :backup => "mybucket"
464
+ file = described_class.new({:path => link, :target => dest2, :ensure => :link, :backup => "mybucket"}.merge(resource_options))
464
465
  catalog.add_resource file
465
466
  catalog.add_resource bucket
466
467
 
467
468
  File.open(dest1, "w") { |f| f.puts "whatever" }
468
469
  Puppet::FileSystem.symlink(dest1, link)
469
470
 
470
- d = digest(File.read(file[:path]))
471
+ d = filebucket_digest.call(File.read(file[:path]))
471
472
 
472
473
  catalog.apply
473
474
 
474
- Puppet::FileSystem.readlink(link).should == dest2
475
- Puppet::FileSystem.exist?(bucket[:path]).should be_false
475
+ expect(Puppet::FileSystem.readlink(link)).to eq(dest2)
476
+ expect(Puppet::FileSystem.exist?(bucket[:path])).to be_falsey
476
477
  end
477
478
 
478
479
  it "should backup directories to the local filesystem by copying the whole directory" do
479
- file = described_class.new :path => path, :backup => ".bak", :content => "foo", :force => true
480
+ file = described_class.new({:path => path, :backup => ".bak", :content => "foo", :force => true}.merge(resource_options))
480
481
  catalog.add_resource file
481
482
 
482
483
  Dir.mkdir(path)
@@ -487,14 +488,14 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
487
488
  catalog.apply
488
489
 
489
490
  backup = "#{path}.bak"
490
- FileTest.should be_directory(backup)
491
+ expect(FileTest).to be_directory(backup)
491
492
 
492
- File.read(File.join(backup, "foo")).should == "yay"
493
+ expect(File.read(File.join(backup, "foo"))).to eq("yay")
493
494
  end
494
495
 
495
496
  it "should backup directories to filebuckets by backing up each file separately" do
496
497
  bucket = Puppet::Type.type(:filebucket).new :path => tmpfile("filebucket"), :name => "mybucket"
497
- file = described_class.new :path => tmpfile("bucket_backs"), :backup => "mybucket", :content => "foo", :force => true
498
+ file = described_class.new({:path => tmpfile("bucket_backs"), :backup => "mybucket", :content => "foo", :force => true}.merge(resource_options))
498
499
  catalog.add_resource file
499
500
  catalog.add_resource bucket
500
501
 
@@ -505,13 +506,28 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
505
506
  File.open(barfile, "w") { |f| f.print "baryay" }
506
507
 
507
508
 
508
- food = digest(File.read(foofile))
509
- bard = digest(File.read(barfile))
509
+ food = filebucket_digest.call(File.read(foofile))
510
+ bard = filebucket_digest.call(File.read(barfile))
510
511
 
511
512
  catalog.apply
512
513
 
513
- bucket.bucket.getfile(food).should == "fooyay"
514
- bucket.bucket.getfile(bard).should == "baryay"
514
+ expect(bucket.bucket.getfile(food)).to eq("fooyay")
515
+ expect(bucket.bucket.getfile(bard)).to eq("baryay")
516
+ end
517
+ end
518
+
519
+ with_digest_algorithms do
520
+ it_should_behave_like "files are backed up", {} do
521
+ let(:filebucket_digest) { method(:digest) }
522
+ end
523
+ end
524
+
525
+ CHECKSUM_TYPES_TO_TRY.each do |checksum_type, checksum|
526
+ describe "when checksum_type is #{checksum_type}" do
527
+ # FileBucket uses the globally configured default for lookup by digest, which right now is MD5.
528
+ it_should_behave_like "files are backed up", {:checksum => checksum_type} do
529
+ let(:filebucket_digest) { Proc.new {|x| Puppet::Util::Checksums.md5(x)} }
530
+ end
515
531
  end
516
532
  end
517
533
  end
@@ -542,14 +558,14 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
542
558
  it "should be able to recurse over a nonexistent file" do
543
559
  @file = described_class.new(
544
560
  :name => path,
545
- :mode => 0644,
561
+ :mode => '0644',
546
562
  :recurse => true,
547
563
  :backup => false
548
564
  )
549
565
 
550
566
  catalog.add_resource @file
551
567
 
552
- lambda { @file.eval_generate }.should_not raise_error
568
+ expect { @file.eval_generate }.not_to raise_error
553
569
  end
554
570
 
555
571
  it "should be able to recursively set properties on existing files" do
@@ -559,7 +575,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
559
575
 
560
576
  file = described_class.new(
561
577
  :name => path,
562
- :mode => 0644,
578
+ :mode => '0644',
563
579
  :recurse => true,
564
580
  :backup => false
565
581
  )
@@ -568,14 +584,14 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
568
584
 
569
585
  catalog.apply
570
586
 
571
- @dirs.should_not be_empty
587
+ expect(@dirs).not_to be_empty
572
588
  @dirs.each do |path|
573
- (get_mode(path) & 007777).should == 0755
589
+ expect(get_mode(path) & 007777).to eq(0755)
574
590
  end
575
591
 
576
- @files.should_not be_empty
592
+ expect(@files).not_to be_empty
577
593
  @files.each do |path|
578
- (get_mode(path) & 007777).should == 0644
594
+ expect(get_mode(path) & 007777).to eq(0644)
579
595
  end
580
596
  end
581
597
 
@@ -595,13 +611,13 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
595
611
  @dirs.each do |path|
596
612
  link_path = path.sub(source, dest)
597
613
 
598
- Puppet::FileSystem.lstat(link_path).should be_directory
614
+ expect(Puppet::FileSystem.lstat(link_path)).to be_directory
599
615
  end
600
616
 
601
617
  @files.each do |path|
602
618
  link_path = path.sub(source, dest)
603
619
 
604
- Puppet::FileSystem.lstat(link_path).ftype.should == "link"
620
+ expect(Puppet::FileSystem.lstat(link_path).ftype).to eq("link")
605
621
  end
606
622
  end
607
623
 
@@ -621,13 +637,13 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
621
637
  @dirs.each do |path|
622
638
  newpath = path.sub(source, dest)
623
639
 
624
- Puppet::FileSystem.lstat(newpath).should be_directory
640
+ expect(Puppet::FileSystem.lstat(newpath)).to be_directory
625
641
  end
626
642
 
627
643
  @files.each do |path|
628
644
  newpath = path.sub(source, dest)
629
645
 
630
- Puppet::FileSystem.lstat(newpath).ftype.should == "file"
646
+ expect(Puppet::FileSystem.lstat(newpath).ftype).to eq("file")
631
647
  end
632
648
  end
633
649
 
@@ -648,27 +664,79 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
648
664
 
649
665
  catalog.apply
650
666
 
651
- (get_mode(file) & 007777).should == 0644
667
+ expect(get_mode(file) & 007777).to eq(0644)
652
668
  end
653
669
 
654
670
  it "should recursively manage files even if there is an explicit file whose name is a prefix of the managed file" do
655
671
  managed = File.join(path, "file")
656
672
  generated = File.join(path, "file_with_a_name_starting_with_the_word_file")
657
- managed_mode = 0700
658
673
 
659
674
  FileUtils.mkdir_p(path)
660
675
  FileUtils.touch(managed)
661
676
  FileUtils.touch(generated)
662
677
 
663
- catalog.add_resource described_class.new(:name => path, :recurse => true, :backup => false, :mode => managed_mode)
678
+ catalog.add_resource described_class.new(:name => path, :recurse => true, :backup => false, :mode => '0700')
664
679
  catalog.add_resource described_class.new(:name => managed, :recurse => true, :backup => false, :mode => "644")
665
680
 
666
681
  catalog.apply
667
682
 
668
- (get_mode(generated) & 007777).should == managed_mode
683
+ expect(get_mode(generated) & 007777).to eq(0700)
669
684
  end
670
685
 
671
686
  describe "when recursing remote directories" do
687
+ describe "for the 2nd time" do
688
+ with_checksum_types "one", "x" do
689
+ let(:target_file) { File.join(path, 'x') }
690
+ let(:second_catalog) { Puppet::Resource::Catalog.new }
691
+ before(:each) do
692
+ @options = {
693
+ :path => path,
694
+ :ensure => :directory,
695
+ :backup => false,
696
+ :recurse => true,
697
+ :checksum => checksum_type,
698
+ :source => env_path
699
+ }
700
+ end
701
+
702
+ it "should not update the target directory" do
703
+ # Ensure the test believes the source file was written in the past.
704
+ FileUtils.touch checksum_file, :mtime => Time.now - 20
705
+ catalog.add_resource Puppet::Type.send(:newfile, @options)
706
+ catalog.apply
707
+ expect(File).to be_directory(path)
708
+ expect(Puppet::FileSystem.exist?(target_file)).to be_truthy
709
+
710
+ # The 2nd time the resource should not change.
711
+ second_catalog.add_resource Puppet::Type.send(:newfile, @options)
712
+ result = second_catalog.apply
713
+ status = result.report.resource_statuses["File[#{target_file}]"]
714
+ expect(status).not_to be_failed
715
+ expect(status).not_to be_changed
716
+ end
717
+
718
+ it "should update the target directory if contents change" do
719
+ pending "a way to appropriately mock ctime checks for a particular file" if checksum_type == 'ctime'
720
+
721
+ catalog.add_resource Puppet::Type.send(:newfile, @options)
722
+ catalog.apply
723
+ expect(File).to be_directory(path)
724
+ expect(Puppet::FileSystem.exist?(target_file)).to be_truthy
725
+
726
+ # Change the source file.
727
+ File.open(checksum_file, "wb") { |f| f.write "some content" }
728
+ FileUtils.touch target_file, :mtime => Time.now - 20
729
+
730
+ # The 2nd time should update the resource.
731
+ second_catalog.add_resource Puppet::Type.send(:newfile, @options)
732
+ result = second_catalog.apply
733
+ status = result.report.resource_statuses["File[#{target_file}]"]
734
+ expect(status).not_to be_failed
735
+ expect(status).to be_changed
736
+ end
737
+ end
738
+ end
739
+
672
740
  describe "when sourceselect first" do
673
741
  describe "for a directory" do
674
742
  it "should recursively copy the first directory that exists" do
@@ -689,9 +757,9 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
689
757
 
690
758
  catalog.apply
691
759
 
692
- File.should be_directory(path)
693
- Puppet::FileSystem.exist?(File.join(path, 'one')).should be_false
694
- Puppet::FileSystem.exist?(File.join(path, 'three', 'four')).should be_true
760
+ expect(File).to be_directory(path)
761
+ expect(Puppet::FileSystem.exist?(File.join(path, 'one'))).to be_falsey
762
+ expect(Puppet::FileSystem.exist?(File.join(path, 'three', 'four'))).to be_truthy
695
763
  end
696
764
 
697
765
  it "should recursively copy an empty directory" do
@@ -711,8 +779,8 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
711
779
 
712
780
  catalog.apply
713
781
 
714
- File.should be_directory(path)
715
- Puppet::FileSystem.exist?(File.join(path, 'a')).should be_false
782
+ expect(File).to be_directory(path)
783
+ expect(Puppet::FileSystem.exist?(File.join(path, 'a'))).to be_falsey
716
784
  end
717
785
 
718
786
  it "should only recurse one level" do
@@ -736,9 +804,9 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
736
804
 
737
805
  catalog.apply
738
806
 
739
- Puppet::FileSystem.exist?(File.join(path, 'a')).should be_true
740
- Puppet::FileSystem.exist?(File.join(path, 'a', 'b')).should be_false
741
- Puppet::FileSystem.exist?(File.join(path, 'z')).should be_false
807
+ expect(Puppet::FileSystem.exist?(File.join(path, 'a'))).to be_truthy
808
+ expect(Puppet::FileSystem.exist?(File.join(path, 'a', 'b'))).to be_falsey
809
+ expect(Puppet::FileSystem.exist?(File.join(path, 'z'))).to be_falsey
742
810
  end
743
811
  end
744
812
 
@@ -758,7 +826,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
758
826
 
759
827
  catalog.apply
760
828
 
761
- File.read(path).should == 'yay'
829
+ expect(File.read(path)).to eq('yay')
762
830
  end
763
831
 
764
832
  it "should copy an empty file" do
@@ -776,7 +844,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
776
844
 
777
845
  catalog.apply
778
846
 
779
- File.read(path).should == ''
847
+ expect(File.read(path)).to eq('')
780
848
  end
781
849
  end
782
850
  end
@@ -808,9 +876,9 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
808
876
  catalog.add_resource obj
809
877
  catalog.apply
810
878
 
811
- File.read(File.join(dest, 'a')).should == one
812
- File.read(File.join(dest, 'b')).should == two
813
- File.read(File.join(dest, 'c')).should == three
879
+ expect(File.read(File.join(dest, 'a'))).to eq(one)
880
+ expect(File.read(File.join(dest, 'b'))).to eq(two)
881
+ expect(File.read(File.join(dest, 'c'))).to eq(three)
814
882
  end
815
883
 
816
884
  it "should only recurse one level from each valid source" do
@@ -835,10 +903,10 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
835
903
  catalog.add_resource obj
836
904
  catalog.apply
837
905
 
838
- Puppet::FileSystem.exist?(File.join(path, 'a')).should be_true
839
- Puppet::FileSystem.exist?(File.join(path, 'a', 'b')).should be_false
840
- Puppet::FileSystem.exist?(File.join(path, 'z')).should be_true
841
- Puppet::FileSystem.exist?(File.join(path, 'z', 'y')).should be_false
906
+ expect(Puppet::FileSystem.exist?(File.join(path, 'a'))).to be_truthy
907
+ expect(Puppet::FileSystem.exist?(File.join(path, 'a', 'b'))).to be_falsey
908
+ expect(Puppet::FileSystem.exist?(File.join(path, 'z'))).to be_truthy
909
+ expect(Puppet::FileSystem.exist?(File.join(path, 'z', 'y'))).to be_falsey
842
910
  end
843
911
  end
844
912
  end
@@ -864,18 +932,18 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
864
932
 
865
933
  it "should add each generated resource to the catalog" do
866
934
  catalog.apply do |trans|
867
- catalog.resource(:file, File.join(path, "one")).must be_a(described_class)
868
- catalog.resource(:file, File.join(path, "two")).must be_a(described_class)
935
+ expect(catalog.resource(:file, File.join(path, "one"))).to be_a(described_class)
936
+ expect(catalog.resource(:file, File.join(path, "two"))).to be_a(described_class)
869
937
  end
870
938
  end
871
939
 
872
940
  it "should have an edge to each resource in the relationship graph" do
873
941
  catalog.apply do |trans|
874
942
  one = catalog.resource(:file, File.join(path, "one"))
875
- catalog.relationship_graph.should be_edge(@file, one)
943
+ expect(catalog.relationship_graph).to be_edge(@file, one)
876
944
 
877
945
  two = catalog.resource(:file, File.join(path, "two"))
878
- catalog.relationship_graph.should be_edge(@file, two)
946
+ expect(catalog.relationship_graph).to be_edge(@file, two)
879
947
  end
880
948
  end
881
949
  end
@@ -888,22 +956,17 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
888
956
 
889
957
  catalog.apply
890
958
 
891
- File.read(dest).should == "foo"
959
+ expect(File.read(dest)).to eq("foo")
892
960
  end
893
961
 
894
962
  it "should be able to copy files with spaces in their names" do
895
963
  dest = tmpfile("destwith spaces")
896
964
  source = tmpfile_with_contents("filewith spaces", "foo")
897
-
898
- expected_mode = 0755
899
- Puppet::FileSystem.chmod(expected_mode, source)
900
-
901
965
  catalog.add_resource described_class.new(:path => dest, :source => source)
902
966
 
903
967
  catalog.apply
904
968
 
905
- File.read(dest).should == "foo"
906
- (Puppet::FileSystem.stat(dest).mode & 007777).should == expected_mode
969
+ expect(File.read(dest)).to eq("foo")
907
970
  end
908
971
 
909
972
  it "should be able to copy individual files even if recurse has been specified" do
@@ -913,32 +976,38 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
913
976
 
914
977
  catalog.apply
915
978
 
916
- File.read(dest).should == "foo"
979
+ expect(File.read(dest)).to eq("foo")
917
980
  end
918
981
  end
919
982
 
920
- it "should create a file with content if ensure is omitted" do
921
- catalog.add_resource described_class.new(
922
- :path => path,
923
- :content => "this is some content, yo"
924
- )
925
-
926
- catalog.apply
927
-
928
- File.read(path).should == "this is some content, yo"
929
- end
983
+ CHECKSUM_TYPES_TO_TRY.each do |checksum_type, checksum|
984
+ before(:each) do
985
+ @options = {:path => path, :content => "this is some content, yo", :checksum => checksum_type}
986
+ end
987
+ it "should create a file with content if ensure is omitted" do
988
+ catalog.add_resource described_class.send(:new, @options)
989
+ catalog.apply
990
+ expect(File.read(path)).to eq("this is some content, yo")
930
991
 
931
- it "should create files with content if both content and ensure are set" do
932
- file = described_class.new(
933
- :path => path,
934
- :ensure => "file",
935
- :content => "this is some content, yo"
936
- )
992
+ second_catalog = Puppet::Resource::Catalog.new
993
+ second_catalog.add_resource described_class.send(:new, @options)
994
+ status = second_catalog.apply.report.resource_statuses["File[#{path}]"]
995
+ expect(status).not_to be_failed
996
+ expect(status).not_to be_changed
997
+ end
937
998
 
938
- catalog.add_resource file
939
- catalog.apply
999
+ it "should create files with content if both content and ensure are set" do
1000
+ @options[:ensure] = "file"
1001
+ catalog.add_resource described_class.send(:new, @options)
1002
+ catalog.apply
1003
+ expect(File.read(path)).to eq("this is some content, yo")
940
1004
 
941
- File.read(path).should == "this is some content, yo"
1005
+ second_catalog = Puppet::Resource::Catalog.new
1006
+ second_catalog.add_resource described_class.send(:new, @options)
1007
+ status = second_catalog.apply.report.resource_statuses["File[#{path}]"]
1008
+ expect(status).not_to be_failed
1009
+ expect(status).not_to be_changed
1010
+ end
942
1011
  end
943
1012
 
944
1013
  it "should delete files with sources but that are set for deletion" do
@@ -955,57 +1024,65 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
955
1024
  catalog.add_resource file
956
1025
  catalog.apply
957
1026
 
958
- Puppet::FileSystem.exist?(dest).should be_false
1027
+ expect(Puppet::FileSystem.exist?(dest)).to be_falsey
959
1028
  end
960
1029
 
961
1030
  describe "when sourcing" do
962
- let(:source) { tmpfile_with_contents("source_default_values", "yay") }
963
-
964
- it "should apply the source metadata values" do
965
- set_mode(0770, source)
966
-
967
- file = described_class.new(
968
- :path => path,
969
- :ensure => :file,
970
- :source => source,
971
- :backup => false
972
- )
973
-
974
- catalog.add_resource file
975
- catalog.apply
1031
+ with_checksum_types "source", "default_values" do
1032
+ before(:each) do
1033
+ set_mode(0770, checksum_file)
1034
+ @options = {
1035
+ :path => path,
1036
+ :ensure => :file,
1037
+ :source => checksum_file,
1038
+ :checksum => checksum_type,
1039
+ :backup => false
1040
+ }
1041
+ end
1042
+ describe "on POSIX systems", :if => Puppet.features.posix? do
1043
+ it "should apply the source metadata values" do
1044
+ @options[:source_permissions] = :use
976
1045
 
977
- get_owner(path).should == get_owner(source)
978
- get_group(path).should == get_group(source)
979
- (get_mode(path) & 07777).should == 0770
980
- end
1046
+ catalog.add_resource described_class.send(:new, @options)
1047
+ catalog.apply
1048
+ expect(get_owner(path)).to eq(get_owner(checksum_file))
1049
+ expect(get_group(path)).to eq(get_group(checksum_file))
1050
+ expect(get_mode(path) & 07777).to eq(0770)
1051
+
1052
+ second_catalog = Puppet::Resource::Catalog.new
1053
+ second_catalog.add_resource described_class.send(:new, @options)
1054
+ status = second_catalog.apply.report.resource_statuses["File[#{path}]"]
1055
+ expect(status).not_to be_failed
1056
+ expect(status).not_to be_changed
1057
+ end
1058
+ end
981
1059
 
982
- it "should override the default metadata values" do
983
- set_mode(0770, source)
1060
+ it "should override the default metadata values" do
1061
+ @options[:mode] = '0440'
984
1062
 
985
- file = described_class.new(
986
- :path => path,
987
- :ensure => :file,
988
- :source => source,
989
- :backup => false,
990
- :mode => 0440
991
- )
992
-
993
- catalog.add_resource file
994
- catalog.apply
1063
+ catalog.add_resource described_class.send(:new, @options)
1064
+ catalog.apply
1065
+ expect(get_mode(path) & 07777).to eq(0440)
995
1066
 
996
- (get_mode(path) & 07777).should == 0440
1067
+ second_catalog = Puppet::Resource::Catalog.new
1068
+ second_catalog.add_resource described_class.send(:new, @options)
1069
+ status = second_catalog.apply.report.resource_statuses["File[#{path}]"]
1070
+ expect(status).not_to be_failed
1071
+ expect(status).not_to be_changed
1072
+ end
997
1073
  end
998
1074
 
1075
+ let(:source) { tmpfile_with_contents("source_default_values", "yay") }
999
1076
  describe "on Windows systems", :if => Puppet.features.microsoft_windows? do
1000
1077
  def expects_sid_granted_full_access_explicitly(path, sid)
1001
1078
  inherited_ace = Puppet::Util::Windows::AccessControlEntry::INHERITED_ACE
1002
1079
 
1003
1080
  aces = get_aces_for_path_by_sid(path, sid)
1004
- aces.should_not be_empty
1081
+ expect(aces).not_to be_empty
1005
1082
 
1006
1083
  aces.each do |ace|
1007
- ace.mask.should == Puppet::Util::Windows::File::FILE_ALL_ACCESS
1008
- (ace.flags & inherited_ace).should_not == inherited_ace
1084
+ expect(ace.mask).to eq(Puppet::Util::Windows::File::FILE_ALL_ACCESS)
1085
+ expect(ace.flags & inherited_ace).not_to eq(inherited_ace)
1009
1086
  end
1010
1087
  end
1011
1088
 
@@ -1017,42 +1094,24 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1017
1094
  inherited_ace = Puppet::Util::Windows::AccessControlEntry::INHERITED_ACE
1018
1095
 
1019
1096
  aces = get_aces_for_path_by_sid(path, sid)
1020
- aces.should_not be_empty
1097
+ expect(aces).not_to be_empty
1021
1098
 
1022
- aces.any? do |ace|
1099
+ expect(aces.any? do |ace|
1023
1100
  ace.mask == Puppet::Util::Windows::File::FILE_ALL_ACCESS &&
1024
1101
  (ace.flags & inherited_ace) == inherited_ace
1025
- end.should be_true
1102
+ end).to be_truthy
1026
1103
  end
1027
1104
 
1028
1105
  def expects_at_least_one_inherited_system_ace_grants_full_access(path)
1029
1106
  expects_at_least_one_inherited_ace_grants_full_access(path, @sids[:system])
1030
1107
  end
1031
1108
 
1032
- it "should provide valid default values when ACLs are not supported" do
1033
- Puppet::Util::Windows::Security.stubs(:supports_acl?).returns(false)
1034
- Puppet::Util::Windows::Security.stubs(:supports_acl?).with(source).returns false
1035
-
1036
- file = described_class.new(
1037
- :path => path,
1038
- :ensure => :file,
1039
- :source => source,
1040
- :backup => false
1041
- )
1042
-
1043
- catalog.add_resource file
1044
- catalog.apply
1045
-
1046
- get_owner(path).should =~ /^S\-1\-5\-.*$/
1047
- get_group(path).should =~ /^S\-1\-0\-0.*$/
1048
- get_mode(path).should == 0644
1049
- end
1050
-
1051
1109
  describe "when processing SYSTEM ACEs" do
1052
1110
  before do
1053
1111
  @sids = {
1054
1112
  :current_user => Puppet::Util::Windows::SID.name_to_sid(Puppet::Util::Windows::ADSI::User.current_user_name),
1055
1113
  :system => Win32::Security::SID::LocalSystem,
1114
+ :admin => Puppet::Util::Windows::SID.name_to_sid("Administrator"),
1056
1115
  :guest => Puppet::Util::Windows::SID.name_to_sid("Guest"),
1057
1116
  :users => Win32::Security::SID::BuiltinUsers,
1058
1117
  :power_users => Win32::Security::SID::PowerUsers,
@@ -1071,55 +1130,26 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1071
1130
  catalog.add_resource @file
1072
1131
  end
1073
1132
 
1074
- describe "when source permissions are ignored" do
1075
- before :each do
1076
- @file[:source_permissions] = :ignore
1077
- end
1078
-
1079
- it "preserves the inherited SYSTEM ACE" do
1080
- catalog.apply
1081
-
1082
- expects_at_least_one_inherited_system_ace_grants_full_access(path)
1083
- end
1084
- end
1085
-
1086
- describe "when permissions are insync?" do
1087
- it "preserves the explicit SYSTEM ACE" do
1088
- FileUtils.touch(path)
1089
-
1090
- sd = Puppet::Util::Windows::Security.get_security_descriptor(path)
1091
- sd.protect = true
1092
- sd.owner = @sids[:none]
1093
- sd.group = @sids[:none]
1094
- Puppet::Util::Windows::Security.set_security_descriptor(source, sd)
1095
- Puppet::Util::Windows::Security.set_security_descriptor(path, sd)
1096
-
1097
- catalog.apply
1098
-
1099
- expects_system_granted_full_access_explicitly(path)
1100
- end
1101
- end
1102
-
1103
1133
  describe "when permissions are not insync?" do
1104
1134
  before :each do
1105
1135
  @file[:owner] = 'None'
1106
1136
  @file[:group] = 'None'
1107
1137
  end
1108
1138
 
1109
- it "replaces inherited SYSTEM ACEs with an uninherited one for an existing file" do
1139
+ it "preserves the inherited SYSTEM ACE for an existing file" do
1110
1140
  FileUtils.touch(path)
1111
1141
 
1112
1142
  expects_at_least_one_inherited_system_ace_grants_full_access(path)
1113
1143
 
1114
1144
  catalog.apply
1115
1145
 
1116
- expects_system_granted_full_access_explicitly(path)
1146
+ expects_at_least_one_inherited_system_ace_grants_full_access(path)
1117
1147
  end
1118
1148
 
1119
- it "replaces inherited SYSTEM ACEs for a new file with an uninherited one" do
1149
+ it "applies the inherited SYSTEM ACEs for a new file" do
1120
1150
  catalog.apply
1121
1151
 
1122
- expects_system_granted_full_access_explicitly(path)
1152
+ expects_at_least_one_inherited_system_ace_grants_full_access(path)
1123
1153
  end
1124
1154
  end
1125
1155
 
@@ -1127,17 +1157,17 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1127
1157
  before :each do
1128
1158
  @file[:owner] = @sids[:users]
1129
1159
  @file[:group] = @sids[:system]
1130
- @file[:mode] = 0644
1160
+ @file[:mode] = '0644'
1131
1161
 
1132
1162
  catalog.apply
1133
1163
  end
1134
1164
 
1135
1165
  it "should allow the user to explicitly set the mode to 4" do
1136
1166
  system_aces = get_aces_for_path_by_sid(path, @sids[:system])
1137
- system_aces.should_not be_empty
1167
+ expect(system_aces).not_to be_empty
1138
1168
 
1139
1169
  system_aces.each do |ace|
1140
- ace.mask.should == Puppet::Util::Windows::File::FILE_GENERIC_READ
1170
+ expect(ace.mask).to eq(Puppet::Util::Windows::File::FILE_GENERIC_READ)
1141
1171
  end
1142
1172
  end
1143
1173
 
@@ -1146,7 +1176,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1146
1176
  catalog.apply
1147
1177
 
1148
1178
  system_aces = get_aces_for_path_by_sid(path, @sids[:system])
1149
- system_aces.size.should == 1
1179
+ expect(system_aces.size).to eq(1)
1150
1180
  end
1151
1181
  end
1152
1182
 
@@ -1188,77 +1218,44 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1188
1218
  grant_everyone_full_access(dir)
1189
1219
  end
1190
1220
 
1191
- describe "when source permissions are ignored" do
1192
- before :each do
1193
- @directory[:source_permissions] = :ignore
1194
- end
1195
-
1196
- it "preserves the inherited SYSTEM ACE" do
1197
- catalog.apply
1198
-
1199
- expects_at_least_one_inherited_system_ace_grants_full_access(dir)
1200
- end
1201
- end
1202
-
1203
- describe "when permissions are insync?" do
1204
- it "preserves the explicit SYSTEM ACE" do
1205
- Dir.mkdir(dir)
1206
-
1207
- source_dir = tmpdir('source_dir')
1208
- @directory[:source] = source_dir
1209
-
1210
- sd = Puppet::Util::Windows::Security.get_security_descriptor(source_dir)
1211
- sd.protect = true
1212
- sd.owner = @sids[:none]
1213
- sd.group = @sids[:none]
1214
- Puppet::Util::Windows::Security.set_security_descriptor(source_dir, sd)
1215
- Puppet::Util::Windows::Security.set_security_descriptor(dir, sd)
1216
-
1217
- catalog.apply
1218
-
1219
- expects_system_granted_full_access_explicitly(dir)
1220
- end
1221
- end
1222
-
1223
1221
  describe "when permissions are not insync?" do
1224
1222
  before :each do
1225
1223
  @directory[:owner] = 'None'
1226
1224
  @directory[:group] = 'None'
1227
- @directory[:mode] = 0444
1228
1225
  end
1229
1226
 
1230
- it "replaces inherited SYSTEM ACEs with an uninherited one for an existing directory" do
1227
+ it "preserves the inherited SYSTEM ACEs for an existing directory" do
1231
1228
  FileUtils.mkdir(dir)
1232
1229
 
1233
1230
  expects_at_least_one_inherited_system_ace_grants_full_access(dir)
1234
1231
 
1235
1232
  catalog.apply
1236
1233
 
1237
- expects_system_granted_full_access_explicitly(dir)
1234
+ expects_at_least_one_inherited_system_ace_grants_full_access(dir)
1238
1235
  end
1239
1236
 
1240
- it "replaces inherited SYSTEM ACEs with an uninherited one for an existing directory" do
1237
+ it "applies the inherited SYSTEM ACEs for a new directory" do
1241
1238
  catalog.apply
1242
1239
 
1243
- expects_system_granted_full_access_explicitly(dir)
1240
+ expects_at_least_one_inherited_system_ace_grants_full_access(dir)
1244
1241
  end
1245
1242
 
1246
1243
  describe "created with SYSTEM as the group" do
1247
1244
  before :each do
1248
1245
  @directory[:owner] = @sids[:users]
1249
1246
  @directory[:group] = @sids[:system]
1250
- @directory[:mode] = 0644
1247
+ @directory[:mode] = '0644'
1251
1248
 
1252
1249
  catalog.apply
1253
1250
  end
1254
1251
 
1255
1252
  it "should allow the user to explicitly set the mode to 4" do
1256
1253
  system_aces = get_aces_for_path_by_sid(dir, @sids[:system])
1257
- system_aces.should_not be_empty
1254
+ expect(system_aces).not_to be_empty
1258
1255
 
1259
1256
  system_aces.each do |ace|
1260
1257
  # unlike files, Puppet sets execute bit on directories that are readable
1261
- ace.mask.should == Puppet::Util::Windows::File::FILE_GENERIC_READ | Puppet::Util::Windows::File::FILE_GENERIC_EXECUTE
1258
+ expect(ace.mask).to eq(Puppet::Util::Windows::File::FILE_GENERIC_READ | Puppet::Util::Windows::File::FILE_GENERIC_EXECUTE)
1262
1259
  end
1263
1260
  end
1264
1261
 
@@ -1267,7 +1264,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1267
1264
  catalog.apply
1268
1265
 
1269
1266
  system_aces = get_aces_for_path_by_sid(dir, @sids[:system])
1270
- system_aces.size.should == 1
1267
+ expect(system_aces.size).to eq(1)
1271
1268
  end
1272
1269
  end
1273
1270
 
@@ -1327,15 +1324,15 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1327
1324
  end
1328
1325
 
1329
1326
  it "should still copy remote files" do
1330
- File.read(@copiedfile).should == 'funtest'
1327
+ expect(File.read(@copiedfile)).to eq('funtest')
1331
1328
  end
1332
1329
 
1333
1330
  it "should not purge managed, local files" do
1334
- File.read(@localfile).should == 'rahtest'
1331
+ expect(File.read(@localfile)).to eq('rahtest')
1335
1332
  end
1336
1333
 
1337
1334
  it "should purge files that are neither remote nor otherwise managed" do
1338
- Puppet::FileSystem.exist?(@purgee).should be_false
1335
+ expect(Puppet::FileSystem.exist?(@purgee)).to be_falsey
1339
1336
  end
1340
1337
  end
1341
1338
 
@@ -1344,16 +1341,16 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
1344
1341
  catalog.add_resource(described_class.new(:path => path, :content => "foo", :validate_cmd => "/usr/bin/env false"))
1345
1342
  Puppet::Util::Execution.expects(:execute).with("/usr/bin/env false", {:combine => true, :failonfail => true}).raises(Puppet::ExecutionFailure, "Failed")
1346
1343
  report = catalog.apply.report
1347
- report.resource_statuses["File[#{path}]"].should be_failed
1348
- Puppet::FileSystem.exist?(path).should be_false
1344
+ expect(report.resource_statuses["File[#{path}]"]).to be_failed
1345
+ expect(Puppet::FileSystem.exist?(path)).to be_falsey
1349
1346
  end
1350
1347
 
1351
1348
  it "should succeed the file resource if command succeeds" do
1352
1349
  catalog.add_resource(described_class.new(:path => path, :content => "foo", :validate_cmd => "/usr/bin/env true"))
1353
1350
  Puppet::Util::Execution.expects(:execute).with("/usr/bin/env true", {:combine => true, :failonfail => true}).returns ''
1354
1351
  report = catalog.apply.report
1355
- report.resource_statuses["File[#{path}]"].should_not be_failed
1356
- Puppet::FileSystem.exist?(path).should be_true
1352
+ expect(report.resource_statuses["File[#{path}]"]).not_to be_failed
1353
+ expect(Puppet::FileSystem.exist?(path)).to be_truthy
1357
1354
  end
1358
1355
  end
1359
1356