puppet 8.4.0 → 8.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1871) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -1
  3. data/Gemfile.lock +73 -56
  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 +14 -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.rb +15 -15
  399. data/lib/puppet/pops/visitor.rb +1 -1
  400. data/lib/puppet/property/ensure.rb +0 -1
  401. data/lib/puppet/property/keyvalue.rb +5 -6
  402. data/lib/puppet/property/list.rb +1 -1
  403. data/lib/puppet/property.rb +8 -10
  404. data/lib/puppet/provider/aix_object.rb +9 -9
  405. data/lib/puppet/provider/exec/posix.rb +1 -1
  406. data/lib/puppet/provider/exec.rb +3 -3
  407. data/lib/puppet/provider/file/windows.rb +3 -3
  408. data/lib/puppet/provider/group/groupadd.rb +2 -2
  409. data/lib/puppet/provider/group/pw.rb +0 -1
  410. data/lib/puppet/provider/group/windows_adsi.rb +3 -3
  411. data/lib/puppet/provider/ldap.rb +2 -3
  412. data/lib/puppet/provider/nameservice/directoryservice.rb +11 -11
  413. data/lib/puppet/provider/nameservice/pw.rb +0 -1
  414. data/lib/puppet/provider/nameservice.rb +9 -10
  415. data/lib/puppet/provider/package/aix.rb +4 -4
  416. data/lib/puppet/provider/package/appdmg.rb +3 -3
  417. data/lib/puppet/provider/package/apple.rb +1 -1
  418. data/lib/puppet/provider/package/apt.rb +7 -3
  419. data/lib/puppet/provider/package/aptrpm.rb +6 -4
  420. data/lib/puppet/provider/package/blastwave.rb +3 -3
  421. data/lib/puppet/provider/package/dnf.rb +5 -0
  422. data/lib/puppet/provider/package/dnfmodule.rb +1 -1
  423. data/lib/puppet/provider/package/dpkg.rb +8 -8
  424. data/lib/puppet/provider/package/gem.rb +6 -7
  425. data/lib/puppet/provider/package/hpux.rb +2 -2
  426. data/lib/puppet/provider/package/nim.rb +4 -4
  427. data/lib/puppet/provider/package/openbsd.rb +8 -8
  428. data/lib/puppet/provider/package/opkg.rb +6 -6
  429. data/lib/puppet/provider/package/pacman.rb +2 -2
  430. data/lib/puppet/provider/package/pip.rb +8 -8
  431. data/lib/puppet/provider/package/pkg.rb +19 -19
  432. data/lib/puppet/provider/package/pkgdmg.rb +5 -5
  433. data/lib/puppet/provider/package/pkgin.rb +6 -6
  434. data/lib/puppet/provider/package/pkgng.rb +1 -1
  435. data/lib/puppet/provider/package/pkgutil.rb +11 -11
  436. data/lib/puppet/provider/package/portage.rb +3 -3
  437. data/lib/puppet/provider/package/portupgrade.rb +5 -7
  438. data/lib/puppet/provider/package/puppet_gem.rb +2 -2
  439. data/lib/puppet/provider/package/puppetserver_gem.rb +4 -4
  440. data/lib/puppet/provider/package/rpm.rb +9 -9
  441. data/lib/puppet/provider/package/sun.rb +2 -2
  442. data/lib/puppet/provider/package/tdnf.rb +6 -1
  443. data/lib/puppet/provider/package/windows/exe_package.rb +2 -2
  444. data/lib/puppet/provider/package/windows/package.rb +3 -3
  445. data/lib/puppet/provider/package/windows.rb +1 -1
  446. data/lib/puppet/provider/package/yum.rb +25 -14
  447. data/lib/puppet/provider/package/zypper.rb +7 -7
  448. data/lib/puppet/provider/package.rb +1 -1
  449. data/lib/puppet/provider/package_targetable.rb +2 -2
  450. data/lib/puppet/provider/parsedfile.rb +5 -7
  451. data/lib/puppet/provider/service/base.rb +0 -1
  452. data/lib/puppet/provider/service/daemontools.rb +10 -10
  453. data/lib/puppet/provider/service/debian.rb +2 -2
  454. data/lib/puppet/provider/service/freebsd.rb +15 -17
  455. data/lib/puppet/provider/service/init.rb +2 -3
  456. data/lib/puppet/provider/service/launchd.rb +3 -3
  457. data/lib/puppet/provider/service/openrc.rb +1 -1
  458. data/lib/puppet/provider/service/redhat.rb +2 -1
  459. data/lib/puppet/provider/service/runit.rb +2 -3
  460. data/lib/puppet/provider/service/service.rb +0 -1
  461. data/lib/puppet/provider/service/smf.rb +4 -4
  462. data/lib/puppet/provider/service/src.rb +3 -4
  463. data/lib/puppet/provider/service/systemd.rb +3 -2
  464. data/lib/puppet/provider/service/upstart.rb +6 -8
  465. data/lib/puppet/provider/service/windows.rb +15 -15
  466. data/lib/puppet/provider/user/aix.rb +14 -14
  467. data/lib/puppet/provider/user/directoryservice.rb +8 -8
  468. data/lib/puppet/provider/user/hpux.rb +9 -9
  469. data/lib/puppet/provider/user/ldap.rb +4 -4
  470. data/lib/puppet/provider/user/openbsd.rb +1 -1
  471. data/lib/puppet/provider/user/pw.rb +1 -2
  472. data/lib/puppet/provider/user/user_role_add.rb +9 -9
  473. data/lib/puppet/provider/user/useradd.rb +4 -4
  474. data/lib/puppet/provider/user/windows_adsi.rb +6 -6
  475. data/lib/puppet/provider.rb +2 -2
  476. data/lib/puppet/reference/configuration.rb +15 -14
  477. data/lib/puppet/reference/indirection.rb +14 -14
  478. data/lib/puppet/reference/providers.rb +2 -2
  479. data/lib/puppet/reference/type.rb +1 -1
  480. data/lib/puppet/relationship.rb +2 -2
  481. data/lib/puppet/reports/log.rb +0 -1
  482. data/lib/puppet/reports/store.rb +2 -2
  483. data/lib/puppet/resource/catalog.rb +26 -30
  484. data/lib/puppet/resource/status.rb +4 -3
  485. data/lib/puppet/resource/type.rb +10 -11
  486. data/lib/puppet/resource/type_collection.rb +5 -5
  487. data/lib/puppet/resource.rb +35 -30
  488. data/lib/puppet/scheduler/scheduler.rb +1 -1
  489. data/lib/puppet/scheduler.rb +1 -1
  490. data/lib/puppet/settings/base_setting.rb +2 -2
  491. data/lib/puppet/settings/boolean_setting.rb +1 -1
  492. data/lib/puppet/settings/config_file.rb +2 -2
  493. data/lib/puppet/settings/duration_setting.rb +2 -3
  494. data/lib/puppet/settings/environment_conf.rb +6 -4
  495. data/lib/puppet/settings/errors.rb +3 -3
  496. data/lib/puppet/settings/integer_setting.rb +1 -1
  497. data/lib/puppet/settings/priority_setting.rb +3 -4
  498. data/lib/puppet/settings/server_list_setting.rb +4 -4
  499. data/lib/puppet/settings/ttl_setting.rb +3 -4
  500. data/lib/puppet/settings/value_translator.rb +1 -1
  501. data/lib/puppet/settings.rb +39 -36
  502. data/lib/puppet/ssl/base.rb +2 -2
  503. data/lib/puppet/ssl/certificate.rb +2 -2
  504. data/lib/puppet/ssl/certificate_request.rb +10 -10
  505. data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
  506. data/lib/puppet/ssl/oids.rb +4 -4
  507. data/lib/puppet/ssl/ssl_provider.rb +8 -6
  508. data/lib/puppet/ssl/state_machine.rb +11 -11
  509. data/lib/puppet/syntax_checkers/base64.rb +1 -1
  510. data/lib/puppet/syntax_checkers/epp.rb +2 -2
  511. data/lib/puppet/syntax_checkers/json.rb +2 -2
  512. data/lib/puppet/syntax_checkers/pp.rb +2 -2
  513. data/lib/puppet/syntax_checkers.rb +1 -1
  514. data/lib/puppet/test/test_helper.rb +10 -9
  515. data/lib/puppet/transaction/additional_resource_generator.rb +5 -5
  516. data/lib/puppet/transaction/event_manager.rb +2 -3
  517. data/lib/puppet/transaction/persistence.rb +1 -1
  518. data/lib/puppet/transaction/report.rb +14 -16
  519. data/lib/puppet/transaction/resource_harness.rb +2 -2
  520. data/lib/puppet/transaction.rb +11 -11
  521. data/lib/puppet/trusted_external.rb +1 -1
  522. data/lib/puppet/type/exec.rb +7 -11
  523. data/lib/puppet/type/file/checksum_value.rb +2 -2
  524. data/lib/puppet/type/file/content.rb +5 -5
  525. data/lib/puppet/type/file/ctime.rb +0 -1
  526. data/lib/puppet/type/file/data_sync.rb +2 -2
  527. data/lib/puppet/type/file/ensure.rb +6 -9
  528. data/lib/puppet/type/file/owner.rb +0 -1
  529. data/lib/puppet/type/file/selcontext.rb +0 -1
  530. data/lib/puppet/type/file/source.rb +2 -2
  531. data/lib/puppet/type/file/target.rb +2 -3
  532. data/lib/puppet/type/file/type.rb +0 -1
  533. data/lib/puppet/type/file.rb +22 -26
  534. data/lib/puppet/type/group.rb +2 -2
  535. data/lib/puppet/type/package.rb +8 -8
  536. data/lib/puppet/type/resources.rb +8 -8
  537. data/lib/puppet/type/schedule.rb +4 -4
  538. data/lib/puppet/type/service.rb +4 -4
  539. data/lib/puppet/type/tidy.rb +7 -7
  540. data/lib/puppet/type/user.rb +20 -19
  541. data/lib/puppet/type.rb +44 -49
  542. data/lib/puppet/util/at_fork/solaris.rb +4 -4
  543. data/lib/puppet/util/autoload.rb +2 -2
  544. data/lib/puppet/util/backups.rb +3 -3
  545. data/lib/puppet/util/checksums.rb +1 -1
  546. data/lib/puppet/util/classgen.rb +2 -3
  547. data/lib/puppet/util/colors.rb +33 -33
  548. data/lib/puppet/util/command_line/puppet_option_parser.rb +5 -4
  549. data/lib/puppet/util/command_line/trollop.rb +38 -34
  550. data/lib/puppet/util/command_line.rb +1 -1
  551. data/lib/puppet/util/diff.rb +4 -4
  552. data/lib/puppet/util/docs.rb +3 -3
  553. data/lib/puppet/util/errors.rb +2 -2
  554. data/lib/puppet/util/execution.rb +12 -11
  555. data/lib/puppet/util/feature.rb +6 -8
  556. data/lib/puppet/util/fileparsing.rb +9 -12
  557. data/lib/puppet/util/filetype.rb +3 -3
  558. data/lib/puppet/util/inifile.rb +1 -1
  559. data/lib/puppet/util/ldap/manager.rb +6 -7
  560. data/lib/puppet/util/libuser.rb +1 -1
  561. data/lib/puppet/util/log/destination.rb +0 -1
  562. data/lib/puppet/util/log/destinations.rb +2 -4
  563. data/lib/puppet/util/log.rb +7 -6
  564. data/lib/puppet/util/logging.rb +6 -7
  565. data/lib/puppet/util/metaid.rb +0 -1
  566. data/lib/puppet/util/metric.rb +3 -3
  567. data/lib/puppet/util/monkey_patches.rb +1 -1
  568. data/lib/puppet/util/multi_match.rb +4 -4
  569. data/lib/puppet/util/network_device/base.rb +1 -1
  570. data/lib/puppet/util/network_device/config.rb +2 -2
  571. data/lib/puppet/util/package/version/pip.rb +2 -2
  572. data/lib/puppet/util/package/version/range/lt.rb +1 -1
  573. data/lib/puppet/util/package/version/range.rb +5 -5
  574. data/lib/puppet/util/package.rb +1 -1
  575. data/lib/puppet/util/pidlock.rb +1 -1
  576. data/lib/puppet/util/plist.rb +6 -5
  577. data/lib/puppet/util/posix.rb +3 -4
  578. data/lib/puppet/util/profiler/aggregate.rb +2 -3
  579. data/lib/puppet/util/profiler/logging.rb +1 -1
  580. data/lib/puppet/util/profiler/wall_clock.rb +2 -3
  581. data/lib/puppet/util/provider_features.rb +1 -2
  582. data/lib/puppet/util/rdoc/code_objects.rb +11 -10
  583. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +37 -34
  584. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +17 -15
  585. data/lib/puppet/util/rdoc.rb +8 -8
  586. data/lib/puppet/util/reference.rb +2 -2
  587. data/lib/puppet/util/resource_template.rb +0 -1
  588. data/lib/puppet/util/retry_action.rb +2 -2
  589. data/lib/puppet/util/rpm_compare.rb +7 -7
  590. data/lib/puppet/util/rubygems.rb +0 -1
  591. data/lib/puppet/util/run_mode.rb +3 -3
  592. data/lib/puppet/util/selinux.rb +3 -3
  593. data/lib/puppet/util/storage.rb +1 -1
  594. data/lib/puppet/util/suidmanager.rb +13 -15
  595. data/lib/puppet/util/symbolic_file_mode.rb +8 -7
  596. data/lib/puppet/util/tagging.rb +2 -2
  597. data/lib/puppet/util/user_attr.rb +1 -1
  598. data/lib/puppet/util/watched_file.rb +2 -1
  599. data/lib/puppet/util/watcher/periodic_watcher.rb +0 -1
  600. data/lib/puppet/util/windows/access_control_list.rb +5 -4
  601. data/lib/puppet/util/windows/adsi.rb +14 -14
  602. data/lib/puppet/util/windows/com.rb +2 -2
  603. data/lib/puppet/util/windows/daemon.rb +8 -8
  604. data/lib/puppet/util/windows/eventlog.rb +4 -4
  605. data/lib/puppet/util/windows/file.rb +16 -12
  606. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  607. data/lib/puppet/util/windows/principal.rb +8 -6
  608. data/lib/puppet/util/windows/process.rb +28 -22
  609. data/lib/puppet/util/windows/registry.rb +47 -14
  610. data/lib/puppet/util/windows/root_certs.rb +1 -1
  611. data/lib/puppet/util/windows/security.rb +20 -18
  612. data/lib/puppet/util/windows/service.rb +4 -4
  613. data/lib/puppet/util/windows/sid.rb +8 -7
  614. data/lib/puppet/util/windows/user.rb +4 -2
  615. data/lib/puppet/util/windows.rb +1 -1
  616. data/lib/puppet/util.rb +14 -16
  617. data/lib/puppet/version.rb +1 -1
  618. data/lib/puppet/x509/cert_provider.rb +12 -12
  619. data/lib/puppet.rb +8 -7
  620. data/locales/puppet.pot +2008 -2004
  621. data/man/man5/puppet.conf.5 +2 -2
  622. data/man/man8/puppet-agent.8 +1 -1
  623. data/man/man8/puppet-apply.8 +1 -1
  624. data/man/man8/puppet-catalog.8 +1 -1
  625. data/man/man8/puppet-config.8 +1 -1
  626. data/man/man8/puppet-describe.8 +1 -1
  627. data/man/man8/puppet-device.8 +1 -1
  628. data/man/man8/puppet-doc.8 +1 -1
  629. data/man/man8/puppet-epp.8 +1 -1
  630. data/man/man8/puppet-facts.8 +1 -1
  631. data/man/man8/puppet-filebucket.8 +1 -1
  632. data/man/man8/puppet-generate.8 +1 -1
  633. data/man/man8/puppet-help.8 +1 -1
  634. data/man/man8/puppet-lookup.8 +1 -1
  635. data/man/man8/puppet-module.8 +1 -1
  636. data/man/man8/puppet-node.8 +1 -1
  637. data/man/man8/puppet-parser.8 +1 -1
  638. data/man/man8/puppet-plugin.8 +1 -1
  639. data/man/man8/puppet-report.8 +1 -1
  640. data/man/man8/puppet-resource.8 +1 -1
  641. data/man/man8/puppet-script.8 +1 -1
  642. data/man/man8/puppet-ssl.8 +1 -1
  643. data/man/man8/puppet.8 +2 -2
  644. data/tasks/generate_cert_fixtures.rake +1 -0
  645. metadata +3 -2455
  646. data/spec/fixtures/faulty_face/puppet/face/syntax.rb +0 -8
  647. data/spec/fixtures/hiera.yaml +0 -9
  648. data/spec/fixtures/integration/application/agent/cached_deferred_catalog.json +0 -92
  649. data/spec/fixtures/integration/application/agent/lib/facter/agent_spec_role.rb +0 -3
  650. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +0 -2
  651. data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +0 -25
  652. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/README +0 -3
  653. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/manifests/init.pp +0 -17
  654. data/spec/fixtures/integration/application/module/environments/direnv/modules/nginx/metadata.json +0 -20
  655. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Gemfile +0 -4
  656. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/Rakefile +0 -3
  657. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/lib/puppet/functions/l10n.rb +0 -8
  658. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/config.yaml +0 -25
  659. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/ja/puppet-l10n.po +0 -19
  660. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/locales/puppet-l10n.pot +0 -20
  661. data/spec/fixtures/integration/l10n/envs/prod/modules/demo/metadata.json +0 -8
  662. data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +0 -2
  663. data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +0 -6
  664. data/spec/fixtures/integration/node/environment/sitedir/03_empty.pp +0 -0
  665. data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +0 -2
  666. data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +0 -2
  667. data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +0 -6
  668. data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +0 -1
  669. data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +0 -2
  670. data/spec/fixtures/java.tgz +0 -0
  671. data/spec/fixtures/manifests/site.pp +0 -0
  672. data/spec/fixtures/module.tar.gz +0 -0
  673. data/spec/fixtures/releases/jamtur01-apache/Modulefile +0 -2
  674. data/spec/fixtures/releases/jamtur01-apache/files/httpd +0 -24
  675. data/spec/fixtures/releases/jamtur01-apache/files/test.vhost +0 -18
  676. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +0 -21
  677. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/type/a2mod.rb +0 -12
  678. data/spec/fixtures/releases/jamtur01-apache/manifests/dev.pp +0 -5
  679. data/spec/fixtures/releases/jamtur01-apache/manifests/init.pp +0 -34
  680. data/spec/fixtures/releases/jamtur01-apache/manifests/params.pp +0 -17
  681. data/spec/fixtures/releases/jamtur01-apache/manifests/php.pp +0 -5
  682. data/spec/fixtures/releases/jamtur01-apache/manifests/ssl.pp +0 -15
  683. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +0 -15
  684. data/spec/fixtures/releases/jamtur01-apache/metadata.json +0 -1
  685. data/spec/fixtures/releases/jamtur01-apache/templates/vhost-default.conf.erb +0 -20
  686. data/spec/fixtures/releases/jamtur01-apache/tests/apache.pp +0 -1
  687. data/spec/fixtures/releases/jamtur01-apache/tests/dev.pp +0 -1
  688. data/spec/fixtures/releases/jamtur01-apache/tests/init.pp +0 -1
  689. data/spec/fixtures/releases/jamtur01-apache/tests/php.pp +0 -1
  690. data/spec/fixtures/releases/jamtur01-apache/tests/ssl.pp +0 -1
  691. data/spec/fixtures/releases/jamtur01-apache/tests/vhost.pp +0 -2
  692. data/spec/fixtures/ssl/127.0.0.1-key.pem +0 -117
  693. data/spec/fixtures/ssl/127.0.0.1.pem +0 -70
  694. data/spec/fixtures/ssl/bad-basic-constraints.pem +0 -81
  695. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +0 -81
  696. data/spec/fixtures/ssl/ca.pem +0 -81
  697. data/spec/fixtures/ssl/crl.pem +0 -40
  698. data/spec/fixtures/ssl/ec-key-openssl.pem +0 -8
  699. data/spec/fixtures/ssl/ec-key-pk8.pem +0 -5
  700. data/spec/fixtures/ssl/ec-key.pem +0 -18
  701. data/spec/fixtures/ssl/ec.pem +0 -50
  702. data/spec/fixtures/ssl/encrypted-ec-key.pem +0 -21
  703. data/spec/fixtures/ssl/encrypted-key.pem +0 -120
  704. data/spec/fixtures/ssl/intermediate-agent-crl.pem +0 -40
  705. data/spec/fixtures/ssl/intermediate-agent.pem +0 -81
  706. data/spec/fixtures/ssl/intermediate-crl.pem +0 -46
  707. data/spec/fixtures/ssl/intermediate.pem +0 -81
  708. data/spec/fixtures/ssl/netlock-arany-utf8.pem +0 -23
  709. data/spec/fixtures/ssl/oid-key.pem +0 -117
  710. data/spec/fixtures/ssl/oid.pem +0 -70
  711. data/spec/fixtures/ssl/pluto-key.pem +0 -117
  712. data/spec/fixtures/ssl/pluto.pem +0 -67
  713. data/spec/fixtures/ssl/renewed.pem +0 -67
  714. data/spec/fixtures/ssl/request-key.pem +0 -117
  715. data/spec/fixtures/ssl/request.pem +0 -62
  716. data/spec/fixtures/ssl/revoked-key.pem +0 -117
  717. data/spec/fixtures/ssl/revoked.pem +0 -67
  718. data/spec/fixtures/ssl/signed-key.pem +0 -117
  719. data/spec/fixtures/ssl/signed.pem +0 -67
  720. data/spec/fixtures/ssl/tampered-cert.pem +0 -67
  721. data/spec/fixtures/ssl/tampered-csr.pem +0 -62
  722. data/spec/fixtures/ssl/trusted_oid_mapping.yaml +0 -5
  723. data/spec/fixtures/ssl/unknown-127.0.0.1-key.pem +0 -117
  724. data/spec/fixtures/ssl/unknown-127.0.0.1.pem +0 -70
  725. data/spec/fixtures/ssl/unknown-ca-key.pem +0 -117
  726. data/spec/fixtures/ssl/unknown-ca.pem +0 -81
  727. data/spec/fixtures/stdlib.tgz +0 -0
  728. data/spec/fixtures/unit/application/environments/production/data/common.yaml +0 -24
  729. data/spec/fixtures/unit/application/environments/production/environment.conf +0 -1
  730. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +0 -1
  731. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +0 -1
  732. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/environment/data.pp +0 -10
  733. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +0 -1
  734. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +0 -3
  735. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +0 -2
  736. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +0 -5
  737. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +0 -5
  738. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +0 -3
  739. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +0 -2
  740. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +0 -5
  741. data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +0 -5
  742. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +0 -2
  743. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +0 -2
  744. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +0 -1
  745. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +0 -2
  746. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +0 -5
  747. data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +0 -9
  748. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +0 -3
  749. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +0 -2
  750. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +0 -3
  751. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +0 -2
  752. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/third_utf8.json +0 -3
  753. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/utf8.yaml +0 -3
  754. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +0 -2
  755. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +0 -2
  756. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +0 -22
  757. data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +0 -5
  758. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +0 -48
  759. data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +0 -2
  760. data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +0 -1
  761. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +0 -30
  762. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +0 -13
  763. data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +0 -9
  764. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +0 -4
  765. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +0 -4
  766. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +0 -2
  767. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +0 -7
  768. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +0 -1
  769. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +0 -3
  770. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +0 -2
  771. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +0 -3
  772. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server1.yaml +0 -1
  773. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/server2.yaml +0 -1
  774. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +0 -2
  775. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +0 -2
  776. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +0 -20
  777. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +0 -5
  778. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +0 -9
  779. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +0 -4
  780. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +0 -4
  781. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +0 -2
  782. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +0 -7
  783. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +0 -1
  784. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +0 -6
  785. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +0 -5
  786. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +0 -2
  787. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +0 -9
  788. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +0 -4
  789. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +0 -5
  790. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +0 -3
  791. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +0 -9
  792. data/spec/fixtures/unit/data_providers/environments/production/environment.conf +0 -2
  793. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +0 -9
  794. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -9
  795. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +0 -10
  796. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +0 -9
  797. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/functions/data.pp +0 -6
  798. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/manifests/init.pp +0 -9
  799. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +0 -9
  800. data/spec/fixtures/unit/forge/bacula-releases.json +0 -128
  801. data/spec/fixtures/unit/forge/bacula.json +0 -76
  802. data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
  803. data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +0 -22
  804. data/spec/fixtures/unit/functions/lookup/data/common.yaml +0 -19
  805. data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +0 -18
  806. data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +0 -7
  807. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +0 -19
  808. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/environment.conf +0 -2
  809. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/lib/puppet/functions/environment/data.rb +0 -13
  810. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -9
  811. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/manifests/init.pp +0 -8
  812. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +0 -9
  813. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -7
  814. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/manifests/init.pp +0 -2
  815. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +0 -9
  816. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -9
  817. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/manifests/init.pp +0 -2
  818. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +0 -9
  819. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/data/empty.json +0 -0
  820. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/hiera.yaml +0 -5
  821. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/manifests/init.pp +0 -2
  822. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_json/metadata.json +0 -9
  823. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/data/empty_key.json +0 -1
  824. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/hiera.yaml +0 -5
  825. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/manifests/init.pp +0 -2
  826. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_json/metadata.json +0 -9
  827. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -1
  828. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/hiera.yaml +0 -5
  829. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -2
  830. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_key_yaml/metadata.json +0 -9
  831. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/data/empty.yaml +0 -2
  832. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/hiera.yaml +0 -5
  833. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/manifests/init.pp +0 -2
  834. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/empty_yaml/metadata.json +0 -9
  835. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/data/first.json +0 -4
  836. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/hiera.yaml +0 -8
  837. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/manifests/init.pp +0 -5
  838. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/hieraprovider/metadata.json +0 -9
  839. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -9
  840. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/manifests/init.pp +0 -3
  841. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/meta/metadata.json +0 -9
  842. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/no_provider/manifests/init.pp +0 -2
  843. data/spec/fixtures/unit/indirector/data_binding/hiera/global.yaml +0 -10
  844. data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +0 -1
  845. data/spec/fixtures/unit/indirector/hiera/global.yaml +0 -10
  846. data/spec/fixtures/unit/indirector/hiera/invalid.yaml +0 -1
  847. data/spec/fixtures/unit/module/trailing-comma.json +0 -24
  848. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +0 -3
  849. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +0 -3
  850. data/spec/fixtures/unit/parser/lexer/aliastest.pp +0 -16
  851. data/spec/fixtures/unit/parser/lexer/append.pp +0 -11
  852. data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +0 -14
  853. data/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp +0 -8
  854. data/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp +0 -3
  855. data/spec/fixtures/unit/parser/lexer/casestatement.pp +0 -65
  856. data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +0 -15
  857. data/spec/fixtures/unit/parser/lexer/classincludes.pp +0 -17
  858. data/spec/fixtures/unit/parser/lexer/classpathtest.pp +0 -11
  859. data/spec/fixtures/unit/parser/lexer/collection.pp +0 -10
  860. data/spec/fixtures/unit/parser/lexer/collection_override.pp +0 -8
  861. data/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp +0 -20
  862. data/spec/fixtures/unit/parser/lexer/componentmetaparams.pp +0 -11
  863. data/spec/fixtures/unit/parser/lexer/componentrequire.pp +0 -8
  864. data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +0 -23
  865. data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +0 -17
  866. data/spec/fixtures/unit/parser/lexer/emptyclass.pp +0 -9
  867. data/spec/fixtures/unit/parser/lexer/emptyexec.pp +0 -3
  868. data/spec/fixtures/unit/parser/lexer/emptyifelse.pp +0 -9
  869. data/spec/fixtures/unit/parser/lexer/falsevalues.pp +0 -3
  870. data/spec/fixtures/unit/parser/lexer/filecreate.pp +0 -11
  871. data/spec/fixtures/unit/parser/lexer/fqdefinition.pp +0 -5
  872. data/spec/fixtures/unit/parser/lexer/fqparents.pp +0 -11
  873. data/spec/fixtures/unit/parser/lexer/funccomma.pp +0 -5
  874. data/spec/fixtures/unit/parser/lexer/hash.pp +0 -33
  875. data/spec/fixtures/unit/parser/lexer/ifexpression.pp +0 -12
  876. data/spec/fixtures/unit/parser/lexer/implicititeration.pp +0 -15
  877. data/spec/fixtures/unit/parser/lexer/multilinecomments.pp +0 -10
  878. data/spec/fixtures/unit/parser/lexer/multipleclass.pp +0 -9
  879. data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +0 -7
  880. data/spec/fixtures/unit/parser/lexer/multisubs.pp +0 -13
  881. data/spec/fixtures/unit/parser/lexer/namevartest.pp +0 -9
  882. data/spec/fixtures/unit/parser/lexer/scopetest.pp +0 -13
  883. data/spec/fixtures/unit/parser/lexer/selectorvalues.pp +0 -49
  884. data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +0 -5
  885. data/spec/fixtures/unit/parser/lexer/simpleselector.pp +0 -38
  886. data/spec/fixtures/unit/parser/lexer/singleary.pp +0 -19
  887. data/spec/fixtures/unit/parser/lexer/singlequote.pp +0 -11
  888. data/spec/fixtures/unit/parser/lexer/singleselector.pp +0 -22
  889. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -11
  890. data/spec/fixtures/unit/parser/lexer/tag.pp +0 -9
  891. data/spec/fixtures/unit/parser/lexer/tagged.pp +0 -35
  892. data/spec/fixtures/unit/parser/lexer/virtualresources.pp +0 -14
  893. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +0 -10
  894. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +0 -10
  895. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +0 -20
  896. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +0 -18
  897. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +0 -5
  898. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +0 -6
  899. data/spec/fixtures/unit/pops/binder/config/binder_config/nolayer/binder_config.yaml +0 -6
  900. data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +0 -9
  901. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +0 -3
  902. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/callee.rb +0 -5
  903. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +0 -6
  904. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/type/usee_type.rb +0 -5
  905. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +0 -8
  906. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +0 -1
  907. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +0 -5
  908. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +0 -5
  909. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +0 -5
  910. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +0 -5
  911. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller.rb +0 -5
  912. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +0 -5
  913. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +0 -5
  914. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +0 -5
  915. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +0 -5
  916. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +0 -87
  917. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/metadata.json +0 -10
  918. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +0 -1
  919. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +0 -1
  920. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load.rb +0 -11
  921. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
  922. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
  923. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
  924. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
  925. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee.rb +0 -8
  926. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/callee_ws.rb +0 -8
  927. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/func_with_syntax_error.rb +0 -9
  928. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
  929. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/metadata.json +0 -9
  930. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcalled.pp +0 -3
  931. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller.pp +0 -3
  932. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/functions/puppetcaller4.pp +0 -3
  933. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/caller.rb +0 -5
  934. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/caller_ws.rb +0 -12
  935. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/lib/puppet/functions/user/callingpuppet.rb +0 -5
  936. data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/user/metadata.json +0 -9
  937. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/functions/hello.pp +0 -3
  938. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/manifests/init.pp +0 -3
  939. data/spec/fixtures/unit/pops/loaders/loaders/module_no_lib/modules/modulea/metadata.json +0 -10
  940. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +0 -10
  941. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/hello.pp +0 -3
  942. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/functions/subspace/hello.pp +0 -3
  943. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/modulea/rb_func_a.rb +0 -5
  944. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/rb_func_a.rb +0 -5
  945. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/manifests/init.pp +0 -3
  946. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +0 -10
  947. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/lib/puppet/functions/moduleb/rb_func_b.rb +0 -6
  948. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/manifests/init.pp +0 -3
  949. data/spec/fixtures/unit/pops/parser/lexer/aliastest.pp +0 -16
  950. data/spec/fixtures/unit/pops/parser/lexer/append.pp +0 -11
  951. data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +0 -14
  952. data/spec/fixtures/unit/pops/parser/lexer/arithmetic_expression.pp +0 -8
  953. data/spec/fixtures/unit/pops/parser/lexer/arraytrailingcomma.pp +0 -3
  954. data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +0 -65
  955. data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +0 -15
  956. data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +0 -17
  957. data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +0 -11
  958. data/spec/fixtures/unit/pops/parser/lexer/collection.pp +0 -10
  959. data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +0 -8
  960. data/spec/fixtures/unit/pops/parser/lexer/collection_within_virtual_definitions.pp +0 -20
  961. data/spec/fixtures/unit/pops/parser/lexer/componentmetaparams.pp +0 -11
  962. data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +0 -8
  963. data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +0 -23
  964. data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +0 -17
  965. data/spec/fixtures/unit/pops/parser/lexer/emptyclass.pp +0 -9
  966. data/spec/fixtures/unit/pops/parser/lexer/emptyexec.pp +0 -3
  967. data/spec/fixtures/unit/pops/parser/lexer/emptyifelse.pp +0 -9
  968. data/spec/fixtures/unit/pops/parser/lexer/falsevalues.pp +0 -3
  969. data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +0 -11
  970. data/spec/fixtures/unit/pops/parser/lexer/fqdefinition.pp +0 -5
  971. data/spec/fixtures/unit/pops/parser/lexer/fqparents.pp +0 -11
  972. data/spec/fixtures/unit/pops/parser/lexer/funccomma.pp +0 -5
  973. data/spec/fixtures/unit/pops/parser/lexer/hash.pp +0 -33
  974. data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +0 -12
  975. data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +0 -15
  976. data/spec/fixtures/unit/pops/parser/lexer/multilinecomments.pp +0 -10
  977. data/spec/fixtures/unit/pops/parser/lexer/multipleclass.pp +0 -9
  978. data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +0 -7
  979. data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +0 -13
  980. data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +0 -9
  981. data/spec/fixtures/unit/pops/parser/lexer/scopetest.pp +0 -13
  982. data/spec/fixtures/unit/pops/parser/lexer/selectorvalues.pp +0 -49
  983. data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +0 -5
  984. data/spec/fixtures/unit/pops/parser/lexer/simpleselector.pp +0 -38
  985. data/spec/fixtures/unit/pops/parser/lexer/singleary.pp +0 -19
  986. data/spec/fixtures/unit/pops/parser/lexer/singlequote.pp +0 -11
  987. data/spec/fixtures/unit/pops/parser/lexer/singleselector.pp +0 -22
  988. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -11
  989. data/spec/fixtures/unit/pops/parser/lexer/tag.pp +0 -9
  990. data/spec/fixtures/unit/pops/parser/lexer/tagged.pp +0 -35
  991. data/spec/fixtures/unit/pops/parser/lexer/virtualresources.pp +0 -14
  992. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_input.out +0 -1
  993. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_output.out +0 -1
  994. data/spec/fixtures/unit/provider/cron/crontab/single_line.yaml +0 -272
  995. data/spec/fixtures/unit/provider/cron/crontab/vixie_header.txt +0 -3
  996. data/spec/fixtures/unit/provider/cron/parsed/managed +0 -6
  997. data/spec/fixtures/unit/provider/cron/parsed/simple +0 -9
  998. data/spec/fixtures/unit/provider/package/dnfmodule/dnf-module-list.txt +0 -19
  999. data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +0 -4
  1000. data/spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning +0 -14
  1001. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.detail +0 -19
  1002. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.list +0 -10
  1003. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.query +0 -1
  1004. data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +0 -2
  1005. data/spec/fixtures/unit/provider/package/pkg/dummy_implicit_version +0 -3
  1006. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +0 -1
  1007. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.certificate_warning +0 -2
  1008. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.installed +0 -1
  1009. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +0 -1
  1010. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +0 -1
  1011. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +0 -1
  1012. data/spec/fixtures/unit/provider/package/pkg/incomplete +0 -1
  1013. data/spec/fixtures/unit/provider/package/pkg/solaris11 +0 -2
  1014. data/spec/fixtures/unit/provider/package/pkg/unknown_status +0 -12
  1015. data/spec/fixtures/unit/provider/package/pkgng/pkg.query +0 -7
  1016. data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +0 -1
  1017. data/spec/fixtures/unit/provider/package/pkgng/pkg.version +0 -5
  1018. data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +0 -30
  1019. data/spec/fixtures/unit/provider/package/sun/dummy.server +0 -12
  1020. data/spec/fixtures/unit/provider/package/sun/simple +0 -24
  1021. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +0 -187
  1022. data/spec/fixtures/unit/provider/package/yum/yum-check-update-multiline.txt +0 -201
  1023. data/spec/fixtures/unit/provider/package/yum/yum-check-update-obsoletes.txt +0 -195
  1024. data/spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt +0 -36
  1025. data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +0 -184
  1026. data/spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt +0 -13
  1027. data/spec/fixtures/unit/provider/package/yum/yum-check-update-subscription-manager.txt +0 -9
  1028. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out +0 -369
  1029. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-empty.out +0 -3
  1030. data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +0 -13
  1031. data/spec/fixtures/unit/provider/parsedfile/aliases.txt +0 -2
  1032. data/spec/fixtures/unit/provider/parsedfile/simple.txt +0 -7
  1033. data/spec/fixtures/unit/provider/service/base/ps_ef.mixed_encoding +0 -3
  1034. data/spec/fixtures/unit/provider/service/gentoo/rc_update_show +0 -30
  1035. data/spec/fixtures/unit/provider/service/openbsd/rcctl_getall +0 -6
  1036. data/spec/fixtures/unit/provider/service/openrc/rcservice_list +0 -8
  1037. data/spec/fixtures/unit/provider/service/openrc/rcstatus +0 -43
  1038. data/spec/fixtures/unit/provider/service/smf/svcs_fmri.out +0 -6
  1039. data/spec/fixtures/unit/provider/service/smf/svcs_instances.out +0 -4
  1040. data/spec/fixtures/unit/provider/service/smf/svcs_multiple_fmris.out +0 -13
  1041. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +0 -16
  1042. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services_vendor_preset +0 -9
  1043. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +0 -36
  1044. data/spec/fixtures/unit/reports/tagmail/tagmail_email.conf +0 -2
  1045. data/spec/fixtures/unit/reports/tagmail/tagmail_failers.conf +0 -3
  1046. data/spec/fixtures/unit/reports/tagmail/tagmail_passers.conf +0 -30
  1047. data/spec/fixtures/unit/ssl/certificate/old-style-cert-exts.pem +0 -33
  1048. data/spec/fixtures/unit/ssl/certificate_request/old-style-cert-request.pem +0 -28
  1049. data/spec/fixtures/unit/type/user/authorized_keys +0 -6
  1050. data/spec/fixtures/unit/util/filetype/aixtab_output +0 -44
  1051. data/spec/fixtures/unit/util/filetype/suntab_output +0 -9
  1052. data/spec/fixtures/unit/util/monkey_patches/x509.pem +0 -32
  1053. data/spec/fixtures/unit/util/rdoc/basic.pp +0 -16
  1054. 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
  1055. 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
  1056. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +0 -108
  1057. 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
  1058. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +0 -100
  1059. 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
  1060. 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
  1061. data/spec/fixtures/yaml/report2.6.x.yaml +0 -190
  1062. data/spec/fixtures/yaml/test.local.yaml +0 -16
  1063. data/spec/integration/agent/logging_spec.rb +0 -179
  1064. data/spec/integration/application/agent_spec.rb +0 -1067
  1065. data/spec/integration/application/apply_spec.rb +0 -781
  1066. data/spec/integration/application/doc_spec.rb +0 -24
  1067. data/spec/integration/application/filebucket_spec.rb +0 -255
  1068. data/spec/integration/application/help_spec.rb +0 -44
  1069. data/spec/integration/application/lookup_spec.rb +0 -275
  1070. data/spec/integration/application/module_spec.rb +0 -230
  1071. data/spec/integration/application/plugin_spec.rb +0 -145
  1072. data/spec/integration/application/resource_spec.rb +0 -68
  1073. data/spec/integration/application/ssl_spec.rb +0 -20
  1074. data/spec/integration/configurer_spec.rb +0 -166
  1075. data/spec/integration/data_binding_spec.rb +0 -278
  1076. data/spec/integration/defaults_spec.rb +0 -279
  1077. data/spec/integration/directory_environments_spec.rb +0 -67
  1078. data/spec/integration/environments/default_manifest_spec.rb +0 -215
  1079. data/spec/integration/environments/setting_hooks_spec.rb +0 -27
  1080. data/spec/integration/environments/settings_interpolation_spec.rb +0 -106
  1081. data/spec/integration/environments/settings_spec.rb +0 -128
  1082. data/spec/integration/http/client_spec.rb +0 -229
  1083. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -75
  1084. data/spec/integration/indirector/direct_file_server_spec.rb +0 -90
  1085. data/spec/integration/indirector/facts/facter_spec.rb +0 -168
  1086. data/spec/integration/indirector/file_content/file_server_spec.rb +0 -106
  1087. data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -75
  1088. data/spec/integration/l10n/compiler_spec.rb +0 -37
  1089. data/spec/integration/network/formats_spec.rb +0 -90
  1090. data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -60
  1091. data/spec/integration/network/http_pool_spec.rb +0 -275
  1092. data/spec/integration/node/environment_spec.rb +0 -170
  1093. data/spec/integration/node/facts_spec.rb +0 -40
  1094. data/spec/integration/node_spec.rb +0 -77
  1095. data/spec/integration/parser/catalog_spec.rb +0 -68
  1096. data/spec/integration/parser/class_spec.rb +0 -33
  1097. data/spec/integration/parser/collection_spec.rb +0 -362
  1098. data/spec/integration/parser/compiler_spec.rb +0 -1221
  1099. data/spec/integration/parser/conditionals_spec.rb +0 -95
  1100. data/spec/integration/parser/dynamic_scoping_spec.rb +0 -66
  1101. data/spec/integration/parser/environment_spec.rb +0 -47
  1102. data/spec/integration/parser/node_spec.rb +0 -163
  1103. data/spec/integration/parser/parameter_defaults_spec.rb +0 -358
  1104. data/spec/integration/parser/pcore_resource_spec.rb +0 -243
  1105. data/spec/integration/parser/resource_expressions_spec.rb +0 -222
  1106. data/spec/integration/parser/scope_spec.rb +0 -735
  1107. data/spec/integration/parser/script_compiler_spec.rb +0 -113
  1108. data/spec/integration/parser/undef_param_spec.rb +0 -95
  1109. data/spec/integration/provider/file/windows_spec.rb +0 -162
  1110. data/spec/integration/resource/catalog_spec.rb +0 -47
  1111. data/spec/integration/resource/type_collection_spec.rb +0 -88
  1112. data/spec/integration/transaction/report_spec.rb +0 -706
  1113. data/spec/integration/transaction_spec.rb +0 -553
  1114. data/spec/integration/type/exec_spec.rb +0 -114
  1115. data/spec/integration/type/file_spec.rb +0 -2012
  1116. data/spec/integration/type/notify_spec.rb +0 -46
  1117. data/spec/integration/type/package_spec.rb +0 -200
  1118. data/spec/integration/type/tidy_spec.rb +0 -45
  1119. data/spec/integration/type_spec.rb +0 -30
  1120. data/spec/integration/util/autoload_spec.rb +0 -104
  1121. data/spec/integration/util/execution_spec.rb +0 -104
  1122. data/spec/integration/util/rdoc/parser_spec.rb +0 -171
  1123. data/spec/integration/util/settings_spec.rb +0 -115
  1124. data/spec/integration/util/windows/adsi_spec.rb +0 -207
  1125. data/spec/integration/util/windows/monkey_patches/process_spec.rb +0 -231
  1126. data/spec/integration/util/windows/principal_spec.rb +0 -279
  1127. data/spec/integration/util/windows/process_spec.rb +0 -96
  1128. data/spec/integration/util/windows/registry_spec.rb +0 -334
  1129. data/spec/integration/util/windows/security_spec.rb +0 -1010
  1130. data/spec/integration/util/windows/user_spec.rb +0 -226
  1131. data/spec/integration/util_spec.rb +0 -104
  1132. data/spec/lib/matchers/containment_matchers.rb +0 -52
  1133. data/spec/lib/matchers/include_in_order.rb +0 -20
  1134. data/spec/lib/matchers/include_in_order_spec.rb +0 -30
  1135. data/spec/lib/matchers/json.rb +0 -132
  1136. data/spec/lib/matchers/match_tokens2.rb +0 -74
  1137. data/spec/lib/matchers/relationship_graph_matchers.rb +0 -48
  1138. data/spec/lib/matchers/resource.rb +0 -74
  1139. data/spec/lib/puppet/certificate_factory.rb +0 -218
  1140. data/spec/lib/puppet/face/1.0.0/huzzah.rb +0 -8
  1141. data/spec/lib/puppet/face/basetest.rb +0 -51
  1142. data/spec/lib/puppet/face/huzzah/obsolete.rb +0 -6
  1143. data/spec/lib/puppet/face/huzzah.rb +0 -8
  1144. data/spec/lib/puppet/face/version_matching.rb +0 -12
  1145. data/spec/lib/puppet/indirector/indirector_testing/json.rb +0 -6
  1146. data/spec/lib/puppet/indirector/indirector_testing/memory.rb +0 -7
  1147. data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +0 -6
  1148. data/spec/lib/puppet/indirector_proxy.rb +0 -34
  1149. data/spec/lib/puppet/indirector_testing.rb +0 -31
  1150. data/spec/lib/puppet/test_ca.rb +0 -157
  1151. data/spec/lib/puppet_spec/character_encoding.rb +0 -12
  1152. data/spec/lib/puppet_spec/compiler.rb +0 -112
  1153. data/spec/lib/puppet_spec/files.rb +0 -107
  1154. data/spec/lib/puppet_spec/fixtures.rb +0 -52
  1155. data/spec/lib/puppet_spec/handler.rb +0 -53
  1156. data/spec/lib/puppet_spec/https.rb +0 -95
  1157. data/spec/lib/puppet_spec/language.rb +0 -75
  1158. data/spec/lib/puppet_spec/matchers.rb +0 -68
  1159. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +0 -56
  1160. data/spec/lib/puppet_spec/module_tool/stub_source.rb +0 -136
  1161. data/spec/lib/puppet_spec/modules.rb +0 -82
  1162. data/spec/lib/puppet_spec/network.rb +0 -127
  1163. data/spec/lib/puppet_spec/pops.rb +0 -29
  1164. data/spec/lib/puppet_spec/puppetserver.rb +0 -180
  1165. data/spec/lib/puppet_spec/scope.rb +0 -13
  1166. data/spec/lib/puppet_spec/settings.rb +0 -39
  1167. data/spec/lib/puppet_spec/ssl.rb +0 -265
  1168. data/spec/lib/puppet_spec/unindent.rb +0 -5
  1169. data/spec/lib/puppet_spec/verbose.rb +0 -20
  1170. data/spec/shared_behaviours/all_parsedfile_providers.rb +0 -21
  1171. data/spec/shared_behaviours/an_indirector_face.rb +0 -6
  1172. data/spec/shared_behaviours/documentation_on_faces.rb +0 -261
  1173. data/spec/shared_behaviours/file_server_terminus.rb +0 -38
  1174. data/spec/shared_behaviours/file_serving.rb +0 -73
  1175. data/spec/shared_behaviours/hiera_indirections.rb +0 -98
  1176. data/spec/shared_behaviours/iterative_functions.rb +0 -68
  1177. data/spec/shared_behaviours/memory_terminus.rb +0 -28
  1178. data/spec/shared_behaviours/path_parameters.rb +0 -160
  1179. data/spec/shared_behaviours/store_configs_terminus.rb +0 -21
  1180. data/spec/shared_behaviours/things_that_declare_options.rb +0 -262
  1181. data/spec/shared_contexts/checksum.rb +0 -65
  1182. data/spec/shared_contexts/digests.rb +0 -100
  1183. data/spec/shared_contexts/https.rb +0 -29
  1184. data/spec/shared_contexts/l10n.rb +0 -32
  1185. data/spec/shared_contexts/provider.rb +0 -16
  1186. data/spec/shared_contexts/types_setup.rb +0 -204
  1187. data/spec/shared_examples/rhel_package_provider.rb +0 -398
  1188. data/spec/spec_helper.rb +0 -240
  1189. data/spec/unit/agent/disabler_spec.rb +0 -63
  1190. data/spec/unit/agent/locker_spec.rb +0 -99
  1191. data/spec/unit/agent_spec.rb +0 -411
  1192. data/spec/unit/application/agent_spec.rb +0 -640
  1193. data/spec/unit/application/apply_spec.rb +0 -559
  1194. data/spec/unit/application/config_spec.rb +0 -232
  1195. data/spec/unit/application/describe_spec.rb +0 -135
  1196. data/spec/unit/application/device_spec.rb +0 -616
  1197. data/spec/unit/application/doc_spec.rb +0 -333
  1198. data/spec/unit/application/face_base_spec.rb +0 -454
  1199. data/spec/unit/application/facts_spec.rb +0 -139
  1200. data/spec/unit/application/filebucket_spec.rb +0 -319
  1201. data/spec/unit/application/indirection_base_spec.rb +0 -50
  1202. data/spec/unit/application/lookup_spec.rb +0 -698
  1203. data/spec/unit/application/resource_spec.rb +0 -229
  1204. data/spec/unit/application/ssl_spec.rb +0 -507
  1205. data/spec/unit/application_spec.rb +0 -730
  1206. data/spec/unit/certificate_factory_spec.rb +0 -170
  1207. data/spec/unit/concurrent/lock_spec.rb +0 -29
  1208. data/spec/unit/concurrent/thread_local_singleton_spec.rb +0 -39
  1209. data/spec/unit/configurer/downloader_spec.rb +0 -252
  1210. data/spec/unit/configurer/fact_handler_spec.rb +0 -147
  1211. data/spec/unit/configurer/plugin_handler_spec.rb +0 -152
  1212. data/spec/unit/configurer_spec.rb +0 -1488
  1213. data/spec/unit/confine/exists_spec.rb +0 -82
  1214. data/spec/unit/confine/false_spec.rb +0 -78
  1215. data/spec/unit/confine/feature_spec.rb +0 -59
  1216. data/spec/unit/confine/true_spec.rb +0 -78
  1217. data/spec/unit/confine/variable_spec.rb +0 -105
  1218. data/spec/unit/confine_collection_spec.rb +0 -132
  1219. data/spec/unit/confine_spec.rb +0 -99
  1220. data/spec/unit/confiner_spec.rb +0 -61
  1221. data/spec/unit/context/trusted_information_spec.rb +0 -213
  1222. data/spec/unit/context_spec.rb +0 -217
  1223. data/spec/unit/daemon_spec.rb +0 -176
  1224. data/spec/unit/data_binding_spec.rb +0 -11
  1225. data/spec/unit/data_providers/function_data_provider_spec.rb +0 -122
  1226. data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -362
  1227. data/spec/unit/datatypes_spec.rb +0 -352
  1228. data/spec/unit/defaults_spec.rb +0 -182
  1229. data/spec/unit/environments_spec.rb +0 -1186
  1230. data/spec/unit/etc_spec.rb +0 -465
  1231. data/spec/unit/external/pson_spec.rb +0 -58
  1232. data/spec/unit/face/config_spec.rb +0 -402
  1233. data/spec/unit/face/epp_face_spec.rb +0 -385
  1234. data/spec/unit/face/facts_spec.rb +0 -78
  1235. data/spec/unit/face/generate_spec.rb +0 -293
  1236. data/spec/unit/face/help_spec.rb +0 -208
  1237. data/spec/unit/face/module/install_spec.rb +0 -40
  1238. data/spec/unit/face/module/list_spec.rb +0 -256
  1239. data/spec/unit/face/module/uninstall_spec.rb +0 -45
  1240. data/spec/unit/face/module/upgrade_spec.rb +0 -26
  1241. data/spec/unit/face/node_spec.rb +0 -129
  1242. data/spec/unit/face/parser_spec.rb +0 -310
  1243. data/spec/unit/face/plugin_spec.rb +0 -158
  1244. data/spec/unit/face_spec.rb +0 -1
  1245. data/spec/unit/facter_impl_spec.rb +0 -31
  1246. data/spec/unit/file_bucket/dipper_spec.rb +0 -405
  1247. data/spec/unit/file_bucket/file_spec.rb +0 -58
  1248. data/spec/unit/file_serving/base_spec.rb +0 -164
  1249. data/spec/unit/file_serving/configuration/parser_spec.rb +0 -206
  1250. data/spec/unit/file_serving/configuration_spec.rb +0 -240
  1251. data/spec/unit/file_serving/content_spec.rb +0 -98
  1252. data/spec/unit/file_serving/fileset_spec.rb +0 -417
  1253. data/spec/unit/file_serving/http_metadata_spec.rb +0 -109
  1254. data/spec/unit/file_serving/metadata_spec.rb +0 -551
  1255. data/spec/unit/file_serving/mount/file_spec.rb +0 -188
  1256. data/spec/unit/file_serving/mount/locales_spec.rb +0 -72
  1257. data/spec/unit/file_serving/mount/modules_spec.rb +0 -69
  1258. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +0 -72
  1259. data/spec/unit/file_serving/mount/plugins_spec.rb +0 -72
  1260. data/spec/unit/file_serving/mount/scripts_spec.rb +0 -69
  1261. data/spec/unit/file_serving/mount/tasks_spec.rb +0 -71
  1262. data/spec/unit/file_serving/mount_spec.rb +0 -30
  1263. data/spec/unit/file_serving/terminus_helper_spec.rb +0 -114
  1264. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -84
  1265. data/spec/unit/file_system/path_pattern_spec.rb +0 -153
  1266. data/spec/unit/file_system/uniquefile_spec.rb +0 -245
  1267. data/spec/unit/file_system_spec.rb +0 -1198
  1268. data/spec/unit/forge/errors_spec.rb +0 -80
  1269. data/spec/unit/forge/forge_spec.rb +0 -69
  1270. data/spec/unit/forge/module_release_spec.rb +0 -331
  1271. data/spec/unit/forge/repository_spec.rb +0 -154
  1272. data/spec/unit/forge_spec.rb +0 -210
  1273. data/spec/unit/functions/abs_spec.rb +0 -70
  1274. data/spec/unit/functions/all_spec.rb +0 -97
  1275. data/spec/unit/functions/annotate_spec.rb +0 -175
  1276. data/spec/unit/functions/any_spec.rb +0 -109
  1277. data/spec/unit/functions/assert_type_spec.rb +0 -97
  1278. data/spec/unit/functions/binary_file_spec.rb +0 -46
  1279. data/spec/unit/functions/break_spec.rb +0 -207
  1280. data/spec/unit/functions/call_spec.rb +0 -131
  1281. data/spec/unit/functions/camelcase_spec.rb +0 -34
  1282. data/spec/unit/functions/capitalize_spec.rb +0 -34
  1283. data/spec/unit/functions/ceiling_spec.rb +0 -65
  1284. data/spec/unit/functions/chomp_spec.rb +0 -46
  1285. data/spec/unit/functions/chop_spec.rb +0 -38
  1286. data/spec/unit/functions/compare_spec.rb +0 -147
  1287. data/spec/unit/functions/contain_spec.rb +0 -297
  1288. data/spec/unit/functions/convert_to_spec.rb +0 -25
  1289. data/spec/unit/functions/defined_spec.rb +0 -288
  1290. data/spec/unit/functions/dig_spec.rb +0 -58
  1291. data/spec/unit/functions/downcase_spec.rb +0 -34
  1292. data/spec/unit/functions/each_spec.rb +0 -107
  1293. data/spec/unit/functions/empty_spec.rb +0 -87
  1294. data/spec/unit/functions/epp_spec.rb +0 -178
  1295. data/spec/unit/functions/filter_spec.rb +0 -145
  1296. data/spec/unit/functions/find_file_spec.rb +0 -69
  1297. data/spec/unit/functions/find_template_spec.rb +0 -69
  1298. data/spec/unit/functions/flatten_spec.rb +0 -31
  1299. data/spec/unit/functions/floor_spec.rb +0 -65
  1300. data/spec/unit/functions/get_spec.rb +0 -135
  1301. data/spec/unit/functions/getvar_spec.rb +0 -121
  1302. data/spec/unit/functions/group_by_spec.rb +0 -40
  1303. data/spec/unit/functions/hiera_spec.rb +0 -495
  1304. data/spec/unit/functions/include_spec.rb +0 -186
  1305. data/spec/unit/functions/index_spec.rb +0 -184
  1306. data/spec/unit/functions/inline_epp_spec.rb +0 -120
  1307. data/spec/unit/functions/join_spec.rb +0 -33
  1308. data/spec/unit/functions/keys_spec.rb +0 -31
  1309. data/spec/unit/functions/length_spec.rb +0 -50
  1310. data/spec/unit/functions/lest_spec.rb +0 -34
  1311. data/spec/unit/functions/logging_spec.rb +0 -62
  1312. data/spec/unit/functions/lookup_fixture_spec.rb +0 -687
  1313. data/spec/unit/functions/lookup_spec.rb +0 -3415
  1314. data/spec/unit/functions/lstrip_spec.rb +0 -30
  1315. data/spec/unit/functions/map_spec.rb +0 -163
  1316. data/spec/unit/functions/match_spec.rb +0 -74
  1317. data/spec/unit/functions/max_spec.rb +0 -158
  1318. data/spec/unit/functions/min_spec.rb +0 -158
  1319. data/spec/unit/functions/module_directory_spec.rb +0 -43
  1320. data/spec/unit/functions/new_spec.rb +0 -776
  1321. data/spec/unit/functions/next_spec.rb +0 -93
  1322. data/spec/unit/functions/partition_spec.rb +0 -40
  1323. data/spec/unit/functions/reduce_spec.rb +0 -85
  1324. data/spec/unit/functions/regsubst_spec.rb +0 -114
  1325. data/spec/unit/functions/require_spec.rb +0 -82
  1326. data/spec/unit/functions/return_spec.rb +0 -109
  1327. data/spec/unit/functions/reverse_each_spec.rb +0 -108
  1328. data/spec/unit/functions/round_spec.rb +0 -41
  1329. data/spec/unit/functions/rstrip_spec.rb +0 -30
  1330. data/spec/unit/functions/scanf_spec.rb +0 -32
  1331. data/spec/unit/functions/shared.rb +0 -94
  1332. data/spec/unit/functions/size_spec.rb +0 -50
  1333. data/spec/unit/functions/slice_spec.rb +0 -136
  1334. data/spec/unit/functions/sort_spec.rb +0 -79
  1335. data/spec/unit/functions/split_spec.rb +0 -59
  1336. data/spec/unit/functions/step_spec.rb +0 -113
  1337. data/spec/unit/functions/strftime_spec.rb +0 -152
  1338. data/spec/unit/functions/strip_spec.rb +0 -30
  1339. data/spec/unit/functions/then_spec.rb +0 -40
  1340. data/spec/unit/functions/tree_each_spec.rb +0 -493
  1341. data/spec/unit/functions/type_spec.rb +0 -35
  1342. data/spec/unit/functions/unique_spec.rb +0 -111
  1343. data/spec/unit/functions/unwrap_spec.rb +0 -37
  1344. data/spec/unit/functions/upcase_spec.rb +0 -34
  1345. data/spec/unit/functions/values_spec.rb +0 -30
  1346. data/spec/unit/functions/versioncmp_spec.rb +0 -70
  1347. data/spec/unit/functions/with_spec.rb +0 -31
  1348. data/spec/unit/functions4_spec.rb +0 -1046
  1349. data/spec/unit/gettext/config_spec.rb +0 -156
  1350. data/spec/unit/gettext/module_loading_spec.rb +0 -53
  1351. data/spec/unit/graph/key_spec.rb +0 -41
  1352. data/spec/unit/graph/rb_tree_map_spec.rb +0 -570
  1353. data/spec/unit/graph/relationship_graph_spec.rb +0 -401
  1354. data/spec/unit/graph/sequential_prioritizer_spec.rb +0 -32
  1355. data/spec/unit/graph/simple_graph_spec.rb +0 -759
  1356. data/spec/unit/hiera/scope_spec.rb +0 -105
  1357. data/spec/unit/hiera_puppet_spec.rb +0 -159
  1358. data/spec/unit/http/client_spec.rb +0 -937
  1359. data/spec/unit/http/dns_spec.rb +0 -281
  1360. data/spec/unit/http/external_client_spec.rb +0 -201
  1361. data/spec/unit/http/factory_spec.rb +0 -160
  1362. data/spec/unit/http/pool_entry_spec.rb +0 -49
  1363. data/spec/unit/http/pool_spec.rb +0 -401
  1364. data/spec/unit/http/proxy_spec.rb +0 -347
  1365. data/spec/unit/http/resolver_spec.rb +0 -133
  1366. data/spec/unit/http/response_spec.rb +0 -75
  1367. data/spec/unit/http/service/ca_spec.rb +0 -281
  1368. data/spec/unit/http/service/compiler_spec.rb +0 -746
  1369. data/spec/unit/http/service/file_server_spec.rb +0 -309
  1370. data/spec/unit/http/service/puppetserver_spec.rb +0 -112
  1371. data/spec/unit/http/service/report_spec.rb +0 -107
  1372. data/spec/unit/http/service_spec.rb +0 -137
  1373. data/spec/unit/http/session_spec.rb +0 -309
  1374. data/spec/unit/http/site_spec.rb +0 -96
  1375. data/spec/unit/indirector/catalog/compiler_spec.rb +0 -1238
  1376. data/spec/unit/indirector/catalog/json_spec.rb +0 -66
  1377. data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -11
  1378. data/spec/unit/indirector/catalog/rest_spec.rb +0 -91
  1379. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -16
  1380. data/spec/unit/indirector/catalog/yaml_spec.rb +0 -23
  1381. data/spec/unit/indirector/data_binding/hiera_spec.rb +0 -19
  1382. data/spec/unit/indirector/data_binding/none_spec.rb +0 -28
  1383. data/spec/unit/indirector/direct_file_server_spec.rb +0 -87
  1384. data/spec/unit/indirector/envelope_spec.rb +0 -32
  1385. data/spec/unit/indirector/exec_spec.rb +0 -63
  1386. data/spec/unit/indirector/face_spec.rb +0 -80
  1387. data/spec/unit/indirector/facts/facter_spec.rb +0 -290
  1388. data/spec/unit/indirector/facts/json_spec.rb +0 -255
  1389. data/spec/unit/indirector/facts/network_device_spec.rb +0 -77
  1390. data/spec/unit/indirector/facts/rest_spec.rb +0 -99
  1391. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -16
  1392. data/spec/unit/indirector/facts/yaml_spec.rb +0 -255
  1393. data/spec/unit/indirector/file_bucket_file/file_spec.rb +0 -426
  1394. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -89
  1395. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +0 -46
  1396. data/spec/unit/indirector/file_content/file_server_spec.rb +0 -13
  1397. data/spec/unit/indirector/file_content/file_spec.rb +0 -13
  1398. data/spec/unit/indirector/file_content/rest_spec.rb +0 -60
  1399. data/spec/unit/indirector/file_content/selector_spec.rb +0 -9
  1400. data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -13
  1401. data/spec/unit/indirector/file_metadata/file_spec.rb +0 -57
  1402. data/spec/unit/indirector/file_metadata/http_spec.rb +0 -194
  1403. data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -116
  1404. data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -10
  1405. data/spec/unit/indirector/file_server_spec.rb +0 -288
  1406. data/spec/unit/indirector/hiera_spec.rb +0 -22
  1407. data/spec/unit/indirector/indirection_spec.rb +0 -916
  1408. data/spec/unit/indirector/json_spec.rb +0 -200
  1409. data/spec/unit/indirector/memory_spec.rb +0 -26
  1410. data/spec/unit/indirector/msgpack_spec.rb +0 -199
  1411. data/spec/unit/indirector/node/exec_spec.rb +0 -107
  1412. data/spec/unit/indirector/node/json_spec.rb +0 -33
  1413. data/spec/unit/indirector/node/memory_spec.rb +0 -16
  1414. data/spec/unit/indirector/node/msgpack_spec.rb +0 -23
  1415. data/spec/unit/indirector/node/plain_spec.rb +0 -34
  1416. data/spec/unit/indirector/node/rest_spec.rb +0 -66
  1417. data/spec/unit/indirector/node/store_configs_spec.rb +0 -16
  1418. data/spec/unit/indirector/node/yaml_spec.rb +0 -23
  1419. data/spec/unit/indirector/none_spec.rb +0 -33
  1420. data/spec/unit/indirector/plain_spec.rb +0 -26
  1421. data/spec/unit/indirector/report/json_spec.rb +0 -72
  1422. data/spec/unit/indirector/report/msgpack_spec.rb +0 -27
  1423. data/spec/unit/indirector/report/processor_spec.rb +0 -99
  1424. data/spec/unit/indirector/report/rest_spec.rb +0 -58
  1425. data/spec/unit/indirector/report/yaml_spec.rb +0 -91
  1426. data/spec/unit/indirector/request_spec.rb +0 -295
  1427. data/spec/unit/indirector/resource/ral_spec.rb +0 -89
  1428. data/spec/unit/indirector/resource/store_configs_spec.rb +0 -20
  1429. data/spec/unit/indirector/rest_spec.rb +0 -149
  1430. data/spec/unit/indirector/terminus_spec.rb +0 -264
  1431. data/spec/unit/indirector/yaml_spec.rb +0 -188
  1432. data/spec/unit/indirector_spec.rb +0 -148
  1433. data/spec/unit/info_service_spec.rb +0 -575
  1434. data/spec/unit/interface/action_builder_spec.rb +0 -216
  1435. data/spec/unit/interface/action_manager_spec.rb +0 -254
  1436. data/spec/unit/interface/action_spec.rb +0 -670
  1437. data/spec/unit/interface/documentation_spec.rb +0 -32
  1438. data/spec/unit/interface/face_collection_spec.rb +0 -219
  1439. data/spec/unit/interface/option_builder_spec.rb +0 -86
  1440. data/spec/unit/interface/option_spec.rb +0 -156
  1441. data/spec/unit/interface_spec.rb +0 -305
  1442. data/spec/unit/module_spec.rb +0 -985
  1443. data/spec/unit/module_tool/application_spec.rb +0 -25
  1444. data/spec/unit/module_tool/applications/checksummer_spec.rb +0 -115
  1445. data/spec/unit/module_tool/applications/installer_spec.rb +0 -473
  1446. data/spec/unit/module_tool/applications/uninstaller_spec.rb +0 -181
  1447. data/spec/unit/module_tool/applications/unpacker_spec.rb +0 -75
  1448. data/spec/unit/module_tool/applications/upgrader_spec.rb +0 -337
  1449. data/spec/unit/module_tool/install_directory_spec.rb +0 -70
  1450. data/spec/unit/module_tool/installed_modules_spec.rb +0 -49
  1451. data/spec/unit/module_tool/metadata_spec.rb +0 -330
  1452. data/spec/unit/module_tool/tar/gnu_spec.rb +0 -23
  1453. data/spec/unit/module_tool/tar/mini_spec.rb +0 -109
  1454. data/spec/unit/module_tool/tar_spec.rb +0 -36
  1455. data/spec/unit/module_tool_spec.rb +0 -304
  1456. data/spec/unit/network/authconfig_spec.rb +0 -8
  1457. data/spec/unit/network/authorization_spec.rb +0 -8
  1458. data/spec/unit/network/format_handler_spec.rb +0 -93
  1459. data/spec/unit/network/format_spec.rb +0 -205
  1460. data/spec/unit/network/format_support_spec.rb +0 -199
  1461. data/spec/unit/network/formats_spec.rb +0 -584
  1462. data/spec/unit/network/http/api/indirected_routes_spec.rb +0 -425
  1463. data/spec/unit/network/http/api/master_spec.rb +0 -38
  1464. data/spec/unit/network/http/api/server/v3/environments_spec.rb +0 -51
  1465. data/spec/unit/network/http/api/server/v3_spec.rb +0 -78
  1466. data/spec/unit/network/http/api_spec.rb +0 -109
  1467. data/spec/unit/network/http/connection_spec.rb +0 -636
  1468. data/spec/unit/network/http/error_spec.rb +0 -30
  1469. data/spec/unit/network/http/handler_spec.rb +0 -164
  1470. data/spec/unit/network/http/request_spec.rb +0 -108
  1471. data/spec/unit/network/http/response_spec.rb +0 -106
  1472. data/spec/unit/network/http/route_spec.rb +0 -90
  1473. data/spec/unit/network/http_pool_spec.rb +0 -145
  1474. data/spec/unit/network/uri_spec.rb +0 -47
  1475. data/spec/unit/node/environment_spec.rb +0 -612
  1476. data/spec/unit/node/facts_spec.rb +0 -225
  1477. data/spec/unit/node_spec.rb +0 -434
  1478. data/spec/unit/other/selinux_spec.rb +0 -27
  1479. data/spec/unit/parameter/boolean_spec.rb +0 -35
  1480. data/spec/unit/parameter/package_options_spec.rb +0 -43
  1481. data/spec/unit/parameter/path_spec.rb +0 -23
  1482. data/spec/unit/parameter/value_collection_spec.rb +0 -160
  1483. data/spec/unit/parameter/value_spec.rb +0 -82
  1484. data/spec/unit/parameter_spec.rb +0 -272
  1485. data/spec/unit/parser/ast/block_expression_spec.rb +0 -66
  1486. data/spec/unit/parser/ast/leaf_spec.rb +0 -136
  1487. data/spec/unit/parser/compiler_spec.rb +0 -1020
  1488. data/spec/unit/parser/files_spec.rb +0 -101
  1489. data/spec/unit/parser/functions/create_resources_spec.rb +0 -326
  1490. data/spec/unit/parser/functions/digest_spec.rb +0 -26
  1491. data/spec/unit/parser/functions/fail_spec.rb +0 -23
  1492. data/spec/unit/parser/functions/file_spec.rb +0 -99
  1493. data/spec/unit/parser/functions/fqdn_rand_spec.rb +0 -87
  1494. data/spec/unit/parser/functions/generate_spec.rb +0 -124
  1495. data/spec/unit/parser/functions/hiera_array_spec.rb +0 -12
  1496. data/spec/unit/parser/functions/hiera_hash_spec.rb +0 -12
  1497. data/spec/unit/parser/functions/hiera_include_spec.rb +0 -12
  1498. data/spec/unit/parser/functions/hiera_spec.rb +0 -12
  1499. data/spec/unit/parser/functions/inline_template_spec.rb +0 -36
  1500. data/spec/unit/parser/functions/lookup_spec.rb +0 -14
  1501. data/spec/unit/parser/functions/realize_spec.rb +0 -70
  1502. data/spec/unit/parser/functions/regsubst_spec.rb +0 -19
  1503. data/spec/unit/parser/functions/scanf_spec.rb +0 -25
  1504. data/spec/unit/parser/functions/shellquote_spec.rb +0 -66
  1505. data/spec/unit/parser/functions/split_spec.rb +0 -13
  1506. data/spec/unit/parser/functions/sprintf_spec.rb +0 -68
  1507. data/spec/unit/parser/functions/tag_spec.rb +0 -30
  1508. data/spec/unit/parser/functions/tagged_spec.rb +0 -36
  1509. data/spec/unit/parser/functions/template_spec.rb +0 -93
  1510. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -28
  1511. data/spec/unit/parser/functions_spec.rb +0 -156
  1512. data/spec/unit/parser/relationship_spec.rb +0 -74
  1513. data/spec/unit/parser/resource/param_spec.rb +0 -32
  1514. data/spec/unit/parser/resource_spec.rb +0 -657
  1515. data/spec/unit/parser/scope_spec.rb +0 -698
  1516. data/spec/unit/parser/templatewrapper_spec.rb +0 -111
  1517. data/spec/unit/parser/type_loader_spec.rb +0 -202
  1518. data/spec/unit/plan_spec.rb +0 -65
  1519. data/spec/unit/pops/adaptable_spec.rb +0 -139
  1520. data/spec/unit/pops/benchmark_spec.rb +0 -123
  1521. data/spec/unit/pops/containment_spec.rb +0 -0
  1522. data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -560
  1523. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -317
  1524. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -101
  1525. data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -108
  1526. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -267
  1527. data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -189
  1528. data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +0 -46
  1529. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -1639
  1530. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +0 -75
  1531. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +0 -63
  1532. data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +0 -43
  1533. data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -89
  1534. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -181
  1535. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -43
  1536. data/spec/unit/pops/evaluator/variables_spec.rb +0 -88
  1537. data/spec/unit/pops/factory_rspec_helper.rb +0 -65
  1538. data/spec/unit/pops/factory_spec.rb +0 -309
  1539. data/spec/unit/pops/issues_spec.rb +0 -210
  1540. data/spec/unit/pops/label_provider_spec.rb +0 -46
  1541. data/spec/unit/pops/loaders/dependency_loader_spec.rb +0 -122
  1542. data/spec/unit/pops/loaders/environment_loader_spec.rb +0 -172
  1543. data/spec/unit/pops/loaders/loader_paths_spec.rb +0 -43
  1544. data/spec/unit/pops/loaders/loader_spec.rb +0 -516
  1545. data/spec/unit/pops/loaders/loaders_spec.rb +0 -863
  1546. data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -268
  1547. data/spec/unit/pops/loaders/static_loader_spec.rb +0 -85
  1548. data/spec/unit/pops/lookup/context_spec.rb +0 -333
  1549. data/spec/unit/pops/lookup/interpolation_spec.rb +0 -389
  1550. data/spec/unit/pops/lookup/lookup_spec.rb +0 -375
  1551. data/spec/unit/pops/merge_strategy_spec.rb +0 -17
  1552. data/spec/unit/pops/migration_spec.rb +0 -51
  1553. data/spec/unit/pops/model/model_spec.rb +0 -41
  1554. data/spec/unit/pops/model/pn_transformer_spec.rb +0 -56
  1555. data/spec/unit/pops/parser/epp_parser_spec.rb +0 -115
  1556. data/spec/unit/pops/parser/evaluating_parser_spec.rb +0 -89
  1557. data/spec/unit/pops/parser/lexer2_spec.rb +0 -942
  1558. data/spec/unit/pops/parser/locator_spec.rb +0 -86
  1559. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -380
  1560. data/spec/unit/pops/parser/parse_calls_spec.rb +0 -171
  1561. data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -184
  1562. data/spec/unit/pops/parser/parse_containers_spec.rb +0 -247
  1563. data/spec/unit/pops/parser/parse_functions_spec.rb +0 -19
  1564. data/spec/unit/pops/parser/parse_heredoc_spec.rb +0 -276
  1565. data/spec/unit/pops/parser/parse_lambda_spec.rb +0 -19
  1566. data/spec/unit/pops/parser/parse_plan_spec.rb +0 -47
  1567. data/spec/unit/pops/parser/parse_resource_spec.rb +0 -328
  1568. data/spec/unit/pops/parser/parser_rspec_helper.rb +0 -17
  1569. data/spec/unit/pops/parser/parser_spec.rb +0 -211
  1570. data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +0 -65
  1571. data/spec/unit/pops/parser/pn_parser_spec.rb +0 -100
  1572. data/spec/unit/pops/pn_spec.rb +0 -147
  1573. data/spec/unit/pops/puppet_stack_spec.rb +0 -108
  1574. data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -37
  1575. data/spec/unit/pops/serialization/packer_spec.rb +0 -162
  1576. data/spec/unit/pops/serialization/serialization_spec.rb +0 -458
  1577. data/spec/unit/pops/serialization/to_from_hr_spec.rb +0 -649
  1578. data/spec/unit/pops/serialization/to_stringified_spec.rb +0 -162
  1579. data/spec/unit/pops/time/timespan_spec.rb +0 -121
  1580. data/spec/unit/pops/time/timestamp_spec.rb +0 -13
  1581. data/spec/unit/pops/types/class_loader_spec.rb +0 -10
  1582. data/spec/unit/pops/types/deferred_spec.rb +0 -87
  1583. data/spec/unit/pops/types/error_spec.rb +0 -207
  1584. data/spec/unit/pops/types/iterable_spec.rb +0 -262
  1585. data/spec/unit/pops/types/p_binary_type_spec.rb +0 -243
  1586. data/spec/unit/pops/types/p_init_type_spec.rb +0 -383
  1587. data/spec/unit/pops/types/p_object_type_spec.rb +0 -1730
  1588. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +0 -340
  1589. data/spec/unit/pops/types/p_sensitive_type_spec.rb +0 -191
  1590. data/spec/unit/pops/types/p_timespan_type_spec.rb +0 -323
  1591. data/spec/unit/pops/types/p_timestamp_type_spec.rb +0 -391
  1592. data/spec/unit/pops/types/p_type_set_type_spec.rb +0 -549
  1593. data/spec/unit/pops/types/p_uri_type_spec.rb +0 -191
  1594. data/spec/unit/pops/types/recursion_guard_spec.rb +0 -93
  1595. data/spec/unit/pops/types/ruby_generator_spec.rb +0 -874
  1596. data/spec/unit/pops/types/string_converter_spec.rb +0 -1202
  1597. data/spec/unit/pops/types/task_spec.rb +0 -411
  1598. data/spec/unit/pops/types/type_acceptor_spec.rb +0 -106
  1599. data/spec/unit/pops/types/type_asserter_spec.rb +0 -43
  1600. data/spec/unit/pops/types/type_calculator_spec.rb +0 -2504
  1601. data/spec/unit/pops/types/type_factory_spec.rb +0 -322
  1602. data/spec/unit/pops/types/type_formatter_spec.rb +0 -427
  1603. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -424
  1604. data/spec/unit/pops/types/type_parser_spec.rb +0 -445
  1605. data/spec/unit/pops/types/types_spec.rb +0 -755
  1606. data/spec/unit/pops/utils_spec.rb +0 -70
  1607. data/spec/unit/pops/validation_spec.rb +0 -66
  1608. data/spec/unit/pops/validator/validator_spec.rb +0 -1029
  1609. data/spec/unit/pops/visitor_spec.rb +0 -93
  1610. data/spec/unit/property/boolean_spec.rb +0 -24
  1611. data/spec/unit/property/ensure_spec.rb +0 -11
  1612. data/spec/unit/property/keyvalue_spec.rb +0 -259
  1613. data/spec/unit/property/list_spec.rb +0 -172
  1614. data/spec/unit/property/ordered_list_spec.rb +0 -59
  1615. data/spec/unit/property_spec.rb +0 -563
  1616. data/spec/unit/provider/README.markdown +0 -4
  1617. data/spec/unit/provider/aix_object_spec.rb +0 -821
  1618. data/spec/unit/provider/command_spec.rb +0 -62
  1619. data/spec/unit/provider/exec/posix_spec.rb +0 -232
  1620. data/spec/unit/provider/exec/shell_spec.rb +0 -53
  1621. data/spec/unit/provider/exec/windows_spec.rb +0 -105
  1622. data/spec/unit/provider/exec_spec.rb +0 -244
  1623. data/spec/unit/provider/file/posix_spec.rb +0 -230
  1624. data/spec/unit/provider/file/windows_spec.rb +0 -152
  1625. data/spec/unit/provider/group/aix_spec.rb +0 -91
  1626. data/spec/unit/provider/group/directoryservice_spec.rb +0 -33
  1627. data/spec/unit/provider/group/groupadd_spec.rb +0 -284
  1628. data/spec/unit/provider/group/ldap_spec.rb +0 -98
  1629. data/spec/unit/provider/group/pw_spec.rb +0 -78
  1630. data/spec/unit/provider/group/windows_adsi_spec.rb +0 -398
  1631. data/spec/unit/provider/ldap_spec.rb +0 -242
  1632. data/spec/unit/provider/nameservice/directoryservice_spec.rb +0 -157
  1633. data/spec/unit/provider/nameservice_spec.rb +0 -398
  1634. data/spec/unit/provider/package/aix_spec.rb +0 -158
  1635. data/spec/unit/provider/package/appdmg_spec.rb +0 -42
  1636. data/spec/unit/provider/package/apt_spec.rb +0 -302
  1637. data/spec/unit/provider/package/aptitude_spec.rb +0 -46
  1638. data/spec/unit/provider/package/aptrpm_spec.rb +0 -42
  1639. data/spec/unit/provider/package/base_spec.rb +0 -19
  1640. data/spec/unit/provider/package/dnf_spec.rb +0 -62
  1641. data/spec/unit/provider/package/dnfmodule_spec.rb +0 -276
  1642. data/spec/unit/provider/package/dpkg_spec.rb +0 -444
  1643. data/spec/unit/provider/package/freebsd_spec.rb +0 -51
  1644. data/spec/unit/provider/package/gem_spec.rb +0 -487
  1645. data/spec/unit/provider/package/hpux_spec.rb +0 -48
  1646. data/spec/unit/provider/package/macports_spec.rb +0 -142
  1647. data/spec/unit/provider/package/nim_spec.rb +0 -267
  1648. data/spec/unit/provider/package/openbsd_spec.rb +0 -417
  1649. data/spec/unit/provider/package/opkg_spec.rb +0 -180
  1650. data/spec/unit/provider/package/pacman_spec.rb +0 -438
  1651. data/spec/unit/provider/package/pip2_spec.rb +0 -38
  1652. data/spec/unit/provider/package/pip3_spec.rb +0 -38
  1653. data/spec/unit/provider/package/pip_spec.rb +0 -504
  1654. data/spec/unit/provider/package/pkg_spec.rb +0 -473
  1655. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -166
  1656. data/spec/unit/provider/package/pkgin_spec.rb +0 -185
  1657. data/spec/unit/provider/package/pkgng_spec.rb +0 -228
  1658. data/spec/unit/provider/package/pkgutil_spec.rb +0 -231
  1659. data/spec/unit/provider/package/portage_spec.rb +0 -226
  1660. data/spec/unit/provider/package/puppet_gem_spec.rb +0 -130
  1661. data/spec/unit/provider/package/puppetserver_gem_spec.rb +0 -139
  1662. data/spec/unit/provider/package/rpm_spec.rb +0 -674
  1663. data/spec/unit/provider/package/sun_spec.rb +0 -112
  1664. data/spec/unit/provider/package/tdnf_spec.rb +0 -15
  1665. data/spec/unit/provider/package/up2date_spec.rb +0 -22
  1666. data/spec/unit/provider/package/urpmi_spec.rb +0 -84
  1667. data/spec/unit/provider/package/windows/exe_package_spec.rb +0 -114
  1668. data/spec/unit/provider/package/windows/msi_package_spec.rb +0 -111
  1669. data/spec/unit/provider/package/windows/package_spec.rb +0 -180
  1670. data/spec/unit/provider/package/windows_spec.rb +0 -272
  1671. data/spec/unit/provider/package/yum_spec.rb +0 -512
  1672. data/spec/unit/provider/package/zypper_spec.rb +0 -327
  1673. data/spec/unit/provider/package_targetable_spec.rb +0 -60
  1674. data/spec/unit/provider/parsedfile_spec.rb +0 -263
  1675. data/spec/unit/provider/service/base_spec.rb +0 -109
  1676. data/spec/unit/provider/service/bsd_spec.rb +0 -127
  1677. data/spec/unit/provider/service/daemontools_spec.rb +0 -190
  1678. data/spec/unit/provider/service/debian_spec.rb +0 -158
  1679. data/spec/unit/provider/service/freebsd_spec.rb +0 -92
  1680. data/spec/unit/provider/service/gentoo_spec.rb +0 -250
  1681. data/spec/unit/provider/service/init_spec.rb +0 -316
  1682. data/spec/unit/provider/service/launchd_spec.rb +0 -425
  1683. data/spec/unit/provider/service/openbsd_spec.rb +0 -196
  1684. data/spec/unit/provider/service/openrc_spec.rb +0 -231
  1685. data/spec/unit/provider/service/openwrt_spec.rb +0 -101
  1686. data/spec/unit/provider/service/rcng_spec.rb +0 -40
  1687. data/spec/unit/provider/service/redhat_spec.rb +0 -190
  1688. data/spec/unit/provider/service/runit_spec.rb +0 -164
  1689. data/spec/unit/provider/service/smf_spec.rb +0 -526
  1690. data/spec/unit/provider/service/src_spec.rb +0 -186
  1691. data/spec/unit/provider/service/systemd_spec.rb +0 -578
  1692. data/spec/unit/provider/service/upstart_spec.rb +0 -681
  1693. data/spec/unit/provider/service/windows_spec.rb +0 -475
  1694. data/spec/unit/provider/user/aix_spec.rb +0 -320
  1695. data/spec/unit/provider/user/directoryservice_spec.rb +0 -1256
  1696. data/spec/unit/provider/user/hpux_spec.rb +0 -72
  1697. data/spec/unit/provider/user/ldap_spec.rb +0 -286
  1698. data/spec/unit/provider/user/openbsd_spec.rb +0 -76
  1699. data/spec/unit/provider/user/pw_spec.rb +0 -252
  1700. data/spec/unit/provider/user/user_role_add_spec.rb +0 -374
  1701. data/spec/unit/provider/user/useradd_spec.rb +0 -849
  1702. data/spec/unit/provider/user/windows_adsi_spec.rb +0 -407
  1703. data/spec/unit/provider_spec.rb +0 -904
  1704. data/spec/unit/puppet_pal_2pec.rb +0 -1033
  1705. data/spec/unit/puppet_pal_catalog_spec.rb +0 -962
  1706. data/spec/unit/puppet_pal_spec.rb +0 -3
  1707. data/spec/unit/puppet_spec.rb +0 -127
  1708. data/spec/unit/relationship_spec.rb +0 -202
  1709. data/spec/unit/reports/http_spec.rb +0 -119
  1710. data/spec/unit/reports/store_spec.rb +0 -69
  1711. data/spec/unit/reports_spec.rb +0 -68
  1712. data/spec/unit/resource/catalog_spec.rb +0 -1160
  1713. data/spec/unit/resource/status_spec.rb +0 -216
  1714. data/spec/unit/resource/type_collection_spec.rb +0 -332
  1715. data/spec/unit/resource/type_spec.rb +0 -876
  1716. data/spec/unit/resource_spec.rb +0 -1189
  1717. data/spec/unit/scheduler/job_spec.rb +0 -78
  1718. data/spec/unit/scheduler/scheduler_spec.rb +0 -115
  1719. data/spec/unit/scheduler/splay_job_spec.rb +0 -34
  1720. data/spec/unit/settings/array_setting_spec.rb +0 -39
  1721. data/spec/unit/settings/autosign_setting_spec.rb +0 -104
  1722. data/spec/unit/settings/certificate_revocation_setting_spec.rb +0 -37
  1723. data/spec/unit/settings/config_file_spec.rb +0 -147
  1724. data/spec/unit/settings/directory_setting_spec.rb +0 -27
  1725. data/spec/unit/settings/duration_setting_spec.rb +0 -48
  1726. data/spec/unit/settings/enum_setting_spec.rb +0 -27
  1727. data/spec/unit/settings/environment_conf_spec.rb +0 -133
  1728. data/spec/unit/settings/file_setting_spec.rb +0 -344
  1729. data/spec/unit/settings/http_extra_headers_spec.rb +0 -62
  1730. data/spec/unit/settings/ini_file_spec.rb +0 -550
  1731. data/spec/unit/settings/integer_setting_spec.rb +0 -42
  1732. data/spec/unit/settings/path_setting_spec.rb +0 -29
  1733. data/spec/unit/settings/port_setting_spec.rb +0 -31
  1734. data/spec/unit/settings/priority_setting_spec.rb +0 -65
  1735. data/spec/unit/settings/server_list_setting_spec.rb +0 -21
  1736. data/spec/unit/settings/string_setting_spec.rb +0 -74
  1737. data/spec/unit/settings/terminus_setting_spec.rb +0 -27
  1738. data/spec/unit/settings/value_translator_spec.rb +0 -75
  1739. data/spec/unit/settings_spec.rb +0 -2343
  1740. data/spec/unit/ssl/base_spec.rb +0 -125
  1741. data/spec/unit/ssl/certificate_request_attributes_spec.rb +0 -80
  1742. data/spec/unit/ssl/certificate_request_spec.rb +0 -373
  1743. data/spec/unit/ssl/certificate_signer_spec.rb +0 -17
  1744. data/spec/unit/ssl/certificate_spec.rb +0 -183
  1745. data/spec/unit/ssl/digest_spec.rb +0 -34
  1746. data/spec/unit/ssl/oids_spec.rb +0 -73
  1747. data/spec/unit/ssl/ssl_provider_spec.rb +0 -657
  1748. data/spec/unit/ssl/state_machine_spec.rb +0 -1117
  1749. data/spec/unit/ssl/verifier_spec.rb +0 -102
  1750. data/spec/unit/task_spec.rb +0 -345
  1751. data/spec/unit/test/test_helper_spec.rb +0 -17
  1752. data/spec/unit/transaction/additional_resource_generator_spec.rb +0 -534
  1753. data/spec/unit/transaction/event_manager_spec.rb +0 -365
  1754. data/spec/unit/transaction/event_spec.rb +0 -198
  1755. data/spec/unit/transaction/persistence_spec.rb +0 -276
  1756. data/spec/unit/transaction/report_spec.rb +0 -772
  1757. data/spec/unit/transaction/resource_harness_spec.rb +0 -625
  1758. data/spec/unit/transaction_spec.rb +0 -1037
  1759. data/spec/unit/type/README.markdown +0 -4
  1760. data/spec/unit/type/component_spec.rb +0 -52
  1761. data/spec/unit/type/exec_spec.rb +0 -937
  1762. data/spec/unit/type/file/checksum_spec.rb +0 -104
  1763. data/spec/unit/type/file/checksum_value_spec.rb +0 -285
  1764. data/spec/unit/type/file/content_spec.rb +0 -440
  1765. data/spec/unit/type/file/ctime_spec.rb +0 -33
  1766. data/spec/unit/type/file/ensure_spec.rb +0 -121
  1767. data/spec/unit/type/file/group_spec.rb +0 -65
  1768. data/spec/unit/type/file/mode_spec.rb +0 -220
  1769. data/spec/unit/type/file/mtime_spec.rb +0 -33
  1770. data/spec/unit/type/file/owner_spec.rb +0 -63
  1771. data/spec/unit/type/file/selinux_spec.rb +0 -86
  1772. data/spec/unit/type/file/source_spec.rb +0 -730
  1773. data/spec/unit/type/file/type_spec.rb +0 -18
  1774. data/spec/unit/type/file_spec.rb +0 -1746
  1775. data/spec/unit/type/filebucket_spec.rb +0 -104
  1776. data/spec/unit/type/group_spec.rb +0 -105
  1777. data/spec/unit/type/noop_metaparam_spec.rb +0 -37
  1778. data/spec/unit/type/package/package_settings_spec.rb +0 -156
  1779. data/spec/unit/type/package_spec.rb +0 -396
  1780. data/spec/unit/type/resources_spec.rb +0 -362
  1781. data/spec/unit/type/schedule_spec.rb +0 -621
  1782. data/spec/unit/type/service_spec.rb +0 -458
  1783. data/spec/unit/type/stage_spec.rb +0 -7
  1784. data/spec/unit/type/tidy_spec.rb +0 -493
  1785. data/spec/unit/type/user_spec.rb +0 -553
  1786. data/spec/unit/type/whit_spec.rb +0 -9
  1787. data/spec/unit/type_spec.rb +0 -1473
  1788. data/spec/unit/util/at_fork_spec.rb +0 -150
  1789. data/spec/unit/util/autoload_spec.rb +0 -330
  1790. data/spec/unit/util/backups_spec.rb +0 -130
  1791. data/spec/unit/util/character_encoding_spec.rb +0 -186
  1792. data/spec/unit/util/checksums_spec.rb +0 -223
  1793. data/spec/unit/util/colors_spec.rb +0 -44
  1794. data/spec/unit/util/command_line_spec.rb +0 -200
  1795. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +0 -129
  1796. data/spec/unit/util/constant_inflector_spec.rb +0 -55
  1797. data/spec/unit/util/diff_spec.rb +0 -46
  1798. data/spec/unit/util/docs_spec.rb +0 -100
  1799. data/spec/unit/util/errors_spec.rb +0 -36
  1800. data/spec/unit/util/execution_spec.rb +0 -943
  1801. data/spec/unit/util/execution_stub_spec.rb +0 -38
  1802. data/spec/unit/util/feature_spec.rb +0 -129
  1803. data/spec/unit/util/filetype_spec.rb +0 -223
  1804. data/spec/unit/util/inifile_spec.rb +0 -510
  1805. data/spec/unit/util/json_lockfile_spec.rb +0 -48
  1806. data/spec/unit/util/json_spec.rb +0 -126
  1807. data/spec/unit/util/ldap/connection_spec.rb +0 -162
  1808. data/spec/unit/util/ldap/generator_spec.rb +0 -49
  1809. data/spec/unit/util/ldap/manager_spec.rb +0 -612
  1810. data/spec/unit/util/lockfile_spec.rb +0 -117
  1811. data/spec/unit/util/log/destinations_spec.rb +0 -258
  1812. data/spec/unit/util/log_spec.rb +0 -479
  1813. data/spec/unit/util/logging_spec.rb +0 -618
  1814. data/spec/unit/util/metric_spec.rb +0 -89
  1815. data/spec/unit/util/monkey_patches_spec.rb +0 -161
  1816. data/spec/unit/util/multi_match_spec.rb +0 -38
  1817. data/spec/unit/util/network_device/config_spec.rb +0 -91
  1818. data/spec/unit/util/network_device/transport/base_spec.rb +0 -40
  1819. data/spec/unit/util/network_device_spec.rb +0 -43
  1820. data/spec/unit/util/package/version/debian_spec.rb +0 -83
  1821. data/spec/unit/util/package/version/pip_spec.rb +0 -464
  1822. data/spec/unit/util/package/version/range_spec.rb +0 -175
  1823. data/spec/unit/util/package/version/rpm_spec.rb +0 -121
  1824. data/spec/unit/util/package_spec.rb +0 -19
  1825. data/spec/unit/util/pidlock_spec.rb +0 -333
  1826. data/spec/unit/util/plist_spec.rb +0 -168
  1827. data/spec/unit/util/posix_spec.rb +0 -630
  1828. data/spec/unit/util/profiler/aggregate_spec.rb +0 -55
  1829. data/spec/unit/util/profiler/around_profiler_spec.rb +0 -61
  1830. data/spec/unit/util/profiler/logging_spec.rb +0 -70
  1831. data/spec/unit/util/profiler/object_counts_spec.rb +0 -13
  1832. data/spec/unit/util/profiler/wall_clock_spec.rb +0 -13
  1833. data/spec/unit/util/profiler_spec.rb +0 -47
  1834. data/spec/unit/util/rdoc_spec.rb +0 -55
  1835. data/spec/unit/util/reference_spec.rb +0 -38
  1836. data/spec/unit/util/resource_template_spec.rb +0 -57
  1837. data/spec/unit/util/retry_action_spec.rb +0 -84
  1838. data/spec/unit/util/rpm_compare_spec.rb +0 -196
  1839. data/spec/unit/util/rubygems_spec.rb +0 -47
  1840. data/spec/unit/util/run_mode_spec.rb +0 -185
  1841. data/spec/unit/util/selinux_spec.rb +0 -422
  1842. data/spec/unit/util/skip_tags_spec.rb +0 -14
  1843. data/spec/unit/util/splayer_spec.rb +0 -44
  1844. data/spec/unit/util/storage_spec.rb +0 -330
  1845. data/spec/unit/util/suidmanager_spec.rb +0 -278
  1846. data/spec/unit/util/symbolic_file_mode_spec.rb +0 -180
  1847. data/spec/unit/util/tag_set_spec.rb +0 -52
  1848. data/spec/unit/util/tagging_spec.rb +0 -246
  1849. data/spec/unit/util/terminal_spec.rb +0 -41
  1850. data/spec/unit/util/user_attr_spec.rb +0 -45
  1851. data/spec/unit/util/warnings_spec.rb +0 -45
  1852. data/spec/unit/util/watched_file_spec.rb +0 -52
  1853. data/spec/unit/util/watcher/periodic_watcher_spec.rb +0 -52
  1854. data/spec/unit/util/watcher_spec.rb +0 -86
  1855. data/spec/unit/util/windows/access_control_entry_spec.rb +0 -66
  1856. data/spec/unit/util/windows/access_control_list_spec.rb +0 -132
  1857. data/spec/unit/util/windows/adsi_spec.rb +0 -704
  1858. data/spec/unit/util/windows/api_types_spec.rb +0 -184
  1859. data/spec/unit/util/windows/eventlog_spec.rb +0 -120
  1860. data/spec/unit/util/windows/file_spec.rb +0 -88
  1861. data/spec/unit/util/windows/root_certs_spec.rb +0 -16
  1862. data/spec/unit/util/windows/security_descriptor_spec.rb +0 -115
  1863. data/spec/unit/util/windows/service_spec.rb +0 -677
  1864. data/spec/unit/util/windows/sid_spec.rb +0 -338
  1865. data/spec/unit/util/windows/string_spec.rb +0 -55
  1866. data/spec/unit/util/windows_spec.rb +0 -23
  1867. data/spec/unit/util/yaml_spec.rb +0 -171
  1868. data/spec/unit/util_spec.rb +0 -960
  1869. data/spec/unit/version_spec.rb +0 -61
  1870. data/spec/unit/x509/cert_provider_spec.rb +0 -663
  1871. 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