puppet 5.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1440) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTING.md +52 -42
  3. data/Gemfile +48 -81
  4. data/Gemfile.lock +156 -0
  5. data/MAINTAINERS +0 -19
  6. data/README.md +19 -17
  7. data/Rakefile +47 -36
  8. data/conf/auth.conf +7 -2
  9. data/conf/environment.conf +1 -1
  10. data/conf/fileserver.conf +1 -1
  11. data/conf/puppet.conf +4 -4
  12. data/ext/README.environment +1 -1
  13. data/ext/build_defaults.yaml +0 -2
  14. data/ext/cert_inspector +2 -2
  15. data/ext/debian/copyright +2 -24
  16. data/ext/debian/puppetmaster.README.debian +2 -2
  17. data/ext/envpuppet +1 -1
  18. data/ext/gentoo/init.d/puppetmaster +4 -4
  19. data/ext/hiera/hiera.yaml +1 -1
  20. data/ext/ips/puppet-agent +11 -11
  21. data/ext/ips/puppet-master +11 -11
  22. data/ext/project_data.yaml +9 -8
  23. data/ext/puppet-test +5 -5
  24. data/ext/redhat/client.init +2 -2
  25. data/ext/redhat/logrotate +1 -1
  26. data/ext/redhat/puppet.spec.erb +0 -4
  27. data/ext/regexp_nodes/regexp_nodes.rb +15 -16
  28. data/ext/solaris/smf/puppet +11 -11
  29. data/ext/solaris/smf/svc-puppetd +5 -5
  30. data/ext/solaris/smf/svc-puppetmasterd +5 -5
  31. data/ext/upload_facts.rb +2 -2
  32. data/ext/windows/service/daemon.rb +1 -1
  33. data/install.rb +2 -3
  34. data/lib/hiera/puppet_function.rb +5 -2
  35. data/lib/hiera/scope.rb +24 -2
  36. data/lib/hiera_puppet.rb +3 -3
  37. data/lib/puppet/agent/locker.rb +6 -5
  38. data/lib/puppet/agent.rb +24 -3
  39. data/lib/puppet/application/agent.rb +19 -14
  40. data/lib/puppet/application/apply.rb +30 -17
  41. data/lib/puppet/application/cert.rb +30 -174
  42. data/lib/puppet/application/config.rb +1 -0
  43. data/lib/puppet/application/describe.rb +6 -3
  44. data/lib/puppet/application/device.rb +165 -60
  45. data/lib/puppet/application/doc.rb +10 -4
  46. data/lib/puppet/application/face_base.rb +1 -1
  47. data/lib/puppet/application/facts.rb +5 -0
  48. data/lib/puppet/application/filebucket.rb +60 -18
  49. data/lib/puppet/application/help.rb +1 -0
  50. data/lib/puppet/application/lookup.rb +23 -11
  51. data/lib/puppet/application/resource.rb +8 -4
  52. data/lib/puppet/application/script.rb +261 -0
  53. data/lib/puppet/application/ssl.rb +133 -0
  54. data/lib/puppet/application.rb +42 -11
  55. data/lib/puppet/application_support.rb +7 -3
  56. data/lib/puppet/configurer/downloader.rb +1 -1
  57. data/lib/puppet/configurer/fact_handler.rb +5 -1
  58. data/lib/puppet/configurer/plugin_handler.rb +32 -9
  59. data/lib/puppet/configurer.rb +114 -76
  60. data/lib/puppet/confine.rb +4 -1
  61. data/lib/puppet/context.rb +1 -1
  62. data/lib/puppet/daemon.rb +3 -3
  63. data/lib/puppet/datatypes/error.rb +21 -0
  64. data/lib/puppet/datatypes/impl/error.rb +40 -0
  65. data/lib/puppet/datatypes.rb +213 -0
  66. data/lib/puppet/defaults.rb +279 -209
  67. data/lib/puppet/environments.rb +24 -11
  68. data/lib/puppet/error.rb +35 -18
  69. data/lib/puppet/etc.rb +6 -7
  70. data/lib/puppet/external/dot.rb +23 -24
  71. data/lib/puppet/external/pson/common.rb +2 -2
  72. data/lib/puppet/external/pson/pure/generator.rb +1 -1
  73. data/lib/puppet/external/pson/pure/parser.rb +1 -1
  74. data/lib/puppet/face/catalog.rb +2 -2
  75. data/lib/puppet/face/config.rb +157 -11
  76. data/lib/puppet/face/epp.rb +66 -37
  77. data/lib/puppet/face/facts.rb +49 -0
  78. data/lib/puppet/face/help/action.erb +4 -1
  79. data/lib/puppet/face/help/face.erb +1 -1
  80. data/lib/puppet/face/help/global.erb +2 -2
  81. data/lib/puppet/face/help/man.erb +1 -1
  82. data/lib/puppet/face/help.rb +78 -64
  83. data/lib/puppet/face/man.rb +56 -12
  84. data/lib/puppet/face/module/build.rb +5 -54
  85. data/lib/puppet/face/module/generate.rb +6 -243
  86. data/lib/puppet/face/module/install.rb +1 -4
  87. data/lib/puppet/face/module/list.rb +6 -22
  88. data/lib/puppet/face/module/search.rb +7 -3
  89. data/lib/puppet/face/module/uninstall.rb +15 -7
  90. data/lib/puppet/face/module/upgrade.rb +1 -4
  91. data/lib/puppet/face/node/clean.rb +14 -10
  92. data/lib/puppet/face/node.rb +1 -0
  93. data/lib/puppet/face/parser.rb +30 -4
  94. data/lib/puppet/face/plugin.rb +1 -3
  95. data/lib/puppet/face/status.rb +3 -2
  96. data/lib/puppet/feature/base.rb +8 -27
  97. data/lib/puppet/feature/bolt.rb +3 -0
  98. data/lib/puppet/feature/eventlog.rb +1 -1
  99. data/lib/puppet/file_bucket/dipper.rb +1 -2
  100. data/lib/puppet/file_bucket/file.rb +0 -2
  101. data/lib/puppet/file_serving/base.rb +18 -17
  102. data/lib/puppet/file_serving/configuration/parser.rb +25 -9
  103. data/lib/puppet/file_serving/configuration.rb +6 -0
  104. data/lib/puppet/file_serving/fileset.rb +1 -1
  105. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  106. data/lib/puppet/file_serving/metadata.rb +4 -3
  107. data/lib/puppet/file_serving/mount/locales.rb +35 -0
  108. data/lib/puppet/file_serving/mount/tasks.rb +21 -0
  109. data/lib/puppet/file_system/uniquefile.rb +2 -2
  110. data/lib/puppet/forge/errors.rb +27 -25
  111. data/lib/puppet/forge/repository.rb +1 -1
  112. data/lib/puppet/forge.rb +22 -9
  113. data/lib/puppet/functions/abs.rb +61 -0
  114. data/lib/puppet/functions/alert.rb +1 -1
  115. data/lib/puppet/functions/all.rb +104 -0
  116. data/lib/puppet/functions/annotate.rb +11 -11
  117. data/lib/puppet/functions/any.rb +109 -0
  118. data/lib/puppet/functions/assert_type.rb +7 -7
  119. data/lib/puppet/functions/binary_file.rb +15 -2
  120. data/lib/puppet/functions/break.rb +34 -9
  121. data/lib/puppet/functions/call.rb +41 -4
  122. data/lib/puppet/functions/camelcase.rb +62 -0
  123. data/lib/puppet/functions/capitalize.rb +61 -0
  124. data/lib/puppet/functions/ceiling.rb +37 -0
  125. data/lib/puppet/functions/chomp.rb +57 -0
  126. data/lib/puppet/functions/chop.rb +67 -0
  127. data/lib/puppet/functions/compare.rb +125 -0
  128. data/lib/puppet/functions/contain.rb +25 -3
  129. data/lib/puppet/functions/convert_to.rb +34 -0
  130. data/lib/puppet/functions/crit.rb +1 -1
  131. data/lib/puppet/functions/debug.rb +1 -1
  132. data/lib/puppet/functions/defined.rb +14 -15
  133. data/lib/puppet/functions/dig.rb +47 -3
  134. data/lib/puppet/functions/downcase.rb +89 -0
  135. data/lib/puppet/functions/each.rb +30 -20
  136. data/lib/puppet/functions/emerg.rb +1 -1
  137. data/lib/puppet/functions/empty.rb +77 -0
  138. data/lib/puppet/functions/epp.rb +3 -0
  139. data/lib/puppet/functions/err.rb +1 -1
  140. data/lib/puppet/functions/eyaml_lookup_key.rb +11 -8
  141. data/lib/puppet/functions/filter.rb +30 -23
  142. data/lib/puppet/functions/find_file.rb +15 -2
  143. data/lib/puppet/functions/flatten.rb +64 -0
  144. data/lib/puppet/functions/floor.rb +37 -0
  145. data/lib/puppet/functions/get.rb +150 -0
  146. data/lib/puppet/functions/getvar.rb +87 -0
  147. data/lib/puppet/functions/hiera.rb +11 -11
  148. data/lib/puppet/functions/hiera_array.rb +11 -11
  149. data/lib/puppet/functions/hiera_hash.rb +12 -12
  150. data/lib/puppet/functions/hiera_include.rb +15 -15
  151. data/lib/puppet/functions/hocon_data.rb +1 -1
  152. data/lib/puppet/functions/include.rb +34 -2
  153. data/lib/puppet/functions/info.rb +1 -1
  154. data/lib/puppet/functions/inline_epp.rb +2 -2
  155. data/lib/puppet/functions/join.rb +56 -0
  156. data/lib/puppet/functions/json_data.rb +3 -3
  157. data/lib/puppet/functions/keys.rb +25 -0
  158. data/lib/puppet/functions/length.rb +44 -0
  159. data/lib/puppet/functions/lest.rb +39 -1
  160. data/lib/puppet/functions/lookup.rb +7 -5
  161. data/lib/puppet/functions/lstrip.rb +58 -0
  162. data/lib/puppet/functions/map.rb +34 -20
  163. data/lib/puppet/functions/match.rb +17 -6
  164. data/lib/puppet/functions/max.rb +183 -0
  165. data/lib/puppet/functions/min.rb +182 -0
  166. data/lib/puppet/functions/module_directory.rb +41 -0
  167. data/lib/puppet/functions/new.rb +982 -7
  168. data/lib/puppet/functions/next.rb +2 -9
  169. data/lib/puppet/functions/notice.rb +1 -1
  170. data/lib/puppet/functions/reduce.rb +36 -5
  171. data/lib/puppet/functions/regsubst.rb +10 -4
  172. data/lib/puppet/functions/require.rb +42 -2
  173. data/lib/puppet/functions/return.rb +2 -9
  174. data/lib/puppet/functions/reverse_each.rb +71 -2
  175. data/lib/puppet/functions/round.rb +24 -0
  176. data/lib/puppet/functions/rstrip.rb +58 -0
  177. data/lib/puppet/functions/size.rb +15 -0
  178. data/lib/puppet/functions/slice.rb +25 -12
  179. data/lib/puppet/functions/sort.rb +74 -0
  180. data/lib/puppet/functions/split.rb +12 -10
  181. data/lib/puppet/functions/step.rb +73 -1
  182. data/lib/puppet/functions/strftime.rb +178 -10
  183. data/lib/puppet/functions/strip.rb +58 -0
  184. data/lib/puppet/functions/then.rb +65 -2
  185. data/lib/puppet/functions/tree_each.rb +200 -0
  186. data/lib/puppet/functions/type.rb +42 -1
  187. data/lib/puppet/functions/unique.rb +13 -13
  188. data/lib/puppet/functions/unwrap.rb +8 -4
  189. data/lib/puppet/functions/upcase.rb +89 -0
  190. data/lib/puppet/functions/values.rb +25 -0
  191. data/lib/puppet/functions/versioncmp.rb +1 -1
  192. data/lib/puppet/functions/warning.rb +1 -1
  193. data/lib/puppet/functions/with.rb +9 -7
  194. data/lib/puppet/functions/yaml_data.rb +8 -7
  195. data/lib/puppet/functions.rb +212 -95
  196. data/lib/puppet/generate/models/type/property.rb +1 -1
  197. data/lib/puppet/generate/type.rb +1 -1
  198. data/lib/puppet/gettext/config.rb +275 -0
  199. data/lib/puppet/gettext/module_translations.rb +42 -0
  200. data/lib/puppet/gettext/stubs.rb +11 -0
  201. data/lib/puppet/graph/relationship_graph.rb +7 -1
  202. data/lib/puppet/graph/simple_graph.rb +12 -8
  203. data/lib/puppet/graph.rb +0 -2
  204. data/lib/puppet/indirector/catalog/compiler.rb +48 -16
  205. data/lib/puppet/indirector/catalog/json.rb +14 -3
  206. data/lib/puppet/indirector/catalog/yaml.rb +0 -16
  207. data/lib/puppet/indirector/certificate/file.rb +0 -1
  208. data/lib/puppet/indirector/exec.rb +1 -1
  209. data/lib/puppet/indirector/facts/facter.rb +4 -6
  210. data/lib/puppet/indirector/facts/network_device.rb +2 -2
  211. data/lib/puppet/indirector/facts/rest.rb +21 -0
  212. data/lib/puppet/indirector/facts/yaml.rb +4 -6
  213. data/lib/puppet/indirector/file_bucket_file/file.rb +11 -4
  214. data/lib/puppet/indirector/file_content/http.rb +3 -1
  215. data/lib/puppet/indirector/file_server.rb +1 -1
  216. data/lib/puppet/indirector/indirection.rb +28 -24
  217. data/lib/puppet/indirector/key/file.rb +1 -6
  218. data/lib/puppet/indirector/node/exec.rb +2 -4
  219. data/lib/puppet/indirector/node/yaml.rb +0 -6
  220. data/lib/puppet/indirector/request.rb +19 -15
  221. data/lib/puppet/indirector/rest.rb +21 -68
  222. data/lib/puppet/indirector/ssl_file.rb +5 -46
  223. data/lib/puppet/indirector/terminus.rb +4 -4
  224. data/lib/puppet/indirector/yaml.rb +4 -4
  225. data/lib/puppet/info_service/class_information_service.rb +1 -1
  226. data/lib/puppet/info_service/task_information_service.rb +36 -0
  227. data/lib/puppet/info_service.rb +10 -0
  228. data/lib/puppet/interface/action.rb +54 -29
  229. data/lib/puppet/interface/action_builder.rb +22 -5
  230. data/lib/puppet/interface/action_manager.rb +1 -1
  231. data/lib/puppet/interface/documentation.rb +21 -10
  232. data/lib/puppet/interface/face_collection.rb +7 -3
  233. data/lib/puppet/interface/option.rb +36 -15
  234. data/lib/puppet/interface/option_builder.rb +23 -9
  235. data/lib/puppet/interface/option_manager.rb +9 -4
  236. data/lib/puppet/interface.rb +3 -2
  237. data/lib/puppet/loaders.rb +3 -0
  238. data/lib/puppet/metatype/manager.rb +9 -7
  239. data/lib/puppet/module/task.rb +267 -0
  240. data/lib/puppet/module.rb +70 -14
  241. data/lib/puppet/module_tool/applications/application.rb +5 -5
  242. data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
  243. data/lib/puppet/module_tool/applications/installer.rb +9 -7
  244. data/lib/puppet/module_tool/applications/uninstaller.rb +4 -2
  245. data/lib/puppet/module_tool/applications/unpacker.rb +4 -4
  246. data/lib/puppet/module_tool/applications/upgrader.rb +8 -6
  247. data/lib/puppet/module_tool/applications.rb +0 -1
  248. data/lib/puppet/module_tool/dependency.rb +1 -1
  249. data/lib/puppet/module_tool/errors/installer.rb +18 -20
  250. data/lib/puppet/module_tool/errors/shared.rb +20 -15
  251. data/lib/puppet/module_tool/errors/uninstaller.rb +1 -0
  252. data/lib/puppet/module_tool/errors/upgrader.rb +1 -1
  253. data/lib/puppet/module_tool/installed_modules.rb +3 -3
  254. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  255. data/lib/puppet/module_tool/metadata.rb +3 -5
  256. data/lib/puppet/module_tool/shared_behaviors.rb +2 -2
  257. data/lib/puppet/module_tool/tar/mini.rb +57 -4
  258. data/lib/puppet/module_tool.rb +2 -5
  259. data/lib/puppet/network/auth_config_parser.rb +18 -13
  260. data/lib/puppet/network/authconfig.rb +1 -14
  261. data/lib/puppet/network/authstore.rb +3 -3
  262. data/lib/puppet/network/client_request.rb +1 -1
  263. data/lib/puppet/network/format.rb +3 -3
  264. data/lib/puppet/network/format_support.rb +14 -9
  265. data/lib/puppet/network/formats.rb +98 -9
  266. data/lib/puppet/network/http/api/indirected_routes.rb +11 -3
  267. data/lib/puppet/network/http/api/indirection_type.rb +1 -1
  268. data/lib/puppet/network/http/api/master/v3/environment.rb +7 -4
  269. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
  270. data/lib/puppet/network/http/api.rb +1 -10
  271. data/lib/puppet/network/http/compression.rb +1 -1
  272. data/lib/puppet/network/http/connection.rb +105 -25
  273. data/lib/puppet/network/http/error.rb +10 -10
  274. data/lib/puppet/network/http/factory.rb +8 -0
  275. data/lib/puppet/network/http/handler.rb +59 -27
  276. data/lib/puppet/network/http.rb +0 -2
  277. data/lib/puppet/network/resolver.rb +139 -67
  278. data/lib/puppet/network/rights.rb +1 -1
  279. data/lib/puppet/node/environment.rb +23 -20
  280. data/lib/puppet/node/facts.rb +20 -1
  281. data/lib/puppet/node.rb +80 -8
  282. data/lib/puppet/parameter/boolean.rb +1 -1
  283. data/lib/puppet/parameter/value_collection.rb +9 -9
  284. data/lib/puppet/parameter.rb +15 -10
  285. data/lib/puppet/parser/abstract_compiler.rb +36 -0
  286. data/lib/puppet/parser/ast/branch.rb +4 -4
  287. data/lib/puppet/parser/ast/leaf.rb +7 -2
  288. data/lib/puppet/parser/ast/node.rb +2 -2
  289. data/lib/puppet/parser/ast/pops_bridge.rb +26 -52
  290. data/lib/puppet/parser/ast.rb +4 -8
  291. data/lib/puppet/parser/catalog_compiler.rb +32 -0
  292. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
  293. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +9 -2
  294. data/lib/puppet/parser/compiler.rb +29 -61
  295. data/lib/puppet/parser/functions/assert_type.rb +4 -4
  296. data/lib/puppet/parser/functions/binary_file.rb +1 -1
  297. data/lib/puppet/parser/functions/break.rb +1 -1
  298. data/lib/puppet/parser/functions/create_resources.rb +7 -7
  299. data/lib/puppet/parser/functions/defined.rb +1 -1
  300. data/lib/puppet/parser/functions/dig.rb +12 -3
  301. data/lib/puppet/parser/functions/each.rb +3 -3
  302. data/lib/puppet/parser/functions/epp.rb +4 -1
  303. data/lib/puppet/parser/functions/filter.rb +3 -3
  304. data/lib/puppet/parser/functions/find_file.rb +1 -1
  305. data/lib/puppet/parser/functions/fqdn_rand.rb +16 -1
  306. data/lib/puppet/parser/functions/generate.rb +3 -5
  307. data/lib/puppet/parser/functions/hiera.rb +4 -4
  308. data/lib/puppet/parser/functions/hiera_array.rb +5 -5
  309. data/lib/puppet/parser/functions/hiera_hash.rb +6 -6
  310. data/lib/puppet/parser/functions/hiera_include.rb +10 -11
  311. data/lib/puppet/parser/functions/inline_epp.rb +1 -1
  312. data/lib/puppet/parser/functions/inline_template.rb +8 -3
  313. data/lib/puppet/parser/functions/lest.rb +2 -2
  314. data/lib/puppet/parser/functions/lookup.rb +1 -1
  315. data/lib/puppet/parser/functions/map.rb +2 -2
  316. data/lib/puppet/parser/functions/match.rb +1 -1
  317. data/lib/puppet/parser/functions/new.rb +106 -54
  318. data/lib/puppet/parser/functions/next.rb +1 -1
  319. data/lib/puppet/parser/functions/realize.rb +6 -0
  320. data/lib/puppet/parser/functions/reduce.rb +33 -2
  321. data/lib/puppet/parser/functions/return.rb +23 -2
  322. data/lib/puppet/parser/functions/reverse_each.rb +3 -3
  323. data/lib/puppet/parser/functions/scanf.rb +1 -1
  324. data/lib/puppet/parser/functions/sha256.rb +5 -0
  325. data/lib/puppet/parser/functions/slice.rb +1 -1
  326. data/lib/puppet/parser/functions/sprintf.rb +28 -3
  327. data/lib/puppet/parser/functions/step.rb +2 -2
  328. data/lib/puppet/parser/functions/strftime.rb +1 -1
  329. data/lib/puppet/parser/functions/tag.rb +6 -0
  330. data/lib/puppet/parser/functions/tagged.rb +6 -3
  331. data/lib/puppet/parser/functions/template.rb +11 -2
  332. data/lib/puppet/parser/functions/then.rb +2 -2
  333. data/lib/puppet/parser/functions/type.rb +1 -1
  334. data/lib/puppet/parser/functions/with.rb +5 -5
  335. data/lib/puppet/parser/functions.rb +40 -7
  336. data/lib/puppet/parser/parser_factory.rb +1 -1
  337. data/lib/puppet/parser/relationship.rb +2 -2
  338. data/lib/puppet/parser/resource/param.rb +12 -5
  339. data/lib/puppet/parser/resource.rb +39 -12
  340. data/lib/puppet/parser/scope.rb +55 -24
  341. data/lib/puppet/parser/script_compiler.rb +123 -0
  342. data/lib/puppet/parser/templatewrapper.rb +4 -3
  343. data/lib/puppet/parser/type_loader.rb +12 -12
  344. data/lib/puppet/parser.rb +1 -0
  345. data/lib/puppet/pops/adapters.rb +14 -0
  346. data/lib/puppet/pops/evaluator/access_operator.rb +49 -8
  347. data/lib/puppet/pops/evaluator/closure.rb +12 -4
  348. data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -3
  349. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
  350. data/lib/puppet/pops/evaluator/compare_operator.rb +7 -5
  351. data/lib/puppet/pops/evaluator/deferred_resolver.rb +127 -0
  352. data/lib/puppet/pops/evaluator/epp_evaluator.rb +36 -10
  353. data/lib/puppet/pops/evaluator/evaluator_impl.rb +61 -17
  354. data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
  355. data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
  356. data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -1
  357. data/lib/puppet/pops/evaluator/runtime3_converter.rb +29 -8
  358. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +4 -4
  359. data/lib/puppet/pops/evaluator/runtime3_support.rb +17 -20
  360. data/lib/puppet/pops/functions/dispatch.rb +13 -6
  361. data/lib/puppet/pops/functions/function.rb +10 -4
  362. data/lib/puppet/pops/issue_reporter.rb +25 -3
  363. data/lib/puppet/pops/issues.rb +82 -15
  364. data/lib/puppet/pops/label_provider.rb +1 -1
  365. data/lib/puppet/pops/loader/base_loader.rb +10 -0
  366. data/lib/puppet/pops/loader/dependency_loader.rb +7 -0
  367. data/lib/puppet/pops/loader/loader.rb +22 -3
  368. data/lib/puppet/pops/loader/loader_paths.rb +183 -31
  369. data/lib/puppet/pops/loader/module_loaders.rb +239 -41
  370. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +84 -0
  371. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +10 -10
  372. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +39 -0
  373. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
  374. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +54 -0
  375. data/lib/puppet/pops/loader/runtime3_type_loader.rb +6 -1
  376. data/lib/puppet/pops/loader/static_loader.rb +23 -45
  377. data/lib/puppet/pops/loader/task_instantiator.rb +97 -0
  378. data/lib/puppet/pops/loader/type_definition_instantiator.rb +8 -1
  379. data/lib/puppet/pops/loaders.rb +158 -45
  380. data/lib/puppet/pops/lookup/context.rb +1 -1
  381. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  382. data/lib/puppet/pops/lookup/explainer.rb +2 -1
  383. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  384. data/lib/puppet/pops/lookup/hiera_config.rb +4 -4
  385. data/lib/puppet/pops/lookup/interpolation.rb +1 -1
  386. data/lib/puppet/pops/lookup/lookup_adapter.rb +61 -12
  387. data/lib/puppet/pops/merge_strategy.rb +7 -4
  388. data/lib/puppet/pops/migration/migration_checker.rb +8 -8
  389. data/lib/puppet/pops/model/ast.pp +19 -0
  390. data/lib/puppet/pops/model/ast.rb +567 -436
  391. data/lib/puppet/pops/model/ast_transformer.rb +1 -1
  392. data/lib/puppet/pops/model/factory.rb +232 -147
  393. data/lib/puppet/pops/model/model_label_provider.rb +9 -1
  394. data/lib/puppet/pops/model/model_tree_dumper.rb +17 -2
  395. data/lib/puppet/pops/model/pn_transformer.rb +400 -0
  396. data/lib/puppet/pops/model/tree_dumper.rb +1 -1
  397. data/lib/puppet/pops/parser/code_merger.rb +2 -2
  398. data/lib/puppet/pops/parser/egrammar.ra +85 -24
  399. data/lib/puppet/pops/parser/eparser.rb +1791 -1578
  400. data/lib/puppet/pops/parser/epp_parser.rb +1 -1
  401. data/lib/puppet/pops/parser/epp_support.rb +7 -5
  402. data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
  403. data/lib/puppet/pops/parser/heredoc_support.rb +2 -2
  404. data/lib/puppet/pops/parser/interpolation_support.rb +2 -2
  405. data/lib/puppet/pops/parser/lexer2.rb +5 -5
  406. data/lib/puppet/pops/parser/lexer_support.rb +5 -4
  407. data/lib/puppet/pops/parser/locatable.rb +1 -1
  408. data/lib/puppet/pops/parser/locator.rb +7 -15
  409. data/lib/puppet/pops/parser/parser_support.rb +3 -3
  410. data/lib/puppet/pops/parser/pn_parser.rb +316 -0
  411. data/lib/puppet/pops/parser/slurp_support.rb +0 -3
  412. data/lib/puppet/pops/patterns.rb +2 -1
  413. data/lib/puppet/pops/pcore.rb +67 -12
  414. data/lib/puppet/pops/pn.rb +236 -0
  415. data/lib/puppet/pops/puppet_stack.rb +15 -1
  416. data/lib/puppet/pops/resource/param.rb +2 -2
  417. data/lib/puppet/pops/resource/resource_type_impl.rb +4 -4
  418. data/lib/puppet/pops/serialization/abstract_reader.rb +4 -0
  419. data/lib/puppet/pops/serialization/abstract_writer.rb +8 -1
  420. data/lib/puppet/pops/serialization/extension.rb +1 -0
  421. data/lib/puppet/pops/serialization/from_data_converter.rb +69 -26
  422. data/lib/puppet/pops/serialization/json.rb +7 -7
  423. data/lib/puppet/pops/serialization/json_path.rb +3 -2
  424. data/lib/puppet/pops/serialization/object.rb +3 -4
  425. data/lib/puppet/pops/serialization/serializer.rb +2 -1
  426. data/lib/puppet/pops/serialization/to_data_converter.rb +27 -14
  427. data/lib/puppet/pops/serialization/to_stringified_converter.rb +226 -0
  428. data/lib/puppet/pops/serialization.rb +3 -2
  429. data/lib/puppet/pops/time/timespan.rb +1 -1
  430. data/lib/puppet/pops/time/timestamp.rb +31 -19
  431. data/lib/puppet/pops/types/annotatable.rb +2 -2
  432. data/lib/puppet/pops/types/annotation.rb +8 -8
  433. data/lib/puppet/pops/types/class_loader.rb +9 -6
  434. data/lib/puppet/pops/types/implementation_registry.rb +29 -36
  435. data/lib/puppet/pops/types/iterable.rb +42 -11
  436. data/lib/puppet/pops/types/p_binary_type.rb +12 -6
  437. data/lib/puppet/pops/types/p_init_type.rb +238 -0
  438. data/lib/puppet/pops/types/p_meta_type.rb +18 -11
  439. data/lib/puppet/pops/types/p_object_type.rb +240 -48
  440. data/lib/puppet/pops/types/p_object_type_extension.rb +218 -0
  441. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +5 -6
  442. data/lib/puppet/pops/types/p_sem_ver_type.rb +12 -4
  443. data/lib/puppet/pops/types/p_sensitive_type.rb +2 -2
  444. data/lib/puppet/pops/types/p_timespan_type.rb +9 -9
  445. data/lib/puppet/pops/types/p_timestamp_type.rb +7 -3
  446. data/lib/puppet/pops/types/p_type_set_type.rb +33 -10
  447. data/lib/puppet/pops/types/p_uri_type.rb +190 -0
  448. data/lib/puppet/pops/types/puppet_object.rb +16 -2
  449. data/lib/puppet/pops/types/ruby_generator.rb +111 -78
  450. data/lib/puppet/pops/types/ruby_method.rb +2 -2
  451. data/lib/puppet/pops/types/string_converter.rb +38 -14
  452. data/lib/puppet/pops/types/tree_iterators.rb +254 -0
  453. data/lib/puppet/pops/types/type_acceptor.rb +1 -1
  454. data/lib/puppet/pops/types/type_calculator.rb +31 -20
  455. data/lib/puppet/pops/types/type_factory.rb +82 -17
  456. data/lib/puppet/pops/types/type_formatter.rb +77 -9
  457. data/lib/puppet/pops/types/type_mismatch_describer.rb +106 -137
  458. data/lib/puppet/pops/types/type_parser.rb +130 -24
  459. data/lib/puppet/pops/types/type_set_reference.rb +2 -2
  460. data/lib/puppet/pops/types/type_with_members.rb +43 -0
  461. data/lib/puppet/pops/types/types.rb +456 -219
  462. data/lib/puppet/pops/utils.rb +2 -2
  463. data/lib/puppet/pops/validation/checker4_0.rb +145 -8
  464. data/lib/puppet/pops/validation/tasks_checker.rb +101 -0
  465. data/lib/puppet/pops/validation/validator_factory_4_0.rb +13 -8
  466. data/lib/puppet/pops/validation.rb +14 -12
  467. data/lib/puppet/pops.rb +2 -1
  468. data/lib/puppet/property/ensure.rb +2 -2
  469. data/lib/puppet/property/keyvalue.rb +70 -8
  470. data/lib/puppet/property.rb +15 -7
  471. data/lib/puppet/provider/aix_object.rb +483 -0
  472. data/lib/puppet/provider/exec.rb +0 -2
  473. data/lib/puppet/provider/file/windows.rb +1 -1
  474. data/lib/puppet/provider/group/aix.rb +51 -110
  475. data/lib/puppet/provider/group/groupadd.rb +27 -1
  476. data/lib/puppet/provider/group/windows_adsi.rb +4 -7
  477. data/lib/puppet/provider/ldap.rb +2 -2
  478. data/lib/puppet/provider/nameservice/directoryservice.rb +7 -6
  479. data/lib/puppet/provider/nameservice/objectadd.rb +13 -24
  480. data/lib/puppet/provider/nameservice/pw.rb +14 -14
  481. data/lib/puppet/provider/nameservice.rb +20 -10
  482. data/lib/puppet/provider/package/aix.rb +5 -5
  483. data/lib/puppet/provider/package/appdmg.rb +0 -1
  484. data/lib/puppet/provider/package/apple.rb +0 -1
  485. data/lib/puppet/provider/package/dnf.rb +2 -1
  486. data/lib/puppet/provider/package/gem.rb +13 -12
  487. data/lib/puppet/provider/package/macports.rb +2 -2
  488. data/lib/puppet/provider/package/nim.rb +7 -8
  489. data/lib/puppet/provider/package/opkg.rb +1 -1
  490. data/lib/puppet/provider/package/pacman.rb +4 -4
  491. data/lib/puppet/provider/package/pip.rb +15 -6
  492. data/lib/puppet/provider/package/pkg.rb +12 -6
  493. data/lib/puppet/provider/package/pkgdmg.rb +3 -4
  494. data/lib/puppet/provider/package/pkgutil.rb +5 -5
  495. data/lib/puppet/provider/package/portage.rb +9 -10
  496. data/lib/puppet/provider/package/puppet_gem.rb +1 -1
  497. data/lib/puppet/provider/package/rpm.rb +1 -1
  498. data/lib/puppet/provider/package/windows/package.rb +1 -1
  499. data/lib/puppet/provider/package/yum.rb +34 -10
  500. data/lib/puppet/provider/package/zypper.rb +5 -5
  501. data/lib/puppet/provider/parsedfile.rb +4 -4
  502. data/lib/puppet/provider/service/base.rb +23 -10
  503. data/lib/puppet/provider/service/debian.rb +1 -0
  504. data/lib/puppet/provider/service/init.rb +2 -1
  505. data/lib/puppet/provider/service/launchd.rb +7 -8
  506. data/lib/puppet/provider/service/redhat.rb +3 -2
  507. data/lib/puppet/provider/service/runit.rb +2 -1
  508. data/lib/puppet/provider/service/smf.rb +5 -3
  509. data/lib/puppet/provider/service/systemd.rb +6 -3
  510. data/lib/puppet/provider/service/upstart.rb +11 -1
  511. data/lib/puppet/provider/service/windows.rb +37 -40
  512. data/lib/puppet/provider/user/aix.rb +143 -247
  513. data/lib/puppet/provider/user/openbsd.rb +3 -2
  514. data/lib/puppet/provider/user/pw.rb +1 -1
  515. data/lib/puppet/provider/user/user_role_add.rb +7 -1
  516. data/lib/puppet/provider/user/useradd.rb +40 -6
  517. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  518. data/lib/puppet/provider.rb +34 -13
  519. data/lib/puppet/reference/configuration.rb +12 -2
  520. data/lib/puppet/reference/providers.rb +1 -1
  521. data/lib/puppet/reference/report.rb +1 -1
  522. data/lib/puppet/reference/type.rb +11 -12
  523. data/lib/puppet/relationship.rb +2 -1
  524. data/lib/puppet/reports/http.rb +4 -2
  525. data/lib/puppet/reports/store.rb +1 -1
  526. data/lib/puppet/reports.rb +2 -2
  527. data/lib/puppet/resource/capability_finder.rb +49 -27
  528. data/lib/puppet/resource/catalog.rb +42 -34
  529. data/lib/puppet/resource/status.rb +11 -3
  530. data/lib/puppet/resource/type.rb +16 -12
  531. data/lib/puppet/resource/type_collection.rb +2 -2
  532. data/lib/puppet/resource.rb +30 -12
  533. data/lib/puppet/rest/client.rb +83 -0
  534. data/lib/puppet/rest/errors.rb +14 -0
  535. data/lib/puppet/rest/response.rb +34 -0
  536. data/lib/puppet/rest/route.rb +84 -0
  537. data/lib/puppet/rest/routes.rb +154 -0
  538. data/lib/puppet/rest/ssl_context.rb +13 -0
  539. data/lib/puppet/settings/base_setting.rb +29 -9
  540. data/lib/puppet/settings/certificate_revocation_setting.rb +21 -0
  541. data/lib/puppet/settings/config_file.rb +16 -7
  542. data/lib/puppet/settings/environment_conf.rb +29 -11
  543. data/lib/puppet/settings/file_setting.rb +1 -1
  544. data/lib/puppet/settings/ini_file.rb +66 -12
  545. data/lib/puppet/settings/ttl_setting.rb +5 -0
  546. data/lib/puppet/settings.rb +68 -38
  547. data/lib/puppet/ssl/base.rb +10 -13
  548. data/lib/puppet/ssl/certificate.rb +6 -2
  549. data/lib/puppet/ssl/certificate_request.rb +19 -21
  550. data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
  551. data/lib/puppet/ssl/certificate_signer.rb +11 -0
  552. data/lib/puppet/ssl/host.rb +413 -174
  553. data/lib/puppet/ssl/key.rb +1 -5
  554. data/lib/puppet/ssl/oids.rb +10 -4
  555. data/lib/puppet/ssl/validator/default_validator.rb +33 -19
  556. data/lib/puppet/ssl.rb +0 -1
  557. data/lib/puppet/syntax_checkers/base64.rb +6 -7
  558. data/lib/puppet/syntax_checkers/json.rb +1 -1
  559. data/lib/puppet/test/test_helper.rb +2 -3
  560. data/lib/puppet/transaction/additional_resource_generator.rb +2 -2
  561. data/lib/puppet/transaction/event.rb +38 -15
  562. data/lib/puppet/transaction/event_manager.rb +3 -1
  563. data/lib/puppet/transaction/persistence.rb +17 -2
  564. data/lib/puppet/transaction/report.rb +33 -16
  565. data/lib/puppet/transaction.rb +43 -16
  566. data/lib/puppet/type/exec.rb +23 -20
  567. data/lib/puppet/type/file/checksum.rb +7 -1
  568. data/lib/puppet/type/file/checksum_value.rb +4 -3
  569. data/lib/puppet/type/file/content.rb +17 -5
  570. data/lib/puppet/type/file/data_sync.rb +2 -1
  571. data/lib/puppet/type/file/ensure.rb +1 -1
  572. data/lib/puppet/type/file/mode.rb +1 -1
  573. data/lib/puppet/type/file/source.rb +21 -8
  574. data/lib/puppet/type/file.rb +36 -25
  575. data/lib/puppet/type/group.rb +7 -6
  576. data/lib/puppet/type/notify.rb +1 -1
  577. data/lib/puppet/type/package.rb +5 -8
  578. data/lib/puppet/type/resources.rb +1 -1
  579. data/lib/puppet/type/schedule.rb +73 -112
  580. data/lib/puppet/type/service.rb +3 -6
  581. data/lib/puppet/type/stage.rb +1 -1
  582. data/lib/puppet/type/tidy.rb +21 -8
  583. data/lib/puppet/type/user.rb +98 -50
  584. data/lib/puppet/type.rb +76 -67
  585. data/lib/puppet/util/at_fork/solaris.rb +6 -4
  586. data/lib/puppet/util/autoload.rb +62 -54
  587. data/lib/puppet/util/backups.rb +1 -1
  588. data/lib/puppet/util/character_encoding.rb +2 -24
  589. data/lib/puppet/util/checksums.rb +82 -3
  590. data/lib/puppet/util/classgen.rb +0 -6
  591. data/lib/puppet/util/command_line/trollop.rb +6 -5
  592. data/lib/puppet/util/command_line.rb +5 -1
  593. data/lib/puppet/util/connection.rb +74 -0
  594. data/lib/puppet/util/errors.rb +59 -8
  595. data/lib/puppet/util/execution.rb +70 -17
  596. data/lib/puppet/util/feature.rb +63 -41
  597. data/lib/puppet/util/fileparsing.rb +30 -10
  598. data/lib/puppet/util/filetype.rb +2 -2
  599. data/lib/puppet/util/http_proxy.rb +18 -8
  600. data/lib/puppet/util/inifile.rb +3 -4
  601. data/lib/puppet/util/instance_loader.rb +4 -24
  602. data/lib/puppet/util/json.rb +69 -0
  603. data/lib/puppet/util/json_lockfile.rb +3 -3
  604. data/lib/puppet/util/ldap/connection.rb +7 -7
  605. data/lib/puppet/util/ldap/manager.rb +6 -3
  606. data/lib/puppet/util/log/destinations.rb +13 -4
  607. data/lib/puppet/util/log.rb +30 -33
  608. data/lib/puppet/util/logging.rb +26 -29
  609. data/lib/puppet/util/monkey_patches.rb +1 -1
  610. data/lib/puppet/util/network_device/base.rb +1 -1
  611. data/lib/puppet/util/network_device/config.rb +22 -15
  612. data/lib/puppet/util/platform.rb +16 -0
  613. data/lib/puppet/util/plist.rb +7 -5
  614. data/lib/puppet/util/posix.rb +1 -1
  615. data/lib/puppet/util/provider_features.rb +3 -6
  616. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +3 -3
  617. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  618. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  619. data/lib/puppet/util/rdoc.rb +1 -1
  620. data/lib/puppet/util/reference.rb +8 -15
  621. data/lib/puppet/util/rubygems.rb +1 -13
  622. data/lib/puppet/util/run_mode.rb +1 -1
  623. data/lib/puppet/util/selinux.rb +1 -1
  624. data/lib/puppet/util/ssl.rb +40 -1
  625. data/lib/puppet/util/storage.rb +3 -3
  626. data/lib/puppet/util/suidmanager.rb +8 -5
  627. data/lib/puppet/util/tag_set.rb +1 -1
  628. data/lib/puppet/util/tagging.rb +18 -5
  629. data/lib/puppet/util/warnings.rb +0 -2
  630. data/lib/puppet/util/windows/adsi.rb +160 -214
  631. data/lib/puppet/util/windows/api_types.rb +9 -5
  632. data/lib/puppet/util/windows/com.rb +2 -1
  633. data/lib/puppet/util/windows/eventlog.rb +10 -5
  634. data/lib/puppet/util/windows/file.rb +113 -12
  635. data/lib/puppet/util/windows/principal.rb +7 -6
  636. data/lib/puppet/util/windows/process.rb +10 -2
  637. data/lib/puppet/util/windows/registry.rb +2 -2
  638. data/lib/puppet/util/windows/security.rb +26 -14
  639. data/lib/puppet/util/windows/service.rb +770 -0
  640. data/lib/puppet/util/windows/sid.rb +60 -9
  641. data/lib/puppet/util/windows.rb +19 -2
  642. data/lib/puppet/util/yaml.rb +41 -5
  643. data/lib/puppet/util.rb +50 -50
  644. data/lib/puppet/vendor/deep_merge/README.md +2 -2
  645. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +18 -18
  646. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +1 -1
  647. data/lib/puppet/version.rb +1 -1
  648. data/lib/puppet.rb +12 -68
  649. data/lib/puppet_pal.rb +1102 -0
  650. data/locales/en/puppet.po +19 -0
  651. data/locales/ja/puppet.po +11128 -0
  652. data/locales/puppet.pot +3723 -2251
  653. data/man/man5/puppet.conf.5 +342 -187
  654. data/man/man8/puppet-agent.8 +36 -10
  655. data/man/man8/puppet-apply.8 +21 -6
  656. data/man/man8/puppet-catalog.8 +12 -15
  657. data/man/man8/puppet-config.8 +40 -6
  658. data/man/man8/puppet-describe.8 +3 -3
  659. data/man/man8/puppet-device.8 +48 -14
  660. data/man/man8/puppet-doc.8 +5 -5
  661. data/man/man8/puppet-epp.8 +49 -21
  662. data/man/man8/puppet-facts.8 +58 -9
  663. data/man/man8/puppet-filebucket.8 +76 -10
  664. data/man/man8/puppet-generate.8 +84 -0
  665. data/man/man8/puppet-help.8 +4 -4
  666. data/man/man8/puppet-key.8 +11 -17
  667. data/man/man8/puppet-lookup.8 +104 -0
  668. data/man/man8/puppet-man.8 +13 -7
  669. data/man/man8/puppet-module.8 +29 -98
  670. data/man/man8/puppet-node.8 +12 -15
  671. data/man/man8/puppet-parser.8 +34 -11
  672. data/man/man8/puppet-plugin.8 +4 -4
  673. data/man/man8/puppet-report.8 +9 -9
  674. data/man/man8/puppet-resource.8 +4 -8
  675. data/man/man8/puppet-script.8 +67 -0
  676. data/man/man8/puppet-ssl.8 +28 -0
  677. data/man/man8/puppet-status.8 +9 -9
  678. data/man/man8/puppet.8 +21 -3
  679. data/spec/fixtures/unit/application/environments/production/data/common.yaml +2 -0
  680. data/spec/fixtures/unit/functions/hiera/hiera/backend/hieraspec_backend.rb +22 -0
  681. data/spec/fixtures/unit/functions/lookup/hiera/backend/custom_backend.rb +18 -0
  682. data/spec/fixtures/unit/functions/lookup/hiera/backend/other_backend.rb +7 -0
  683. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
  684. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +6 -6
  685. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_input.out +1 -0
  686. data/spec/fixtures/unit/provider/aix_object/aix_colon_list_real_world_output.out +1 -0
  687. data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -1
  688. data/spec/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt +36 -0
  689. data/spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt +1 -0
  690. data/spec/fixtures/unit/provider/service/base/ps_ef.mixed_encoding +3 -0
  691. data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +32 -0
  692. data/spec/integration/agent/logging_spec.rb +4 -2
  693. data/spec/integration/application/apply_spec.rb +33 -26
  694. data/spec/integration/application/lookup_spec.rb +21 -0
  695. data/spec/integration/configurer_spec.rb +2 -5
  696. data/spec/integration/data_binding_spec.rb +1 -0
  697. data/spec/integration/defaults_spec.rb +5 -10
  698. data/spec/integration/faces/config_spec.rb +16 -4
  699. data/spec/integration/faces/plugin_spec.rb +3 -0
  700. data/spec/integration/file_bucket/file_spec.rb +20 -22
  701. data/spec/integration/file_system/uniquefile_spec.rb +26 -29
  702. data/spec/integration/indirector/facts/facter_spec.rb +4 -14
  703. data/spec/integration/indirector/file_content/file_server_spec.rb +17 -0
  704. data/spec/integration/indirector/file_metadata/file_server_spec.rb +10 -0
  705. data/spec/integration/network/authconfig_spec.rb +2 -2
  706. data/spec/integration/network/http/api/indirected_routes_spec.rb +9 -38
  707. data/spec/integration/node/environment_spec.rb +1 -1
  708. data/spec/integration/node_spec.rb +0 -4
  709. data/spec/integration/parser/catalog_spec.rb +10 -6
  710. data/spec/integration/parser/collection_spec.rb +42 -3
  711. data/spec/integration/parser/compiler_spec.rb +43 -24
  712. data/spec/integration/parser/pcore_resource_spec.rb +3 -3
  713. data/spec/integration/parser/scope_spec.rb +18 -5
  714. data/spec/integration/parser/script_compiler_spec.rb +113 -0
  715. data/spec/integration/provider/service/init_spec.rb +4 -2
  716. data/spec/integration/provider/service/systemd_spec.rb +8 -4
  717. data/spec/integration/provider/service/windows_spec.rb +5 -3
  718. data/spec/integration/reference/providers_spec.rb +6 -0
  719. data/spec/integration/ssl/certificate_request_spec.rb +0 -2
  720. data/spec/integration/ssl/host_spec.rb +16 -24
  721. data/spec/integration/ssl/key_spec.rb +3 -3
  722. data/spec/integration/test/test_helper_spec.rb +32 -32
  723. data/spec/integration/transaction/report_spec.rb +11 -6
  724. data/spec/integration/type/exec_spec.rb +1 -1
  725. data/spec/integration/type/file_spec.rb +72 -18
  726. data/spec/integration/type/package_spec.rb +1 -1
  727. data/spec/integration/type_spec.rb +1 -2
  728. data/spec/integration/util/autoload_spec.rb +9 -6
  729. data/spec/integration/util/execution_spec.rb +13 -5
  730. data/spec/integration/util/rdoc/parser_spec.rb +13 -23
  731. data/spec/integration/util/settings_spec.rb +2 -1
  732. data/spec/integration/util/windows/adsi_spec.rb +89 -4
  733. data/spec/integration/util/windows/principal_spec.rb +12 -3
  734. data/spec/integration/util/windows/process_spec.rb +48 -3
  735. data/spec/integration/util/windows/registry_spec.rb +1 -1
  736. data/spec/integration/util/windows/security_spec.rb +98 -8
  737. data/spec/integration/util/windows/user_spec.rb +1 -1
  738. data/spec/integration/util_spec.rb +3 -3
  739. data/spec/lib/matchers/json.rb +27 -32
  740. data/{lib/puppet/ssl → spec/lib/puppet}/certificate_factory.rb +5 -6
  741. data/spec/lib/puppet/test_ca.rb +109 -0
  742. data/spec/lib/puppet_spec/compiler.rb +27 -0
  743. data/spec/lib/puppet_spec/files.rb +28 -23
  744. data/spec/lib/puppet_spec/language.rb +34 -35
  745. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  746. data/spec/lib/puppet_spec/modules.rb +20 -0
  747. data/spec/lib/puppet_spec/ssl.rb +265 -0
  748. data/spec/lib/puppet_spec/validators.rb +37 -0
  749. data/spec/shared_behaviours/file_server_terminus.rb +0 -2
  750. data/spec/shared_behaviours/file_serving_model.rb +0 -19
  751. data/spec/shared_behaviours/path_parameters.rb +1 -1
  752. data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
  753. data/spec/shared_contexts/checksum.rb +4 -1
  754. data/spec/shared_contexts/digests.rb +46 -1
  755. data/spec/shared_contexts/types_setup.rb +66 -7
  756. data/spec/shared_examples/rhel_package_provider.rb +2 -2
  757. data/spec/spec_helper.rb +7 -14
  758. data/spec/unit/agent_spec.rb +48 -4
  759. data/spec/unit/application/agent_spec.rb +5 -20
  760. data/spec/unit/application/apply_spec.rb +4 -12
  761. data/spec/unit/application/config_spec.rb +4 -0
  762. data/spec/unit/application/device_spec.rb +141 -10
  763. data/spec/unit/application/face_base_spec.rb +2 -2
  764. data/spec/unit/application/filebucket_spec.rb +18 -4
  765. data/spec/unit/application/lookup_spec.rb +46 -9
  766. data/spec/unit/application/ssl_spec.rb +322 -0
  767. data/spec/unit/application_spec.rb +46 -4
  768. data/spec/unit/capability_spec.rb +11 -9
  769. data/spec/unit/{ssl/certificate_factory_spec.rb → certificate_factory_spec.rb} +9 -18
  770. data/spec/unit/configurer/downloader_spec.rb +6 -1
  771. data/spec/unit/configurer/plugin_handler_spec.rb +46 -18
  772. data/spec/unit/configurer_spec.rb +90 -33
  773. data/spec/unit/confine_spec.rb +16 -0
  774. data/spec/unit/context/trusted_information_spec.rb +3 -2
  775. data/spec/unit/daemon_spec.rb +3 -2
  776. data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -4
  777. data/spec/unit/datatypes_spec.rb +353 -0
  778. data/spec/unit/defaults_spec.rb +108 -6
  779. data/spec/unit/environments_spec.rb +62 -0
  780. data/spec/unit/etc_spec.rb +1 -1
  781. data/spec/unit/face/config_spec.rb +185 -21
  782. data/spec/unit/face/epp_face_spec.rb +70 -6
  783. data/spec/unit/face/facts_spec.rb +53 -0
  784. data/spec/unit/face/help_spec.rb +64 -70
  785. data/spec/unit/face/man_spec.rb +26 -0
  786. data/spec/unit/face/module/list_spec.rb +0 -61
  787. data/spec/unit/face/module/search_spec.rb +12 -1
  788. data/spec/unit/face/node_spec.rb +9 -32
  789. data/spec/unit/face/parser_spec.rb +80 -2
  790. data/spec/unit/face/plugin_spec.rb +50 -4
  791. data/spec/unit/file_bucket/dipper_spec.rb +29 -13
  792. data/spec/unit/file_serving/base_spec.rb +6 -9
  793. data/spec/unit/file_serving/configuration/parser_spec.rb +2 -2
  794. data/spec/unit/file_serving/configuration_spec.rb +14 -4
  795. data/spec/unit/file_serving/content_spec.rb +0 -1
  796. data/spec/unit/file_serving/fileset_spec.rb +0 -1
  797. data/spec/unit/file_serving/metadata_spec.rb +4 -5
  798. data/spec/unit/file_serving/mount/locales_spec.rb +73 -0
  799. data/spec/unit/file_serving/mount/modules_spec.rb +1 -1
  800. data/spec/unit/file_serving/mount/tasks_spec.rb +72 -0
  801. data/spec/unit/file_serving/terminus_selector_spec.rb +0 -2
  802. data/spec/unit/file_system/path_pattern_spec.rb +1 -1
  803. data/spec/unit/file_system/uniquefile_spec.rb +2 -2
  804. data/spec/unit/file_system_spec.rb +7 -4
  805. data/spec/unit/forge/forge_spec.rb +2 -2
  806. data/spec/unit/forge/module_release_spec.rb +70 -0
  807. data/spec/unit/forge_spec.rb +106 -2
  808. data/spec/unit/functions/abs_spec.rb +70 -0
  809. data/spec/unit/functions/all_spec.rb +97 -0
  810. data/spec/unit/functions/any_spec.rb +109 -0
  811. data/spec/unit/functions/assert_type_spec.rb +1 -1
  812. data/spec/unit/functions/break_spec.rb +144 -54
  813. data/spec/unit/functions/call_spec.rb +59 -5
  814. data/spec/unit/functions/camelcase_spec.rb +34 -0
  815. data/spec/unit/functions/capitalize_spec.rb +34 -0
  816. data/spec/unit/functions/ceiling_spec.rb +65 -0
  817. data/spec/unit/functions/chomp_spec.rb +46 -0
  818. data/spec/unit/functions/chop_spec.rb +38 -0
  819. data/spec/unit/functions/compare_spec.rb +147 -0
  820. data/spec/unit/functions/contain_spec.rb +1 -0
  821. data/spec/unit/functions/convert_to_spec.rb +25 -0
  822. data/spec/unit/functions/defined_spec.rb +2 -2
  823. data/spec/unit/functions/downcase_spec.rb +34 -0
  824. data/spec/unit/functions/empty_spec.rb +77 -0
  825. data/spec/unit/functions/epp_spec.rb +21 -3
  826. data/spec/unit/functions/filter_spec.rb +4 -4
  827. data/spec/unit/functions/flatten_spec.rb +31 -0
  828. data/spec/unit/functions/floor_spec.rb +65 -0
  829. data/spec/unit/functions/get_spec.rb +135 -0
  830. data/spec/unit/functions/getvar_spec.rb +121 -0
  831. data/spec/unit/functions/hiera_spec.rb +19 -49
  832. data/spec/unit/functions/include_spec.rb +16 -1
  833. data/spec/unit/functions/inline_epp_spec.rb +1 -1
  834. data/spec/unit/functions/join_spec.rb +33 -0
  835. data/spec/unit/functions/keys_spec.rb +31 -0
  836. data/spec/unit/functions/length_spec.rb +50 -0
  837. data/spec/unit/functions/lookup_fixture_spec.rb +1 -1
  838. data/spec/unit/functions/lookup_spec.rb +198 -80
  839. data/spec/unit/functions/lstrip_spec.rb +30 -0
  840. data/spec/unit/functions/match_spec.rb +21 -4
  841. data/spec/unit/functions/max_spec.rb +129 -0
  842. data/spec/unit/functions/min_spec.rb +129 -0
  843. data/spec/unit/functions/module_directory_spec.rb +43 -0
  844. data/spec/unit/functions/new_spec.rb +81 -14
  845. data/spec/unit/functions/next_spec.rb +1 -1
  846. data/spec/unit/functions/regsubst_spec.rb +4 -5
  847. data/spec/unit/functions/require_spec.rb +2 -0
  848. data/spec/unit/functions/return_spec.rb +2 -2
  849. data/spec/unit/functions/round_spec.rb +41 -0
  850. data/spec/unit/functions/rstrip_spec.rb +30 -0
  851. data/spec/unit/functions/shared.rb +12 -0
  852. data/spec/unit/functions/size_spec.rb +50 -0
  853. data/spec/unit/functions/sort_spec.rb +79 -0
  854. data/spec/unit/functions/split_spec.rb +3 -4
  855. data/spec/unit/functions/step_spec.rb +1 -1
  856. data/spec/unit/functions/strftime_spec.rb +2 -2
  857. data/spec/unit/functions/strip_spec.rb +30 -0
  858. data/spec/unit/functions/tree_each_spec.rb +493 -0
  859. data/spec/unit/functions/upcase_spec.rb +34 -0
  860. data/spec/unit/functions/values_spec.rb +30 -0
  861. data/spec/unit/functions/versioncmp_spec.rb +3 -4
  862. data/spec/unit/functions4_spec.rb +146 -76
  863. data/spec/unit/gettext/config_spec.rb +144 -0
  864. data/spec/unit/gettext/module_loading_spec.rb +53 -0
  865. data/spec/unit/graph/relationship_graph_spec.rb +15 -0
  866. data/spec/unit/graph/simple_graph_spec.rb +43 -3
  867. data/spec/unit/indirector/catalog/compiler_spec.rb +3 -18
  868. data/spec/unit/indirector/certificate/file_spec.rb +0 -8
  869. data/spec/unit/indirector/direct_file_server_spec.rb +44 -46
  870. data/spec/unit/indirector/exec_spec.rb +29 -23
  871. data/spec/unit/indirector/facts/rest_spec.rb +45 -0
  872. data/spec/unit/indirector/facts/yaml_spec.rb +95 -78
  873. data/spec/unit/indirector/file_bucket_file/file_spec.rb +156 -99
  874. data/spec/unit/indirector/file_server_spec.rb +122 -116
  875. data/spec/unit/indirector/indirection_spec.rb +25 -10
  876. data/spec/unit/indirector/json_spec.rb +0 -11
  877. data/spec/unit/indirector/key/file_spec.rb +0 -17
  878. data/spec/unit/indirector/node/exec_spec.rb +43 -22
  879. data/spec/unit/indirector/request_spec.rb +47 -6
  880. data/spec/unit/indirector/resource/ral_spec.rb +1 -0
  881. data/spec/unit/indirector/rest_spec.rb +45 -2
  882. data/spec/unit/indirector/ssl_file_spec.rb +37 -59
  883. data/spec/unit/indirector/terminus_spec.rb +3 -3
  884. data/spec/unit/indirector/yaml_spec.rb +87 -64
  885. data/spec/unit/indirector_spec.rb +0 -1
  886. data/spec/unit/info_service_spec.rb +203 -3
  887. data/spec/unit/interface/action_manager_spec.rb +1 -1
  888. data/spec/unit/interface/action_spec.rb +34 -1
  889. data/spec/unit/interface_spec.rb +12 -0
  890. data/spec/unit/module_spec.rb +89 -4
  891. data/spec/unit/module_tool/applications/installer_spec.rb +10 -2
  892. data/spec/unit/module_tool/applications/uninstaller_spec.rb +8 -0
  893. data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -4
  894. data/spec/unit/module_tool/applications/upgrader_spec.rb +7 -1
  895. data/spec/unit/module_tool/tar/mini_spec.rb +34 -5
  896. data/spec/unit/network/formats_spec.rb +31 -13
  897. data/spec/unit/network/http/api/indirected_routes_spec.rb +9 -5
  898. data/spec/unit/network/http/api/master/v3/authorization_spec.rb +5 -7
  899. data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -1
  900. data/spec/unit/network/http/api_spec.rb +0 -26
  901. data/spec/unit/network/http/compression_spec.rb +6 -3
  902. data/spec/unit/network/http/connection_spec.rb +99 -47
  903. data/spec/unit/network/http/factory_spec.rb +32 -11
  904. data/spec/unit/network/http/handler_spec.rb +3 -2
  905. data/spec/unit/network/resolver_spec.rb +87 -12
  906. data/spec/unit/node/environment_spec.rb +38 -6
  907. data/spec/unit/node/facts_spec.rb +14 -1
  908. data/spec/unit/node_spec.rb +121 -23
  909. data/spec/unit/other/selinux_spec.rb +0 -71
  910. data/spec/unit/parser/ast/leaf_spec.rb +3 -4
  911. data/spec/unit/parser/compiler_spec.rb +9 -2
  912. data/spec/unit/parser/environment_compiler_spec.rb +55 -17
  913. data/spec/unit/parser/functions/create_resources_spec.rb +10 -1
  914. data/spec/unit/parser/functions/digest_spec.rb +1 -5
  915. data/spec/unit/parser/functions/fail_spec.rb +1 -5
  916. data/spec/unit/parser/functions/file_spec.rb +0 -4
  917. data/spec/unit/parser/functions/fqdn_rand_spec.rb +24 -0
  918. data/spec/unit/parser/functions/generate_spec.rb +29 -31
  919. data/spec/unit/parser/functions/inline_template_spec.rb +7 -4
  920. data/spec/unit/parser/functions/realize_spec.rb +9 -0
  921. data/spec/unit/parser/functions/regsubst_spec.rb +0 -4
  922. data/spec/unit/parser/functions/scanf_spec.rb +0 -4
  923. data/spec/unit/parser/functions/split_spec.rb +0 -4
  924. data/spec/unit/parser/functions/sprintf_spec.rb +26 -4
  925. data/spec/unit/parser/functions/tag_spec.rb +7 -4
  926. data/spec/unit/parser/functions/tagged_spec.rb +37 -0
  927. data/spec/unit/parser/functions/template_spec.rb +8 -4
  928. data/spec/unit/parser/functions/versioncmp_spec.rb +0 -4
  929. data/spec/unit/parser/functions_spec.rb +27 -2
  930. data/spec/unit/parser/resource/param_spec.rb +2 -2
  931. data/spec/unit/parser/resource_spec.rb +0 -1
  932. data/spec/unit/parser/scope_spec.rb +23 -4
  933. data/spec/unit/parser/type_loader_spec.rb +1 -1
  934. data/spec/unit/pops/adaptable_spec.rb +0 -1
  935. data/spec/unit/pops/evaluator/access_ops_spec.rb +5 -0
  936. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +10 -0
  937. data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -1
  938. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +78 -16
  939. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +4 -8
  940. data/spec/unit/pops/factory_rspec_helper.rb +1 -1
  941. data/spec/unit/pops/factory_spec.rb +10 -6
  942. data/spec/unit/pops/issues_spec.rb +23 -8
  943. data/spec/unit/pops/loaders/dependency_loader_spec.rb +2 -2
  944. data/spec/unit/pops/loaders/loader_spec.rb +495 -0
  945. data/spec/unit/pops/loaders/loaders_spec.rb +64 -19
  946. data/spec/unit/pops/loaders/module_loaders_spec.rb +75 -0
  947. data/spec/unit/pops/loaders/static_loader_spec.rb +16 -44
  948. data/spec/unit/pops/lookup/interpolation_spec.rb +5 -0
  949. data/spec/unit/pops/lookup/lookup_spec.rb +56 -0
  950. data/spec/unit/pops/model/model_spec.rb +5 -0
  951. data/spec/unit/pops/model/pn_transformer_spec.rb +53 -0
  952. data/spec/unit/pops/parser/lexer2_spec.rb +119 -26
  953. data/spec/unit/pops/parser/locator_spec.rb +20 -0
  954. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +67 -4
  955. data/spec/unit/pops/parser/parse_calls_spec.rb +28 -0
  956. data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -0
  957. data/spec/unit/pops/parser/parse_containers_spec.rb +1 -1
  958. data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
  959. data/spec/unit/pops/parser/parse_heredoc_spec.rb +3 -3
  960. data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
  961. data/spec/unit/pops/parser/parse_plan_spec.rb +48 -0
  962. data/spec/unit/pops/parser/parse_resource_spec.rb +35 -35
  963. data/spec/unit/pops/parser/parser_spec.rb +138 -0
  964. data/spec/unit/pops/parser/pn_parser_spec.rb +101 -0
  965. data/spec/unit/pops/pn_spec.rb +148 -0
  966. data/spec/unit/pops/puppet_stack_spec.rb +38 -9
  967. data/spec/unit/pops/serialization/packer_spec.rb +8 -0
  968. data/spec/unit/pops/serialization/serialization_spec.rb +38 -6
  969. data/spec/unit/pops/serialization/to_from_hr_spec.rb +134 -5
  970. data/spec/unit/pops/serialization/to_stringified_spec.rb +157 -0
  971. data/spec/unit/pops/types/deferred_spec.rb +87 -0
  972. data/spec/unit/pops/types/error_spec.rb +207 -0
  973. data/spec/unit/pops/types/iterable_spec.rb +10 -10
  974. data/spec/unit/pops/types/p_init_type_spec.rb +383 -0
  975. data/spec/unit/pops/types/p_object_type_spec.rb +531 -54
  976. data/spec/unit/pops/types/p_sensitive_type_spec.rb +4 -0
  977. data/spec/unit/pops/types/p_timespan_type_spec.rb +32 -4
  978. data/spec/unit/pops/types/p_timestamp_type_spec.rb +64 -3
  979. data/spec/unit/pops/types/p_type_set_type_spec.rb +108 -4
  980. data/spec/unit/pops/types/p_uri_type_spec.rb +191 -0
  981. data/spec/unit/pops/types/ruby_generator_spec.rb +285 -73
  982. data/spec/unit/pops/types/string_converter_spec.rb +63 -17
  983. data/spec/unit/pops/types/task_spec.rb +485 -0
  984. data/spec/unit/pops/types/type_acceptor_spec.rb +2 -2
  985. data/spec/unit/pops/types/type_calculator_spec.rb +224 -63
  986. data/spec/unit/pops/types/type_factory_spec.rb +6 -6
  987. data/spec/unit/pops/types/type_formatter_spec.rb +37 -19
  988. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +21 -0
  989. data/spec/unit/pops/types/type_parser_spec.rb +39 -2
  990. data/spec/unit/pops/types/types_spec.rb +88 -10
  991. data/spec/unit/pops/validator/validator_spec.rb +435 -7
  992. data/spec/unit/property/keyvalue_spec.rb +97 -6
  993. data/spec/unit/property_spec.rb +14 -5
  994. data/spec/unit/provider/aix_object_spec.rb +805 -0
  995. data/spec/unit/provider/exec/posix_spec.rb +8 -8
  996. data/spec/unit/provider/exec/shell_spec.rb +2 -1
  997. data/spec/unit/provider/exec/windows_spec.rb +2 -2
  998. data/spec/unit/provider/file/windows_spec.rb +2 -2
  999. data/spec/unit/provider/group/aix_spec.rb +76 -0
  1000. data/spec/unit/provider/group/groupadd_spec.rb +77 -1
  1001. data/spec/unit/provider/group/pw_spec.rb +4 -4
  1002. data/spec/unit/provider/group/windows_adsi_spec.rb +80 -23
  1003. data/spec/unit/provider/ldap_spec.rb +0 -1
  1004. data/spec/unit/provider/nameservice_spec.rb +11 -11
  1005. data/spec/unit/provider/package/aix_spec.rb +26 -1
  1006. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  1007. data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
  1008. data/spec/unit/provider/package/dnf_spec.rb +9 -2
  1009. data/spec/unit/provider/package/dpkg_spec.rb +2 -2
  1010. data/spec/unit/provider/package/gem_spec.rb +17 -7
  1011. data/spec/unit/provider/package/nim_spec.rb +2 -11
  1012. data/spec/unit/provider/package/opkg_spec.rb +2 -2
  1013. data/spec/unit/provider/package/pip_spec.rb +38 -41
  1014. data/spec/unit/provider/package/pkg_spec.rb +64 -24
  1015. data/spec/unit/provider/package/pkgng_spec.rb +1 -1
  1016. data/spec/unit/provider/package/puppet_gem_spec.rb +2 -2
  1017. data/spec/unit/provider/package/rpm_spec.rb +33 -14
  1018. data/spec/unit/provider/package/urpmi_spec.rb +9 -3
  1019. data/spec/unit/provider/package/windows/msi_package_spec.rb +1 -1
  1020. data/spec/unit/provider/package/windows/package_spec.rb +1 -1
  1021. data/spec/unit/provider/package/windows_spec.rb +3 -3
  1022. data/spec/unit/provider/package/yum_spec.rb +69 -0
  1023. data/spec/unit/provider/parsedfile_spec.rb +1 -1
  1024. data/spec/unit/provider/service/base_spec.rb +23 -5
  1025. data/spec/unit/provider/service/bsd_spec.rb +17 -16
  1026. data/spec/unit/provider/service/daemontools_spec.rb +2 -3
  1027. data/spec/unit/provider/service/debian_spec.rb +8 -4
  1028. data/spec/unit/provider/service/freebsd_spec.rb +2 -2
  1029. data/spec/unit/provider/service/gentoo_spec.rb +27 -26
  1030. data/spec/unit/provider/service/init_spec.rb +17 -16
  1031. data/spec/unit/provider/service/launchd_spec.rb +6 -3
  1032. data/spec/unit/provider/service/openbsd_spec.rb +43 -42
  1033. data/spec/unit/provider/service/openrc_spec.rb +35 -34
  1034. data/spec/unit/provider/service/openwrt_spec.rb +7 -5
  1035. data/spec/unit/provider/service/rcng_spec.rb +7 -6
  1036. data/spec/unit/provider/service/redhat_spec.rb +11 -6
  1037. data/spec/unit/provider/service/runit_spec.rb +2 -3
  1038. data/spec/unit/provider/service/smf_spec.rb +7 -7
  1039. data/spec/unit/provider/service/src_spec.rb +3 -4
  1040. data/spec/unit/provider/service/systemd_spec.rb +73 -51
  1041. data/spec/unit/provider/service/upstart_spec.rb +53 -14
  1042. data/spec/unit/provider/service/windows_spec.rb +49 -86
  1043. data/spec/unit/provider/user/aix_spec.rb +126 -121
  1044. data/spec/unit/provider/user/hpux_spec.rb +4 -3
  1045. data/spec/unit/provider/user/openbsd_spec.rb +2 -2
  1046. data/spec/unit/provider/user/pw_spec.rb +14 -14
  1047. data/spec/unit/provider/user/user_role_add_spec.rb +20 -3
  1048. data/spec/unit/provider/user/useradd_spec.rb +194 -22
  1049. data/spec/unit/provider/user/windows_adsi_spec.rb +5 -5
  1050. data/spec/unit/provider_spec.rb +210 -14
  1051. data/spec/unit/puppet_pal_2pec.rb +1020 -0
  1052. data/spec/unit/puppet_pal_catalog_spec.rb +801 -0
  1053. data/spec/unit/puppet_pal_spec.rb +4 -0
  1054. data/spec/unit/puppet_spec.rb +31 -19
  1055. data/spec/unit/resource/capability_finder_spec.rb +16 -18
  1056. data/spec/unit/resource/catalog_spec.rb +27 -12
  1057. data/spec/unit/resource/status_spec.rb +17 -4
  1058. data/spec/unit/resource/type_collection_spec.rb +4 -1
  1059. data/spec/unit/resource/type_spec.rb +24 -9
  1060. data/spec/unit/resource_spec.rb +46 -5
  1061. data/spec/unit/rest/client_spec.rb +135 -0
  1062. data/spec/unit/rest/route_spec.rb +132 -0
  1063. data/spec/unit/settings/autosign_setting_spec.rb +2 -2
  1064. data/spec/unit/settings/certificate_revocation_setting_spec.rb +37 -0
  1065. data/spec/unit/settings/config_file_spec.rb +10 -1
  1066. data/spec/unit/settings/file_setting_spec.rb +17 -9
  1067. data/spec/unit/settings/ini_file_spec.rb +314 -5
  1068. data/spec/unit/settings/path_setting_spec.rb +1 -1
  1069. data/spec/unit/settings_spec.rb +57 -7
  1070. data/spec/unit/ssl/certificate_request_attributes_spec.rb +21 -8
  1071. data/spec/unit/ssl/certificate_request_spec.rb +62 -41
  1072. data/spec/unit/ssl/certificate_spec.rb +4 -7
  1073. data/spec/unit/ssl/host_spec.rb +248 -579
  1074. data/spec/unit/ssl/key_spec.rb +0 -15
  1075. data/spec/unit/ssl/validator_spec.rb +36 -167
  1076. data/spec/unit/task_spec.rb +247 -0
  1077. data/spec/unit/transaction/additional_resource_generator_spec.rb +64 -62
  1078. data/spec/unit/transaction/event_manager_spec.rb +12 -0
  1079. data/spec/unit/transaction/persistence_spec.rb +43 -1
  1080. data/spec/unit/transaction/report_spec.rb +62 -19
  1081. data/spec/unit/transaction/resource_harness_spec.rb +2 -2
  1082. data/spec/unit/transaction_spec.rb +134 -16
  1083. data/spec/unit/type/exec_spec.rb +11 -13
  1084. data/spec/unit/type/file/checksum_spec.rb +21 -1
  1085. data/spec/unit/type/file/content_spec.rb +13 -1
  1086. data/spec/unit/type/file/selinux_spec.rb +0 -1
  1087. data/spec/unit/type/file/source_spec.rb +15 -9
  1088. data/spec/unit/type/file_spec.rb +37 -22
  1089. data/spec/unit/type/group_spec.rb +8 -0
  1090. data/spec/unit/type/package_spec.rb +10 -0
  1091. data/spec/unit/type/resources_spec.rb +26 -12
  1092. data/spec/unit/type/schedule_spec.rb +15 -1
  1093. data/spec/unit/type/service_spec.rb +36 -10
  1094. data/spec/unit/type/tidy_spec.rb +17 -1
  1095. data/spec/unit/type/user_spec.rb +24 -115
  1096. data/spec/unit/type_spec.rb +177 -98
  1097. data/spec/unit/util/autoload_spec.rb +71 -43
  1098. data/spec/unit/util/character_encoding_spec.rb +0 -43
  1099. data/spec/unit/util/checksums_spec.rb +3 -3
  1100. data/spec/unit/util/diff_spec.rb +11 -3
  1101. data/spec/unit/util/docs_spec.rb +1 -1
  1102. data/spec/unit/util/errors_spec.rb +1 -1
  1103. data/spec/unit/util/execution_spec.rb +229 -95
  1104. data/spec/unit/util/execution_stub_spec.rb +2 -2
  1105. data/spec/unit/util/feature_spec.rb +35 -17
  1106. data/spec/unit/util/filetype_spec.rb +8 -4
  1107. data/spec/unit/util/http_proxy_spec.rb +57 -0
  1108. data/spec/unit/util/inifile_spec.rb +35 -4
  1109. data/spec/unit/util/ldap/manager_spec.rb +1 -16
  1110. data/spec/unit/util/lockfile_spec.rb +1 -1
  1111. data/spec/unit/util/log/destinations_spec.rb +45 -15
  1112. data/spec/unit/util/log_spec.rb +42 -12
  1113. data/spec/unit/util/logging_spec.rb +37 -15
  1114. data/spec/unit/util/monkey_patches_spec.rb +6 -3
  1115. data/spec/unit/util/plist_spec.rb +12 -6
  1116. data/spec/unit/util/profiler/object_counts_spec.rb +2 -1
  1117. data/spec/unit/util/rubygems_spec.rb +0 -34
  1118. data/spec/unit/util/run_mode_spec.rb +7 -7
  1119. data/spec/unit/util/selinux_spec.rb +3 -3
  1120. data/spec/unit/util/storage_spec.rb +13 -1
  1121. data/spec/unit/util/suidmanager_spec.rb +5 -5
  1122. data/spec/unit/util/tag_set_spec.rb +8 -1
  1123. data/spec/unit/util/tagging_spec.rb +27 -8
  1124. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -1
  1125. data/spec/unit/util/windows/access_control_list_spec.rb +1 -1
  1126. data/spec/unit/util/windows/adsi_spec.rb +39 -35
  1127. data/spec/unit/util/windows/api_types_spec.rb +52 -1
  1128. data/spec/unit/util/windows/eventlog_spec.rb +1 -1
  1129. data/spec/unit/util/windows/security_descriptor_spec.rb +1 -1
  1130. data/spec/unit/util/windows/service_spec.rb +424 -0
  1131. data/spec/unit/util/windows/sid_spec.rb +88 -17
  1132. data/spec/unit/util/windows/string_spec.rb +1 -1
  1133. data/spec/unit/util/yaml_spec.rb +162 -28
  1134. data/spec/unit/util_spec.rb +41 -76
  1135. data/spec/watchr.rb +0 -1
  1136. data/tasks/benchmark.rake +41 -0
  1137. data/tasks/ci.rake +0 -5
  1138. data/tasks/generate_ast_model.rake +55 -43
  1139. data/tasks/manpages.rake +19 -3
  1140. data/tasks/parallel.rake +12 -7
  1141. data/tasks/parser.rake +11 -3
  1142. metadata +3262 -3438
  1143. data/ext/rack/config.ru +0 -44
  1144. data/ext/rack/example-passenger-vhost.conf +0 -57
  1145. data/lib/puppet/application/ca.rb +0 -11
  1146. data/lib/puppet/application/certificate.rb +0 -17
  1147. data/lib/puppet/application/certificate_request.rb +0 -7
  1148. data/lib/puppet/application/certificate_revocation_list.rb +0 -7
  1149. data/lib/puppet/application/master.rb +0 -313
  1150. data/lib/puppet/bindings.rb +0 -147
  1151. data/lib/puppet/configurer/downloader_factory.rb +0 -34
  1152. data/lib/puppet/external/nagios/base.rb +0 -472
  1153. data/lib/puppet/external/nagios/grammar.ry +0 -248
  1154. data/lib/puppet/external/nagios/makefile +0 -9
  1155. data/lib/puppet/external/nagios/parser.rb +0 -400
  1156. data/lib/puppet/external/nagios.rb +0 -46
  1157. data/lib/puppet/face/ca.rb +0 -266
  1158. data/lib/puppet/face/certificate.rb +0 -165
  1159. data/lib/puppet/face/certificate_request.rb +0 -56
  1160. data/lib/puppet/face/certificate_revocation_list.rb +0 -56
  1161. data/lib/puppet/feature/rack.rb +0 -19
  1162. data/lib/puppet/graph/random_prioritizer.rb +0 -16
  1163. data/lib/puppet/graph/title_hash_prioritizer.rb +0 -16
  1164. data/lib/puppet/indirector/certificate/ca.rb +0 -9
  1165. data/lib/puppet/indirector/certificate/disabled_ca.rb +0 -22
  1166. data/lib/puppet/indirector/certificate_request/ca.rb +0 -22
  1167. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +0 -22
  1168. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +0 -8
  1169. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +0 -22
  1170. data/lib/puppet/indirector/certificate_revocation_list/file.rb +0 -8
  1171. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +0 -10
  1172. data/lib/puppet/indirector/certificate_status/file.rb +0 -91
  1173. data/lib/puppet/indirector/certificate_status/rest.rb +0 -11
  1174. data/lib/puppet/indirector/certificate_status.rb +0 -4
  1175. data/lib/puppet/indirector/key/ca.rb +0 -16
  1176. data/lib/puppet/indirector/key/disabled_ca.rb +0 -22
  1177. data/lib/puppet/indirector/ldap.rb +0 -80
  1178. data/lib/puppet/indirector/node/ldap.rb +0 -259
  1179. data/lib/puppet/indirector/node/write_only_yaml.rb +0 -37
  1180. data/lib/puppet/module_tool/applications/builder.rb +0 -148
  1181. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +0 -18
  1182. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +0 -89
  1183. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +0 -32
  1184. data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +0 -12
  1185. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +0 -48
  1186. data/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +0 -1
  1187. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +0 -6
  1188. data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +0 -1
  1189. data/lib/puppet/network/http/api/ca/v1.rb +0 -11
  1190. data/lib/puppet/network/http/api/ca.rb +0 -2
  1191. data/lib/puppet/network/http/rack/rest.rb +0 -162
  1192. data/lib/puppet/network/http/rack.rb +0 -33
  1193. data/lib/puppet/network/http/webrick/rest.rb +0 -114
  1194. data/lib/puppet/network/http/webrick.rb +0 -125
  1195. data/lib/puppet/network/server.rb +0 -39
  1196. data/lib/puppet/provider/aixobject.rb +0 -392
  1197. data/lib/puppet/provider/augeas/augeas.rb +0 -567
  1198. data/lib/puppet/provider/cisco.rb +0 -9
  1199. data/lib/puppet/provider/computer/computer.rb +0 -20
  1200. data/lib/puppet/provider/cron/crontab.rb +0 -297
  1201. data/lib/puppet/provider/host/parsed.rb +0 -46
  1202. data/lib/puppet/provider/interface/cisco.rb +0 -27
  1203. data/lib/puppet/provider/macauthorization/macauthorization.rb +0 -298
  1204. data/lib/puppet/provider/mailalias/aliases.rb +0 -50
  1205. data/lib/puppet/provider/maillist/mailman.rb +0 -108
  1206. data/lib/puppet/provider/mcx/mcxcontent.rb +0 -173
  1207. data/lib/puppet/provider/mount/parsed.rb +0 -282
  1208. data/lib/puppet/provider/mount.rb +0 -59
  1209. data/lib/puppet/provider/naginator.rb +0 -63
  1210. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +0 -590
  1211. data/lib/puppet/provider/selboolean/getsetsebool.rb +0 -47
  1212. data/lib/puppet/provider/selmodule/semodule.rb +0 -138
  1213. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +0 -105
  1214. data/lib/puppet/provider/sshkey/parsed.rb +0 -50
  1215. data/lib/puppet/provider/vlan/cisco.rb +0 -28
  1216. data/lib/puppet/provider/yumrepo/inifile.rb +0 -304
  1217. data/lib/puppet/provider/zfs/zfs.rb +0 -84
  1218. data/lib/puppet/provider/zone/solaris.rb +0 -364
  1219. data/lib/puppet/provider/zpool/zpool.rb +0 -125
  1220. data/lib/puppet/ssl/certificate_authority/autosign_command.rb +0 -45
  1221. data/lib/puppet/ssl/certificate_authority/interface.rb +0 -324
  1222. data/lib/puppet/ssl/certificate_authority.rb +0 -553
  1223. data/lib/puppet/ssl/certificate_revocation_list.rb +0 -110
  1224. data/lib/puppet/ssl/configuration.rb +0 -61
  1225. data/lib/puppet/ssl/inventory.rb +0 -55
  1226. data/lib/puppet/type/augeas.rb +0 -211
  1227. data/lib/puppet/type/computer.rb +0 -66
  1228. data/lib/puppet/type/cron.rb +0 -475
  1229. data/lib/puppet/type/host.rb +0 -95
  1230. data/lib/puppet/type/interface.rb +0 -121
  1231. data/lib/puppet/type/k5login.rb +0 -88
  1232. data/lib/puppet/type/macauthorization.rb +0 -167
  1233. data/lib/puppet/type/mailalias.rb +0 -46
  1234. data/lib/puppet/type/maillist.rb +0 -62
  1235. data/lib/puppet/type/mcx.rb +0 -98
  1236. data/lib/puppet/type/mount.rb +0 -310
  1237. data/lib/puppet/type/nagios_command.rb +0 -3
  1238. data/lib/puppet/type/nagios_contact.rb +0 -3
  1239. data/lib/puppet/type/nagios_contactgroup.rb +0 -3
  1240. data/lib/puppet/type/nagios_host.rb +0 -3
  1241. data/lib/puppet/type/nagios_hostdependency.rb +0 -3
  1242. data/lib/puppet/type/nagios_hostescalation.rb +0 -3
  1243. data/lib/puppet/type/nagios_hostextinfo.rb +0 -3
  1244. data/lib/puppet/type/nagios_hostgroup.rb +0 -3
  1245. data/lib/puppet/type/nagios_service.rb +0 -3
  1246. data/lib/puppet/type/nagios_servicedependency.rb +0 -3
  1247. data/lib/puppet/type/nagios_serviceescalation.rb +0 -3
  1248. data/lib/puppet/type/nagios_serviceextinfo.rb +0 -3
  1249. data/lib/puppet/type/nagios_servicegroup.rb +0 -3
  1250. data/lib/puppet/type/nagios_timeperiod.rb +0 -3
  1251. data/lib/puppet/type/router.rb +0 -17
  1252. data/lib/puppet/type/scheduled_task.rb +0 -184
  1253. data/lib/puppet/type/selboolean.rb +0 -26
  1254. data/lib/puppet/type/selmodule.rb +0 -59
  1255. data/lib/puppet/type/ssh_authorized_key.rb +0 -143
  1256. data/lib/puppet/type/sshkey.rb +0 -75
  1257. data/lib/puppet/type/vlan.rb +0 -26
  1258. data/lib/puppet/type/yumrepo.rb +0 -409
  1259. data/lib/puppet/type/zfs.rb +0 -150
  1260. data/lib/puppet/type/zone.rb +0 -382
  1261. data/lib/puppet/type/zpool.rb +0 -91
  1262. data/lib/puppet/util/methodhelper.rb +0 -32
  1263. data/lib/puppet/util/nagios_maker.rb +0 -85
  1264. data/lib/puppet/util/network_device/cisco/device.rb +0 -285
  1265. data/lib/puppet/util/network_device/cisco/facts.rb +0 -72
  1266. data/lib/puppet/util/network_device/cisco/interface.rb +0 -94
  1267. data/lib/puppet/util/network_device/cisco.rb +0 -4
  1268. data/lib/puppet/util/network_device/ipcalc.rb +0 -68
  1269. data/lib/puppet/util/network_device/transport/ssh.rb +0 -126
  1270. data/lib/puppet/util/network_device/transport/telnet.rb +0 -47
  1271. data/lib/puppet/util/windows/taskscheduler.rb +0 -1276
  1272. data/lib/puppet/vendor/load_semantic.rb +0 -1
  1273. data/lib/puppet/vendor/load_semantic_puppet.rb +0 -1
  1274. data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -5
  1275. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph.rb +0 -60
  1276. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph_node.rb +0 -117
  1277. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +0 -58
  1278. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/source.rb +0 -25
  1279. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/unsatisfiable_graph.rb +0 -31
  1280. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency.rb +0 -181
  1281. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +0 -3
  1282. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +0 -203
  1283. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +0 -758
  1284. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +0 -9
  1285. data/lib/puppet/vendor/semantic_puppet/locales/config.yaml +0 -21
  1286. data/man/man8/puppet-ca.8 +0 -182
  1287. data/man/man8/puppet-cert.8 +0 -101
  1288. data/man/man8/puppet-certificate.8 +0 -224
  1289. data/man/man8/puppet-certificate_request.8 +0 -161
  1290. data/man/man8/puppet-certificate_revocation_list.8 +0 -139
  1291. data/man/man8/puppet-inspect.8 +0 -36
  1292. data/man/man8/puppet-master.8 +0 -85
  1293. data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +0 -19
  1294. data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +0 -18
  1295. data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +0 -15
  1296. data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +0 -4
  1297. data/spec/fixtures/integration/provider/cron/crontab/modify_entry +0 -13
  1298. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +0 -15
  1299. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +0 -6
  1300. data/spec/fixtures/integration/provider/cron/crontab/purged +0 -8
  1301. data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +0 -12
  1302. data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +0 -14
  1303. data/spec/fixtures/integration/provider/cron/crontab/unspecialized +0 -15
  1304. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +0 -31
  1305. data/spec/fixtures/integration/provider/sshkey/sample +0 -21
  1306. data/spec/fixtures/unit/provider/augeas/augeas/augeas/lenses/test.aug +0 -13
  1307. data/spec/fixtures/unit/provider/augeas/augeas/etc/fstab +0 -10
  1308. data/spec/fixtures/unit/provider/augeas/augeas/etc/hosts +0 -6
  1309. data/spec/fixtures/unit/provider/augeas/augeas/etc/test +0 -3
  1310. data/spec/fixtures/unit/provider/augeas/augeas/test.aug +0 -13
  1311. data/spec/fixtures/unit/provider/host/parsed/valid_hosts +0 -19
  1312. data/spec/fixtures/unit/provider/mount/mount-output.aix.txt +0 -7
  1313. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +0 -152
  1314. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +0 -11
  1315. data/spec/fixtures/unit/provider/mount/parsed/darwin.mount +0 -6
  1316. data/spec/fixtures/unit/provider/mount/parsed/freebsd.fstab +0 -8
  1317. data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +0 -3
  1318. data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +0 -17
  1319. data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +0 -11
  1320. data/spec/fixtures/unit/provider/mount/parsed/linux.mount +0 -5
  1321. data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +0 -9
  1322. data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +0 -8
  1323. data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +0 -4
  1324. data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +0 -4
  1325. data/spec/fixtures/unit/provider/mount/parsed/solaris.fstab +0 -11
  1326. data/spec/fixtures/unit/provider/mount/parsed/solaris.mount +0 -6
  1327. data/spec/fixtures/unit/provider/naginator/define_empty_param +0 -6
  1328. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys +0 -7
  1329. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys1 +0 -3
  1330. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys2 +0 -1
  1331. data/spec/fixtures/unit/provider/sshkey/parsed/sample +0 -21
  1332. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +0 -8
  1333. data/spec/fixtures/unit/provider/zfs/zfs/zfs-list.out +0 -2
  1334. data/spec/fixtures/unit/provider/zpool/zpool/zpool-list.out +0 -2
  1335. data/spec/integration/faces/ca_spec.rb +0 -354
  1336. data/spec/integration/indirector/node/ldap_spec.rb +0 -14
  1337. data/spec/integration/provider/cron/crontab_spec.rb +0 -241
  1338. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -10
  1339. data/spec/integration/provider/mount_spec.rb +0 -161
  1340. data/spec/integration/provider/ssh_authorized_key_spec.rb +0 -219
  1341. data/spec/integration/provider/sshkey_spec.rb +0 -159
  1342. data/spec/integration/provider/yumrepo_spec.rb +0 -130
  1343. data/spec/integration/ssl/autosign_spec.rb +0 -145
  1344. data/spec/integration/ssl/certificate_authority_spec.rb +0 -162
  1345. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -34
  1346. data/spec/integration/transaction_spec.rb +0 -522
  1347. data/spec/integration/type/nagios_spec.rb +0 -71
  1348. data/spec/integration/type/user_spec.rb +0 -64
  1349. data/spec/unit/application/cert_spec.rb +0 -240
  1350. data/spec/unit/application/certificate_spec.rb +0 -22
  1351. data/spec/unit/application/master_spec.rb +0 -404
  1352. data/spec/unit/configurer/downloader_factory_spec.rb +0 -96
  1353. data/spec/unit/face/ca_spec.rb +0 -10
  1354. data/spec/unit/face/certificate_request_spec.rb +0 -10
  1355. data/spec/unit/face/certificate_revocation_list_spec.rb +0 -10
  1356. data/spec/unit/face/certificate_spec.rb +0 -231
  1357. data/spec/unit/face/module/build_spec.rb +0 -69
  1358. data/spec/unit/graph/title_hash_prioritizer_spec.rb +0 -49
  1359. data/spec/unit/indirector/certificate/ca_spec.rb +0 -23
  1360. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -33
  1361. data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -57
  1362. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -33
  1363. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +0 -16
  1364. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -33
  1365. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +0 -17
  1366. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +0 -26
  1367. data/spec/unit/indirector/certificate_status/file_spec.rb +0 -191
  1368. data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -18
  1369. data/spec/unit/indirector/code_spec.rb +0 -31
  1370. data/spec/unit/indirector/key/ca_spec.rb +0 -23
  1371. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -33
  1372. data/spec/unit/indirector/ldap_spec.rb +0 -137
  1373. data/spec/unit/indirector/node/ldap_spec.rb +0 -462
  1374. data/spec/unit/indirector/node/write_only_yaml_spec.rb +0 -12
  1375. data/spec/unit/module_tool/applications/builder_spec.rb +0 -432
  1376. data/spec/unit/network/http/api/ca/v1_spec.rb +0 -26
  1377. data/spec/unit/network/http/rack/rest_spec.rb +0 -325
  1378. data/spec/unit/network/http/rack_spec.rb +0 -43
  1379. data/spec/unit/network/http/webrick/rest_spec.rb +0 -231
  1380. data/spec/unit/network/http/webrick_spec.rb +0 -279
  1381. data/spec/unit/network/server_spec.rb +0 -95
  1382. data/spec/unit/provider/aixobject_spec.rb +0 -101
  1383. data/spec/unit/provider/augeas/augeas_spec.rb +0 -1025
  1384. data/spec/unit/provider/cisco_spec.rb +0 -15
  1385. data/spec/unit/provider/cron/crontab_spec.rb +0 -207
  1386. data/spec/unit/provider/cron/parsed_spec.rb +0 -358
  1387. data/spec/unit/provider/host/parsed_spec.rb +0 -233
  1388. data/spec/unit/provider/interface/cisco_spec.rb +0 -57
  1389. data/spec/unit/provider/macauthorization_spec.rb +0 -155
  1390. data/spec/unit/provider/mcx/mcxcontent_spec.rb +0 -192
  1391. data/spec/unit/provider/mount/parsed_spec.rb +0 -317
  1392. data/spec/unit/provider/mount_spec.rb +0 -165
  1393. data/spec/unit/provider/naginator_spec.rb +0 -79
  1394. data/spec/unit/provider/network_device_spec.rb +0 -152
  1395. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +0 -2060
  1396. data/spec/unit/provider/selboolean_spec.rb +0 -36
  1397. data/spec/unit/provider/selmodule-example.pp +0 -0
  1398. data/spec/unit/provider/selmodule_spec.rb +0 -73
  1399. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -277
  1400. data/spec/unit/provider/sshkey/parsed_spec.rb +0 -95
  1401. data/spec/unit/provider/vlan/cisco_spec.rb +0 -55
  1402. data/spec/unit/provider/yumrepo/inifile_spec.rb +0 -326
  1403. data/spec/unit/provider/zfs/zfs_spec.rb +0 -106
  1404. data/spec/unit/provider/zone/solaris_spec.rb +0 -247
  1405. data/spec/unit/provider/zpool/zpool_spec.rb +0 -251
  1406. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +0 -30
  1407. data/spec/unit/ssl/certificate_authority/interface_spec.rb +0 -560
  1408. data/spec/unit/ssl/certificate_authority_spec.rb +0 -1184
  1409. data/spec/unit/ssl/certificate_revocation_list_spec.rb +0 -196
  1410. data/spec/unit/ssl/configuration_spec.rb +0 -141
  1411. data/spec/unit/ssl/inventory_spec.rb +0 -151
  1412. data/spec/unit/type/augeas_spec.rb +0 -119
  1413. data/spec/unit/type/computer_spec.rb +0 -80
  1414. data/spec/unit/type/cron_spec.rb +0 -543
  1415. data/spec/unit/type/host_spec.rb +0 -681
  1416. data/spec/unit/type/interface_spec.rb +0 -129
  1417. data/spec/unit/type/k5login_spec.rb +0 -115
  1418. data/spec/unit/type/macauthorization_spec.rb +0 -113
  1419. data/spec/unit/type/mailalias_spec.rb +0 -49
  1420. data/spec/unit/type/maillist_spec.rb +0 -41
  1421. data/spec/unit/type/mcx_spec.rb +0 -79
  1422. data/spec/unit/type/mount_spec.rb +0 -634
  1423. data/spec/unit/type/nagios_spec.rb +0 -293
  1424. data/spec/unit/type/scheduled_task_spec.rb +0 -103
  1425. data/spec/unit/type/selboolean_spec.rb +0 -44
  1426. data/spec/unit/type/selmodule_spec.rb +0 -17
  1427. data/spec/unit/type/ssh_authorized_key_spec.rb +0 -258
  1428. data/spec/unit/type/sshkey_spec.rb +0 -77
  1429. data/spec/unit/type/vlan_spec.rb +0 -44
  1430. data/spec/unit/type/yumrepo_spec.rb +0 -398
  1431. data/spec/unit/type/zfs_spec.rb +0 -46
  1432. data/spec/unit/type/zone_spec.rb +0 -172
  1433. data/spec/unit/type/zpool_spec.rb +0 -109
  1434. data/spec/unit/util/nagios_maker_spec.rb +0 -122
  1435. data/spec/unit/util/network_device/cisco/device_spec.rb +0 -482
  1436. data/spec/unit/util/network_device/cisco/facts_spec.rb +0 -64
  1437. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -88
  1438. data/spec/unit/util/network_device/ipcalc_spec.rb +0 -62
  1439. data/spec/unit/util/network_device/transport/ssh_spec.rb +0 -218
  1440. data/spec/unit/util/network_device/transport/telnet_spec.rb +0 -86
@@ -1,150 +0,0 @@
1
- module Puppet
2
- Type.newtype(:zfs) do
3
- @doc = "Manage zfs. Create destroy and set properties on zfs instances.
4
-
5
- **Autorequires:** If Puppet is managing the zpool at the root of this zfs
6
- instance, the zfs resource will autorequire it. If Puppet is managing any
7
- parent zfs instances, the zfs resource will autorequire them."
8
-
9
- ensurable
10
-
11
- newparam(:name) do
12
- desc "The full name for this filesystem (including the zpool)."
13
- end
14
-
15
- newproperty(:aclinherit) do
16
- desc "The aclinherit property. Valid values are `discard`, `noallow`, `restricted`, `passthrough`, `passthrough-x`."
17
- end
18
-
19
- newproperty(:aclmode) do
20
- desc "The aclmode property. Valid values are `discard`, `groupmask`, `passthrough`."
21
- end
22
-
23
- newproperty(:atime) do
24
- desc "The atime property. Valid values are `on`, `off`."
25
- end
26
-
27
- newproperty(:canmount) do
28
- desc "The canmount property. Valid values are `on`, `off`, `noauto`."
29
- end
30
-
31
- newproperty(:checksum) do
32
- desc "The checksum property. Valid values are `on`, `off`, `fletcher2`, `fletcher4`, `sha256`."
33
- end
34
-
35
- newproperty(:compression) do
36
- desc "The compression property. Valid values are `on`, `off`, `lzjb`, `gzip`, `gzip-[1-9]`, `zle`."
37
- end
38
-
39
- newproperty(:copies) do
40
- desc "The copies property. Valid values are `1`, `2`, `3`."
41
- end
42
-
43
- newproperty(:dedup) do
44
- desc "The dedup property. Valid values are `on`, `off`."
45
- end
46
-
47
- newproperty(:devices) do
48
- desc "The devices property. Valid values are `on`, `off`."
49
- end
50
-
51
- newproperty(:exec) do
52
- desc "The exec property. Valid values are `on`, `off`."
53
- end
54
-
55
- newproperty(:logbias) do
56
- desc "The logbias property. Valid values are `latency`, `throughput`."
57
- end
58
-
59
- newproperty(:mountpoint) do
60
- desc "The mountpoint property. Valid values are `<path>`, `legacy`, `none`."
61
- end
62
-
63
- newproperty(:nbmand) do
64
- desc "The nbmand property. Valid values are `on`, `off`."
65
- end
66
-
67
- newproperty(:primarycache) do
68
- desc "The primarycache property. Valid values are `all`, `none`, `metadata`."
69
- end
70
-
71
- newproperty(:quota) do
72
- desc "The quota property. Valid values are `<size>`, `none`."
73
- end
74
-
75
- newproperty(:readonly) do
76
- desc "The readonly property. Valid values are `on`, `off`."
77
- end
78
-
79
- newproperty(:recordsize) do
80
- desc "The recordsize property. Valid values are powers of two between 512 and 128k."
81
- end
82
-
83
- newproperty(:refquota) do
84
- desc "The refquota property. Valid values are `<size>`, `none`."
85
- end
86
-
87
- newproperty(:refreservation) do
88
- desc "The refreservation property. Valid values are `<size>`, `none`."
89
- end
90
-
91
- newproperty(:reservation) do
92
- desc "The reservation property. Valid values are `<size>`, `none`."
93
- end
94
-
95
- newproperty(:secondarycache) do
96
- desc "The secondarycache property. Valid values are `all`, `none`, `metadata`."
97
- end
98
-
99
- newproperty(:setuid) do
100
- desc "The setuid property. Valid values are `on`, `off`."
101
- end
102
-
103
- newproperty(:shareiscsi) do
104
- desc "The shareiscsi property. Valid values are `on`, `off`, `type=<type>`."
105
- end
106
-
107
- newproperty(:sharenfs) do
108
- desc "The sharenfs property. Valid values are `on`, `off`, share(1M) options"
109
- end
110
-
111
- newproperty(:sharesmb) do
112
- desc "The sharesmb property. Valid values are `on`, `off`, sharemgr(1M) options"
113
- end
114
-
115
- newproperty(:snapdir) do
116
- desc "The snapdir property. Valid values are `hidden`, `visible`."
117
- end
118
-
119
- newproperty(:version) do
120
- desc "The version property. Valid values are `1`, `2`, `3`, `4`, `current`."
121
- end
122
-
123
- newproperty(:volsize) do
124
- desc "The volsize property. Valid values are `<size>`"
125
- end
126
-
127
- newproperty(:vscan) do
128
- desc "The vscan property. Valid values are `on`, `off`."
129
- end
130
-
131
- newproperty(:xattr) do
132
- desc "The xattr property. Valid values are `on`, `off`."
133
- end
134
-
135
- newproperty(:zoned) do
136
- desc "The zoned property. Valid values are `on`, `off`."
137
- end
138
-
139
- autorequire(:zpool) do
140
- #strip the zpool off the zfs name and autorequire it
141
- [@parameters[:name].value.split('/')[0]]
142
- end
143
-
144
- autorequire(:zfs) do
145
- #slice and dice, we want all the zfs before this one
146
- names = @parameters[:name].value.split('/')
147
- names.slice(1..-2).inject([]) { |a,v| a << "#{a.last}/#{v}" }.collect { |fs| names[0] + fs }
148
- end
149
- end
150
- end
@@ -1,382 +0,0 @@
1
- require 'puppet/property/list'
2
- Puppet::Type.newtype(:zone) do
3
- @doc = "Manages Solaris zones.
4
-
5
- **Autorequires:** If Puppet is managing the directory specified as the root of
6
- the zone's filesystem (with the `path` attribute), the zone resource will
7
- autorequire that directory."
8
-
9
- module Puppet::Zone
10
- class StateMachine
11
- # A silly little state machine.
12
- def initialize
13
- @state = {}
14
- @sequence = []
15
- @state_aliases = {}
16
- @default = nil
17
- end
18
-
19
- # The order of calling insert_state is important
20
- def insert_state(name, transitions)
21
- @sequence << name
22
- @state[name] = transitions
23
- end
24
-
25
- def alias_state(state, salias)
26
- @state_aliases[state] = salias
27
- end
28
-
29
- def name(n)
30
- @state_aliases[n.to_sym] || n.to_sym
31
- end
32
-
33
- def index(state)
34
- @sequence.index(name(state))
35
- end
36
-
37
- # return all states between fs and ss excluding fs
38
- def sequence(fs, ss)
39
- fi = index(fs)
40
- si= index(ss)
41
- (if fi > si
42
- then @sequence[si .. fi].map{|i| @state[i]}.reverse
43
- else @sequence[fi .. si].map{|i| @state[i]}
44
- end)[1..-1]
45
- end
46
-
47
- def cmp?(a,b)
48
- index(a) < index(b)
49
- end
50
- end
51
- end
52
-
53
- ensurable do
54
- desc "The running state of the zone. The valid states directly reflect
55
- the states that `zoneadm` provides. The states are linear,
56
- in that a zone must be `configured`, then `installed`, and
57
- only then can be `running`. Note also that `halt` is currently
58
- used to stop zones."
59
-
60
- def self.fsm
61
- return @fsm if @fsm
62
- @fsm = Puppet::Zone::StateMachine.new
63
- end
64
-
65
- def self.alias_state(values)
66
- values.each do |k,v|
67
- fsm.alias_state(k,v)
68
- end
69
- end
70
-
71
- def self.seqvalue(name, hash)
72
- fsm.insert_state(name, hash)
73
- self.newvalue name
74
- end
75
-
76
- # This is seq value because the order of declaration is important.
77
- # i.e we go linearly from :absent -> :configured -> :installed -> :running
78
- seqvalue :absent, :down => :destroy
79
- seqvalue :configured, :up => :configure, :down => :uninstall
80
- seqvalue :installed, :up => :install, :down => :stop
81
- seqvalue :running, :up => :start
82
-
83
- alias_state :incomplete => :installed, :ready => :installed, :shutting_down => :running
84
-
85
- defaultto :running
86
-
87
- def self.state_sequence(first, second)
88
- fsm.sequence(first, second)
89
- end
90
-
91
- # Why override it? because property/ensure.rb has a default retrieve method
92
- # that knows only about :present and :absent. That method just calls
93
- # provider.exists? and returns :present if a result was returned.
94
- def retrieve
95
- provider.properties[:ensure]
96
- end
97
-
98
- def provider_sync_send(method)
99
- warned = false
100
- while provider.processing?
101
- next if warned
102
- info _("Waiting for zone to finish processing")
103
- warned = true
104
- sleep 1
105
- end
106
- provider.send(method)
107
- provider.flush()
108
- end
109
-
110
- def sync
111
- method = nil
112
- direction = up? ? :up : :down
113
-
114
- # We need to get the state we're currently in and just call
115
- # everything between it and us.
116
- self.class.state_sequence(self.retrieve, self.should).each do |state|
117
- method = state[direction]
118
- raise Puppet::DevError, "Cannot move #{direction} from #{st[:name]}" unless method
119
- provider_sync_send(method)
120
- end
121
-
122
- ("zone_#{self.should}").intern
123
- end
124
-
125
- # Are we moving up the property tree?
126
- def up?
127
- self.class.fsm.cmp?(self.retrieve, self.should)
128
- end
129
-
130
- end
131
-
132
- newparam(:name) do
133
- desc "The name of the zone."
134
-
135
- isnamevar
136
- end
137
-
138
- newparam(:id) do
139
- desc "The numerical ID of the zone. This number is autogenerated
140
- and cannot be changed."
141
- end
142
-
143
- newparam(:clone) do
144
- desc "Instead of installing the zone, clone it from another zone.
145
- If the zone root resides on a zfs file system, a snapshot will be
146
- used to create the clone; if it resides on a ufs filesystem, a copy of the
147
- zone will be used. The zone from which you clone must not be running."
148
- end
149
-
150
- newproperty(:ip, :parent => Puppet::Property::List) do
151
- require 'ipaddr'
152
-
153
- desc "The IP address of the zone. IP addresses **must** be specified
154
- with an interface, and may optionally be specified with a default router
155
- (sometimes called a defrouter). The interface, IP address, and default
156
- router should be separated by colons to form a complete IP address string.
157
- For example: `bge0:192.168.178.200` would be a valid IP address string
158
- without a default router, and `bge0:192.168.178.200:192.168.178.1` adds a
159
- default router to it.
160
-
161
- For zones with multiple interfaces, the value of this attribute should be
162
- an array of IP address strings (each of which must include an interface
163
- and may include a default router)."
164
-
165
- # The default action of list should is to lst.join(' '). By specifying
166
- # @should, we ensure the should remains an array. If we override should, we
167
- # should also override insync?() -- property/list.rb
168
- def should
169
- @should
170
- end
171
-
172
- # overridden so that we match with self.should
173
- def insync?(is)
174
- is = [] if !is || is == :absent
175
- is.sort == self.should.sort
176
- end
177
- end
178
-
179
- newproperty(:iptype) do
180
- desc "The IP stack type of the zone."
181
- defaultto :shared
182
- newvalue :shared
183
- newvalue :exclusive
184
- end
185
-
186
- newproperty(:autoboot, :boolean => true) do
187
- desc "Whether the zone should automatically boot."
188
- defaultto true
189
- newvalues(:true, :false)
190
- end
191
-
192
- newproperty(:path) do
193
- desc "The root of the zone's filesystem. Must be a fully qualified
194
- file name. If you include `%s` in the path, then it will be
195
- replaced with the zone's name. Currently, you cannot use
196
- Puppet to move a zone. Consequently this is a readonly property."
197
-
198
- validate do |value|
199
- raise ArgumentError, _("The zone base must be fully qualified") unless value =~ /^\//
200
- end
201
-
202
- munge do |value|
203
- if value =~ /%s/
204
- value % @resource[:name]
205
- else
206
- value
207
- end
208
- end
209
- end
210
-
211
- newproperty(:pool) do
212
- desc "The resource pool for this zone."
213
- end
214
-
215
- newproperty(:shares) do
216
- desc "Number of FSS CPU shares allocated to the zone."
217
- end
218
-
219
- newproperty(:dataset, :parent => Puppet::Property::List ) do
220
- desc "The list of datasets delegated to the non-global zone from the
221
- global zone. All datasets must be zfs filesystem names which are
222
- different from the mountpoint."
223
-
224
- def should
225
- @should
226
- end
227
-
228
- # overridden so that we match with self.should
229
- def insync?(is)
230
- is = [] if !is || is == :absent
231
- is.sort == self.should.sort
232
- end
233
-
234
- validate do |value|
235
- unless value !~ /^\//
236
- raise ArgumentError, _("Datasets must be the name of a zfs filesystem")
237
- end
238
- end
239
- end
240
-
241
- newproperty(:inherit, :parent => Puppet::Property::List) do
242
- desc "The list of directories that the zone inherits from the global
243
- zone. All directories must be fully qualified."
244
-
245
- def should
246
- @should
247
- end
248
-
249
- # overridden so that we match with self.should
250
- def insync?(is)
251
- is = [] if !is || is == :absent
252
- is.sort == self.should.sort
253
- end
254
-
255
- validate do |value|
256
- unless value =~ /^\//
257
- raise ArgumentError, _("Inherited filesystems must be fully qualified")
258
- end
259
- end
260
- end
261
-
262
- # Specify the sysidcfg file. This is pretty hackish, because it's
263
- # only used to boot the zone the very first time.
264
- newparam(:sysidcfg) do
265
- desc %{The text to go into the `sysidcfg` file when the zone is first
266
- booted. The best way is to use a template:
267
-
268
- # $confdir/modules/site/templates/sysidcfg.erb
269
- system_locale=en_US
270
- timezone=GMT
271
- terminal=xterms
272
- security_policy=NONE
273
- root_password=<%= password %>
274
- timeserver=localhost
275
- name_service=DNS {domain_name=<%= domain %> name_server=<%= nameserver %>}
276
- network_interface=primary {hostname=<%= realhostname %>
277
- ip_address=<%= ip %>
278
- netmask=<%= netmask %>
279
- protocol_ipv6=no
280
- default_route=<%= defaultroute %>}
281
- nfs4_domain=dynamic
282
-
283
- And then call that:
284
-
285
- zone { 'myzone':
286
- ip => 'bge0:192.168.0.23',
287
- sysidcfg => template('site/sysidcfg.erb'),
288
- path => '/opt/zones/myzone',
289
- realhostname => 'fully.qualified.domain.name',
290
- }
291
-
292
- The `sysidcfg` only matters on the first booting of the zone,
293
- so Puppet only checks for it at that time.}
294
- end
295
-
296
- newparam(:create_args) do
297
- desc "Arguments to the `zonecfg` create command. This can be used to create branded zones."
298
- end
299
-
300
- newparam(:install_args) do
301
- desc "Arguments to the `zoneadm` install command. This can be used to create branded zones."
302
- end
303
-
304
- newparam(:realhostname) do
305
- desc "The actual hostname of the zone."
306
- end
307
-
308
- # If Puppet is also managing the base dir or its parent dir, list them
309
- # both as prerequisites.
310
- autorequire(:file) do
311
- if @parameters.include? :path
312
- [@parameters[:path].value, ::File.dirname(@parameters[:path].value)]
313
- else
314
- nil
315
- end
316
- end
317
-
318
- # If Puppet is also managing the zfs filesystem which is the zone dataset
319
- # then list it as a prerequisite. Zpool's get autorequired by the zfs
320
- # type. We just need to autorequire the dataset zfs itself as the zfs type
321
- # will autorequire all of the zfs parents and zpool.
322
- autorequire(:zfs) do
323
- # Check if we have datasets in our zone configuration and autorequire each dataset
324
- self[:dataset] if @parameters.include? :dataset
325
- end
326
-
327
- def validate_ip(ip, name)
328
- IPAddr.new(ip) if ip
329
- rescue ArgumentError
330
- self.fail Puppet::Error, _("'%{ip}' is an invalid %{name}") % { ip: ip, name: name }, $!
331
- end
332
-
333
- def validate_exclusive(interface, address, router)
334
- return if !interface.nil? and address.nil?
335
- self.fail _("only interface may be specified when using exclusive IP stack: %{interface}:%{address}") % { interface: interface, address: address }
336
- end
337
- def validate_shared(interface, address, router)
338
- self.fail _("ip must contain interface name and ip address separated by a \":\"") if interface.nil? or address.nil?
339
- [address, router].each do |ip|
340
- validate_ip(address, "IP address") unless ip.nil?
341
- end
342
- end
343
-
344
- validate do
345
- return unless self[:ip]
346
- # self[:ip] reflects the type passed from property:ip.should. If we
347
- # override it and pass @should, then we get an array here back.
348
- self[:ip].each do |ip|
349
- interface, address, router = ip.split(':')
350
- if self[:iptype] == :shared
351
- validate_shared(interface, address, router)
352
- else
353
- validate_exclusive(interface, address, router)
354
- end
355
- end
356
- end
357
-
358
- def retrieve
359
- provider.flush
360
- hash = provider.properties
361
- return setstatus(hash) unless hash.nil? or hash[:ensure] == :absent
362
- # Return all properties as absent.
363
- return Hash[properties.map{|p| [p, :absent]} ]
364
- end
365
-
366
- # Take the results of a listing and set everything appropriately.
367
- def setstatus(hash)
368
- prophash = {}
369
- hash.each do |param, value|
370
- next if param == :name
371
- case self.class.attrtype(param)
372
- when :property
373
- # Only try to provide values for the properties we're managing
374
- prop = self.property(param)
375
- prophash[prop] = value if prop
376
- else
377
- self[param] = value
378
- end
379
- end
380
- prophash
381
- end
382
- end
@@ -1,91 +0,0 @@
1
- module Puppet
2
- class Property
3
-
4
- class VDev < Property
5
-
6
- def flatten_and_sort(array)
7
- array = [array] unless array.is_a? Array
8
- array.collect { |a| a.split(' ') }.flatten.sort
9
- end
10
-
11
- def insync?(is)
12
- return @should == [:absent] if is == :absent
13
-
14
- flatten_and_sort(is) == flatten_and_sort(@should)
15
- end
16
- end
17
-
18
- class MultiVDev < VDev
19
- def insync?(is)
20
- return @should == [:absent] if is == :absent
21
-
22
- return false unless is.length == @should.length
23
-
24
- is.each_with_index { |list, i| return false unless flatten_and_sort(list) == flatten_and_sort(@should[i]) }
25
-
26
- #if we made it this far we are in sync
27
- true
28
- end
29
- end
30
- end
31
-
32
- Type.newtype(:zpool) do
33
- @doc = "Manage zpools. Create and delete zpools. The provider WILL NOT SYNC, only report differences.
34
-
35
- Supports vdevs with mirrors, raidz, logs and spares."
36
-
37
- ensurable
38
-
39
- newproperty(:disk, :array_matching => :all, :parent => Puppet::Property::VDev) do
40
- desc "The disk(s) for this pool. Can be an array or a space separated string."
41
- end
42
-
43
- newproperty(:mirror, :array_matching => :all, :parent => Puppet::Property::MultiVDev) do
44
- desc "List of all the devices to mirror for this pool. Each mirror should be a
45
- space separated string:
46
-
47
- mirror => [\"disk1 disk2\", \"disk3 disk4\"],
48
-
49
- "
50
-
51
- validate do |value|
52
- raise ArgumentError, _("mirror names must be provided as string separated, not a comma-separated list") if value.include?(",")
53
- end
54
- end
55
-
56
- newproperty(:raidz, :array_matching => :all, :parent => Puppet::Property::MultiVDev) do
57
- desc "List of all the devices to raid for this pool. Should be an array of
58
- space separated strings:
59
-
60
- raidz => [\"disk1 disk2\", \"disk3 disk4\"],
61
-
62
- "
63
-
64
- validate do |value|
65
- raise ArgumentError, _("raid names must be provided as string separated, not a comma-separated list") if value.include?(",")
66
- end
67
- end
68
-
69
- newproperty(:spare, :array_matching => :all, :parent => Puppet::Property::VDev) do
70
- desc "Spare disk(s) for this pool."
71
- end
72
-
73
- newproperty(:log, :array_matching => :all, :parent => Puppet::Property::VDev) do
74
- desc "Log disks for this pool. This type does not currently support mirroring of log disks."
75
- end
76
-
77
- newparam(:pool) do
78
- desc "The name for this pool."
79
- isnamevar
80
- end
81
-
82
- newparam(:raid_parity) do
83
- desc "Determines parity when using the `raidz` parameter."
84
- end
85
-
86
- validate do
87
- has_should = [:disk, :mirror, :raidz].select { |prop| self.should(prop) }
88
- self.fail _("You cannot specify %{multiple_props} on this type (only one)") % { multiple_props: has_should.join(" and ") } if has_should.length > 1
89
- end
90
- end
91
- end
@@ -1,32 +0,0 @@
1
- # Where we store helper methods related to, um, methods.
2
- module Puppet::Util::MethodHelper
3
- def requiredopts(*names)
4
- names.each do |name|
5
- devfail("#{name} is a required option for #{self.class}") if self.send(name).nil?
6
- end
7
- end
8
-
9
- # Iterate over a hash, treating each member as an attribute.
10
- def set_options(options)
11
- options.each do |param,value|
12
- method = param.to_s + "="
13
- if respond_to? method
14
- self.send(method, value)
15
- else
16
- raise ArgumentError, "Invalid parameter #{param} to object class #{self.class}"
17
- end
18
- end
19
- end
20
-
21
- # Take a hash and convert all of the keys to symbols if possible.
22
- def symbolize_options(options)
23
- options.inject({}) do |hash, opts|
24
- if opts[0].respond_to? :intern
25
- hash[opts[0].intern] = opts[1]
26
- else
27
- hash[opts[0]] = opts[1]
28
- end
29
- hash
30
- end
31
- end
32
- end