puppet 4.5.3-universal-darwin → 4.6.1-universal-darwin

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

Potentially problematic release.


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

Files changed (422) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +10 -1
  3. data/ext/debian/control +2 -4
  4. data/ext/project_data.yaml +4 -4
  5. data/install.rb +6 -2
  6. data/lib/puppet.rb +3 -1
  7. data/lib/puppet/agent/locker.rb +1 -1
  8. data/lib/puppet/application.rb +6 -4
  9. data/lib/puppet/application/agent.rb +2 -1
  10. data/lib/puppet/application/cert.rb +35 -2
  11. data/lib/puppet/application/device.rb +1 -1
  12. data/lib/puppet/application/generate.rb +5 -0
  13. data/lib/puppet/application/lookup.rb +3 -3
  14. data/lib/puppet/application_support.rb +1 -1
  15. data/lib/puppet/compilable_resource_type.rb +15 -0
  16. data/lib/puppet/configurer.rb +67 -10
  17. data/lib/puppet/configurer/plugin_handler.rb +2 -4
  18. data/lib/puppet/data_providers/hiera_config.rb +1 -1
  19. data/lib/puppet/defaults.rb +34 -7
  20. data/lib/puppet/environments.rb +4 -2
  21. data/lib/puppet/error.rb +1 -1
  22. data/lib/puppet/external/dot.rb +1 -1
  23. data/lib/puppet/face/ca.rb +4 -1
  24. data/lib/puppet/face/certificate.rb +7 -1
  25. data/lib/puppet/face/epp.rb +5 -5
  26. data/lib/puppet/face/generate.rb +64 -0
  27. data/lib/puppet/face/help.rb +19 -13
  28. data/lib/puppet/face/man.rb +1 -1
  29. data/lib/puppet/feature/external_facts.rb +1 -1
  30. data/lib/puppet/file_system.rb +16 -0
  31. data/lib/puppet/file_system/file_impl.rb +5 -0
  32. data/lib/puppet/file_system/memory_impl.rb +4 -0
  33. data/lib/puppet/file_system/path_pattern.rb +1 -0
  34. data/lib/puppet/file_system/windows.rb +19 -0
  35. data/lib/puppet/functions.rb +3 -5
  36. data/lib/puppet/functions/assert_type.rb +1 -1
  37. data/lib/puppet/functions/defined.rb +7 -5
  38. data/lib/puppet/functions/dig.rb +2 -18
  39. data/lib/puppet/functions/hiera.rb +1 -1
  40. data/lib/puppet/functions/lest.rb +1 -37
  41. data/lib/puppet/functions/new.rb +2 -473
  42. data/lib/puppet/functions/reverse_each.rb +2 -59
  43. data/lib/puppet/functions/scanf.rb +4 -4
  44. data/lib/puppet/functions/step.rb +1 -63
  45. data/lib/puppet/functions/then.rb +1 -61
  46. data/lib/puppet/functions/type.rb +1 -40
  47. data/lib/puppet/functions/unwrap.rb +40 -0
  48. data/lib/puppet/generate/models/type/property.rb +70 -0
  49. data/lib/puppet/generate/models/type/type.rb +57 -0
  50. data/lib/puppet/generate/templates/type/pcore.erb +41 -0
  51. data/lib/puppet/generate/type.rb +239 -0
  52. data/lib/puppet/graph/simple_graph.rb +2 -6
  53. data/lib/puppet/indirector/catalog/static_compiler.rb +5 -2
  54. data/lib/puppet/indirector/facts/facter.rb +1 -1
  55. data/lib/puppet/indirector/key/ca.rb +2 -2
  56. data/lib/puppet/indirector/request.rb +25 -4
  57. data/lib/puppet/indirector/rest.rb +73 -3
  58. data/lib/puppet/info_service/class_information_service.rb +1 -2
  59. data/lib/puppet/interface/documentation.rb +1 -1
  60. data/lib/puppet/loaders.rb +2 -0
  61. data/lib/puppet/metatype/manager.rb +6 -6
  62. data/lib/puppet/module.rb +8 -1
  63. data/lib/puppet/module_tool.rb +2 -2
  64. data/lib/puppet/module_tool/checksums.rb +1 -1
  65. data/lib/puppet/module_tool/errors/installer.rb +2 -2
  66. data/lib/puppet/module_tool/metadata.rb +1 -1
  67. data/lib/puppet/network/http/api/indirected_routes.rb +23 -32
  68. data/lib/puppet/network/http/rack/rest.rb +15 -1
  69. data/lib/puppet/network/rights.rb +1 -11
  70. data/lib/puppet/node/environment.rb +7 -3
  71. data/lib/puppet/node/facts.rb +1 -1
  72. data/lib/puppet/parameter.rb +23 -3
  73. data/lib/puppet/parameter/boolean.rb +1 -1
  74. data/lib/puppet/parameter/value.rb +1 -1
  75. data/lib/puppet/parser.rb +0 -1
  76. data/lib/puppet/parser/ast/pops_bridge.rb +1 -1
  77. data/lib/puppet/parser/ast/resource.rb +5 -0
  78. data/lib/puppet/parser/ast/resource_instance.rb +5 -1
  79. data/lib/puppet/parser/ast/resourceparam.rb +5 -0
  80. data/lib/puppet/parser/compiler.rb +14 -17
  81. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +1 -1
  82. data/lib/puppet/parser/environment_compiler.rb +10 -0
  83. data/lib/puppet/parser/functions/create_resources.rb +39 -24
  84. data/lib/puppet/parser/functions/defined.rb +2 -26
  85. data/lib/puppet/parser/functions/dig.rb +29 -0
  86. data/lib/puppet/parser/functions/lest.rb +49 -0
  87. data/lib/puppet/parser/functions/new.rb +530 -0
  88. data/lib/puppet/parser/functions/require.rb +1 -1
  89. data/lib/puppet/parser/functions/reverse_each.rb +83 -0
  90. data/lib/puppet/parser/functions/scanf.rb +4 -4
  91. data/lib/puppet/parser/functions/step.rb +84 -0
  92. data/lib/puppet/parser/functions/then.rb +73 -0
  93. data/lib/puppet/parser/functions/type.rb +53 -0
  94. data/lib/puppet/parser/resource.rb +16 -7
  95. data/lib/puppet/parser/scope.rb +36 -28
  96. data/lib/puppet/parser/type_loader.rb +1 -1
  97. data/lib/puppet/plugins/data_providers/data_provider.rb +1 -1
  98. data/lib/puppet/pops.rb +13 -0
  99. data/lib/puppet/pops/adapters.rb +49 -49
  100. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +1 -1
  101. data/lib/puppet/pops/evaluator/access_operator.rb +39 -2
  102. data/lib/puppet/pops/evaluator/closure.rb +39 -13
  103. data/lib/puppet/pops/evaluator/collector_transformer.rb +10 -1
  104. data/lib/puppet/pops/evaluator/evaluator_impl.rb +16 -11
  105. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  106. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -1
  107. data/lib/puppet/pops/evaluator/literal_evaluator.rb +0 -1
  108. data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -2
  109. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
  110. data/lib/puppet/pops/evaluator/runtime3_support.rb +19 -45
  111. data/lib/puppet/pops/functions/function.rb +5 -0
  112. data/lib/puppet/pops/issues.rb +1 -1
  113. data/lib/puppet/pops/label_provider.rb +2 -2
  114. data/lib/puppet/pops/loader/base_loader.rb +12 -15
  115. data/lib/puppet/pops/loader/loader.rb +15 -50
  116. data/lib/puppet/pops/loader/loader_paths.rb +28 -2
  117. data/lib/puppet/pops/loader/module_loaders.rb +16 -1
  118. data/lib/puppet/pops/loader/null_loader.rb +17 -1
  119. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +12 -11
  120. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
  121. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +2 -3
  122. data/lib/puppet/pops/loader/runtime3_type_loader.rb +52 -13
  123. data/lib/puppet/pops/loader/static_loader.rb +55 -0
  124. data/lib/puppet/pops/loader/type_definition_instantiator.rb +30 -14
  125. data/lib/puppet/pops/loader/typed_name.rb +50 -0
  126. data/lib/puppet/pops/loaders.rb +64 -19
  127. data/lib/puppet/pops/merge_strategy.rb +7 -7
  128. data/lib/puppet/pops/migration/migration_checker.rb +4 -0
  129. data/lib/puppet/pops/model/model_label_provider.rb +2 -0
  130. data/lib/puppet/pops/parser/egrammar.ra +8 -5
  131. data/lib/puppet/pops/parser/eparser.rb +1550 -1498
  132. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  133. data/lib/puppet/pops/parser/interpolation_support.rb +7 -0
  134. data/lib/puppet/pops/parser/lexer2.rb +14 -1
  135. data/lib/puppet/pops/parser/locator.rb +30 -1
  136. data/lib/puppet/pops/parser/parser_support.rb +0 -3
  137. data/lib/puppet/pops/parser/slurp_support.rb +3 -3
  138. data/lib/puppet/pops/patterns.rb +9 -1
  139. data/lib/puppet/pops/pcore.rb +67 -11
  140. data/lib/puppet/pops/puppet_stack.rb +43 -0
  141. data/lib/puppet/pops/resource/param.rb +51 -0
  142. data/lib/puppet/pops/resource/resource_type_impl.rb +301 -0
  143. data/lib/puppet/pops/resource/resource_type_set.pcore +21 -0
  144. data/lib/puppet/pops/serialization.rb +17 -0
  145. data/lib/puppet/pops/serialization/abstract_reader.rb +149 -0
  146. data/lib/puppet/pops/serialization/abstract_writer.rb +179 -0
  147. data/lib/puppet/pops/serialization/deserializer.rb +60 -0
  148. data/lib/puppet/pops/serialization/extension.rb +126 -0
  149. data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
  150. data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
  151. data/lib/puppet/pops/serialization/json.rb +247 -0
  152. data/lib/puppet/pops/serialization/object.rb +63 -0
  153. data/lib/puppet/pops/serialization/rgen.rb +151 -0
  154. data/lib/puppet/pops/serialization/serializer.rb +91 -0
  155. data/lib/puppet/pops/serialization/time_factory.rb +66 -0
  156. data/lib/puppet/pops/types/annotatable.rb +36 -0
  157. data/lib/puppet/pops/types/implementation_registry.rb +3 -8
  158. data/lib/puppet/pops/types/p_meta_type.rb +83 -0
  159. data/lib/puppet/pops/types/p_object_type.rb +110 -117
  160. data/lib/puppet/pops/types/p_runtime_type.rb +13 -0
  161. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +23 -0
  162. data/lib/puppet/pops/types/p_sem_ver_type.rb +30 -2
  163. data/lib/puppet/pops/types/p_sensitive_type.rb +69 -0
  164. data/lib/puppet/pops/types/p_type_set_type.rb +361 -0
  165. data/lib/puppet/pops/types/puppet_object.rb +0 -5
  166. data/lib/puppet/pops/types/ruby_generator.rb +9 -2
  167. data/lib/puppet/pops/types/type_calculator.rb +6 -1
  168. data/lib/puppet/pops/types/type_factory.rb +14 -12
  169. data/lib/puppet/pops/types/type_formatter.rb +78 -33
  170. data/lib/puppet/pops/types/type_mismatch_describer.rb +0 -2
  171. data/lib/puppet/pops/types/type_parser.rb +27 -2
  172. data/lib/puppet/pops/types/type_set_reference.rb +59 -0
  173. data/lib/puppet/pops/types/types.rb +366 -13
  174. data/lib/puppet/pops/validation.rb +4 -4
  175. data/lib/puppet/pops/validation/checker4_0.rb +5 -2
  176. data/lib/puppet/pops/visitor.rb +2 -2
  177. data/lib/puppet/property.rb +64 -5
  178. data/lib/puppet/provider.rb +1 -1
  179. data/lib/puppet/provider/aixobject.rb +3 -3
  180. data/lib/puppet/provider/group/aix.rb +4 -4
  181. data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
  182. data/lib/puppet/provider/mailalias/aliases.rb +1 -1
  183. data/lib/puppet/provider/mcx/mcxcontent.rb +2 -2
  184. data/lib/puppet/provider/mount/parsed.rb +1 -1
  185. data/lib/puppet/provider/nameservice/directoryservice.rb +5 -5
  186. data/lib/puppet/provider/package/appdmg.rb +3 -3
  187. data/lib/puppet/provider/package/apple.rb +1 -1
  188. data/lib/puppet/provider/package/dnf.rb +5 -0
  189. data/lib/puppet/provider/package/nim.rb +1 -1
  190. data/lib/puppet/provider/package/pacman.rb +2 -2
  191. data/lib/puppet/provider/package/pip.rb +5 -3
  192. data/lib/puppet/provider/package/pip3.rb +1 -1
  193. data/lib/puppet/provider/package/pkg.rb +5 -5
  194. data/lib/puppet/provider/package/pkgdmg.rb +4 -4
  195. data/lib/puppet/provider/package/pkgin.rb +1 -1
  196. data/lib/puppet/provider/package/pkgutil.rb +1 -1
  197. data/lib/puppet/provider/package/portage.rb +48 -8
  198. data/lib/puppet/provider/package/sun.rb +1 -1
  199. data/lib/puppet/provider/package/tdnf.rb +28 -0
  200. data/lib/puppet/provider/package/yum.rb +22 -4
  201. data/lib/puppet/provider/parsedfile.rb +2 -2
  202. data/lib/puppet/provider/service/base.rb +1 -1
  203. data/lib/puppet/provider/service/bsd.rb +1 -1
  204. data/lib/puppet/provider/service/daemontools.rb +2 -2
  205. data/lib/puppet/provider/service/debian.rb +3 -3
  206. data/lib/puppet/provider/service/init.rb +5 -3
  207. data/lib/puppet/provider/service/launchd.rb +16 -2
  208. data/lib/puppet/provider/service/runit.rb +1 -1
  209. data/lib/puppet/provider/service/smf.rb +8 -1
  210. data/lib/puppet/provider/service/systemd.rb +39 -6
  211. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  212. data/lib/puppet/provider/user/aix.rb +3 -2
  213. data/lib/puppet/provider/user/directoryservice.rb +4 -3
  214. data/lib/puppet/provider/user/hpux.rb +1 -1
  215. data/lib/puppet/provider/user/user_role_add.rb +1 -1
  216. data/lib/puppet/provider/user/windows_adsi.rb +3 -0
  217. data/lib/puppet/provider/zfs/zfs.rb +1 -1
  218. data/lib/puppet/reference/type.rb +1 -1
  219. data/lib/puppet/resource.rb +33 -7
  220. data/lib/puppet/resource/capability_finder.rb +74 -54
  221. data/lib/puppet/resource/status.rb +11 -2
  222. data/lib/puppet/settings.rb +17 -6
  223. data/lib/puppet/settings/environment_conf.rb +1 -1
  224. data/lib/puppet/settings/server_list_setting.rb +20 -0
  225. data/lib/puppet/ssl/certificate_authority.rb +32 -9
  226. data/lib/puppet/ssl/certificate_authority/interface.rb +164 -24
  227. data/lib/puppet/ssl/host.rb +3 -3
  228. data/lib/puppet/ssl/oids.rb +10 -0
  229. data/lib/puppet/ssl/validator/default_validator.rb +2 -2
  230. data/lib/puppet/test/test_helper.rb +2 -2
  231. data/lib/puppet/transaction.rb +12 -0
  232. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  233. data/lib/puppet/transaction/event.rb +29 -2
  234. data/lib/puppet/transaction/event_manager.rb +1 -1
  235. data/lib/puppet/transaction/persistence.rb +84 -0
  236. data/lib/puppet/transaction/report.rb +49 -2
  237. data/lib/puppet/transaction/resource_harness.rb +98 -18
  238. data/lib/puppet/type.rb +63 -21
  239. data/lib/puppet/type/augeas.rb +3 -3
  240. data/lib/puppet/type/cron.rb +1 -1
  241. data/lib/puppet/type/file.rb +39 -2
  242. data/lib/puppet/type/file/data_sync.rb +13 -5
  243. data/lib/puppet/type/host.rb +1 -1
  244. data/lib/puppet/type/mount.rb +2 -6
  245. data/lib/puppet/type/notify.rb +1 -1
  246. data/lib/puppet/type/package.rb +1 -1
  247. data/lib/puppet/type/resources.rb +1 -1
  248. data/lib/puppet/type/scheduled_task.rb +1 -1
  249. data/lib/puppet/type/ssh_authorized_key.rb +2 -2
  250. data/lib/puppet/type/tidy.rb +1 -1
  251. data/lib/puppet/type/yumrepo.rb +3 -3
  252. data/lib/puppet/type/zone.rb +1 -1
  253. data/lib/puppet/util.rb +2 -2
  254. data/lib/puppet/util/classgen.rb +1 -1
  255. data/lib/puppet/util/command_line.rb +6 -2
  256. data/lib/puppet/util/command_line/trollop.rb +1 -1
  257. data/lib/puppet/util/execution.rb +2 -2
  258. data/lib/puppet/util/http_proxy.rb +1 -1
  259. data/lib/puppet/util/inifile.rb +1 -1
  260. data/lib/puppet/util/instance_loader.rb +1 -1
  261. data/lib/puppet/util/logging.rb +1 -1
  262. data/lib/puppet/util/multi_match.rb +1 -1
  263. data/lib/puppet/util/plist.rb +15 -5
  264. data/lib/puppet/util/profiler.rb +1 -1
  265. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  266. data/lib/puppet/util/psych_support.rb +1 -1
  267. data/lib/puppet/util/rdoc.rb +2 -2
  268. data/lib/puppet/util/rubygems.rb +1 -1
  269. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
  270. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  271. data/lib/puppet/util/windows/adsi.rb +30 -8
  272. data/lib/puppet/util/windows/api_types.rb +1 -1
  273. data/lib/puppet/util/windows/file.rb +59 -0
  274. data/lib/puppet/util/windows/process.rb +10 -0
  275. data/lib/puppet/util/windows/security.rb +1 -1
  276. data/lib/puppet/util/windows/user.rb +22 -4
  277. data/lib/puppet/util/yaml.rb +15 -3
  278. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
  279. data/lib/puppet/vendor/rgen_patch.rb +1 -1
  280. data/lib/puppet/version.rb +2 -2
  281. data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
  282. data/spec/integration/agent/logging_spec.rb +15 -14
  283. data/spec/integration/application/apply_spec.rb +1 -0
  284. data/spec/integration/directory_environments_spec.rb +16 -0
  285. data/spec/integration/environments/settings_spec.rb +32 -4
  286. data/spec/integration/faces/documentation_spec.rb +1 -1
  287. data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
  288. data/spec/integration/node/environment_spec.rb +21 -0
  289. data/spec/integration/parser/collection_spec.rb +10 -0
  290. data/spec/integration/parser/compiler_spec.rb +76 -840
  291. data/spec/integration/parser/functions/require_spec.rb +3 -3
  292. data/spec/integration/parser/parameter_defaults_spec.rb +6 -2
  293. data/spec/integration/parser/pcore_resource_spec.rb +208 -0
  294. data/spec/integration/parser/resource_expressions_spec.rb +4 -2
  295. data/spec/integration/provider/yumrepo_spec.rb +4 -1
  296. data/spec/integration/transaction/report_spec.rb +666 -0
  297. data/spec/integration/type/file_spec.rb +11 -12
  298. data/spec/integration/util/windows/adsi_spec.rb +99 -0
  299. data/spec/integration/util/windows/principal_spec.rb +109 -60
  300. data/spec/integration/util/windows/process_spec.rb +4 -2
  301. data/spec/integration/util/windows/security_spec.rb +34 -8
  302. data/spec/integration/util/windows/user_spec.rb +26 -4
  303. data/spec/lib/puppet_spec/files.rb +2 -2
  304. data/spec/lib/puppet_spec/network.rb +12 -8
  305. data/spec/shared_examples/rhel_package_provider.rb +341 -0
  306. data/spec/spec_helper.rb +8 -2
  307. data/spec/unit/application/cert_spec.rb +20 -0
  308. data/spec/unit/configurer/plugin_handler_spec.rb +0 -26
  309. data/spec/unit/configurer_spec.rb +46 -0
  310. data/spec/unit/defaults_spec.rb +14 -0
  311. data/spec/unit/face/generate_spec.rb +230 -0
  312. data/spec/unit/face/help_spec.rb +53 -0
  313. data/spec/unit/face/parser_spec.rb +6 -0
  314. data/spec/unit/face/plugin_spec.rb +0 -4
  315. data/spec/unit/file_system_spec.rb +85 -0
  316. data/spec/unit/functions/lookup_spec.rb +4 -4
  317. data/spec/unit/functions/match_spec.rb +2 -2
  318. data/spec/unit/functions/regsubst_spec.rb +1 -1
  319. data/spec/unit/functions/split_spec.rb +1 -1
  320. data/spec/unit/functions/unwrap_spec.rb +29 -0
  321. data/spec/unit/functions/versioncmp_spec.rb +1 -1
  322. data/spec/unit/functions4_spec.rb +8 -8
  323. data/spec/unit/indirector/facts/facter_spec.rb +1 -9
  324. data/spec/unit/indirector/rest_spec.rb +95 -9
  325. data/spec/unit/module_spec.rb +43 -7
  326. data/spec/unit/module_tool/applications/installer_spec.rb +10 -1
  327. data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
  328. data/spec/unit/module_tool/applications/upgrader_spec.rb +8 -0
  329. data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
  330. data/spec/unit/network/http/api/indirected_routes_spec.rb +49 -58
  331. data/spec/unit/network/http/api/master/v3_spec.rb +7 -4
  332. data/spec/unit/network/rights_spec.rb +1 -1
  333. data/spec/unit/parameter_spec.rb +11 -0
  334. data/spec/unit/parser/compiler_spec.rb +19 -33
  335. data/spec/unit/{appmgmt_spec.rb → parser/environment_compiler_spec.rb} +12 -1
  336. data/spec/unit/parser/functions/create_resources_spec.rb +76 -4
  337. data/spec/unit/parser/functions/require_spec.rb +2 -2
  338. data/spec/unit/parser/resource_spec.rb +21 -11
  339. data/spec/unit/parser/scope_spec.rb +1 -5
  340. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1 -1
  341. data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -1
  342. data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
  343. data/spec/unit/pops/loaders/loaders_spec.rb +63 -5
  344. data/spec/unit/pops/loaders/module_loaders_spec.rb +2 -2
  345. data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
  346. data/spec/unit/pops/parser/lexer2_spec.rb +27 -3
  347. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +8 -0
  348. data/spec/unit/pops/parser/parse_calls_spec.rb +9 -0
  349. data/spec/unit/pops/puppet_stack_spec.rb +79 -0
  350. data/spec/unit/pops/resource/resource_type_impl_spec.rb +37 -0
  351. data/spec/unit/pops/serialization/packer_spec.rb +153 -0
  352. data/spec/unit/pops/serialization/rgen_spec.rb +88 -0
  353. data/spec/unit/pops/serialization/serialization_spec.rb +228 -0
  354. data/spec/unit/pops/types/p_object_type_spec.rb +44 -2
  355. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +42 -0
  356. data/spec/unit/pops/types/p_sensitive_type_spec.rb +139 -0
  357. data/spec/unit/pops/types/p_type_set_type_spec.rb +424 -0
  358. data/spec/unit/pops/types/ruby_generator_spec.rb +497 -181
  359. data/spec/unit/pops/types/type_calculator_spec.rb +10 -4
  360. data/spec/unit/pops/types/type_formatter_spec.rb +1 -1
  361. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +2 -2
  362. data/spec/unit/pops/types/type_parser_spec.rb +1 -1
  363. data/spec/unit/pops/types/types_spec.rb +1 -1
  364. data/spec/unit/pops/validator/validator_spec.rb +18 -1
  365. data/spec/unit/property_spec.rb +48 -11
  366. data/spec/unit/provider/group/windows_adsi_spec.rb +11 -1
  367. data/spec/unit/provider/package/dnf_spec.rb +1 -99
  368. data/spec/unit/provider/package/pacman_spec.rb +4 -4
  369. data/spec/unit/provider/package/pip_spec.rb +14 -0
  370. data/spec/unit/provider/package/pkg_spec.rb +6 -0
  371. data/spec/unit/provider/package/pkgdmg_spec.rb +0 -3
  372. data/spec/unit/provider/package/portage_spec.rb +64 -8
  373. data/spec/unit/provider/package/tdnf_spec.rb +18 -0
  374. data/spec/unit/provider/package/windows/package_spec.rb +4 -1
  375. data/spec/unit/provider/package/windows_spec.rb +8 -2
  376. data/spec/unit/provider/package/yum_spec.rb +6 -377
  377. data/spec/unit/provider/service/base_spec.rb +6 -0
  378. data/spec/unit/provider/service/debian_spec.rb +16 -7
  379. data/spec/unit/provider/service/gentoo_spec.rb +6 -0
  380. data/spec/unit/provider/service/init_spec.rb +7 -0
  381. data/spec/unit/provider/service/launchd_spec.rb +35 -4
  382. data/spec/unit/provider/service/openrc_spec.rb +6 -0
  383. data/spec/unit/provider/service/smf_spec.rb +31 -6
  384. data/spec/unit/provider/service/src_spec.rb +6 -0
  385. data/spec/unit/provider/service/systemd_spec.rb +70 -20
  386. data/spec/unit/provider/service/upstart_spec.rb +6 -0
  387. data/spec/unit/provider/user/aix_spec.rb +7 -0
  388. data/spec/unit/provider/user/directoryservice_spec.rb +30 -1
  389. data/spec/unit/provider/user/windows_adsi_spec.rb +19 -0
  390. data/spec/unit/resource/capability_finder_spec.rb +51 -3
  391. data/spec/unit/resource/catalog_spec.rb +5 -0
  392. data/spec/unit/resource/type_spec.rb +2 -2
  393. data/spec/unit/resource_spec.rb +19 -0
  394. data/spec/unit/settings_spec.rb +13 -0
  395. data/spec/unit/ssl/certificate_authority/interface_spec.rb +176 -10
  396. data/spec/unit/ssl/certificate_authority_spec.rb +63 -22
  397. data/spec/unit/ssl/host_spec.rb +1 -1
  398. data/spec/unit/ssl/oids_spec.rb +24 -21
  399. data/spec/unit/transaction/event_spec.rb +3 -1
  400. data/spec/unit/transaction/persistence_spec.rb +173 -0
  401. data/spec/unit/transaction/report_spec.rb +64 -1
  402. data/spec/unit/transaction/resource_harness_spec.rb +91 -0
  403. data/spec/unit/type/file/content_spec.rb +47 -15
  404. data/spec/unit/type/file_spec.rb +28 -0
  405. data/spec/unit/type/mount_spec.rb +5 -12
  406. data/spec/unit/type/yumrepo_spec.rb +1 -5
  407. data/spec/unit/type_spec.rb +32 -0
  408. data/spec/unit/util/command_line_spec.rb +11 -0
  409. data/spec/unit/util/execution_spec.rb +1 -1
  410. data/spec/unit/util/plist_spec.rb +16 -3
  411. data/spec/unit/util/storage_spec.rb +4 -1
  412. data/spec/unit/util/windows/adsi_spec.rb +23 -2
  413. data/spec/unit/util/windows/file_spec.rb +56 -1
  414. data/spec/unit/util/windows/sid_spec.rb +31 -7
  415. data/spec/unit/util/yaml_spec.rb +12 -0
  416. data/spec/unit/util_spec.rb +87 -20
  417. metadata +89 -34
  418. data/ext/puppetlisten/puppetlisten.rb +0 -77
  419. data/ext/puppetlisten/puppetrun.rb +0 -38
  420. data/lib/puppet/resource/type_collection_helper.rb +0 -7
  421. data/spec/unit/parser/functions/defined_spec.rb +0 -120
  422. data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
@@ -157,7 +157,7 @@ class Puppet::Settings::EnvironmentConf
157
157
  # Path begins with $something interpolatable
158
158
  path
159
159
  else
160
- File.expand_path(path, @path_to_env)
160
+ Puppet::FileSystem.expand_path(path, @path_to_env)
161
161
  end
162
162
  end
163
163
 
@@ -0,0 +1,20 @@
1
+ class Puppet::Settings::ServerListSetting < Puppet::Settings::ArraySetting
2
+
3
+ def type
4
+ :server_list
5
+ end
6
+
7
+ def munge(value)
8
+ servers = super
9
+ servers.map! { |server|
10
+ case server
11
+ when String
12
+ server.split(':')
13
+ when Array
14
+ server
15
+ else
16
+ raise ArgumentError, "Expected an Array of String, got a #{value.class}"
17
+ end
18
+ }
19
+ end
20
+ end
@@ -127,7 +127,7 @@ class Puppet::SSL::CertificateAuthority
127
127
  host.generate_certificate_request(:dns_alt_names => san)
128
128
  # CSR may have been implicitly autosigned, generating a certificate
129
129
  # Or sign explicitly
130
- host.certificate || sign(name, !!san)
130
+ host.certificate || sign(name, {allow_dns_alt_names: !!san})
131
131
  end
132
132
 
133
133
  # Generate our CA certificate.
@@ -145,7 +145,8 @@ class Puppet::SSL::CertificateAuthority
145
145
  request.generate(host.key)
146
146
 
147
147
  # Create a self-signed certificate.
148
- @certificate = sign(host.name, false, request)
148
+ @certificate = sign(host.name, {allow_dns_alt_names: false,
149
+ self_signing_csr: request})
149
150
 
150
151
  # And make sure we initialize our CRL.
151
152
  crl
@@ -271,8 +272,13 @@ class Puppet::SSL::CertificateAuthority
271
272
  end
272
273
 
273
274
  # Sign a given certificate request.
274
- def sign(hostname, allow_dns_alt_names = false, self_signing_csr = nil)
275
- # This is a self-signed certificate
275
+ def sign(hostname, options={})
276
+ options[:allow_authorization_extensions] ||= false
277
+ options[:allow_dns_alt_names] ||= false
278
+ options[:self_signing_csr] ||= nil
279
+
280
+ self_signing_csr = options.delete(:self_signing_csr)
281
+
276
282
  if self_signing_csr
277
283
  # # This is a self-signed certificate, which is for the CA. Since this
278
284
  # # forces the certificate to be self-signed, anyone who manages to trick
@@ -282,7 +288,6 @@ class Puppet::SSL::CertificateAuthority
282
288
  cert_type = :ca
283
289
  issuer = csr.content
284
290
  else
285
- allow_dns_alt_names = true if hostname == Puppet[:certname].downcase
286
291
  unless csr = Puppet::SSL::CertificateRequest.indirection.find(hostname)
287
292
  raise ArgumentError, "Could not find certificate request for #{hostname}"
288
293
  end
@@ -292,7 +297,7 @@ class Puppet::SSL::CertificateAuthority
292
297
 
293
298
  # Make sure that the CSR conforms to our internal signing policies.
294
299
  # This will raise if the CSR doesn't conform, but just in case...
295
- check_internal_signing_policies(hostname, csr, allow_dns_alt_names) or
300
+ check_internal_signing_policies(hostname, csr, options) or
296
301
  raise CertificateSigningError.new(hostname), "CSR had an unknown failure checking internal signing policies, will not sign!"
297
302
  end
298
303
 
@@ -320,12 +325,18 @@ class Puppet::SSL::CertificateAuthority
320
325
  cert
321
326
  end
322
327
 
323
- def check_internal_signing_policies(hostname, csr, allow_dns_alt_names)
328
+ def check_internal_signing_policies(hostname, csr, options = {})
329
+ options[:allow_authorization_extensions] ||= false
330
+ options[:allow_dns_alt_names] ||= false
331
+ # This allows for masters to bootstrap themselves in certain scenarios
332
+ options[:allow_dns_alt_names] = true if hostname == Puppet[:certname].downcase
333
+
324
334
  # Reject unknown request extensions.
325
335
  unknown_req = csr.request_extensions.reject do |x|
326
336
  RequestExtensionWhitelist.include? x["oid"] or
327
337
  Puppet::SSL::Oids.subtree_of?('ppRegCertExt', x["oid"], true) or
328
- Puppet::SSL::Oids.subtree_of?('ppPrivCertExt', x["oid"], true)
338
+ Puppet::SSL::Oids.subtree_of?('ppPrivCertExt', x["oid"], true) or
339
+ Puppet::SSL::Oids.subtree_of?('ppAuthCertExt', x["oid"], true)
329
340
  end
330
341
 
331
342
  if unknown_req and not unknown_req.empty?
@@ -356,10 +367,22 @@ class Puppet::SSL::CertificateAuthority
356
367
  raise CertificateSigningError.new(hostname), "CSR contains a public key that does not correspond to the signing key"
357
368
  end
358
369
 
370
+ auth_extensions = csr.request_extensions.select do |extension|
371
+ Puppet::SSL::Oids.subtree_of?('ppAuthCertExt', extension['oid'], true)
372
+ end
373
+
374
+ if auth_extensions.any? && !options[:allow_authorization_extensions]
375
+ ext_names = auth_extensions.map do |extension|
376
+ extension['oid']
377
+ end
378
+
379
+ raise CertificateSigningError.new(hostname), "CSR '#{csr.name}' contains authorization extensions (#{ext_names.join(', ')}), which are disallowed by default. Use `puppet cert --allow-authorization-extensions sign #{csr.name}` to sign this request."
380
+ end
381
+
359
382
  unless csr.subject_alt_names.empty?
360
383
  # If you alt names are allowed, they are required. Otherwise they are
361
384
  # disallowed. Self-signed certs are implicitly trusted, however.
362
- unless allow_dns_alt_names
385
+ unless options[:allow_dns_alt_names]
363
386
  raise CertificateSigningError.new(hostname), "CSR '#{csr.name}' contains subject alternative names (#{csr.subject_alt_names.join(', ')}), which are disallowed. Use `puppet cert --allow-dns-alt-names sign #{csr.name}` to sign this request."
364
387
  end
365
388
 
@@ -8,6 +8,9 @@ module Puppet
8
8
  DESTRUCTIVE_METHODS = [:destroy, :revoke]
9
9
  SUBJECTLESS_METHODS = [:list, :reinventory]
10
10
 
11
+ CERT_STATUS_GLYPHS = {:signed => '+', :request => ' ', :invalid => '-'}
12
+ VALID_CONFIRMATION_VALUES = %w{y Y yes Yes YES}
13
+
11
14
  class InterfaceError < ArgumentError; end
12
15
 
13
16
  attr_reader :method, :subjects, :digest, :options
@@ -71,19 +74,30 @@ module Puppet
71
74
  return if hosts.empty?
72
75
 
73
76
  hosts.uniq.sort.each do |host|
77
+ verify_error = nil
78
+
74
79
  begin
75
80
  ca.verify(host) unless requests.include?(host)
76
81
  rescue Puppet::SSL::CertificateAuthority::CertificateVerificationError => details
77
- verify_error = details.to_s
82
+ verify_error = "(#{details.to_s})"
78
83
  end
79
84
 
80
85
  if verify_error
81
- certs[:invalid][host] = [ Puppet::SSL::Certificate.indirection.find(host), verify_error ]
86
+ type = :invalid
87
+ cert = Puppet::SSL::Certificate.indirection.find(host)
82
88
  elsif (signed and signed.include?(host))
83
- certs[:signed][host] = Puppet::SSL::Certificate.indirection.find(host)
89
+ type = :signed
90
+ cert = Puppet::SSL::Certificate.indirection.find(host)
84
91
  else
85
- certs[:request][host] = Puppet::SSL::CertificateRequest.indirection.find(host)
92
+ type = :request
93
+ cert = Puppet::SSL::CertificateRequest.indirection.find(host)
86
94
  end
95
+
96
+ certs[type][host] = {
97
+ :cert => cert,
98
+ :type => type,
99
+ :verify_error => verify_error,
100
+ }
87
101
  end
88
102
 
89
103
  names = certs.values.map(&:keys).flatten
@@ -95,37 +109,133 @@ module Puppet
95
109
  output = [:request, :signed, :invalid].map do |type|
96
110
  next if certs[type].empty?
97
111
 
98
- certs[type].map do |host,info|
99
- format_host(ca, host, type, info, name_width)
112
+ certs[type].map do |host, info|
113
+ format_host(host, info, name_width, options[:format])
100
114
  end
101
115
  end.flatten.compact.sort.join("\n")
102
116
 
103
117
  puts output
104
118
  end
105
119
 
106
- def format_host(ca, host, type, info, width)
107
- cert, verify_error = info
108
- alt_names = case type
109
- when :signed
110
- cert.subject_alt_names
111
- when :request
112
- cert.subject_alt_names
113
- else
114
- []
115
- end
120
+ def format_host(host, info, width, format)
121
+ case format
122
+ when :machine
123
+ machine_host_formatting(host, info)
124
+ when :human
125
+ human_host_formatting(host, info)
126
+ else
127
+ if options[:verbose]
128
+ machine_host_formatting(host, info)
129
+ else
130
+ legacy_host_formatting(host, info, width)
131
+ end
132
+ end
133
+ end
134
+
135
+ def machine_host_formatting(host, info)
136
+ type = info[:type]
137
+ verify_error = info[:verify_error]
138
+ cert = info[:cert]
139
+ alt_names = cert.subject_alt_names - [host]
140
+ extensions = format_attrs_and_exts(cert)
141
+
142
+ glyph = CERT_STATUS_GLYPHS[type]
143
+ name = host.inspect
144
+ fingerprint = cert.digest(@digest).to_s
145
+
146
+ expiration = cert.expiration.iso8601 if type == :signed
147
+
148
+ if type != :invalid
149
+ if !alt_names.empty?
150
+ extensions.unshift("alt names: #{alt_names.map(&:inspect).join(', ')}")
151
+ end
152
+
153
+ if !extensions.empty?
154
+ metadata_string = "(#{extensions.join(', ')})" unless extensions.empty?
155
+ end
156
+ end
157
+
158
+ [glyph, name, fingerprint, expiration, metadata_string, verify_error].compact.join(' ')
159
+ end
160
+
161
+ def human_host_formatting(host, info)
162
+ type = info[:type]
163
+ verify_error = info[:verify_error]
164
+ cert = info[:cert]
165
+ alt_names = cert.subject_alt_names - [host]
166
+ extensions = format_attrs_and_exts(cert)
167
+
168
+ glyph = CERT_STATUS_GLYPHS[type]
169
+ fingerprint = cert.digest(@digest).to_s
170
+
171
+ if type == :invalid || (extensions.empty? && alt_names.empty?)
172
+ extension_string = ''
173
+ else
174
+ if !alt_names.empty?
175
+ extensions.unshift("alt names: #{alt_names.map(&:inspect).join(', ')}")
176
+ end
177
+
178
+ extension_string = "\n Extensions:\n "
179
+ extension_string << extensions.join("\n ")
180
+ end
116
181
 
117
- alt_names.delete(host)
182
+ if type == :signed
183
+ expiration_string = "\n Expiration: #{cert.expiration.iso8601}"
184
+ else
185
+ expiration_string = ''
186
+ end
118
187
 
119
- alt_str = "(alt names: #{alt_names.map(&:inspect).join(', ')})" unless alt_names.empty?
188
+ status = case type
189
+ when :invalid then "Invalid - #{verify_error}"
190
+ when :request then "Request Pending"
191
+ when :signed then "Signed"
192
+ end
193
+
194
+ output = "#{glyph} #{host.inspect}"
195
+ output << "\n #{fingerprint}"
196
+ output << "\n Status: #{status}"
197
+ output << expiration_string
198
+ output << extension_string
199
+ output << "\n"
200
+
201
+ output
202
+ end
120
203
 
121
- glyph = {:signed => '+', :request => ' ', :invalid => '-'}[type]
204
+ def legacy_host_formatting(host, info, width)
205
+ type = info[:type]
206
+ verify_error = info[:verify_error]
207
+ cert = info[:cert]
208
+ alt_names = cert.subject_alt_names - [host]
209
+ extensions = format_attrs_and_exts(cert)
122
210
 
123
- name = host.inspect.ljust(width)
211
+ glyph = CERT_STATUS_GLYPHS[type]
212
+ name = host.inspect.ljust(width)
124
213
  fingerprint = cert.digest(@digest).to_s
125
214
 
126
- explanation = "(#{verify_error})" if verify_error
215
+ if type != :invalid
216
+ if alt_names.empty?
217
+ alt_name_string = nil
218
+ else
219
+ alt_name_string = "(alt names: #{alt_names.map(&:inspect).join(', ')})"
220
+ end
221
+
222
+ if extensions.empty?
223
+ extension_string = nil
224
+ else
225
+ extension_string = "**"
226
+ end
227
+ end
127
228
 
128
- [glyph, name, fingerprint, alt_str, explanation].compact.join(' ')
229
+ [glyph, name, fingerprint, alt_name_string, verify_error, extension_string].compact.join(' ')
230
+ end
231
+
232
+ def format_attrs_and_exts(cert)
233
+ exts = []
234
+ exts += cert.custom_extensions if cert.respond_to?(:custom_extensions)
235
+ exts += cert.custom_attributes if cert.respond_to?(:custom_attributes)
236
+ exts += cert.request_extensions if cert.respond_to?(:request_extensions)
237
+
238
+ exts.map {|e| "#{e['oid']}: #{e['value'].inspect}" }.sort
129
239
  end
130
240
 
131
241
  # Set the method to apply.
@@ -156,12 +266,42 @@ module Puppet
156
266
  end
157
267
  end
158
268
 
159
- # Signs given certificates or waiting of subjects == :all
269
+ # Signs given certificates or all waiting if subjects == :all
160
270
  def sign(ca)
161
271
  list = subjects == :all ? ca.waiting? : subjects
162
272
  raise InterfaceError, "No waiting certificate requests to sign" if list.empty?
273
+
274
+ signing_options = options.select { |k,_|
275
+ [:allow_authorization_extensions, :allow_dns_alt_names].include?(k)
276
+ }
277
+
163
278
  list.each do |host|
164
- ca.sign(host, options[:allow_dns_alt_names])
279
+ cert = Puppet::SSL::CertificateRequest.indirection.find(host)
280
+
281
+ raise InterfaceError, "Could not find CSR for: #{host.inspect}." unless cert
282
+
283
+ # ca.sign will also do this - and it should if it is called
284
+ # elsewhere - but we want to reject an attempt to sign a
285
+ # problematic csr as early as possible for usability concerns.
286
+ ca.check_internal_signing_policies(host, cert, signing_options)
287
+
288
+ name_width = host.inspect.length
289
+ info = {:type => :request, :cert => cert}
290
+ host_string = format_host(host, info, name_width, options[:format])
291
+ puts "Signing Certificate Request for:\n#{host_string}"
292
+
293
+ if options[:interactive]
294
+ STDOUT.print "Sign Certificate Request? [y/N] "
295
+
296
+ if !options[:yes]
297
+ input = STDIN.gets.chomp
298
+ raise InterfaceError, "NOT Signing Certificate Request" unless VALID_CONFIRMATION_VALUES.include?(input)
299
+ else
300
+ puts "Assuming YES from `-y' or `--assume-yes' flag"
301
+ end
302
+ end
303
+
304
+ ca.sign(host, signing_options)
165
305
  end
166
306
  end
167
307
 
@@ -213,12 +213,12 @@ DOC
213
213
  raise Puppet::Error, <<ERROR_STRING
214
214
  The certificate retrieved from the master does not match the agent's private key.
215
215
  Certificate fingerprint: #{certificate.fingerprint}
216
- To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certficate.
216
+ To fix this, remove the certificate from both the master and the agent and then start a puppet run, which will automatically regenerate a certificate.
217
217
  On the master:
218
218
  puppet cert clean #{Puppet[:certname]}
219
219
  On the agent:
220
220
  1a. On most platforms: find #{Puppet[:ssldir]} -name #{Puppet[:certname]}.pem -delete
221
- 1b. On Windows: del "#{Puppet[:ssldir]}/#{Puppet[:certname]}.pem" /f
221
+ 1b. On Windows: del "#{Puppet[:certdir].gsub('/', '\\')}\\#{Puppet[:certname]}.pem" /f
222
222
  2. puppet agent -t
223
223
  ERROR_STRING
224
224
  end
@@ -233,7 +233,7 @@ ERROR_STRING
233
233
  # should use it to sign our request; else, just try to read
234
234
  # the cert.
235
235
  if ! certificate and ca = Puppet::SSL::CertificateAuthority.instance
236
- ca.sign(self.name, true)
236
+ ca.sign(self.name, {allow_dns_alt_names: true})
237
237
  end
238
238
  end
239
239
 
@@ -13,6 +13,7 @@ require 'puppet/ssl'
13
13
  # -- privateExtensions can be extended by enterprises to suit their own needs
14
14
  # registeredExtensions OBJECT IDENTIFIER ::= { puppetCertExtensions 1 }
15
15
  # privateExtensions OBJECT IDENTIFIER ::= { puppetCertExtensions 2 }
16
+ # authorizationExtensions OBJECT IDENTIFIER ::= { puppetCertExtensions 3 }
16
17
  #
17
18
  # -- subtree of common registered extensions
18
19
  # -- The short names for these OIDs are intentionally lowercased and formatted
@@ -25,6 +26,10 @@ require 'puppet/ssl'
25
26
  # @api private
26
27
  module Puppet::SSL::Oids
27
28
 
29
+ # Note: When updating the following OIDs make sure to also update the OID
30
+ # definitions here:
31
+ # https://github.com/puppetlabs/puppetserver/blob/master/src/clj/puppetlabs/puppetserver/certificate_authority.clj#L122-L159
32
+
28
33
  PUPPET_OIDS = [
29
34
  ["1.3.6.1.4.1.34380", 'puppetlabs', 'Puppet Labs'],
30
35
  ["1.3.6.1.4.1.34380.1", 'ppCertExt', 'Puppet Certificate Extension'],
@@ -58,6 +63,11 @@ module Puppet::SSL::Oids
58
63
  ["1.3.6.1.4.1.34380.1.1.25", 'pp_hostname', 'Puppet Node Hostname'],
59
64
 
60
65
  ["1.3.6.1.4.1.34380.1.2", 'ppPrivCertExt', 'Puppet Private Certificate Extension'],
66
+
67
+ ["1.3.6.1.4.1.34380.1.3", 'ppAuthCertExt', 'Puppet Certificate Authorization Extension'],
68
+
69
+ ["1.3.6.1.4.1.34380.1.3.1", 'pp_authorization', 'Certificate Extension Authorization'],
70
+ ["1.3.6.1.4.1.34380.1.3.13", 'pp_auth_role', 'Puppet Node Role Name for Authorization'],
61
71
  ]
62
72
 
63
73
  # Register our custom Puppet OIDs with OpenSSL so they can be used as CSR
@@ -16,7 +16,7 @@ class Puppet::SSL::Validator::DefaultValidator #< class Puppet::SSL::Validator
16
16
  # Creates a new DefaultValidator, optionally with an SSL Configuration and SSL Host.
17
17
  #
18
18
  # @param ssl_configuration [Puppet::SSL::Configuration] (a default configuration) ssl_configuration the SSL configuration to use
19
- # @param ssl_host [Puppet::SSL::Host] (Puppet::SSL::Host.localhost) the SSL host to use
19
+ # @param ssl_host [Puppet::SSL::Host] The SSL host to use
20
20
  #
21
21
  # @api private
22
22
  #
@@ -25,7 +25,7 @@ class Puppet::SSL::Validator::DefaultValidator #< class Puppet::SSL::Validator
25
25
  Puppet[:localcacert], {
26
26
  :ca_auth_file => Puppet[:ssl_client_ca_auth]
27
27
  }),
28
- ssl_host = Puppet::SSL::Host.localhost)
28
+ ssl_host = Puppet.lookup(:ssl_host))
29
29
 
30
30
  reset!
31
31
  @ssl_configuration = ssl_configuration
@@ -38,7 +38,7 @@ module Puppet::Test
38
38
  def self.initialize()
39
39
  # This meta class instance variable is used as a guard to ensure that
40
40
  # before_each, and after_each are only called once. This problem occurs
41
- # when there are more than one puppet test infrastructure "orchestrator in us.
41
+ # when there are more than one puppet test infrastructure orchestrator in use.
42
42
  # The use of both puppetabs-spec_helper, and rodjek-rspec_puppet will cause
43
43
  # two resets of the puppet environment, and will cause problem rolling back to
44
44
  # a known point as there is no way to differentiate where the calls are coming
@@ -84,7 +84,7 @@ module Puppet::Test
84
84
  #
85
85
  ROLLBACK_MARK = "initial testing state"
86
86
 
87
- # Call this method once per test, prior to execution of each invididual test.
87
+ # Call this method once per test, prior to execution of each individual test.
88
88
  # @return nil
89
89
  def self.before_each_test()
90
90
  # When using both rspec-puppet and puppet-rspec-helper, there are two packages trying