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
@@ -19,7 +19,7 @@ describe Puppet::GettextConfig do
19
19
  end
20
20
 
21
21
  before(:each) do
22
- allow(Puppet::GettextConfig).to receive(:gettext_loaded?).and_return(true)
22
+ Puppet::GettextConfig.stubs(:gettext_loaded?).returns true
23
23
  end
24
24
 
25
25
  after(:each) do
@@ -29,7 +29,7 @@ describe Puppet::GettextConfig do
29
29
 
30
30
  describe 'setting and getting the locale' do
31
31
  it 'should return "en" when gettext is unavailable' do
32
- allow(Puppet::GettextConfig).to receive(:gettext_loaded?).and_return(false)
32
+ Puppet::GettextConfig.stubs(:gettext_loaded?).returns(false)
33
33
 
34
34
  expect(Puppet::GettextConfig.current_locale).to eq('en')
35
35
  end
@@ -67,7 +67,7 @@ describe Puppet::GettextConfig do
67
67
 
68
68
  context 'when given a valid locale file location' do
69
69
  it 'should return true' do
70
- expect(Puppet::GettextConfig).to receive(:add_repository_to_domain).with('puppet', local_path, :po, anything)
70
+ Puppet::GettextConfig.expects(:add_repository_to_domain).with('puppet', local_path, :po, anything)
71
71
 
72
72
  expect(Puppet::GettextConfig.load_translations('puppet', local_path, :po)).to be true
73
73
  end
@@ -88,7 +88,7 @@ describe Puppet::GettextConfig do
88
88
  end
89
89
 
90
90
  it 'should add puppet translations to the default text domain' do
91
- expect(Puppet::GettextConfig).to receive(:load_translations).with('puppet', local_path, :po, Puppet::GettextConfig::DEFAULT_TEXT_DOMAIN).and_return(true)
91
+ Puppet::GettextConfig.expects(:load_translations).with('puppet', local_path, :po, Puppet::GettextConfig::DEFAULT_TEXT_DOMAIN).returns(true)
92
92
 
93
93
  Puppet::GettextConfig.create_default_text_domain
94
94
  expect(Puppet::GettextConfig.loaded_text_domains).to include(Puppet::GettextConfig::DEFAULT_TEXT_DOMAIN)
@@ -16,7 +16,7 @@ describe Puppet::ModuleTranslations do
16
16
  :metadata => {
17
17
  :author => 'foo'
18
18
  },
19
- :environment => double("environment"))
19
+ :environment => mock("environment"))
20
20
  }
21
21
 
22
22
  let(:module_b) { PuppetSpec::Modules.create(
@@ -25,13 +25,13 @@ describe Puppet::ModuleTranslations do
25
25
  :metadata => {
26
26
  :author => 'foo'
27
27
  },
28
- :environment => double("environment"))
28
+ :environment => mock("environment"))
29
29
  }
30
30
 
31
31
  it "should attempt to load translations only for modules that have them" do
32
- expect(module_a).to receive(:has_translations?).and_return(false)
33
- expect(module_b).to receive(:has_translations?).and_return(true)
34
- expect(Puppet::GettextConfig).to receive(:load_translations).with("foo-mod_b", File.join(modpath, "mod_b", "locales"), :po).and_return(true)
32
+ module_a.expects(:has_translations?).returns(false)
33
+ module_b.expects(:has_translations?).returns(true)
34
+ Puppet::GettextConfig.expects(:load_translations).with("foo-mod_b", File.join(modpath, "mod_b", "locales"), :po).returns(true)
35
35
 
36
36
  Puppet::ModuleTranslations.load_from_modulepath([module_a, module_b])
37
37
  end
@@ -44,8 +44,8 @@ describe Puppet::ModuleTranslations do
44
44
  }
45
45
 
46
46
  it "should attempt to load translations for the current locale" do
47
- expect(Puppet::GettextConfig).to receive(:current_locale).and_return("ja")
48
- expect(Puppet::GettextConfig).to receive(:load_translations).with("foo-mod_a", File.join(vardir, "locales"), :po).and_return(true)
47
+ Puppet::GettextConfig.expects(:current_locale).returns("ja")
48
+ Puppet::GettextConfig.expects(:load_translations).with("foo-mod_a", File.join(vardir, "locales"), :po).returns(true)
49
49
 
50
50
  Puppet::ModuleTranslations.load_from_vardir(vardir)
51
51
  end
@@ -1,3 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  require 'puppet/graph'
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/graph'
3
4
 
@@ -396,6 +397,6 @@ describe Puppet::Graph::RelationshipGraph do
396
397
  end
397
398
 
398
399
  def stub_vertex(name)
399
- double("vertex #{name}", :ref => name)
400
+ stub "vertex #{name}", :ref => name
400
401
  end
401
402
  end
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet/graph'
3
4
 
@@ -80,6 +81,22 @@ describe Puppet::Graph::SimpleGraph do
80
81
  it "should do nothing when a non-vertex is asked to be removed" do
81
82
  expect { @graph.remove_vertex!(:one) }.to_not raise_error
82
83
  end
84
+
85
+ describe "when managing resources with quotes in their title" do
86
+ subject do
87
+ v = Puppet::Type.type(:notify).new(:name => 'GRANT ALL ON DATABASE "puppetdb" TO "puppetdb"')
88
+ @graph.add_vertex(v)
89
+ @graph.to_dot
90
+ end
91
+
92
+ it "should escape quotes in node name" do
93
+ expect(subject).to match(/^[[:space:]]{4}"Notify\[GRANT ALL ON DATABASE \\"puppetdb\\" TO \\"puppetdb\\"\]" \[$/)
94
+ end
95
+
96
+ it "should escape quotes in node label" do
97
+ expect(subject).to match(/^[[:space:]]{8}label = "Notify\[GRANT ALL ON DATABASE \\"puppetdb\\" TO \\"puppetdb\\"\]"$/)
98
+ end
99
+ end
83
100
  end
84
101
 
85
102
  describe "when managing edges" do
@@ -113,6 +130,23 @@ describe Puppet::Graph::SimpleGraph do
113
130
  expect(@graph.edge?(:one, :two)).to be_truthy
114
131
  end
115
132
 
133
+ describe "when managing edges between nodes with quotes in their title" do
134
+ let(:vertex) do
135
+ Hash.new do |hash, key|
136
+ hash[key] = Puppet::Type.type(:notify).new(:name => key.to_s)
137
+ end
138
+ end
139
+
140
+ subject do
141
+ @graph.add_edge(vertex['Postgresql_psql[CREATE DATABASE "ejabberd"]'], vertex['Postgresql_psql[REVOKE CONNECT ON DATABASE "ejabberd" FROM public]'])
142
+ @graph.to_dot
143
+ end
144
+
145
+ it "should escape quotes in edge" do
146
+ expect(subject).to match(/^[[:space:]]{4}"Notify\[Postgresql_psql\[CREATE DATABASE \\"ejabberd\\"\]\]" -> "Notify\[Postgresql_psql\[REVOKE CONNECT ON DATABASE \\"ejabberd\\" FROM public\]\]" \[$/)
147
+ end
148
+ end
149
+
116
150
  describe "when retrieving edges between two nodes" do
117
151
  it "should handle the case of nodes not in the graph" do
118
152
  expect(@graph.edges_between(:one, :two)).to eq([])
@@ -301,30 +335,37 @@ describe Puppet::Graph::SimpleGraph do
301
335
  end
302
336
  end
303
337
 
338
+ it "should report one-vertex loops" do
339
+ add_edges :a => :a
340
+ Puppet.expects(:err).with(regexp_matches(/Found 1 dependency cycle:\n\(Notify\[a\] => Notify\[a\]\)/))
341
+ cycle = @graph.report_cycles_in_graph.first
342
+ expect_cycle_to_include(cycle, :a)
343
+ end
344
+
304
345
  it "should report two-vertex loops" do
305
346
  add_edges :a => :b, :b => :a
306
- expect(Puppet).to receive(:err).with(/Found 1 dependency cycle:\n\(Notify\[a\] => Notify\[b\] => Notify\[a\]\)/)
347
+ Puppet.expects(:err).with(regexp_matches(/Found 1 dependency cycle:\n\(Notify\[a\] => Notify\[b\] => Notify\[a\]\)/))
307
348
  cycle = @graph.report_cycles_in_graph.first
308
349
  expect_cycle_to_include(cycle, :a, :b)
309
350
  end
310
351
 
311
352
  it "should report multi-vertex loops" do
312
353
  add_edges :a => :b, :b => :c, :c => :a
313
- expect(Puppet).to receive(:err).with(/Found 1 dependency cycle:\n\(Notify\[a\] => Notify\[b\] => Notify\[c\] => Notify\[a\]\)/)
354
+ Puppet.expects(:err).with(regexp_matches(/Found 1 dependency cycle:\n\(Notify\[a\] => Notify\[b\] => Notify\[c\] => Notify\[a\]\)/))
314
355
  cycle = @graph.report_cycles_in_graph.first
315
356
  expect_cycle_to_include(cycle, :a, :b, :c)
316
357
  end
317
358
 
318
359
  it "should report when a larger tree contains a small cycle" do
319
360
  add_edges :a => :b, :b => :a, :c => :a, :d => :c
320
- expect(Puppet).to receive(:err).with(/Found 1 dependency cycle:\n\(Notify\[a\] => Notify\[b\] => Notify\[a\]\)/)
361
+ Puppet.expects(:err).with(regexp_matches(/Found 1 dependency cycle:\n\(Notify\[a\] => Notify\[b\] => Notify\[a\]\)/))
321
362
  cycle = @graph.report_cycles_in_graph.first
322
363
  expect_cycle_to_include(cycle, :a, :b)
323
364
  end
324
365
 
325
366
  it "should succeed on trees with no cycles" do
326
367
  add_edges :a => :b, :b => :e, :c => :a, :d => :c
327
- expect(Puppet).not_to receive(:err)
368
+ Puppet.expects(:err).never
328
369
  expect(@graph.report_cycles_in_graph).to be_nil
329
370
  end
330
371
 
@@ -428,14 +469,14 @@ describe Puppet::Graph::SimpleGraph do
428
469
  end
429
470
 
430
471
  it "should only write when graphing is enabled" do
431
- expect(File).not_to receive(:open).with(@file)
472
+ File.expects(:open).with(@file).never
432
473
  Puppet[:graph] = false
433
474
  @graph.write_graph(@name)
434
475
  end
435
476
 
436
477
  it "should write a dot file based on the passed name" do
437
- expect(File).to receive(:open).with(@file, "w:UTF-8").and_yield(double("file", :puts => nil))
438
- expect(@graph).to receive(:to_dot).with("name" => @name.to_s.capitalize)
478
+ File.expects(:open).with(@file, "w:UTF-8").yields(stub("file", :puts => nil))
479
+ @graph.expects(:to_dot).with("name" => @name.to_s.capitalize)
439
480
  Puppet[:graph] = true
440
481
  @graph.write_graph(@name)
441
482
  end
@@ -463,7 +504,7 @@ describe Puppet::Graph::SimpleGraph do
463
504
  # because indexing a String with a non-Integer throws an exception (and none of
464
505
  # these tests need anything meaningful from []).
465
506
  resource = "a"
466
- allow(resource).to receive(:[])
507
+ resource.stubs(:[])
467
508
  @event = Puppet::Transaction::Event.new(:name => :yay, :resource => resource)
468
509
  @none = Puppet::Transaction::Event.new(:name => :NONE, :resource => resource)
469
510
 
@@ -595,7 +636,7 @@ describe Puppet::Graph::SimpleGraph do
595
636
  # the serialized objects easily without invoking any
596
637
  # yaml_initialize hooks.
597
638
  yaml_form.gsub!('!ruby/object:Puppet::', '!hack/object:Puppet::')
598
- serialized_object = YAML.load(yaml_form)
639
+ serialized_object = Puppet::Util::Yaml.safe_load(yaml_form, [Symbol,Puppet::Graph::SimpleGraph])
599
640
 
600
641
  # Check that the object contains instance variables @edges and
601
642
  # @vertices only. @reversal is also permitted, but we don't
@@ -663,7 +704,7 @@ describe Puppet::Graph::SimpleGraph do
663
704
  reference_graph = Puppet::Graph::SimpleGraph.new
664
705
  send(graph_to_test, reference_graph)
665
706
  yaml_form = graph_to_yaml(reference_graph, which_format)
666
- recovered_graph = YAML.load(yaml_form)
707
+ recovered_graph = Puppet::Util::Yaml.safe_load(yaml_form, [Symbol,Puppet::Graph::SimpleGraph])
667
708
 
668
709
  # Test that the recovered vertices match the vertices in the
669
710
  # reference graph.
@@ -707,7 +748,7 @@ describe Puppet::Graph::SimpleGraph do
707
748
  derived.add_edge('a', 'b')
708
749
  derived.foo = 1234
709
750
  yaml = YAML.dump(derived)
710
- recovered_derived = YAML.load(yaml)
751
+ recovered_derived = Puppet::Util::Yaml.safe_load(yaml, [Puppet::TestDerivedClass])
711
752
  expect(recovered_derived.class).to equal(Puppet::TestDerivedClass)
712
753
  expect(recovered_derived.edges.length).to eq(1)
713
754
  expect(recovered_derived.edges[0].source).to eq('a')
@@ -90,11 +90,4 @@ describe Hiera::Scope do
90
90
  expect(scope.include?("calling_module")).to eq(true)
91
91
  end
92
92
  end
93
-
94
- describe "#call_function" do
95
- it "should delegate a call to call_function to the real scope" do
96
- expect(real).to receive(:call_function).once
97
- scope.call_function('some_function', [1,2,3])
98
- end
99
- end
100
93
  end
@@ -16,8 +16,8 @@ describe 'HieraPuppet' do
16
16
 
17
17
  context "when the hiera_config_file exists" do
18
18
  before do
19
- expect(Hiera::Config).to receive(:load).and_return(hiera_config_data)
20
- expect(HieraPuppet).to receive(:hiera_config_file).and_return(true)
19
+ Hiera::Config.expects(:load).returns(hiera_config_data)
20
+ HieraPuppet.expects(:hiera_config_file).returns(true)
21
21
  end
22
22
 
23
23
  it "should return a configuration hash" do
@@ -31,8 +31,8 @@ describe 'HieraPuppet' do
31
31
 
32
32
  context "when the hiera_config_file does not exist" do
33
33
  before do
34
- expect(Hiera::Config).not_to receive(:load)
35
- expect(HieraPuppet).to receive(:hiera_config_file).and_return(nil)
34
+ Hiera::Config.expects(:load).never
35
+ HieraPuppet.expects(:hiera_config_file).returns(nil)
36
36
  end
37
37
 
38
38
  it "should return a configuration hash" do
@@ -59,7 +59,7 @@ describe 'HieraPuppet' do
59
59
  pending("This example does not apply to Puppet #{Puppet.version} because it does not have this setting")
60
60
  end
61
61
 
62
- allow(Puppet::FileSystem).to receive(:exist?).with(Puppet[:hiera_config]).and_return(true)
62
+ Puppet::FileSystem.stubs(:exist?).with(Puppet[:hiera_config]).returns(true)
63
63
  expect(HieraPuppet.send(:hiera_config_file)).to eq(Puppet[:hiera_config])
64
64
  end
65
65
 
@@ -75,29 +75,29 @@ describe 'HieraPuppet' do
75
75
  end
76
76
 
77
77
  it "should use Puppet.settings[:codedir]/hiera.yaml when '$codedir/hiera.yaml' exists and '$confdir/hiera.yaml' does not exist" do
78
- allow(Puppet::FileSystem).to receive(:exist?).with(code_hiera_config).and_return(true)
79
- allow(Puppet::FileSystem).to receive(:exist?).with(conf_hiera_config).and_return(false)
78
+ Puppet::FileSystem.stubs(:exist?).with(code_hiera_config).returns(true)
79
+ Puppet::FileSystem.stubs(:exist?).with(conf_hiera_config).returns(false)
80
80
 
81
81
  expect(HieraPuppet.send(:hiera_config_file)).to eq(code_hiera_config)
82
82
  end
83
83
 
84
84
  it "should use Puppet.settings[:confdir]/hiera.yaml when '$codedir/hiera.yaml' does not exist and '$confdir/hiera.yaml' exists" do
85
- allow(Puppet::FileSystem).to receive(:exist?).with(code_hiera_config).and_return(false)
86
- allow(Puppet::FileSystem).to receive(:exist?).with(conf_hiera_config).and_return(true)
85
+ Puppet::FileSystem.stubs(:exist?).with(code_hiera_config).returns(false)
86
+ Puppet::FileSystem.stubs(:exist?).with(conf_hiera_config).returns(true)
87
87
 
88
88
  expect(HieraPuppet.send(:hiera_config_file)).to eq(conf_hiera_config)
89
89
  end
90
90
 
91
91
  it "should use Puppet.settings[:codedir]/hiera.yaml when '$codedir/hiera.yaml' exists and '$confdir/hiera.yaml' exists" do
92
- allow(Puppet::FileSystem).to receive(:exist?).with(code_hiera_config).and_return(true)
93
- allow(Puppet::FileSystem).to receive(:exist?).with(conf_hiera_config).and_return(true)
92
+ Puppet::FileSystem.stubs(:exist?).with(code_hiera_config).returns(true)
93
+ Puppet::FileSystem.stubs(:exist?).with(conf_hiera_config).returns(true)
94
94
 
95
95
  expect(HieraPuppet.send(:hiera_config_file)).to eq(code_hiera_config)
96
96
  end
97
97
 
98
98
  it "should return nil when neither '$codedir/hiera.yaml' nor '$confdir/hiera.yaml' exists" do
99
- allow(Puppet::FileSystem).to receive(:exist?).with(code_hiera_config).and_return(false)
100
- allow(Puppet::FileSystem).to receive(:exist?).with(conf_hiera_config).and_return(false)
99
+ Puppet::FileSystem.stubs(:exist?).with(code_hiera_config).returns(false)
100
+ Puppet::FileSystem.stubs(:exist?).with(conf_hiera_config).returns(false)
101
101
 
102
102
  expect(HieraPuppet.send(:hiera_config_file)).to eq(nil)
103
103
  end
@@ -109,9 +109,9 @@ describe 'HieraPuppet' do
109
109
  explicit_hiera_config = '/an/explicit/hiera.yaml'
110
110
  end
111
111
  Puppet.settings[:hiera_config] = explicit_hiera_config
112
- allow(Puppet::FileSystem).to receive(:exist?).with(explicit_hiera_config).and_return(true)
113
- allow(Puppet::FileSystem).to receive(:exist?).with(code_hiera_config).and_return(true)
114
- allow(Puppet::FileSystem).to receive(:exist?).with(conf_hiera_config).and_return(true)
112
+ Puppet::FileSystem.stubs(:exist?).with(explicit_hiera_config).returns(true)
113
+ Puppet::FileSystem.stubs(:exist?).with(code_hiera_config).returns(true)
114
+ Puppet::FileSystem.stubs(:exist?).with(conf_hiera_config).returns(true)
115
115
 
116
116
  expect(HieraPuppet.send(:hiera_config_file)).to eq(explicit_hiera_config)
117
117
  end
@@ -126,18 +126,18 @@ describe 'HieraPuppet' do
126
126
  end
127
127
 
128
128
  it "should return the value from Hiera" do
129
- allow_any_instance_of(Hiera).to receive(:lookup).and_return('8080')
129
+ Hiera.any_instance.stubs(:lookup).returns('8080')
130
130
  expect(HieraPuppet.lookup('port', nil, scope, nil, :priority)).to eq('8080')
131
131
 
132
- allow_any_instance_of(Hiera).to receive(:lookup).and_return(['foo', 'bar'])
132
+ Hiera.any_instance.stubs(:lookup).returns(['foo', 'bar'])
133
133
  expect(HieraPuppet.lookup('ntpservers', nil, scope, nil, :array)).to eq(['foo', 'bar'])
134
134
 
135
- allow_any_instance_of(Hiera).to receive(:lookup).and_return({'uid' => '1000'})
135
+ Hiera.any_instance.stubs(:lookup).returns({'uid' => '1000'})
136
136
  expect(HieraPuppet.lookup('user', nil, scope, nil, :hash)).to eq({'uid' => '1000'})
137
137
  end
138
138
 
139
139
  it "should raise a useful error when the answer is nil" do
140
- allow_any_instance_of(Hiera).to receive(:lookup).and_return(nil)
140
+ Hiera.any_instance.stubs(:lookup).returns(nil)
141
141
  expect do
142
142
  HieraPuppet.lookup('port', nil, scope, nil, :priority)
143
143
  end.to raise_error(Puppet::ParseError,
@@ -1,3 +1,4 @@
1
+ #! /usr/bin/env ruby
1
2
  require 'spec_helper'
2
3
  require 'puppet_spec/compiler'
3
4
  require 'matchers/resource'
@@ -9,9 +10,19 @@ describe Puppet::Resource::Catalog::Compiler do
9
10
  let(:node_name) { "foo" }
10
11
  let(:node) { Puppet::Node.new(node_name)}
11
12
 
13
+ before do
14
+ Facter.stubs(:to_hash).returns({})
15
+ end
16
+
12
17
  describe "when initializing" do
13
18
  before do
14
- allow(Puppet).to receive(:version).and_return(1)
19
+ Puppet.expects(:version).returns(1)
20
+ Facter.expects(:value).with('fqdn').returns("my.server.com")
21
+ Facter.expects(:value).with('ipaddress').returns("my.ip.address")
22
+ end
23
+
24
+ it "should gather data about itself" do
25
+ Puppet::Resource::Catalog::Compiler.new
15
26
  end
16
27
 
17
28
  it "should cache the server metadata and reuse it" do
@@ -19,7 +30,7 @@ describe Puppet::Resource::Catalog::Compiler do
19
30
  Puppet::Node.indirection.save(Puppet::Node.new("node1"))
20
31
  Puppet::Node.indirection.save(Puppet::Node.new("node2"))
21
32
 
22
- allow(compiler).to receive(:compile)
33
+ compiler.stubs(:compile)
23
34
 
24
35
  compiler.find(Puppet::Indirector::Request.new(:catalog, :find, 'node1', nil, :node => 'node1'))
25
36
  compiler.find(Puppet::Indirector::Request.new(:catalog, :find, 'node2', nil, :node => 'node2'))
@@ -28,69 +39,71 @@ describe Puppet::Resource::Catalog::Compiler do
28
39
 
29
40
  describe "when finding catalogs" do
30
41
  before do
31
- allow(node).to receive(:merge)
32
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
42
+ Facter.stubs(:value).returns("whatever")
43
+
44
+ node.stubs(:merge)
45
+ Puppet::Node.indirection.stubs(:find).returns(node)
33
46
  @request = Puppet::Indirector::Request.new(:catalog, :find, node_name, nil, :node => node_name)
34
47
  end
35
48
 
36
49
  it "should directly use provided nodes for a local request" do
37
- expect(Puppet::Node.indirection).not_to receive(:find)
38
- expect(compiler).to receive(:compile).with(node, anything)
39
- allow(@request).to receive(:options).and_return(:use_node => node)
40
- allow(@request).to receive(:remote?).and_return(false)
50
+ Puppet::Node.indirection.expects(:find).never
51
+ compiler.expects(:compile).with(node, anything)
52
+ @request.stubs(:options).returns(:use_node => node)
53
+ @request.stubs(:remote?).returns(false)
41
54
  compiler.find(@request)
42
55
  end
43
56
 
44
57
  it "rejects a provided node if the request is remote" do
45
- allow(@request).to receive(:options).and_return(:use_node => node)
46
- allow(@request).to receive(:remote?).and_return(true)
58
+ @request.stubs(:options).returns(:use_node => node)
59
+ @request.stubs(:remote?).returns(true)
47
60
  expect {
48
61
  compiler.find(@request)
49
62
  }.to raise_error Puppet::Error, /invalid option use_node/i
50
63
  end
51
64
 
52
65
  it "should use the authenticated node name if no request key is provided" do
53
- allow(@request).to receive(:key).and_return(nil)
54
- expect(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(node)
55
- expect(compiler).to receive(:compile).with(node, anything)
66
+ @request.stubs(:key).returns(nil)
67
+ Puppet::Node.indirection.expects(:find).with(node_name, anything).returns(node)
68
+ compiler.expects(:compile).with(node, anything)
56
69
  compiler.find(@request)
57
70
  end
58
71
 
59
72
  it "should use the provided node name by default" do
60
- expect(@request).to receive(:key).and_return("my_node")
73
+ @request.expects(:key).returns "my_node"
61
74
 
62
- expect(Puppet::Node.indirection).to receive(:find).with("my_node", anything).and_return(node)
63
- expect(compiler).to receive(:compile).with(node, anything)
75
+ Puppet::Node.indirection.expects(:find).with("my_node", anything).returns node
76
+ compiler.expects(:compile).with(node, anything)
64
77
  compiler.find(@request)
65
78
  end
66
79
 
67
80
  it "should fail if no node is passed and none can be found" do
68
- allow(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(nil)
81
+ Puppet::Node.indirection.stubs(:find).with(node_name, anything).returns(nil)
69
82
  expect { compiler.find(@request) }.to raise_error(ArgumentError)
70
83
  end
71
84
 
72
85
  it "should fail intelligently when searching for a node raises an exception" do
73
- allow(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_raise("eh")
86
+ Puppet::Node.indirection.stubs(:find).with(node_name, anything).raises "eh"
74
87
  expect { compiler.find(@request) }.to raise_error(Puppet::Error)
75
88
  end
76
89
 
77
90
  it "should pass the found node to the compiler for compiling" do
78
- expect(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(node)
79
- expect(Puppet::Parser::Compiler).to receive(:compile).with(node, anything)
91
+ Puppet::Node.indirection.expects(:find).with(node_name, anything).returns(node)
92
+ Puppet::Parser::Compiler.expects(:compile).with(node, anything)
80
93
  compiler.find(@request)
81
94
  end
82
95
 
83
96
  it "should pass node containing percent character to the compiler" do
84
97
  node_with_percent_character = Puppet::Node.new "%6de"
85
- allow(Puppet::Node.indirection).to receive(:find).and_return(node_with_percent_character)
86
- expect(Puppet::Parser::Compiler).to receive(:compile).with(node_with_percent_character, anything)
98
+ Puppet::Node.indirection.stubs(:find).returns(node_with_percent_character)
99
+ Puppet::Parser::Compiler.expects(:compile).with(node_with_percent_character, anything)
87
100
  compiler.find(@request)
88
101
  end
89
102
 
90
103
  it "should extract any facts from the request" do
91
- expect(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(node)
92
- expect(compiler).to receive(:extract_facts_from_request).with(@request)
93
- allow(Puppet::Parser::Compiler).to receive(:compile)
104
+ Puppet::Node.indirection.expects(:find).with(node_name, anything).returns node
105
+ compiler.expects(:extract_facts_from_request).with(@request)
106
+ Puppet::Parser::Compiler.stubs(:compile)
94
107
  compiler.find(@request)
95
108
  end
96
109
 
@@ -113,119 +126,119 @@ describe Puppet::Resource::Catalog::Compiler do
113
126
  end
114
127
 
115
128
  it "should return the results of compiling as the catalog" do
116
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
129
+ Puppet::Node.indirection.stubs(:find).returns(node)
117
130
  catalog = Puppet::Resource::Catalog.new(node.name)
118
- allow(Puppet::Parser::Compiler).to receive(:compile).and_return(catalog)
131
+ Puppet::Parser::Compiler.stubs(:compile).returns catalog
119
132
 
120
133
  expect(compiler.find(@request)).to equal(catalog)
121
134
  end
122
135
 
123
136
  it "passes the code_id from the request to the compiler" do
124
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
137
+ Puppet::Node.indirection.stubs(:find).returns(node)
125
138
  code_id = 'b59e5df0578ef411f773ee6c33d8073c50e7b8fe'
126
139
  @request.options[:code_id] = code_id
127
140
 
128
- expect(Puppet::Parser::Compiler).to receive(:compile).with(anything, code_id)
141
+ Puppet::Parser::Compiler.expects(:compile).with(anything, code_id)
129
142
 
130
143
  compiler.find(@request)
131
144
  end
132
145
 
133
146
  it "returns a catalog with the code_id from the request" do
134
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
147
+ Puppet::Node.indirection.stubs(:find).returns(node)
135
148
  code_id = 'b59e5df0578ef411f773ee6c33d8073c50e7b8fe'
136
149
  @request.options[:code_id] = code_id
137
150
 
138
151
  catalog = Puppet::Resource::Catalog.new(node.name, node.environment, code_id)
139
- allow(Puppet::Parser::Compiler).to receive(:compile).and_return(catalog)
152
+ Puppet::Parser::Compiler.stubs(:compile).returns catalog
140
153
 
141
154
  expect(compiler.find(@request).code_id).to eq(code_id)
142
155
  end
143
156
 
144
157
  it "does not inline metadata when the static_catalog option is false" do
145
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
158
+ Puppet::Node.indirection.stubs(:find).returns(node)
146
159
  @request.options[:static_catalog] = false
147
160
  @request.options[:code_id] = 'some_code_id'
148
- allow(node.environment).to receive(:static_catalogs?).and_return(true)
161
+ node.environment.stubs(:static_catalogs?).returns true
149
162
 
150
163
  catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
151
- allow(Puppet::Parser::Compiler).to receive(:compile).and_return(catalog)
164
+ Puppet::Parser::Compiler.stubs(:compile).returns catalog
152
165
 
153
- expect(compiler).not_to receive(:inline_metadata)
166
+ compiler.expects(:inline_metadata).never
154
167
  compiler.find(@request)
155
168
  end
156
169
 
157
170
  it "does not inline metadata when static_catalogs are disabled" do
158
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
171
+ Puppet::Node.indirection.stubs(:find).returns(node)
159
172
  @request.options[:static_catalog] = true
160
173
  @request.options[:checksum_type] = 'md5'
161
174
  @request.options[:code_id] = 'some_code_id'
162
- allow(node.environment).to receive(:static_catalogs?).and_return(false)
175
+ node.environment.stubs(:static_catalogs?).returns false
163
176
 
164
177
  catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
165
- allow(Puppet::Parser::Compiler).to receive(:compile).and_return(catalog)
178
+ Puppet::Parser::Compiler.stubs(:compile).returns catalog
166
179
 
167
- expect(compiler).not_to receive(:inline_metadata)
180
+ compiler.expects(:inline_metadata).never
168
181
  compiler.find(@request)
169
182
  end
170
183
 
171
184
  it "does not inline metadata when code_id is not specified" do
172
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
185
+ Puppet::Node.indirection.stubs(:find).returns(node)
173
186
  @request.options[:static_catalog] = true
174
187
  @request.options[:checksum_type] = 'md5'
175
- allow(node.environment).to receive(:static_catalogs?).and_return(true)
188
+ node.environment.stubs(:static_catalogs?).returns true
176
189
 
177
190
  catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
178
- allow(Puppet::Parser::Compiler).to receive(:compile).and_return(catalog)
191
+ Puppet::Parser::Compiler.stubs(:compile).returns catalog
179
192
 
180
- expect(compiler).not_to receive(:inline_metadata)
193
+ compiler.expects(:inline_metadata).never
181
194
  expect(compiler.find(@request)).to eq(catalog)
182
195
  end
183
196
 
184
197
  it "inlines metadata when the static_catalog option is true, static_catalogs are enabled, and a code_id is provided" do
185
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
198
+ Puppet::Node.indirection.stubs(:find).returns(node)
186
199
  @request.options[:static_catalog] = true
187
200
  @request.options[:checksum_type] = 'sha256'
188
201
  @request.options[:code_id] = 'some_code_id'
189
- allow(node.environment).to receive(:static_catalogs?).and_return(true)
202
+ node.environment.stubs(:static_catalogs?).returns true
190
203
 
191
204
  catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
192
- allow(Puppet::Parser::Compiler).to receive(:compile).and_return(catalog)
205
+ Puppet::Parser::Compiler.stubs(:compile).returns catalog
193
206
 
194
- expect(compiler).to receive(:inline_metadata).with(catalog, :sha256).and_return(catalog)
207
+ compiler.expects(:inline_metadata).with(catalog, :sha256).returns catalog
195
208
  compiler.find(@request)
196
209
  end
197
210
 
198
211
  it "inlines metadata with the first common checksum type" do
199
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
212
+ Puppet::Node.indirection.stubs(:find).returns(node)
200
213
  @request.options[:static_catalog] = true
201
214
  @request.options[:checksum_type] = 'atime.md5.sha256.mtime'
202
215
  @request.options[:code_id] = 'some_code_id'
203
- allow(node.environment).to receive(:static_catalogs?).and_return(true)
216
+ node.environment.stubs(:static_catalogs?).returns true
204
217
 
205
218
  catalog = Puppet::Resource::Catalog.new(node.name, node.environment)
206
- allow(Puppet::Parser::Compiler).to receive(:compile).and_return(catalog)
219
+ Puppet::Parser::Compiler.stubs(:compile).returns catalog
207
220
 
208
- expect(compiler).to receive(:inline_metadata).with(catalog, :md5).and_return(catalog)
221
+ compiler.expects(:inline_metadata).with(catalog, :md5).returns catalog
209
222
  compiler.find(@request)
210
223
  end
211
224
 
212
225
  it "errors if checksum_type contains no shared checksum types" do
213
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
226
+ Puppet::Node.indirection.stubs(:find).returns(node)
214
227
  @request.options[:static_catalog] = true
215
228
  @request.options[:checksum_type] = 'atime.md2'
216
229
  @request.options[:code_id] = 'some_code_id'
217
- allow(node.environment).to receive(:static_catalogs?).and_return(true)
230
+ node.environment.stubs(:static_catalogs?).returns true
218
231
 
219
232
  expect { compiler.find(@request) }.to raise_error Puppet::Error,
220
233
  "Unable to find a common checksum type between agent 'atime.md2' and master '[:sha256, :sha256lite, :md5, :md5lite, :sha1, :sha1lite, :sha512, :sha384, :sha224, :mtime, :ctime, :none]'."
221
234
  end
222
235
 
223
236
  it "errors if checksum_type contains no shared checksum types" do
224
- allow(Puppet::Node.indirection).to receive(:find).and_return(node)
237
+ Puppet::Node.indirection.stubs(:find).returns(node)
225
238
  @request.options[:static_catalog] = true
226
239
  @request.options[:checksum_type] = nil
227
240
  @request.options[:code_id] = 'some_code_id'
228
- allow(node.environment).to receive(:static_catalogs?).and_return(true)
241
+ node.environment.stubs(:static_catalogs?).returns true
229
242
 
230
243
  expect { compiler.find(@request) }.to raise_error Puppet::Error,
231
244
  "Unable to find a common checksum type between agent '' and master '[:sha256, :sha256lite, :md5, :md5lite, :sha1, :sha1lite, :sha512, :sha384, :sha224, :mtime, :ctime, :none]'."
@@ -234,10 +247,10 @@ describe Puppet::Resource::Catalog::Compiler do
234
247
 
235
248
  describe "when handling a request with facts" do
236
249
  before do
237
- allow(Facter).to receive(:value).and_return("something")
250
+ Puppet::Node::Facts.indirection.terminus_class = :memory
251
+ Facter.stubs(:value).returns "something"
238
252
 
239
- facts = Puppet::Node::Facts.new('hostname', "fact" => "value", "architecture" => "i386")
240
- Puppet::Node::Facts.indirection.save(facts)
253
+ @facts = Puppet::Node::Facts.new('hostname', "fact" => "value", "architecture" => "i386")
241
254
  end
242
255
 
243
256
  def a_legacy_request_that_contains(facts, format = :pson)
@@ -255,8 +268,6 @@ describe Puppet::Resource::Catalog::Compiler do
255
268
  end
256
269
 
257
270
  context "when extracting facts from the request" do
258
- let(:facts) { Puppet::Node::Facts.new("hostname") }
259
-
260
271
  it "should do nothing if no facts are provided" do
261
272
  request = Puppet::Indirector::Request.new(:catalog, :find, "hostname", nil)
262
273
  request.options[:facts] = nil
@@ -266,21 +277,21 @@ describe Puppet::Resource::Catalog::Compiler do
266
277
 
267
278
  it "should deserialize the facts without changing the timestamp" do
268
279
  time = Time.now
269
- facts.timestamp = time
270
- request = a_request_that_contains(facts)
280
+ @facts.timestamp = time
281
+ request = a_request_that_contains(@facts)
271
282
  facts = compiler.extract_facts_from_request(request)
272
283
  expect(facts.timestamp).to eq(time)
273
284
  end
274
285
 
275
286
  it "accepts PSON facts from older agents" do
276
- request = a_legacy_request_that_contains(facts)
287
+ request = a_legacy_request_that_contains(@facts)
277
288
 
278
289
  facts = compiler.extract_facts_from_request(request)
279
- expect(facts).to eq(facts)
290
+ expect(facts).to eq(@facts)
280
291
  end
281
292
 
282
293
  it "rejects YAML facts" do
283
- request = a_legacy_request_that_contains(facts, :yaml)
294
+ request = a_legacy_request_that_contains(@facts, :yaml)
284
295
 
285
296
  expect {
286
297
  compiler.extract_facts_from_request(request)
@@ -288,7 +299,7 @@ describe Puppet::Resource::Catalog::Compiler do
288
299
  end
289
300
 
290
301
  it "rejects unknown fact formats" do
291
- request = a_request_that_contains(facts)
302
+ request = a_request_that_contains(@facts)
292
303
  request.options[:facts_format] = 'unknown-format'
293
304
 
294
305
  expect {
@@ -298,17 +309,15 @@ describe Puppet::Resource::Catalog::Compiler do
298
309
  end
299
310
 
300
311
  context "when saving facts from the request" do
301
- let(:facts) { Puppet::Node::Facts.new("hostname") }
302
-
303
312
  it "should save facts if they were issued by the request" do
304
- request = a_request_that_contains(facts)
313
+ request = a_request_that_contains(@facts)
305
314
 
306
315
  options = {
307
316
  :environment => request.environment,
308
317
  :transaction_uuid => request.options[:transaction_uuid],
309
318
  }
310
319
 
311
- expect(Puppet::Node::Facts.indirection).to receive(:save).with(facts, nil, options)
320
+ Puppet::Node::Facts.indirection.expects(:save).with(equals(@facts), nil, options)
312
321
  compiler.find(request)
313
322
  end
314
323
 
@@ -320,7 +329,7 @@ describe Puppet::Resource::Catalog::Compiler do
320
329
  :transaction_uuid => request.options[:transaction_uuid],
321
330
  }
322
331
 
323
- expect(Puppet::Node::Facts.indirection).not_to receive(:save).with(facts, nil, options)
332
+ Puppet::Node::Facts.indirection.expects(:save).with(equals(@facts), nil, options).never
324
333
  compiler.find(request)
325
334
  end
326
335
  end
@@ -328,52 +337,53 @@ describe Puppet::Resource::Catalog::Compiler do
328
337
 
329
338
  describe "when finding nodes" do
330
339
  it "should look node information up via the Node class with the provided key" do
340
+ Facter.stubs(:value).returns("whatever")
331
341
  request = Puppet::Indirector::Request.new(:catalog, :find, node_name, nil)
332
- allow(compiler).to receive(:compile)
342
+ compiler.stubs(:compile)
333
343
 
334
- expect(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(node)
344
+ Puppet::Node.indirection.expects(:find).with(node_name, anything).returns(node)
335
345
 
336
346
  compiler.find(request)
337
347
  end
338
348
 
339
349
  it "should pass the transaction_uuid to the node indirection" do
340
350
  uuid = '793ff10d-89f8-4527-a645-3302cbc749f3'
341
- allow(compiler).to receive(:compile)
351
+ compiler.stubs(:compile)
342
352
  request = Puppet::Indirector::Request.new(:catalog, :find, node_name,
343
353
  nil, :transaction_uuid => uuid)
344
354
 
345
- expect(Puppet::Node.indirection).to receive(:find).with(
355
+ Puppet::Node.indirection.expects(:find).with(
346
356
  node_name,
347
- hash_including(:transaction_uuid => uuid)
348
- ).and_return(node)
357
+ has_entries(:transaction_uuid => uuid)
358
+ ).returns(node)
349
359
 
350
360
  compiler.find(request)
351
361
  end
352
362
 
353
363
  it "should pass the configured_environment to the node indirection" do
354
364
  environment = 'foo'
355
- allow(compiler).to receive(:compile)
365
+ compiler.stubs(:compile)
356
366
  request = Puppet::Indirector::Request.new(:catalog, :find, node_name,
357
367
  nil, :configured_environment => environment)
358
368
 
359
- expect(Puppet::Node.indirection).to receive(:find).with(
369
+ Puppet::Node.indirection.expects(:find).with(
360
370
  node_name,
361
- hash_including(:configured_environment => environment)
362
- ).and_return(node)
371
+ has_entries(:configured_environment => environment)
372
+ ).returns(node)
363
373
 
364
374
  compiler.find(request)
365
375
  end
366
376
 
367
377
  it "should pass a facts object from the original request facts to the node indirection" do
368
378
  facts = Puppet::Node::Facts.new("hostname", :afact => "avalue")
369
- expect(compiler).to receive(:extract_facts_from_request).and_return(facts)
370
- expect(compiler).to receive(:save_facts_from_request)
379
+ compiler.expects(:extract_facts_from_request).returns(facts)
380
+ compiler.expects(:save_facts_from_request)
371
381
 
372
382
  request = Puppet::Indirector::Request.new(:catalog, :find, "hostname",
373
383
  nil, :facts_format => "application/json",
374
384
  :facts => facts.render('json'))
375
385
 
376
- expect(Puppet::Node.indirection).to receive(:find).with("hostname", hash_including(:facts => facts)).and_return(node)
386
+ Puppet::Node.indirection.expects(:find).with("hostname", has_entries(:facts => facts)).returns(node)
377
387
 
378
388
  compiler.find(request)
379
389
  end
@@ -381,89 +391,62 @@ describe Puppet::Resource::Catalog::Compiler do
381
391
 
382
392
  describe "after finding nodes" do
383
393
  before do
384
- expect(Puppet).to receive(:version).and_return(1)
385
- expect(Facter).to receive(:value).with('fqdn').and_return("my.server.com")
386
- expect(Facter).to receive(:value).with('ipaddress').and_return("my.ip.address")
394
+ Puppet.expects(:version).returns(1)
395
+ Facter.expects(:value).with('fqdn').returns("my.server.com")
396
+ Facter.expects(:value).with('ipaddress').returns("my.ip.address")
387
397
  @request = Puppet::Indirector::Request.new(:catalog, :find, node_name, nil)
388
- allow(compiler).to receive(:compile)
389
- allow(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(node)
398
+ compiler.stubs(:compile)
399
+ Puppet::Node.indirection.stubs(:find).with(node_name, anything).returns(node)
390
400
  end
391
401
 
392
402
  it "should add the server's Puppet version to the node's parameters as 'serverversion'" do
393
- expect(node).to receive(:merge).with(hash_including("serverversion" => "1"))
403
+ node.expects(:merge).with { |args| args["serverversion"] == "1" }
394
404
  compiler.find(@request)
395
405
  end
396
406
 
397
407
  it "should add the server's fqdn to the node's parameters as 'servername'" do
398
- expect(node).to receive(:merge).with(hash_including("servername" => "my.server.com"))
408
+ node.expects(:merge).with { |args| args["servername"] == "my.server.com" }
399
409
  compiler.find(@request)
400
410
  end
401
411
 
402
412
  it "should add the server's IP address to the node's parameters as 'serverip'" do
403
- expect(node).to receive(:merge).with(hash_including("serverip" => "my.ip.address"))
413
+ node.expects(:merge).with { |args| args["serverip"] == "my.ip.address" }
404
414
  compiler.find(@request)
405
415
  end
406
416
  end
407
417
 
408
- describe "after finding nodes when checking for a PE version" do
409
- include PuppetSpec::Compiler
410
-
411
- let(:pe_version_file) { '/opt/puppetlabs/server/pe_version' }
412
- let(:request) { Puppet::Indirector::Request.new(:catalog, :find, node_name, nil) }
413
-
414
- before :each do
415
- Puppet[:code] = 'notify { "PE Version: $pe_serverversion": }'
416
- end
417
-
418
- it "should not add 'pe_serverversion' when FOSS" do
419
- allow(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(node)
420
- catalog = compiler.find(request)
421
-
422
- expect(catalog.resource('notify', 'PE Version: 2019.2.0')).to be_nil
423
- end
424
-
425
- it "should add 'pe_serverversion' when PE" do
426
- allow(File).to receive(:readable?).with(pe_version_file).and_return(true)
427
- allow(File).to receive(:zero?).with(pe_version_file).and_return(false)
428
- allow(File).to receive(:read).with(pe_version_file).and_return('2019.2.0')
429
-
430
- allow(Puppet::Node.indirection).to receive(:find).with(node_name, anything).and_return(node)
431
- catalog = compiler.find(request)
432
-
433
- expect(catalog.resource('notify', 'PE Version: 2019.2.0')).to be
434
- end
435
- end
436
-
437
418
  describe "when filtering resources" do
438
419
  before :each do
439
- @catalog = double('catalog')
440
- allow(@catalog).to receive(:respond_to?).with(:filter).and_return(true)
420
+ Facter.stubs(:value)
421
+ @catalog = stub_everything 'catalog'
422
+ @catalog.stubs(:respond_to?).with(:filter).returns(true)
441
423
  end
442
424
 
443
425
  it "should delegate to the catalog instance filtering" do
444
- expect(@catalog).to receive(:filter)
426
+ @catalog.expects(:filter)
445
427
  compiler.filter(@catalog)
446
428
  end
447
429
 
448
430
  it "should filter out virtual resources" do
449
- resource = double('resource', :virtual? => true)
450
- allow(@catalog).to receive(:filter).and_yield(resource)
431
+ resource = mock 'resource', :virtual? => true
432
+ @catalog.stubs(:filter).yields(resource)
451
433
 
452
434
  compiler.filter(@catalog)
453
435
  end
454
436
 
455
437
  it "should return the same catalog if it doesn't support filtering" do
456
- allow(@catalog).to receive(:respond_to?).with(:filter).and_return(false)
438
+ @catalog.stubs(:respond_to?).with(:filter).returns(false)
457
439
 
458
440
  expect(compiler.filter(@catalog)).to eq(@catalog)
459
441
  end
460
442
 
461
443
  it "should return the filtered catalog" do
462
- catalog = double('filtered catalog')
463
- allow(@catalog).to receive(:filter).and_return(catalog)
444
+ catalog = stub 'filtered catalog'
445
+ @catalog.stubs(:filter).returns(catalog)
464
446
 
465
447
  expect(compiler.filter(@catalog)).to eq(catalog)
466
448
  end
449
+
467
450
  end
468
451
 
469
452
  describe "when inlining metadata" do
@@ -478,33 +461,33 @@ describe Puppet::Resource::Catalog::Compiler do
478
461
  def stubs_resource_metadata(ftype, relative_path, full_path = nil)
479
462
  full_path ||= File.join(Puppet[:environmentpath], 'production', relative_path)
480
463
 
481
- metadata = double('metadata')
482
- allow(metadata).to receive(:ftype).and_return(ftype)
483
- allow(metadata).to receive(:full_path).and_return(full_path)
484
- allow(metadata).to receive(:relative_path).and_return(relative_path)
485
- allow(metadata).to receive(:source).and_return("puppet:///#{relative_path}")
486
- allow(metadata).to receive(:source=)
487
- allow(metadata).to receive(:content_uri=)
464
+ metadata = stub 'metadata'
465
+ metadata.stubs(:ftype).returns(ftype)
466
+ metadata.stubs(:full_path).returns(full_path)
467
+ metadata.stubs(:relative_path).returns(relative_path)
468
+ metadata.stubs(:source).returns("puppet:///#{relative_path}")
469
+ metadata.stubs(:source=)
470
+ metadata.stubs(:content_uri=)
488
471
 
489
472
  metadata
490
473
  end
491
474
 
492
475
  def stubs_file_metadata(checksum_type, sha, relative_path, full_path = nil)
493
476
  metadata = stubs_resource_metadata('file', relative_path, full_path)
494
- allow(metadata).to receive(:checksum).and_return("{#{checksum_type}}#{sha}")
495
- allow(metadata).to receive(:checksum_type).and_return(checksum_type)
477
+ metadata.stubs(:checksum).returns("{#{checksum_type}}#{sha}")
478
+ metadata.stubs(:checksum_type).returns(checksum_type)
496
479
  metadata
497
480
  end
498
481
 
499
482
  def stubs_link_metadata(relative_path, destination)
500
483
  metadata = stubs_resource_metadata('link', relative_path)
501
- allow(metadata).to receive(:destination).and_return(destination)
484
+ metadata.stubs(:destination).returns(destination)
502
485
  metadata
503
486
  end
504
487
 
505
488
  def stubs_directory_metadata(relative_path)
506
489
  metadata = stubs_resource_metadata('directory', relative_path)
507
- allow(metadata).to receive(:relative_path).and_return('.')
490
+ metadata.stubs(:relative_path).returns('.')
508
491
  metadata
509
492
  end
510
493
 
@@ -517,8 +500,8 @@ describe Puppet::Resource::Catalog::Compiler do
517
500
  MANIFEST
518
501
 
519
502
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/files/config_file.txt')
520
- expect(metadata).to receive(:source=).with(source)
521
- expect(metadata).to receive(:content_uri=).with('puppet:///modules/mymodule/files/config_file.txt')
503
+ metadata.expects(:source=).with(source)
504
+ metadata.expects(:content_uri=).with('puppet:///modules/mymodule/files/config_file.txt')
522
505
 
523
506
  options = {
524
507
  :environment => catalog.environment_instance,
@@ -526,7 +509,7 @@ describe Puppet::Resource::Catalog::Compiler do
526
509
  :checksum_type => checksum_type.to_sym,
527
510
  :source_permissions => :ignore
528
511
  }
529
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, options).and_return(metadata)
512
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, options).returns(metadata)
530
513
 
531
514
  compiler.send(:inline_metadata, catalog, checksum_type)
532
515
 
@@ -545,8 +528,8 @@ describe Puppet::Resource::Catalog::Compiler do
545
528
  MANIFEST
546
529
 
547
530
  metadata = stubs_link_metadata('modules/mymodule/files/config_file.txt', '/tmp/some/absolute/path')
548
- expect(metadata).to receive(:source=).with(source)
549
- expect(metadata).to receive(:content_uri=).with('puppet:///modules/mymodule/files/config_file.txt')
531
+ metadata.expects(:source=).with(source)
532
+ metadata.expects(:content_uri=).with('puppet:///modules/mymodule/files/config_file.txt')
550
533
 
551
534
  options = {
552
535
  :environment => catalog.environment_instance,
@@ -554,7 +537,7 @@ describe Puppet::Resource::Catalog::Compiler do
554
537
  :checksum_type => checksum_type.to_sym,
555
538
  :source_permissions => :use
556
539
  }
557
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, options).and_return(metadata)
540
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, options).returns(metadata)
558
541
 
559
542
  compiler.send(:inline_metadata, catalog, checksum_type)
560
543
 
@@ -585,7 +568,7 @@ describe Puppet::Resource::Catalog::Compiler do
585
568
  :source_permissions => default_file[:source_permissions]
586
569
  }
587
570
 
588
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, options).and_return(metadata)
571
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, options).returns(metadata)
589
572
 
590
573
  compiler.send(:inline_metadata, catalog, checksum_type)
591
574
  end
@@ -600,10 +583,10 @@ describe Puppet::Resource::Catalog::Compiler do
600
583
  MANIFEST
601
584
 
602
585
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/files/config_file.txt')
603
- expect(metadata).to receive(:source=).with(source)
604
- expect(metadata).to receive(:content_uri=).with('puppet:///modules/mymodule/files/config_file.txt')
605
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
606
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(alt_source, anything).and_return(nil)
586
+ metadata.expects(:source=).with(source)
587
+ metadata.expects(:content_uri=).with('puppet:///modules/mymodule/files/config_file.txt')
588
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
589
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(alt_source, anything).returns(nil)
607
590
 
608
591
  compiler.send(:inline_metadata, catalog, checksum_type)
609
592
 
@@ -630,7 +613,7 @@ describe Puppet::Resource::Catalog::Compiler do
630
613
  :checksum_type => checksum_type.to_sym,
631
614
  :source_permissions => :ignore
632
615
  }
633
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, options).and_return(metadata)
616
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, options).returns(metadata)
634
617
 
635
618
  compiler.send(:inline_metadata, catalog, checksum_type)
636
619
 
@@ -651,11 +634,11 @@ describe Puppet::Resource::Catalog::Compiler do
651
634
  MANIFEST
652
635
 
653
636
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/files/config_file.txt')
654
- allow(metadata).to receive(:source).and_return(source)
637
+ metadata.stubs(:source).returns(source)
655
638
 
656
- expect(metadata).to receive(:content_uri=).with('puppet://myhost:8888/modules/mymodule/files/config_file.txt')
639
+ metadata.expects(:content_uri=).with('puppet://myhost:8888/modules/mymodule/files/config_file.txt')
657
640
 
658
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
641
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
659
642
 
660
643
  compiler.send(:inline_metadata, catalog, checksum_type)
661
644
  end
@@ -722,7 +705,7 @@ describe Puppet::Resource::Catalog::Compiler do
722
705
 
723
706
  full_path = File.join(Puppet[:codedir], "modules/mymodule/files/config_file.txt")
724
707
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/files/config_file.txt', full_path)
725
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
708
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
726
709
 
727
710
  compiler.send(:inline_metadata, catalog, checksum_type)
728
711
  expect(catalog.metadata).to be_empty
@@ -740,7 +723,7 @@ describe Puppet::Resource::Catalog::Compiler do
740
723
  MANIFEST
741
724
 
742
725
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'secure/files/data.txt')
743
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
726
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
744
727
 
745
728
  compiler.send(:inline_metadata, catalog, checksum_type)
746
729
  expect(catalog.metadata).to be_empty
@@ -756,7 +739,7 @@ describe Puppet::Resource::Catalog::Compiler do
756
739
  MANIFEST
757
740
 
758
741
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/not_in_files/config_file.txt')
759
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
742
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
760
743
 
761
744
  compiler.send(:inline_metadata, catalog, checksum_type)
762
745
  expect(catalog.metadata).to be_empty
@@ -773,7 +756,7 @@ describe Puppet::Resource::Catalog::Compiler do
773
756
 
774
757
  # note empty module name "modules//files"
775
758
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules//files/config_file.txt')
776
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
759
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
777
760
 
778
761
  compiler.send(:inline_metadata, catalog, checksum_type)
779
762
  expect(catalog.metadata).to be_empty
@@ -793,9 +776,9 @@ describe Puppet::Resource::Catalog::Compiler do
793
776
 
794
777
  # See https://github.com/puppetlabs/control-repo/blob/508b9cc/site/profile/files/puppetmaster/update-classes.sh
795
778
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'site/profile/files/puppetmaster/update-classes.sh')
796
- allow(metadata).to receive(:source).and_return(source)
779
+ metadata.stubs(:source).returns(source)
797
780
 
798
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
781
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
799
782
 
800
783
  compiler.send(:inline_metadata, catalog, checksum_type)
801
784
  expect(catalog.metadata[path]).to eq(metadata)
@@ -815,9 +798,9 @@ describe Puppet::Resource::Catalog::Compiler do
815
798
  MANIFEST
816
799
 
817
800
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/files/myfile')
818
- allow(metadata).to receive(:source).and_return(source)
801
+ metadata.stubs(:source).returns(source)
819
802
 
820
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
803
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
821
804
 
822
805
  compiler.send(:inline_metadata, catalog, checksum_type)
823
806
  expect(catalog.metadata[path]).to eq(metadata)
@@ -837,8 +820,8 @@ describe Puppet::Resource::Catalog::Compiler do
837
820
  }
838
821
  MANIFEST
839
822
 
840
- expect(metadata).to receive(:content_uri=).with('puppet:///modules/mymodule/files/directory')
841
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source_dir, anything).and_return(metadata)
823
+ metadata.expects(:content_uri=).with('puppet:///modules/mymodule/files/directory')
824
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source_dir, anything).returns(metadata)
842
825
 
843
826
  compiler.send(:inline_metadata, catalog, checksum_type)
844
827
 
@@ -859,8 +842,8 @@ describe Puppet::Resource::Catalog::Compiler do
859
842
  }
860
843
  MANIFEST
861
844
 
862
- expect(metadata).to receive(:content_uri=).with('puppet:///modules/mymodule/files/directory')
863
- expect(child_metadata).to receive(:content_uri=).with('puppet:///modules/mymodule/files/directory/myfile.txt')
845
+ metadata.expects(:content_uri=).with('puppet:///modules/mymodule/files/directory')
846
+ child_metadata.expects(:content_uri=).with('puppet:///modules/mymodule/files/directory/myfile.txt')
864
847
 
865
848
  options = {
866
849
  :environment => catalog.environment_instance,
@@ -871,7 +854,7 @@ describe Puppet::Resource::Catalog::Compiler do
871
854
  :recurselimit => nil,
872
855
  :ignore => nil,
873
856
  }
874
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(source_dir, options).and_return([metadata, child_metadata])
857
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(source_dir, options).returns([metadata, child_metadata])
875
858
 
876
859
  compiler.send(:inline_metadata, catalog, checksum_type)
877
860
 
@@ -902,7 +885,7 @@ describe Puppet::Resource::Catalog::Compiler do
902
885
  :recurselimit => 2,
903
886
  :ignore => 'foo.+',
904
887
  }
905
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(source_dir, options).and_return([metadata, child_metadata])
888
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(source_dir, options).returns([metadata, child_metadata])
906
889
 
907
890
  compiler.send(:inline_metadata, catalog, checksum_type)
908
891
 
@@ -921,8 +904,8 @@ describe Puppet::Resource::Catalog::Compiler do
921
904
  }
922
905
  MANIFEST
923
906
 
924
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(source_dir, anything).and_return([metadata, child_metadata])
925
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(alt_source_dir, anything).and_return([metadata, child_metadata])
907
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(source_dir, anything).returns([metadata, child_metadata])
908
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(alt_source_dir, anything).returns([metadata, child_metadata])
926
909
 
927
910
  compiler.send(:inline_metadata, catalog, checksum_type)
928
911
 
@@ -941,8 +924,8 @@ describe Puppet::Resource::Catalog::Compiler do
941
924
  }
942
925
  MANIFEST
943
926
 
944
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(source_dir, anything).and_return(nil)
945
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(alt_source_dir, anything).and_return([metadata, child_metadata])
927
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(source_dir, anything).returns(nil)
928
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(alt_source_dir, anything).returns([metadata, child_metadata])
946
929
 
947
930
  compiler.send(:inline_metadata, catalog, checksum_type)
948
931
 
@@ -963,9 +946,9 @@ describe Puppet::Resource::Catalog::Compiler do
963
946
  MANIFEST
964
947
 
965
948
  metadata = stubs_directory_metadata('secure/files/data')
966
- allow(metadata).to receive(:source).and_return(source)
949
+ metadata.stubs(:source).returns(source)
967
950
 
968
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(source, anything).and_return([metadata])
951
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(source, anything).returns([metadata])
969
952
 
970
953
  compiler.send(:inline_metadata, catalog, checksum_type)
971
954
  expect(catalog.metadata).to be_empty
@@ -984,7 +967,7 @@ describe Puppet::Resource::Catalog::Compiler do
984
967
  MANIFEST
985
968
 
986
969
  metadata = stubs_directory_metadata('modules/mymodule/not_in_files/directory')
987
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(source, anything).and_return([metadata])
970
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(source, anything).returns([metadata])
988
971
 
989
972
  compiler.send(:inline_metadata, catalog, checksum_type)
990
973
  expect(catalog.metadata).to be_empty
@@ -1005,12 +988,12 @@ describe Puppet::Resource::Catalog::Compiler do
1005
988
 
1006
989
  # See https://github.com/puppetlabs/control-repo/blob/508b9cc/site/profile/files/puppetmaster/update-classes.sh
1007
990
  dir_metadata = stubs_directory_metadata('site/profile/files/puppetmaster')
1008
- allow(dir_metadata).to receive(:source).and_return(source)
991
+ dir_metadata.stubs(:source).returns(source)
1009
992
 
1010
993
  child_metadata = stubs_file_metadata(checksum_type, checksum_value, './update-classes.sh')
1011
- allow(child_metadata).to receive(:source).and_return("#{source}/update-classes.sh")
994
+ child_metadata.stubs(:source).returns("#{source}/update-classes.sh")
1012
995
 
1013
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(source, anything).and_return([dir_metadata, child_metadata])
996
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(source, anything).returns([dir_metadata, child_metadata])
1014
997
 
1015
998
  compiler.send(:inline_metadata, catalog, checksum_type)
1016
999
  expect(catalog.metadata).to be_empty
@@ -1029,12 +1012,12 @@ describe Puppet::Resource::Catalog::Compiler do
1029
1012
  MANIFEST
1030
1013
 
1031
1014
  dir_metadata = stubs_directory_metadata('modules/mymodule/files/directory')
1032
- allow(dir_metadata).to receive(:source).and_return(source)
1015
+ dir_metadata.stubs(:source).returns(source)
1033
1016
 
1034
1017
  child_metadata = stubs_file_metadata(checksum_type, checksum_value, './file')
1035
- allow(child_metadata).to receive(:source).and_return("#{source}/file")
1018
+ child_metadata.stubs(:source).returns("#{source}/file")
1036
1019
 
1037
- expect(Puppet::FileServing::Metadata.indirection).to receive(:search).with(source, anything).and_return([dir_metadata, child_metadata])
1020
+ Puppet::FileServing::Metadata.indirection.expects(:search).with(source, anything).returns([dir_metadata, child_metadata])
1038
1021
 
1039
1022
  compiler.send(:inline_metadata, catalog, checksum_type)
1040
1023
 
@@ -1063,7 +1046,7 @@ describe Puppet::Resource::Catalog::Compiler do
1063
1046
  MANIFEST
1064
1047
 
1065
1048
  metadata = stubs_file_metadata(checksum_type, checksum_value, 'modules/mymodule/files/config_file.txt')
1066
- expect(Puppet::FileServing::Metadata.indirection).to receive(:find).with(source, anything).and_return(metadata)
1049
+ Puppet::FileServing::Metadata.indirection.expects(:find).with(source, anything).returns(metadata)
1067
1050
 
1068
1051
  compiler.send(:inline_metadata, catalog, checksum_type)
1069
1052
  expect(catalog.metadata['c:/foo']).to eq(metadata)