puppet 8.4.0 → 8.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1872) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -1
  3. data/Gemfile.lock +78 -61
  4. data/ext/project_data.yaml +4 -4
  5. data/ext/windows/service/daemon.rb +8 -8
  6. data/lib/hiera/puppet_function.rb +4 -4
  7. data/lib/hiera/scope.rb +5 -4
  8. data/lib/hiera_puppet.rb +0 -1
  9. data/lib/puppet/agent/disabler.rb +2 -2
  10. data/lib/puppet/agent.rb +3 -3
  11. data/lib/puppet/application/agent.rb +80 -78
  12. data/lib/puppet/application/apply.rb +45 -45
  13. data/lib/puppet/application/describe.rb +21 -21
  14. data/lib/puppet/application/device.rb +49 -49
  15. data/lib/puppet/application/doc.rb +27 -27
  16. data/lib/puppet/application/face_base.rb +2 -3
  17. data/lib/puppet/application/filebucket.rb +58 -58
  18. data/lib/puppet/application/generate.rb +1 -1
  19. data/lib/puppet/application/lookup.rb +44 -44
  20. data/lib/puppet/application/resource.rb +34 -34
  21. data/lib/puppet/application/script.rb +29 -29
  22. data/lib/puppet/application/ssl.rb +18 -18
  23. data/lib/puppet/application.rb +7 -7
  24. data/lib/puppet/application_support.rb +1 -1
  25. data/lib/puppet/compilable_resource_type.rb +2 -2
  26. data/lib/puppet/concurrent/lock.rb +0 -1
  27. data/lib/puppet/configurer/fact_handler.rb +3 -3
  28. data/lib/puppet/configurer.rb +8 -7
  29. data/lib/puppet/confine/any.rb +1 -1
  30. data/lib/puppet/confine/boolean.rb +1 -1
  31. data/lib/puppet/confine/exists.rb +1 -1
  32. data/lib/puppet/confine/false.rb +1 -1
  33. data/lib/puppet/confine/feature.rb +1 -2
  34. data/lib/puppet/confine/true.rb +1 -1
  35. data/lib/puppet/confine/variable.rb +1 -1
  36. data/lib/puppet/confine_collection.rb +1 -1
  37. data/lib/puppet/context/trusted_information.rb +4 -4
  38. data/lib/puppet/daemon.rb +6 -6
  39. data/lib/puppet/datatypes.rb +3 -2
  40. data/lib/puppet/defaults.rb +12 -12
  41. data/lib/puppet/environments.rb +7 -7
  42. data/lib/puppet/error.rb +7 -6
  43. data/lib/puppet/etc.rb +3 -2
  44. data/lib/puppet/external/dot.rb +25 -25
  45. data/lib/puppet/face/catalog/select.rb +1 -1
  46. data/lib/puppet/face/config.rb +1 -1
  47. data/lib/puppet/face/epp.rb +9 -9
  48. data/lib/puppet/face/facts.rb +2 -2
  49. data/lib/puppet/face/generate.rb +1 -1
  50. data/lib/puppet/face/help.rb +17 -21
  51. data/lib/puppet/face/module/install.rb +4 -3
  52. data/lib/puppet/face/module/list.rb +7 -8
  53. data/lib/puppet/face/module/upgrade.rb +4 -3
  54. data/lib/puppet/face/parser.rb +6 -6
  55. data/lib/puppet/feature/base.rb +2 -2
  56. data/lib/puppet/feature/libuser.rb +2 -2
  57. data/lib/puppet/ffi/posix/constants.rb +1 -1
  58. data/lib/puppet/ffi/windows/functions.rb +1 -1
  59. data/lib/puppet/file_bucket/dipper.rb +8 -6
  60. data/lib/puppet/file_bucket/file.rb +2 -2
  61. data/lib/puppet/file_serving/configuration.rb +1 -1
  62. data/lib/puppet/file_serving/fileset.rb +2 -2
  63. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  64. data/lib/puppet/file_serving/metadata.rb +4 -5
  65. data/lib/puppet/file_serving/terminus_selector.rb +1 -1
  66. data/lib/puppet/file_system/file_impl.rb +4 -4
  67. data/lib/puppet/file_system/uniquefile.rb +4 -4
  68. data/lib/puppet/file_system/windows.rb +7 -7
  69. data/lib/puppet/file_system.rb +1 -1
  70. data/lib/puppet/forge/cache.rb +1 -1
  71. data/lib/puppet/forge/repository.rb +1 -1
  72. data/lib/puppet/forge.rb +3 -3
  73. data/lib/puppet/functions/abs.rb +4 -3
  74. data/lib/puppet/functions/all.rb +1 -1
  75. data/lib/puppet/functions/any.rb +1 -1
  76. data/lib/puppet/functions/assert_type.rb +3 -2
  77. data/lib/puppet/functions/break.rb +1 -1
  78. data/lib/puppet/functions/camelcase.rb +2 -2
  79. data/lib/puppet/functions/capitalize.rb +2 -2
  80. data/lib/puppet/functions/chomp.rb +1 -1
  81. data/lib/puppet/functions/chop.rb +1 -1
  82. data/lib/puppet/functions/compare.rb +1 -1
  83. data/lib/puppet/functions/contain.rb +5 -4
  84. data/lib/puppet/functions/dig.rb +3 -3
  85. data/lib/puppet/functions/downcase.rb +2 -2
  86. data/lib/puppet/functions/eyaml_lookup_key.rb +1 -1
  87. data/lib/puppet/functions/filter.rb +6 -7
  88. data/lib/puppet/functions/get.rb +1 -1
  89. data/lib/puppet/functions/getvar.rb +4 -4
  90. data/lib/puppet/functions/group_by.rb +2 -2
  91. data/lib/puppet/functions/include.rb +3 -2
  92. data/lib/puppet/functions/index.rb +1 -1
  93. data/lib/puppet/functions/join.rb +1 -1
  94. data/lib/puppet/functions/lookup.rb +2 -2
  95. data/lib/puppet/functions/lstrip.rb +1 -1
  96. data/lib/puppet/functions/map.rb +2 -2
  97. data/lib/puppet/functions/match.rb +4 -4
  98. data/lib/puppet/functions/max.rb +2 -2
  99. data/lib/puppet/functions/min.rb +2 -2
  100. data/lib/puppet/functions/next.rb +1 -1
  101. data/lib/puppet/functions/require.rb +3 -2
  102. data/lib/puppet/functions/rstrip.rb +1 -1
  103. data/lib/puppet/functions/slice.rb +1 -1
  104. data/lib/puppet/functions/strftime.rb +1 -1
  105. data/lib/puppet/functions/strip.rb +1 -1
  106. data/lib/puppet/functions/tree_each.rb +2 -2
  107. data/lib/puppet/functions/unique.rb +8 -8
  108. data/lib/puppet/functions/upcase.rb +2 -2
  109. data/lib/puppet/functions.rb +18 -18
  110. data/lib/puppet/generate/models/type/property.rb +1 -1
  111. data/lib/puppet/generate/models/type/type.rb +2 -2
  112. data/lib/puppet/generate/type.rb +3 -3
  113. data/lib/puppet/graph/rb_tree_map.rb +5 -5
  114. data/lib/puppet/graph/relationship_graph.rb +17 -17
  115. data/lib/puppet/graph/simple_graph.rb +25 -25
  116. data/lib/puppet/http/client.rb +4 -4
  117. data/lib/puppet/http/dns.rb +2 -3
  118. data/lib/puppet/http/errors.rb +2 -2
  119. data/lib/puppet/http/factory.rb +1 -1
  120. data/lib/puppet/http/proxy.rb +2 -2
  121. data/lib/puppet/http/redirector.rb +1 -1
  122. data/lib/puppet/http/resolver/server_list.rb +3 -3
  123. data/lib/puppet/http/response_converter.rb +2 -3
  124. data/lib/puppet/http/service/ca.rb +3 -3
  125. data/lib/puppet/http/service/compiler.rb +2 -2
  126. data/lib/puppet/http/service/file_server.rb +1 -1
  127. data/lib/puppet/http/service/puppetserver.rb +1 -1
  128. data/lib/puppet/http/service.rb +6 -9
  129. data/lib/puppet/http/session.rb +1 -1
  130. data/lib/puppet/indirector/catalog/compiler.rb +17 -19
  131. data/lib/puppet/indirector/data_binding/hiera.rb +0 -1
  132. data/lib/puppet/indirector/exec.rb +1 -1
  133. data/lib/puppet/indirector/face.rb +3 -3
  134. data/lib/puppet/indirector/fact_search.rb +1 -1
  135. data/lib/puppet/indirector/facts/json.rb +1 -1
  136. data/lib/puppet/indirector/file_bucket_file/file.rb +5 -5
  137. data/lib/puppet/indirector/file_bucket_file/selector.rb +0 -1
  138. data/lib/puppet/indirector/file_metadata/http.rb +2 -2
  139. data/lib/puppet/indirector/hiera.rb +2 -3
  140. data/lib/puppet/indirector/indirection.rb +12 -12
  141. data/lib/puppet/indirector/json.rb +2 -2
  142. data/lib/puppet/indirector/msgpack.rb +2 -2
  143. data/lib/puppet/indirector/node/exec.rb +2 -4
  144. data/lib/puppet/indirector/none.rb +0 -1
  145. data/lib/puppet/indirector/report/json.rb +1 -1
  146. data/lib/puppet/indirector/report/msgpack.rb +1 -1
  147. data/lib/puppet/indirector/report/yaml.rb +1 -1
  148. data/lib/puppet/indirector/request.rb +3 -3
  149. data/lib/puppet/indirector/resource/ral.rb +6 -6
  150. data/lib/puppet/indirector/rest.rb +1 -1
  151. data/lib/puppet/indirector/yaml.rb +2 -2
  152. data/lib/puppet/info_service/class_information_service.rb +8 -10
  153. data/lib/puppet/info_service/plan_information_service.rb +3 -3
  154. data/lib/puppet/info_service/task_information_service.rb +3 -3
  155. data/lib/puppet/interface/action.rb +13 -13
  156. data/lib/puppet/interface/action_builder.rb +1 -1
  157. data/lib/puppet/interface/action_manager.rb +2 -2
  158. data/lib/puppet/interface/documentation.rb +15 -15
  159. data/lib/puppet/interface/face_collection.rb +5 -5
  160. data/lib/puppet/interface/option.rb +6 -6
  161. data/lib/puppet/interface/option_manager.rb +2 -2
  162. data/lib/puppet/interface.rb +1 -1
  163. data/lib/puppet/metatype/manager.rb +4 -5
  164. data/lib/puppet/module/plan.rb +3 -3
  165. data/lib/puppet/module/task.rb +16 -16
  166. data/lib/puppet/module.rb +6 -5
  167. data/lib/puppet/module_tool/applications/checksummer.rb +1 -1
  168. data/lib/puppet/module_tool/applications/installer.rb +3 -3
  169. data/lib/puppet/module_tool/applications/uninstaller.rb +1 -1
  170. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  171. data/lib/puppet/module_tool/applications/upgrader.rb +4 -4
  172. data/lib/puppet/module_tool/contents_description.rb +3 -3
  173. data/lib/puppet/module_tool/dependency.rb +2 -2
  174. data/lib/puppet/module_tool/errors/installer.rb +1 -1
  175. data/lib/puppet/module_tool/errors/shared.rb +3 -3
  176. data/lib/puppet/module_tool/installed_modules.rb +2 -2
  177. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  178. data/lib/puppet/module_tool/metadata.rb +2 -2
  179. data/lib/puppet/module_tool/shared_behaviors.rb +11 -11
  180. data/lib/puppet/module_tool/tar/mini.rb +1 -1
  181. data/lib/puppet/module_tool/tar.rb +1 -1
  182. data/lib/puppet/module_tool.rb +4 -4
  183. data/lib/puppet/network/client_request.rb +0 -1
  184. data/lib/puppet/network/format.rb +1 -1
  185. data/lib/puppet/network/format_handler.rb +5 -5
  186. data/lib/puppet/network/format_support.rb +0 -1
  187. data/lib/puppet/network/formats.rb +15 -13
  188. data/lib/puppet/network/http/api/indirected_routes.rb +27 -15
  189. data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
  190. data/lib/puppet/network/http/api/master/v3.rb +0 -1
  191. data/lib/puppet/network/http/api/server/v3/environments.rb +2 -3
  192. data/lib/puppet/network/http/api/server/v3.rb +6 -6
  193. data/lib/puppet/network/http/api.rb +11 -11
  194. data/lib/puppet/network/http/connection.rb +3 -3
  195. data/lib/puppet/network/http/error.rb +2 -2
  196. data/lib/puppet/network/http/handler.rb +5 -5
  197. data/lib/puppet/network/http/request.rb +9 -5
  198. data/lib/puppet/network/http_pool.rb +1 -2
  199. data/lib/puppet/node/environment.rb +13 -13
  200. data/lib/puppet/node/facts.rb +6 -8
  201. data/lib/puppet/node.rb +4 -6
  202. data/lib/puppet/pal/compiler.rb +4 -4
  203. data/lib/puppet/pal/function_signature.rb +2 -2
  204. data/lib/puppet/pal/pal_impl.rb +39 -44
  205. data/lib/puppet/pal/plan_signature.rb +1 -1
  206. data/lib/puppet/pal/task_signature.rb +2 -2
  207. data/lib/puppet/parameter/path.rb +3 -3
  208. data/lib/puppet/parameter/value.rb +1 -1
  209. data/lib/puppet/parameter/value_collection.rb +5 -5
  210. data/lib/puppet/parameter.rb +4 -4
  211. data/lib/puppet/parser/abstract_compiler.rb +1 -1
  212. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  213. data/lib/puppet/parser/ast/pops_bridge.rb +5 -5
  214. data/lib/puppet/parser/ast/resource.rb +1 -1
  215. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  216. data/lib/puppet/parser/catalog_compiler.rb +1 -1
  217. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +0 -2
  218. data/lib/puppet/parser/compiler.rb +11 -11
  219. data/lib/puppet/parser/e4_parser_adapter.rb +1 -1
  220. data/lib/puppet/parser/files.rb +2 -2
  221. data/lib/puppet/parser/functions/assert_type.rb +15 -15
  222. data/lib/puppet/parser/functions/binary_file.rb +6 -6
  223. data/lib/puppet/parser/functions/break.rb +9 -9
  224. data/lib/puppet/parser/functions/contain.rb +1 -1
  225. data/lib/puppet/parser/functions/create_resources.rb +6 -5
  226. data/lib/puppet/parser/functions/defined.rb +24 -24
  227. data/lib/puppet/parser/functions/dig.rb +10 -10
  228. data/lib/puppet/parser/functions/digest.rb +1 -1
  229. data/lib/puppet/parser/functions/each.rb +21 -21
  230. data/lib/puppet/parser/functions/epp.rb +1 -1
  231. data/lib/puppet/parser/functions/fail.rb +1 -1
  232. data/lib/puppet/parser/functions/file.rb +1 -1
  233. data/lib/puppet/parser/functions/filter.rb +20 -20
  234. data/lib/puppet/parser/functions/find_file.rb +6 -7
  235. data/lib/puppet/parser/functions/fqdn_rand.rb +4 -4
  236. data/lib/puppet/parser/functions/generate.rb +2 -2
  237. data/lib/puppet/parser/functions/hiera.rb +21 -21
  238. data/lib/puppet/parser/functions/hiera_array.rb +19 -20
  239. data/lib/puppet/parser/functions/hiera_hash.rb +21 -22
  240. data/lib/puppet/parser/functions/hiera_include.rb +21 -22
  241. data/lib/puppet/parser/functions/include.rb +2 -2
  242. data/lib/puppet/parser/functions/inline_epp.rb +1 -1
  243. data/lib/puppet/parser/functions/inline_template.rb +3 -2
  244. data/lib/puppet/parser/functions/lest.rb +11 -11
  245. data/lib/puppet/parser/functions/lookup.rb +22 -22
  246. data/lib/puppet/parser/functions/map.rb +20 -20
  247. data/lib/puppet/parser/functions/match.rb +11 -11
  248. data/lib/puppet/parser/functions/md5.rb +1 -1
  249. data/lib/puppet/parser/functions/new.rb +236 -237
  250. data/lib/puppet/parser/functions/next.rb +8 -8
  251. data/lib/puppet/parser/functions/realize.rb +4 -3
  252. data/lib/puppet/parser/functions/reduce.rb +27 -27
  253. data/lib/puppet/parser/functions/regsubst.rb +4 -3
  254. data/lib/puppet/parser/functions/require.rb +3 -2
  255. data/lib/puppet/parser/functions/return.rb +18 -18
  256. data/lib/puppet/parser/functions/reverse_each.rb +22 -22
  257. data/lib/puppet/parser/functions/scanf.rb +6 -6
  258. data/lib/puppet/parser/functions/sha1.rb +1 -1
  259. data/lib/puppet/parser/functions/sha256.rb +1 -1
  260. data/lib/puppet/parser/functions/slice.rb +10 -10
  261. data/lib/puppet/parser/functions/split.rb +2 -1
  262. data/lib/puppet/parser/functions/sprintf.rb +4 -4
  263. data/lib/puppet/parser/functions/step.rb +20 -20
  264. data/lib/puppet/parser/functions/strftime.rb +43 -43
  265. data/lib/puppet/parser/functions/tag.rb +3 -2
  266. data/lib/puppet/parser/functions/tagged.rb +3 -2
  267. data/lib/puppet/parser/functions/template.rb +3 -2
  268. data/lib/puppet/parser/functions/then.rb +17 -17
  269. data/lib/puppet/parser/functions/type.rb +15 -15
  270. data/lib/puppet/parser/functions/versioncmp.rb +1 -1
  271. data/lib/puppet/parser/functions/with.rb +4 -4
  272. data/lib/puppet/parser/functions.rb +6 -6
  273. data/lib/puppet/parser/relationship.rb +2 -2
  274. data/lib/puppet/parser/resource.rb +12 -17
  275. data/lib/puppet/parser/scope.rb +49 -48
  276. data/lib/puppet/parser/script_compiler.rb +5 -5
  277. data/lib/puppet/parser/templatewrapper.rb +1 -1
  278. data/lib/puppet/parser/type_loader.rb +3 -3
  279. data/lib/puppet/plugins.rb +1 -1
  280. data/lib/puppet/pops/adaptable.rb +0 -1
  281. data/lib/puppet/pops/evaluator/access_operator.rb +61 -63
  282. data/lib/puppet/pops/evaluator/closure.rb +9 -11
  283. data/lib/puppet/pops/evaluator/collector_transformer.rb +2 -2
  284. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
  285. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +1 -1
  286. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +2 -2
  287. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +2 -3
  288. data/lib/puppet/pops/evaluator/compare_operator.rb +12 -10
  289. data/lib/puppet/pops/evaluator/deferred_resolver.rb +17 -15
  290. data/lib/puppet/pops/evaluator/epp_evaluator.rb +6 -6
  291. data/lib/puppet/pops/evaluator/evaluator_impl.rb +80 -79
  292. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  293. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +2 -3
  294. data/lib/puppet/pops/evaluator/literal_evaluator.rb +18 -6
  295. data/lib/puppet/pops/evaluator/puppet_proc.rb +3 -3
  296. data/lib/puppet/pops/evaluator/relationship_operator.rb +6 -6
  297. data/lib/puppet/pops/evaluator/runtime3_converter.rb +10 -9
  298. data/lib/puppet/pops/evaluator/runtime3_support.rb +15 -14
  299. data/lib/puppet/pops/functions/dispatch.rb +5 -7
  300. data/lib/puppet/pops/functions/dispatcher.rb +4 -4
  301. data/lib/puppet/pops/functions/function.rb +2 -2
  302. data/lib/puppet/pops/issue_reporter.rb +3 -3
  303. data/lib/puppet/pops/issues.rb +5 -1
  304. data/lib/puppet/pops/label_provider.rb +2 -2
  305. data/lib/puppet/pops/loader/base_loader.rb +1 -2
  306. data/lib/puppet/pops/loader/dependency_loader.rb +2 -2
  307. data/lib/puppet/pops/loader/gem_support.rb +1 -1
  308. data/lib/puppet/pops/loader/loader_paths.rb +6 -7
  309. data/lib/puppet/pops/loader/module_loaders.rb +13 -18
  310. data/lib/puppet/pops/loader/predefined_loader.rb +1 -1
  311. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +2 -1
  312. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +2 -1
  313. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +4 -4
  314. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +7 -6
  315. data/lib/puppet/pops/loader/runtime3_type_loader.rb +1 -1
  316. data/lib/puppet/pops/loader/simple_environment_loader.rb +1 -1
  317. data/lib/puppet/pops/loader/static_loader.rb +2 -2
  318. data/lib/puppet/pops/loader/task_instantiator.rb +2 -2
  319. data/lib/puppet/pops/loader/type_definition_instantiator.rb +2 -1
  320. data/lib/puppet/pops/loader/typed_name.rb +1 -1
  321. data/lib/puppet/pops/loader/uri_helper.rb +1 -1
  322. data/lib/puppet/pops/loaders.rb +3 -3
  323. data/lib/puppet/pops/lookup/context.rb +32 -25
  324. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +2 -2
  325. data/lib/puppet/pops/lookup/explainer.rb +9 -9
  326. data/lib/puppet/pops/lookup/global_data_provider.rb +2 -2
  327. data/lib/puppet/pops/lookup/hiera_config.rb +23 -20
  328. data/lib/puppet/pops/lookup/interpolation.rb +4 -3
  329. data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
  330. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -5
  331. data/lib/puppet/pops/lookup/lookup_key.rb +1 -1
  332. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  333. data/lib/puppet/pops/lookup.rb +1 -2
  334. data/lib/puppet/pops/merge_strategy.rb +10 -8
  335. data/lib/puppet/pops/migration/migration_checker.rb +3 -3
  336. data/lib/puppet/pops/model/ast_transformer.rb +7 -7
  337. data/lib/puppet/pops/model/factory.rb +12 -13
  338. data/lib/puppet/pops/model/model_label_provider.rb +3 -1
  339. data/lib/puppet/pops/model/model_tree_dumper.rb +21 -21
  340. data/lib/puppet/pops/model/tree_dumper.rb +3 -3
  341. data/lib/puppet/pops/parser/code_merger.rb +2 -2
  342. data/lib/puppet/pops/parser/epp_parser.rb +2 -2
  343. data/lib/puppet/pops/parser/epp_support.rb +5 -5
  344. data/lib/puppet/pops/parser/evaluating_parser.rb +4 -4
  345. data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
  346. data/lib/puppet/pops/parser/interpolation_support.rb +20 -20
  347. data/lib/puppet/pops/parser/lexer2.rb +30 -29
  348. data/lib/puppet/pops/parser/lexer_support.rb +20 -18
  349. data/lib/puppet/pops/parser/locator.rb +11 -11
  350. data/lib/puppet/pops/parser/parser_support.rb +7 -7
  351. data/lib/puppet/pops/parser/pn_parser.rb +1 -1
  352. data/lib/puppet/pops/parser/slurp_support.rb +10 -10
  353. data/lib/puppet/pops/pcore.rb +1 -1
  354. data/lib/puppet/pops/pn.rb +1 -2
  355. data/lib/puppet/pops/resource/param.rb +11 -12
  356. data/lib/puppet/pops/resource/resource_type_impl.rb +34 -34
  357. data/lib/puppet/pops/semantic_error.rb +1 -1
  358. data/lib/puppet/pops/serialization/abstract_writer.rb +2 -2
  359. data/lib/puppet/pops/serialization/from_data_converter.rb +12 -9
  360. data/lib/puppet/pops/serialization/json.rb +2 -2
  361. data/lib/puppet/pops/serialization/object.rb +1 -2
  362. data/lib/puppet/pops/serialization/serializer.rb +13 -14
  363. data/lib/puppet/pops/serialization/to_data_converter.rb +3 -3
  364. data/lib/puppet/pops/serialization/to_stringified_converter.rb +5 -5
  365. data/lib/puppet/pops/time/timespan.rb +7 -6
  366. data/lib/puppet/pops/time/timestamp.rb +4 -2
  367. data/lib/puppet/pops/types/annotation.rb +3 -3
  368. data/lib/puppet/pops/types/class_loader.rb +8 -7
  369. data/lib/puppet/pops/types/implementation_registry.rb +2 -1
  370. data/lib/puppet/pops/types/iterable.rb +9 -9
  371. data/lib/puppet/pops/types/p_binary_type.rb +2 -2
  372. data/lib/puppet/pops/types/p_init_type.rb +2 -3
  373. data/lib/puppet/pops/types/p_meta_type.rb +1 -1
  374. data/lib/puppet/pops/types/p_object_type.rb +52 -51
  375. data/lib/puppet/pops/types/p_object_type_extension.rb +1 -2
  376. data/lib/puppet/pops/types/p_runtime_type.rb +1 -2
  377. data/lib/puppet/pops/types/p_sem_ver_type.rb +4 -5
  378. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  379. data/lib/puppet/pops/types/p_timespan_type.rb +3 -4
  380. data/lib/puppet/pops/types/p_timestamp_type.rb +1 -2
  381. data/lib/puppet/pops/types/p_type_set_type.rb +29 -31
  382. data/lib/puppet/pops/types/p_uri_type.rb +8 -8
  383. data/lib/puppet/pops/types/ruby_generator.rb +7 -6
  384. data/lib/puppet/pops/types/ruby_method.rb +6 -7
  385. data/lib/puppet/pops/types/string_converter.rb +29 -32
  386. data/lib/puppet/pops/types/tree_iterators.rb +6 -8
  387. data/lib/puppet/pops/types/type_asserter.rb +3 -3
  388. data/lib/puppet/pops/types/type_calculator.rb +36 -36
  389. data/lib/puppet/pops/types/type_factory.rb +9 -8
  390. data/lib/puppet/pops/types/type_formatter.rb +34 -38
  391. data/lib/puppet/pops/types/type_mismatch_describer.rb +25 -22
  392. data/lib/puppet/pops/types/type_parser.rb +12 -10
  393. data/lib/puppet/pops/types/type_with_members.rb +0 -1
  394. data/lib/puppet/pops/types/types.rb +85 -97
  395. data/lib/puppet/pops/utils.rb +2 -2
  396. data/lib/puppet/pops/validation/checker4_0.rb +51 -38
  397. data/lib/puppet/pops/validation/tasks_checker.rb +3 -3
  398. data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
  399. data/lib/puppet/pops/validation.rb +15 -15
  400. data/lib/puppet/pops/visitor.rb +1 -1
  401. data/lib/puppet/property/ensure.rb +0 -1
  402. data/lib/puppet/property/keyvalue.rb +5 -6
  403. data/lib/puppet/property/list.rb +1 -1
  404. data/lib/puppet/property.rb +8 -10
  405. data/lib/puppet/provider/aix_object.rb +9 -9
  406. data/lib/puppet/provider/exec/posix.rb +1 -1
  407. data/lib/puppet/provider/exec.rb +3 -3
  408. data/lib/puppet/provider/file/windows.rb +3 -3
  409. data/lib/puppet/provider/group/groupadd.rb +2 -2
  410. data/lib/puppet/provider/group/pw.rb +0 -1
  411. data/lib/puppet/provider/group/windows_adsi.rb +3 -3
  412. data/lib/puppet/provider/ldap.rb +2 -3
  413. data/lib/puppet/provider/nameservice/directoryservice.rb +11 -11
  414. data/lib/puppet/provider/nameservice/pw.rb +0 -1
  415. data/lib/puppet/provider/nameservice.rb +9 -10
  416. data/lib/puppet/provider/package/aix.rb +4 -4
  417. data/lib/puppet/provider/package/appdmg.rb +3 -3
  418. data/lib/puppet/provider/package/apple.rb +1 -1
  419. data/lib/puppet/provider/package/apt.rb +7 -3
  420. data/lib/puppet/provider/package/aptrpm.rb +6 -4
  421. data/lib/puppet/provider/package/blastwave.rb +3 -3
  422. data/lib/puppet/provider/package/dnf.rb +5 -0
  423. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  424. data/lib/puppet/provider/package/dpkg.rb +8 -8
  425. data/lib/puppet/provider/package/gem.rb +6 -7
  426. data/lib/puppet/provider/package/hpux.rb +2 -2
  427. data/lib/puppet/provider/package/nim.rb +4 -4
  428. data/lib/puppet/provider/package/openbsd.rb +8 -8
  429. data/lib/puppet/provider/package/opkg.rb +6 -6
  430. data/lib/puppet/provider/package/pacman.rb +2 -2
  431. data/lib/puppet/provider/package/pip.rb +8 -8
  432. data/lib/puppet/provider/package/pkg.rb +19 -19
  433. data/lib/puppet/provider/package/pkgdmg.rb +5 -5
  434. data/lib/puppet/provider/package/pkgin.rb +6 -6
  435. data/lib/puppet/provider/package/pkgng.rb +1 -1
  436. data/lib/puppet/provider/package/pkgutil.rb +11 -11
  437. data/lib/puppet/provider/package/portage.rb +3 -3
  438. data/lib/puppet/provider/package/portupgrade.rb +5 -7
  439. data/lib/puppet/provider/package/puppet_gem.rb +2 -2
  440. data/lib/puppet/provider/package/puppetserver_gem.rb +4 -4
  441. data/lib/puppet/provider/package/rpm.rb +9 -9
  442. data/lib/puppet/provider/package/sun.rb +2 -2
  443. data/lib/puppet/provider/package/tdnf.rb +6 -1
  444. data/lib/puppet/provider/package/windows/exe_package.rb +2 -2
  445. data/lib/puppet/provider/package/windows/package.rb +3 -3
  446. data/lib/puppet/provider/package/windows.rb +1 -1
  447. data/lib/puppet/provider/package/yum.rb +25 -14
  448. data/lib/puppet/provider/package/zypper.rb +7 -7
  449. data/lib/puppet/provider/package.rb +1 -1
  450. data/lib/puppet/provider/package_targetable.rb +2 -2
  451. data/lib/puppet/provider/parsedfile.rb +5 -7
  452. data/lib/puppet/provider/service/base.rb +0 -1
  453. data/lib/puppet/provider/service/daemontools.rb +10 -10
  454. data/lib/puppet/provider/service/debian.rb +2 -2
  455. data/lib/puppet/provider/service/freebsd.rb +15 -17
  456. data/lib/puppet/provider/service/init.rb +2 -3
  457. data/lib/puppet/provider/service/launchd.rb +3 -3
  458. data/lib/puppet/provider/service/openrc.rb +1 -1
  459. data/lib/puppet/provider/service/redhat.rb +2 -1
  460. data/lib/puppet/provider/service/runit.rb +2 -3
  461. data/lib/puppet/provider/service/service.rb +0 -1
  462. data/lib/puppet/provider/service/smf.rb +4 -4
  463. data/lib/puppet/provider/service/src.rb +3 -4
  464. data/lib/puppet/provider/service/systemd.rb +3 -2
  465. data/lib/puppet/provider/service/upstart.rb +6 -8
  466. data/lib/puppet/provider/service/windows.rb +15 -15
  467. data/lib/puppet/provider/user/aix.rb +14 -14
  468. data/lib/puppet/provider/user/directoryservice.rb +8 -8
  469. data/lib/puppet/provider/user/hpux.rb +9 -9
  470. data/lib/puppet/provider/user/ldap.rb +4 -4
  471. data/lib/puppet/provider/user/openbsd.rb +1 -1
  472. data/lib/puppet/provider/user/pw.rb +1 -2
  473. data/lib/puppet/provider/user/user_role_add.rb +9 -9
  474. data/lib/puppet/provider/user/useradd.rb +4 -4
  475. data/lib/puppet/provider/user/windows_adsi.rb +6 -6
  476. data/lib/puppet/provider.rb +2 -2
  477. data/lib/puppet/reference/configuration.rb +15 -14
  478. data/lib/puppet/reference/indirection.rb +14 -14
  479. data/lib/puppet/reference/providers.rb +2 -2
  480. data/lib/puppet/reference/type.rb +1 -1
  481. data/lib/puppet/relationship.rb +2 -2
  482. data/lib/puppet/reports/log.rb +0 -1
  483. data/lib/puppet/reports/store.rb +2 -2
  484. data/lib/puppet/resource/catalog.rb +26 -30
  485. data/lib/puppet/resource/status.rb +4 -3
  486. data/lib/puppet/resource/type.rb +10 -11
  487. data/lib/puppet/resource/type_collection.rb +5 -5
  488. data/lib/puppet/resource.rb +35 -30
  489. data/lib/puppet/scheduler/scheduler.rb +1 -1
  490. data/lib/puppet/scheduler.rb +1 -1
  491. data/lib/puppet/settings/base_setting.rb +2 -2
  492. data/lib/puppet/settings/boolean_setting.rb +1 -1
  493. data/lib/puppet/settings/config_file.rb +2 -2
  494. data/lib/puppet/settings/duration_setting.rb +2 -3
  495. data/lib/puppet/settings/environment_conf.rb +6 -4
  496. data/lib/puppet/settings/errors.rb +3 -3
  497. data/lib/puppet/settings/integer_setting.rb +1 -1
  498. data/lib/puppet/settings/priority_setting.rb +3 -4
  499. data/lib/puppet/settings/server_list_setting.rb +4 -4
  500. data/lib/puppet/settings/ttl_setting.rb +3 -4
  501. data/lib/puppet/settings/value_translator.rb +1 -1
  502. data/lib/puppet/settings.rb +39 -36
  503. data/lib/puppet/ssl/base.rb +2 -2
  504. data/lib/puppet/ssl/certificate.rb +2 -2
  505. data/lib/puppet/ssl/certificate_request.rb +10 -10
  506. data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
  507. data/lib/puppet/ssl/oids.rb +4 -4
  508. data/lib/puppet/ssl/ssl_provider.rb +8 -6
  509. data/lib/puppet/ssl/state_machine.rb +11 -11
  510. data/lib/puppet/syntax_checkers/base64.rb +1 -1
  511. data/lib/puppet/syntax_checkers/epp.rb +2 -2
  512. data/lib/puppet/syntax_checkers/json.rb +2 -2
  513. data/lib/puppet/syntax_checkers/pp.rb +2 -2
  514. data/lib/puppet/syntax_checkers.rb +1 -1
  515. data/lib/puppet/test/test_helper.rb +10 -9
  516. data/lib/puppet/transaction/additional_resource_generator.rb +5 -5
  517. data/lib/puppet/transaction/event_manager.rb +2 -3
  518. data/lib/puppet/transaction/persistence.rb +1 -1
  519. data/lib/puppet/transaction/report.rb +14 -16
  520. data/lib/puppet/transaction/resource_harness.rb +2 -2
  521. data/lib/puppet/transaction.rb +11 -11
  522. data/lib/puppet/trusted_external.rb +1 -1
  523. data/lib/puppet/type/exec.rb +7 -11
  524. data/lib/puppet/type/file/checksum_value.rb +2 -2
  525. data/lib/puppet/type/file/content.rb +5 -5
  526. data/lib/puppet/type/file/ctime.rb +0 -1
  527. data/lib/puppet/type/file/data_sync.rb +2 -2
  528. data/lib/puppet/type/file/ensure.rb +6 -9
  529. data/lib/puppet/type/file/owner.rb +0 -1
  530. data/lib/puppet/type/file/selcontext.rb +0 -1
  531. data/lib/puppet/type/file/source.rb +2 -2
  532. data/lib/puppet/type/file/target.rb +2 -3
  533. data/lib/puppet/type/file/type.rb +0 -1
  534. data/lib/puppet/type/file.rb +22 -26
  535. data/lib/puppet/type/group.rb +2 -2
  536. data/lib/puppet/type/package.rb +8 -8
  537. data/lib/puppet/type/resources.rb +8 -8
  538. data/lib/puppet/type/schedule.rb +4 -4
  539. data/lib/puppet/type/service.rb +4 -4
  540. data/lib/puppet/type/tidy.rb +7 -7
  541. data/lib/puppet/type/user.rb +20 -19
  542. data/lib/puppet/type.rb +44 -49
  543. data/lib/puppet/util/at_fork/solaris.rb +4 -4
  544. data/lib/puppet/util/autoload.rb +2 -2
  545. data/lib/puppet/util/backups.rb +3 -3
  546. data/lib/puppet/util/checksums.rb +1 -1
  547. data/lib/puppet/util/classgen.rb +2 -3
  548. data/lib/puppet/util/colors.rb +33 -33
  549. data/lib/puppet/util/command_line/puppet_option_parser.rb +5 -4
  550. data/lib/puppet/util/command_line/trollop.rb +38 -34
  551. data/lib/puppet/util/command_line.rb +1 -1
  552. data/lib/puppet/util/diff.rb +4 -4
  553. data/lib/puppet/util/docs.rb +3 -3
  554. data/lib/puppet/util/errors.rb +2 -2
  555. data/lib/puppet/util/execution.rb +12 -11
  556. data/lib/puppet/util/feature.rb +6 -8
  557. data/lib/puppet/util/fileparsing.rb +9 -12
  558. data/lib/puppet/util/filetype.rb +3 -3
  559. data/lib/puppet/util/inifile.rb +1 -1
  560. data/lib/puppet/util/ldap/manager.rb +6 -7
  561. data/lib/puppet/util/libuser.rb +1 -1
  562. data/lib/puppet/util/log/destination.rb +0 -1
  563. data/lib/puppet/util/log/destinations.rb +2 -4
  564. data/lib/puppet/util/log.rb +7 -6
  565. data/lib/puppet/util/logging.rb +6 -7
  566. data/lib/puppet/util/metaid.rb +0 -1
  567. data/lib/puppet/util/metric.rb +3 -3
  568. data/lib/puppet/util/monkey_patches.rb +1 -1
  569. data/lib/puppet/util/multi_match.rb +4 -4
  570. data/lib/puppet/util/network_device/base.rb +1 -1
  571. data/lib/puppet/util/network_device/config.rb +2 -2
  572. data/lib/puppet/util/package/version/pip.rb +2 -2
  573. data/lib/puppet/util/package/version/range/lt.rb +1 -1
  574. data/lib/puppet/util/package/version/range.rb +5 -5
  575. data/lib/puppet/util/package.rb +1 -1
  576. data/lib/puppet/util/pidlock.rb +1 -1
  577. data/lib/puppet/util/plist.rb +6 -5
  578. data/lib/puppet/util/posix.rb +3 -4
  579. data/lib/puppet/util/profiler/aggregate.rb +2 -3
  580. data/lib/puppet/util/profiler/logging.rb +1 -1
  581. data/lib/puppet/util/profiler/wall_clock.rb +2 -3
  582. data/lib/puppet/util/provider_features.rb +1 -2
  583. data/lib/puppet/util/rdoc/code_objects.rb +11 -10
  584. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +37 -34
  585. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +17 -15
  586. data/lib/puppet/util/rdoc.rb +8 -8
  587. data/lib/puppet/util/reference.rb +2 -2
  588. data/lib/puppet/util/resource_template.rb +0 -1
  589. data/lib/puppet/util/retry_action.rb +2 -2
  590. data/lib/puppet/util/rpm_compare.rb +7 -7
  591. data/lib/puppet/util/rubygems.rb +0 -1
  592. data/lib/puppet/util/run_mode.rb +3 -3
  593. data/lib/puppet/util/selinux.rb +3 -3
  594. data/lib/puppet/util/storage.rb +1 -1
  595. data/lib/puppet/util/suidmanager.rb +13 -15
  596. data/lib/puppet/util/symbolic_file_mode.rb +8 -7
  597. data/lib/puppet/util/tagging.rb +2 -2
  598. data/lib/puppet/util/user_attr.rb +1 -1
  599. data/lib/puppet/util/watched_file.rb +2 -1
  600. data/lib/puppet/util/watcher/periodic_watcher.rb +0 -1
  601. data/lib/puppet/util/windows/access_control_list.rb +5 -4
  602. data/lib/puppet/util/windows/adsi.rb +14 -14
  603. data/lib/puppet/util/windows/com.rb +2 -2
  604. data/lib/puppet/util/windows/daemon.rb +8 -8
  605. data/lib/puppet/util/windows/eventlog.rb +4 -4
  606. data/lib/puppet/util/windows/file.rb +16 -12
  607. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  608. data/lib/puppet/util/windows/principal.rb +8 -6
  609. data/lib/puppet/util/windows/process.rb +28 -22
  610. data/lib/puppet/util/windows/registry.rb +47 -14
  611. data/lib/puppet/util/windows/root_certs.rb +1 -1
  612. data/lib/puppet/util/windows/security.rb +20 -18
  613. data/lib/puppet/util/windows/service.rb +4 -4
  614. data/lib/puppet/util/windows/sid.rb +8 -7
  615. data/lib/puppet/util/windows/user.rb +4 -2
  616. data/lib/puppet/util/windows.rb +1 -1
  617. data/lib/puppet/util.rb +14 -16
  618. data/lib/puppet/version.rb +1 -1
  619. data/lib/puppet/x509/cert_provider.rb +12 -12
  620. data/lib/puppet.rb +8 -7
  621. data/locales/puppet.pot +2008 -2004
  622. data/man/man5/puppet.conf.5 +2 -2
  623. data/man/man8/puppet-agent.8 +1 -1
  624. data/man/man8/puppet-apply.8 +1 -1
  625. data/man/man8/puppet-catalog.8 +1 -1
  626. data/man/man8/puppet-config.8 +1 -1
  627. data/man/man8/puppet-describe.8 +1 -1
  628. data/man/man8/puppet-device.8 +1 -1
  629. data/man/man8/puppet-doc.8 +1 -1
  630. data/man/man8/puppet-epp.8 +1 -1
  631. data/man/man8/puppet-facts.8 +1 -1
  632. data/man/man8/puppet-filebucket.8 +1 -1
  633. data/man/man8/puppet-generate.8 +1 -1
  634. data/man/man8/puppet-help.8 +1 -1
  635. data/man/man8/puppet-lookup.8 +1 -1
  636. data/man/man8/puppet-module.8 +1 -1
  637. data/man/man8/puppet-node.8 +1 -1
  638. data/man/man8/puppet-parser.8 +1 -1
  639. data/man/man8/puppet-plugin.8 +1 -1
  640. data/man/man8/puppet-report.8 +1 -1
  641. data/man/man8/puppet-resource.8 +1 -1
  642. data/man/man8/puppet-script.8 +1 -1
  643. data/man/man8/puppet-ssl.8 +1 -1
  644. data/man/man8/puppet.8 +2 -2
  645. data/tasks/generate_cert_fixtures.rake +1 -0
  646. metadata +3 -2455
  647. data/spec/fixtures/faulty_face/puppet/face/syntax.rb +0 -8
  648. data/spec/fixtures/hiera.yaml +0 -9
  649. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  650. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  651. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +0 -2
  652. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +0 -25
  653. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/README +0 -3
  654. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/manifests/init.pp +0 -17
  655. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/metadata.json +0 -20
  656. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  657. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  658. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  659. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  660. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  661. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  662. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  663. data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +0 -2
  664. data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +0 -6
  665. data/spec/fixtures/integration/node/environment/sitedir/03_empty.pp +0 -0
  666. data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +0 -2
  667. data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +0 -2
  668. data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +0 -6
  669. data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +0 -1
  670. data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +0 -2
  671. data/spec/fixtures/java.tgz +0 -0
  672. data/spec/fixtures/manifests/site.pp +0 -0
  673. data/spec/fixtures/module.tar.gz +0 -0
  674. data/spec/fixtures/releases/jamtur01-apache/Modulefile +0 -2
  675. data/spec/fixtures/releases/jamtur01-apache/files/httpd +0 -24
  676. data/spec/fixtures/releases/jamtur01-apache/files/test.vhost +0 -18
  677. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +0 -21
  678. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/type/a2mod.rb +0 -12
  679. data/spec/fixtures/releases/jamtur01-apache/manifests/dev.pp +0 -5
  680. data/spec/fixtures/releases/jamtur01-apache/manifests/init.pp +0 -34
  681. data/spec/fixtures/releases/jamtur01-apache/manifests/params.pp +0 -17
  682. data/spec/fixtures/releases/jamtur01-apache/manifests/php.pp +0 -5
  683. data/spec/fixtures/releases/jamtur01-apache/manifests/ssl.pp +0 -15
  684. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +0 -15
  685. data/spec/fixtures/releases/jamtur01-apache/metadata.json +0 -1
  686. data/spec/fixtures/releases/jamtur01-apache/templates/vhost-default.conf.erb +0 -20
  687. data/spec/fixtures/releases/jamtur01-apache/tests/apache.pp +0 -1
  688. data/spec/fixtures/releases/jamtur01-apache/tests/dev.pp +0 -1
  689. data/spec/fixtures/releases/jamtur01-apache/tests/init.pp +0 -1
  690. data/spec/fixtures/releases/jamtur01-apache/tests/php.pp +0 -1
  691. data/spec/fixtures/releases/jamtur01-apache/tests/ssl.pp +0 -1
  692. data/spec/fixtures/releases/jamtur01-apache/tests/vhost.pp +0 -2
  693. data/spec/fixtures/ssl/127.0.0.1-key.pem +0 -117
  694. data/spec/fixtures/ssl/127.0.0.1.pem +0 -70
  695. data/spec/fixtures/ssl/bad-basic-constraints.pem +0 -81
  696. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +0 -81
  697. data/spec/fixtures/ssl/ca.pem +0 -81
  698. data/spec/fixtures/ssl/crl.pem +0 -40
  699. data/spec/fixtures/ssl/ec-key-openssl.pem +0 -8
  700. data/spec/fixtures/ssl/ec-key-pk8.pem +0 -5
  701. data/spec/fixtures/ssl/ec-key.pem +0 -18
  702. data/spec/fixtures/ssl/ec.pem +0 -50
  703. data/spec/fixtures/ssl/encrypted-ec-key.pem +0 -21
  704. data/spec/fixtures/ssl/encrypted-key.pem +0 -120
  705. data/spec/fixtures/ssl/intermediate-agent-crl.pem +0 -40
  706. data/spec/fixtures/ssl/intermediate-agent.pem +0 -81
  707. data/spec/fixtures/ssl/intermediate-crl.pem +0 -46
  708. data/spec/fixtures/ssl/intermediate.pem +0 -81
  709. data/spec/fixtures/ssl/netlock-arany-utf8.pem +0 -23
  710. data/spec/fixtures/ssl/oid-key.pem +0 -117
  711. data/spec/fixtures/ssl/oid.pem +0 -70
  712. data/spec/fixtures/ssl/pluto-key.pem +0 -117
  713. data/spec/fixtures/ssl/pluto.pem +0 -67
  714. data/spec/fixtures/ssl/renewed.pem +0 -67
  715. data/spec/fixtures/ssl/request-key.pem +0 -117
  716. data/spec/fixtures/ssl/request.pem +0 -62
  717. data/spec/fixtures/ssl/revoked-key.pem +0 -117
  718. data/spec/fixtures/ssl/revoked.pem +0 -67
  719. data/spec/fixtures/ssl/signed-key.pem +0 -117
  720. data/spec/fixtures/ssl/signed.pem +0 -67
  721. data/spec/fixtures/ssl/tampered-cert.pem +0 -67
  722. data/spec/fixtures/ssl/tampered-csr.pem +0 -62
  723. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  724. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +0 -117
  725. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +0 -70
  726. data/spec/fixtures/ssl/unknown-ca-key.pem +0 -117
  727. data/spec/fixtures/ssl/unknown-ca.pem +0 -81
  728. data/spec/fixtures/stdlib.tgz +0 -0
  729. data/spec/fixtures/unit/application/environments/production/data/common.yaml +0 -24
  730. data/spec/fixtures/unit/application/environments/production/environment.conf +0 -1
  731. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +0 -1
  732. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +0 -1
  733. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/environment/data.pp +0 -10
  734. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +0 -1
  735. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +0 -3
  736. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +0 -2
  737. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +0 -5
  738. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +0 -5
  739. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +0 -3
  740. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +0 -2
  741. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +0 -5
  742. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +0 -5
  743. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +0 -2
  744. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +0 -2
  745. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +0 -1
  746. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +0 -2
  747. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +0 -5
  748. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +0 -9
  749. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +0 -3
  750. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +0 -2
  751. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +0 -3
  752. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +0 -2
  753. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +0 -3
  754. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +0 -3
  755. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +0 -2
  756. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +0 -2
  757. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +0 -22
  758. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +0 -5
  759. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +0 -48
  760. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +0 -2
  761. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +0 -1
  762. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +0 -30
  763. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +0 -13
  764. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +0 -9
  765. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +0 -4
  766. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +0 -4
  767. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +0 -2
  768. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +0 -7
  769. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +0 -1
  770. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +0 -3
  771. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +0 -2
  772. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +0 -3
  773. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server1.yaml +0 -1
  774. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server2.yaml +0 -1
  775. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +0 -2
  776. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +0 -2
  777. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +0 -20
  778. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +0 -5
  779. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +0 -9
  780. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +0 -4
  781. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +0 -4
  782. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +0 -2
  783. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +0 -7
  784. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +0 -1
  785. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +0 -6
  786. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +0 -5
  787. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +0 -2
  788. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +0 -9
  789. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +0 -4
  790. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +0 -5
  791. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +0 -3
  792. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +0 -9
  793. data/spec/fixtures/unit/data_providers/environments/production/environment.conf +0 -2
  794. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +0 -9
  795. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -9
  796. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +0 -10
  797. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +0 -9
  798. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/functions/data.pp +0 -6
  799. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/manifests/init.pp +0 -9
  800. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +0 -9
  801. data/spec/fixtures/unit/forge/bacula-releases.json +0 -128
  802. data/spec/fixtures/unit/forge/bacula.json +0 -76
  803. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  804. data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +0 -22
  805. data/spec/fixtures/unit/functions/lookup/data/common.yaml +0 -19
  806. data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +0 -18
  807. data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +0 -7
  808. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +0 -19
  809. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/environment.conf +0 -2
  810. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/lib/puppet/functions/environment/data.rb +0 -13
  811. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -9
  812. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/manifests/init.pp +0 -8
  813. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +0 -9
  814. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -7
  815. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/manifests/init.pp +0 -2
  816. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +0 -9
  817. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -9
  818. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/manifests/init.pp +0 -2
  819. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +0 -9
  820. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/data/empty.json +0 -0
  821. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/hiera.yaml +0 -5
  822. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/manifests/init.pp +0 -2
  823. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/metadata.json +0 -9
  824. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/data/empty_key.json +0 -1
  825. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/hiera.yaml +0 -5
  826. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/manifests/init.pp +0 -2
  827. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/metadata.json +0 -9
  828. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -1
  829. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/hiera.yaml +0 -5
  830. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -2
  831. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/metadata.json +0 -9
  832. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/data/empty.yaml +0 -2
  833. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/hiera.yaml +0 -5
  834. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/manifests/init.pp +0 -2
  835. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/metadata.json +0 -9
  836. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/data/first.json +0 -4
  837. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/hiera.yaml +0 -8
  838. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/manifests/init.pp +0 -5
  839. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/metadata.json +0 -9
  840. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -9
  841. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/manifests/init.pp +0 -3
  842. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/metadata.json +0 -9
  843. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/no_provider/manifests/init.pp +0 -2
  844. data/spec/fixtures/unit/indirector/data_binding/hiera/global.yaml +0 -10
  845. data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +0 -1
  846. data/spec/fixtures/unit/indirector/hiera/global.yaml +0 -10
  847. data/spec/fixtures/unit/indirector/hiera/invalid.yaml +0 -1
  848. data/spec/fixtures/unit/module/trailing-comma.json +0 -24
  849. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +0 -3
  850. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +0 -3
  851. data/spec/fixtures/unit/parser/lexer/aliastest.pp +0 -16
  852. data/spec/fixtures/unit/parser/lexer/append.pp +0 -11
  853. data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +0 -14
  854. data/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp +0 -8
  855. data/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp +0 -3
  856. data/spec/fixtures/unit/parser/lexer/casestatement.pp +0 -65
  857. data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +0 -15
  858. data/spec/fixtures/unit/parser/lexer/classincludes.pp +0 -17
  859. data/spec/fixtures/unit/parser/lexer/classpathtest.pp +0 -11
  860. data/spec/fixtures/unit/parser/lexer/collection.pp +0 -10
  861. data/spec/fixtures/unit/parser/lexer/collection_override.pp +0 -8
  862. data/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp +0 -20
  863. data/spec/fixtures/unit/parser/lexer/componentmetaparams.pp +0 -11
  864. data/spec/fixtures/unit/parser/lexer/componentrequire.pp +0 -8
  865. data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +0 -23
  866. data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +0 -17
  867. data/spec/fixtures/unit/parser/lexer/emptyclass.pp +0 -9
  868. data/spec/fixtures/unit/parser/lexer/emptyexec.pp +0 -3
  869. data/spec/fixtures/unit/parser/lexer/emptyifelse.pp +0 -9
  870. data/spec/fixtures/unit/parser/lexer/falsevalues.pp +0 -3
  871. data/spec/fixtures/unit/parser/lexer/filecreate.pp +0 -11
  872. data/spec/fixtures/unit/parser/lexer/fqdefinition.pp +0 -5
  873. data/spec/fixtures/unit/parser/lexer/fqparents.pp +0 -11
  874. data/spec/fixtures/unit/parser/lexer/funccomma.pp +0 -5
  875. data/spec/fixtures/unit/parser/lexer/hash.pp +0 -33
  876. data/spec/fixtures/unit/parser/lexer/ifexpression.pp +0 -12
  877. data/spec/fixtures/unit/parser/lexer/implicititeration.pp +0 -15
  878. data/spec/fixtures/unit/parser/lexer/multilinecomments.pp +0 -10
  879. data/spec/fixtures/unit/parser/lexer/multipleclass.pp +0 -9
  880. data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +0 -7
  881. data/spec/fixtures/unit/parser/lexer/multisubs.pp +0 -13
  882. data/spec/fixtures/unit/parser/lexer/namevartest.pp +0 -9
  883. data/spec/fixtures/unit/parser/lexer/scopetest.pp +0 -13
  884. data/spec/fixtures/unit/parser/lexer/selectorvalues.pp +0 -49
  885. data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +0 -5
  886. data/spec/fixtures/unit/parser/lexer/simpleselector.pp +0 -38
  887. data/spec/fixtures/unit/parser/lexer/singleary.pp +0 -19
  888. data/spec/fixtures/unit/parser/lexer/singlequote.pp +0 -11
  889. data/spec/fixtures/unit/parser/lexer/singleselector.pp +0 -22
  890. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -11
  891. data/spec/fixtures/unit/parser/lexer/tag.pp +0 -9
  892. data/spec/fixtures/unit/parser/lexer/tagged.pp +0 -35
  893. data/spec/fixtures/unit/parser/lexer/virtualresources.pp +0 -14
  894. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +0 -10
  895. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +0 -10
  896. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +0 -20
  897. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +0 -18
  898. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +0 -5
  899. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +0 -6
  900. data/spec/fixtures/unit/pops/binder/config/binder_config/nolayer/binder_config.yaml +0 -6
  901. data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +0 -9
  902. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +0 -3
  903. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/callee.rb +0 -5
  904. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +0 -6
  905. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +0 -5
  906. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +0 -8
  907. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +0 -1
  908. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +0 -5
  909. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +0 -5
  910. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +0 -5
  911. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +0 -5
  912. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller.rb +0 -5
  913. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +0 -5
  914. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +0 -5
  915. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +0 -5
  916. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +0 -5
  917. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +0 -87
  918. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/metadata.json +0 -10
  919. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +0 -1
  920. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +0 -1
  921. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load.rb +0 -11
  922. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  923. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  924. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  925. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  926. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee.rb +0 -8
  927. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee_ws.rb +0 -8
  928. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/func_with_syntax_error.rb +0 -9
  929. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  930. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/metadata.json +0 -9
  931. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp +0 -3
  932. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp +0 -3
  933. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller4.pp +0 -3
  934. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/caller.rb +0 -5
  935. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/caller_ws.rb +0 -12
  936. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/callingpuppet.rb +0 -5
  937. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/metadata.json +0 -9
  938. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp +0 -3
  939. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp +0 -3
  940. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json +0 -10
  941. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +0 -10
  942. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp +0 -3
  943. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp +0 -3
  944. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/modulea/rb_func_a.rb +0 -5
  945. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/rb_func_a.rb +0 -5
  946. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/manifests/init.pp +0 -3
  947. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +0 -10
  948. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/lib/puppet/functions/moduleb/rb_func_b.rb +0 -6
  949. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/manifests/init.pp +0 -3
  950. data/spec/fixtures/unit/pops/parser/lexer/aliastest.pp +0 -16
  951. data/spec/fixtures/unit/pops/parser/lexer/append.pp +0 -11
  952. data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +0 -14
  953. data/spec/fixtures/unit/pops/parser/lexer/arithmetic_expression.pp +0 -8
  954. data/spec/fixtures/unit/pops/parser/lexer/arraytrailingcomma.pp +0 -3
  955. data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +0 -65
  956. data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +0 -15
  957. data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +0 -17
  958. data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +0 -11
  959. data/spec/fixtures/unit/pops/parser/lexer/collection.pp +0 -10
  960. data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +0 -8
  961. data/spec/fixtures/unit/pops/parser/lexer/collection_within_virtual_definitions.pp +0 -20
  962. data/spec/fixtures/unit/pops/parser/lexer/componentmetaparams.pp +0 -11
  963. data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +0 -8
  964. data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +0 -23
  965. data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +0 -17
  966. data/spec/fixtures/unit/pops/parser/lexer/emptyclass.pp +0 -9
  967. data/spec/fixtures/unit/pops/parser/lexer/emptyexec.pp +0 -3
  968. data/spec/fixtures/unit/pops/parser/lexer/emptyifelse.pp +0 -9
  969. data/spec/fixtures/unit/pops/parser/lexer/falsevalues.pp +0 -3
  970. data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +0 -11
  971. data/spec/fixtures/unit/pops/parser/lexer/fqdefinition.pp +0 -5
  972. data/spec/fixtures/unit/pops/parser/lexer/fqparents.pp +0 -11
  973. data/spec/fixtures/unit/pops/parser/lexer/funccomma.pp +0 -5
  974. data/spec/fixtures/unit/pops/parser/lexer/hash.pp +0 -33
  975. data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +0 -12
  976. data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +0 -15
  977. data/spec/fixtures/unit/pops/parser/lexer/multilinecomments.pp +0 -10
  978. data/spec/fixtures/unit/pops/parser/lexer/multipleclass.pp +0 -9
  979. data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +0 -7
  980. data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +0 -13
  981. data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +0 -9
  982. data/spec/fixtures/unit/pops/parser/lexer/scopetest.pp +0 -13
  983. data/spec/fixtures/unit/pops/parser/lexer/selectorvalues.pp +0 -49
  984. data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +0 -5
  985. data/spec/fixtures/unit/pops/parser/lexer/simpleselector.pp +0 -38
  986. data/spec/fixtures/unit/pops/parser/lexer/singleary.pp +0 -19
  987. data/spec/fixtures/unit/pops/parser/lexer/singlequote.pp +0 -11
  988. data/spec/fixtures/unit/pops/parser/lexer/singleselector.pp +0 -22
  989. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -11
  990. data/spec/fixtures/unit/pops/parser/lexer/tag.pp +0 -9
  991. data/spec/fixtures/unit/pops/parser/lexer/tagged.pp +0 -35
  992. data/spec/fixtures/unit/pops/parser/lexer/virtualresources.pp +0 -14
  993. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_input.out +0 -1
  994. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_output.out +0 -1
  995. data/spec/fixtures/unit/provider/cron/crontab/single_line.yaml +0 -272
  996. data/spec/fixtures/unit/provider/cron/crontab/vixie_header.txt +0 -3
  997. data/spec/fixtures/unit/provider/cron/parsed/managed +0 -6
  998. data/spec/fixtures/unit/provider/cron/parsed/simple +0 -9
  999. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +0 -19
  1000. data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +0 -4
  1001. data/spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning +0 -14
  1002. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.detail +0 -19
  1003. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.list +0 -10
  1004. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.query +0 -1
  1005. data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +0 -2
  1006. data/spec/fixtures/unit/provider/package/pkg/dummy_implicit_version +0 -3
  1007. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +0 -1
  1008. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.certificate_warning +0 -2
  1009. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.installed +0 -1
  1010. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +0 -1
  1011. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +0 -1
  1012. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +0 -1
  1013. data/spec/fixtures/unit/provider/package/pkg/incomplete +0 -1
  1014. data/spec/fixtures/unit/provider/package/pkg/solaris11 +0 -2
  1015. data/spec/fixtures/unit/provider/package/pkg/unknown_status +0 -12
  1016. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +0 -7
  1017. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +0 -1
  1018. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +0 -5
  1019. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +0 -30
  1020. data/spec/fixtures/unit/provider/package/sun/dummy.server +0 -12
  1021. data/spec/fixtures/unit/provider/package/sun/simple +0 -24
  1022. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +0 -187
  1023. data/spec/fixtures/unit/provider/package/yum/yum-check-update-multiline.txt +0 -201
  1024. data/spec/fixtures/unit/provider/package/yum/yum-check-update-obsoletes.txt +0 -195
  1025. data/spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt +0 -36
  1026. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +0 -184
  1027. data/spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt +0 -13
  1028. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +0 -9
  1029. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out +0 -369
  1030. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out +0 -3
  1031. data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +0 -13
  1032. data/spec/fixtures/unit/provider/parsedfile/aliases.txt +0 -2
  1033. data/spec/fixtures/unit/provider/parsedfile/simple.txt +0 -7
  1034. data/spec/fixtures/unit/provider/service/base/ps_ef.mixed_encoding +0 -3
  1035. data/spec/fixtures/unit/provider/service/gentoo/rc_update_show +0 -30
  1036. data/spec/fixtures/unit/provider/service/openbsd/rcctl_getall +0 -6
  1037. data/spec/fixtures/unit/provider/service/openrc/rcservice_list +0 -8
  1038. data/spec/fixtures/unit/provider/service/openrc/rcstatus +0 -43
  1039. data/spec/fixtures/unit/provider/service/smf/svcs_fmri.out +0 -6
  1040. data/spec/fixtures/unit/provider/service/smf/svcs_instances.out +0 -4
  1041. data/spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out +0 -13
  1042. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +0 -16
  1043. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  1044. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -36
  1045. data/spec/fixtures/unit/reports/tagmail/tagmail_email.conf +0 -2
  1046. data/spec/fixtures/unit/reports/tagmail/tagmail_failers.conf +0 -3
  1047. data/spec/fixtures/unit/reports/tagmail/tagmail_passers.conf +0 -30
  1048. data/spec/fixtures/unit/ssl/certificate/old-style-cert-exts.pem +0 -33
  1049. data/spec/fixtures/unit/ssl/certificate_request/old-style-cert-request.pem +0 -28
  1050. data/spec/fixtures/unit/type/user/authorized_keys +0 -6
  1051. data/spec/fixtures/unit/util/filetype/aixtab_output +0 -44
  1052. data/spec/fixtures/unit/util/filetype/suntab_output +0 -9
  1053. data/spec/fixtures/unit/util/monkey_patches/x509.pem +0 -32
  1054. data/spec/fixtures/unit/util/rdoc/basic.pp +0 -16
  1055. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +0 -104
  1056. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +0 -108
  1057. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +0 -108
  1058. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +0 -104
  1059. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +0 -100
  1060. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +0 -104
  1061. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +0 -104
  1062. data/spec/fixtures/yaml/report2.6.x.yaml +0 -190
  1063. data/spec/fixtures/yaml/test.local.yaml +0 -16
  1064. data/spec/integration/agent/logging_spec.rb +0 -179
  1065. data/spec/integration/application/agent_spec.rb +0 -1067
  1066. data/spec/integration/application/apply_spec.rb +0 -781
  1067. data/spec/integration/application/doc_spec.rb +0 -24
  1068. data/spec/integration/application/filebucket_spec.rb +0 -255
  1069. data/spec/integration/application/help_spec.rb +0 -44
  1070. data/spec/integration/application/lookup_spec.rb +0 -275
  1071. data/spec/integration/application/module_spec.rb +0 -230
  1072. data/spec/integration/application/plugin_spec.rb +0 -145
  1073. data/spec/integration/application/resource_spec.rb +0 -68
  1074. data/spec/integration/application/ssl_spec.rb +0 -20
  1075. data/spec/integration/configurer_spec.rb +0 -166
  1076. data/spec/integration/data_binding_spec.rb +0 -278
  1077. data/spec/integration/defaults_spec.rb +0 -279
  1078. data/spec/integration/directory_environments_spec.rb +0 -67
  1079. data/spec/integration/environments/default_manifest_spec.rb +0 -215
  1080. data/spec/integration/environments/setting_hooks_spec.rb +0 -27
  1081. data/spec/integration/environments/settings_interpolation_spec.rb +0 -106
  1082. data/spec/integration/environments/settings_spec.rb +0 -128
  1083. data/spec/integration/http/client_spec.rb +0 -229
  1084. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -75
  1085. data/spec/integration/indirector/direct_file_server_spec.rb +0 -90
  1086. data/spec/integration/indirector/facts/facter_spec.rb +0 -168
  1087. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -106
  1088. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -75
  1089. data/spec/integration/l10n/compiler_spec.rb +0 -37
  1090. data/spec/integration/network/formats_spec.rb +0 -90
  1091. data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -60
  1092. data/spec/integration/network/http_pool_spec.rb +0 -275
  1093. data/spec/integration/node/environment_spec.rb +0 -170
  1094. data/spec/integration/node/facts_spec.rb +0 -40
  1095. data/spec/integration/node_spec.rb +0 -77
  1096. data/spec/integration/parser/catalog_spec.rb +0 -68
  1097. data/spec/integration/parser/class_spec.rb +0 -33
  1098. data/spec/integration/parser/collection_spec.rb +0 -362
  1099. data/spec/integration/parser/compiler_spec.rb +0 -1221
  1100. data/spec/integration/parser/conditionals_spec.rb +0 -95
  1101. data/spec/integration/parser/dynamic_scoping_spec.rb +0 -66
  1102. data/spec/integration/parser/environment_spec.rb +0 -47
  1103. data/spec/integration/parser/node_spec.rb +0 -163
  1104. data/spec/integration/parser/parameter_defaults_spec.rb +0 -358
  1105. data/spec/integration/parser/pcore_resource_spec.rb +0 -243
  1106. data/spec/integration/parser/resource_expressions_spec.rb +0 -222
  1107. data/spec/integration/parser/scope_spec.rb +0 -735
  1108. data/spec/integration/parser/script_compiler_spec.rb +0 -113
  1109. data/spec/integration/parser/undef_param_spec.rb +0 -95
  1110. data/spec/integration/provider/file/windows_spec.rb +0 -162
  1111. data/spec/integration/resource/catalog_spec.rb +0 -47
  1112. data/spec/integration/resource/type_collection_spec.rb +0 -88
  1113. data/spec/integration/transaction/report_spec.rb +0 -706
  1114. data/spec/integration/transaction_spec.rb +0 -553
  1115. data/spec/integration/type/exec_spec.rb +0 -114
  1116. data/spec/integration/type/file_spec.rb +0 -2012
  1117. data/spec/integration/type/notify_spec.rb +0 -46
  1118. data/spec/integration/type/package_spec.rb +0 -200
  1119. data/spec/integration/type/tidy_spec.rb +0 -45
  1120. data/spec/integration/type_spec.rb +0 -30
  1121. data/spec/integration/util/autoload_spec.rb +0 -104
  1122. data/spec/integration/util/execution_spec.rb +0 -104
  1123. data/spec/integration/util/rdoc/parser_spec.rb +0 -171
  1124. data/spec/integration/util/settings_spec.rb +0 -115
  1125. data/spec/integration/util/windows/adsi_spec.rb +0 -207
  1126. data/spec/integration/util/windows/monkey_patches/process_spec.rb +0 -231
  1127. data/spec/integration/util/windows/principal_spec.rb +0 -279
  1128. data/spec/integration/util/windows/process_spec.rb +0 -96
  1129. data/spec/integration/util/windows/registry_spec.rb +0 -334
  1130. data/spec/integration/util/windows/security_spec.rb +0 -1010
  1131. data/spec/integration/util/windows/user_spec.rb +0 -226
  1132. data/spec/integration/util_spec.rb +0 -104
  1133. data/spec/lib/matchers/containment_matchers.rb +0 -52
  1134. data/spec/lib/matchers/include_in_order.rb +0 -20
  1135. data/spec/lib/matchers/include_in_order_spec.rb +0 -30
  1136. data/spec/lib/matchers/json.rb +0 -132
  1137. data/spec/lib/matchers/match_tokens2.rb +0 -74
  1138. data/spec/lib/matchers/relationship_graph_matchers.rb +0 -48
  1139. data/spec/lib/matchers/resource.rb +0 -74
  1140. data/spec/lib/puppet/certificate_factory.rb +0 -218
  1141. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -8
  1142. data/spec/lib/puppet/face/basetest.rb +0 -51
  1143. data/spec/lib/puppet/face/huzzah/obsolete.rb +0 -6
  1144. data/spec/lib/puppet/face/huzzah.rb +0 -8
  1145. data/spec/lib/puppet/face/version_matching.rb +0 -12
  1146. data/spec/lib/puppet/indirector/indirector_testing/json.rb +0 -6
  1147. data/spec/lib/puppet/indirector/indirector_testing/memory.rb +0 -7
  1148. data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +0 -6
  1149. data/spec/lib/puppet/indirector_proxy.rb +0 -34
  1150. data/spec/lib/puppet/indirector_testing.rb +0 -31
  1151. data/spec/lib/puppet/test_ca.rb +0 -157
  1152. data/spec/lib/puppet_spec/character_encoding.rb +0 -12
  1153. data/spec/lib/puppet_spec/compiler.rb +0 -112
  1154. data/spec/lib/puppet_spec/files.rb +0 -107
  1155. data/spec/lib/puppet_spec/fixtures.rb +0 -52
  1156. data/spec/lib/puppet_spec/handler.rb +0 -53
  1157. data/spec/lib/puppet_spec/https.rb +0 -95
  1158. data/spec/lib/puppet_spec/language.rb +0 -75
  1159. data/spec/lib/puppet_spec/matchers.rb +0 -68
  1160. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +0 -56
  1161. data/spec/lib/puppet_spec/module_tool/stub_source.rb +0 -136
  1162. data/spec/lib/puppet_spec/modules.rb +0 -82
  1163. data/spec/lib/puppet_spec/network.rb +0 -127
  1164. data/spec/lib/puppet_spec/pops.rb +0 -29
  1165. data/spec/lib/puppet_spec/puppetserver.rb +0 -180
  1166. data/spec/lib/puppet_spec/scope.rb +0 -13
  1167. data/spec/lib/puppet_spec/settings.rb +0 -39
  1168. data/spec/lib/puppet_spec/ssl.rb +0 -265
  1169. data/spec/lib/puppet_spec/unindent.rb +0 -5
  1170. data/spec/lib/puppet_spec/verbose.rb +0 -20
  1171. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -21
  1172. data/spec/shared_behaviours/an_indirector_face.rb +0 -6
  1173. data/spec/shared_behaviours/documentation_on_faces.rb +0 -261
  1174. data/spec/shared_behaviours/file_server_terminus.rb +0 -38
  1175. data/spec/shared_behaviours/file_serving.rb +0 -73
  1176. data/spec/shared_behaviours/hiera_indirections.rb +0 -98
  1177. data/spec/shared_behaviours/iterative_functions.rb +0 -68
  1178. data/spec/shared_behaviours/memory_terminus.rb +0 -28
  1179. data/spec/shared_behaviours/path_parameters.rb +0 -160
  1180. data/spec/shared_behaviours/store_configs_terminus.rb +0 -21
  1181. data/spec/shared_behaviours/things_that_declare_options.rb +0 -262
  1182. data/spec/shared_contexts/checksum.rb +0 -65
  1183. data/spec/shared_contexts/digests.rb +0 -100
  1184. data/spec/shared_contexts/https.rb +0 -29
  1185. data/spec/shared_contexts/l10n.rb +0 -32
  1186. data/spec/shared_contexts/provider.rb +0 -16
  1187. data/spec/shared_contexts/types_setup.rb +0 -204
  1188. data/spec/shared_examples/rhel_package_provider.rb +0 -398
  1189. data/spec/spec_helper.rb +0 -240
  1190. data/spec/unit/agent/disabler_spec.rb +0 -63
  1191. data/spec/unit/agent/locker_spec.rb +0 -99
  1192. data/spec/unit/agent_spec.rb +0 -411
  1193. data/spec/unit/application/agent_spec.rb +0 -640
  1194. data/spec/unit/application/apply_spec.rb +0 -559
  1195. data/spec/unit/application/config_spec.rb +0 -232
  1196. data/spec/unit/application/describe_spec.rb +0 -135
  1197. data/spec/unit/application/device_spec.rb +0 -616
  1198. data/spec/unit/application/doc_spec.rb +0 -333
  1199. data/spec/unit/application/face_base_spec.rb +0 -454
  1200. data/spec/unit/application/facts_spec.rb +0 -139
  1201. data/spec/unit/application/filebucket_spec.rb +0 -319
  1202. data/spec/unit/application/indirection_base_spec.rb +0 -50
  1203. data/spec/unit/application/lookup_spec.rb +0 -698
  1204. data/spec/unit/application/resource_spec.rb +0 -229
  1205. data/spec/unit/application/ssl_spec.rb +0 -507
  1206. data/spec/unit/application_spec.rb +0 -730
  1207. data/spec/unit/certificate_factory_spec.rb +0 -170
  1208. data/spec/unit/concurrent/lock_spec.rb +0 -29
  1209. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  1210. data/spec/unit/configurer/downloader_spec.rb +0 -252
  1211. data/spec/unit/configurer/fact_handler_spec.rb +0 -147
  1212. data/spec/unit/configurer/plugin_handler_spec.rb +0 -152
  1213. data/spec/unit/configurer_spec.rb +0 -1488
  1214. data/spec/unit/confine/exists_spec.rb +0 -82
  1215. data/spec/unit/confine/false_spec.rb +0 -78
  1216. data/spec/unit/confine/feature_spec.rb +0 -59
  1217. data/spec/unit/confine/true_spec.rb +0 -78
  1218. data/spec/unit/confine/variable_spec.rb +0 -105
  1219. data/spec/unit/confine_collection_spec.rb +0 -132
  1220. data/spec/unit/confine_spec.rb +0 -99
  1221. data/spec/unit/confiner_spec.rb +0 -61
  1222. data/spec/unit/context/trusted_information_spec.rb +0 -213
  1223. data/spec/unit/context_spec.rb +0 -217
  1224. data/spec/unit/daemon_spec.rb +0 -176
  1225. data/spec/unit/data_binding_spec.rb +0 -11
  1226. data/spec/unit/data_providers/function_data_provider_spec.rb +0 -122
  1227. data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -362
  1228. data/spec/unit/datatypes_spec.rb +0 -352
  1229. data/spec/unit/defaults_spec.rb +0 -182
  1230. data/spec/unit/environments_spec.rb +0 -1186
  1231. data/spec/unit/etc_spec.rb +0 -465
  1232. data/spec/unit/external/pson_spec.rb +0 -58
  1233. data/spec/unit/face/config_spec.rb +0 -402
  1234. data/spec/unit/face/epp_face_spec.rb +0 -385
  1235. data/spec/unit/face/facts_spec.rb +0 -78
  1236. data/spec/unit/face/generate_spec.rb +0 -293
  1237. data/spec/unit/face/help_spec.rb +0 -208
  1238. data/spec/unit/face/module/install_spec.rb +0 -40
  1239. data/spec/unit/face/module/list_spec.rb +0 -256
  1240. data/spec/unit/face/module/uninstall_spec.rb +0 -45
  1241. data/spec/unit/face/module/upgrade_spec.rb +0 -26
  1242. data/spec/unit/face/node_spec.rb +0 -129
  1243. data/spec/unit/face/parser_spec.rb +0 -310
  1244. data/spec/unit/face/plugin_spec.rb +0 -158
  1245. data/spec/unit/face_spec.rb +0 -1
  1246. data/spec/unit/facter_impl_spec.rb +0 -31
  1247. data/spec/unit/file_bucket/dipper_spec.rb +0 -405
  1248. data/spec/unit/file_bucket/file_spec.rb +0 -58
  1249. data/spec/unit/file_serving/base_spec.rb +0 -164
  1250. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -206
  1251. data/spec/unit/file_serving/configuration_spec.rb +0 -240
  1252. data/spec/unit/file_serving/content_spec.rb +0 -98
  1253. data/spec/unit/file_serving/fileset_spec.rb +0 -417
  1254. data/spec/unit/file_serving/http_metadata_spec.rb +0 -109
  1255. data/spec/unit/file_serving/metadata_spec.rb +0 -551
  1256. data/spec/unit/file_serving/mount/file_spec.rb +0 -188
  1257. data/spec/unit/file_serving/mount/locales_spec.rb +0 -72
  1258. data/spec/unit/file_serving/mount/modules_spec.rb +0 -69
  1259. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -72
  1260. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -72
  1261. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  1262. data/spec/unit/file_serving/mount/tasks_spec.rb +0 -71
  1263. data/spec/unit/file_serving/mount_spec.rb +0 -30
  1264. data/spec/unit/file_serving/terminus_helper_spec.rb +0 -114
  1265. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -84
  1266. data/spec/unit/file_system/path_pattern_spec.rb +0 -153
  1267. data/spec/unit/file_system/uniquefile_spec.rb +0 -245
  1268. data/spec/unit/file_system_spec.rb +0 -1198
  1269. data/spec/unit/forge/errors_spec.rb +0 -80
  1270. data/spec/unit/forge/forge_spec.rb +0 -69
  1271. data/spec/unit/forge/module_release_spec.rb +0 -331
  1272. data/spec/unit/forge/repository_spec.rb +0 -154
  1273. data/spec/unit/forge_spec.rb +0 -210
  1274. data/spec/unit/functions/abs_spec.rb +0 -70
  1275. data/spec/unit/functions/all_spec.rb +0 -97
  1276. data/spec/unit/functions/annotate_spec.rb +0 -175
  1277. data/spec/unit/functions/any_spec.rb +0 -109
  1278. data/spec/unit/functions/assert_type_spec.rb +0 -97
  1279. data/spec/unit/functions/binary_file_spec.rb +0 -46
  1280. data/spec/unit/functions/break_spec.rb +0 -207
  1281. data/spec/unit/functions/call_spec.rb +0 -131
  1282. data/spec/unit/functions/camelcase_spec.rb +0 -34
  1283. data/spec/unit/functions/capitalize_spec.rb +0 -34
  1284. data/spec/unit/functions/ceiling_spec.rb +0 -65
  1285. data/spec/unit/functions/chomp_spec.rb +0 -46
  1286. data/spec/unit/functions/chop_spec.rb +0 -38
  1287. data/spec/unit/functions/compare_spec.rb +0 -147
  1288. data/spec/unit/functions/contain_spec.rb +0 -297
  1289. data/spec/unit/functions/convert_to_spec.rb +0 -25
  1290. data/spec/unit/functions/defined_spec.rb +0 -288
  1291. data/spec/unit/functions/dig_spec.rb +0 -58
  1292. data/spec/unit/functions/downcase_spec.rb +0 -34
  1293. data/spec/unit/functions/each_spec.rb +0 -107
  1294. data/spec/unit/functions/empty_spec.rb +0 -87
  1295. data/spec/unit/functions/epp_spec.rb +0 -178
  1296. data/spec/unit/functions/filter_spec.rb +0 -145
  1297. data/spec/unit/functions/find_file_spec.rb +0 -69
  1298. data/spec/unit/functions/find_template_spec.rb +0 -69
  1299. data/spec/unit/functions/flatten_spec.rb +0 -31
  1300. data/spec/unit/functions/floor_spec.rb +0 -65
  1301. data/spec/unit/functions/get_spec.rb +0 -135
  1302. data/spec/unit/functions/getvar_spec.rb +0 -121
  1303. data/spec/unit/functions/group_by_spec.rb +0 -40
  1304. data/spec/unit/functions/hiera_spec.rb +0 -495
  1305. data/spec/unit/functions/include_spec.rb +0 -186
  1306. data/spec/unit/functions/index_spec.rb +0 -184
  1307. data/spec/unit/functions/inline_epp_spec.rb +0 -120
  1308. data/spec/unit/functions/join_spec.rb +0 -33
  1309. data/spec/unit/functions/keys_spec.rb +0 -31
  1310. data/spec/unit/functions/length_spec.rb +0 -50
  1311. data/spec/unit/functions/lest_spec.rb +0 -34
  1312. data/spec/unit/functions/logging_spec.rb +0 -62
  1313. data/spec/unit/functions/lookup_fixture_spec.rb +0 -687
  1314. data/spec/unit/functions/lookup_spec.rb +0 -3415
  1315. data/spec/unit/functions/lstrip_spec.rb +0 -30
  1316. data/spec/unit/functions/map_spec.rb +0 -163
  1317. data/spec/unit/functions/match_spec.rb +0 -74
  1318. data/spec/unit/functions/max_spec.rb +0 -158
  1319. data/spec/unit/functions/min_spec.rb +0 -158
  1320. data/spec/unit/functions/module_directory_spec.rb +0 -43
  1321. data/spec/unit/functions/new_spec.rb +0 -776
  1322. data/spec/unit/functions/next_spec.rb +0 -93
  1323. data/spec/unit/functions/partition_spec.rb +0 -40
  1324. data/spec/unit/functions/reduce_spec.rb +0 -85
  1325. data/spec/unit/functions/regsubst_spec.rb +0 -114
  1326. data/spec/unit/functions/require_spec.rb +0 -82
  1327. data/spec/unit/functions/return_spec.rb +0 -109
  1328. data/spec/unit/functions/reverse_each_spec.rb +0 -108
  1329. data/spec/unit/functions/round_spec.rb +0 -41
  1330. data/spec/unit/functions/rstrip_spec.rb +0 -30
  1331. data/spec/unit/functions/scanf_spec.rb +0 -32
  1332. data/spec/unit/functions/shared.rb +0 -94
  1333. data/spec/unit/functions/size_spec.rb +0 -50
  1334. data/spec/unit/functions/slice_spec.rb +0 -136
  1335. data/spec/unit/functions/sort_spec.rb +0 -79
  1336. data/spec/unit/functions/split_spec.rb +0 -59
  1337. data/spec/unit/functions/step_spec.rb +0 -113
  1338. data/spec/unit/functions/strftime_spec.rb +0 -152
  1339. data/spec/unit/functions/strip_spec.rb +0 -30
  1340. data/spec/unit/functions/then_spec.rb +0 -40
  1341. data/spec/unit/functions/tree_each_spec.rb +0 -493
  1342. data/spec/unit/functions/type_spec.rb +0 -35
  1343. data/spec/unit/functions/unique_spec.rb +0 -111
  1344. data/spec/unit/functions/unwrap_spec.rb +0 -37
  1345. data/spec/unit/functions/upcase_spec.rb +0 -34
  1346. data/spec/unit/functions/values_spec.rb +0 -30
  1347. data/spec/unit/functions/versioncmp_spec.rb +0 -70
  1348. data/spec/unit/functions/with_spec.rb +0 -31
  1349. data/spec/unit/functions4_spec.rb +0 -1046
  1350. data/spec/unit/gettext/config_spec.rb +0 -156
  1351. data/spec/unit/gettext/module_loading_spec.rb +0 -53
  1352. data/spec/unit/graph/key_spec.rb +0 -41
  1353. data/spec/unit/graph/rb_tree_map_spec.rb +0 -570
  1354. data/spec/unit/graph/relationship_graph_spec.rb +0 -401
  1355. data/spec/unit/graph/sequential_prioritizer_spec.rb +0 -32
  1356. data/spec/unit/graph/simple_graph_spec.rb +0 -759
  1357. data/spec/unit/hiera/scope_spec.rb +0 -105
  1358. data/spec/unit/hiera_puppet_spec.rb +0 -159
  1359. data/spec/unit/http/client_spec.rb +0 -937
  1360. data/spec/unit/http/dns_spec.rb +0 -281
  1361. data/spec/unit/http/external_client_spec.rb +0 -201
  1362. data/spec/unit/http/factory_spec.rb +0 -160
  1363. data/spec/unit/http/pool_entry_spec.rb +0 -49
  1364. data/spec/unit/http/pool_spec.rb +0 -401
  1365. data/spec/unit/http/proxy_spec.rb +0 -347
  1366. data/spec/unit/http/resolver_spec.rb +0 -133
  1367. data/spec/unit/http/response_spec.rb +0 -75
  1368. data/spec/unit/http/service/ca_spec.rb +0 -281
  1369. data/spec/unit/http/service/compiler_spec.rb +0 -746
  1370. data/spec/unit/http/service/file_server_spec.rb +0 -309
  1371. data/spec/unit/http/service/puppetserver_spec.rb +0 -112
  1372. data/spec/unit/http/service/report_spec.rb +0 -107
  1373. data/spec/unit/http/service_spec.rb +0 -137
  1374. data/spec/unit/http/session_spec.rb +0 -309
  1375. data/spec/unit/http/site_spec.rb +0 -96
  1376. data/spec/unit/indirector/catalog/compiler_spec.rb +0 -1238
  1377. data/spec/unit/indirector/catalog/json_spec.rb +0 -66
  1378. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -11
  1379. data/spec/unit/indirector/catalog/rest_spec.rb +0 -91
  1380. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -16
  1381. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -23
  1382. data/spec/unit/indirector/data_binding/hiera_spec.rb +0 -19
  1383. data/spec/unit/indirector/data_binding/none_spec.rb +0 -28
  1384. data/spec/unit/indirector/direct_file_server_spec.rb +0 -87
  1385. data/spec/unit/indirector/envelope_spec.rb +0 -32
  1386. data/spec/unit/indirector/exec_spec.rb +0 -63
  1387. data/spec/unit/indirector/face_spec.rb +0 -80
  1388. data/spec/unit/indirector/facts/facter_spec.rb +0 -290
  1389. data/spec/unit/indirector/facts/json_spec.rb +0 -255
  1390. data/spec/unit/indirector/facts/network_device_spec.rb +0 -77
  1391. data/spec/unit/indirector/facts/rest_spec.rb +0 -99
  1392. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -16
  1393. data/spec/unit/indirector/facts/yaml_spec.rb +0 -255
  1394. data/spec/unit/indirector/file_bucket_file/file_spec.rb +0 -426
  1395. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -89
  1396. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +0 -46
  1397. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -13
  1398. data/spec/unit/indirector/file_content/file_spec.rb +0 -13
  1399. data/spec/unit/indirector/file_content/rest_spec.rb +0 -60
  1400. data/spec/unit/indirector/file_content/selector_spec.rb +0 -9
  1401. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -13
  1402. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -57
  1403. data/spec/unit/indirector/file_metadata/http_spec.rb +0 -194
  1404. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -116
  1405. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -10
  1406. data/spec/unit/indirector/file_server_spec.rb +0 -288
  1407. data/spec/unit/indirector/hiera_spec.rb +0 -22
  1408. data/spec/unit/indirector/indirection_spec.rb +0 -916
  1409. data/spec/unit/indirector/json_spec.rb +0 -200
  1410. data/spec/unit/indirector/memory_spec.rb +0 -26
  1411. data/spec/unit/indirector/msgpack_spec.rb +0 -199
  1412. data/spec/unit/indirector/node/exec_spec.rb +0 -107
  1413. data/spec/unit/indirector/node/json_spec.rb +0 -33
  1414. data/spec/unit/indirector/node/memory_spec.rb +0 -16
  1415. data/spec/unit/indirector/node/msgpack_spec.rb +0 -23
  1416. data/spec/unit/indirector/node/plain_spec.rb +0 -34
  1417. data/spec/unit/indirector/node/rest_spec.rb +0 -66
  1418. data/spec/unit/indirector/node/store_configs_spec.rb +0 -16
  1419. data/spec/unit/indirector/node/yaml_spec.rb +0 -23
  1420. data/spec/unit/indirector/none_spec.rb +0 -33
  1421. data/spec/unit/indirector/plain_spec.rb +0 -26
  1422. data/spec/unit/indirector/report/json_spec.rb +0 -72
  1423. data/spec/unit/indirector/report/msgpack_spec.rb +0 -27
  1424. data/spec/unit/indirector/report/processor_spec.rb +0 -99
  1425. data/spec/unit/indirector/report/rest_spec.rb +0 -58
  1426. data/spec/unit/indirector/report/yaml_spec.rb +0 -91
  1427. data/spec/unit/indirector/request_spec.rb +0 -295
  1428. data/spec/unit/indirector/resource/ral_spec.rb +0 -89
  1429. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -20
  1430. data/spec/unit/indirector/rest_spec.rb +0 -149
  1431. data/spec/unit/indirector/terminus_spec.rb +0 -264
  1432. data/spec/unit/indirector/yaml_spec.rb +0 -188
  1433. data/spec/unit/indirector_spec.rb +0 -148
  1434. data/spec/unit/info_service_spec.rb +0 -575
  1435. data/spec/unit/interface/action_builder_spec.rb +0 -216
  1436. data/spec/unit/interface/action_manager_spec.rb +0 -254
  1437. data/spec/unit/interface/action_spec.rb +0 -670
  1438. data/spec/unit/interface/documentation_spec.rb +0 -32
  1439. data/spec/unit/interface/face_collection_spec.rb +0 -219
  1440. data/spec/unit/interface/option_builder_spec.rb +0 -86
  1441. data/spec/unit/interface/option_spec.rb +0 -156
  1442. data/spec/unit/interface_spec.rb +0 -305
  1443. data/spec/unit/module_spec.rb +0 -985
  1444. data/spec/unit/module_tool/application_spec.rb +0 -25
  1445. data/spec/unit/module_tool/applications/checksummer_spec.rb +0 -115
  1446. data/spec/unit/module_tool/applications/installer_spec.rb +0 -473
  1447. data/spec/unit/module_tool/applications/uninstaller_spec.rb +0 -181
  1448. data/spec/unit/module_tool/applications/unpacker_spec.rb +0 -75
  1449. data/spec/unit/module_tool/applications/upgrader_spec.rb +0 -337
  1450. data/spec/unit/module_tool/install_directory_spec.rb +0 -70
  1451. data/spec/unit/module_tool/installed_modules_spec.rb +0 -49
  1452. data/spec/unit/module_tool/metadata_spec.rb +0 -330
  1453. data/spec/unit/module_tool/tar/gnu_spec.rb +0 -23
  1454. data/spec/unit/module_tool/tar/mini_spec.rb +0 -109
  1455. data/spec/unit/module_tool/tar_spec.rb +0 -36
  1456. data/spec/unit/module_tool_spec.rb +0 -304
  1457. data/spec/unit/network/authconfig_spec.rb +0 -8
  1458. data/spec/unit/network/authorization_spec.rb +0 -8
  1459. data/spec/unit/network/format_handler_spec.rb +0 -93
  1460. data/spec/unit/network/format_spec.rb +0 -205
  1461. data/spec/unit/network/format_support_spec.rb +0 -199
  1462. data/spec/unit/network/formats_spec.rb +0 -584
  1463. data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -425
  1464. data/spec/unit/network/http/api/master_spec.rb +0 -38
  1465. data/spec/unit/network/http/api/server/v3/environments_spec.rb +0 -51
  1466. data/spec/unit/network/http/api/server/v3_spec.rb +0 -78
  1467. data/spec/unit/network/http/api_spec.rb +0 -109
  1468. data/spec/unit/network/http/connection_spec.rb +0 -636
  1469. data/spec/unit/network/http/error_spec.rb +0 -30
  1470. data/spec/unit/network/http/handler_spec.rb +0 -164
  1471. data/spec/unit/network/http/request_spec.rb +0 -108
  1472. data/spec/unit/network/http/response_spec.rb +0 -106
  1473. data/spec/unit/network/http/route_spec.rb +0 -90
  1474. data/spec/unit/network/http_pool_spec.rb +0 -145
  1475. data/spec/unit/network/uri_spec.rb +0 -47
  1476. data/spec/unit/node/environment_spec.rb +0 -612
  1477. data/spec/unit/node/facts_spec.rb +0 -225
  1478. data/spec/unit/node_spec.rb +0 -434
  1479. data/spec/unit/other/selinux_spec.rb +0 -27
  1480. data/spec/unit/parameter/boolean_spec.rb +0 -35
  1481. data/spec/unit/parameter/package_options_spec.rb +0 -43
  1482. data/spec/unit/parameter/path_spec.rb +0 -23
  1483. data/spec/unit/parameter/value_collection_spec.rb +0 -160
  1484. data/spec/unit/parameter/value_spec.rb +0 -82
  1485. data/spec/unit/parameter_spec.rb +0 -272
  1486. data/spec/unit/parser/ast/block_expression_spec.rb +0 -66
  1487. data/spec/unit/parser/ast/leaf_spec.rb +0 -136
  1488. data/spec/unit/parser/compiler_spec.rb +0 -1020
  1489. data/spec/unit/parser/files_spec.rb +0 -101
  1490. data/spec/unit/parser/functions/create_resources_spec.rb +0 -326
  1491. data/spec/unit/parser/functions/digest_spec.rb +0 -26
  1492. data/spec/unit/parser/functions/fail_spec.rb +0 -23
  1493. data/spec/unit/parser/functions/file_spec.rb +0 -99
  1494. data/spec/unit/parser/functions/fqdn_rand_spec.rb +0 -87
  1495. data/spec/unit/parser/functions/generate_spec.rb +0 -124
  1496. data/spec/unit/parser/functions/hiera_array_spec.rb +0 -12
  1497. data/spec/unit/parser/functions/hiera_hash_spec.rb +0 -12
  1498. data/spec/unit/parser/functions/hiera_include_spec.rb +0 -12
  1499. data/spec/unit/parser/functions/hiera_spec.rb +0 -12
  1500. data/spec/unit/parser/functions/inline_template_spec.rb +0 -36
  1501. data/spec/unit/parser/functions/lookup_spec.rb +0 -14
  1502. data/spec/unit/parser/functions/realize_spec.rb +0 -70
  1503. data/spec/unit/parser/functions/regsubst_spec.rb +0 -19
  1504. data/spec/unit/parser/functions/scanf_spec.rb +0 -25
  1505. data/spec/unit/parser/functions/shellquote_spec.rb +0 -66
  1506. data/spec/unit/parser/functions/split_spec.rb +0 -13
  1507. data/spec/unit/parser/functions/sprintf_spec.rb +0 -68
  1508. data/spec/unit/parser/functions/tag_spec.rb +0 -30
  1509. data/spec/unit/parser/functions/tagged_spec.rb +0 -36
  1510. data/spec/unit/parser/functions/template_spec.rb +0 -93
  1511. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -28
  1512. data/spec/unit/parser/functions_spec.rb +0 -156
  1513. data/spec/unit/parser/relationship_spec.rb +0 -74
  1514. data/spec/unit/parser/resource/param_spec.rb +0 -32
  1515. data/spec/unit/parser/resource_spec.rb +0 -657
  1516. data/spec/unit/parser/scope_spec.rb +0 -698
  1517. data/spec/unit/parser/templatewrapper_spec.rb +0 -111
  1518. data/spec/unit/parser/type_loader_spec.rb +0 -202
  1519. data/spec/unit/plan_spec.rb +0 -65
  1520. data/spec/unit/pops/adaptable_spec.rb +0 -139
  1521. data/spec/unit/pops/benchmark_spec.rb +0 -123
  1522. data/spec/unit/pops/containment_spec.rb +0 -0
  1523. data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -560
  1524. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -317
  1525. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -101
  1526. data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -108
  1527. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -267
  1528. data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -189
  1529. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -46
  1530. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -1639
  1531. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +0 -75
  1532. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +0 -63
  1533. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +0 -43
  1534. data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -89
  1535. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -181
  1536. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -43
  1537. data/spec/unit/pops/evaluator/variables_spec.rb +0 -88
  1538. data/spec/unit/pops/factory_rspec_helper.rb +0 -65
  1539. data/spec/unit/pops/factory_spec.rb +0 -309
  1540. data/spec/unit/pops/issues_spec.rb +0 -210
  1541. data/spec/unit/pops/label_provider_spec.rb +0 -46
  1542. data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -122
  1543. data/spec/unit/pops/loaders/environment_loader_spec.rb +0 -172
  1544. data/spec/unit/pops/loaders/loader_paths_spec.rb +0 -43
  1545. data/spec/unit/pops/loaders/loader_spec.rb +0 -516
  1546. data/spec/unit/pops/loaders/loaders_spec.rb +0 -863
  1547. data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -268
  1548. data/spec/unit/pops/loaders/static_loader_spec.rb +0 -85
  1549. data/spec/unit/pops/lookup/context_spec.rb +0 -333
  1550. data/spec/unit/pops/lookup/interpolation_spec.rb +0 -389
  1551. data/spec/unit/pops/lookup/lookup_spec.rb +0 -375
  1552. data/spec/unit/pops/merge_strategy_spec.rb +0 -17
  1553. data/spec/unit/pops/migration_spec.rb +0 -51
  1554. data/spec/unit/pops/model/model_spec.rb +0 -41
  1555. data/spec/unit/pops/model/pn_transformer_spec.rb +0 -56
  1556. data/spec/unit/pops/parser/epp_parser_spec.rb +0 -115
  1557. data/spec/unit/pops/parser/evaluating_parser_spec.rb +0 -89
  1558. data/spec/unit/pops/parser/lexer2_spec.rb +0 -942
  1559. data/spec/unit/pops/parser/locator_spec.rb +0 -86
  1560. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -380
  1561. data/spec/unit/pops/parser/parse_calls_spec.rb +0 -171
  1562. data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -184
  1563. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -247
  1564. data/spec/unit/pops/parser/parse_functions_spec.rb +0 -19
  1565. data/spec/unit/pops/parser/parse_heredoc_spec.rb +0 -276
  1566. data/spec/unit/pops/parser/parse_lambda_spec.rb +0 -19
  1567. data/spec/unit/pops/parser/parse_plan_spec.rb +0 -47
  1568. data/spec/unit/pops/parser/parse_resource_spec.rb +0 -328
  1569. data/spec/unit/pops/parser/parser_rspec_helper.rb +0 -17
  1570. data/spec/unit/pops/parser/parser_spec.rb +0 -211
  1571. data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +0 -65
  1572. data/spec/unit/pops/parser/pn_parser_spec.rb +0 -100
  1573. data/spec/unit/pops/pn_spec.rb +0 -147
  1574. data/spec/unit/pops/puppet_stack_spec.rb +0 -108
  1575. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -37
  1576. data/spec/unit/pops/serialization/packer_spec.rb +0 -162
  1577. data/spec/unit/pops/serialization/serialization_spec.rb +0 -458
  1578. data/spec/unit/pops/serialization/to_from_hr_spec.rb +0 -649
  1579. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -162
  1580. data/spec/unit/pops/time/timespan_spec.rb +0 -121
  1581. data/spec/unit/pops/time/timestamp_spec.rb +0 -13
  1582. data/spec/unit/pops/types/class_loader_spec.rb +0 -10
  1583. data/spec/unit/pops/types/deferred_spec.rb +0 -87
  1584. data/spec/unit/pops/types/error_spec.rb +0 -207
  1585. data/spec/unit/pops/types/iterable_spec.rb +0 -262
  1586. data/spec/unit/pops/types/p_binary_type_spec.rb +0 -243
  1587. data/spec/unit/pops/types/p_init_type_spec.rb +0 -383
  1588. data/spec/unit/pops/types/p_object_type_spec.rb +0 -1730
  1589. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -340
  1590. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -191
  1591. data/spec/unit/pops/types/p_timespan_type_spec.rb +0 -323
  1592. data/spec/unit/pops/types/p_timestamp_type_spec.rb +0 -391
  1593. data/spec/unit/pops/types/p_type_set_type_spec.rb +0 -549
  1594. data/spec/unit/pops/types/p_uri_type_spec.rb +0 -191
  1595. data/spec/unit/pops/types/recursion_guard_spec.rb +0 -93
  1596. data/spec/unit/pops/types/ruby_generator_spec.rb +0 -874
  1597. data/spec/unit/pops/types/string_converter_spec.rb +0 -1202
  1598. data/spec/unit/pops/types/task_spec.rb +0 -411
  1599. data/spec/unit/pops/types/type_acceptor_spec.rb +0 -106
  1600. data/spec/unit/pops/types/type_asserter_spec.rb +0 -43
  1601. data/spec/unit/pops/types/type_calculator_spec.rb +0 -2504
  1602. data/spec/unit/pops/types/type_factory_spec.rb +0 -322
  1603. data/spec/unit/pops/types/type_formatter_spec.rb +0 -427
  1604. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -424
  1605. data/spec/unit/pops/types/type_parser_spec.rb +0 -445
  1606. data/spec/unit/pops/types/types_spec.rb +0 -755
  1607. data/spec/unit/pops/utils_spec.rb +0 -70
  1608. data/spec/unit/pops/validation_spec.rb +0 -66
  1609. data/spec/unit/pops/validator/validator_spec.rb +0 -1029
  1610. data/spec/unit/pops/visitor_spec.rb +0 -93
  1611. data/spec/unit/property/boolean_spec.rb +0 -24
  1612. data/spec/unit/property/ensure_spec.rb +0 -11
  1613. data/spec/unit/property/keyvalue_spec.rb +0 -259
  1614. data/spec/unit/property/list_spec.rb +0 -172
  1615. data/spec/unit/property/ordered_list_spec.rb +0 -59
  1616. data/spec/unit/property_spec.rb +0 -563
  1617. data/spec/unit/provider/README.markdown +0 -4
  1618. data/spec/unit/provider/aix_object_spec.rb +0 -821
  1619. data/spec/unit/provider/command_spec.rb +0 -62
  1620. data/spec/unit/provider/exec/posix_spec.rb +0 -232
  1621. data/spec/unit/provider/exec/shell_spec.rb +0 -53
  1622. data/spec/unit/provider/exec/windows_spec.rb +0 -105
  1623. data/spec/unit/provider/exec_spec.rb +0 -244
  1624. data/spec/unit/provider/file/posix_spec.rb +0 -230
  1625. data/spec/unit/provider/file/windows_spec.rb +0 -152
  1626. data/spec/unit/provider/group/aix_spec.rb +0 -91
  1627. data/spec/unit/provider/group/directoryservice_spec.rb +0 -33
  1628. data/spec/unit/provider/group/groupadd_spec.rb +0 -284
  1629. data/spec/unit/provider/group/ldap_spec.rb +0 -98
  1630. data/spec/unit/provider/group/pw_spec.rb +0 -78
  1631. data/spec/unit/provider/group/windows_adsi_spec.rb +0 -398
  1632. data/spec/unit/provider/ldap_spec.rb +0 -242
  1633. data/spec/unit/provider/nameservice/directoryservice_spec.rb +0 -157
  1634. data/spec/unit/provider/nameservice_spec.rb +0 -398
  1635. data/spec/unit/provider/package/aix_spec.rb +0 -158
  1636. data/spec/unit/provider/package/appdmg_spec.rb +0 -42
  1637. data/spec/unit/provider/package/apt_spec.rb +0 -302
  1638. data/spec/unit/provider/package/aptitude_spec.rb +0 -46
  1639. data/spec/unit/provider/package/aptrpm_spec.rb +0 -42
  1640. data/spec/unit/provider/package/base_spec.rb +0 -19
  1641. data/spec/unit/provider/package/dnf_spec.rb +0 -62
  1642. data/spec/unit/provider/package/dnfmodule_spec.rb +0 -276
  1643. data/spec/unit/provider/package/dpkg_spec.rb +0 -444
  1644. data/spec/unit/provider/package/freebsd_spec.rb +0 -51
  1645. data/spec/unit/provider/package/gem_spec.rb +0 -487
  1646. data/spec/unit/provider/package/hpux_spec.rb +0 -48
  1647. data/spec/unit/provider/package/macports_spec.rb +0 -142
  1648. data/spec/unit/provider/package/nim_spec.rb +0 -267
  1649. data/spec/unit/provider/package/openbsd_spec.rb +0 -417
  1650. data/spec/unit/provider/package/opkg_spec.rb +0 -180
  1651. data/spec/unit/provider/package/pacman_spec.rb +0 -438
  1652. data/spec/unit/provider/package/pip2_spec.rb +0 -38
  1653. data/spec/unit/provider/package/pip3_spec.rb +0 -38
  1654. data/spec/unit/provider/package/pip_spec.rb +0 -504
  1655. data/spec/unit/provider/package/pkg_spec.rb +0 -473
  1656. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -166
  1657. data/spec/unit/provider/package/pkgin_spec.rb +0 -185
  1658. data/spec/unit/provider/package/pkgng_spec.rb +0 -228
  1659. data/spec/unit/provider/package/pkgutil_spec.rb +0 -231
  1660. data/spec/unit/provider/package/portage_spec.rb +0 -226
  1661. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -130
  1662. data/spec/unit/provider/package/puppetserver_gem_spec.rb +0 -139
  1663. data/spec/unit/provider/package/rpm_spec.rb +0 -674
  1664. data/spec/unit/provider/package/sun_spec.rb +0 -112
  1665. data/spec/unit/provider/package/tdnf_spec.rb +0 -15
  1666. data/spec/unit/provider/package/up2date_spec.rb +0 -22
  1667. data/spec/unit/provider/package/urpmi_spec.rb +0 -84
  1668. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -114
  1669. data/spec/unit/provider/package/windows/msi_package_spec.rb +0 -111
  1670. data/spec/unit/provider/package/windows/package_spec.rb +0 -180
  1671. data/spec/unit/provider/package/windows_spec.rb +0 -272
  1672. data/spec/unit/provider/package/yum_spec.rb +0 -512
  1673. data/spec/unit/provider/package/zypper_spec.rb +0 -327
  1674. data/spec/unit/provider/package_targetable_spec.rb +0 -60
  1675. data/spec/unit/provider/parsedfile_spec.rb +0 -263
  1676. data/spec/unit/provider/service/base_spec.rb +0 -109
  1677. data/spec/unit/provider/service/bsd_spec.rb +0 -127
  1678. data/spec/unit/provider/service/daemontools_spec.rb +0 -190
  1679. data/spec/unit/provider/service/debian_spec.rb +0 -158
  1680. data/spec/unit/provider/service/freebsd_spec.rb +0 -92
  1681. data/spec/unit/provider/service/gentoo_spec.rb +0 -250
  1682. data/spec/unit/provider/service/init_spec.rb +0 -316
  1683. data/spec/unit/provider/service/launchd_spec.rb +0 -425
  1684. data/spec/unit/provider/service/openbsd_spec.rb +0 -196
  1685. data/spec/unit/provider/service/openrc_spec.rb +0 -231
  1686. data/spec/unit/provider/service/openwrt_spec.rb +0 -101
  1687. data/spec/unit/provider/service/rcng_spec.rb +0 -40
  1688. data/spec/unit/provider/service/redhat_spec.rb +0 -190
  1689. data/spec/unit/provider/service/runit_spec.rb +0 -164
  1690. data/spec/unit/provider/service/smf_spec.rb +0 -526
  1691. data/spec/unit/provider/service/src_spec.rb +0 -186
  1692. data/spec/unit/provider/service/systemd_spec.rb +0 -578
  1693. data/spec/unit/provider/service/upstart_spec.rb +0 -681
  1694. data/spec/unit/provider/service/windows_spec.rb +0 -475
  1695. data/spec/unit/provider/user/aix_spec.rb +0 -320
  1696. data/spec/unit/provider/user/directoryservice_spec.rb +0 -1256
  1697. data/spec/unit/provider/user/hpux_spec.rb +0 -72
  1698. data/spec/unit/provider/user/ldap_spec.rb +0 -286
  1699. data/spec/unit/provider/user/openbsd_spec.rb +0 -76
  1700. data/spec/unit/provider/user/pw_spec.rb +0 -252
  1701. data/spec/unit/provider/user/user_role_add_spec.rb +0 -374
  1702. data/spec/unit/provider/user/useradd_spec.rb +0 -849
  1703. data/spec/unit/provider/user/windows_adsi_spec.rb +0 -407
  1704. data/spec/unit/provider_spec.rb +0 -904
  1705. data/spec/unit/puppet_pal_2pec.rb +0 -1033
  1706. data/spec/unit/puppet_pal_catalog_spec.rb +0 -962
  1707. data/spec/unit/puppet_pal_spec.rb +0 -3
  1708. data/spec/unit/puppet_spec.rb +0 -127
  1709. data/spec/unit/relationship_spec.rb +0 -202
  1710. data/spec/unit/reports/http_spec.rb +0 -119
  1711. data/spec/unit/reports/store_spec.rb +0 -69
  1712. data/spec/unit/reports_spec.rb +0 -68
  1713. data/spec/unit/resource/catalog_spec.rb +0 -1160
  1714. data/spec/unit/resource/status_spec.rb +0 -216
  1715. data/spec/unit/resource/type_collection_spec.rb +0 -332
  1716. data/spec/unit/resource/type_spec.rb +0 -876
  1717. data/spec/unit/resource_spec.rb +0 -1189
  1718. data/spec/unit/scheduler/job_spec.rb +0 -78
  1719. data/spec/unit/scheduler/scheduler_spec.rb +0 -115
  1720. data/spec/unit/scheduler/splay_job_spec.rb +0 -34
  1721. data/spec/unit/settings/array_setting_spec.rb +0 -39
  1722. data/spec/unit/settings/autosign_setting_spec.rb +0 -104
  1723. data/spec/unit/settings/certificate_revocation_setting_spec.rb +0 -37
  1724. data/spec/unit/settings/config_file_spec.rb +0 -147
  1725. data/spec/unit/settings/directory_setting_spec.rb +0 -27
  1726. data/spec/unit/settings/duration_setting_spec.rb +0 -48
  1727. data/spec/unit/settings/enum_setting_spec.rb +0 -27
  1728. data/spec/unit/settings/environment_conf_spec.rb +0 -133
  1729. data/spec/unit/settings/file_setting_spec.rb +0 -344
  1730. data/spec/unit/settings/http_extra_headers_spec.rb +0 -62
  1731. data/spec/unit/settings/ini_file_spec.rb +0 -550
  1732. data/spec/unit/settings/integer_setting_spec.rb +0 -42
  1733. data/spec/unit/settings/path_setting_spec.rb +0 -29
  1734. data/spec/unit/settings/port_setting_spec.rb +0 -31
  1735. data/spec/unit/settings/priority_setting_spec.rb +0 -65
  1736. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  1737. data/spec/unit/settings/string_setting_spec.rb +0 -74
  1738. data/spec/unit/settings/terminus_setting_spec.rb +0 -27
  1739. data/spec/unit/settings/value_translator_spec.rb +0 -75
  1740. data/spec/unit/settings_spec.rb +0 -2343
  1741. data/spec/unit/ssl/base_spec.rb +0 -125
  1742. data/spec/unit/ssl/certificate_request_attributes_spec.rb +0 -80
  1743. data/spec/unit/ssl/certificate_request_spec.rb +0 -373
  1744. data/spec/unit/ssl/certificate_signer_spec.rb +0 -17
  1745. data/spec/unit/ssl/certificate_spec.rb +0 -183
  1746. data/spec/unit/ssl/digest_spec.rb +0 -34
  1747. data/spec/unit/ssl/oids_spec.rb +0 -73
  1748. data/spec/unit/ssl/ssl_provider_spec.rb +0 -657
  1749. data/spec/unit/ssl/state_machine_spec.rb +0 -1117
  1750. data/spec/unit/ssl/verifier_spec.rb +0 -102
  1751. data/spec/unit/task_spec.rb +0 -345
  1752. data/spec/unit/test/test_helper_spec.rb +0 -17
  1753. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -534
  1754. data/spec/unit/transaction/event_manager_spec.rb +0 -365
  1755. data/spec/unit/transaction/event_spec.rb +0 -198
  1756. data/spec/unit/transaction/persistence_spec.rb +0 -276
  1757. data/spec/unit/transaction/report_spec.rb +0 -772
  1758. data/spec/unit/transaction/resource_harness_spec.rb +0 -625
  1759. data/spec/unit/transaction_spec.rb +0 -1037
  1760. data/spec/unit/type/README.markdown +0 -4
  1761. data/spec/unit/type/component_spec.rb +0 -52
  1762. data/spec/unit/type/exec_spec.rb +0 -937
  1763. data/spec/unit/type/file/checksum_spec.rb +0 -104
  1764. data/spec/unit/type/file/checksum_value_spec.rb +0 -285
  1765. data/spec/unit/type/file/content_spec.rb +0 -440
  1766. data/spec/unit/type/file/ctime_spec.rb +0 -33
  1767. data/spec/unit/type/file/ensure_spec.rb +0 -121
  1768. data/spec/unit/type/file/group_spec.rb +0 -65
  1769. data/spec/unit/type/file/mode_spec.rb +0 -220
  1770. data/spec/unit/type/file/mtime_spec.rb +0 -33
  1771. data/spec/unit/type/file/owner_spec.rb +0 -63
  1772. data/spec/unit/type/file/selinux_spec.rb +0 -86
  1773. data/spec/unit/type/file/source_spec.rb +0 -730
  1774. data/spec/unit/type/file/type_spec.rb +0 -18
  1775. data/spec/unit/type/file_spec.rb +0 -1746
  1776. data/spec/unit/type/filebucket_spec.rb +0 -104
  1777. data/spec/unit/type/group_spec.rb +0 -105
  1778. data/spec/unit/type/noop_metaparam_spec.rb +0 -37
  1779. data/spec/unit/type/package/package_settings_spec.rb +0 -156
  1780. data/spec/unit/type/package_spec.rb +0 -396
  1781. data/spec/unit/type/resources_spec.rb +0 -362
  1782. data/spec/unit/type/schedule_spec.rb +0 -621
  1783. data/spec/unit/type/service_spec.rb +0 -458
  1784. data/spec/unit/type/stage_spec.rb +0 -7
  1785. data/spec/unit/type/tidy_spec.rb +0 -493
  1786. data/spec/unit/type/user_spec.rb +0 -553
  1787. data/spec/unit/type/whit_spec.rb +0 -9
  1788. data/spec/unit/type_spec.rb +0 -1473
  1789. data/spec/unit/util/at_fork_spec.rb +0 -150
  1790. data/spec/unit/util/autoload_spec.rb +0 -330
  1791. data/spec/unit/util/backups_spec.rb +0 -130
  1792. data/spec/unit/util/character_encoding_spec.rb +0 -186
  1793. data/spec/unit/util/checksums_spec.rb +0 -223
  1794. data/spec/unit/util/colors_spec.rb +0 -44
  1795. data/spec/unit/util/command_line_spec.rb +0 -200
  1796. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +0 -129
  1797. data/spec/unit/util/constant_inflector_spec.rb +0 -55
  1798. data/spec/unit/util/diff_spec.rb +0 -46
  1799. data/spec/unit/util/docs_spec.rb +0 -100
  1800. data/spec/unit/util/errors_spec.rb +0 -36
  1801. data/spec/unit/util/execution_spec.rb +0 -943
  1802. data/spec/unit/util/execution_stub_spec.rb +0 -38
  1803. data/spec/unit/util/feature_spec.rb +0 -129
  1804. data/spec/unit/util/filetype_spec.rb +0 -223
  1805. data/spec/unit/util/inifile_spec.rb +0 -510
  1806. data/spec/unit/util/json_lockfile_spec.rb +0 -48
  1807. data/spec/unit/util/json_spec.rb +0 -126
  1808. data/spec/unit/util/ldap/connection_spec.rb +0 -162
  1809. data/spec/unit/util/ldap/generator_spec.rb +0 -49
  1810. data/spec/unit/util/ldap/manager_spec.rb +0 -612
  1811. data/spec/unit/util/lockfile_spec.rb +0 -117
  1812. data/spec/unit/util/log/destinations_spec.rb +0 -258
  1813. data/spec/unit/util/log_spec.rb +0 -479
  1814. data/spec/unit/util/logging_spec.rb +0 -618
  1815. data/spec/unit/util/metric_spec.rb +0 -89
  1816. data/spec/unit/util/monkey_patches_spec.rb +0 -161
  1817. data/spec/unit/util/multi_match_spec.rb +0 -38
  1818. data/spec/unit/util/network_device/config_spec.rb +0 -91
  1819. data/spec/unit/util/network_device/transport/base_spec.rb +0 -40
  1820. data/spec/unit/util/network_device_spec.rb +0 -43
  1821. data/spec/unit/util/package/version/debian_spec.rb +0 -83
  1822. data/spec/unit/util/package/version/pip_spec.rb +0 -464
  1823. data/spec/unit/util/package/version/range_spec.rb +0 -175
  1824. data/spec/unit/util/package/version/rpm_spec.rb +0 -121
  1825. data/spec/unit/util/package_spec.rb +0 -19
  1826. data/spec/unit/util/pidlock_spec.rb +0 -333
  1827. data/spec/unit/util/plist_spec.rb +0 -168
  1828. data/spec/unit/util/posix_spec.rb +0 -630
  1829. data/spec/unit/util/profiler/aggregate_spec.rb +0 -55
  1830. data/spec/unit/util/profiler/around_profiler_spec.rb +0 -61
  1831. data/spec/unit/util/profiler/logging_spec.rb +0 -70
  1832. data/spec/unit/util/profiler/object_counts_spec.rb +0 -13
  1833. data/spec/unit/util/profiler/wall_clock_spec.rb +0 -13
  1834. data/spec/unit/util/profiler_spec.rb +0 -47
  1835. data/spec/unit/util/rdoc_spec.rb +0 -55
  1836. data/spec/unit/util/reference_spec.rb +0 -38
  1837. data/spec/unit/util/resource_template_spec.rb +0 -57
  1838. data/spec/unit/util/retry_action_spec.rb +0 -84
  1839. data/spec/unit/util/rpm_compare_spec.rb +0 -196
  1840. data/spec/unit/util/rubygems_spec.rb +0 -47
  1841. data/spec/unit/util/run_mode_spec.rb +0 -185
  1842. data/spec/unit/util/selinux_spec.rb +0 -422
  1843. data/spec/unit/util/skip_tags_spec.rb +0 -14
  1844. data/spec/unit/util/splayer_spec.rb +0 -44
  1845. data/spec/unit/util/storage_spec.rb +0 -330
  1846. data/spec/unit/util/suidmanager_spec.rb +0 -278
  1847. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -180
  1848. data/spec/unit/util/tag_set_spec.rb +0 -52
  1849. data/spec/unit/util/tagging_spec.rb +0 -246
  1850. data/spec/unit/util/terminal_spec.rb +0 -41
  1851. data/spec/unit/util/user_attr_spec.rb +0 -45
  1852. data/spec/unit/util/warnings_spec.rb +0 -45
  1853. data/spec/unit/util/watched_file_spec.rb +0 -52
  1854. data/spec/unit/util/watcher/periodic_watcher_spec.rb +0 -52
  1855. data/spec/unit/util/watcher_spec.rb +0 -86
  1856. data/spec/unit/util/windows/access_control_entry_spec.rb +0 -66
  1857. data/spec/unit/util/windows/access_control_list_spec.rb +0 -132
  1858. data/spec/unit/util/windows/adsi_spec.rb +0 -704
  1859. data/spec/unit/util/windows/api_types_spec.rb +0 -184
  1860. data/spec/unit/util/windows/eventlog_spec.rb +0 -120
  1861. data/spec/unit/util/windows/file_spec.rb +0 -88
  1862. data/spec/unit/util/windows/root_certs_spec.rb +0 -16
  1863. data/spec/unit/util/windows/security_descriptor_spec.rb +0 -115
  1864. data/spec/unit/util/windows/service_spec.rb +0 -677
  1865. data/spec/unit/util/windows/sid_spec.rb +0 -338
  1866. data/spec/unit/util/windows/string_spec.rb +0 -55
  1867. data/spec/unit/util/windows_spec.rb +0 -23
  1868. data/spec/unit/util/yaml_spec.rb +0 -171
  1869. data/spec/unit/util_spec.rb +0 -960
  1870. data/spec/unit/version_spec.rb +0 -61
  1871. data/spec/unit/x509/cert_provider_spec.rb +0 -663
  1872. data/spec/unit/x509/pem_store_spec.rb +0 -160
@@ -1,1256 +0,0 @@
1
- # encoding: ASCII-8BIT
2
- require 'spec_helper'
3
-
4
- module Puppet::Util::Plist
5
- end
6
-
7
- describe Puppet::Type.type(:user).provider(:directoryservice) do
8
- let(:username) { 'nonexistent_user' }
9
- let(:user_path) { "/Users/#{username}" }
10
- let(:resource) do
11
- Puppet::Type.type(:user).new(
12
- :name => username,
13
- :provider => :directoryservice
14
- )
15
- end
16
- let(:provider) { resource.provider }
17
- let(:users_plist_dir) { '/var/db/dslocal/nodes/Default/users' }
18
-
19
- # This is the output of doing `dscl -plist . read /Users/<username>` which
20
- # will return a hash of keys whose values are all arrays.
21
- let(:user_plist_xml) do
22
- '<?xml version="1.0" encoding="UTF-8"?>
23
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
24
- <plist version="1.0">
25
- <dict>
26
- <key>dsAttrTypeStandard:NFSHomeDirectory</key>
27
- <array>
28
- <string>/Users/nonexistent_user</string>
29
- </array>
30
- <key>dsAttrTypeStandard:RealName</key>
31
- <array>
32
- <string>nonexistent_user</string>
33
- </array>
34
- <key>dsAttrTypeStandard:PrimaryGroupID</key>
35
- <array>
36
- <string>22</string>
37
- </array>
38
- <key>dsAttrTypeStandard:UniqueID</key>
39
- <array>
40
- <string>1000</string>
41
- </array>
42
- <key>dsAttrTypeStandard:RecordName</key>
43
- <array>
44
- <string>nonexistent_user</string>
45
- </array>
46
- </dict>
47
- </plist>'
48
- end
49
-
50
- # This is the same as above, however in a native Ruby hash instead
51
- # of XML
52
- let(:user_plist_hash) do
53
- {
54
- "dsAttrTypeStandard:RealName" => [username],
55
- "dsAttrTypeStandard:NFSHomeDirectory" => [user_path],
56
- "dsAttrTypeStandard:PrimaryGroupID" => ["22"],
57
- "dsAttrTypeStandard:UniqueID" => ["1000"],
58
- "dsAttrTypeStandard:RecordName" => [username]
59
- }
60
- end
61
-
62
- let(:sha512_shadowhashdata_array) do
63
- ['62706c69 73743030 d101025d 53414c54 45442d53 48413531 324f1044 7ea7d592 131f57b2 c8f8bdbc '\
64
- 'ec8d9df1 2128a386 393a4f00 c7619bac 2622a44d 451419d1 1da512d5 915ab98e 39718ac9 4083fe2e '\
65
- 'fd6bf710 a54d477f 8ff735b1 2587192d 080b1900 00000000 00010100 00000000 00000300 00000000 '\
66
- '00000000 00000000 000060']
67
- end
68
- # The below value is the result of executing
69
- # `dscl -plist . read /Users/<username> ShadowHashData` on a 10.7
70
- # system and converting it to a native Ruby Hash with Plist.parse_xml
71
- let(:sha512_shadowhashdata_hash) do
72
- {
73
- 'dsAttrTypeNative:ShadowHashData' => sha512_shadowhashdata_array
74
- }
75
- end
76
-
77
- # The below is a binary plist that is stored in the ShadowHashData key
78
- # on a 10.7 system.
79
- let(:sha512_embedded_bplist) do
80
- "bplist00\321\001\002]SALTED-SHA512O\020D~\247\325\222\023\037W\262\310\370\275\274\354\215\235\361!(\243\2069:O\000\307a\233\254&\"\244ME\024\031\321\035\245\022\325\221Z\271\2169q\212\311@\203\376.\375k\367\020\245MG\177\217\3675\261%\207\031-\b\v\031\000\000\000\000\000\000\001\001\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`"
81
- end
82
-
83
- # The below is a Base64 encoded string representing a salted-SHA512 password
84
- # hash.
85
- let(:sha512_pw_string) do
86
- "~\247\325\222\023\037W\262\310\370\275\274\354\215\235\361!(\243\2069:O\000\307a\233\254&\"\244ME\024\031\321\035\245\022\325\221Z\271\2169q\212\311@\203\376.\375k\367\020\245MG\177\217\3675\261%\207\031-"
87
- end
88
-
89
- # The below is the result of converting sha512_embedded_bplist to XML and
90
- # parsing it with Plist.parse_xml. It is a Ruby Hash whose value is a
91
- # Base64 encoded salted-SHA512 password hash.
92
- let(:sha512_embedded_bplist_hash) do
93
- { 'SALTED-SHA512' => sha512_pw_string }
94
- end
95
-
96
- # The value below is the result of converting sha512_pw_string to Hex.
97
- let(:sha512_password_hash) do
98
- '7ea7d592131f57b2c8f8bdbcec8d9df12128a386393a4f00c7619bac2622a44d451419d11da512d5915ab98e39718ac94083fe2efd6bf710a54d477f8ff735b12587192d'
99
- end
100
-
101
- let(:pbkdf2_shadowhashdata_array) do
102
- ['62706c69 73743030 d101025f 10145341 4c544544 2d534841 3531322d 50424b44 4632d303 04050607 '\
103
- '0857656e 74726f70 79547361 6c745a69 74657261 74696f6e 734f1080 0590ade1 9e6953c1 35ae872a '\
104
- 'e7761823 5df7d46c 63de7f9a 0fcdf2cd 9e7d85e4 b7ca8681 01235b61 58e05a30 9805ee48 14b027a4 '\
105
- 'be9c23ec 2926bc81 72269aff ba5c9a59 85e81091 fa689807 6d297f1f aa75fa61 7551ef16 71d75200 '\
106
- '55c4a0d9 7b9b9c58 05aa322b aedbcd8e e9c52381 1653ac2e a9e9c8d8 f1ac519a 0f2b595e 4f102093 '\
107
- '77c46908 a1c8ac2c 3e45c0d4 4da8ad0f cd85ec5c 14d9a59f fc40c9da 31f0ec11 60b0080b 22293136 '\
108
- '41c4e700 00000000 00010100 00000000 00000900 00000000 00000000 00000000 0000ea']
109
- end
110
- # The below value is the result of executing
111
- # `dscl -plist . read /Users/<username> ShadowHashData` on a 10.8
112
- # system and converting it to a native Ruby Hash with Plist.parse_xml
113
- let(:pbkdf2_shadowhashdata_hash) do
114
- {
115
- "dsAttrTypeNative:ShadowHashData"=> pbkdf2_shadowhashdata_array
116
- }
117
- end
118
-
119
- # The below value is the result of converting pbkdf2_embedded_bplist to XML and
120
- # parsing it with Plist.parse_xml.
121
- let(:pbkdf2_embedded_bplist_hash) do
122
- {
123
- 'SALTED-SHA512-PBKDF2' => {
124
- 'entropy' => pbkdf2_pw_string,
125
- 'salt' => pbkdf2_salt_string,
126
- 'iterations' => pbkdf2_iterations_value
127
- }
128
- }
129
- end
130
-
131
- # The value below is the result of converting pbkdf2_pw_string to Hex.
132
- let(:pbkdf2_password_hash) do
133
- '0590ade19e6953c135ae872ae77618235df7d46c63de7f9a0fcdf2cd9e7d85e4b7ca868101235b6158e05a309805ee4814b027a4be9c23ec2926bc8172269affba5c9a5985e81091fa6898076d297f1faa75fa617551ef1671d7520055c4a0d97b9b9c5805aa322baedbcd8ee9c523811653ac2ea9e9c8d8f1ac519a0f2b595e'
134
- end
135
-
136
- # The below is a binary plist that is stored in the ShadowHashData key
137
- # of a 10.8 system.
138
- let(:pbkdf2_embedded_plist) do
139
- "bplist00\321\001\002_\020\024SALTED-SHA512-PBKDF2\323\003\004\005\006\a\bWentropyTsaltZiterationsO\020\200\005\220\255\341\236iS\3015\256\207*\347v\030#]\367\324lc\336\177\232\017\315\362\315\236}\205\344\267\312\206\201\001#[aX\340Z0\230\005\356H\024\260'\244\276\234#\354)&\274\201r&\232\377\272\\\232Y\205\350\020\221\372h\230\am)\177\037\252u\372auQ\357\026q\327R\000U\304\240\331{\233\234X\005\2522+\256\333\315\216\351\305#\201\026S\254.\251\351\310\330\361\254Q\232\017+Y^O\020 \223w\304i\b\241\310\254,>E\300\324M\250\255\017\315\205\354\\\024\331\245\237\374@\311\3321\360\354\021`\260\b\v\")16A\304\347\000\000\000\000\000\000\001\001\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\352"
140
- end
141
-
142
- # The below value is a Base64 encoded string representing a PBKDF2 password
143
- # hash.
144
- let(:pbkdf2_pw_string) do
145
- "\005\220\255\341\236iS\3015\256\207*\347v\030#]\367\324lc\336\177\232\017\315\362\315\236}\205\344\267\312\206\201\001#[aX\340Z0\230\005\356H\024\260'\244\276\234#\354)&\274\201r&\232\377\272\\\232Y\205\350\020\221\372h\230\am)\177\037\252u\372auQ\357\026q\327R\000U\304\240\331{\233\234X\005\2522+\256\333\315\216\351\305#\201\026S\254.\251\351\310\330\361\254Q\232\017+Y^"
146
- end
147
-
148
- # The below value is a Base64 encoded string representing a PBKDF2 salt
149
- # string.
150
- let(:pbkdf2_salt_string) do
151
- "\223w\304i\b\241\310\254,>E\300\324M\250\255\017\315\205\354\\\024\331\245\237\374@\311\3321\360\354"
152
- end
153
-
154
- # The below value represents the Hex value of a PBKDF2 salt string
155
- let(:pbkdf2_salt_value) do
156
- "9377c46908a1c8ac2c3e45c0d44da8ad0fcd85ec5c14d9a59ffc40c9da31f0ec"
157
- end
158
-
159
- # The below value is an Integer iterations value used in the PBKDF2
160
- # key stretching algorithm
161
- let(:pbkdf2_iterations_value) do
162
- 24752
163
- end
164
-
165
- let(:pbkdf2_and_ssha512_shadowhashdata_array) do
166
- ['62706c69 73743030 d2010203 0a5f1014 53414c54 45442d53 48413531 322d5042 4b444632 5d53414c '\
167
- '5445442d 53484135 3132d304 05060708 0957656e 74726f70 79547361 6c745a69 74657261 74696f6e '\
168
- '734f1080 0590ade1 9e6953c1 35ae872a e7761823 5df7d46c 63de7f9a 0fcdf2cd 9e7d85e4 b7ca8681 '\
169
- '01235b61 58e05a30 9805ee48 14b027a4 be9c23ec 2926bc81 72269aff ba5c9a59 85e81091 fa689807 '\
170
- '6d297f1f aa75fa61 7551ef16 71d75200 55c4a0d9 7b9b9c58 05aa322b aedbcd8e e9c52381 1653ac2e '\
171
- 'a9e9c8d8 f1ac519a 0f2b595e 4f102093 77c46908 a1c8ac2c 3e45c0d4 4da8ad0f cd85ec5c 14d9a59f '\
172
- 'fc40c9da 31f0ec11 60b04f10 447ea7d5 92131f57 b2c8f8bd bcec8d9d f12128a3 86393a4f 00c7619b '\
173
- 'ac2622a4 4d451419 d11da512 d5915ab9 8e39718a c94083fe 2efd6bf7 10a54d47 7f8ff735 b1258719 '\
174
- '2d000800 0d002400 32003900 41004600 5100d400 f700fa00 00000000 00020100 00000000 00000b00 '\
175
- '00000000 00000000 00000000 000141']
176
- end
177
-
178
- let(:pbkdf2_and_ssha512_shadowhashdata_hash) do
179
- {
180
- 'dsAttrTypeNative:ShadowHashData' => pbkdf2_and_ssha512_shadowhashdata_array
181
- }
182
- end
183
-
184
- let (:pbkdf2_and_ssha512_embedded_plist) do
185
- "bplist00\xD2\x01\x02\x03\n_\x10\x14SALTED-SHA512-PBKDF2]SALTED-SHA512\xD3\x04\x05\x06\a\b\tWentropyTsaltZiterationsO\x10\x80\x05\x90\xAD\xE1\x9EiS\xC15\xAE\x87*\xE7v\x18#]\xF7\xD4lc\xDE\x7F\x9A\x0F\xCD\xF2\xCD\x9E}\x85\xE4\xB7\xCA\x86\x81\x01#[aX\xE0Z0\x98\x05\xEEH\x14\xB0'\xA4\xBE\x9C#\xEC)&\xBC\x81r&\x9A\xFF\xBA\\\x9AY\x85\xE8\x10\x91\xFAh\x98\am)\x7F\x1F\xAAu\xFAauQ\xEF\x16q\xD7R\x00U\xC4\xA0\xD9{\x9B\x9CX\x05\xAA2+\xAE\xDB\xCD\x8E\xE9\xC5#\x81\x16S\xAC.\xA9\xE9\xC8\xD8\xF1\xACQ\x9A\x0F+Y^O\x10 \x93w\xC4i\b\xA1\xC8\xAC,>E\xC0\xD4M\xA8\xAD\x0F\xCD\x85\xEC\\\x14\xD9\xA5\x9F\xFC@\xC9\xDA1\xF0\xEC\x11`\xB0O\x10D~\xA7\xD5\x92\x13\x1FW\xB2\xC8\xF8\xBD\xBC\xEC\x8D\x9D\xF1!(\xA3\x869:O\x00\xC7a\x9B\xAC&\"\xA4ME\x14\x19\xD1\x1D\xA5\x12\xD5\x91Z\xB9\x8E9q\x8A\xC9@\x83\xFE.\xFDk\xF7\x10\xA5MG\x7F\x8F\xF75\xB1%\x87\x19-\x00\b\x00\r\x00$\x002\x009\x00A\x00F\x00Q\x00\xD4\x00\xF7\x00\xFA\x00\x00\x00\x00\x00\x00\x02\x01\x00\x00\x00\x00\x00\x00\x00\v\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01A"
186
- end
187
-
188
- let (:pbkdf2_and_ssha512_embedded_bplist_hash) do
189
- {
190
- "SALTED-SHA512-PBKDF2" => {
191
- "entropy" => pbkdf2_pw_string,
192
- "salt" => pbkdf2_salt_value,
193
- "iterations" => pbkdf2_iterations_value,
194
- },
195
- "SALTED-SHA512" => sha512_password_hash
196
- }
197
- end
198
-
199
- let (:dsimport_preamble) do
200
- '0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Users 2 dsAttrTypeStandard:RecordName base64:dsAttrTypeNative:ShadowHashData'
201
- end
202
-
203
- let (:dsimport_contents) do
204
- <<-DSIMPORT
205
- #{dsimport_preamble}
206
- #{username}:#{Base64.strict_encode64(sha512_embedded_bplist)}
207
- DSIMPORT
208
- end
209
-
210
- # The below represents output of 'dscl -plist . readall /Users' converted to
211
- # a native Ruby hash if only one user were installed on the system.
212
- # This lets us check the behavior of all the methods necessary to return a
213
- # user's groups property by controlling the data provided by dscl
214
- let(:testuser_base) do
215
- {
216
- "dsAttrTypeStandard:RecordName" =>["nonexistent_user"],
217
- "dsAttrTypeStandard:UniqueID" =>["1000"],
218
- "dsAttrTypeStandard:AuthenticationAuthority"=>
219
- [";Kerberosv5;;testuser@LKDC:SHA1.4383E152D9D394AA32D13AE98F6F6E1FE8D00F81;LKDC:SHA1.4383E152D9D394AA32D13AE98F6F6E1FE8D00F81",
220
- ";ShadowHash;HASHLIST:<SALTED-SHA512>"],
221
- "dsAttrTypeStandard:AppleMetaNodeLocation" =>["/Local/Default"],
222
- "dsAttrTypeStandard:NFSHomeDirectory" =>["/Users/nonexistent_user"],
223
- "dsAttrTypeStandard:RecordType" =>["dsRecTypeStandard:Users"],
224
- "dsAttrTypeStandard:RealName" =>["nonexistent_user"],
225
- "dsAttrTypeStandard:Password" =>["********"],
226
- "dsAttrTypeStandard:PrimaryGroupID" =>["22"],
227
- "dsAttrTypeStandard:GeneratedUID" =>["0A7D5B63-3AD4-4CA7-B03E-85876F1D1FB3"],
228
- "dsAttrTypeStandard:AuthenticationHint" =>[""],
229
- "dsAttrTypeNative:KerberosKeys" =>
230
- ["30820157 a1030201 02a08201 4e308201 4a3074a1 2b3029a0 03020112 a1220420 54af3992 1c198bf8 94585a6b 2fba445b c8482228 0dcad666 ea62e038 99e59c45 a2453043 a0030201 03a13c04 3a4c4b44 433a5348 41312e34 33383345 31353244 39443339 34414133 32443133 41453938 46364636 45314645 38443030 46383174 65737475 73657230 64a11b30 19a00302 0111a112 04106375 7d97b2ce ca8343a6 3b0f73d5 1001a245 3043a003 020103a1 3c043a4c 4b44433a 53484131 2e343338 33453135 32443944 33393441 41333244 31334145 39384636 46364531 46453844 30304638 31746573 74757365 72306ca1 233021a0 03020110 a11a0418 67b09be3 5131b670 f8e9265e 62459b4c 19435419 fe918519 a2453043 a0030201 03a13c04 3a4c4b44 433a5348 41312e34 33383345 31353244 39443339 34414133 32443133 41453938 46364636 45314645 38443030 46383174 65737475 736572"],
231
- "dsAttrTypeStandard:PasswordPolicyOptions" =>
232
- ["<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n <plist version=\"1.0\">\n <dict>\n <key>failedLoginCount</key>\n <integer>0</integer>\n <key>failedLoginTimestamp</key>\n <date>2001-01-01T00:00:00Z</date>\n <key>lastLoginTimestamp</key>\n <date>2001-01-01T00:00:00Z</date>\n <key>passwordTimestamp</key>\n <date>2012-08-10T23:53:50Z</date>\n </dict>\n </plist>\n "],
233
- "dsAttrTypeStandard:UserShell" =>["/bin/bash"],
234
- "dsAttrTypeNative:ShadowHashData" =>
235
- ["62706c69 73743030 d101025d 53414c54 45442d53 48413531 324f1044 7ea7d592 131f57b2 c8f8bdbc ec8d9df1 2128a386 393a4f00 c7619bac 2622a44d 451419d1 1da512d5 915ab98e 39718ac9 4083fe2e fd6bf710 a54d477f 8ff735b1 2587192d 080b1900 00000000 00010100 00000000 00000300 00000000 00000000 00000000 000060"]
236
- }
237
- end
238
- let(:testuser_hash) do
239
- [
240
- testuser_base.merge(sha512_shadowhashdata_hash),
241
- testuser_base.merge(pbkdf2_shadowhashdata_hash),
242
- ]
243
- end
244
-
245
- # The below represents the result of running Plist.parse_xml on XML
246
- # data returned from the `dscl -plist . readall /Groups` command.
247
- # (AKA: What the get_list_of_groups method returns)
248
- let(:group_plist_hash_guid) do
249
- [{
250
- 'dsAttrTypeStandard:RecordName' => ['testgroup'],
251
- 'dsAttrTypeStandard:GroupMembership' => [
252
- username,
253
- 'jeff',
254
- 'zack'
255
- ],
256
- 'dsAttrTypeStandard:GroupMembers' => [
257
- "guid#{username}",
258
- 'guidtestuser',
259
- 'guidjeff',
260
- 'guidzack'
261
- ],
262
- },
263
- {
264
- 'dsAttrTypeStandard:RecordName' => ['second'],
265
- 'dsAttrTypeStandard:GroupMembership' => [
266
- 'jeff',
267
- 'zack'
268
- ],
269
- 'dsAttrTypeStandard:GroupMembers' => [
270
- "guid#{username}",
271
- 'guidjeff',
272
- 'guidzack'
273
- ],
274
- },
275
- {
276
- 'dsAttrTypeStandard:RecordName' => ['third'],
277
- 'dsAttrTypeStandard:GroupMembership' => [
278
- username,
279
- 'jeff',
280
- 'zack'
281
- ],
282
- 'dsAttrTypeStandard:GroupMembers' => [
283
- "guid#{username}",
284
- 'guidtestuser',
285
- 'guidjeff',
286
- 'guidzack'
287
- ],
288
- }]
289
- end
290
-
291
-
292
- describe 'Creating a user that does not exist' do
293
- # These are the defaults that the provider will use if a user does
294
- # not provide a value
295
- let(:defaults) do
296
- {
297
- 'UniqueID' => '1000',
298
- 'RealName' => resource[:name],
299
- 'PrimaryGroupID' => 20,
300
- 'UserShell' => '/bin/bash',
301
- 'NFSHomeDirectory' => "/Users/#{resource[:name]}"
302
- }
303
- end
304
-
305
- before :each do
306
- # Stub out all calls to dscl with default values from above
307
- defaults.each do |key, val|
308
- allow(provider).to receive(:create_attribute_with_dscl).with('Users', username, key, val)
309
- end
310
-
311
- # Mock the rest of the dscl calls. We can't assume that our Linux
312
- # build system will have the dscl binary
313
- allow(provider).to receive(:create_new_user).with(username)
314
- allow(provider.class).to receive(:get_attribute_from_dscl).with('Users', username, 'GeneratedUID').and_return({'dsAttrTypeStandard:GeneratedUID' => ['GUID']})
315
- allow(provider).to receive(:next_system_id).and_return('1000')
316
- end
317
-
318
- it 'should not raise any errors when creating a user with default values' do
319
- provider.create
320
- end
321
-
322
- %w{password iterations salt}.each do |value|
323
- it "should call ##{value}= if a #{value} attribute is specified" do
324
- resource[value.intern] = 'somevalue'
325
- setter = (value << '=').intern
326
- expect(provider).to receive(setter).with('somevalue')
327
- provider.create
328
- end
329
- end
330
-
331
- it 'should merge the GroupMembership and GroupMembers dscl values if a groups attribute is specified' do
332
- resource[:groups] = 'somegroup'
333
- expect(provider).to receive(:merge_attribute_with_dscl).with('Groups', 'somegroup', 'GroupMembership', username)
334
- expect(provider).to receive(:merge_attribute_with_dscl).with('Groups', 'somegroup', 'GroupMembers', 'GUID')
335
- provider.create
336
- end
337
-
338
- it 'should convert group names into integers' do
339
- resource[:gid] = 'somegroup'
340
- expect(Puppet::Util).to receive(:gid).with('somegroup').and_return(21)
341
- expect(provider).to receive(:create_attribute_with_dscl).with('Users', username, 'PrimaryGroupID', 21)
342
- provider.create
343
- end
344
- end
345
-
346
- describe 'Update existing user' do
347
- describe 'home=' do
348
- context 'on OS X 10.14' do
349
- before do
350
- provider.instance_variable_set(:@property_hash, { home: 'value' })
351
- allow(provider.class).to receive(:get_os_version).and_return('10.14')
352
- end
353
-
354
- it 'raises error' do
355
- expect { provider.home = 'new' }.to \
356
- raise_error(Puppet::Error, "OS X version 10.14 does not allow changing home using puppet")
357
- end
358
- end
359
- end
360
-
361
- describe 'uid=' do
362
- context 'on OS X 10.14' do
363
- before do
364
- provider.instance_variable_set(:@property_hash, { uid: 'value' })
365
- allow(provider.class).to receive(:get_os_version).and_return('10.14')
366
- end
367
-
368
- it 'raises error' do
369
- expect { provider.uid = 'new' }.to \
370
- raise_error(Puppet::Error, "OS X version 10.14 does not allow changing uid using puppet")
371
- end
372
- end
373
- end
374
- end
375
-
376
- describe 'self#instances' do
377
- it 'should create an array of provider instances' do
378
- expect(provider.class).to receive(:get_all_users).and_return(['foo', 'bar'])
379
- ['foo', 'bar'].each do |user|
380
- expect(provider.class).to receive(:generate_attribute_hash).with(user).and_return({})
381
- end
382
- instances = provider.class.instances
383
-
384
- expect(instances).to be_a_kind_of Array
385
- instances.each do |instance|
386
- expect(instance).to be_a_kind_of Puppet::Provider
387
- end
388
- end
389
- end
390
-
391
- describe 'self#get_all_users', :if => Puppet.features.cfpropertylist? do
392
- let(:empty_plist) do
393
- '<?xml version="1.0" encoding="UTF-8"?>
394
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
395
- <plist version="1.0">
396
- <dict>
397
- </dict>
398
- </plist>'
399
- end
400
-
401
- it 'should return a hash of user attributes' do
402
- expect(provider.class).to receive(:dscl).with('-plist', '.', 'readall', '/Users').and_return(user_plist_xml)
403
- expect(provider.class.get_all_users).to eq(user_plist_hash)
404
- end
405
-
406
- it 'should return a hash when passed an empty plist' do
407
- expect(provider.class).to receive(:dscl).with('-plist', '.', 'readall', '/Users').and_return(empty_plist)
408
- expect(provider.class.get_all_users).to eq({})
409
- end
410
- end
411
-
412
- describe 'self#generate_attribute_hash' do
413
- let(:user_plist_resource) do
414
- {
415
- :ensure => :present,
416
- :provider => :directoryservice,
417
- :groups => 'testgroup,third',
418
- :comment => username,
419
- :password => sha512_password_hash,
420
- :shadowhashdata => sha512_shadowhashdata_array,
421
- :name => username,
422
- :uid => 1000,
423
- :gid => 22,
424
- :home => user_path
425
- }
426
- end
427
-
428
- before :each do
429
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
430
- allow(provider.class).to receive(:get_all_users).and_return(testuser_hash)
431
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
432
- allow(provider.class).to receive(:convert_binary_to_hash).with(sha512_embedded_bplist).and_return(sha512_embedded_bplist_hash)
433
- allow(provider.class).to receive(:convert_binary_to_hash).with(pbkdf2_embedded_plist).and_return(pbkdf2_embedded_bplist_hash)
434
- provider.class.prefetch({})
435
- end
436
-
437
- it 'should return :uid values as an Integer' do
438
- expect(provider.class.generate_attribute_hash(user_plist_hash)[:uid]).to be_a Integer
439
- end
440
-
441
- it 'should return :gid values as an Integer' do
442
- expect(provider.class.generate_attribute_hash(user_plist_hash)[:gid]).to be_a Integer
443
- end
444
-
445
- it 'should return a hash of resource attributes' do
446
- expect(provider.class.generate_attribute_hash(user_plist_hash.merge(sha512_shadowhashdata_hash))).to eq(user_plist_resource)
447
- end
448
- end
449
-
450
- describe 'self#generate_attribute_hash with pbkdf2 and ssha512' do
451
- let(:user_plist_resource) do
452
- {
453
- :ensure => :present,
454
- :provider => :directoryservice,
455
- :groups => 'testgroup,third',
456
- :comment => username,
457
- :password => pbkdf2_password_hash,
458
- :iterations => pbkdf2_iterations_value,
459
- :salt => pbkdf2_salt_value,
460
- :shadowhashdata => pbkdf2_and_ssha512_shadowhashdata_array,
461
- :name => username,
462
- :uid => 1000,
463
- :gid => 22,
464
- :home => user_path
465
- }
466
- end
467
-
468
- before :each do
469
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
470
- allow(provider.class).to receive(:get_all_users).and_return(testuser_hash)
471
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
472
- provider.class.prefetch({})
473
- end
474
-
475
- it 'should return a hash of resource attributes' do
476
- expect(provider.class.generate_attribute_hash(user_plist_hash.merge(pbkdf2_and_ssha512_shadowhashdata_hash))).to eq(user_plist_resource)
477
- end
478
- end
479
-
480
- describe 'self#generate_attribute_hash empty shadowhashdata' do
481
- let(:user_plist_resource) do
482
- {
483
- :ensure => :present,
484
- :provider => :directoryservice,
485
- :groups => 'testgroup,third',
486
- :comment => username,
487
- :password => '*',
488
- :shadowhashdata => nil,
489
- :name => username,
490
- :uid => 1000,
491
- :gid => 22,
492
- :home => user_path
493
- }
494
- end
495
-
496
- it 'should handle empty shadowhashdata' do
497
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
498
- allow(provider.class).to receive(:get_all_users).and_return([testuser_base])
499
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
500
- provider.class.prefetch({})
501
- expect(provider.class.generate_attribute_hash(user_plist_hash)).to eq(user_plist_resource)
502
- end
503
- end
504
-
505
- describe '#delete' do
506
- it 'should call dscl when destroying/deleting a resource' do
507
- expect(provider).to receive(:dscl).with('.', '-delete', user_path)
508
- provider.delete
509
- end
510
- end
511
-
512
- describe 'the groups property' do
513
- # The below represents the result of running Plist.parse_xml on XML
514
- # data returned from the `dscl -plist . readall /Groups` command.
515
- # (AKA: What the get_list_of_groups method returns)
516
- let(:group_plist_hash) do
517
- [{
518
- 'dsAttrTypeStandard:RecordName' => ['testgroup'],
519
- 'dsAttrTypeStandard:GroupMembership' => [
520
- 'testuser',
521
- username,
522
- 'jeff',
523
- 'zack'
524
- ],
525
- 'dsAttrTypeStandard:GroupMembers' => [
526
- 'guidtestuser',
527
- 'guidjeff',
528
- 'guidzack'
529
- ],
530
- },
531
- {
532
- 'dsAttrTypeStandard:RecordName' => ['second'],
533
- 'dsAttrTypeStandard:GroupMembership' => [
534
- username,
535
- 'testuser',
536
- 'jeff',
537
- ],
538
- 'dsAttrTypeStandard:GroupMembers' => [
539
- 'guidtestuser',
540
- 'guidjeff',
541
- ],
542
- },
543
- {
544
- 'dsAttrTypeStandard:RecordName' => ['third'],
545
- 'dsAttrTypeStandard:GroupMembership' => [
546
- 'jeff',
547
- 'zack'
548
- ],
549
- 'dsAttrTypeStandard:GroupMembers' => [
550
- 'guidjeff',
551
- 'guidzack'
552
- ],
553
- }]
554
- end
555
-
556
- before :each do
557
- allow(provider.class).to receive(:get_all_users).and_return(testuser_hash)
558
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
559
- end
560
-
561
- it "should return a list of groups if the user's name matches GroupMembership" do
562
- expect(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash)
563
- expect(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash)
564
- expect(provider.class.prefetch({}).first.groups).to eq('second,testgroup')
565
- end
566
-
567
- it "should return a list of groups if the user's GUID matches GroupMembers" do
568
- expect(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
569
- expect(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
570
- expect(provider.class.prefetch({}).first.groups).to eq('testgroup,third')
571
- end
572
- end
573
-
574
- describe '#groups=' do
575
- let(:group_plist_one_two_three) do
576
- [{
577
- 'dsAttrTypeStandard:RecordName' => ['one'],
578
- 'dsAttrTypeStandard:GroupMembership' => [
579
- 'jeff',
580
- 'zack'
581
- ],
582
- 'dsAttrTypeStandard:GroupMembers' => [
583
- 'guidjeff',
584
- 'guidzack'
585
- ],
586
- },
587
- {
588
- 'dsAttrTypeStandard:RecordName' => ['two'],
589
- 'dsAttrTypeStandard:GroupMembership' => [
590
- 'jeff',
591
- 'zack',
592
- username
593
- ],
594
- 'dsAttrTypeStandard:GroupMembers' => [
595
- 'guidjeff',
596
- 'guidzack'
597
- ],
598
- },
599
- {
600
- 'dsAttrTypeStandard:RecordName' => ['three'],
601
- 'dsAttrTypeStandard:GroupMembership' => [
602
- 'jeff',
603
- 'zack',
604
- username
605
- ],
606
- 'dsAttrTypeStandard:GroupMembers' => [
607
- 'guidjeff',
608
- 'guidzack'
609
- ],
610
- }]
611
- end
612
-
613
- before :each do
614
- allow(provider.class).to receive(:get_all_users).and_return(testuser_hash)
615
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_one_two_three)
616
- end
617
-
618
- it 'should call dscl to add necessary groups' do
619
- expect(provider.class).to receive(:get_attribute_from_dscl).with('Users', username, 'GeneratedUID').and_return({'dsAttrTypeStandard:GeneratedUID' => ['guidnonexistent_user']})
620
- expect(provider).to receive(:groups).and_return('two,three')
621
- expect(provider).to receive(:dscl).with('.', '-merge', '/Groups/one', 'GroupMembership', 'nonexistent_user')
622
- expect(provider).to receive(:dscl).with('.', '-merge', '/Groups/one', 'GroupMembers', 'guidnonexistent_user')
623
- provider.class.prefetch({})
624
- provider.groups= 'one,two,three'
625
- end
626
-
627
- it 'should call the get_salted_sha512 method on 10.7 and return the correct hash' do
628
- expect(provider.class).to receive(:convert_binary_to_hash).with(sha512_embedded_bplist).and_return(sha512_embedded_bplist_hash)
629
- expect(provider.class).to receive(:convert_binary_to_hash).with(pbkdf2_embedded_plist).and_return(pbkdf2_embedded_bplist_hash)
630
- expect(provider.class.prefetch({}).first.password).to eq(sha512_password_hash)
631
- end
632
-
633
- it 'should call the get_salted_sha512_pbkdf2 method on 10.8 and return the correct hash' do
634
- expect(provider.class).to receive(:convert_binary_to_hash).with(sha512_embedded_bplist).and_return(sha512_embedded_bplist_hash)
635
- expect(provider.class).to receive(:convert_binary_to_hash).with(pbkdf2_embedded_plist).and_return(pbkdf2_embedded_bplist_hash)
636
- expect(provider.class.prefetch({}).last.password).to eq(pbkdf2_password_hash)
637
- end
638
- end
639
-
640
- describe '#password=' do
641
- before :each do
642
- allow(provider).to receive(:sleep)
643
- allow(provider).to receive(:flush_dscl_cache)
644
- end
645
-
646
- it 'should call write_password_to_users_plist when setting the password' do
647
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
648
- expect(provider).to receive(:write_password_to_users_plist).with(sha512_password_hash)
649
- provider.password = sha512_password_hash
650
- end
651
-
652
- it 'should call write_password_to_users_plist when setting the password' do
653
- allow(provider.class).to receive(:get_os_version).and_return('10.8')
654
- resource[:salt] = pbkdf2_salt_value
655
- resource[:iterations] = pbkdf2_iterations_value
656
- resource[:password] = pbkdf2_password_hash
657
-
658
- expect(provider).to receive(:write_password_to_users_plist).with(pbkdf2_password_hash)
659
-
660
- provider.password = resource[:password]
661
- end
662
-
663
-
664
- it "should raise an error on 10.7 if a password hash that doesn't contain 136 characters is passed" do
665
- allow(provider.class).to receive(:get_os_version).and_return('10.7')
666
- expect { provider.password = 'password' }.to raise_error Puppet::Error, /OS X 10\.7 requires a Salted SHA512 hash password of 136 characters\. Please check your password and try again/
667
- end
668
- end
669
-
670
- describe "passwords on 10.8" do
671
- before :each do
672
- allow(provider.class).to receive(:get_os_version).and_return('10.8')
673
- end
674
-
675
- it "should raise an error on 10.8 if a password hash that doesn't contain 256 characters is passed" do
676
- expect do
677
- provider.password = 'password'
678
- end.to raise_error(Puppet::Error, /OS X versions > 10\.7 require a Salted SHA512 PBKDF2 password hash of 256 characters\. Please check your password and try again\./)
679
- end
680
-
681
- it "fails if a password is given but not salt and iterations" do
682
- resource[:password] = pbkdf2_password_hash
683
-
684
- expect do
685
- provider.password = resource[:password]
686
- end.to raise_error(Puppet::Error, /OS X versions > 10\.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash\. This resource is missing: salt, iterations\./)
687
- end
688
-
689
- it "fails if salt is given but not password and iterations" do
690
- resource[:salt] = pbkdf2_salt_value
691
-
692
- expect do
693
- provider.salt = resource[:salt]
694
- end.to raise_error(Puppet::Error, /OS X versions > 10\.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash\. This resource is missing: password, iterations\./)
695
- end
696
-
697
- it "fails if iterations is given but not password and salt" do
698
- resource[:iterations] = pbkdf2_iterations_value
699
-
700
- expect do
701
- provider.iterations = resource[:iterations]
702
- end.to raise_error(Puppet::Error, /OS X versions > 10\.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash\. This resource is missing: password, salt\./)
703
- end
704
- end
705
-
706
- describe '#get_list_of_groups', :if => Puppet.features.cfpropertylist? do
707
- # The below value is the result of running `dscl -plist . readall /Groups`
708
- # on an OS X system.
709
- let(:groups_xml) do
710
- '<?xml version="1.0" encoding="UTF-8"?>
711
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
712
- <plist version="1.0">
713
- <array>
714
- <dict>
715
- <key>dsAttrTypeStandard:AppleMetaNodeLocation</key>
716
- <array>
717
- <string>/Local/Default</string>
718
- </array>
719
- <key>dsAttrTypeStandard:GeneratedUID</key>
720
- <array>
721
- <string>ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000053</string>
722
- </array>
723
- <key>dsAttrTypeStandard:Password</key>
724
- <array>
725
- <string>*</string>
726
- </array>
727
- <key>dsAttrTypeStandard:PrimaryGroupID</key>
728
- <array>
729
- <string>83</string>
730
- </array>
731
- <key>dsAttrTypeStandard:RealName</key>
732
- <array>
733
- <string>SPAM Assassin Group 2</string>
734
- </array>
735
- <key>dsAttrTypeStandard:RecordName</key>
736
- <array>
737
- <string>_amavisd</string>
738
- <string>amavisd</string>
739
- </array>
740
- <key>dsAttrTypeStandard:RecordType</key>
741
- <array>
742
- <string>dsRecTypeStandard:Groups</string>
743
- </array>
744
- </dict>
745
- </array>
746
- </plist>'
747
- end
748
-
749
- # The below value is the result of executing Plist.parse_xml on
750
- # groups_xml
751
- let(:groups_hash) do
752
- [{ 'dsAttrTypeStandard:AppleMetaNodeLocation' => ['/Local/Default'],
753
- 'dsAttrTypeStandard:GeneratedUID' => ['ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000053'],
754
- 'dsAttrTypeStandard:Password' => ['*'],
755
- 'dsAttrTypeStandard:PrimaryGroupID' => ['83'],
756
- 'dsAttrTypeStandard:RealName' => ['SPAM Assassin Group 2'],
757
- 'dsAttrTypeStandard:RecordName' => ['_amavisd', 'amavisd'],
758
- 'dsAttrTypeStandard:RecordType' => ['dsRecTypeStandard:Groups']
759
- }]
760
- end
761
-
762
- before :each do
763
- # Ensure we don't have a value cached from another spec
764
- provider.class.instance_variable_set(:@groups, nil) if provider.class.instance_variable_defined? :@groups
765
- end
766
-
767
- it 'should return an array of hashes containing group data' do
768
- expect(provider.class).to receive(:dscl).with('-plist', '.', 'readall', '/Groups').and_return(groups_xml)
769
- expect(provider.class.get_list_of_groups).to eq(groups_hash)
770
- end
771
- end
772
-
773
- describe '#get_attribute_from_dscl', :if => Puppet.features.cfpropertylist? do
774
- # The below value is the result of executing
775
- # `dscl -plist . read /Users/<username/ GeneratedUID`
776
- # on an OS X system.
777
- let(:user_guid_xml) do
778
- '<?xml version="1.0" encoding="UTF-8"?>
779
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
780
- <plist version="1.0">
781
- <dict>
782
- <key>dsAttrTypeStandard:GeneratedUID</key>
783
- <array>
784
- <string>DCC660C6-F5A9-446D-B9FF-3C0258AB5BA0</string>
785
- </array>
786
- </dict>
787
- </plist>'
788
- end
789
-
790
- # The below value is the result of parsing user_guid_xml with
791
- # Plist.parse_xml
792
- let(:user_guid_hash) do
793
- { 'dsAttrTypeStandard:GeneratedUID' => ['DCC660C6-F5A9-446D-B9FF-3C0258AB5BA0'] }
794
- end
795
-
796
- it 'should return a hash containing a user\'s dscl attribute data' do
797
- expect(provider.class).to receive(:dscl).with('-plist', '.', 'read', user_path, 'GeneratedUID').and_return(user_guid_xml)
798
- expect(provider.class.get_attribute_from_dscl('Users', username, 'GeneratedUID')).to eq(user_guid_hash)
799
- end
800
- end
801
-
802
- describe '#convert_hash_to_binary' do
803
- it 'should use plutil to successfully convert an xml plist to a binary plist' do
804
- expect(Puppet::Util::Plist).to receive(:dump_plist).with('ruby_hash', :binary).and_return('binary_plist_data')
805
- expect(provider.class.convert_hash_to_binary('ruby_hash')).to eq('binary_plist_data')
806
- end
807
- end
808
-
809
- describe '#convert_binary_to_hash' do
810
- it 'should accept a binary plist and return a ruby hash containing the plist data' do
811
- expect(Puppet::Util::Plist).to receive(:parse_plist).with('binary_plist_data').and_return(user_plist_hash)
812
- expect(provider.class.convert_binary_to_hash('binary_plist_data')).to eq(user_plist_hash)
813
- end
814
- end
815
-
816
- describe '#next_system_id' do
817
- it 'should return the next available UID number that is not in the list obtained from dscl and is greater than the passed integer value' do
818
- expect(provider).to receive(:dscl).with('.', '-list', '/Users', 'uid').and_return("kathee 312\ngary 11\ntanny 33\njohn 9\nzach 5")
819
- expect(provider.next_system_id(30)).to eq(34)
820
- end
821
- end
822
-
823
- describe '#get_salted_sha512' do
824
- it "should accept a hash whose 'SALTED-SHA512' key contains a base64 encoded salted-SHA512 password hash and return the hex value of that password hash" do
825
- expect(provider.class.get_salted_sha512(sha512_embedded_bplist_hash)).to eq(sha512_password_hash)
826
- end
827
- end
828
-
829
- describe '#get_salted_sha512_pbkdf2' do
830
- it "should accept a hash containing a PBKDF2 password hash, salt, and iterations value and return the correct password hash" do
831
- expect(provider.class.get_salted_sha512_pbkdf2('entropy', pbkdf2_embedded_bplist_hash)).to eq(pbkdf2_password_hash)
832
- end
833
- it "should accept a hash containing a PBKDF2 password hash, salt, and iterations value and return the correct salt value" do
834
- expect(provider.class.get_salted_sha512_pbkdf2('salt', pbkdf2_embedded_bplist_hash)).to eq(pbkdf2_salt_value)
835
- end
836
- it "should accept a hash containing a PBKDF2 password hash, salt, and iterations value and return the correct iterations value" do
837
- expect(provider.class.get_salted_sha512_pbkdf2('iterations', pbkdf2_embedded_bplist_hash)).to eq(pbkdf2_iterations_value)
838
- end
839
- it "should return an Integer value when looking up the PBKDF2 iterations value" do
840
- expect(provider.class.get_salted_sha512_pbkdf2('iterations', pbkdf2_embedded_bplist_hash)).to be_a(Integer)
841
- end
842
- it "should raise an error if a field other than 'entropy', 'salt', or 'iterations' is passed" do
843
- expect { provider.class.get_salted_sha512_pbkdf2('othervalue', pbkdf2_embedded_bplist_hash, 'test_user') }.to raise_error(Puppet::Error, /Puppet has tried to read an incorrect value from the user test_user in the SALTED-SHA512-PBKDF2 hash. Acceptable fields are 'salt', 'entropy', or 'iterations'/)
844
- end
845
- end
846
-
847
- describe '#get_sha1' do
848
- let(:password_hash_file) { '/var/db/shadow/hash/user_guid' }
849
- let(:stub_password_file) { double('connection') }
850
-
851
- it 'should return a sha1 hash read from disk' do
852
- expect(Puppet::FileSystem).to receive(:exist?).with(password_hash_file).and_return(true)
853
- expect(File).to receive(:file?).with(password_hash_file).and_return(true)
854
- expect(File).to receive(:readable?).with(password_hash_file).and_return(true)
855
- expect(File).to receive(:new).with(password_hash_file).and_return(stub_password_file)
856
- expect(stub_password_file).to receive(:read).and_return('sha1_password_hash')
857
- expect(stub_password_file).to receive(:close)
858
- expect(provider.class.get_sha1('user_guid')).to eq('sha1_password_hash')
859
- end
860
-
861
- it 'should return nil if the password_hash_file does not exist' do
862
- expect(Puppet::FileSystem).to receive(:exist?).with(password_hash_file).and_return(false)
863
- expect(provider.class.get_sha1('user_guid')).to eq(nil)
864
- end
865
-
866
- it 'should return nil if the password_hash_file is not a file' do
867
- expect(Puppet::FileSystem).to receive(:exist?).with(password_hash_file).and_return(true)
868
- expect(File).to receive(:file?).with(password_hash_file).and_return(false)
869
- expect(provider.class.get_sha1('user_guid')).to eq(nil)
870
- end
871
-
872
- it 'should raise an error if the password_hash_file is not readable' do
873
- expect(Puppet::FileSystem).to receive(:exist?).with(password_hash_file).and_return(true)
874
- expect(File).to receive(:file?).with(password_hash_file).and_return(true)
875
- expect(File).to receive(:readable?).with(password_hash_file).and_return(false)
876
- expect { expect(provider.class.get_sha1('user_guid')).to eq(nil) }.to raise_error(Puppet::Error, /Could not read password hash file at #{password_hash_file}/)
877
- end
878
- end
879
-
880
- describe '#write_password_to_users_plist' do
881
- let(:sha512_plist_xml) do
882
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>KerberosKeys</key>\n\t<array>\n\t\t<data>\n\t\tMIIBS6EDAgEBoIIBQjCCAT4wcKErMCmgAwIBEqEiBCCS/0Im7BAps/YhX/ED\n\t\tKOpDeSMFkUsu3UzEa6gqDu35BKJBMD+gAwIBA6E4BDZMS0RDOlNIQTEuNDM4\n\t\tM0UxNTJEOUQzOTRBQTMyRDEzQUU5OEY2RjZFMUZFOEQwMEY4MWplZmYwYKEb\n\t\tMBmgAwIBEaESBBAk8a3rrFk5mHAdEU5nRgFwokEwP6ADAgEDoTgENkxLREM6\n\t\tU0hBMS40MzgzRTE1MkQ5RDM5NEFBMzJEMTNBRTk4RjZGNkUxRkU4RDAwRjgx\n\t\tamVmZjBooSMwIaADAgEQoRoEGFg71irsV+9ddRNPSn9houo3Q6jZuj55XaJB\n\t\tMD+gAwIBA6E4BDZMS0RDOlNIQTEuNDM4M0UxNTJEOUQzOTRBQTMyRDEzQUU5\n\t\tOEY2RjZFMUZFOEQwMEY4MWplZmY=\n\t\t</data>\n\t</array>\n\t<key>ShadowHashData</key>\n\t<array>\n\t\t<data>\n\t\tYnBsaXN0MDDRAQJdU0FMVEVELVNIQTUxMk8QRFNL0iuruijP6becUWe43GTX\n\t\t5WTgOTi2emx41DMnwnB4vbKieVOE4eNHiyocX5c0GX1LWJ6VlZqZ9EnDLsuA\n\t\tNC5Ga9qlCAsZAAAAAAAAAQEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAGA=\n\t\t</data>\n\t</array>\n\t<key>authentication_authority</key>\n\t<array>\n\t\t<string>;Kerberosv5;;jeff@LKDC:SHA1.4383E152D9D394AA32D13AE98F6F6E1FE8D00F81;LKDC:SHA1.4383E152D9D394AA32D13AE98F6F6E1FE8D00F81</string>\n\t\t<string>;ShadowHash;HASHLIST:&lt;SALTED-SHA512&gt;</string>\n\t</array>\n\t<key>dsAttrTypeStandard:ShadowHashData</key>\n\t<array>\n\t\t<data>\n\t\tYnBsaXN0MDDRAQJdU0FMVEVELVNIQTUxMk8QRH6n1ZITH1eyyPi9vOyNnfEh\n\t\tKKOGOTpPAMdhm6wmIqRNRRQZ0R2lEtWRWrmOOXGKyUCD/i79a/cQpU1Hf4/3\n\t\tNbElhxktCAsZAAAAAAAAAQEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAGA=\n\t\t</data>\n\t</array>\n\t<key>generateduid</key>\n\t<array>\n\t\t<string>3AC74939-C14F-45DD-B6A9-D1A82373F0B0</string>\n\t</array>\n\t<key>name</key>\n\t<array>\n\t\t<string>jeff</string>\n\t</array>\n\t<key>passwd</key>\n\t<array>\n\t\t<string>********</string>\n\t</array>\n\t<key>passwordpolicyoptions</key>\n\t<array>\n\t\t<data>\n\t\tPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU\n\t\tWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VO\n\t\tIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w\n\t\tLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+ZmFp\n\t\tbGVkTG9naW5Db3VudDwva2V5PgoJPGludGVnZXI+MDwvaW50ZWdlcj4KCTxr\n\t\tZXk+ZmFpbGVkTG9naW5UaW1lc3RhbXA8L2tleT4KCTxkYXRlPjIwMDEtMDEt\n\t\tMDFUMDA6MDA6MDBaPC9kYXRlPgoJPGtleT5sYXN0TG9naW5UaW1lc3RhbXA8\n\t\tL2tleT4KCTxkYXRlPjIwMDEtMDEtMDFUMDA6MDA6MDBaPC9kYXRlPgoJPGtl\n\t\teT5wYXNzd29yZFRpbWVzdGFtcDwva2V5PgoJPGRhdGU+MjAxMi0wOC0xMVQw\n\t\tMDozNTo1MFo8L2RhdGU+CjwvZGljdD4KPC9wbGlzdD4K\n\t\t</data>\n\t</array>\n\t<key>uid</key>\n\t<array>\n\t\t<string>28</string>\n\t</array>\n</dict>\n</plist>"
883
- end
884
-
885
- let(:pbkdf2_plist_xml) do
886
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>KerberosKeys</key>\n\t<array>\n\t\t<data>\n\t\tMIIBS6EDAgEBoIIBQjCCAT4wcKErMCmgAwIBEqEiBCDrboPy0gxu7oTZR/Pc\n\t\tYdCBC9ivXo1k05gt036/aNe5VqJBMD+gAwIBA6E4BDZMS0RDOlNIQTEuNDEz\n\t\tQTMwRjU5MEVFREM3ODdENTMyOTgxODUwQTk3NTI0NUIwQTcyM2plZmYwYKEb\n\t\tMBmgAwIBEaESBBCm02SYYdsxo2fiDP4KuPtmokEwP6ADAgEDoTgENkxLREM6\n\t\tU0hBMS40MTNBMzBGNTkwRUVEQzc4N0Q1MzI5ODE4NTBBOTc1MjQ1QjBBNzIz\n\t\tamVmZjBooSMwIaADAgEQoRoEGHPBc7Dg7zjaE8g+YXObwupiBLMIlCrN5aJB\n\t\tMD+gAwIBA6E4BDZMS0RDOlNIQTEuNDEzQTMwRjU5MEVFREM3ODdENTMyOTgx\n\t\tODUwQTk3NTI0NUIwQTcyM2plZmY=\n\t\t</data>\n\t</array>\n\t<key>ShadowHashData</key>\n\t<array>\n\t\t<data>\n\t\tYnBsaXN0MDDRAQJfEBRTQUxURUQtU0hBNTEyLVBCS0RGMtMDBAUGBwhXZW50\n\t\tcm9weVRzYWx0Wml0ZXJhdGlvbnNPEIAFkK3hnmlTwTWuhyrndhgjXffUbGPe\n\t\tf5oPzfLNnn2F5LfKhoEBI1thWOBaMJgF7kgUsCekvpwj7CkmvIFyJpr/ulya\n\t\tWYXoEJH6aJgHbSl/H6p1+mF1Ue8WcddSAFXEoNl7m5xYBaoyK67bzY7pxSOB\n\t\tFlOsLqnpyNjxrFGaDytZXk8QIJN3xGkIocisLD5FwNRNqK0PzYXsXBTZpZ/8\n\t\tQMnaMfDsEWCwCAsiKTE2QcTnAAAAAAAAAQEAAAAAAAAACQAAAAAAAAAAAAAA\n\t\tAAAAAOo=\n\t\t</data>\n\t</array>\n\t<key>authentication_authority</key>\n\t<array>\n\t\t<string>;Kerberosv5;;jeff@LKDC:SHA1.413A30F590EEDC787D532981850A975245B0A723;LKDC:SHA1.413A30F590EEDC787D532981850A975245B0A723</string>\n\t\t<string>;ShadowHash;HASHLIST:&lt;SALTED-SHA512-PBKDF2&gt;</string>\n\t</array>\n\t<key>generateduid</key>\n\t<array>\n\t\t<string>1CB825D1-2DF7-43CC-B874-DB6BBB76C402</string>\n\t</array>\n\t<key>gid</key>\n\t<array>\n\t\t<string>21</string>\n\t</array>\n\t<key>name</key>\n\t<array>\n\t\t<string>jeff</string>\n\t</array>\n\t<key>passwd</key>\n\t<array>\n\t\t<string>********</string>\n\t</array>\n\t<key>passwordpolicyoptions</key>\n\t<array>\n\t\t<data>\n\t\tPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU\n\t\tWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VO\n\t\tIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w\n\t\tLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+ZmFp\n\t\tbGVkTG9naW5Db3VudDwva2V5PgoJPGludGVnZXI+MDwvaW50ZWdlcj4KCTxr\n\t\tZXk+ZmFpbGVkTG9naW5UaW1lc3RhbXA8L2tleT4KCTxkYXRlPjIwMDEtMDEt\n\t\tMDFUMDA6MDA6MDBaPC9kYXRlPgoJPGtleT5sYXN0TG9naW5UaW1lc3RhbXA8\n\t\tL2tleT4KCTxkYXRlPjIwMDEtMDEtMDFUMDA6MDA6MDBaPC9kYXRlPgoJPGtl\n\t\teT5wYXNzd29yZExhc3RTZXRUaW1lPC9rZXk+Cgk8ZGF0ZT4yMDEyLTA3LTI1\n\t\tVDE4OjQ3OjU5WjwvZGF0ZT4KPC9kaWN0Pgo8L3BsaXN0Pgo=\n\t\t</data>\n\t</array>\n\t<key>uid</key>\n\t<array>\n\t\t<string>28</string>\n\t</array>\n</dict>\n</plist>"
887
- end
888
-
889
- let(:sha512_shadowhashdata) do
890
- {
891
- 'SALTED-SHA512' => 'blankvalue'
892
- }
893
- end
894
-
895
- let(:pbkdf2_shadowhashdata) do
896
- {
897
- 'SALTED-SHA512-PBKDF2' => {
898
- 'entropy' => 'blank_entropy',
899
- 'salt' => 'blank_salt',
900
- 'iterations' => 100
901
- }
902
- }
903
- end
904
-
905
- let(:sample_users_plist) do
906
- {
907
- "shell" => ["/bin/zsh"],
908
- "passwd" => ["********"],
909
- "picture" => ["/Library/User Pictures/Animals/Eagle.tif"],
910
- "_writers_LinkedIdentity" => ["puppet"], "name"=>["puppet"],
911
- "home" => ["/Users/puppet"],
912
- "_writers_UserCertificate" => ["puppet"],
913
- "_writers_passwd" => ["puppet"],
914
- "gid" => ["20"],
915
- "generateduid" => ["DA8A0E67-E9BE-4B4F-B34E-8977BAE0D3D4"],
916
- "realname" => ["Puppet"],
917
- "_writers_picture" => ["puppet"],
918
- "uid" => ["501"],
919
- "hint" => [""],
920
- "authentication_authority" => [";ShadowHash;HASHLIST:<SALTED-SHA512>",
921
- ";Kerberosv5;;puppet@LKDC:S HA1.35580B1D6366D2890A35D430373FF653297F377D;LKDC:SHA1.35580B1D6366D2890A35D430373FF653297F377D"],
922
- "_writers_realname" => ["puppet"],
923
- "_writers_hint" => ["puppet"],
924
- "ShadowHashData" => ['blank']
925
- }
926
- end
927
-
928
- before do
929
- allow(provider).to receive(:merge_attribute_with_dscl).with('Users', username, 'AuthenticationAuthority', any_args)
930
- end
931
-
932
- describe 'when on macOS 11 (Big Sur) or greater' do
933
- before do
934
- allow(provider.class).to receive(:get_os_version).and_return('11.0.0')
935
- end
936
-
937
- it 'should add salted_sha512_pbkdf2 AuthenticationAuthority key if missing' do
938
- expect(provider).to receive(:get_users_plist).and_return(sample_users_plist)
939
- expect(provider).to receive(:get_shadow_hash_data).with(sample_users_plist).and_return(pbkdf2_shadowhashdata)
940
- expect(provider).to receive(:set_salted_pbkdf2).with(sample_users_plist, pbkdf2_shadowhashdata, 'entropy', pbkdf2_password_hash)
941
- expect(provider).to receive(:needs_sha512_pbkdf2_authentication_authority_to_be_added?).and_return(true)
942
-
943
- expect(Puppet).to receive(:debug).with("Adding 'SALTED-SHA512-PBKDF2' AuthenticationAuthority key for ShadowHash to user 'nonexistent_user'")
944
- provider.write_password_to_users_plist(pbkdf2_password_hash)
945
- end
946
-
947
- it 'should not add salted_sha512_pbkdf2 AuthenticationAuthority key if not missing' do
948
- expect(provider).to receive(:get_users_plist).and_return(sample_users_plist)
949
- expect(provider).to receive(:get_shadow_hash_data).with(sample_users_plist).and_return(pbkdf2_shadowhashdata)
950
- expect(provider).to receive(:set_salted_pbkdf2).with(sample_users_plist, pbkdf2_shadowhashdata, 'entropy', pbkdf2_password_hash)
951
- expect(provider).to receive(:needs_sha512_pbkdf2_authentication_authority_to_be_added?).and_return(false)
952
-
953
- expect(Puppet).not_to receive(:debug).with("Adding 'SALTED-SHA512-PBKDF2' AuthenticationAuthority key for ShadowHash to user 'nonexistent_user'")
954
- provider.write_password_to_users_plist(pbkdf2_password_hash)
955
- end
956
- end
957
-
958
- describe 'when on macOS version lower than 11' do
959
- before do
960
- allow(provider.class).to receive(:get_os_version)
961
- allow(provider).to receive(:needs_sha512_pbkdf2_authentication_authority_to_be_added?).and_return(false)
962
- end
963
-
964
- it 'should not add salted_sha512_pbkdf2 AuthenticationAuthority' do
965
- expect(provider).to receive(:get_users_plist).and_return(sample_users_plist)
966
- expect(provider).to receive(:get_shadow_hash_data).with(sample_users_plist).and_return(pbkdf2_shadowhashdata)
967
- expect(provider).to receive(:set_salted_pbkdf2).with(sample_users_plist, pbkdf2_shadowhashdata, 'entropy', pbkdf2_password_hash)
968
- expect(provider).to receive(:needs_sha512_pbkdf2_authentication_authority_to_be_added?).and_return(false)
969
-
970
- expect(Puppet).not_to receive(:debug).with("Adding 'SALTED-SHA512-PBKDF2' AuthenticationAuthority key for ShadowHash to user 'nonexistent_user'")
971
- provider.write_password_to_users_plist(pbkdf2_password_hash)
972
- end
973
-
974
- it 'should call set_salted_sha512 on 10.7 when given a salted-SHA512 password hash' do
975
- expect(provider).to receive(:get_users_plist).and_return(sample_users_plist)
976
- expect(provider).to receive(:get_shadow_hash_data).with(sample_users_plist).and_return(sha512_shadowhashdata)
977
- expect(provider.class).to receive(:get_os_version).and_return('10.7')
978
- expect(provider).to receive(:set_salted_sha512).with(sample_users_plist, sha512_shadowhashdata, sha512_password_hash)
979
- provider.write_password_to_users_plist(sha512_password_hash)
980
- end
981
-
982
- it 'should call set_salted_pbkdf2 on 10.8 when given a PBKDF2 password hash' do
983
- expect(provider).to receive(:get_users_plist).and_return(sample_users_plist)
984
- expect(provider).to receive(:get_shadow_hash_data).with(sample_users_plist).and_return(pbkdf2_shadowhashdata)
985
- expect(provider.class).to receive(:get_os_version).and_return('10.8')
986
- expect(provider).to receive(:set_salted_pbkdf2).with(sample_users_plist, pbkdf2_shadowhashdata, 'entropy', pbkdf2_password_hash)
987
- provider.write_password_to_users_plist(pbkdf2_password_hash)
988
- end
989
-
990
- it "should delete the SALTED-SHA512 key in the shadow_hash_data hash if it exists on a 10.8 system and write_password_to_users_plist has been called to set the user's password" do
991
- expect(provider).to receive(:get_users_plist).and_return('users_plist')
992
- expect(provider).to receive(:get_shadow_hash_data).with('users_plist').and_return(sha512_shadowhashdata)
993
- expect(provider.class).to receive(:get_os_version).and_return('10.8')
994
- expect(provider).to receive(:set_salted_pbkdf2).with('users_plist', {}, 'entropy', pbkdf2_password_hash)
995
- provider.write_password_to_users_plist(pbkdf2_password_hash)
996
- end
997
- end
998
- end
999
-
1000
- describe '#set_salted_sha512' do
1001
- let(:users_plist) { {'ShadowHashData' => ['string_data'] } }
1002
- let(:sha512_shadow_hash_data) do
1003
- {
1004
- 'SALTED-SHA512' => sha512_pw_string
1005
- }
1006
- end
1007
-
1008
- it 'should set the SALTED-SHA512 password hash for a user in 10.7 and call the set_shadow_hash_data method to write the plist to disk' do
1009
- expect(provider.class).to receive(:convert_hash_to_binary).with(sha512_embedded_bplist_hash).and_return(sha512_embedded_bplist)
1010
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, sha512_embedded_bplist)
1011
- provider.set_salted_sha512(users_plist, sha512_embedded_bplist_hash, sha512_password_hash)
1012
- end
1013
-
1014
- it 'should set the salted-SHA512 password, even if a blank shadow_hash_data hash is passed' do
1015
- expect(provider.class).to receive(:convert_hash_to_binary).with(sha512_shadow_hash_data).and_return(sha512_embedded_bplist)
1016
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, sha512_embedded_bplist)
1017
- provider.set_salted_sha512(users_plist, false, sha512_password_hash)
1018
- end
1019
- end
1020
-
1021
- describe '#set_shadow_hash_data' do
1022
- let(:users_plist) { {'ShadowHashData' => ['string_data'] } }
1023
-
1024
- it 'should flush the plist data to a temporary file' do
1025
- expect(provider).to receive(:write_and_import_shadow_hash_data)
1026
- provider.set_shadow_hash_data(users_plist, pbkdf2_embedded_plist)
1027
- end
1028
- end
1029
-
1030
- describe '#set_salted_pbkdf2' do
1031
- let(:users_plist) { {'ShadowHashData' => ['string_data'] } }
1032
- let(:entropy_shadow_hash_data) do
1033
- {
1034
- 'SALTED-SHA512-PBKDF2' =>
1035
- {
1036
- 'entropy' => 'binary_string'
1037
- }
1038
- }
1039
- end
1040
-
1041
- # This will also catch the edge-case where a 10.6-style user exists on
1042
- # a 10.8 system and Puppet attempts to set a password
1043
- it 'should not fail if shadow_hash_data is not a Hash' do
1044
- expect(Puppet::Util::Plist).to receive(:string_to_blob).with(provider.base64_decode_string(pbkdf2_password_hash)).and_return('binary_string')
1045
- expect(provider.class).to receive(:convert_hash_to_binary).with(entropy_shadow_hash_data).and_return('binary_plist')
1046
- expect(provider).to receive(:set_shadow_hash_data).with({'passwd' => '********'}, 'binary_plist')
1047
- provider.set_salted_pbkdf2({}, false, 'entropy', pbkdf2_password_hash)
1048
- end
1049
-
1050
- it "should set the PBKDF2 password hash when the 'entropy' field is passed with a valid password hash" do
1051
- expect(Puppet::Util::Plist).to receive(:string_to_blob).with(provider.base64_decode_string(pbkdf2_password_hash))
1052
- expect(provider.class).to receive(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).and_return(pbkdf2_embedded_plist)
1053
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
1054
- expect(users_plist).to receive(:[]=).with('passwd', '********')
1055
- provider.set_salted_pbkdf2(users_plist, pbkdf2_embedded_bplist_hash, 'entropy', pbkdf2_password_hash)
1056
- end
1057
-
1058
- it "should set the PBKDF2 password hash when the 'salt' field is passed with a valid password hash" do
1059
- expect(Puppet::Util::Plist).to receive(:string_to_blob).with(provider.base64_decode_string(pbkdf2_salt_value))
1060
- expect(provider.class).to receive(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).and_return(pbkdf2_embedded_plist)
1061
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
1062
- expect(users_plist).to receive(:[]=).with('passwd', '********')
1063
- provider.set_salted_pbkdf2(users_plist, pbkdf2_embedded_bplist_hash, 'salt', pbkdf2_salt_value)
1064
- end
1065
-
1066
- it "should set the PBKDF2 password hash when the 'iterations' field is passed with a valid password hash" do
1067
- expect(provider.class).to receive(:convert_hash_to_binary).with(pbkdf2_embedded_bplist_hash).and_return(pbkdf2_embedded_plist)
1068
- expect(provider).to receive(:set_shadow_hash_data).with(users_plist, pbkdf2_embedded_plist)
1069
- expect(users_plist).to receive(:[]=).with('passwd', '********')
1070
- provider.set_salted_pbkdf2(users_plist, pbkdf2_embedded_bplist_hash, 'iterations', pbkdf2_iterations_value)
1071
- end
1072
- end
1073
-
1074
- describe '#write_and_import_shadow_hash_data' do
1075
- it 'should save the passed plist to a temporary file and import it' do
1076
- tmpfile = double('tempfile', :path => "/tmp/dsimport_#{username}", :flush => nil)
1077
- allow(Tempfile).to receive(:create).and_yield(tmpfile)
1078
- allow(provider).to receive(:dscl).with('.', 'delete', user_path, 'ShadowHashData')
1079
-
1080
- expect(tmpfile).to receive(:write).with(dsimport_contents)
1081
- expect(provider).to receive(:dsimport).with(tmpfile.path, '/Local/Default', 'M')
1082
- provider.write_and_import_shadow_hash_data(sha512_embedded_bplist)
1083
- end
1084
- end
1085
-
1086
- describe '#merge_attribute_with_dscl' do
1087
- it 'should raise an error if a dscl command raises an error' do
1088
- expect(provider).to receive(:dscl).with('.', '-merge', user_path, 'GeneratedUID', 'GUID').and_raise(Puppet::ExecutionFailure, 'boom')
1089
- expect { provider.merge_attribute_with_dscl('Users', username, 'GeneratedUID', 'GUID') }.to raise_error Puppet::Error, /Could not set the dscl GeneratedUID key with value: GUID/
1090
- end
1091
- end
1092
-
1093
- describe '#create_attribute_with_dscl' do
1094
- it 'should raise an error if a dscl command raises an error' do
1095
- expect(provider).to receive(:dscl).with('.', '-create', user_path, 'GeneratedUID', 'GUID').and_raise(Puppet::ExecutionFailure, 'boom')
1096
- expect { provider.create_attribute_with_dscl('Users', username, 'GeneratedUID', 'GUID') }.to raise_error Puppet::Error, /Could not set the dscl GeneratedUID key with value: GUID/
1097
- end
1098
- end
1099
-
1100
- describe '#get_users_plist' do
1101
- let(:test_hash) do
1102
- {
1103
- 'user' => 'puppet',
1104
- 'shell' => '/bin/bash'
1105
- }
1106
- end
1107
-
1108
- it 'should convert a plist to a valid Ruby hash' do
1109
- expect(Puppet::Util::Plist).to receive(:read_plist_file).with("#{users_plist_dir}/#{username}.plist").and_return(test_hash)
1110
- expect(provider.get_users_plist(username)).to eq(test_hash, )
1111
- end
1112
- end
1113
-
1114
- describe '#get_shadow_hash_data' do
1115
- let(:shadow_hash) do
1116
- {
1117
- 'ShadowHashData' => ['test']
1118
- }
1119
- end
1120
-
1121
- let(:no_shadow_hash) do
1122
- {
1123
- 'no' => 'Shadow Hash Data'
1124
- }
1125
- end
1126
-
1127
- it 'should return false if the passed users_plist does NOT have a ShadowHashData key' do
1128
- expect(provider.get_shadow_hash_data(no_shadow_hash)).to eq(false)
1129
- end
1130
-
1131
- it 'should call convert_binary_to_hash() with the string ' +
1132
- 'located in the first element of the array of the ShadowHashData key if the ' +
1133
- 'passed users_plist contains a ShadowHashData key' do
1134
- expect(provider.class).to receive(:convert_binary_to_hash).with('test').and_return('returnvalue')
1135
- expect(provider.get_shadow_hash_data(shadow_hash)).to eq('returnvalue')
1136
- end
1137
- end
1138
-
1139
- describe 'self#get_os_version' do
1140
- before :each do
1141
- # Ensure we don't have a value cached from another spec
1142
- provider.class.instance_variable_set(:@os_version, nil) if provider.class.instance_variable_defined? :@os_version
1143
- end
1144
-
1145
- it 'should call Puppet.runtime[:facter].value(os.macosx.version.major) ONLY ONCE no matter how ' +
1146
- 'many times get_os_version() is called' do
1147
- expect(Facter).to receive(:value).with('os.macosx.version.major').once.and_return('10.8')
1148
- expect(provider.class.get_os_version).to eq('10.8')
1149
- expect(provider.class.get_os_version).to eq('10.8')
1150
- expect(provider.class.get_os_version).to eq('10.8')
1151
- expect(provider.class.get_os_version).to eq('10.8')
1152
- end
1153
- end
1154
-
1155
- describe '#base64_decode_string' do
1156
- it 'should return a Base64-decoded string appropriate for use in a user\'s plist' do
1157
- expect(provider.base64_decode_string(sha512_password_hash)).to eq(sha512_pw_string)
1158
- end
1159
- end
1160
-
1161
- describe '(#12833) 10.6-style users on 10.8' do
1162
- # The below represents output of 'dscl -plist . readall /Users'
1163
- # converted to a Ruby hash if only one user were installed on the system.
1164
- # This lets us check the behavior of all the methods necessary to return
1165
- # a user's groups property by controlling the data provided by dscl. The
1166
- # differentiating aspect about this plist is that it's from a 10.6-style
1167
- # user. There's an edge case whereby a user that was created in 10.6, but
1168
- # who hasn't attempted to login to the system until after it's been
1169
- # upgraded to 10.8, will experience errors due to assumptions in Puppet
1170
- # based solely on operatingsystem.
1171
- let(:all_users_hash) do
1172
- [
1173
- {
1174
- "dsAttrTypeNative:_writers_UserCertificate" => ["testuser"],
1175
- "dsAttrTypeStandard:RealName" => ["testuser"],
1176
- "dsAttrTypeStandard:NFSHomeDirectory" => ["/Users/testuser"],
1177
- "dsAttrTypeNative:_writers_realname" => ["testuser"],
1178
- "dsAttrTypeNative:_writers_picture" => ["testuser"],
1179
- "dsAttrTypeStandard:AppleMetaNodeLocation" => ["/Local/Default"],
1180
- "dsAttrTypeStandard:PrimaryGroupID" => ["20"],
1181
- "dsAttrTypeNative:_writers_LinkedIdentity" => ["testuser"],
1182
- "dsAttrTypeStandard:UserShell" => ["/bin/bash"],
1183
- "dsAttrTypeStandard:UniqueID" => ["1234"],
1184
- "dsAttrTypeStandard:RecordName" => ["testuser"],
1185
- "dsAttrTypeStandard:Password" => ["********"],
1186
- "dsAttrTypeNative:_writers_jpegphoto" => ["testuser"],
1187
- "dsAttrTypeNative:_writers_hint" => ["testuser"],
1188
- "dsAttrTypeNative:_writers_passwd" => ["testuser"],
1189
- "dsAttrTypeStandard:RecordType" => ["dsRecTypeStandard:Users"],
1190
- "dsAttrTypeStandard:AuthenticationAuthority" => [
1191
- ";ShadowHash;",
1192
- ";Kerberosv5;;testuser@LKDC:SHA1.48AC4BCFEFE9 D66847B5E7D813BC4B12C5513A07;LKDC:SHA1.48AC4BCFEFE9D66847B5E7D813BC4B12C5513A07;"
1193
- ],
1194
- "dsAttrTypeStandard:GeneratedUID" => ["D1AC2ECC-F177-4B45-8B18-59CF002F97FF"]
1195
- }
1196
- ]
1197
- end
1198
-
1199
- let(:username) { 'testuser' }
1200
- let(:user_path) { "/Users/#{username}" }
1201
- let(:resource) do
1202
- Puppet::Type.type(:user).new(
1203
- :name => username,
1204
- :provider => :directoryservice
1205
- )
1206
- end
1207
- let(:provider) { resource.provider }
1208
-
1209
- # The below represents the result of get_users_plist on the testuser
1210
- # account from the 'all_users_hash' helper method. The get_users_plist
1211
- # method calls the `plutil` binary to do its work, so we want to stub
1212
- # that out
1213
- let(:user_plist_hash) do
1214
- {
1215
- 'realname' => ['testuser'],
1216
- 'authentication_authority' => [';ShadowHash;', ';Kerberosv5;;testuser@LKDC:SHA1.48AC4BCFEFE9D66847B5E7D813BC4B12C5513A07;LKDC:SHA1.48AC4BCFEFE9D66847B5E7D813BC4B12C5513A07;'],
1217
- 'home' => ['/Users/testuser'],
1218
- '_writers_realname' => ['testuser'],
1219
- 'passwd' => '********',
1220
- '_writers_LinkedIdentity' => ['testuser'],
1221
- '_writers_picture' => ['testuser'],
1222
- 'gid' => ['20'],
1223
- '_writers_passwd' => ['testuser'],
1224
- '_writers_hint' => ['testuser'],
1225
- '_writers_UserCertificate' => ['testuser'],
1226
- '_writers_jpegphoto' => ['testuser'],
1227
- 'shell' => ['/bin/bash'],
1228
- 'uid' => ['1234'],
1229
- 'generateduid' => ['D1AC2ECC-F177-4B45-8B18-59CF002F97FF'],
1230
- 'name' => ['testuser']
1231
- }
1232
- end
1233
-
1234
- before :each do
1235
- allow(provider.class).to receive(:get_all_users).and_return(all_users_hash)
1236
- allow(provider.class).to receive(:get_list_of_groups).and_return(group_plist_hash_guid)
1237
- allow(provider).to receive(:merge_attribute_with_dscl).with('Users', username, 'AuthenticationAuthority', any_args)
1238
- provider.class.prefetch({})
1239
- end
1240
-
1241
- it 'should not raise an error if the password=() method is called on ' +
1242
- 'a user without a ShadowHashData key in their user\'s plist on OS X ' +
1243
- 'version 10.8' do
1244
- resource[:salt] = pbkdf2_salt_value
1245
- resource[:iterations] = pbkdf2_iterations_value
1246
- resource[:password] = pbkdf2_password_hash
1247
- allow(provider.class).to receive(:get_os_version).and_return('10.8')
1248
- allow(provider).to receive(:sleep)
1249
- allow(provider).to receive(:flush_dscl_cache)
1250
-
1251
- expect(provider).to receive(:get_users_plist).with('testuser').and_return(user_plist_hash)
1252
- expect(provider).to receive(:set_salted_pbkdf2).with(user_plist_hash, false, 'entropy', pbkdf2_password_hash)
1253
- provider.password = resource[:password]
1254
- end
1255
- end
1256
- end