puppet 5.5.22 → 6.0.0

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

Potentially problematic release.


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

Files changed (1407) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +46 -72
  3. data/Gemfile.lock +86 -102
  4. data/MAINTAINERS +47 -0
  5. data/Rakefile +15 -19
  6. data/ext/build_defaults.yaml +0 -1
  7. data/ext/cert_inspector +3 -3
  8. data/ext/debian/copyright +0 -22
  9. data/ext/project_data.yaml +8 -10
  10. data/ext/puppet-test +2 -2
  11. data/ext/redhat/puppet.spec.erb +0 -4
  12. data/ext/regexp_nodes/regexp_nodes.rb +4 -4
  13. data/ext/solaris/smf/puppet.xml +0 -2
  14. data/ext/solaris/smf/svc-puppetd +1 -8
  15. data/ext/solaris/smf/svc-puppetmasterd +1 -8
  16. data/ext/windows/eventlog/Rakefile +32 -0
  17. data/ext/windows/eventlog/puppetres.dll +0 -0
  18. data/ext/windows/eventlog/puppetres.mc +18 -0
  19. data/ext/windows/service/daemon.rb +8 -54
  20. data/install.rb +24 -6
  21. data/lib/hiera/scope.rb +0 -7
  22. data/lib/puppet.rb +10 -21
  23. data/lib/puppet/agent.rb +13 -5
  24. data/lib/puppet/application.rb +10 -8
  25. data/lib/puppet/application/agent.rb +3 -21
  26. data/lib/puppet/application/apply.rb +22 -12
  27. data/lib/puppet/application/cert.rb +25 -180
  28. data/lib/puppet/application/describe.rb +9 -3
  29. data/lib/puppet/application/device.rb +41 -74
  30. data/lib/puppet/application/doc.rb +5 -3
  31. data/lib/puppet/application/filebucket.rb +1 -23
  32. data/lib/puppet/application/lookup.rb +2 -2
  33. data/lib/puppet/application/resource.rb +4 -4
  34. data/lib/puppet/application/script.rb +3 -3
  35. data/lib/puppet/application/ssl.rb +133 -0
  36. data/lib/puppet/application_support.rb +1 -2
  37. data/lib/puppet/configurer.rb +62 -127
  38. data/lib/puppet/configurer/downloader.rb +17 -34
  39. data/lib/puppet/configurer/fact_handler.rb +5 -1
  40. data/lib/puppet/configurer/plugin_handler.rb +2 -3
  41. data/lib/puppet/confine/false.rb +1 -7
  42. data/lib/puppet/confine/true.rb +1 -7
  43. data/lib/puppet/daemon.rb +2 -2
  44. data/lib/puppet/datatypes.rb +1 -1
  45. data/lib/puppet/defaults.rb +126 -286
  46. data/lib/puppet/environments.rb +2 -7
  47. data/lib/puppet/error.rb +14 -10
  48. data/lib/puppet/etc.rb +4 -25
  49. data/lib/puppet/external/dot.rb +23 -17
  50. data/lib/puppet/face/config.rb +50 -12
  51. data/lib/puppet/face/epp.rb +2 -2
  52. data/lib/puppet/face/facts.rb +1 -1
  53. data/lib/puppet/face/help.rb +21 -7
  54. data/lib/puppet/face/help/global.erb +2 -2
  55. data/lib/puppet/face/module/build.rb +4 -59
  56. data/lib/puppet/face/module/generate.rb +5 -247
  57. data/lib/puppet/face/module/install.rb +0 -4
  58. data/lib/puppet/face/module/list.rb +5 -10
  59. data/lib/puppet/face/module/search.rb +2 -2
  60. data/lib/puppet/face/module/uninstall.rb +1 -5
  61. data/lib/puppet/face/module/upgrade.rb +1 -5
  62. data/lib/puppet/face/node/clean.rb +14 -10
  63. data/lib/puppet/face/plugin.rb +2 -9
  64. data/lib/puppet/feature/base.rb +7 -26
  65. data/lib/puppet/feature/eventlog.rb +1 -1
  66. data/lib/puppet/file_bucket/dipper.rb +1 -1
  67. data/lib/puppet/file_serving/base.rb +7 -7
  68. data/lib/puppet/file_serving/fileset.rb +2 -2
  69. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  70. data/lib/puppet/file_serving/metadata.rb +4 -3
  71. data/lib/puppet/file_serving/mount/locales.rb +2 -1
  72. data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -1
  73. data/lib/puppet/file_serving/mount/plugins.rb +2 -1
  74. data/lib/puppet/file_system.rb +8 -0
  75. data/lib/puppet/file_system/memory_file.rb +1 -1
  76. data/lib/puppet/file_system/posix.rb +2 -3
  77. data/lib/puppet/file_system/uniquefile.rb +0 -4
  78. data/lib/puppet/forge.rb +8 -12
  79. data/lib/puppet/functions.rb +138 -0
  80. data/lib/puppet/functions/abs.rb +61 -0
  81. data/lib/puppet/functions/call.rb +38 -2
  82. data/lib/puppet/functions/camelcase.rb +62 -0
  83. data/lib/puppet/functions/capitalize.rb +61 -0
  84. data/lib/puppet/functions/ceiling.rb +37 -0
  85. data/lib/puppet/functions/chomp.rb +57 -0
  86. data/lib/puppet/functions/chop.rb +67 -0
  87. data/lib/puppet/functions/compare.rb +125 -0
  88. data/lib/puppet/functions/convert_to.rb +3 -2
  89. data/lib/puppet/functions/dig.rb +21 -1
  90. data/lib/puppet/functions/downcase.rb +89 -0
  91. data/lib/puppet/functions/epp.rb +4 -4
  92. data/lib/puppet/functions/eyaml_lookup_key.rb +4 -5
  93. data/lib/puppet/functions/filter.rb +7 -6
  94. data/lib/puppet/functions/floor.rb +37 -0
  95. data/lib/puppet/functions/get.rb +150 -0
  96. data/lib/puppet/functions/getvar.rb +87 -0
  97. data/lib/puppet/functions/inline_epp.rb +5 -5
  98. data/lib/puppet/functions/lstrip.rb +58 -0
  99. data/lib/puppet/functions/max.rb +183 -0
  100. data/lib/puppet/functions/min.rb +182 -0
  101. data/lib/puppet/functions/new.rb +3 -8
  102. data/lib/puppet/functions/reduce.rb +4 -2
  103. data/lib/puppet/functions/reverse_each.rb +1 -1
  104. data/lib/puppet/functions/round.rb +24 -0
  105. data/lib/puppet/functions/rstrip.rb +58 -0
  106. data/lib/puppet/functions/size.rb +15 -0
  107. data/lib/puppet/functions/sort.rb +74 -0
  108. data/lib/puppet/functions/step.rb +1 -1
  109. data/lib/puppet/functions/strip.rb +58 -0
  110. data/lib/puppet/functions/upcase.rb +89 -0
  111. data/lib/puppet/functions/yaml_data.rb +4 -5
  112. data/lib/puppet/gettext/config.rb +1 -1
  113. data/lib/puppet/gettext/module_translations.rb +1 -1
  114. data/lib/puppet/graph.rb +0 -2
  115. data/lib/puppet/graph/rb_tree_map.rb +2 -2
  116. data/lib/puppet/graph/simple_graph.rb +10 -7
  117. data/lib/puppet/indirector/catalog/compiler.rb +0 -8
  118. data/lib/puppet/indirector/catalog/json.rb +14 -3
  119. data/lib/puppet/indirector/catalog/yaml.rb +0 -16
  120. data/lib/puppet/indirector/certificate/file.rb +0 -1
  121. data/lib/puppet/indirector/facts/yaml.rb +4 -2
  122. data/lib/puppet/indirector/file_bucket_file/file.rb +1 -1
  123. data/lib/puppet/indirector/hiera.rb +0 -6
  124. data/lib/puppet/indirector/indirection.rb +8 -12
  125. data/lib/puppet/indirector/key/file.rb +1 -6
  126. data/lib/puppet/indirector/node/exec.rb +1 -3
  127. data/lib/puppet/indirector/node/yaml.rb +0 -6
  128. data/lib/puppet/indirector/request.rb +20 -27
  129. data/lib/puppet/indirector/resource/ral.rb +3 -1
  130. data/lib/puppet/indirector/resource/validator.rb +1 -1
  131. data/lib/puppet/indirector/rest.rb +7 -65
  132. data/lib/puppet/indirector/ssl_file.rb +3 -44
  133. data/lib/puppet/indirector/terminus.rb +1 -1
  134. data/lib/puppet/indirector/yaml.rb +4 -4
  135. data/lib/puppet/info_service/task_information_service.rb +7 -3
  136. data/lib/puppet/interface.rb +2 -3
  137. data/lib/puppet/interface/action.rb +2 -5
  138. data/lib/puppet/interface/face_collection.rb +3 -1
  139. data/lib/puppet/loaders.rb +2 -0
  140. data/lib/puppet/metatype/manager.rb +3 -5
  141. data/lib/puppet/module.rb +5 -31
  142. data/lib/puppet/module/task.rb +208 -30
  143. data/lib/puppet/module_tool.rb +2 -5
  144. data/lib/puppet/module_tool/applications.rb +0 -1
  145. data/lib/puppet/module_tool/applications/application.rb +1 -1
  146. data/lib/puppet/module_tool/applications/installer.rb +7 -8
  147. data/lib/puppet/module_tool/applications/uninstaller.rb +4 -5
  148. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  149. data/lib/puppet/module_tool/applications/upgrader.rb +5 -6
  150. data/lib/puppet/module_tool/installed_modules.rb +2 -2
  151. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  152. data/lib/puppet/module_tool/metadata.rb +1 -2
  153. data/lib/puppet/module_tool/shared_behaviors.rb +6 -6
  154. data/lib/puppet/module_tool/tar/mini.rb +2 -12
  155. data/lib/puppet/network/authconfig.rb +0 -13
  156. data/lib/puppet/network/format_support.rb +13 -8
  157. data/lib/puppet/network/formats.rb +93 -2
  158. data/lib/puppet/network/http.rb +0 -2
  159. data/lib/puppet/network/http/api.rb +1 -10
  160. data/lib/puppet/network/http/api/indirected_routes.rb +22 -16
  161. data/lib/puppet/network/http/api/master/v3/environment.rb +0 -3
  162. data/lib/puppet/network/http/connection.rb +14 -57
  163. data/lib/puppet/network/http/factory.rb +13 -7
  164. data/lib/puppet/network/http/handler.rb +59 -27
  165. data/lib/puppet/network/http/pool.rb +1 -7
  166. data/lib/puppet/network/http/site.rb +1 -1
  167. data/lib/puppet/network/resolver.rb +140 -67
  168. data/lib/puppet/node.rb +1 -2
  169. data/lib/puppet/node/environment.rb +5 -30
  170. data/lib/puppet/node/facts.rb +11 -1
  171. data/lib/puppet/parameter.rb +4 -7
  172. data/lib/puppet/parser/ast.rb +5 -9
  173. data/lib/puppet/parser/ast/branch.rb +3 -3
  174. data/lib/puppet/parser/ast/leaf.rb +5 -0
  175. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  176. data/lib/puppet/parser/catalog_compiler.rb +32 -0
  177. data/lib/puppet/parser/compiler.rb +2 -3
  178. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -2
  179. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -2
  180. data/lib/puppet/parser/environment_compiler.rb +0 -3
  181. data/lib/puppet/parser/functions.rb +48 -18
  182. data/lib/puppet/parser/functions/epp.rb +3 -3
  183. data/lib/puppet/parser/functions/filter.rb +1 -1
  184. data/lib/puppet/parser/functions/generate.rb +1 -1
  185. data/lib/puppet/parser/functions/inline_epp.rb +5 -5
  186. data/lib/puppet/parser/resource.rb +2 -4
  187. data/lib/puppet/parser/resource/param.rb +12 -11
  188. data/lib/puppet/parser/scope.rb +6 -8
  189. data/lib/puppet/parser/script_compiler.rb +7 -2
  190. data/lib/puppet/pops.rb +1 -0
  191. data/lib/puppet/pops/adaptable.rb +13 -7
  192. data/lib/puppet/pops/adapters.rb +18 -8
  193. data/lib/puppet/pops/evaluator/access_operator.rb +2 -2
  194. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +4 -4
  195. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
  196. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
  197. data/lib/puppet/pops/evaluator/compare_operator.rb +3 -1
  198. data/lib/puppet/pops/evaluator/deferred_resolver.rb +127 -0
  199. data/lib/puppet/pops/evaluator/evaluator_impl.rb +17 -2
  200. data/lib/puppet/pops/evaluator/external_syntax_support.rb +2 -3
  201. data/lib/puppet/pops/evaluator/runtime3_converter.rb +23 -4
  202. data/lib/puppet/pops/evaluator/runtime3_support.rb +7 -8
  203. data/lib/puppet/pops/functions/dispatch.rb +6 -0
  204. data/lib/puppet/pops/issues.rb +9 -10
  205. data/lib/puppet/pops/loader/loader.rb +1 -1
  206. data/lib/puppet/pops/loader/loader_paths.rb +5 -3
  207. data/lib/puppet/pops/loader/module_loaders.rb +47 -21
  208. data/lib/puppet/pops/loader/null_loader.rb +60 -0
  209. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +54 -0
  210. data/lib/puppet/pops/loader/static_loader.rb +0 -36
  211. data/lib/puppet/pops/loader/task_instantiator.rb +72 -44
  212. data/lib/puppet/pops/loaders.rb +21 -33
  213. data/lib/puppet/pops/lookup/hiera_config.rb +1 -2
  214. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  215. data/lib/puppet/pops/merge_strategy.rb +18 -22
  216. data/lib/puppet/pops/model/ast.pp +16 -0
  217. data/lib/puppet/pops/model/ast.rb +94 -0
  218. data/lib/puppet/pops/model/factory.rb +17 -38
  219. data/lib/puppet/pops/model/model_label_provider.rb +8 -1
  220. data/lib/puppet/pops/parser/egrammar.ra +14 -3
  221. data/lib/puppet/pops/parser/eparser.rb +1537 -1492
  222. data/lib/puppet/pops/parser/epp_support.rb +6 -2
  223. data/lib/puppet/pops/parser/heredoc_support.rb +8 -17
  224. data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
  225. data/lib/puppet/pops/parser/lexer2.rb +2 -7
  226. data/lib/puppet/pops/parser/locator.rb +87 -107
  227. data/lib/puppet/pops/parser/parser_support.rb +2 -11
  228. data/lib/puppet/pops/parser/pn_parser.rb +16 -17
  229. data/lib/puppet/pops/pcore.rb +19 -8
  230. data/lib/puppet/pops/puppet_stack.rb +48 -51
  231. data/lib/puppet/pops/resource/resource_type_impl.rb +0 -2
  232. data/lib/puppet/pops/serialization.rb +3 -2
  233. data/lib/puppet/pops/serialization/from_data_converter.rb +4 -3
  234. data/lib/puppet/pops/serialization/to_data_converter.rb +3 -3
  235. data/lib/puppet/pops/serialization/to_stringified_converter.rb +226 -0
  236. data/lib/puppet/pops/types/iterable.rb +8 -34
  237. data/lib/puppet/pops/types/p_binary_type.rb +1 -2
  238. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  239. data/lib/puppet/pops/types/p_object_type.rb +3 -0
  240. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  241. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  242. data/lib/puppet/pops/types/p_type_set_type.rb +0 -4
  243. data/lib/puppet/pops/types/string_converter.rb +12 -21
  244. data/lib/puppet/pops/types/type_calculator.rb +0 -24
  245. data/lib/puppet/pops/types/type_factory.rb +17 -0
  246. data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
  247. data/lib/puppet/pops/types/types.rb +7 -32
  248. data/lib/puppet/pops/validation/checker4_0.rb +23 -33
  249. data/lib/puppet/pops/validation/tasks_checker.rb +47 -6
  250. data/lib/puppet/pops/validation/validator_factory_4_0.rb +7 -10
  251. data/lib/puppet/property.rb +1 -1
  252. data/lib/puppet/property/ensure.rb +1 -1
  253. data/lib/puppet/provider.rb +14 -2
  254. data/lib/puppet/provider/exec.rb +58 -59
  255. data/lib/puppet/provider/file/posix.rb +0 -5
  256. data/lib/puppet/provider/file/windows.rb +2 -50
  257. data/lib/puppet/provider/group/aix.rb +2 -18
  258. data/lib/puppet/provider/group/groupadd.rb +19 -19
  259. data/lib/puppet/provider/group/windows_adsi.rb +4 -11
  260. data/lib/puppet/provider/nameservice.rb +28 -11
  261. data/lib/puppet/provider/nameservice/directoryservice.rb +1 -1
  262. data/lib/puppet/provider/nameservice/pw.rb +2 -2
  263. data/lib/puppet/provider/package.rb +0 -2
  264. data/lib/puppet/provider/package/aix.rb +2 -17
  265. data/lib/puppet/provider/package/apt.rb +3 -14
  266. data/lib/puppet/provider/package/dnf.rb +3 -3
  267. data/lib/puppet/provider/package/dpkg.rb +7 -18
  268. data/lib/puppet/provider/package/fink.rb +3 -20
  269. data/lib/puppet/provider/package/gem.rb +43 -105
  270. data/lib/puppet/provider/package/openbsd.rb +2 -14
  271. data/lib/puppet/provider/package/pip.rb +108 -160
  272. data/lib/puppet/provider/package/pip3.rb +1 -1
  273. data/lib/puppet/provider/package/pkg.rb +5 -18
  274. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  275. data/lib/puppet/provider/package/pkgng.rb +4 -16
  276. data/lib/puppet/provider/package/portage.rb +6 -6
  277. data/lib/puppet/provider/package/puppet_gem.rb +2 -7
  278. data/lib/puppet/provider/package/rpm.rb +33 -82
  279. data/lib/puppet/provider/package/windows.rb +2 -6
  280. data/lib/puppet/provider/package/windows/exe_package.rb +10 -16
  281. data/lib/puppet/provider/package/windows/msi_package.rb +0 -8
  282. data/lib/puppet/provider/package/windows/package.rb +2 -10
  283. data/lib/puppet/provider/package/yum.rb +25 -37
  284. data/lib/puppet/provider/package/zypper.rb +0 -1
  285. data/lib/puppet/provider/parsedfile.rb +5 -26
  286. data/lib/puppet/provider/service/base.rb +1 -1
  287. data/lib/puppet/provider/service/daemontools.rb +9 -9
  288. data/lib/puppet/provider/service/debian.rb +1 -0
  289. data/lib/puppet/provider/service/launchd.rb +8 -39
  290. data/lib/puppet/provider/service/openbsd.rb +1 -1
  291. data/lib/puppet/provider/service/rcng.rb +2 -2
  292. data/lib/puppet/provider/service/runit.rb +8 -2
  293. data/lib/puppet/provider/service/smf.rb +0 -54
  294. data/lib/puppet/provider/service/systemd.rb +24 -35
  295. data/lib/puppet/provider/service/upstart.rb +1 -3
  296. data/lib/puppet/provider/service/windows.rb +3 -23
  297. data/lib/puppet/provider/user/aix.rb +2 -48
  298. data/lib/puppet/provider/user/directoryservice.rb +8 -45
  299. data/lib/puppet/provider/user/hpux.rb +1 -1
  300. data/lib/puppet/provider/user/pw.rb +3 -12
  301. data/lib/puppet/provider/user/user_role_add.rb +1 -5
  302. data/lib/puppet/provider/user/useradd.rb +44 -74
  303. data/lib/puppet/provider/user/windows_adsi.rb +0 -7
  304. data/lib/puppet/reference/indirection.rb +2 -2
  305. data/lib/puppet/reference/metaparameter.rb +3 -1
  306. data/lib/puppet/reference/providers.rb +1 -1
  307. data/lib/puppet/reference/type.rb +9 -3
  308. data/lib/puppet/reports.rb +3 -3
  309. data/lib/puppet/resource.rb +22 -22
  310. data/lib/puppet/resource/catalog.rb +8 -14
  311. data/lib/puppet/resource/type.rb +1 -10
  312. data/lib/puppet/rest/client.rb +83 -0
  313. data/lib/puppet/rest/errors.rb +14 -0
  314. data/lib/puppet/rest/response.rb +34 -0
  315. data/lib/puppet/rest/route.rb +84 -0
  316. data/lib/puppet/rest/routes.rb +154 -0
  317. data/lib/puppet/rest/ssl_context.rb +13 -0
  318. data/lib/puppet/settings.rb +9 -54
  319. data/lib/puppet/settings/config_file.rb +1 -2
  320. data/lib/puppet/settings/environment_conf.rb +0 -1
  321. data/lib/puppet/settings/file_setting.rb +1 -1
  322. data/lib/puppet/settings/server_list_setting.rb +0 -9
  323. data/lib/puppet/ssl.rb +0 -1
  324. data/lib/puppet/ssl/base.rb +1 -9
  325. data/lib/puppet/ssl/certificate.rb +7 -4
  326. data/lib/puppet/ssl/certificate_request.rb +6 -14
  327. data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
  328. data/lib/puppet/ssl/host.rb +400 -174
  329. data/lib/puppet/ssl/key.rb +1 -5
  330. data/lib/puppet/ssl/oids.rb +3 -3
  331. data/lib/puppet/ssl/validator/default_validator.rb +33 -49
  332. data/lib/puppet/test/test_helper.rb +12 -18
  333. data/lib/puppet/transaction.rb +7 -12
  334. data/lib/puppet/transaction/event.rb +37 -14
  335. data/lib/puppet/transaction/event_manager.rb +3 -11
  336. data/lib/puppet/transaction/persistence.rb +1 -1
  337. data/lib/puppet/transaction/report.rb +1 -1
  338. data/lib/puppet/transaction/resource_harness.rb +2 -5
  339. data/lib/puppet/type.rb +7 -10
  340. data/lib/puppet/type/exec.rb +16 -50
  341. data/lib/puppet/type/file.rb +7 -16
  342. data/lib/puppet/type/file/content.rb +2 -3
  343. data/lib/puppet/type/file/data_sync.rb +1 -5
  344. data/lib/puppet/type/file/mode.rb +2 -7
  345. data/lib/puppet/type/file/source.rb +2 -1
  346. data/lib/puppet/type/filebucket.rb +8 -12
  347. data/lib/puppet/type/group.rb +3 -33
  348. data/lib/puppet/type/notify.rb +2 -3
  349. data/lib/puppet/type/package.rb +18 -154
  350. data/lib/puppet/type/resources.rb +2 -12
  351. data/lib/puppet/type/schedule.rb +34 -96
  352. data/lib/puppet/type/service.rb +10 -9
  353. data/lib/puppet/type/tidy.rb +1 -1
  354. data/lib/puppet/type/user.rb +30 -14
  355. data/lib/puppet/util.rb +28 -52
  356. data/lib/puppet/util/autoload.rb +62 -56
  357. data/lib/puppet/util/character_encoding.rb +0 -22
  358. data/lib/puppet/util/classgen.rb +0 -6
  359. data/lib/puppet/util/command_line.rb +4 -7
  360. data/lib/puppet/util/command_line/trollop.rb +1 -1
  361. data/lib/puppet/util/connection.rb +74 -0
  362. data/lib/puppet/util/execution.rb +7 -22
  363. data/lib/puppet/util/feature.rb +63 -41
  364. data/lib/puppet/util/fileparsing.rb +27 -5
  365. data/lib/puppet/util/filetype.rb +8 -56
  366. data/lib/puppet/util/http_proxy.rb +18 -27
  367. data/lib/puppet/util/instance_loader.rb +3 -21
  368. data/lib/puppet/util/json.rb +0 -8
  369. data/lib/puppet/util/ldap/connection.rb +7 -7
  370. data/lib/puppet/util/log.rb +3 -8
  371. data/lib/puppet/util/log/destinations.rb +13 -5
  372. data/lib/puppet/util/logging.rb +19 -31
  373. data/lib/puppet/util/metric.rb +2 -2
  374. data/lib/puppet/util/monkey_patches.rb +1 -1
  375. data/lib/puppet/util/network_device/base.rb +1 -1
  376. data/lib/puppet/util/pidlock.rb +3 -23
  377. data/lib/puppet/util/platform.rb +3 -0
  378. data/lib/puppet/util/plist.rb +0 -6
  379. data/lib/puppet/util/posix.rb +0 -15
  380. data/lib/puppet/util/provider_features.rb +6 -7
  381. data/lib/puppet/util/rdoc.rb +2 -2
  382. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  383. data/lib/puppet/util/reference.rb +8 -7
  384. data/lib/puppet/util/resource_template.rb +1 -1
  385. data/lib/puppet/util/rubygems.rb +1 -13
  386. data/lib/puppet/util/run_mode.rb +1 -1
  387. data/lib/puppet/util/selinux.rb +3 -9
  388. data/lib/puppet/util/ssl.rb +40 -1
  389. data/lib/puppet/util/storage.rb +1 -13
  390. data/lib/puppet/util/suidmanager.rb +7 -5
  391. data/lib/puppet/util/tag_set.rb +1 -1
  392. data/lib/puppet/util/tagging.rb +1 -1
  393. data/lib/puppet/util/windows.rb +15 -0
  394. data/lib/puppet/util/windows/adsi.rb +7 -116
  395. data/lib/puppet/util/windows/api_types.rb +33 -46
  396. data/lib/puppet/util/windows/eventlog.rb +6 -1
  397. data/lib/puppet/util/windows/principal.rb +6 -8
  398. data/lib/puppet/util/windows/process.rb +3 -94
  399. data/lib/puppet/util/windows/registry.rb +14 -46
  400. data/lib/puppet/util/windows/security.rb +2 -40
  401. data/lib/puppet/util/windows/service.rb +72 -431
  402. data/lib/puppet/util/windows/sid.rb +3 -4
  403. data/lib/puppet/util/windows/user.rb +9 -17
  404. data/lib/puppet/util/yaml.rb +41 -5
  405. data/lib/puppet/vendor.rb +1 -1
  406. data/lib/puppet/version.rb +1 -1
  407. data/lib/puppet_pal.rb +246 -23
  408. data/locales/ja/puppet.po +11128 -0
  409. data/locales/puppet.pot +1321 -2527
  410. data/man/man5/puppet.conf.5 +31 -191
  411. data/man/man8/puppet-agent.8 +2 -2
  412. data/man/man8/puppet-apply.8 +1 -1
  413. data/man/man8/puppet-catalog.8 +1 -1
  414. data/man/man8/puppet-config.8 +3 -3
  415. data/man/man8/puppet-describe.8 +1 -1
  416. data/man/man8/puppet-device.8 +19 -23
  417. data/man/man8/puppet-doc.8 +1 -1
  418. data/man/man8/puppet-epp.8 +1 -1
  419. data/man/man8/puppet-facts.8 +1 -1
  420. data/man/man8/puppet-filebucket.8 +2 -21
  421. data/man/man8/puppet-generate.8 +1 -1
  422. data/man/man8/puppet-help.8 +1 -1
  423. data/man/man8/puppet-key.8 +1 -7
  424. data/man/man8/puppet-lookup.8 +1 -1
  425. data/man/man8/puppet-man.8 +1 -1
  426. data/man/man8/puppet-module.8 +10 -100
  427. data/man/man8/puppet-node.8 +4 -7
  428. data/man/man8/puppet-parser.8 +1 -1
  429. data/man/man8/puppet-plugin.8 +1 -1
  430. data/man/man8/puppet-report.8 +1 -1
  431. data/man/man8/puppet-resource.8 +1 -1
  432. data/man/man8/puppet-script.8 +1 -1
  433. data/man/man8/puppet-ssl.8 +28 -0
  434. data/man/man8/puppet-status.8 +1 -1
  435. data/man/man8/puppet.8 +12 -3
  436. data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +22 -0
  437. data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +18 -0
  438. data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +7 -0
  439. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +6 -6
  440. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -1
  441. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +0 -2
  442. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +0 -9
  443. data/spec/integration/agent/logging_spec.rb +9 -7
  444. data/spec/integration/application/apply_spec.rb +31 -26
  445. data/spec/integration/application/doc_spec.rb +2 -1
  446. data/spec/integration/application/lookup_spec.rb +5 -5
  447. data/spec/integration/configurer_spec.rb +8 -76
  448. data/spec/integration/data_binding_spec.rb +1 -1
  449. data/spec/integration/defaults_spec.rb +13 -16
  450. data/spec/integration/directory_environments_spec.rb +1 -1
  451. data/spec/integration/faces/config_spec.rb +4 -3
  452. data/spec/integration/faces/documentation_spec.rb +1 -0
  453. data/spec/integration/faces/plugin_spec.rb +49 -29
  454. data/spec/integration/file_bucket/file_spec.rb +4 -19
  455. data/spec/integration/file_serving/content_spec.rb +1 -0
  456. data/spec/integration/file_serving/fileset_spec.rb +1 -0
  457. data/spec/integration/file_serving/metadata_spec.rb +1 -0
  458. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
  459. data/spec/integration/file_system/uniquefile_spec.rb +26 -29
  460. data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
  461. data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
  462. data/spec/integration/indirector/facts/facter_spec.rb +8 -22
  463. data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
  464. data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
  465. data/spec/integration/network/authconfig_spec.rb +24 -23
  466. data/spec/integration/network/formats_spec.rb +1 -0
  467. data/spec/integration/network/http/api/indirected_routes_spec.rb +6 -34
  468. data/spec/integration/node/environment_spec.rb +2 -1
  469. data/spec/integration/node/facts_spec.rb +10 -9
  470. data/spec/integration/node_spec.rb +7 -10
  471. data/spec/integration/parser/catalog_spec.rb +8 -6
  472. data/spec/integration/parser/collection_spec.rb +9 -4
  473. data/spec/integration/parser/compiler_spec.rb +7 -25
  474. data/spec/integration/parser/scope_spec.rb +1 -1
  475. data/spec/integration/parser/undef_param_spec.rb +1 -1
  476. data/spec/integration/provider/service/init_spec.rb +9 -6
  477. data/spec/integration/provider/service/systemd_spec.rb +14 -11
  478. data/spec/integration/provider/service/windows_spec.rb +11 -8
  479. data/spec/integration/reference/providers_spec.rb +7 -0
  480. data/spec/integration/reports_spec.rb +2 -1
  481. data/spec/integration/resource/catalog_spec.rb +17 -14
  482. data/spec/integration/resource/type_collection_spec.rb +5 -4
  483. data/spec/integration/ssl/certificate_request_spec.rb +1 -2
  484. data/spec/integration/ssl/host_spec.rb +17 -24
  485. data/spec/integration/ssl/key_spec.rb +7 -2
  486. data/spec/integration/test/test_helper_spec.rb +32 -0
  487. data/spec/integration/transaction/report_spec.rb +14 -9
  488. data/spec/integration/type/exec_spec.rb +2 -1
  489. data/spec/integration/type/file_spec.rb +38 -46
  490. data/spec/integration/type/package_spec.rb +25 -21
  491. data/spec/integration/type/tidy_spec.rb +2 -1
  492. data/spec/integration/type_spec.rb +1 -0
  493. data/spec/integration/util/autoload_spec.rb +11 -7
  494. data/spec/integration/util/execution_spec.rb +5 -32
  495. data/spec/integration/util/rdoc/parser_spec.rb +14 -23
  496. data/spec/integration/util/settings_spec.rb +2 -1
  497. data/spec/integration/util/windows/adsi_spec.rb +8 -11
  498. data/spec/integration/util/windows/principal_spec.rb +2 -1
  499. data/spec/integration/util/windows/process_spec.rb +9 -7
  500. data/spec/integration/util/windows/registry_spec.rb +46 -127
  501. data/spec/integration/util/windows/security_spec.rb +15 -16
  502. data/spec/integration/util/windows/user_spec.rb +29 -66
  503. data/spec/integration/util_spec.rb +10 -7
  504. data/spec/lib/matchers/json.rb +12 -18
  505. data/{lib/puppet/ssl → spec/lib/puppet}/certificate_factory.rb +5 -6
  506. data/spec/lib/puppet/test_ca.rb +109 -0
  507. data/spec/lib/puppet_spec/compiler.rb +28 -1
  508. data/spec/lib/puppet_spec/files.rb +29 -23
  509. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
  510. data/spec/lib/puppet_spec/modules.rb +11 -1
  511. data/spec/lib/puppet_spec/scope.rb +2 -1
  512. data/spec/lib/puppet_spec/ssl.rb +265 -0
  513. data/spec/lib/puppet_spec/validators.rb +37 -0
  514. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  515. data/spec/shared_behaviours/file_server_terminus.rb +9 -8
  516. data/spec/shared_behaviours/file_serving.rb +8 -6
  517. data/spec/shared_behaviours/file_serving_model.rb +5 -22
  518. data/spec/shared_behaviours/hiera_indirections.rb +4 -3
  519. data/spec/shared_behaviours/iterative_functions.rb +1 -0
  520. data/spec/shared_behaviours/memory_terminus.rb +2 -2
  521. data/spec/shared_behaviours/path_parameters.rb +1 -1
  522. data/spec/shared_contexts/types_setup.rb +0 -2
  523. data/spec/shared_examples/rhel_package_provider.rb +70 -112
  524. data/spec/spec_helper.rb +1 -15
  525. data/spec/unit/agent/disabler_spec.rb +5 -4
  526. data/spec/unit/agent/locker_spec.rb +13 -12
  527. data/spec/unit/agent_spec.rb +102 -105
  528. data/spec/unit/application/agent_spec.rb +95 -114
  529. data/spec/unit/application/apply_spec.rb +92 -119
  530. data/spec/unit/application/config_spec.rb +1 -0
  531. data/spec/unit/application/describe_spec.rb +7 -6
  532. data/spec/unit/application/device_spec.rb +180 -181
  533. data/spec/unit/application/doc_spec.rb +46 -44
  534. data/spec/unit/application/face_base_spec.rb +62 -61
  535. data/spec/unit/application/facts_spec.rb +4 -3
  536. data/spec/unit/application/filebucket_spec.rb +74 -66
  537. data/spec/unit/application/indirection_base_spec.rb +6 -8
  538. data/spec/unit/application/lookup_spec.rb +44 -37
  539. data/spec/unit/application/resource_spec.rb +48 -42
  540. data/spec/unit/application/ssl_spec.rb +322 -0
  541. data/spec/unit/application_spec.rb +108 -90
  542. data/spec/unit/capability_spec.rb +15 -16
  543. data/spec/unit/{ssl/certificate_factory_spec.rb → certificate_factory_spec.rb} +13 -20
  544. data/spec/unit/configurer/downloader_spec.rb +22 -31
  545. data/spec/unit/configurer/fact_handler_spec.rb +7 -2
  546. data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
  547. data/spec/unit/configurer_spec.rb +475 -520
  548. data/spec/unit/confine/exists_spec.rb +15 -17
  549. data/spec/unit/confine/false_spec.rb +6 -32
  550. data/spec/unit/confine/feature_spec.rb +5 -7
  551. data/spec/unit/confine/true_spec.rb +6 -32
  552. data/spec/unit/confine/variable_spec.rb +15 -14
  553. data/spec/unit/confine_collection_spec.rb +29 -28
  554. data/spec/unit/confine_spec.rb +14 -13
  555. data/spec/unit/confiner_spec.rb +11 -10
  556. data/spec/unit/context/trusted_information_spec.rb +4 -3
  557. data/spec/unit/daemon_spec.rb +38 -35
  558. data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
  559. data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
  560. data/spec/unit/datatypes_spec.rb +4 -3
  561. data/spec/unit/defaults_spec.rb +61 -32
  562. data/spec/unit/environments_spec.rb +7 -7
  563. data/spec/unit/etc_spec.rb +29 -52
  564. data/spec/unit/external/pson_spec.rb +1 -0
  565. data/spec/unit/face/catalog_spec.rb +1 -0
  566. data/spec/unit/face/config_spec.rb +35 -31
  567. data/spec/unit/face/epp_face_spec.rb +4 -3
  568. data/spec/unit/face/facts_spec.rb +6 -14
  569. data/spec/unit/face/generate_spec.rb +5 -4
  570. data/spec/unit/face/help_spec.rb +8 -7
  571. data/spec/unit/face/key_spec.rb +1 -0
  572. data/spec/unit/face/man_spec.rb +2 -1
  573. data/spec/unit/face/module/install_spec.rb +5 -3
  574. data/spec/unit/face/module/list_spec.rb +12 -62
  575. data/spec/unit/face/module/search_spec.rb +9 -11
  576. data/spec/unit/face/module/uninstall_spec.rb +8 -4
  577. data/spec/unit/face/node_spec.rb +30 -52
  578. data/spec/unit/face/parser_spec.rb +3 -3
  579. data/spec/unit/face/plugin_spec.rb +9 -44
  580. data/spec/unit/face/status_spec.rb +1 -0
  581. data/spec/unit/file_bucket/dipper_spec.rb +24 -28
  582. data/spec/unit/file_bucket/file_spec.rb +2 -0
  583. data/spec/unit/file_serving/base_spec.rb +18 -20
  584. data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
  585. data/spec/unit/file_serving/configuration_spec.rb +66 -63
  586. data/spec/unit/file_serving/content_spec.rb +11 -10
  587. data/spec/unit/file_serving/fileset_spec.rb +58 -63
  588. data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
  589. data/spec/unit/file_serving/metadata_spec.rb +40 -40
  590. data/spec/unit/file_serving/mount/file_spec.rb +32 -31
  591. data/spec/unit/file_serving/mount/locales_spec.rb +26 -25
  592. data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
  593. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +26 -25
  594. data/spec/unit/file_serving/mount/plugins_spec.rb +26 -25
  595. data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
  596. data/spec/unit/file_serving/mount_spec.rb +1 -0
  597. data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
  598. data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
  599. data/spec/unit/file_system/path_pattern_spec.rb +1 -1
  600. data/spec/unit/file_system/uniquefile_spec.rb +6 -17
  601. data/spec/unit/file_system_spec.rb +9 -6
  602. data/spec/unit/forge/errors_spec.rb +1 -1
  603. data/spec/unit/forge/forge_spec.rb +16 -15
  604. data/spec/unit/forge/module_release_spec.rb +18 -18
  605. data/spec/unit/forge/repository_spec.rb +30 -27
  606. data/spec/unit/forge_spec.rb +11 -15
  607. data/spec/unit/functions/abs_spec.rb +70 -0
  608. data/spec/unit/functions/binary_file_spec.rb +3 -3
  609. data/spec/unit/functions/call_spec.rb +59 -5
  610. data/spec/unit/functions/camelcase_spec.rb +34 -0
  611. data/spec/unit/functions/capitalize_spec.rb +34 -0
  612. data/spec/unit/functions/ceiling_spec.rb +65 -0
  613. data/spec/unit/functions/chomp_spec.rb +46 -0
  614. data/spec/unit/functions/chop_spec.rb +38 -0
  615. data/spec/unit/functions/compare_spec.rb +147 -0
  616. data/spec/unit/functions/contain_spec.rb +2 -0
  617. data/spec/unit/functions/convert_to_spec.rb +3 -0
  618. data/spec/unit/functions/defined_spec.rb +1 -0
  619. data/spec/unit/functions/downcase_spec.rb +34 -0
  620. data/spec/unit/functions/epp_spec.rb +2 -2
  621. data/spec/unit/functions/filter_spec.rb +4 -4
  622. data/spec/unit/functions/find_file_spec.rb +7 -7
  623. data/spec/unit/functions/floor_spec.rb +65 -0
  624. data/spec/unit/functions/get_spec.rb +135 -0
  625. data/spec/unit/functions/getvar_spec.rb +121 -0
  626. data/spec/unit/functions/hiera_spec.rb +14 -48
  627. data/spec/unit/functions/include_spec.rb +4 -0
  628. data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
  629. data/spec/unit/functions/lookup_spec.rb +37 -62
  630. data/spec/unit/functions/lstrip_spec.rb +30 -0
  631. data/spec/unit/functions/match_spec.rb +3 -4
  632. data/spec/unit/functions/max_spec.rb +129 -0
  633. data/spec/unit/functions/min_spec.rb +129 -0
  634. data/spec/unit/functions/module_directory_spec.rb +12 -12
  635. data/spec/unit/functions/new_spec.rb +0 -15
  636. data/spec/unit/functions/regsubst_spec.rb +3 -4
  637. data/spec/unit/functions/require_spec.rb +3 -0
  638. data/spec/unit/functions/round_spec.rb +41 -0
  639. data/spec/unit/functions/rstrip_spec.rb +30 -0
  640. data/spec/unit/functions/shared.rb +8 -5
  641. data/spec/unit/functions/size_spec.rb +50 -0
  642. data/spec/unit/functions/sort_spec.rb +79 -0
  643. data/spec/unit/functions/split_spec.rb +3 -4
  644. data/spec/unit/functions/strip_spec.rb +30 -0
  645. data/spec/unit/functions/upcase_spec.rb +34 -0
  646. data/spec/unit/functions/versioncmp_spec.rb +4 -4
  647. data/spec/unit/functions4_spec.rb +78 -51
  648. data/spec/unit/gettext/config_spec.rb +4 -4
  649. data/spec/unit/gettext/module_loading_spec.rb +7 -7
  650. data/spec/unit/graph/rb_tree_map_spec.rb +2 -0
  651. data/spec/unit/graph/relationship_graph_spec.rb +2 -1
  652. data/spec/unit/graph/simple_graph_spec.rb +52 -11
  653. data/spec/unit/hiera/scope_spec.rb +0 -7
  654. data/spec/unit/hiera_puppet_spec.rb +20 -20
  655. data/spec/unit/indirector/catalog/compiler_spec.rb +166 -183
  656. data/spec/unit/indirector/catalog/json_spec.rb +2 -1
  657. data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
  658. data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
  659. data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
  660. data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
  661. data/spec/unit/indirector/certificate/file_spec.rb +1 -8
  662. data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
  663. data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
  664. data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
  665. data/spec/unit/indirector/direct_file_server_spec.rb +49 -57
  666. data/spec/unit/indirector/envelope_spec.rb +2 -1
  667. data/spec/unit/indirector/exec_spec.rb +31 -26
  668. data/spec/unit/indirector/face_spec.rb +9 -9
  669. data/spec/unit/indirector/facts/facter_spec.rb +43 -37
  670. data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
  671. data/spec/unit/indirector/facts/rest_spec.rb +8 -7
  672. data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
  673. data/spec/unit/indirector/facts/yaml_spec.rb +90 -77
  674. data/spec/unit/indirector/file_bucket_file/file_spec.rb +13 -9
  675. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
  676. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
  677. data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
  678. data/spec/unit/indirector/file_content/file_spec.rb +1 -0
  679. data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
  680. data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
  681. data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
  682. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
  683. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
  684. data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
  685. data/spec/unit/indirector/file_server_spec.rb +145 -145
  686. data/spec/unit/indirector/indirection_spec.rb +226 -249
  687. data/spec/unit/indirector/json_spec.rb +9 -7
  688. data/spec/unit/indirector/key/file_spec.rb +22 -38
  689. data/spec/unit/indirector/memory_spec.rb +7 -6
  690. data/spec/unit/indirector/msgpack_spec.rb +9 -7
  691. data/spec/unit/indirector/node/exec_spec.rb +43 -22
  692. data/spec/unit/indirector/node/memory_spec.rb +4 -2
  693. data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
  694. data/spec/unit/indirector/node/plain_spec.rb +4 -2
  695. data/spec/unit/indirector/node/rest_spec.rb +1 -0
  696. data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
  697. data/spec/unit/indirector/node/yaml_spec.rb +1 -0
  698. data/spec/unit/indirector/none_spec.rb +5 -5
  699. data/spec/unit/indirector/plain_spec.rb +8 -7
  700. data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
  701. data/spec/unit/indirector/report/processor_spec.rb +22 -21
  702. data/spec/unit/indirector/report/rest_spec.rb +12 -11
  703. data/spec/unit/indirector/report/yaml_spec.rb +1 -0
  704. data/spec/unit/indirector/request_spec.rb +18 -15
  705. data/spec/unit/indirector/resource/ral_spec.rb +55 -47
  706. data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
  707. data/spec/unit/indirector/rest_spec.rb +110 -113
  708. data/spec/unit/indirector/ssl_file_spec.rb +100 -119
  709. data/spec/unit/indirector/status/local_spec.rb +1 -0
  710. data/spec/unit/indirector/status/rest_spec.rb +1 -0
  711. data/spec/unit/indirector/store_configs_spec.rb +1 -0
  712. data/spec/unit/indirector/terminus_spec.rb +30 -32
  713. data/spec/unit/indirector/yaml_spec.rb +90 -68
  714. data/spec/unit/indirector_spec.rb +2 -1
  715. data/spec/unit/info_service_spec.rb +144 -10
  716. data/spec/unit/interface/action_builder_spec.rb +1 -0
  717. data/spec/unit/interface/action_manager_spec.rb +1 -0
  718. data/spec/unit/interface/action_spec.rb +3 -2
  719. data/spec/unit/interface/documentation_spec.rb +1 -0
  720. data/spec/unit/interface/face_collection_spec.rb +12 -19
  721. data/spec/unit/interface_spec.rb +3 -3
  722. data/spec/unit/man_spec.rb +4 -3
  723. data/spec/unit/module_spec.rb +52 -102
  724. data/spec/unit/module_tool/applications/installer_spec.rb +13 -12
  725. data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
  726. data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
  727. data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
  728. data/spec/unit/module_tool/applications/upgrader_spec.rb +6 -6
  729. data/spec/unit/module_tool/install_directory_spec.rb +8 -8
  730. data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
  731. data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
  732. data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
  733. data/spec/unit/module_tool/tar_spec.rb +13 -12
  734. data/spec/unit/module_tool_spec.rb +12 -29
  735. data/spec/unit/network/auth_config_parser_spec.rb +13 -11
  736. data/spec/unit/network/authconfig_spec.rb +18 -17
  737. data/spec/unit/network/authorization_spec.rb +5 -4
  738. data/spec/unit/network/authstore_spec.rb +1 -0
  739. data/spec/unit/network/format_handler_spec.rb +1 -0
  740. data/spec/unit/network/format_spec.rb +10 -9
  741. data/spec/unit/network/format_support_spec.rb +29 -28
  742. data/spec/unit/network/formats_spec.rb +31 -4
  743. data/spec/unit/network/http/api/indirected_routes_spec.rb +41 -51
  744. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +7 -9
  745. data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -2
  746. data/spec/unit/network/http/api/master/v3/environments_spec.rb +7 -6
  747. data/spec/unit/network/http/api_spec.rb +2 -26
  748. data/spec/unit/network/http/compression_spec.rb +28 -24
  749. data/spec/unit/network/http/connection_spec.rb +122 -72
  750. data/spec/unit/network/http/factory_spec.rb +11 -40
  751. data/spec/unit/network/http/handler_spec.rb +18 -9
  752. data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
  753. data/spec/unit/network/http/pool_spec.rb +29 -60
  754. data/spec/unit/network/http/request_spec.rb +2 -0
  755. data/spec/unit/network/http/response_spec.rb +13 -11
  756. data/spec/unit/network/http/route_spec.rb +1 -0
  757. data/spec/unit/network/http/session_spec.rb +2 -1
  758. data/spec/unit/network/http/site_spec.rb +1 -0
  759. data/spec/unit/network/http_pool_spec.rb +9 -18
  760. data/spec/unit/network/http_spec.rb +1 -0
  761. data/spec/unit/network/resolver_spec.rb +104 -28
  762. data/spec/unit/network/rights_spec.rb +53 -52
  763. data/spec/unit/node/environment_spec.rb +17 -18
  764. data/spec/unit/node/facts_spec.rb +21 -6
  765. data/spec/unit/node_spec.rb +23 -17
  766. data/spec/unit/other/selinux_spec.rb +1 -71
  767. data/spec/unit/parameter/boolean_spec.rb +2 -1
  768. data/spec/unit/parameter/package_options_spec.rb +2 -1
  769. data/spec/unit/parameter/path_spec.rb +1 -0
  770. data/spec/unit/parameter/value_collection_spec.rb +1 -0
  771. data/spec/unit/parameter/value_spec.rb +1 -0
  772. data/spec/unit/parameter_spec.rb +9 -9
  773. data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
  774. data/spec/unit/parser/ast/leaf_spec.rb +21 -20
  775. data/spec/unit/parser/compiler_spec.rb +96 -84
  776. data/spec/unit/parser/environment_compiler_spec.rb +16 -23
  777. data/spec/unit/parser/files_spec.rb +1 -0
  778. data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
  779. data/spec/unit/parser/functions/digest_spec.rb +1 -4
  780. data/spec/unit/parser/functions/fail_spec.rb +2 -5
  781. data/spec/unit/parser/functions/file_spec.rb +14 -17
  782. data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
  783. data/spec/unit/parser/functions/generate_spec.rb +37 -38
  784. data/spec/unit/parser/functions/inline_template_spec.rb +1 -4
  785. data/spec/unit/parser/functions/regsubst_spec.rb +1 -4
  786. data/spec/unit/parser/functions/scanf_spec.rb +1 -4
  787. data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
  788. data/spec/unit/parser/functions/split_spec.rb +1 -4
  789. data/spec/unit/parser/functions/sprintf_spec.rb +1 -4
  790. data/spec/unit/parser/functions/tag_spec.rb +2 -5
  791. data/spec/unit/parser/functions/tagged_spec.rb +3 -6
  792. data/spec/unit/parser/functions/template_spec.rb +13 -17
  793. data/spec/unit/parser/functions/versioncmp_spec.rb +2 -5
  794. data/spec/unit/parser/functions_spec.rb +29 -3
  795. data/spec/unit/parser/relationship_spec.rb +1 -0
  796. data/spec/unit/parser/resource/param_spec.rb +1 -1
  797. data/spec/unit/parser/resource_spec.rb +42 -42
  798. data/spec/unit/parser/scope_spec.rb +35 -39
  799. data/spec/unit/parser/templatewrapper_spec.rb +12 -11
  800. data/spec/unit/parser/type_loader_spec.rb +19 -17
  801. data/spec/unit/pops/adaptable_spec.rb +1 -0
  802. data/spec/unit/pops/benchmark_spec.rb +1 -0
  803. data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
  804. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +11 -0
  805. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
  806. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
  807. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
  808. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
  809. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +78 -18
  810. data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
  811. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +5 -4
  812. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
  813. data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
  814. data/spec/unit/pops/factory_spec.rb +4 -3
  815. data/spec/unit/pops/issues_spec.rb +20 -19
  816. data/spec/unit/pops/loaders/dependency_loader_spec.rb +2 -2
  817. data/spec/unit/pops/loaders/loader_spec.rb +12 -36
  818. data/spec/unit/pops/loaders/loaders_spec.rb +57 -54
  819. data/spec/unit/pops/loaders/module_loaders_spec.rb +35 -3
  820. data/spec/unit/pops/loaders/static_loader_spec.rb +0 -36
  821. data/spec/unit/pops/lookup/context_spec.rb +1 -0
  822. data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
  823. data/spec/unit/pops/merge_strategy_spec.rb +1 -0
  824. data/spec/unit/pops/migration_spec.rb +5 -3
  825. data/spec/unit/pops/model/model_spec.rb +1 -0
  826. data/spec/unit/pops/model/pn_transformer_spec.rb +1 -0
  827. data/spec/unit/pops/parser/lexer2_spec.rb +60 -21
  828. data/spec/unit/pops/parser/locator_spec.rb +6 -48
  829. data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
  830. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
  831. data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
  832. data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
  833. data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
  834. data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
  835. data/spec/unit/pops/parser/parse_heredoc_spec.rb +12 -124
  836. data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
  837. data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
  838. data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
  839. data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
  840. data/spec/unit/pops/pn_spec.rb +1 -0
  841. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
  842. data/spec/unit/pops/serialization/serialization_spec.rb +7 -5
  843. data/spec/unit/pops/serialization/to_from_hr_spec.rb +29 -4
  844. data/spec/unit/pops/serialization/to_stringified_spec.rb +157 -0
  845. data/spec/unit/pops/types/deferred_spec.rb +87 -0
  846. data/spec/unit/pops/types/p_object_type_spec.rb +20 -0
  847. data/spec/unit/pops/types/p_timespan_type_spec.rb +0 -22
  848. data/spec/unit/pops/types/p_timestamp_type_spec.rb +0 -19
  849. data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
  850. data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
  851. data/spec/unit/pops/types/string_converter_spec.rb +11 -22
  852. data/spec/unit/pops/types/task_spec.rb +148 -16
  853. data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
  854. data/spec/unit/pops/types/type_calculator_spec.rb +36 -36
  855. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
  856. data/spec/unit/pops/types/type_parser_spec.rb +13 -13
  857. data/spec/unit/pops/types/types_spec.rb +12 -6
  858. data/spec/unit/pops/validator/validator_spec.rb +162 -82
  859. data/spec/unit/pops/visitor_spec.rb +1 -0
  860. data/spec/unit/property/boolean_spec.rb +1 -1
  861. data/spec/unit/property/ensure_spec.rb +1 -0
  862. data/spec/unit/property/keyvalue_spec.rb +34 -32
  863. data/spec/unit/property/list_spec.rb +27 -26
  864. data/spec/unit/property/ordered_list_spec.rb +14 -10
  865. data/spec/unit/property_spec.rb +53 -43
  866. data/spec/unit/provider/aix_object_spec.rb +45 -47
  867. data/spec/unit/provider/command_spec.rb +9 -9
  868. data/spec/unit/provider/exec/posix_spec.rb +9 -8
  869. data/spec/unit/provider/exec/shell_spec.rb +3 -1
  870. data/spec/unit/provider/exec/windows_spec.rb +6 -4
  871. data/spec/unit/provider/exec_spec.rb +1 -209
  872. data/spec/unit/provider/file/posix_spec.rb +24 -22
  873. data/spec/unit/provider/file/windows_spec.rb +19 -17
  874. data/spec/unit/provider/group/aix_spec.rb +7 -22
  875. data/spec/unit/provider/group/groupadd_spec.rb +27 -60
  876. data/spec/unit/provider/group/ldap_spec.rb +36 -33
  877. data/spec/unit/provider/group/pw_spec.rb +18 -15
  878. data/spec/unit/provider/group/windows_adsi_spec.rb +80 -128
  879. data/spec/unit/provider/ldap_spec.rb +62 -61
  880. data/spec/unit/provider/nameservice/directoryservice_spec.rb +109 -102
  881. data/spec/unit/provider/nameservice_spec.rb +41 -39
  882. data/spec/unit/provider/package/aix_spec.rb +22 -48
  883. data/spec/unit/provider/package/appdmg_spec.rb +13 -13
  884. data/spec/unit/provider/package/apt_spec.rb +35 -60
  885. data/spec/unit/provider/package/aptitude_spec.rb +7 -7
  886. data/spec/unit/provider/package/aptrpm_spec.rb +13 -8
  887. data/spec/unit/provider/package/base_spec.rb +4 -4
  888. data/spec/unit/provider/package/dnf_spec.rb +23 -34
  889. data/spec/unit/provider/package/dpkg_spec.rb +72 -114
  890. data/spec/unit/provider/package/freebsd_spec.rb +18 -15
  891. data/spec/unit/provider/package/gem_spec.rb +86 -163
  892. data/spec/unit/provider/package/hpux_spec.rb +18 -15
  893. data/spec/unit/provider/package/macports_spec.rb +54 -56
  894. data/spec/unit/provider/package/nim_spec.rb +49 -33
  895. data/spec/unit/provider/package/openbsd_spec.rb +49 -60
  896. data/spec/unit/provider/package/opkg_spec.rb +26 -23
  897. data/spec/unit/provider/package/pacman_spec.rb +118 -97
  898. data/spec/unit/provider/package/pip3_spec.rb +6 -20
  899. data/spec/unit/provider/package/pip_spec.rb +129 -185
  900. data/spec/unit/provider/package/pkg_spec.rb +119 -129
  901. data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
  902. data/spec/unit/provider/package/pkgin_spec.rb +23 -20
  903. data/spec/unit/provider/package/pkgng_spec.rb +35 -67
  904. data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
  905. data/spec/unit/provider/package/portage_spec.rb +76 -72
  906. data/spec/unit/provider/package/puppet_gem_spec.rb +21 -45
  907. data/spec/unit/provider/package/rpm_spec.rb +79 -291
  908. data/spec/unit/provider/package/sun_spec.rb +18 -16
  909. data/spec/unit/provider/package/tdnf_spec.rb +12 -9
  910. data/spec/unit/provider/package/up2date_spec.rb +4 -2
  911. data/spec/unit/provider/package/urpmi_spec.rb +17 -15
  912. data/spec/unit/provider/package/windows/exe_package_spec.rb +18 -15
  913. data/spec/unit/provider/package/windows/msi_package_spec.rb +23 -20
  914. data/spec/unit/provider/package/windows/package_spec.rb +43 -38
  915. data/spec/unit/provider/package/windows_spec.rb +36 -51
  916. data/spec/unit/provider/package/yum_spec.rb +24 -128
  917. data/spec/unit/provider/package/zypper_spec.rb +106 -117
  918. data/spec/unit/provider/parsedfile_spec.rb +45 -44
  919. data/spec/unit/provider/service/base_spec.rb +6 -5
  920. data/spec/unit/provider/service/bsd_spec.rb +54 -47
  921. data/spec/unit/provider/service/daemontools_spec.rb +53 -70
  922. data/spec/unit/provider/service/debian_spec.rb +58 -46
  923. data/spec/unit/provider/service/freebsd_spec.rb +23 -20
  924. data/spec/unit/provider/service/gentoo_spec.rb +81 -74
  925. data/spec/unit/provider/service/init_spec.rb +66 -65
  926. data/spec/unit/provider/service/launchd_spec.rb +114 -181
  927. data/spec/unit/provider/service/openbsd_spec.rb +94 -87
  928. data/spec/unit/provider/service/openrc_spec.rb +74 -70
  929. data/spec/unit/provider/service/openwrt_spec.rb +38 -30
  930. data/spec/unit/provider/service/rcng_spec.rb +24 -19
  931. data/spec/unit/provider/service/redhat_spec.rb +60 -60
  932. data/spec/unit/provider/service/runit_spec.rb +44 -61
  933. data/spec/unit/provider/service/smf_spec.rb +74 -143
  934. data/spec/unit/provider/service/src_spec.rb +69 -60
  935. data/spec/unit/provider/service/systemd_spec.rb +160 -222
  936. data/spec/unit/provider/service/upstart_spec.rb +99 -83
  937. data/spec/unit/provider/service/windows_spec.rb +42 -84
  938. data/spec/unit/provider/user/aix_spec.rb +24 -65
  939. data/spec/unit/provider/user/directoryservice_spec.rb +114 -187
  940. data/spec/unit/provider/user/hpux_spec.rb +21 -17
  941. data/spec/unit/provider/user/ldap_spec.rb +83 -80
  942. data/spec/unit/provider/user/openbsd_spec.rb +12 -11
  943. data/spec/unit/provider/user/pw_spec.rb +44 -80
  944. data/spec/unit/provider/user/user_role_add_spec.rb +94 -94
  945. data/spec/unit/provider/user/useradd_spec.rb +100 -208
  946. data/spec/unit/provider/user/windows_adsi_spec.rb +63 -62
  947. data/spec/unit/provider_spec.rb +189 -41
  948. data/spec/unit/puppet_pal_2pec.rb +26 -12
  949. data/spec/unit/puppet_pal_catalog_spec.rb +801 -0
  950. data/spec/unit/puppet_pal_spec.rb +2 -8
  951. data/spec/unit/puppet_spec.rb +7 -27
  952. data/spec/unit/relationship_spec.rb +1 -0
  953. data/spec/unit/reports/http_spec.rb +23 -21
  954. data/spec/unit/reports/store_spec.rb +4 -3
  955. data/spec/unit/reports_spec.rb +14 -12
  956. data/spec/unit/resource/capability_finder_spec.rb +26 -29
  957. data/spec/unit/resource/catalog_spec.rb +77 -81
  958. data/spec/unit/resource/status_spec.rb +8 -6
  959. data/spec/unit/resource/type_collection_spec.rb +18 -17
  960. data/spec/unit/resource/type_spec.rb +35 -34
  961. data/spec/unit/resource_spec.rb +79 -67
  962. data/spec/unit/rest/client_spec.rb +135 -0
  963. data/spec/unit/rest/route_spec.rb +132 -0
  964. data/spec/unit/scheduler/job_spec.rb +1 -0
  965. data/spec/unit/scheduler/scheduler_spec.rb +1 -0
  966. data/spec/unit/scheduler/splay_job_spec.rb +2 -1
  967. data/spec/unit/settings/array_setting_spec.rb +1 -1
  968. data/spec/unit/settings/autosign_setting_spec.rb +9 -9
  969. data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
  970. data/spec/unit/settings/config_file_spec.rb +10 -0
  971. data/spec/unit/settings/directory_setting_spec.rb +7 -2
  972. data/spec/unit/settings/duration_setting_spec.rb +2 -1
  973. data/spec/unit/settings/enum_setting_spec.rb +1 -1
  974. data/spec/unit/settings/environment_conf_spec.rb +6 -4
  975. data/spec/unit/settings/file_setting_spec.rb +50 -46
  976. data/spec/unit/settings/ini_file_spec.rb +2 -4
  977. data/spec/unit/settings/path_setting_spec.rb +3 -2
  978. data/spec/unit/settings/priority_setting_spec.rb +2 -1
  979. data/spec/unit/settings/string_setting_spec.rb +15 -14
  980. data/spec/unit/settings/terminus_setting_spec.rb +2 -1
  981. data/spec/unit/settings/value_translator_spec.rb +1 -0
  982. data/spec/unit/settings_spec.rb +226 -253
  983. data/spec/unit/ssl/base_spec.rb +15 -14
  984. data/spec/unit/ssl/certificate_request_attributes_spec.rb +22 -8
  985. data/spec/unit/ssl/certificate_request_spec.rb +63 -92
  986. data/spec/unit/ssl/certificate_spec.rb +29 -37
  987. data/spec/unit/ssl/digest_spec.rb +1 -0
  988. data/spec/unit/ssl/host_spec.rb +305 -685
  989. data/spec/unit/ssl/key_spec.rb +34 -46
  990. data/spec/unit/ssl/validator_spec.rb +70 -203
  991. data/spec/unit/task_spec.rb +172 -26
  992. data/spec/unit/transaction/additional_resource_generator_spec.rb +68 -67
  993. data/spec/unit/transaction/event_manager_spec.rb +84 -95
  994. data/spec/unit/transaction/event_spec.rb +15 -16
  995. data/spec/unit/transaction/persistence_spec.rb +18 -17
  996. data/spec/unit/transaction/report_spec.rb +24 -18
  997. data/spec/unit/transaction/resource_harness_spec.rb +33 -72
  998. data/spec/unit/transaction_spec.rb +106 -176
  999. data/spec/unit/type/component_spec.rb +1 -0
  1000. data/spec/unit/type/exec_spec.rb +66 -120
  1001. data/spec/unit/type/file/checksum_spec.rb +11 -10
  1002. data/spec/unit/type/file/checksum_value_spec.rb +32 -31
  1003. data/spec/unit/type/file/content_spec.rb +62 -65
  1004. data/spec/unit/type/file/ctime_spec.rb +1 -0
  1005. data/spec/unit/type/file/ensure_spec.rb +13 -12
  1006. data/spec/unit/type/file/group_spec.rb +7 -5
  1007. data/spec/unit/type/file/mode_spec.rb +6 -4
  1008. data/spec/unit/type/file/mtime_spec.rb +1 -0
  1009. data/spec/unit/type/file/owner_spec.rb +8 -6
  1010. data/spec/unit/type/file/selinux_spec.rb +19 -17
  1011. data/spec/unit/type/file/source_spec.rb +110 -113
  1012. data/spec/unit/type/file/type_spec.rb +1 -0
  1013. data/spec/unit/type/file_spec.rb +190 -204
  1014. data/spec/unit/type/filebucket_spec.rb +10 -11
  1015. data/spec/unit/type/group_spec.rb +9 -15
  1016. data/spec/unit/type/noop_metaparam_spec.rb +2 -1
  1017. data/spec/unit/type/package/package_settings_spec.rb +23 -44
  1018. data/spec/unit/type/package_spec.rb +64 -61
  1019. data/spec/unit/type/resources_spec.rb +101 -103
  1020. data/spec/unit/type/schedule_spec.rb +28 -28
  1021. data/spec/unit/type/service_spec.rb +85 -76
  1022. data/spec/unit/type/stage_spec.rb +1 -0
  1023. data/spec/unit/type/tidy_spec.rb +63 -62
  1024. data/spec/unit/type/user_spec.rb +26 -147
  1025. data/spec/unit/type/whit_spec.rb +1 -0
  1026. data/spec/unit/type_spec.rb +164 -125
  1027. data/spec/unit/util/at_fork_spec.rb +19 -18
  1028. data/spec/unit/util/autoload_spec.rb +122 -93
  1029. data/spec/unit/util/backups_spec.rb +35 -34
  1030. data/spec/unit/util/character_encoding_spec.rb +5 -48
  1031. data/spec/unit/util/checksums_spec.rb +39 -38
  1032. data/spec/unit/util/colors_spec.rb +2 -1
  1033. data/spec/unit/util/command_line_spec.rb +20 -40
  1034. data/spec/unit/util/constant_inflector_spec.rb +1 -0
  1035. data/spec/unit/util/diff_spec.rb +8 -7
  1036. data/spec/unit/util/errors_spec.rb +1 -0
  1037. data/spec/unit/util/execution_spec.rb +167 -285
  1038. data/spec/unit/util/execution_stub_spec.rb +3 -2
  1039. data/spec/unit/util/feature_spec.rb +46 -28
  1040. data/spec/unit/util/filetype_spec.rb +53 -61
  1041. data/spec/unit/util/http_proxy_spec.rb +13 -133
  1042. data/spec/unit/util/inifile_spec.rb +31 -26
  1043. data/spec/unit/util/json_lockfile_spec.rb +5 -3
  1044. data/spec/unit/util/ldap/connection_spec.rb +25 -26
  1045. data/spec/unit/util/ldap/generator_spec.rb +1 -0
  1046. data/spec/unit/util/ldap/manager_spec.rb +102 -118
  1047. data/spec/unit/util/lockfile_spec.rb +2 -1
  1048. data/spec/unit/util/log/destinations_spec.rb +40 -23
  1049. data/spec/unit/util/log_spec.rb +146 -48
  1050. data/spec/unit/util/logging_spec.rb +114 -252
  1051. data/spec/unit/util/metric_spec.rb +1 -0
  1052. data/spec/unit/util/monkey_patches_spec.rb +12 -24
  1053. data/spec/unit/util/multi_match_spec.rb +1 -0
  1054. data/spec/unit/util/network_device/config_spec.rb +1 -0
  1055. data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
  1056. data/spec/unit/util/network_device_spec.rb +9 -7
  1057. data/spec/unit/util/package_spec.rb +1 -0
  1058. data/spec/unit/util/pidlock_spec.rb +14 -86
  1059. data/spec/unit/util/plist_spec.rb +33 -60
  1060. data/spec/unit/util/posix_spec.rb +47 -78
  1061. data/spec/unit/util/profiler/object_counts_spec.rb +2 -1
  1062. data/spec/unit/util/rdoc_spec.rb +10 -9
  1063. data/spec/unit/util/reference_spec.rb +1 -0
  1064. data/spec/unit/util/resource_template_spec.rb +20 -20
  1065. data/spec/unit/util/retry_action_spec.rb +8 -7
  1066. data/spec/unit/util/rubygems_spec.rb +7 -41
  1067. data/spec/unit/util/run_mode_spec.rb +11 -10
  1068. data/spec/unit/util/selinux_spec.rb +73 -84
  1069. data/spec/unit/util/splayer_spec.rb +9 -8
  1070. data/spec/unit/util/ssl_spec.rb +1 -0
  1071. data/spec/unit/util/storage_spec.rb +17 -111
  1072. data/spec/unit/util/suidmanager_spec.rb +58 -47
  1073. data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
  1074. data/spec/unit/util/tag_set_spec.rb +9 -1
  1075. data/spec/unit/util/tagging_spec.rb +12 -0
  1076. data/spec/unit/util/terminal_spec.rb +10 -9
  1077. data/spec/unit/util/user_attr_spec.rb +2 -1
  1078. data/spec/unit/util/warnings_spec.rb +4 -3
  1079. data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
  1080. data/spec/unit/util/watcher_spec.rb +21 -51
  1081. data/spec/unit/util/windows/access_control_entry_spec.rb +2 -1
  1082. data/spec/unit/util/windows/access_control_list_spec.rb +2 -1
  1083. data/spec/unit/util/windows/adsi_spec.rb +134 -278
  1084. data/spec/unit/util/windows/api_types_spec.rb +42 -105
  1085. data/spec/unit/util/windows/eventlog_spec.rb +13 -10
  1086. data/spec/unit/util/windows/file_spec.rb +1 -0
  1087. data/spec/unit/util/windows/root_certs_spec.rb +1 -0
  1088. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -1
  1089. data/spec/unit/util/windows/service_spec.rb +180 -432
  1090. data/spec/unit/util/windows/sid_spec.rb +17 -15
  1091. data/spec/unit/util/windows/string_spec.rb +2 -1
  1092. data/spec/unit/util/yaml_spec.rb +162 -28
  1093. data/spec/unit/util_spec.rb +74 -119
  1094. data/spec/unit/version_spec.rb +6 -6
  1095. data/tasks/benchmark.rake +5 -1
  1096. data/tasks/ci.rake +0 -5
  1097. data/tasks/manpages.rake +9 -2
  1098. data/tasks/parser.rake +11 -3
  1099. metadata +156 -473
  1100. data/CODEOWNERS +0 -30
  1101. data/ext/rack/config.ru +0 -44
  1102. data/ext/rack/example-passenger-vhost.conf +0 -57
  1103. data/lib/puppet/application/ca.rb +0 -11
  1104. data/lib/puppet/application/certificate.rb +0 -17
  1105. data/lib/puppet/application/certificate_request.rb +0 -7
  1106. data/lib/puppet/application/certificate_revocation_list.rb +0 -7
  1107. data/lib/puppet/application/master.rb +0 -319
  1108. data/lib/puppet/confine/boolean.rb +0 -45
  1109. data/lib/puppet/external/nagios.rb +0 -46
  1110. data/lib/puppet/external/nagios/base.rb +0 -472
  1111. data/lib/puppet/external/nagios/grammar.ry +0 -248
  1112. data/lib/puppet/external/nagios/makefile +0 -9
  1113. data/lib/puppet/external/nagios/parser.rb +0 -400
  1114. data/lib/puppet/face/ca.rb +0 -266
  1115. data/lib/puppet/face/certificate.rb +0 -167
  1116. data/lib/puppet/face/certificate_request.rb +0 -56
  1117. data/lib/puppet/face/certificate_revocation_list.rb +0 -56
  1118. data/lib/puppet/feature/rack.rb +0 -19
  1119. data/lib/puppet/graph/random_prioritizer.rb +0 -16
  1120. data/lib/puppet/graph/title_hash_prioritizer.rb +0 -16
  1121. data/lib/puppet/indirector/certificate/ca.rb +0 -9
  1122. data/lib/puppet/indirector/certificate/disabled_ca.rb +0 -22
  1123. data/lib/puppet/indirector/certificate_request/ca.rb +0 -22
  1124. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +0 -22
  1125. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +0 -8
  1126. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +0 -22
  1127. data/lib/puppet/indirector/certificate_revocation_list/file.rb +0 -8
  1128. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +0 -22
  1129. data/lib/puppet/indirector/certificate_status.rb +0 -4
  1130. data/lib/puppet/indirector/certificate_status/file.rb +0 -91
  1131. data/lib/puppet/indirector/certificate_status/rest.rb +0 -11
  1132. data/lib/puppet/indirector/key/ca.rb +0 -16
  1133. data/lib/puppet/indirector/key/disabled_ca.rb +0 -22
  1134. data/lib/puppet/indirector/ldap.rb +0 -86
  1135. data/lib/puppet/indirector/node/ldap.rb +0 -275
  1136. data/lib/puppet/indirector/node/write_only_yaml.rb +0 -39
  1137. data/lib/puppet/module_tool/applications/builder.rb +0 -152
  1138. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +0 -18
  1139. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +0 -89
  1140. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +0 -32
  1141. data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +0 -12
  1142. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +0 -48
  1143. data/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +0 -1
  1144. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +0 -6
  1145. data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +0 -1
  1146. data/lib/puppet/network/http/api/ca.rb +0 -2
  1147. data/lib/puppet/network/http/api/ca/v1.rb +0 -11
  1148. data/lib/puppet/network/http/rack.rb +0 -33
  1149. data/lib/puppet/network/http/rack/rest.rb +0 -162
  1150. data/lib/puppet/network/http/webrick.rb +0 -124
  1151. data/lib/puppet/network/http/webrick/rest.rb +0 -114
  1152. data/lib/puppet/network/server.rb +0 -39
  1153. data/lib/puppet/provider/augeas/augeas.rb +0 -767
  1154. data/lib/puppet/provider/cisco.rb +0 -9
  1155. data/lib/puppet/provider/computer/computer.rb +0 -20
  1156. data/lib/puppet/provider/cron/crontab.rb +0 -297
  1157. data/lib/puppet/provider/host/parsed.rb +0 -46
  1158. data/lib/puppet/provider/interface/cisco.rb +0 -27
  1159. data/lib/puppet/provider/macauthorization/macauthorization.rb +0 -298
  1160. data/lib/puppet/provider/mailalias/aliases.rb +0 -50
  1161. data/lib/puppet/provider/maillist/mailman.rb +0 -108
  1162. data/lib/puppet/provider/mcx/mcxcontent.rb +0 -173
  1163. data/lib/puppet/provider/mount.rb +0 -76
  1164. data/lib/puppet/provider/mount/parsed.rb +0 -285
  1165. data/lib/puppet/provider/naginator.rb +0 -63
  1166. data/lib/puppet/provider/package/dnfmodule.rb +0 -141
  1167. data/lib/puppet/provider/package_targetable.rb +0 -69
  1168. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +0 -590
  1169. data/lib/puppet/provider/selboolean/getsetsebool.rb +0 -47
  1170. data/lib/puppet/provider/selmodule/semodule.rb +0 -157
  1171. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +0 -105
  1172. data/lib/puppet/provider/sshkey/parsed.rb +0 -50
  1173. data/lib/puppet/provider/vlan/cisco.rb +0 -28
  1174. data/lib/puppet/provider/yumrepo/inifile.rb +0 -315
  1175. data/lib/puppet/provider/zfs/zfs.rb +0 -108
  1176. data/lib/puppet/provider/zone/solaris.rb +0 -364
  1177. data/lib/puppet/provider/zpool/zpool.rb +0 -125
  1178. data/lib/puppet/ssl/certificate_authority.rb +0 -554
  1179. data/lib/puppet/ssl/certificate_authority/autosign_command.rb +0 -45
  1180. data/lib/puppet/ssl/certificate_authority/interface.rb +0 -324
  1181. data/lib/puppet/ssl/certificate_revocation_list.rb +0 -111
  1182. data/lib/puppet/ssl/configuration.rb +0 -61
  1183. data/lib/puppet/ssl/inventory.rb +0 -55
  1184. data/lib/puppet/type/augeas.rb +0 -211
  1185. data/lib/puppet/type/computer.rb +0 -66
  1186. data/lib/puppet/type/cron.rb +0 -480
  1187. data/lib/puppet/type/host.rb +0 -95
  1188. data/lib/puppet/type/interface.rb +0 -121
  1189. data/lib/puppet/type/k5login.rb +0 -165
  1190. data/lib/puppet/type/macauthorization.rb +0 -167
  1191. data/lib/puppet/type/mailalias.rb +0 -46
  1192. data/lib/puppet/type/maillist.rb +0 -62
  1193. data/lib/puppet/type/mcx.rb +0 -98
  1194. data/lib/puppet/type/mount.rb +0 -314
  1195. data/lib/puppet/type/nagios_command.rb +0 -3
  1196. data/lib/puppet/type/nagios_contact.rb +0 -3
  1197. data/lib/puppet/type/nagios_contactgroup.rb +0 -3
  1198. data/lib/puppet/type/nagios_host.rb +0 -3
  1199. data/lib/puppet/type/nagios_hostdependency.rb +0 -3
  1200. data/lib/puppet/type/nagios_hostescalation.rb +0 -3
  1201. data/lib/puppet/type/nagios_hostextinfo.rb +0 -3
  1202. data/lib/puppet/type/nagios_hostgroup.rb +0 -3
  1203. data/lib/puppet/type/nagios_service.rb +0 -3
  1204. data/lib/puppet/type/nagios_servicedependency.rb +0 -3
  1205. data/lib/puppet/type/nagios_serviceescalation.rb +0 -3
  1206. data/lib/puppet/type/nagios_serviceextinfo.rb +0 -3
  1207. data/lib/puppet/type/nagios_servicegroup.rb +0 -3
  1208. data/lib/puppet/type/nagios_timeperiod.rb +0 -3
  1209. data/lib/puppet/type/router.rb +0 -17
  1210. data/lib/puppet/type/scheduled_task.rb +0 -183
  1211. data/lib/puppet/type/selboolean.rb +0 -40
  1212. data/lib/puppet/type/selmodule.rb +0 -58
  1213. data/lib/puppet/type/ssh_authorized_key.rb +0 -143
  1214. data/lib/puppet/type/sshkey.rb +0 -83
  1215. data/lib/puppet/type/vlan.rb +0 -26
  1216. data/lib/puppet/type/yumrepo.rb +0 -430
  1217. data/lib/puppet/type/zfs.rb +0 -154
  1218. data/lib/puppet/type/zone.rb +0 -382
  1219. data/lib/puppet/type/zpool.rb +0 -91
  1220. data/lib/puppet/util/methodhelper.rb +0 -32
  1221. data/lib/puppet/util/nagios_maker.rb +0 -85
  1222. data/lib/puppet/util/network_device/cisco.rb +0 -4
  1223. data/lib/puppet/util/network_device/cisco/device.rb +0 -285
  1224. data/lib/puppet/util/network_device/cisco/facts.rb +0 -72
  1225. data/lib/puppet/util/network_device/cisco/interface.rb +0 -94
  1226. data/lib/puppet/util/network_device/ipcalc.rb +0 -68
  1227. data/lib/puppet/util/network_device/transport/ssh.rb +0 -126
  1228. data/lib/puppet/util/network_device/transport/telnet.rb +0 -47
  1229. data/lib/puppet/util/windows/taskscheduler.rb +0 -1267
  1230. data/lib/puppet/vendor/load_semantic.rb +0 -1
  1231. data/lib/puppet/vendor/load_semantic_puppet.rb +0 -1
  1232. data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -5
  1233. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +0 -11
  1234. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency.rb +0 -181
  1235. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph.rb +0 -60
  1236. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph_node.rb +0 -117
  1237. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +0 -58
  1238. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/source.rb +0 -25
  1239. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/unsatisfiable_graph.rb +0 -31
  1240. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +0 -3
  1241. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +0 -203
  1242. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +0 -758
  1243. data/lib/puppet/vendor/semantic_puppet/locales/config.yaml +0 -21
  1244. data/man/man8/puppet-ca.8 +0 -196
  1245. data/man/man8/puppet-cert.8 +0 -118
  1246. data/man/man8/puppet-certificate.8 +0 -240
  1247. data/man/man8/puppet-certificate_request.8 +0 -161
  1248. data/man/man8/puppet-certificate_revocation_list.8 +0 -139
  1249. data/man/man8/puppet-master.8 +0 -85
  1250. data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +0 -19
  1251. data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +0 -18
  1252. data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +0 -15
  1253. data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +0 -4
  1254. data/spec/fixtures/integration/provider/cron/crontab/modify_entry +0 -13
  1255. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +0 -15
  1256. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +0 -6
  1257. data/spec/fixtures/integration/provider/cron/crontab/purged +0 -8
  1258. data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +0 -12
  1259. data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +0 -14
  1260. data/spec/fixtures/integration/provider/cron/crontab/unspecialized +0 -15
  1261. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +0 -32
  1262. data/spec/fixtures/integration/provider/sshkey/sample +0 -21
  1263. data/spec/fixtures/unit/provider/augeas/augeas/augeas/lenses/test.aug +0 -13
  1264. data/spec/fixtures/unit/provider/augeas/augeas/etc/fstab +0 -10
  1265. data/spec/fixtures/unit/provider/augeas/augeas/etc/hosts +0 -6
  1266. data/spec/fixtures/unit/provider/augeas/augeas/etc/test +0 -3
  1267. data/spec/fixtures/unit/provider/augeas/augeas/test.aug +0 -13
  1268. data/spec/fixtures/unit/provider/host/parsed/valid_hosts +0 -19
  1269. data/spec/fixtures/unit/provider/mount/mount-output.aix.txt +0 -7
  1270. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +0 -152
  1271. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +0 -11
  1272. data/spec/fixtures/unit/provider/mount/parsed/darwin.mount +0 -6
  1273. data/spec/fixtures/unit/provider/mount/parsed/freebsd.fstab +0 -9
  1274. data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +0 -4
  1275. data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +0 -17
  1276. data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +0 -12
  1277. data/spec/fixtures/unit/provider/mount/parsed/linux.mount +0 -6
  1278. data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +0 -10
  1279. data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +0 -9
  1280. data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +0 -5
  1281. data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +0 -5
  1282. data/spec/fixtures/unit/provider/mount/parsed/solaris.fstab +0 -11
  1283. data/spec/fixtures/unit/provider/mount/parsed/solaris.mount +0 -6
  1284. data/spec/fixtures/unit/provider/naginator/define_empty_param +0 -6
  1285. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +0 -19
  1286. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +0 -9
  1287. data/spec/fixtures/unit/provider/service/smf/svcs_fmri.out +0 -6
  1288. data/spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out +0 -13
  1289. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys +0 -7
  1290. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys1 +0 -3
  1291. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys2 +0 -1
  1292. data/spec/fixtures/unit/provider/sshkey/parsed/sample +0 -21
  1293. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +0 -8
  1294. data/spec/fixtures/unit/provider/zfs/zfs/zfs-list.out +0 -2
  1295. data/spec/fixtures/unit/provider/zpool/zpool/zpool-list.out +0 -2
  1296. data/spec/integration/faces/ca_spec.rb +0 -353
  1297. data/spec/integration/indirector/node/ldap_spec.rb +0 -13
  1298. data/spec/integration/network/http_pool_spec.rb +0 -120
  1299. data/spec/integration/provider/cron/crontab_spec.rb +0 -240
  1300. data/spec/integration/provider/file/windows_spec.rb +0 -162
  1301. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -9
  1302. data/spec/integration/provider/mount_spec.rb +0 -163
  1303. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -217
  1304. data/spec/integration/provider/sshkey_spec.rb +0 -153
  1305. data/spec/integration/provider/yumrepo_spec.rb +0 -126
  1306. data/spec/integration/ssl/autosign_spec.rb +0 -145
  1307. data/spec/integration/ssl/certificate_authority_spec.rb +0 -161
  1308. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -33
  1309. data/spec/integration/transaction_spec.rb +0 -553
  1310. data/spec/integration/type/nagios_spec.rb +0 -69
  1311. data/spec/integration/type/notify_spec.rb +0 -46
  1312. data/spec/integration/type/user_spec.rb +0 -63
  1313. data/spec/lib/puppet_spec/https.rb +0 -166
  1314. data/spec/unit/application/cert_spec.rb +0 -272
  1315. data/spec/unit/application/certificate_spec.rb +0 -21
  1316. data/spec/unit/application/master_spec.rb +0 -414
  1317. data/spec/unit/face/ca_spec.rb +0 -9
  1318. data/spec/unit/face/certificate_request_spec.rb +0 -9
  1319. data/spec/unit/face/certificate_revocation_list_spec.rb +0 -9
  1320. data/spec/unit/face/certificate_spec.rb +0 -228
  1321. data/spec/unit/face/module/build_spec.rb +0 -69
  1322. data/spec/unit/graph/title_hash_prioritizer_spec.rb +0 -50
  1323. data/spec/unit/indirector/certificate/ca_spec.rb +0 -21
  1324. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -32
  1325. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -56
  1326. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -32
  1327. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -15
  1328. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -32
  1329. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -16
  1330. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -33
  1331. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -190
  1332. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -17
  1333. data/spec/unit/indirector/code_spec.rb +0 -30
  1334. data/spec/unit/indirector/key/ca_spec.rb +0 -22
  1335. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -32
  1336. data/spec/unit/indirector/ldap_spec.rb +0 -151
  1337. data/spec/unit/indirector/node/ldap_spec.rb +0 -463
  1338. data/spec/unit/indirector/node/write_only_yaml_spec.rb +0 -11
  1339. data/spec/unit/module_tool/applications/builder_spec.rb +0 -439
  1340. data/spec/unit/network/http/api/ca/v1_spec.rb +0 -26
  1341. data/spec/unit/network/http/rack/rest_spec.rb +0 -322
  1342. data/spec/unit/network/http/rack_spec.rb +0 -42
  1343. data/spec/unit/network/http/webrick/rest_spec.rb +0 -230
  1344. data/spec/unit/network/http/webrick_spec.rb +0 -277
  1345. data/spec/unit/network/server_spec.rb +0 -94
  1346. data/spec/unit/provider/augeas/augeas_spec.rb +0 -1096
  1347. data/spec/unit/provider/cisco_spec.rb +0 -14
  1348. data/spec/unit/provider/cron/crontab_spec.rb +0 -206
  1349. data/spec/unit/provider/cron/parsed_spec.rb +0 -355
  1350. data/spec/unit/provider/host/parsed_spec.rb +0 -219
  1351. data/spec/unit/provider/interface/cisco_spec.rb +0 -53
  1352. data/spec/unit/provider/macauthorization_spec.rb +0 -134
  1353. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -190
  1354. data/spec/unit/provider/mount/parsed_spec.rb +0 -318
  1355. data/spec/unit/provider/mount_spec.rb +0 -169
  1356. data/spec/unit/provider/naginator_spec.rb +0 -78
  1357. data/spec/unit/provider/network_device_spec.rb +0 -152
  1358. data/spec/unit/provider/package/dnfmodule_spec.rb +0 -247
  1359. data/spec/unit/provider/package_targetable_spec.rb +0 -60
  1360. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +0 -2050
  1361. data/spec/unit/provider/selboolean_spec.rb +0 -34
  1362. data/spec/unit/provider/selmodule-example.pp +0 -0
  1363. data/spec/unit/provider/selmodule_spec.rb +0 -154
  1364. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -259
  1365. data/spec/unit/provider/sshkey/parsed_spec.rb +0 -92
  1366. data/spec/unit/provider/vlan/cisco_spec.rb +0 -53
  1367. data/spec/unit/provider/yumrepo/inifile_spec.rb +0 -413
  1368. data/spec/unit/provider/zfs/zfs_spec.rb +0 -171
  1369. data/spec/unit/provider/zone/solaris_spec.rb +0 -261
  1370. data/spec/unit/provider/zpool/zpool_spec.rb +0 -250
  1371. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  1372. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +0 -29
  1373. data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -563
  1374. data/spec/unit/ssl/certificate_authority_spec.rb +0 -1165
  1375. data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -196
  1376. data/spec/unit/ssl/configuration_spec.rb +0 -138
  1377. data/spec/unit/ssl/inventory_spec.rb +0 -155
  1378. data/spec/unit/test/test_helper_spec.rb +0 -17
  1379. data/spec/unit/type/augeas_spec.rb +0 -120
  1380. data/spec/unit/type/computer_spec.rb +0 -77
  1381. data/spec/unit/type/cron_spec.rb +0 -539
  1382. data/spec/unit/type/host_spec.rb +0 -680
  1383. data/spec/unit/type/interface_spec.rb +0 -128
  1384. data/spec/unit/type/k5login_spec.rb +0 -204
  1385. data/spec/unit/type/macauthorization_spec.rb +0 -111
  1386. data/spec/unit/type/mailalias_spec.rb +0 -48
  1387. data/spec/unit/type/maillist_spec.rb +0 -38
  1388. data/spec/unit/type/mcx_spec.rb +0 -75
  1389. data/spec/unit/type/mount_spec.rb +0 -622
  1390. data/spec/unit/type/nagios_spec.rb +0 -312
  1391. data/spec/unit/type/scheduled_task_spec.rb +0 -117
  1392. data/spec/unit/type/selboolean_spec.rb +0 -41
  1393. data/spec/unit/type/selmodule_spec.rb +0 -16
  1394. data/spec/unit/type/ssh_authorized_key_spec.rb +0 -228
  1395. data/spec/unit/type/sshkey_spec.rb +0 -75
  1396. data/spec/unit/type/vlan_spec.rb +0 -42
  1397. data/spec/unit/type/yumrepo_spec.rb +0 -476
  1398. data/spec/unit/type/zfs_spec.rb +0 -45
  1399. data/spec/unit/type/zone_spec.rb +0 -182
  1400. data/spec/unit/type/zpool_spec.rb +0 -108
  1401. data/spec/unit/util/nagios_maker_spec.rb +0 -121
  1402. data/spec/unit/util/network_device/cisco/device_spec.rb +0 -491
  1403. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -63
  1404. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -97
  1405. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -61
  1406. data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -252
  1407. data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -90
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ #! /usr/bin/env ruby
2
+ # encoding: UTF-8
2
3
  require 'spec_helper'
3
4
 
4
5
  describe Puppet::Type.type(:user) do
@@ -12,7 +13,7 @@ describe Puppet::Type.type(:user) do
12
13
  def flush; end
13
14
  def self.instances; []; end
14
15
  end
15
- allow(described_class).to receive(:defaultprovider).and_return(@provider_class)
16
+ described_class.stubs(:defaultprovider).returns @provider_class
16
17
  end
17
18
 
18
19
  it "should be able to create an instance" do
@@ -64,12 +65,12 @@ describe Puppet::Type.type(:user) do
64
65
  end
65
66
 
66
67
  it "cannot be set to true for a provider that does not manage homedirs" do
67
- allow(provider.class).to receive(:manages_homedir?).and_return(false)
68
+ provider.class.stubs(:manages_homedir?).returns false
68
69
  expect { instance[:managehome] = 'yes' }.to raise_error(Puppet::Error, /can not manage home directories/)
69
70
  end
70
71
 
71
72
  it "can be set to true for a provider that does manage homedirs" do
72
- allow(provider.class).to receive(:manages_homedir?).and_return(true)
73
+ provider.class.stubs(:manages_homedir?).returns true
73
74
  instance[:managehome] = 'yes'
74
75
  end
75
76
  end
@@ -126,8 +127,8 @@ describe Puppet::Type.type(:user) do
126
127
  end
127
128
 
128
129
  it "should set all values to :absent if the user is absent" do
129
- expect(@user.property(:ensure)).to receive(:retrieve).and_return(:absent)
130
- expect(@user.property(:uid)).not_to receive(:retrieve)
130
+ @user.property(:ensure).expects(:retrieve).returns :absent
131
+ @user.property(:uid).expects(:retrieve).never
131
132
  expect(@user.retrieve[@user.property(:uid)]).to eq(:absent)
132
133
  end
133
134
 
@@ -147,13 +148,13 @@ describe Puppet::Type.type(:user) do
147
148
 
148
149
  it "should call :create on the provider when asked to sync to the :present state" do
149
150
  @provider = @provider_class.new(:name => 'foo', :ensure => :absent)
150
- expect(@provider).to receive(:create)
151
+ @provider.expects(:create)
151
152
  described_class.new(:name => 'foo', :ensure => :present, :provider => @provider).parameter(:ensure).sync
152
153
  end
153
154
 
154
155
  it "should call :delete on the provider when asked to sync to the :absent state" do
155
156
  @provider = @provider_class.new(:name => 'foo', :ensure => :present)
156
- expect(@provider).to receive(:delete)
157
+ @provider.expects(:delete)
157
158
  described_class.new(:name => 'foo', :ensure => :absent, :provider => @provider).parameter(:ensure).sync
158
159
  end
159
160
 
@@ -211,27 +212,27 @@ describe Puppet::Type.type(:user) do
211
212
  end
212
213
 
213
214
  it "should return true if any of the specified groups are equal to the current integer" do
214
- expect(Puppet::Util).to receive(:gid).with("foo").and_return(300)
215
- expect(Puppet::Util).to receive(:gid).with("bar").and_return(500)
215
+ Puppet::Util.expects(:gid).with("foo").returns 300
216
+ Puppet::Util.expects(:gid).with("bar").returns 500
216
217
  expect(described_class.new(:name => 'baz', :gid => [ 'foo', 'bar' ]).parameter(:gid)).to be_safe_insync(500)
217
218
  end
218
219
 
219
220
  it "should return false if none of the specified groups are equal to the current integer" do
220
- expect(Puppet::Util).to receive(:gid).with("foo").and_return(300)
221
- expect(Puppet::Util).to receive(:gid).with("bar").and_return(500)
221
+ Puppet::Util.expects(:gid).with("foo").returns 300
222
+ Puppet::Util.expects(:gid).with("bar").returns 500
222
223
  expect(described_class.new(:name => 'baz', :gid => [ 'foo', 'bar' ]).parameter(:gid)).to_not be_safe_insync(700)
223
224
  end
224
225
  end
225
226
 
226
227
  describe "when syncing" do
227
228
  it "should use the first found, specified group as the desired value and send it to the provider" do
228
- expect(Puppet::Util).to receive(:gid).with("foo").and_return(nil)
229
- expect(Puppet::Util).to receive(:gid).with("bar").and_return(500)
229
+ Puppet::Util.expects(:gid).with("foo").returns nil
230
+ Puppet::Util.expects(:gid).with("bar").returns 500
230
231
 
231
232
  @provider = @provider_class.new(:name => 'foo')
232
233
  resource = described_class.new(:name => 'foo', :provider => @provider, :gid => [ 'foo', 'bar' ])
233
234
 
234
- expect(@provider).to receive(:gid=).with(500)
235
+ @provider.expects(:gid=).with 500
235
236
  resource.parameter(:gid).sync
236
237
  end
237
238
  end
@@ -256,6 +257,7 @@ describe Puppet::Type.type(:user) do
256
257
  end
257
258
 
258
259
  describe "when testing is in sync" do
260
+
259
261
  before :each do
260
262
  # the useradd provider uses a single string to represent groups and so does Puppet::Property::List when converting to should values
261
263
  @provider = @provider_class.new(:name => 'foo', :groups => 'a,b,e,f')
@@ -364,7 +366,7 @@ describe Puppet::Type.type(:user) do
364
366
  # useradd subclasses nameservice and thus inherits #comments_insync?
365
367
  user = described_class.new(:name => 'foo', :comment => @value, :provider => :useradd)
366
368
  comment_property = user.properties.find {|p| p.name == :comment}
367
- expect(user.provider).to receive(:comments_insync?)
369
+ user.provider.expects(:comments_insync?)
368
370
  comment_property.insync?('bar')
369
371
  end
370
372
 
@@ -372,7 +374,6 @@ describe Puppet::Type.type(:user) do
372
374
  let(:is) { "\u2603" }
373
375
  let(:should) { "\u06FF" }
374
376
  let(:comment_property) { @user.properties.find { |p| p.name == :comment } }
375
-
376
377
  context "given is and should strings with incompatible encoding" do
377
378
  it "should return a formatted string" do
378
379
  is.force_encoding(Encoding::ASCII_8BIT)
@@ -408,7 +409,7 @@ describe Puppet::Type.type(:user) do
408
409
  Puppet::Resource::Catalog.new :testing do |conf|
409
410
  [testuser, testrole].each { |resource| conf.add_resource resource }
410
411
  end
411
- allow(Puppet::Type::User::ProviderDirectoryservice).to receive(:get_macosx_version_major).and_return("10.5")
412
+ Puppet::Type::User::ProviderDirectoryservice.stubs(:get_macosx_version_major).returns "10.5"
412
413
 
413
414
  rel = testuser.autorequire[0]
414
415
  expect(rel.source.ref).to eq(testrole.ref)
@@ -430,15 +431,15 @@ describe Puppet::Type.type(:user) do
430
431
  def check_valid_shell; end
431
432
  end
432
433
 
433
- allow(described_class).to receive(:defaultprovider).and_return(@shell_provider_class)
434
+ described_class.stubs(:defaultprovider).returns @shell_provider_class
434
435
  end
435
436
 
436
437
  it "should call :check_valid_shell on the provider when changing shell value" do
437
438
  @provider = @shell_provider_class.new(:name => 'foo', :shell => '/bin/bash', :ensure => :present)
438
- expect(@provider).to receive(:check_valid_shell)
439
+ @provider.expects(:check_valid_shell)
439
440
  resource = described_class.new(:name => 'foo', :shell => '/bin/zsh', :provider => @provider)
440
- allow(Puppet::Util::Storage).to receive(:load)
441
- allow(Puppet::Util::Storage).to receive(:store)
441
+ Puppet::Util::Storage.stubs(:load)
442
+ Puppet::Util::Storage.stubs(:store)
442
443
  catalog = Puppet::Resource::Catalog.new
443
444
  catalog.add_resource resource
444
445
  catalog.apply
@@ -446,135 +447,13 @@ describe Puppet::Type.type(:user) do
446
447
 
447
448
  it "should call :check_valid_shell on the provider when changing ensure from present to absent" do
448
449
  @provider = @shell_provider_class.new(:name => 'foo', :shell => '/bin/bash', :ensure => :absent)
449
- expect(@provider).to receive(:check_valid_shell)
450
+ @provider.expects(:check_valid_shell)
450
451
  resource = described_class.new(:name => 'foo', :shell => '/bin/zsh', :provider => @provider)
451
- allow(Puppet::Util::Storage).to receive(:load)
452
- allow(Puppet::Util::Storage).to receive(:store)
452
+ Puppet::Util::Storage.stubs(:load)
453
+ Puppet::Util::Storage.stubs(:store)
453
454
  catalog = Puppet::Resource::Catalog.new
454
455
  catalog.add_resource resource
455
456
  catalog.apply
456
457
  end
457
458
  end
458
-
459
- describe "when purging ssh keys" do
460
- it "should not accept a keyfile with a relative path" do
461
- expect {
462
- described_class.new(:name => "a", :purge_ssh_keys => "keys")
463
- }.to raise_error(Puppet::Error, /Paths to keyfiles must be absolute, not keys/)
464
- end
465
-
466
- context "with a home directory specified" do
467
- it "should accept true" do
468
- described_class.new(:name => "a", :home => "/tmp", :purge_ssh_keys => true)
469
- end
470
-
471
- it "should accept the ~ wildcard" do
472
- described_class.new(:name => "a", :home => "/tmp", :purge_ssh_keys => "~/keys")
473
- end
474
-
475
- it "should accept the %h wildcard" do
476
- described_class.new(:name => "a", :home => "/tmp", :purge_ssh_keys => "%h/keys")
477
- end
478
-
479
- it "raises when given a relative path" do
480
- expect {
481
- described_class.new(:name => "a", :home => "/tmp", :purge_ssh_keys => "keys")
482
- }.to raise_error(Puppet::Error, /Paths to keyfiles must be absolute/)
483
- end
484
- end
485
-
486
- context "with no home directory specified" do
487
- before(:each) do
488
- allow(Dir).to receive(:home).with('a').and_return('/home/a')
489
- end
490
-
491
- it "should accept true" do
492
- described_class.new(:name => "a", :purge_ssh_keys => true)
493
- end
494
-
495
- it "should accept the ~ wildcard" do
496
- described_class.new(:name => "a", :purge_ssh_keys => "~/keys")
497
- end
498
-
499
- it "should accept the %h wildcard" do
500
- described_class.new(:name => "a", :purge_ssh_keys => "%h/keys")
501
- end
502
- end
503
-
504
- context "with a valid parameter" do
505
- let(:paths) do
506
- [ "/dev/null", "/tmp/keyfile" ].map { |path| File.expand_path(path) }
507
- end
508
-
509
- before(:each) do
510
- allow(Dir).to receive(:home).with('test').and_return('/home/test')
511
- end
512
-
513
- subject do
514
- res = described_class.new(:name => "test", :purge_ssh_keys => paths)
515
- res.catalog = Puppet::Resource::Catalog.new
516
- res
517
- end
518
-
519
- it "should not just return from generate" do
520
- expect(subject).to receive(:find_unmanaged_keys)
521
- subject.generate
522
- end
523
-
524
- it "should check each keyfile for readability" do
525
- paths.each do |path|
526
- expect(File).to receive(:readable?).with(path)
527
- end
528
- subject.generate
529
- end
530
- end
531
-
532
- describe "generated keys" do
533
- subject do
534
- res = described_class.new(:name => "test_user_name", :purge_ssh_keys => purge_param)
535
- res.catalog = Puppet::Resource::Catalog.new
536
- res
537
- end
538
-
539
- before(:each) do
540
- allow(Dir).to receive(:home).with('test_user_name').and_return('/home/test_user_name')
541
- end
542
-
543
- context "when purging is disabled" do
544
- let(:purge_param) { false }
545
-
546
- its(:generate) { should be_empty }
547
- end
548
-
549
- context "when purging is enabled" do
550
- let(:purge_param) { my_fixture('authorized_keys') }
551
- let(:resources) { subject.generate }
552
-
553
- it "should contain a resource for each key" do
554
- names = resources.collect { |res| res.name }
555
- expect(names).to include("key1 name")
556
- expect(names).to include("keyname2")
557
- end
558
-
559
- it "should not include keys in comment lines" do
560
- names = resources.collect { |res| res.name }
561
- expect(names).not_to include("keyname3")
562
- end
563
-
564
- it "should generate names for unnamed keys" do
565
- names = resources.collect { |res| res.name }
566
- fixture_path = File.join(my_fixture_dir, 'authorized_keys')
567
- expect(names).to include("#{fixture_path}:unnamed-1")
568
- end
569
-
570
- it "should each have a value for the user property" do
571
- expect(resources.map { |res|
572
- res[:user]
573
- }.reject { |user_name|
574
- user_name == "test_user_name"
575
- }).to be_empty
576
- end
577
- end
578
- end
579
- end
580
459
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
 
3
4
  whit = Puppet::Type.type(:whit)
@@ -1,10 +1,45 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet_spec/compiler'
4
+ require 'puppet/property/boolean'
5
+
6
+ Puppet::Type.newtype(:type_test) do
7
+ ensurable
8
+ newparam(:name, isnamevar: true)
9
+ newproperty(:device)
10
+ newproperty(:blockdevice)
11
+ newproperty(:fstype)
12
+ newproperty(:options)
13
+ newproperty(:pass)
14
+ newproperty(:atboot, parent: Puppet::Property::Boolean) do
15
+ def munge(value)
16
+ munged = super
17
+ if munged
18
+ :yes
19
+ else
20
+ :no
21
+ end
22
+ end
23
+ end
24
+ newparam(:remounts) do
25
+ newvalues(:true, :false)
26
+ defaultto do
27
+ true
28
+ end
29
+ end
30
+ end
31
+ Puppet::Type.type(:type_test).provide(:type_test) do
32
+ mk_resource_methods
33
+ end
3
34
 
4
- describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
35
+ describe Puppet::Type, :unless => Puppet::Util::Platform.windows? do
5
36
  include PuppetSpec::Files
6
37
  include PuppetSpec::Compiler
7
38
 
39
+ let(:resource_type) { :type_test }
40
+ let(:klass) { Puppet::Type.type(resource_type) }
41
+ let(:ref_type) { klass.name.to_s.capitalize }
42
+
8
43
  it "should be Comparable" do
9
44
  a = Puppet::Type.type(:notify).new(:name => "a")
10
45
  b = Puppet::Type.type(:notify).new(:name => "b")
@@ -28,34 +63,34 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
28
63
  end
29
64
 
30
65
  it "should consider a parameter to be valid if it is a valid parameter" do
31
- expect(Puppet::Type.type(:mount)).to be_valid_parameter(:name)
66
+ expect(klass).to be_valid_parameter(:name)
32
67
  end
33
68
 
34
69
  it "should consider a parameter to be valid if it is a valid property" do
35
- expect(Puppet::Type.type(:mount)).to be_valid_parameter(:fstype)
70
+ expect(klass).to be_valid_parameter(:fstype)
36
71
  end
37
72
 
38
73
  it "should consider a parameter to be valid if it is a valid metaparam" do
39
- expect(Puppet::Type.type(:mount)).to be_valid_parameter(:noop)
74
+ expect(klass).to be_valid_parameter(:noop)
40
75
  end
41
76
 
42
77
  it "should be able to retrieve a property by name" do
43
- resource = Puppet::Type.type(:mount).new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
44
- expect(resource.property(:fstype)).to be_instance_of(Puppet::Type.type(:mount).attrclass(:fstype))
78
+ resource = klass.new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
79
+ expect(resource.property(:fstype)).to be_instance_of(klass.attrclass(:fstype))
45
80
  end
46
81
 
47
82
  it "should be able to retrieve a parameter by name" do
48
- resource = Puppet::Type.type(:mount).new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
49
- expect(resource.parameter(:name)).to be_instance_of(Puppet::Type.type(:mount).attrclass(:name))
83
+ resource = klass.new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
84
+ expect(resource.parameter(:name)).to be_instance_of(klass.attrclass(:name))
50
85
  end
51
86
 
52
87
  it "should be able to retrieve a property by name using the :parameter method" do
53
- resource = Puppet::Type.type(:mount).new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
54
- expect(resource.parameter(:fstype)).to be_instance_of(Puppet::Type.type(:mount).attrclass(:fstype))
88
+ resource = klass.new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
89
+ expect(resource.parameter(:fstype)).to be_instance_of(klass.attrclass(:fstype))
55
90
  end
56
91
 
57
92
  it "should be able to retrieve all set properties" do
58
- resource = Puppet::Type.type(:mount).new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
93
+ resource = klass.new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
59
94
  props = resource.properties
60
95
  expect(props).not_to be_include(nil)
61
96
  [:fstype, :ensure, :pass].each do |name|
@@ -64,15 +99,15 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
64
99
  end
65
100
 
66
101
  it "can retrieve all set parameters" do
67
- resource = Puppet::Type.type(:mount).new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present, :tag => 'foo')
102
+ resource = klass.new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present, :tag => 'foo')
68
103
  params = resource.parameters_with_value
69
- [:name, :provider, :ensure, :fstype, :pass, :dump, :target, :loglevel, :tag].each do |name|
104
+ [:name, :provider, :ensure, :fstype, :pass, :loglevel, :tag].each do |name|
70
105
  expect(params).to be_include(resource.parameter(name))
71
106
  end
72
107
  end
73
108
 
74
109
  it "can not return any `nil` values when retrieving all set parameters" do
75
- resource = Puppet::Type.type(:mount).new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present, :tag => 'foo')
110
+ resource = klass.new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present, :tag => 'foo')
76
111
  params = resource.parameters_with_value
77
112
  expect(params).not_to be_include(nil)
78
113
  end
@@ -86,49 +121,49 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
86
121
  end
87
122
 
88
123
  it "should have a method for setting default values for resources" do
89
- expect(Puppet::Type.type(:mount).new(:name => "foo")).to respond_to(:set_default)
124
+ expect(klass.new(:name => "foo")).to respond_to(:set_default)
90
125
  end
91
126
 
92
127
  it "should do nothing for attributes that have no defaults and no specified value" do
93
- expect(Puppet::Type.type(:mount).new(:name => "foo").parameter(:noop)).to be_nil
128
+ expect(klass.new(:name => "foo").parameter(:noop)).to be_nil
94
129
  end
95
130
 
96
131
  it "should have a method for adding tags" do
97
- expect(Puppet::Type.type(:mount).new(:name => "foo")).to respond_to(:tags)
132
+ expect(klass.new(:name => "foo")).to respond_to(:tags)
98
133
  end
99
134
 
100
135
  it "should use the tagging module" do
101
- expect(Puppet::Type.type(:mount).ancestors).to be_include(Puppet::Util::Tagging)
136
+ expect(klass.ancestors).to be_include(Puppet::Util::Tagging)
102
137
  end
103
138
 
104
139
  it "should delegate to the tagging module when tags are added" do
105
- resource = Puppet::Type.type(:mount).new(:name => "foo")
106
- allow(resource).to receive(:tag).with(:mount)
140
+ resource = klass.new(:name => "foo")
141
+ resource.stubs(:tag).with(resource_type)
107
142
 
108
- expect(resource).to receive(:tag).with(:tag1, :tag2)
143
+ resource.expects(:tag).with(:tag1, :tag2)
109
144
 
110
145
  resource.tags = [:tag1,:tag2]
111
146
  end
112
147
 
113
148
  it "should add the current type as tag" do
114
- resource = Puppet::Type.type(:mount).new(:name => "foo")
115
- allow(resource).to receive(:tag)
149
+ resource = klass.new(:name => "foo")
150
+ resource.stubs(:tag)
116
151
 
117
- expect(resource).to receive(:tag).with(:mount)
152
+ resource.expects(:tag).with(resource_type)
118
153
 
119
154
  resource.tags = [:tag1,:tag2]
120
155
  end
121
156
 
122
157
  it "should have a method to know if the resource is exported" do
123
- expect(Puppet::Type.type(:mount).new(:name => "foo")).to respond_to(:exported?)
158
+ expect(klass.new(:name => "foo")).to respond_to(:exported?)
124
159
  end
125
160
 
126
161
  it "should have a method to know if the resource is virtual" do
127
- expect(Puppet::Type.type(:mount).new(:name => "foo")).to respond_to(:virtual?)
162
+ expect(klass.new(:name => "foo")).to respond_to(:virtual?)
128
163
  end
129
164
 
130
165
  it "should consider its version to be zero if it has no catalog" do
131
- expect(Puppet::Type.type(:mount).new(:name => "foo").version).to eq(0)
166
+ expect(klass.new(:name => "foo").version).to eq(0)
132
167
  end
133
168
 
134
169
  it "reports the correct path even after path is used during setup of the type" do
@@ -163,7 +198,7 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
163
198
 
164
199
  context "resource attributes" do
165
200
  let(:resource) {
166
- resource = Puppet::Type.type(:mount).new(:name => "foo")
201
+ resource = klass.new(:name => "foo")
167
202
  catalog = Puppet::Resource::Catalog.new
168
203
  catalog.version = 50
169
204
  catalog.add_resource resource
@@ -175,30 +210,30 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
175
210
  end
176
211
 
177
212
  it "should have tags" do
178
- expect(resource).to be_tagged("mount")
213
+ expect(resource).to be_tagged(resource_type.to_s)
179
214
  expect(resource).to be_tagged("foo")
180
215
  end
181
216
 
182
217
  it "should have a path" do
183
- expect(resource.path).to eq("/Mount[foo]")
218
+ expect(resource.path).to eq("/#{ref_type}[foo]")
184
219
  end
185
220
  end
186
221
 
187
222
  it "should consider its type to be the name of its class" do
188
- expect(Puppet::Type.type(:mount).new(:name => "foo").type).to eq(:mount)
223
+ expect(klass.new(:name => "foo").type).to eq(resource_type)
189
224
  end
190
225
 
191
226
  it "should use any provided noop value" do
192
- expect(Puppet::Type.type(:mount).new(:name => "foo", :noop => true)).to be_noop
227
+ expect(klass.new(:name => "foo", :noop => true)).to be_noop
193
228
  end
194
229
 
195
230
  it "should use the global noop value if none is provided" do
196
231
  Puppet[:noop] = true
197
- expect(Puppet::Type.type(:mount).new(:name => "foo")).to be_noop
232
+ expect(klass.new(:name => "foo")).to be_noop
198
233
  end
199
234
 
200
235
  it "should not be noop if in a non-host_config catalog" do
201
- resource = Puppet::Type.type(:mount).new(:name => "foo")
236
+ resource = klass.new(:name => "foo")
202
237
  catalog = Puppet::Resource::Catalog.new
203
238
  catalog.add_resource resource
204
239
  expect(resource).not_to be_noop
@@ -206,11 +241,11 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
206
241
 
207
242
  describe "when creating an event" do
208
243
  before do
209
- @resource = Puppet::Type.type(:mount).new :name => "foo"
244
+ @resource = klass.new :name => "foo"
210
245
  end
211
246
 
212
247
  it "should have the resource's reference as the resource" do
213
- expect(@resource.event.resource).to eq("Mount[foo]")
248
+ expect(@resource.event.resource).to eq("#{ref_type}[foo]")
214
249
  end
215
250
 
216
251
  it "should have the resource's log level as the default log level" do
@@ -220,7 +255,7 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
220
255
 
221
256
  {:file => "/my/file", :line => 50}.each do |attr, value|
222
257
  it "should set the #{attr}" do
223
- allow(@resource).to receive(attr).and_return(value)
258
+ @resource.stubs(attr).returns value
224
259
  expect(@resource.event.send(attr)).to eq(value)
225
260
  end
226
261
  end
@@ -359,8 +394,8 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
359
394
  basic = type.provide(:basic) {}
360
395
  greater = type.provide(:greater) {}
361
396
 
362
- allow(basic).to receive(:specificity).and_return(1)
363
- allow(greater).to receive(:specificity).and_return(2)
397
+ basic.stubs(:specificity).returns 1
398
+ greater.stubs(:specificity).returns 2
364
399
 
365
400
  expect(type.defaultprovider).to equal(greater)
366
401
  end
@@ -523,87 +558,87 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
523
558
  describe "when initializing" do
524
559
  describe "and passed a Puppet::Resource instance" do
525
560
  it "should set its title to the title of the resource if the resource type is equal to the current type" do
526
- resource = Puppet::Resource.new(:mount, "/foo", :parameters => {:name => "/other"})
527
- expect(Puppet::Type.type(:mount).new(resource).title).to eq("/foo")
561
+ resource = Puppet::Resource.new(resource_type, "/foo", :parameters => {:name => "/other"})
562
+ expect(klass.new(resource).title).to eq("/foo")
528
563
  end
529
564
 
530
565
  it "should set its title to the resource reference if the resource type is not equal to the current type" do
531
566
  resource = Puppet::Resource.new(:user, "foo")
532
- expect(Puppet::Type.type(:mount).new(resource).title).to eq("User[foo]")
567
+ expect(klass.new(resource).title).to eq("User[foo]")
533
568
  end
534
569
 
535
570
  [:line, :file, :catalog, :exported, :virtual].each do |param|
536
571
  it "should copy '#{param}' from the resource if present" do
537
- resource = Puppet::Resource.new(:mount, "/foo")
572
+ resource = Puppet::Resource.new(resource_type, "/foo")
538
573
  resource.send(param.to_s + "=", "foo")
539
574
  resource.send(param.to_s + "=", "foo")
540
- expect(Puppet::Type.type(:mount).new(resource).send(param)).to eq("foo")
575
+ expect(klass.new(resource).send(param)).to eq("foo")
541
576
  end
542
577
  end
543
578
 
544
579
  it "should copy any tags from the resource" do
545
- resource = Puppet::Resource.new(:mount, "/foo")
580
+ resource = Puppet::Resource.new(resource_type, "/foo")
546
581
  resource.tag "one", "two"
547
- tags = Puppet::Type.type(:mount).new(resource).tags
582
+ tags = klass.new(resource).tags
548
583
  expect(tags).to be_include("one")
549
584
  expect(tags).to be_include("two")
550
585
  end
551
586
 
552
587
  it "should copy the resource's parameters as its own" do
553
- resource = Puppet::Resource.new(:mount, "/foo", :parameters => {:atboot => :yes, :fstype => "boo"})
554
- params = Puppet::Type.type(:mount).new(resource).to_hash
588
+ resource = Puppet::Resource.new(resource_type, "/foo", :parameters => {:atboot => :yes, :fstype => "boo"})
589
+ params = klass.new(resource).to_hash
555
590
  expect(params[:fstype]).to eq("boo")
556
591
  expect(params[:atboot]).to eq(:yes)
557
592
  end
558
593
 
559
594
  it "copies sensitive parameters to the appropriate properties" do
560
- resource = Puppet::Resource.new(:mount, "/foo",
595
+ resource = Puppet::Resource.new(resource_type, "/foo",
561
596
  :parameters => {:atboot => :yes, :fstype => "boo"},
562
597
  :sensitive_parameters => [:fstype])
563
- type = Puppet::Type.type(:mount).new(resource)
598
+ type = klass.new(resource)
564
599
  expect(type.property(:fstype).sensitive).to eq true
565
600
  end
566
601
 
567
602
  it "logs a warning when a parameter is marked as sensitive" do
568
- resource = Puppet::Resource.new(:mount, "/foo",
603
+ resource = Puppet::Resource.new(resource_type, "/foo",
569
604
  :parameters => {:atboot => :yes, :fstype => "boo", :remounts => true},
570
605
  :sensitive_parameters => [:remounts])
571
- expect_any_instance_of(Puppet::Type.type(:mount)).to receive(:warning).with(/Unable to mark 'remounts' as sensitive: remounts is a parameter and not a property/)
572
- Puppet::Type.type(:mount).new(resource)
606
+ klass.any_instance.expects(:warning).with(regexp_matches(/Unable to mark 'remounts' as sensitive: remounts is a parameter and not a property/))
607
+ klass.new(resource)
573
608
  end
574
609
 
575
610
  it "logs a warning when a property is not set but is marked as sensitive" do
576
- resource = Puppet::Resource.new(:mount, "/foo",
611
+ resource = Puppet::Resource.new(resource_type, "/foo",
577
612
  :parameters => {:atboot => :yes, :fstype => "boo"},
578
613
  :sensitive_parameters => [:device])
579
- expect_any_instance_of(Puppet::Type.type(:mount)).to receive(:warning).with("Unable to mark 'device' as sensitive: the property itself was not assigned a value.")
580
- Puppet::Type.type(:mount).new(resource)
614
+ klass.any_instance.expects(:warning).with("Unable to mark 'device' as sensitive: the property itself was not assigned a value.")
615
+ klass.new(resource)
581
616
  end
582
617
 
583
618
  it "logs an error when a property is not defined on the type but is marked as sensitive" do
584
- resource = Puppet::Resource.new(:mount, "/foo",
619
+ resource = Puppet::Resource.new(resource_type, "/foo",
585
620
  :parameters => {:atboot => :yes, :fstype => "boo"},
586
621
  :sensitive_parameters => [:content])
587
- expect_any_instance_of(Puppet::Type.type(:mount)).to receive(:err).with("Unable to mark 'content' as sensitive: the property itself is not defined on mount.")
588
- Puppet::Type.type(:mount).new(resource)
622
+ klass.any_instance.expects(:err).with("Unable to mark 'content' as sensitive: the property itself is not defined on #{resource_type}.")
623
+ klass.new(resource)
589
624
  end
590
625
  end
591
626
 
592
627
  describe "and passed a Hash" do
593
628
  it "should extract the title from the hash" do
594
- expect(Puppet::Type.type(:mount).new(:title => "/yay").title).to eq("/yay")
629
+ expect(klass.new(:title => "/yay").title).to eq("/yay")
595
630
  end
596
631
 
597
632
  it "should work when hash keys are provided as strings" do
598
- expect(Puppet::Type.type(:mount).new("title" => "/yay").title).to eq("/yay")
633
+ expect(klass.new("title" => "/yay").title).to eq("/yay")
599
634
  end
600
635
 
601
636
  it "should work when hash keys are provided as symbols" do
602
- expect(Puppet::Type.type(:mount).new(:title => "/yay").title).to eq("/yay")
637
+ expect(klass.new(:title => "/yay").title).to eq("/yay")
603
638
  end
604
639
 
605
640
  it "should use the name from the hash as the title if no explicit title is provided" do
606
- expect(Puppet::Type.type(:mount).new(:name => "/yay").title).to eq("/yay")
641
+ expect(klass.new(:name => "/yay").title).to eq("/yay")
607
642
  end
608
643
 
609
644
  it "should use the Resource Type's namevar to determine how to find the name in the hash" do
@@ -613,19 +648,19 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
613
648
 
614
649
  [:catalog].each do |param|
615
650
  it "should extract '#{param}' from the hash if present" do
616
- expect(Puppet::Type.type(:mount).new(:name => "/yay", param => "foo").send(param)).to eq("foo")
651
+ expect(klass.new(:name => "/yay", param => "foo").send(param)).to eq("foo")
617
652
  end
618
653
  end
619
654
 
620
655
  it "should use any remaining hash keys as its parameters" do
621
- resource = Puppet::Type.type(:mount).new(:title => "/foo", :catalog => "foo", :atboot => :yes, :fstype => "boo")
656
+ resource = klass.new(:title => "/foo", :catalog => "foo", :atboot => :yes, :fstype => "boo")
622
657
  expect(resource[:fstype]).to eq("boo")
623
658
  expect(resource[:atboot]).to eq(:yes)
624
659
  end
625
660
  end
626
661
 
627
662
  it "should fail if any invalid attributes have been provided" do
628
- expect { Puppet::Type.type(:mount).new(:title => "/foo", :nosuchattr => "whatever") }.to raise_error(Puppet::Error, /no parameter named 'nosuchattr'/)
663
+ expect { klass.new(:title => "/foo", :nosuchattr => "whatever") }.to raise_error(Puppet::Error, /no parameter named 'nosuchattr'/)
629
664
  end
630
665
 
631
666
  context "when an attribute fails validation" do
@@ -638,59 +673,65 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
638
673
  end
639
674
 
640
675
  it "should include the file/line in the error" do
641
- allow_any_instance_of(Puppet::Type.type(:file)).to receive(:file).and_return("example.pp")
642
- allow_any_instance_of(Puppet::Type.type(:file)).to receive(:line).and_return(42)
676
+ Puppet::Type.type(:file).any_instance.stubs(:file).returns("example.pp")
677
+ Puppet::Type.type(:file).any_instance.stubs(:line).returns(42)
643
678
  expect { Puppet::Type.type(:file).new(:title => "/foo", :source => "unknown:///") }.to raise_error(Puppet::ResourceError, /\(file: example\.pp, line: 42\)/)
644
679
  end
645
680
  end
646
681
 
647
682
  it "should set its name to the resource's title if the resource does not have a :name or namevar parameter set" do
648
- resource = Puppet::Resource.new(:mount, "/foo")
683
+ resource = Puppet::Resource.new(resource_type, "/foo")
649
684
 
650
- expect(Puppet::Type.type(:mount).new(resource).name).to eq("/foo")
685
+ expect(klass.new(resource).name).to eq("/foo")
651
686
  end
652
687
 
653
688
  it "should fail if no title, name, or namevar are provided" do
654
- expect { Puppet::Type.type(:mount).new(:atboot => :yes) }.to raise_error(Puppet::Error)
689
+ expect { klass.new(:atboot => :yes) }.to raise_error(Puppet::Error)
655
690
  end
656
691
 
657
692
  it "should set the attributes in the order returned by the class's :allattrs method" do
658
- allow(Puppet::Type.type(:mount)).to receive(:allattrs).and_return([:name, :atboot, :noop])
659
- resource = Puppet::Resource.new(:mount, "/foo", :parameters => {:name => "myname", :atboot => :yes, :noop => "whatever"})
693
+ klass.stubs(:allattrs).returns([:name, :atboot, :noop])
694
+ resource = Puppet::Resource.new(resource_type, "/foo", :parameters => {:name => "myname", :atboot => :yes, :noop => "whatever"})
660
695
 
661
696
  set = []
662
697
 
663
- allow_any_instance_of(Puppet::Type.type(:mount)).to receive(:newattr) do |_, param, hash|
698
+ klass.any_instance.stubs(:newattr).with do |param, hash|
664
699
  set << param
665
- double("a property", :value= => nil, :default => nil, :name => nil)
666
- end
700
+ true
701
+ end.returns(stub_everything("a property"))
667
702
 
668
- Puppet::Type.type(:mount).new(resource)
703
+ klass.new(resource)
669
704
 
670
705
  expect(set[-1]).to eq(:noop)
671
706
  expect(set[-2]).to eq(:atboot)
672
707
  end
673
708
 
674
709
  it "should always set the name and then default provider before anything else" do
675
- allow(Puppet::Type.type(:mount)).to receive(:allattrs).and_return([:provider, :name, :atboot])
676
- resource = Puppet::Resource.new(:mount, "/foo", :parameters => {:name => "myname", :atboot => :yes})
710
+ klass.stubs(:allattrs).returns([:provider, :name, :atboot])
711
+ resource = Puppet::Resource.new(resource_type, "/foo", :parameters => {:name => "myname", :atboot => :yes})
677
712
 
678
713
  set = []
679
714
 
680
- allow_any_instance_of(Puppet::Type.type(:mount)).to receive(:newattr) do |_, param, hash|
715
+ klass.any_instance.stubs(:newattr).with do |param, hash|
681
716
  set << param
682
- double("a property", :value= => nil, :default => nil, :name => nil)
683
- end
717
+ true
718
+ end.returns(stub_everything("a property"))
684
719
 
685
- Puppet::Type.type(:mount).new(resource)
720
+ klass.new(resource)
686
721
  expect(set[0]).to eq(:name)
687
722
  expect(set[1]).to eq(:provider)
688
723
  end
689
724
 
690
725
  # This one is really hard to test :/
691
726
  it "should set each default immediately if no value is provided" do
727
+ # We have a :confine block that calls execute in our upstart provider, which fails
728
+ # on jruby. Thus, we stub it out here since we don't care to do any assertions on it.
729
+ # This is only an issue if you're running these unit tests on a platform where upstart
730
+ # is a default provider, like Ubuntu trusty.
731
+ Puppet::Util::Execution.stubs(:execute)
732
+
692
733
  defaults = []
693
- allow_any_instance_of(Puppet::Type.type(:service)).to receive(:set_default) { |_, value| defaults << value }
734
+ Puppet::Type.type(:service).any_instance.stubs(:set_default).with { |value| defaults << value; true }
694
735
 
695
736
  Puppet::Type.type(:service).new :name => "whatever"
696
737
 
@@ -698,7 +739,7 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
698
739
  end
699
740
 
700
741
  it "should retain a copy of the originally provided parameters" do
701
- expect(Puppet::Type.type(:mount).new(:name => "foo", :atboot => :yes, :noop => false).original_parameters).to eq({:atboot => :yes, :noop => false})
742
+ expect(klass.new(:name => "foo", :atboot => :yes, :noop => false).original_parameters).to eq({:atboot => :yes, :noop => false})
702
743
  end
703
744
 
704
745
  it "should delete the name via the namevar from the originally provided parameters" do
@@ -707,7 +748,7 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
707
748
 
708
749
  context "when validating the resource" do
709
750
  it "should call the type's validate method if present" do
710
- expect_any_instance_of(Puppet::Type.type(:file)).to receive(:validate)
751
+ Puppet::Type.type(:file).any_instance.expects(:validate)
711
752
  Puppet::Type.type(:file).new(:name => make_absolute('/foo'))
712
753
  end
713
754
 
@@ -722,8 +763,8 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
722
763
  end
723
764
 
724
765
  it "should raise Puppet::ResourceError with manifest file and line on failure" do
725
- allow_any_instance_of(Puppet::Type.type(:file)).to receive(:file).and_return("example.pp")
726
- allow_any_instance_of(Puppet::Type.type(:file)).to receive(:line).and_return(42)
766
+ Puppet::Type.type(:file).any_instance.stubs(:file).returns("example.pp")
767
+ Puppet::Type.type(:file).any_instance.stubs(:line).returns(42)
727
768
  expect do
728
769
  Puppet::Type.type(:file).new(
729
770
  :name => make_absolute('/foo'),
@@ -798,12 +839,12 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
798
839
  end
799
840
 
800
841
  it "should have a class method for converting a hash into a Puppet::Resource instance" do
801
- expect(Puppet::Type.type(:mount)).to respond_to(:hash2resource)
842
+ expect(klass).to respond_to(:hash2resource)
802
843
  end
803
844
 
804
845
  describe "when converting a hash to a Puppet::Resource instance" do
805
846
  before do
806
- @type = Puppet::Type.type(:mount)
847
+ @type = klass
807
848
  end
808
849
 
809
850
  it "should treat a :title key as the title of the resource" do
@@ -815,7 +856,7 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
815
856
  end
816
857
 
817
858
  it "should use the Resource Type's namevar to determine how to find the name in the hash" do
818
- allow(@type).to receive(:key_attributes).and_return([ :myname ])
859
+ @type.stubs(:key_attributes).returns([ :myname ])
819
860
 
820
861
  expect(@type.hash2resource(:myname => "foo").title).to eq("foo")
821
862
  end
@@ -848,34 +889,34 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
848
889
 
849
890
  describe "when retrieving current property values" do
850
891
  before do
851
- @resource = Puppet::Type.type(:mount).new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
852
- allow(@resource.property(:ensure)).to receive(:retrieve).and_return(:absent)
892
+ @resource = klass.new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
893
+ @resource.property(:ensure).stubs(:retrieve).returns :absent
853
894
  end
854
895
 
855
896
  it "should always retrieve the ensure value by default" do
856
897
  @ensurable_resource = Puppet::Type.type(:file).new(:name => "/not/existent", :mode => "0644")
857
- allow(Puppet::Type::File::Ensure).to receive(:ensure).and_return(:absent)
858
- expect_any_instance_of(Puppet::Type::File::Ensure).to receive(:retrieve).once
898
+ Puppet::Type::File::Ensure.stubs(:ensure).returns :absent
899
+ Puppet::Type::File::Ensure.any_instance.expects(:retrieve).once
859
900
  @ensurable_resource.retrieve_resource
860
901
  end
861
902
 
862
903
  it "should not retrieve the ensure value if specified" do
863
904
  @ensurable_resource = Puppet::Type.type(:service).new(:name => "DummyService", :enable => true)
864
- @ensurable_resource.properties.each { |prop| allow(prop).to receive(:retrieve) }
865
- expect_any_instance_of(Puppet::Type::Service::Ensure).not_to receive(:retrieve)
905
+ @ensurable_resource.properties.each { |prop| prop.stubs(:retrieve) }
906
+ Puppet::Type::Service::Ensure.any_instance.expects(:retrieve).never
866
907
  @ensurable_resource.retrieve_resource
867
908
  end
868
909
 
869
910
  it "should fail if its provider is unsuitable" do
870
- @resource = Puppet::Type.type(:mount).new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
871
- expect(@resource.provider.class).to receive(:suitable?).and_return(false)
911
+ @resource = klass.new(:name => "foo", :fstype => "bar", :pass => 1, :ensure => :present)
912
+ @resource.provider.class.expects(:suitable?).returns false
872
913
  expect { @resource.retrieve_resource }.to raise_error(Puppet::Error)
873
914
  end
874
915
 
875
916
  it "should return a Puppet::Resource instance with its type and title set appropriately" do
876
917
  result = @resource.retrieve_resource
877
918
  expect(result).to be_instance_of(Puppet::Resource)
878
- expect(result.type).to eq("Mount")
919
+ expect(result.type).to eq(ref_type)
879
920
  expect(result.title).to eq("foo")
880
921
  end
881
922
 
@@ -895,21 +936,21 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
895
936
  end
896
937
 
897
938
  it "should not call retrieve on non-ensure properties if the resource is absent and should consider the property absent" do
898
- expect(@resource.property(:ensure)).to receive(:retrieve).and_return(:absent)
899
- expect(@resource.property(:fstype)).not_to receive(:retrieve)
939
+ @resource.property(:ensure).expects(:retrieve).returns :absent
940
+ @resource.property(:fstype).expects(:retrieve).never
900
941
  expect(@resource.retrieve_resource[:fstype]).to eq(:absent)
901
942
  end
902
943
 
903
944
  it "should include the result of retrieving each property's current value if the resource is present" do
904
- expect(@resource.property(:ensure)).to receive(:retrieve).and_return(:present)
905
- expect(@resource.property(:fstype)).to receive(:retrieve).and_return(15)
945
+ @resource.property(:ensure).expects(:retrieve).returns :present
946
+ @resource.property(:fstype).expects(:retrieve).returns 15
906
947
  @resource.retrieve_resource[:fstype] == 15
907
948
  end
908
949
  end
909
950
 
910
951
  describe "#to_resource" do
911
952
  it "should return a Puppet::Resource that includes properties, parameters and tags" do
912
- type_resource = Puppet::Type.type(:mount).new(
953
+ type_resource = klass.new(
913
954
  :ensure => :present,
914
955
  :name => "foo",
915
956
  :fstype => "bar",
@@ -921,15 +962,15 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
921
962
  expect(type_resource.parameters[:remounts]).not_to be_a(Puppet::Property)
922
963
  expect(type_resource.parameters[:fstype].is_a?(Puppet::Property)).to be_truthy
923
964
 
924
- expect(type_resource.property(:ensure)).to receive(:retrieve).and_return(:present)
925
- expect(type_resource.property(:fstype)).to receive(:retrieve).and_return(15)
965
+ type_resource.property(:ensure).expects(:retrieve).returns :present
966
+ type_resource.property(:fstype).expects(:retrieve).returns 15
926
967
 
927
968
  resource = type_resource.to_resource
928
969
 
929
970
  expect(resource).to be_a Puppet::Resource
930
971
  expect(resource[:fstype]).to eq(15)
931
972
  expect(resource[:remounts]).to eq(:true)
932
- expect(resource.tags).to eq(Puppet::Util::TagSet.new(%w{foo bar baz mount}))
973
+ expect(resource.tags).to eq(Puppet::Util::TagSet.new(%w{foo bar baz} + [resource_type.to_s]))
933
974
  end
934
975
  end
935
976
 
@@ -937,7 +978,7 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
937
978
  describe "when there's one namevar" do
938
979
  before do
939
980
  @type_class = Puppet::Type.type(:notify)
940
- allow(@type_class).to receive(:key_attributes).and_return([:one])
981
+ @type_class.stubs(:key_attributes).returns([:one])
941
982
  end
942
983
 
943
984
  it "should have a default pattern for when there's one namevar" do
@@ -992,7 +1033,7 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
992
1033
  let(:provider) { resource.provider }
993
1034
 
994
1035
  it "should be suitable if its type doesn't use providers" do
995
- allow(type).to receive(:paramclass).with(:provider).and_return(nil)
1036
+ type.stubs(:paramclass).with(:provider).returns nil
996
1037
  expect(resource).to be_suitable
997
1038
  end
998
1039
 
@@ -1001,18 +1042,18 @@ describe Puppet::Type, :unless => Puppet.features.microsoft_windows? do
1001
1042
  end
1002
1043
 
1003
1044
  it "should not be suitable if it has a provider which is not suitable" do
1004
- allow(provider.class).to receive(:suitable?).and_return(false)
1045
+ provider.class.stubs(:suitable?).returns false
1005
1046
  expect(resource).not_to be_suitable
1006
1047
  end
1007
1048
 
1008
1049
  it "should be suitable if it does not have a provider and there is a default provider" do
1009
- allow(resource).to receive(:provider).and_return(nil)
1050
+ resource.stubs(:provider).returns nil
1010
1051
  expect(resource).to be_suitable
1011
1052
  end
1012
1053
 
1013
1054
  it "should not be suitable if it doesn't have a provider and there is not default provider" do
1014
- allow(resource).to receive(:provider).and_return(nil)
1015
- allow(type).to receive(:defaultprovider).and_return(nil)
1055
+ resource.stubs(:provider).returns nil
1056
+ type.stubs(:defaultprovider).returns nil
1016
1057
 
1017
1058
  expect(resource).not_to be_suitable
1018
1059
  end
@@ -1144,29 +1185,27 @@ describe Puppet::Type::RelationshipMetaparam do
1144
1185
  end
1145
1186
 
1146
1187
  it "should be able to validate relationships" do
1147
- expect(Puppet::Type.metaparamclass(:require).new(:resource => double("resource"))).to respond_to(:validate_relationship)
1188
+ expect(Puppet::Type.metaparamclass(:require).new(:resource => mock("resource"))).to respond_to(:validate_relationship)
1148
1189
  end
1149
1190
 
1150
1191
  describe 'if any specified resource is not in the catalog' do
1151
- let(:catalog) { double('catalog') }
1192
+ let(:catalog) { mock 'catalog' }
1152
1193
 
1153
1194
  let(:resource) do
1154
- double(
1155
- 'resource',
1195
+ stub 'resource',
1156
1196
  :catalog => catalog,
1157
1197
  :ref => 'resource',
1158
1198
  :line= => nil,
1159
1199
  :line => nil,
1160
1200
  :file= => nil,
1161
1201
  :file => nil
1162
- )
1163
1202
  end
1164
1203
 
1165
1204
  let(:param) { Puppet::Type.metaparamclass(:require).new(:resource => resource, :value => %w{Foo[bar] Class[test]}) }
1166
1205
 
1167
1206
  before do
1168
- expect(catalog).to receive(:resource).with("Foo[bar]").and_return("something")
1169
- expect(catalog).to receive(:resource).with("Class[Test]").and_return(nil)
1207
+ catalog.expects(:resource).with("Foo[bar]").returns "something"
1208
+ catalog.expects(:resource).with("Class[Test]").returns nil
1170
1209
  end
1171
1210
 
1172
1211
  describe "and the resource doesn't have a file or line number" do
@@ -1180,8 +1219,8 @@ describe Puppet::Type::RelationshipMetaparam do
1180
1219
 
1181
1220
  describe "and the resource has a file or line number" do
1182
1221
  before do
1183
- allow(resource).to receive(:line).and_return('42')
1184
- allow(resource).to receive(:file).and_return('/hitchhikers/guide/to/the/galaxy')
1222
+ resource.stubs(:line).returns '42'
1223
+ resource.stubs(:file).returns '/hitchhikers/guide/to/the/galaxy'
1185
1224
  end
1186
1225
 
1187
1226
  it "raises an error with context" do
@@ -1241,8 +1280,8 @@ describe Puppet::Type.metaparamclass(:audit) do
1241
1280
 
1242
1281
  describe "when generating the uniqueness key" do
1243
1282
  it "should include all of the key_attributes in alphabetical order by attribute name" do
1244
- allow(Puppet::Type.type(:file)).to receive(:key_attributes).and_return([:path, :mode, :owner])
1245
- allow(Puppet::Type.type(:file)).to receive(:title_patterns).and_return(
1283
+ Puppet::Type.type(:file).stubs(:key_attributes).returns [:path, :mode, :owner]
1284
+ Puppet::Type.type(:file).stubs(:title_patterns).returns(
1246
1285
  [ [ /(.*)/, [ [:path, lambda{|x| x} ] ] ] ]
1247
1286
  )
1248
1287
  myfile = make_absolute('/my/file')