puppet 3.8.7 → 4.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 (1621) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTING.md +20 -0
  3. data/Gemfile +13 -25
  4. data/LICENSE +1 -1
  5. data/Rakefile +9 -0
  6. data/bin/puppet +7 -6
  7. data/conf/auth.conf +30 -26
  8. data/conf/environment.conf +18 -0
  9. data/conf/fileserver.conf +2 -2
  10. data/conf/puppet.conf +6 -0
  11. data/ext/README.environment +1 -1
  12. data/ext/build_defaults.yaml +17 -8
  13. data/ext/debian/control +6 -6
  14. data/ext/debian/puppet-common.manpages +0 -5
  15. data/ext/debian/puppet-common.postinst +3 -3
  16. data/ext/debian/puppet.init +23 -12
  17. data/ext/debian/puppet.logrotate +1 -2
  18. data/ext/debian/puppetmaster-common.postinst +6 -0
  19. data/ext/debian/puppetmaster.init +5 -5
  20. data/ext/debian/rules +4 -1
  21. data/ext/debian/vim-puppet.dirs +2 -0
  22. data/ext/debian/vim-puppet.yaml +2 -0
  23. data/ext/emacs/puppet-mode.el +0 -1
  24. data/ext/gentoo/conf.d/puppet +1 -1
  25. data/ext/gentoo/conf.d/puppetmaster +1 -1
  26. data/ext/nagios/check_puppet.rb +1 -1
  27. data/ext/project_data.yaml +6 -7
  28. data/ext/puppet-nm-dispatcher +13 -0
  29. data/ext/puppet-test +0 -66
  30. data/ext/puppetlisten/puppetlisten.rb +7 -5
  31. data/ext/rack/config.ru +13 -5
  32. data/ext/redhat/client.init +3 -3
  33. data/ext/redhat/client.sysconfig +1 -1
  34. data/ext/redhat/logrotate +1 -2
  35. data/ext/redhat/puppet.spec.erb +14 -10
  36. data/ext/redhat/server.init +1 -1
  37. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  38. data/ext/solaris/smf/svc-puppetd +1 -1
  39. data/ext/solaris/smf/svc-puppetmasterd +1 -1
  40. data/ext/suse/client.init +1 -1
  41. data/ext/suse/server.init +1 -1
  42. data/ext/systemd/puppet.service +1 -2
  43. data/ext/vim/syntax/puppet.vim +1 -1
  44. data/ext/windows/service/daemon.rb +19 -2
  45. data/install.rb +63 -7
  46. data/lib/hiera/puppet_function.rb +7 -18
  47. data/lib/hiera/scope.rb +4 -1
  48. data/lib/puppet/agent.rb +2 -6
  49. data/lib/puppet/application/agent.rb +7 -56
  50. data/lib/puppet/application/apply.rb +1 -6
  51. data/lib/puppet/application/ca.rb +5 -0
  52. data/lib/puppet/application/cert.rb +7 -3
  53. data/lib/puppet/application/certificate.rb +2 -0
  54. data/lib/puppet/application/device.rb +5 -14
  55. data/lib/puppet/application/doc.rb +16 -63
  56. data/lib/puppet/application/epp.rb +5 -0
  57. data/lib/puppet/application/face_base.rb +24 -5
  58. data/lib/puppet/application/master.rb +2 -5
  59. data/lib/puppet/application/resource.rb +17 -17
  60. data/lib/puppet/application.rb +14 -65
  61. data/lib/puppet/application_support.rb +57 -0
  62. data/lib/puppet/configurer/downloader.rb +1 -0
  63. data/lib/puppet/configurer/fact_handler.rb +1 -1
  64. data/lib/puppet/configurer.rb +3 -7
  65. data/lib/puppet/daemon.rb +6 -15
  66. data/lib/puppet/data_providers/data_adapter.rb +91 -0
  67. data/lib/puppet/data_providers/data_function_support.rb +45 -0
  68. data/lib/puppet/data_providers/function_env_data_provider.rb +28 -0
  69. data/lib/puppet/data_providers/function_module_data_provider.rb +39 -0
  70. data/lib/puppet/data_providers.rb +31 -0
  71. data/lib/puppet/defaults.rb +140 -508
  72. data/lib/puppet/environments.rb +10 -156
  73. data/lib/puppet/error.rb +5 -27
  74. data/lib/puppet/external/nagios/base.rb +2 -2
  75. data/lib/puppet/external/pson/common.rb +2 -17
  76. data/lib/puppet/external/pson/pure/generator.rb +1 -0
  77. data/lib/puppet/external/pson/pure/parser.rb +0 -11
  78. data/lib/puppet/face/catalog.rb +4 -4
  79. data/lib/puppet/face/certificate.rb +2 -3
  80. data/lib/puppet/face/certificate_request.rb +4 -3
  81. data/lib/puppet/face/certificate_revocation_list.rb +5 -9
  82. data/lib/puppet/face/config.rb +2 -2
  83. data/lib/puppet/face/epp.rb +479 -0
  84. data/lib/puppet/face/facts.rb +6 -49
  85. data/lib/puppet/face/file/download.rb +1 -2
  86. data/lib/puppet/face/file.rb +2 -2
  87. data/lib/puppet/face/help.rb +2 -3
  88. data/lib/puppet/face/module/build.rb +5 -5
  89. data/lib/puppet/face/module/changes.rb +1 -1
  90. data/lib/puppet/face/module/generate.rb +6 -6
  91. data/lib/puppet/face/module/install.rb +16 -16
  92. data/lib/puppet/face/module/list.rb +9 -9
  93. data/lib/puppet/face/module/uninstall.rb +5 -5
  94. data/lib/puppet/face/module/upgrade.rb +3 -3
  95. data/lib/puppet/face/node/clean.rb +5 -68
  96. data/lib/puppet/face/node.rb +3 -4
  97. data/lib/puppet/face/parser.rb +6 -8
  98. data/lib/puppet/face/report.rb +4 -4
  99. data/lib/puppet/face/resource.rb +1 -1
  100. data/lib/puppet/face/resource_type.rb +7 -4
  101. data/lib/puppet/face/status.rb +6 -12
  102. data/lib/puppet/feature/base.rb +0 -7
  103. data/lib/puppet/file_bucket/dipper.rb +1 -2
  104. data/lib/puppet/file_bucket/file.rb +12 -25
  105. data/lib/puppet/file_serving/base.rb +1 -11
  106. data/lib/puppet/file_serving/content.rb +5 -7
  107. data/lib/puppet/file_serving/metadata.rb +4 -61
  108. data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -1
  109. data/lib/puppet/file_serving/mount/plugins.rb +1 -1
  110. data/lib/puppet/file_serving/terminus_helper.rb +16 -5
  111. data/lib/puppet/file_system/file_impl.rb +0 -4
  112. data/lib/puppet/file_system/memory_file.rb +0 -5
  113. data/lib/puppet/file_system/memory_impl.rb +0 -4
  114. data/lib/puppet/file_system/{file19.rb → posix.rb} +1 -1
  115. data/lib/puppet/file_system/{file19windows.rb → windows.rb} +2 -10
  116. data/lib/puppet/file_system.rb +6 -22
  117. data/lib/puppet/forge/repository.rb +12 -8
  118. data/lib/puppet/functions/assert_type.rb +7 -7
  119. data/lib/puppet/functions/each.rb +1 -3
  120. data/lib/puppet/functions/epp.rb +3 -3
  121. data/lib/puppet/functions/filter.rb +3 -5
  122. data/lib/puppet/functions/hiera.rb +2 -23
  123. data/lib/puppet/functions/hiera_array.rb +3 -25
  124. data/lib/puppet/functions/hiera_hash.rb +2 -26
  125. data/lib/puppet/functions/hiera_include.rb +4 -37
  126. data/lib/puppet/functions/inline_epp.rb +1 -2
  127. data/lib/puppet/functions/lookup.rb +234 -0
  128. data/lib/puppet/functions/map.rb +1 -3
  129. data/lib/puppet/functions/match.rb +5 -5
  130. data/lib/puppet/functions/reduce.rb +1 -3
  131. data/lib/puppet/functions/regsubst.rb +79 -0
  132. data/lib/puppet/functions/scanf.rb +4 -3
  133. data/lib/puppet/functions/slice.rb +1 -3
  134. data/lib/puppet/functions/split.rb +47 -0
  135. data/lib/puppet/functions/with.rb +1 -1
  136. data/lib/puppet/functions.rb +17 -51
  137. data/lib/puppet/graph/relationship_graph.rb +41 -13
  138. data/lib/puppet/graph/simple_graph.rb +6 -10
  139. data/lib/puppet/indirector/catalog/compiler.rb +0 -2
  140. data/lib/puppet/indirector/catalog/static_compiler.rb +4 -5
  141. data/lib/puppet/indirector/direct_file_server.rb +1 -3
  142. data/lib/puppet/indirector/face.rb +11 -2
  143. data/lib/puppet/indirector/facts/facter.rb +5 -1
  144. data/lib/puppet/indirector/facts/network_device.rb +5 -2
  145. data/lib/puppet/indirector/facts/store_configs.rb +3 -0
  146. data/lib/puppet/indirector/facts/yaml.rb +4 -0
  147. data/lib/puppet/indirector/file_metadata/file.rb +0 -15
  148. data/lib/puppet/indirector/file_server.rb +2 -16
  149. data/lib/puppet/indirector/hiera.rb +39 -1
  150. data/lib/puppet/indirector/indirection.rb +2 -9
  151. data/lib/puppet/indirector/node/ldap.rb +1 -1
  152. data/lib/puppet/indirector/request.rb +21 -81
  153. data/lib/puppet/indirector/resource/ral.rb +1 -2
  154. data/lib/puppet/indirector/resource/store_configs.rb +1 -2
  155. data/lib/puppet/indirector/resource_type/parser.rb +1 -1
  156. data/lib/puppet/indirector/rest.rb +21 -33
  157. data/lib/puppet/interface/action_builder.rb +1 -1
  158. data/lib/puppet/interface/action_manager.rb +9 -13
  159. data/lib/puppet/interface/face_collection.rb +2 -2
  160. data/lib/puppet/interface/option_builder.rb +1 -3
  161. data/lib/puppet/interface.rb +0 -7
  162. data/lib/puppet/metatype/manager.rb +1 -7
  163. data/lib/puppet/module.rb +42 -35
  164. data/lib/puppet/module_tool/applications/application.rb +3 -10
  165. data/lib/puppet/module_tool/applications/installer.rb +13 -15
  166. data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
  167. data/lib/puppet/module_tool/applications/upgrader.rb +9 -11
  168. data/lib/puppet/module_tool/contents_description.rb +17 -13
  169. data/lib/puppet/module_tool/installed_modules.rb +4 -6
  170. data/lib/puppet/module_tool/metadata.rb +3 -14
  171. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +3 -3
  172. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +0 -1
  173. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +1 -1
  174. data/lib/puppet/module_tool/tar/gnu.rb +1 -1
  175. data/lib/puppet/module_tool/tar/mini.rb +2 -2
  176. data/lib/puppet/module_tool.rb +5 -7
  177. data/lib/puppet/network/auth_config_parser.rb +2 -2
  178. data/lib/puppet/network/authconfig.rb +32 -16
  179. data/lib/puppet/network/format_handler.rb +7 -7
  180. data/lib/puppet/network/format_support.rb +4 -0
  181. data/lib/puppet/network/formats.rb +6 -62
  182. data/lib/puppet/network/http/api/ca/v1.rb +11 -0
  183. data/lib/puppet/network/http/api/ca.rb +2 -0
  184. data/lib/puppet/network/http/api/{v1.rb → indirected_routes.rb} +57 -29
  185. data/lib/puppet/network/http/api/indirection_type.rb +32 -0
  186. data/lib/puppet/network/http/api/master/v3/authorization.rb +18 -0
  187. data/lib/puppet/network/http/api/{v2 → master/v3}/environments.rb +2 -2
  188. data/lib/puppet/network/http/api/master/v3.rb +22 -0
  189. data/lib/puppet/network/http/api/master.rb +2 -0
  190. data/lib/puppet/network/http/api.rb +42 -0
  191. data/lib/puppet/network/http/compression.rb +3 -5
  192. data/lib/puppet/network/http/connection.rb +1 -8
  193. data/lib/puppet/network/http/factory.rb +2 -3
  194. data/lib/puppet/network/http/handler.rb +3 -11
  195. data/lib/puppet/network/http/rack/rest.rb +4 -4
  196. data/lib/puppet/network/http/request.rb +4 -4
  197. data/lib/puppet/network/http/webrick/rest.rb +15 -8
  198. data/lib/puppet/network/http/webrick.rb +1 -6
  199. data/lib/puppet/network/http.rb +12 -2
  200. data/lib/puppet/network/resolver.rb +2 -2
  201. data/lib/puppet/network/rights.rb +2 -2
  202. data/lib/puppet/node/environment.rb +92 -184
  203. data/lib/puppet/node/facts.rb +22 -44
  204. data/lib/puppet/node.rb +2 -29
  205. data/lib/puppet/parameter/value.rb +1 -3
  206. data/lib/puppet/parameter/value_collection.rb +12 -11
  207. data/lib/puppet/parameter.rb +3 -16
  208. data/lib/puppet/parser/ast/block_expression.rb +11 -36
  209. data/lib/puppet/parser/ast/branch.rb +15 -18
  210. data/lib/puppet/parser/ast/hostclass.rb +1 -3
  211. data/lib/puppet/parser/ast/leaf.rb +55 -212
  212. data/lib/puppet/parser/ast/node.rb +3 -11
  213. data/lib/puppet/parser/ast/pops_bridge.rb +2 -7
  214. data/lib/puppet/parser/ast/resource.rb +14 -20
  215. data/lib/puppet/parser/ast/resource_instance.rb +4 -7
  216. data/lib/puppet/parser/ast/resourceparam.rb +21 -22
  217. data/lib/puppet/parser/ast.rb +9 -78
  218. data/lib/puppet/parser/compiler.rb +41 -70
  219. data/lib/puppet/parser/e4_parser_adapter.rb +2 -23
  220. data/lib/puppet/parser/files.rb +22 -67
  221. data/lib/puppet/parser/functions/assert_type.rb +1 -2
  222. data/lib/puppet/parser/functions/contain.rb +5 -3
  223. data/lib/puppet/parser/functions/create_resources.rb +9 -1
  224. data/lib/puppet/parser/functions/defined.rb +33 -61
  225. data/lib/puppet/parser/functions/each.rb +1 -3
  226. data/lib/puppet/parser/functions/epp.rb +1 -2
  227. data/lib/puppet/parser/functions/file.rb +1 -3
  228. data/lib/puppet/parser/functions/filter.rb +1 -3
  229. data/lib/puppet/parser/functions/hiera.rb +4 -6
  230. data/lib/puppet/parser/functions/hiera_array.rb +4 -6
  231. data/lib/puppet/parser/functions/hiera_hash.rb +6 -8
  232. data/lib/puppet/parser/functions/hiera_include.rb +2 -10
  233. data/lib/puppet/parser/functions/include.rb +4 -2
  234. data/lib/puppet/parser/functions/lookup.rb +115 -105
  235. data/lib/puppet/parser/functions/map.rb +1 -3
  236. data/lib/puppet/parser/functions/match.rb +1 -2
  237. data/lib/puppet/parser/functions/realize.rb +1 -6
  238. data/lib/puppet/parser/functions/reduce.rb +1 -3
  239. data/lib/puppet/parser/functions/regsubst.rb +1 -57
  240. data/lib/puppet/parser/functions/require.rb +6 -4
  241. data/lib/puppet/parser/functions/scanf.rb +1 -1
  242. data/lib/puppet/parser/functions/slice.rb +1 -3
  243. data/lib/puppet/parser/functions/split.rb +1 -1
  244. data/lib/puppet/parser/functions/with.rb +1 -2
  245. data/lib/puppet/parser/functions.rb +1 -3
  246. data/lib/puppet/parser/parser_factory.rb +5 -21
  247. data/lib/puppet/parser/relationship.rb +14 -37
  248. data/lib/puppet/parser/resource.rb +11 -22
  249. data/lib/puppet/parser/scope.rb +45 -135
  250. data/lib/puppet/parser/templatewrapper.rb +1 -29
  251. data/lib/puppet/parser/type_loader.rb +12 -15
  252. data/lib/puppet/parser.rb +12 -2
  253. data/lib/{puppetx/puppet/bindings_scheme_handler.rb → puppet/plugins/binding_schemes.rb} +14 -4
  254. data/lib/puppet/plugins/configuration.rb +68 -0
  255. data/lib/puppet/plugins/data_providers.rb +90 -0
  256. data/lib/{puppetx/puppet/syntax_checker.rb → puppet/plugins/syntax_checkers.rb} +14 -2
  257. data/lib/puppet/plugins.rb +9 -0
  258. data/lib/puppet/pops/adaptable.rb +16 -5
  259. data/lib/puppet/pops/binder/binder.rb +5 -4
  260. data/lib/puppet/pops/binder/bindings_composer.rb +6 -4
  261. data/lib/puppet/pops/binder/bindings_factory.rb +4 -0
  262. data/lib/puppet/pops/binder/bindings_label_provider.rb +1 -1
  263. data/lib/puppet/pops/binder/bindings_loader.rb +3 -8
  264. data/lib/puppet/pops/binder/bindings_model_dumper.rb +36 -8
  265. data/lib/puppet/pops/binder/config/binder_config.rb +2 -2
  266. data/lib/puppet/pops/binder/config/binder_config_checker.rb +1 -1
  267. data/lib/puppet/pops/binder/config/issues.rb +4 -0
  268. data/lib/puppet/pops/binder/injector.rb +0 -1
  269. data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +1 -1
  270. data/lib/puppet/pops/evaluator/access_operator.rb +18 -50
  271. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +5 -5
  272. data/lib/puppet/pops/evaluator/callable_signature.rb +2 -2
  273. data/lib/puppet/pops/evaluator/closure.rb +16 -21
  274. data/lib/puppet/pops/evaluator/collector_transformer.rb +11 -1
  275. data/lib/puppet/pops/evaluator/compare_operator.rb +0 -43
  276. data/lib/puppet/pops/evaluator/epp_evaluator.rb +1 -1
  277. data/lib/puppet/pops/evaluator/evaluator_impl.rb +32 -119
  278. data/lib/puppet/pops/evaluator/external_syntax_support.rb +6 -3
  279. data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -1
  280. data/lib/puppet/pops/evaluator/runtime3_converter.rb +1 -1
  281. data/lib/puppet/pops/evaluator/runtime3_support.rb +8 -52
  282. data/lib/puppet/pops/functions/dispatch.rb +1 -6
  283. data/lib/puppet/pops/issue_reporter.rb +16 -42
  284. data/lib/puppet/pops/issues.rb +13 -128
  285. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  286. data/lib/puppet/pops/loader/loader.rb +21 -20
  287. data/lib/puppet/pops/loaders.rb +13 -8
  288. data/lib/puppet/pops/lookup.rb +96 -0
  289. data/lib/puppet/pops/merge_strategy.rb +283 -0
  290. data/lib/puppet/pops/model/ast_transformer.rb +4 -522
  291. data/lib/puppet/pops/model/factory.rb +20 -21
  292. data/lib/puppet/pops/model/model.rb +1 -1
  293. data/lib/puppet/pops/model/model_label_provider.rb +1 -1
  294. data/lib/puppet/pops/model/model_meta.rb +10 -7
  295. data/lib/puppet/pops/model/tree_dumper.rb +1 -1
  296. data/lib/puppet/pops/parser/egrammar.ra +1 -11
  297. data/lib/puppet/pops/parser/eparser.rb +1133 -1265
  298. data/lib/puppet/pops/parser/epp_support.rb +11 -22
  299. data/lib/puppet/pops/parser/evaluating_parser.rb +11 -10
  300. data/lib/puppet/pops/parser/heredoc_support.rb +11 -12
  301. data/lib/puppet/pops/parser/interpolation_support.rb +1 -7
  302. data/lib/puppet/pops/parser/lexer2.rb +14 -19
  303. data/lib/puppet/pops/parser/lexer_support.rb +20 -46
  304. data/lib/puppet/pops/parser/locator.rb +6 -30
  305. data/lib/puppet/pops/parser/parser_support.rb +14 -11
  306. data/lib/puppet/pops/parser/slurp_support.rb +6 -22
  307. data/lib/puppet/pops/patterns.rb +0 -3
  308. data/lib/puppet/pops/types/class_loader.rb +8 -8
  309. data/lib/puppet/pops/types/enumeration.rb +1 -1
  310. data/lib/puppet/pops/types/type_asserter.rb +45 -0
  311. data/lib/puppet/pops/types/type_assertion_error.rb +26 -0
  312. data/lib/puppet/pops/types/type_calculator.rb +110 -212
  313. data/lib/puppet/pops/types/type_factory.rb +15 -74
  314. data/lib/puppet/pops/types/type_parser.rb +15 -24
  315. data/lib/puppet/pops/types/types.rb +25 -35
  316. data/lib/puppet/pops/types/types_meta.rb +2 -13
  317. data/lib/puppet/pops/utils.rb +1 -1
  318. data/lib/puppet/pops/validation/checker4_0.rb +6 -56
  319. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -3
  320. data/lib/puppet/pops/validation.rb +3 -26
  321. data/lib/puppet/pops/visitor.rb +10 -7
  322. data/lib/puppet/pops.rb +6 -7
  323. data/lib/puppet/property.rb +44 -124
  324. data/lib/puppet/provider/aixobject.rb +2 -2
  325. data/lib/puppet/provider/augeas/augeas.rb +9 -6
  326. data/lib/puppet/provider/command.rb +1 -1
  327. data/lib/puppet/provider/cron/crontab.rb +37 -0
  328. data/lib/puppet/provider/exec.rb +2 -16
  329. data/lib/puppet/provider/file/posix.rb +1 -1
  330. data/lib/puppet/provider/file/windows.rb +1 -1
  331. data/lib/puppet/provider/group/aix.rb +1 -1
  332. data/lib/puppet/provider/group/pw.rb +0 -1
  333. data/lib/puppet/provider/group/windows_adsi.rb +4 -18
  334. data/lib/puppet/provider/host/parsed.rb +4 -2
  335. data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -13
  336. data/lib/puppet/provider/mailalias/aliases.rb +23 -12
  337. data/lib/puppet/provider/mount/parsed.rb +2 -145
  338. data/lib/puppet/provider/nameservice/directoryservice.rb +58 -132
  339. data/lib/puppet/provider/network_device.rb +3 -0
  340. data/lib/puppet/provider/package/appdmg.rb +6 -3
  341. data/lib/puppet/provider/package/apt.rb +1 -1
  342. data/lib/puppet/provider/package/fink.rb +1 -1
  343. data/lib/puppet/provider/package/gem.rb +19 -6
  344. data/lib/puppet/provider/package/openbsd.rb +26 -12
  345. data/lib/puppet/provider/package/opkg.rb +6 -1
  346. data/lib/puppet/provider/package/pacman.rb +159 -127
  347. data/lib/puppet/provider/package/pip.rb +1 -11
  348. data/lib/puppet/provider/package/pkg.rb +73 -29
  349. data/lib/puppet/provider/package/pkgdmg.rb +3 -3
  350. data/lib/puppet/provider/package/pkgin.rb +1 -1
  351. data/lib/puppet/provider/package/portage.rb +5 -1
  352. data/lib/puppet/provider/package/portupgrade.rb +0 -2
  353. data/lib/puppet/provider/package/puppet_gem.rb +17 -0
  354. data/lib/puppet/provider/package/rpm.rb +109 -0
  355. data/lib/puppet/provider/package/rug.rb +0 -1
  356. data/lib/puppet/provider/package/windows/package.rb +1 -1
  357. data/lib/puppet/provider/package/yum.rb +121 -30
  358. data/lib/puppet/provider/package/zypper.rb +8 -17
  359. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +7 -32
  360. data/lib/puppet/provider/service/base.rb +17 -3
  361. data/lib/puppet/provider/service/bsd.rb +1 -1
  362. data/lib/puppet/provider/service/daemontools.rb +1 -1
  363. data/lib/puppet/provider/service/init.rb +0 -7
  364. data/lib/puppet/provider/service/launchd.rb +12 -90
  365. data/lib/puppet/provider/service/openbsd.rb +56 -298
  366. data/lib/puppet/provider/service/runit.rb +1 -1
  367. data/lib/puppet/provider/service/systemd.rb +1 -0
  368. data/lib/puppet/provider/service/upstart.rb +4 -2
  369. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
  370. data/lib/puppet/provider/user/aix.rb +1 -1
  371. data/lib/puppet/provider/user/directoryservice.rb +42 -72
  372. data/lib/puppet/provider/user/hpux.rb +31 -2
  373. data/lib/puppet/provider/user/openbsd.rb +74 -0
  374. data/lib/puppet/provider/user/pw.rb +0 -1
  375. data/lib/puppet/provider/user/user_role_add.rb +1 -3
  376. data/lib/puppet/provider/user/windows_adsi.rb +2 -9
  377. data/lib/puppet/provider/yumrepo/inifile.rb +1 -3
  378. data/lib/puppet/provider/zfs/zfs.rb +3 -2
  379. data/lib/puppet/provider/zone/solaris.rb +3 -3
  380. data/lib/puppet/provider.rb +0 -52
  381. data/lib/puppet/reference/configuration.rb +4 -3
  382. data/lib/puppet/reference/metaparameter.rb +0 -9
  383. data/lib/puppet/reference/providers.rb +1 -1
  384. data/lib/puppet/reference/type.rb +8 -10
  385. data/lib/puppet/relationship.rb +4 -17
  386. data/lib/puppet/resource/catalog.rb +23 -30
  387. data/lib/puppet/resource/status.rb +74 -22
  388. data/lib/puppet/resource/type.rb +12 -52
  389. data/lib/puppet/resource/type_collection.rb +26 -73
  390. data/lib/puppet/resource.rb +132 -114
  391. data/lib/puppet/settings/base_setting.rb +6 -30
  392. data/lib/puppet/settings/config_file.rb +14 -11
  393. data/lib/puppet/settings/duration_setting.rb +1 -1
  394. data/lib/puppet/settings/environment_conf.rb +14 -12
  395. data/lib/puppet/settings/file_setting.rb +9 -10
  396. data/lib/puppet/settings/ttl_setting.rb +1 -3
  397. data/lib/puppet/settings.rb +95 -154
  398. data/lib/puppet/ssl/certificate.rb +38 -8
  399. data/lib/puppet/ssl/certificate_authority/interface.rb +7 -1
  400. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  401. data/lib/puppet/ssl/certificate_request.rb +36 -8
  402. data/lib/puppet/ssl/configuration.rb +2 -8
  403. data/lib/puppet/ssl/host.rb +1 -8
  404. data/lib/puppet/ssl/inventory.rb +0 -7
  405. data/lib/puppet/ssl/oids.rb +72 -3
  406. data/lib/puppet/ssl/validator/default_validator.rb +0 -1
  407. data/lib/puppet/status.rb +0 -5
  408. data/lib/{puppetx/puppetlabs → puppet}/syntax_checkers/json.rb +2 -2
  409. data/lib/puppet/syntax_checkers.rb +3 -0
  410. data/lib/puppet/test/test_helper.rb +11 -12
  411. data/lib/puppet/transaction/event.rb +4 -5
  412. data/lib/puppet/transaction/event_manager.rb +50 -5
  413. data/lib/puppet/transaction/report.rb +5 -10
  414. data/lib/puppet/transaction/resource_harness.rb +7 -2
  415. data/lib/puppet/transaction.rb +12 -9
  416. data/lib/puppet/type/augeas.rb +1 -0
  417. data/lib/puppet/type/exec.rb +2 -2
  418. data/lib/puppet/type/file/content.rb +19 -15
  419. data/lib/puppet/type/file/mode.rb +16 -11
  420. data/lib/puppet/type/file/selcontext.rb +1 -1
  421. data/lib/puppet/type/file/source.rb +15 -15
  422. data/lib/puppet/type/file.rb +8 -9
  423. data/lib/puppet/type/filebucket.rb +2 -2
  424. data/lib/puppet/type/group.rb +5 -17
  425. data/lib/puppet/type/host.rb +12 -3
  426. data/lib/puppet/type/k5login.rb +1 -1
  427. data/lib/puppet/type/mailalias.rb +20 -6
  428. data/lib/puppet/type/maillist.rb +1 -1
  429. data/lib/puppet/type/mount.rb +6 -16
  430. data/lib/puppet/type/notify.rb +1 -1
  431. data/lib/puppet/type/package.rb +91 -16
  432. data/lib/puppet/type/resources.rb +0 -7
  433. data/lib/puppet/type/router.rb +1 -1
  434. data/lib/puppet/type/schedule.rb +1 -1
  435. data/lib/puppet/type/scheduled_task.rb +0 -13
  436. data/lib/puppet/type/selboolean.rb +2 -2
  437. data/lib/puppet/type/service.rb +1 -1
  438. data/lib/puppet/type/ssh_authorized_key.rb +1 -1
  439. data/lib/puppet/type/sshkey.rb +1 -1
  440. data/lib/puppet/type/tidy.rb +4 -1
  441. data/lib/puppet/type/user.rb +16 -3
  442. data/lib/puppet/type/yumrepo.rb +26 -0
  443. data/lib/puppet/type/zfs.rb +1 -1
  444. data/lib/puppet/type/zpool.rb +1 -1
  445. data/lib/puppet/type.rb +113 -29
  446. data/lib/puppet/util/autoload.rb +3 -13
  447. data/lib/puppet/util/checksums.rb +59 -22
  448. data/lib/puppet/util/classgen.rb +1 -9
  449. data/lib/puppet/util/colors.rb +0 -117
  450. data/lib/puppet/util/command_line.rb +1 -23
  451. data/lib/puppet/util/execution.rb +19 -22
  452. data/lib/puppet/util/feature.rb +2 -4
  453. data/lib/puppet/util/fileparsing.rb +3 -2
  454. data/lib/puppet/util/log/destinations.rb +17 -36
  455. data/lib/puppet/util/log.rb +13 -56
  456. data/lib/puppet/util/logging.rb +52 -37
  457. data/lib/puppet/util/metric.rb +0 -149
  458. data/lib/puppet/util/monkey_patches.rb +1 -94
  459. data/lib/puppet/util/network_device/base.rb +1 -5
  460. data/lib/puppet/util/network_device/cisco/interface.rb +2 -2
  461. data/lib/puppet/util/network_device/transport/ssh.rb +2 -2
  462. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  463. data/lib/puppet/util/profiler/around_profiler.rb +1 -1
  464. data/lib/puppet/util/profiler.rb +1 -1
  465. data/lib/puppet/util/psych_support.rb +38 -0
  466. data/lib/puppet/util/rdoc/code_objects.rb +5 -45
  467. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
  468. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +8 -227
  469. data/lib/puppet/util/rdoc/parser.rb +5 -15
  470. data/lib/puppet/util/rdoc.rb +6 -42
  471. data/lib/puppet/util/retry_action.rb +46 -0
  472. data/lib/puppet/util/run_mode.rb +49 -8
  473. data/lib/puppet/util/selinux.rb +2 -2
  474. data/lib/puppet/util/ssl.rb +11 -11
  475. data/lib/puppet/util/suidmanager.rb +4 -31
  476. data/lib/puppet/util/tag_set.rb +0 -11
  477. data/lib/puppet/util/tagging.rb +50 -19
  478. data/lib/puppet/util/warnings.rb +1 -0
  479. data/lib/puppet/util/windows/adsi.rb +13 -60
  480. data/lib/puppet/util/windows/api_types.rb +16 -2
  481. data/lib/puppet/util/windows/file.rb +2 -8
  482. data/lib/puppet/util/windows/process.rb +58 -0
  483. data/lib/puppet/util/windows/registry.rb +319 -31
  484. data/lib/puppet/util/windows/security.rb +1 -68
  485. data/lib/puppet/util/windows/taskscheduler.rb +0 -21
  486. data/lib/puppet/util/windows/user.rb +2 -3
  487. data/lib/puppet/util.rb +2 -85
  488. data/lib/puppet/vendor/deep_merge/CHANGELOG +45 -0
  489. data/lib/puppet/vendor/deep_merge/Gemfile +3 -0
  490. data/lib/puppet/vendor/deep_merge/LICENSE +21 -0
  491. data/lib/puppet/vendor/deep_merge/PUPPET_README.md +6 -0
  492. data/lib/puppet/vendor/deep_merge/README.md +113 -0
  493. data/lib/puppet/vendor/deep_merge/Rakefile +19 -0
  494. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +35 -0
  495. data/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +210 -0
  496. data/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +28 -0
  497. data/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +27 -0
  498. data/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +2 -0
  499. data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +608 -0
  500. data/lib/puppet/vendor/load_deep_merge.rb +1 -0
  501. data/lib/puppet/vendor/load_plist.rb +1 -0
  502. data/lib/puppet/vendor/load_rgen.rb +1 -0
  503. data/lib/puppet/vendor/plist/CHANGELOG +82 -0
  504. data/lib/puppet/vendor/{safe_yaml/LICENSE.txt → plist/MIT-LICENSE} +7 -8
  505. data/lib/puppet/vendor/plist/PUPPET_README.md +6 -0
  506. data/lib/puppet/vendor/plist/README +36 -0
  507. data/lib/puppet/vendor/plist/Rakefile +144 -0
  508. data/lib/puppet/vendor/plist/docs/USAGE +104 -0
  509. data/lib/puppet/vendor/plist/docs/jamis-template.rb +591 -0
  510. data/lib/puppet/vendor/plist/lib/plist/generator.rb +224 -0
  511. data/lib/puppet/vendor/plist/lib/plist/parser.rb +225 -0
  512. data/lib/puppet/vendor/plist/lib/plist.rb +22 -0
  513. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +203 -0
  514. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +104 -0
  515. data/lib/puppet/vendor/plist/test/assets/commented.plist +9 -0
  516. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  517. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  518. data/lib/puppet/vendor/plist/test/assets/example_data.plist +259 -0
  519. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +24 -0
  520. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +13 -0
  521. data/lib/puppet/vendor/plist/test/test_data_elements.rb +115 -0
  522. data/lib/puppet/vendor/plist/test/test_generator.rb +59 -0
  523. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +58 -0
  524. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +82 -0
  525. data/lib/puppet/vendor/plist/test/test_parser.rb +90 -0
  526. data/lib/puppet/vendor/require_vendored.rb +1 -3
  527. data/lib/puppet/vendor/rgen_patch.rb +132 -0
  528. data/lib/puppet/version.rb +1 -1
  529. data/lib/puppet.rb +19 -51
  530. data/lib/puppet_x.rb +8 -0
  531. data/lib/semver.rb +0 -1
  532. data/man/man5/puppet.conf.5 +424 -287
  533. data/man/man8/extlookup2hiera.8 +2 -15
  534. data/man/man8/puppet-agent.8 +14 -14
  535. data/man/man8/puppet-apply.8 +29 -30
  536. data/man/man8/puppet-ca.8 +29 -17
  537. data/man/man8/puppet-catalog.8 +5 -34
  538. data/man/man8/puppet-cert.8 +8 -4
  539. data/man/man8/puppet-certificate.8 +15 -29
  540. data/man/man8/puppet-certificate_request.8 +9 -16
  541. data/man/man8/puppet-certificate_revocation_list.8 +5 -31
  542. data/man/man8/puppet-config.8 +52 -11
  543. data/man/man8/puppet-describe.8 +1 -1
  544. data/man/man8/puppet-device.8 +5 -16
  545. data/man/man8/puppet-doc.8 +7 -80
  546. data/man/man8/puppet-epp.8 +349 -0
  547. data/man/man8/puppet-facts.8 +5 -95
  548. data/man/man8/puppet-file.8 +2 -28
  549. data/man/man8/puppet-filebucket.8 +2 -2
  550. data/man/man8/puppet-help.8 +2 -2
  551. data/man/man8/puppet-inspect.8 +1 -1
  552. data/man/man8/puppet-key.8 +6 -3
  553. data/man/man8/puppet-man.8 +2 -2
  554. data/man/man8/puppet-master.8 +11 -7
  555. data/man/man8/puppet-module.8 +75 -49
  556. data/man/man8/puppet-node.8 +8 -56
  557. data/man/man8/puppet-parser.8 +38 -4
  558. data/man/man8/puppet-plugin.8 +2 -2
  559. data/man/man8/puppet-report.8 +8 -70
  560. data/man/man8/puppet-resource.8 +7 -3
  561. data/man/man8/puppet-resource_type.8 +2 -28
  562. data/man/man8/puppet-status.8 +5 -47
  563. data/man/man8/puppet.8 +2 -2
  564. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +3 -0
  565. data/spec/fixtures/integration/provider/sshkey/sample +21 -0
  566. data/spec/fixtures/unit/data_providers/environments/production/environment.conf +2 -0
  567. data/spec/fixtures/unit/data_providers/environments/production/lib/puppet/functions/environment/data.rb +7 -0
  568. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +9 -0
  569. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +8 -0
  570. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/manifests/init.pp +9 -0
  571. data/spec/fixtures/unit/data_providers/environments/sample/environment.conf +2 -0
  572. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +6 -0
  573. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet/bindings/dataprovider/default.rb +54 -0
  574. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +31 -0
  575. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +32 -0
  576. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +5 -0
  577. data/spec/fixtures/unit/functions/lookup/environments/production/environment.conf +2 -0
  578. data/spec/fixtures/unit/functions/lookup/environments/production/lib/puppet/functions/environment/data.rb +13 -0
  579. data/spec/fixtures/unit/functions/lookup/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +9 -0
  580. data/spec/fixtures/unit/functions/lookup/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +9 -0
  581. data/spec/fixtures/unit/functions/lookup/environments/production/modules/abc/manifests/init.pp +8 -0
  582. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +9 -0
  583. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +6 -0
  584. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +3 -0
  585. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +9 -0
  586. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +9 -0
  587. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bca/manifests/init.pp +2 -0
  588. data/spec/fixtures/unit/functions/lookup/environments/production/modules/no_provider/manifests/init.pp +2 -0
  589. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +0 -0
  590. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +1 -1
  591. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/{puppetx → puppet_x}/awesome2/echo_scheme_handler.rb +3 -3
  592. data/spec/fixtures/unit/pops/binder/config/binder_config/nolayer/binder_config.yaml +6 -0
  593. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +0 -0
  594. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +85 -93
  595. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +7 -11
  596. data/spec/fixtures/unit/provider/package/pkg/dummy_implicit_version +3 -0
  597. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +1 -1
  598. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.certificate_warning +1 -1
  599. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.installed +1 -1
  600. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +1 -1
  601. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +1 -1
  602. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +1 -1
  603. data/spec/fixtures/unit/provider/package/pkg/incomplete +1 -1
  604. data/spec/fixtures/unit/provider/package/pkg/solaris11 +2 -2
  605. data/spec/fixtures/unit/provider/package/pkg/unknown_status +12 -12
  606. data/spec/fixtures/unit/provider/package/yum/yum-check-update-multiline.txt +201 -0
  607. data/spec/fixtures/unit/provider/package/yum/yum-check-update-simple.txt +12 -0
  608. data/spec/fixtures/unit/provider/parsedfile/simple.txt +3 -0
  609. data/spec/fixtures/unit/provider/service/openbsd/rcctl_getall +6 -0
  610. data/spec/fixtures/unit/ssl/certificate/old-style-cert-exts.pem +33 -0
  611. data/spec/fixtures/unit/ssl/certificate_request/old-style-cert-request.pem +28 -0
  612. data/spec/integration/agent/logging_spec.rb +1 -5
  613. data/spec/integration/application/apply_spec.rb +1 -1
  614. data/spec/integration/application/doc_spec.rb +1 -43
  615. data/spec/integration/configurer_spec.rb +5 -5
  616. data/spec/integration/data_binding.rb +4 -0
  617. data/spec/integration/defaults_spec.rb +42 -143
  618. data/spec/integration/directory_environments_spec.rb +3 -3
  619. data/spec/integration/environments/default_manifest_spec.rb +3 -51
  620. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  621. data/spec/integration/environments/settings_interpolation_spec.rb +50 -105
  622. data/spec/integration/environments/settings_spec.rb +100 -0
  623. data/spec/integration/faces/ca_spec.rb +51 -51
  624. data/spec/integration/faces/documentation_spec.rb +6 -6
  625. data/spec/integration/file_bucket/file_spec.rb +5 -16
  626. data/spec/integration/file_serving/fileset_spec.rb +1 -1
  627. data/spec/integration/file_serving/terminus_helper_spec.rb +1 -1
  628. data/spec/integration/indirector/catalog/compiler_spec.rb +6 -6
  629. data/spec/integration/indirector/direct_file_server_spec.rb +40 -12
  630. data/spec/integration/indirector/facts/facter_spec.rb +1 -1
  631. data/spec/integration/indirector/file_content/file_server_spec.rb +23 -21
  632. data/spec/integration/indirector/file_metadata/file_server_spec.rb +53 -0
  633. data/spec/integration/indirector/node/ldap_spec.rb +0 -0
  634. data/spec/integration/network/authconfig_spec.rb +26 -26
  635. data/spec/integration/network/formats_spec.rb +12 -12
  636. data/spec/integration/network/http/api/indirected_routes_spec.rb +56 -0
  637. data/spec/integration/node/environment_spec.rb +12 -15
  638. data/spec/integration/node/facts_spec.rb +3 -3
  639. data/spec/integration/node_spec.rb +8 -8
  640. data/spec/integration/parser/catalog_spec.rb +1 -32
  641. data/spec/integration/parser/class_spec.rb +0 -4
  642. data/spec/integration/parser/{collector_spec.rb → collection_spec.rb} +3 -27
  643. data/spec/integration/parser/compiler_spec.rb +769 -385
  644. data/spec/integration/parser/conditionals_spec.rb +2 -27
  645. data/spec/integration/parser/functions/require_spec.rb +8 -8
  646. data/spec/integration/parser/node_spec.rb +29 -42
  647. data/spec/integration/parser/resource_expressions_spec.rb +125 -210
  648. data/spec/integration/parser/scope_spec.rb +168 -319
  649. data/spec/integration/parser/undef_param_spec.rb +5 -5
  650. data/spec/integration/provider/cron/crontab_spec.rb +3 -3
  651. data/spec/integration/provider/mailalias/aliases_spec.rb +0 -0
  652. data/spec/integration/provider/mount_spec.rb +33 -28
  653. data/spec/integration/provider/package_spec.rb +3 -14
  654. data/spec/integration/provider/service/init_spec.rb +4 -4
  655. data/spec/integration/provider/service/systemd_spec.rb +3 -3
  656. data/spec/integration/provider/ssh_authorized_key_spec.rb +12 -12
  657. data/spec/integration/provider/sshkey_spec.rb +159 -0
  658. data/spec/integration/provider/yumrepo_spec.rb +127 -0
  659. data/spec/integration/reference/providers_spec.rb +1 -1
  660. data/spec/integration/reports_spec.rb +1 -1
  661. data/spec/integration/resource/catalog_spec.rb +3 -3
  662. data/spec/integration/resource/type_collection_spec.rb +10 -25
  663. data/spec/integration/ssl/autosign_spec.rb +1 -1
  664. data/spec/integration/ssl/certificate_authority_spec.rb +8 -8
  665. data/spec/integration/ssl/certificate_request_spec.rb +2 -2
  666. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -0
  667. data/spec/integration/ssl/host_spec.rb +7 -7
  668. data/spec/integration/transaction/report_spec.rb +0 -0
  669. data/spec/integration/transaction_spec.rb +86 -50
  670. data/spec/integration/type/exec_spec.rb +5 -5
  671. data/spec/integration/type/file_spec.rb +277 -280
  672. data/spec/integration/type/package_spec.rb +105 -6
  673. data/spec/integration/type/tidy_spec.rb +1 -1
  674. data/spec/integration/type/user_spec.rb +4 -4
  675. data/spec/integration/type_spec.rb +2 -2
  676. data/spec/integration/util/autoload_spec.rb +7 -12
  677. data/spec/integration/util/rdoc/parser_spec.rb +13 -99
  678. data/spec/integration/util/settings_spec.rb +1 -1
  679. data/spec/integration/util/windows/process_spec.rb +6 -6
  680. data/spec/integration/util/windows/security_spec.rb +79 -105
  681. data/spec/integration/util/windows/user_spec.rb +12 -12
  682. data/spec/integration/util_spec.rb +8 -8
  683. data/spec/lib/matchers/containment_matchers.rb +1 -1
  684. data/spec/lib/matchers/include.rb +3 -3
  685. data/spec/lib/matchers/include_in_order.rb +2 -2
  686. data/spec/lib/matchers/json.rb +5 -35
  687. data/spec/lib/matchers/match_tokens2.rb +1 -1
  688. data/spec/lib/matchers/relationship_graph_matchers.rb +1 -1
  689. data/spec/lib/matchers/resource.rb +8 -23
  690. data/spec/lib/puppet/face/1.0.0/huzzah.rb +2 -2
  691. data/spec/lib/puppet/face/basetest.rb +0 -0
  692. data/spec/lib/puppet/face/huzzah.rb +2 -2
  693. data/spec/lib/puppet/face/version_matching.rb +1 -1
  694. data/spec/lib/puppet/indirector_proxy.rb +34 -0
  695. data/spec/lib/puppet/indirector_testing.rb +1 -11
  696. data/spec/lib/puppet_spec/files.rb +1 -1
  697. data/spec/lib/puppet_spec/fixtures.rb +0 -0
  698. data/spec/lib/puppet_spec/handler.rb +53 -0
  699. data/spec/lib/puppet_spec/matchers.rb +12 -5
  700. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +3 -3
  701. data/spec/lib/puppet_spec/modules.rb +11 -0
  702. data/spec/lib/puppet_spec/network.rb +101 -0
  703. data/spec/lib/puppet_spec/pops.rb +2 -2
  704. data/spec/lib/puppet_spec/settings.rb +17 -0
  705. data/spec/lib/puppet_spec/verbose.rb +0 -0
  706. data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
  707. data/spec/shared_behaviours/an_indirector_face.rb +2 -2
  708. data/spec/shared_behaviours/documentation_on_faces.rb +46 -46
  709. data/spec/shared_behaviours/file_server_terminus.rb +1 -1
  710. data/spec/shared_behaviours/file_serving.rb +0 -0
  711. data/spec/shared_behaviours/hiera_indirections.rb +10 -10
  712. data/spec/shared_behaviours/iterative_functions.rb +1 -1
  713. data/spec/shared_behaviours/memory_terminus.rb +5 -5
  714. data/spec/shared_behaviours/path_parameters.rb +8 -8
  715. data/spec/shared_behaviours/store_configs_terminus.rb +3 -3
  716. data/spec/shared_behaviours/things_that_declare_options.rb +25 -25
  717. data/spec/shared_contexts/checksum.rb +62 -0
  718. data/spec/shared_contexts/{checksums.rb → digests.rb} +2 -2
  719. data/spec/spec_helper.rb +14 -5
  720. data/spec/unit/agent/disabler_spec.rb +3 -3
  721. data/spec/unit/agent/locker_spec.rb +9 -9
  722. data/spec/unit/agent_spec.rb +18 -18
  723. data/spec/unit/application/agent_spec.rb +25 -92
  724. data/spec/unit/application/apply_spec.rb +16 -16
  725. data/spec/unit/application/cert_spec.rb +15 -15
  726. data/spec/unit/application/certificate_spec.rb +2 -2
  727. data/spec/unit/application/config_spec.rb +1 -1
  728. data/spec/unit/application/describe_spec.rb +6 -6
  729. data/spec/unit/application/device_spec.rb +11 -11
  730. data/spec/unit/application/doc_spec.rb +22 -31
  731. data/spec/unit/application/face_base_spec.rb +88 -59
  732. data/spec/unit/application/facts_spec.rb +2 -11
  733. data/spec/unit/application/filebucket_spec.rb +7 -7
  734. data/spec/unit/application/indirection_base_spec.rb +0 -4
  735. data/spec/unit/application/inspect_spec.rb +21 -21
  736. data/spec/unit/application/master_spec.rb +8 -9
  737. data/spec/unit/application/resource_spec.rb +27 -79
  738. data/spec/unit/application_spec.rb +54 -58
  739. data/spec/unit/configurer/downloader_factory_spec.rb +0 -0
  740. data/spec/unit/configurer/downloader_spec.rb +26 -20
  741. data/spec/unit/configurer/fact_handler_spec.rb +19 -12
  742. data/spec/unit/configurer/plugin_handler_spec.rb +0 -0
  743. data/spec/unit/configurer_spec.rb +44 -44
  744. data/spec/unit/confine/exists_spec.rb +10 -10
  745. data/spec/unit/confine/false_spec.rb +7 -7
  746. data/spec/unit/confine/feature_spec.rb +7 -7
  747. data/spec/unit/confine/true_spec.rb +7 -7
  748. data/spec/unit/confine/variable_spec.rb +13 -13
  749. data/spec/unit/confine_collection_spec.rb +12 -12
  750. data/spec/unit/confine_spec.rb +10 -10
  751. data/spec/unit/confiner_spec.rb +8 -8
  752. data/spec/unit/context/trusted_information_spec.rb +9 -2
  753. data/spec/unit/daemon_spec.rb +10 -21
  754. data/spec/unit/data_binding_spec.rb +1 -1
  755. data/spec/unit/data_providers/function_data_provider_spec.rb +96 -0
  756. data/spec/unit/data_providers/sample_data_provider_spec.rb +52 -0
  757. data/spec/unit/defaults_spec.rb +6 -6
  758. data/spec/unit/environments_spec.rb +4 -6
  759. data/spec/unit/{util → external}/pson_spec.rb +15 -25
  760. data/spec/unit/face/catalog_spec.rb +0 -0
  761. data/spec/unit/face/certificate_spec.rb +19 -19
  762. data/spec/unit/face/config_spec.rb +2 -7
  763. data/spec/unit/face/epp_face_spec.rb +303 -0
  764. data/spec/unit/face/facts_spec.rb +1 -15
  765. data/spec/unit/face/file_spec.rb +3 -5
  766. data/spec/unit/face/help_spec.rb +17 -16
  767. data/spec/unit/face/module/build_spec.rb +2 -2
  768. data/spec/unit/face/module/list_spec.rb +11 -11
  769. data/spec/unit/face/module/search_spec.rb +17 -17
  770. data/spec/unit/face/node_spec.rb +4 -122
  771. data/spec/unit/face/parser_spec.rb +1 -1
  772. data/spec/unit/face/plugin_spec.rb +2 -2
  773. data/spec/unit/face_spec.rb +0 -0
  774. data/spec/unit/file_bucket/dipper_spec.rb +23 -23
  775. data/spec/unit/file_bucket/file_spec.rb +12 -28
  776. data/spec/unit/file_serving/base_spec.rb +26 -26
  777. data/spec/unit/file_serving/configuration/parser_spec.rb +10 -10
  778. data/spec/unit/file_serving/configuration_spec.rb +17 -17
  779. data/spec/unit/file_serving/content_spec.rb +19 -31
  780. data/spec/unit/file_serving/fileset_spec.rb +32 -33
  781. data/spec/unit/file_serving/metadata_spec.rb +115 -71
  782. data/spec/unit/file_serving/mount/file_spec.rb +15 -15
  783. data/spec/unit/file_serving/mount/modules_spec.rb +2 -2
  784. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +5 -5
  785. data/spec/unit/file_serving/mount/plugins_spec.rb +5 -5
  786. data/spec/unit/file_serving/mount_spec.rb +5 -5
  787. data/spec/unit/file_serving/terminus_helper_spec.rb +19 -0
  788. data/spec/unit/file_serving/terminus_selector_spec.rb +6 -6
  789. data/spec/unit/file_system/uniquefile_spec.rb +2 -2
  790. data/spec/unit/file_system_spec.rb +79 -117
  791. data/spec/unit/forge/errors_spec.rb +8 -8
  792. data/spec/unit/forge/module_release_spec.rb +2 -4
  793. data/spec/unit/forge/repository_spec.rb +38 -44
  794. data/spec/unit/forge_spec.rb +1 -1
  795. data/spec/unit/functions/assert_type_spec.rb +1 -1
  796. data/spec/unit/functions/each_spec.rb +19 -23
  797. data/spec/unit/functions/epp_spec.rb +9 -17
  798. data/spec/unit/functions/filter_spec.rb +0 -22
  799. data/spec/unit/functions/hiera_spec.rb +18 -24
  800. data/spec/unit/functions/inline_epp_spec.rb +8 -16
  801. data/spec/unit/functions/lookup_spec.rb +364 -0
  802. data/spec/unit/functions/map_spec.rb +1 -7
  803. data/spec/unit/functions/reduce_spec.rb +0 -11
  804. data/spec/unit/functions/regsubst_spec.rb +94 -0
  805. data/spec/unit/functions/scanf_spec.rb +0 -4
  806. data/spec/unit/functions/slice_spec.rb +0 -12
  807. data/spec/unit/functions/split_spec.rb +46 -0
  808. data/spec/unit/functions/with_spec.rb +4 -13
  809. data/spec/unit/functions4_spec.rb +57 -162
  810. data/spec/unit/graph/rb_tree_map_spec.rb +78 -78
  811. data/spec/unit/graph/relationship_graph_spec.rb +17 -17
  812. data/spec/unit/graph/{simple_graph.rb → simple_graph_spec.rb} +122 -126
  813. data/spec/unit/hiera/scope_spec.rb +13 -12
  814. data/spec/unit/hiera_puppet_spec.rb +12 -12
  815. data/spec/unit/indirector/catalog/compiler_spec.rb +10 -15
  816. data/spec/unit/indirector/catalog/json_spec.rb +2 -2
  817. data/spec/unit/indirector/catalog/msgpack_spec.rb +2 -2
  818. data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
  819. data/spec/unit/indirector/catalog/static_compiler_spec.rb +14 -14
  820. data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -0
  821. data/spec/unit/indirector/catalog/yaml_spec.rb +4 -4
  822. data/spec/unit/indirector/certificate/ca_spec.rb +3 -3
  823. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +0 -0
  824. data/spec/unit/indirector/certificate/file_spec.rb +3 -3
  825. data/spec/unit/indirector/certificate/rest_spec.rb +6 -6
  826. data/spec/unit/indirector/certificate_request/ca_spec.rb +8 -8
  827. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +0 -0
  828. data/spec/unit/indirector/certificate_request/file_spec.rb +2 -2
  829. data/spec/unit/indirector/certificate_request/rest_spec.rb +4 -4
  830. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +2 -2
  831. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +0 -0
  832. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +2 -2
  833. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +4 -4
  834. data/spec/unit/indirector/certificate_status/file_spec.rb +18 -18
  835. data/spec/unit/indirector/certificate_status/rest_spec.rb +2 -2
  836. data/spec/unit/indirector/code_spec.rb +3 -3
  837. data/spec/unit/indirector/data_binding/hiera_spec.rb +3 -3
  838. data/spec/unit/indirector/data_binding/none_spec.rb +5 -5
  839. data/spec/unit/indirector/direct_file_server_spec.rb +14 -4
  840. data/spec/unit/indirector/envelope_spec.rb +4 -4
  841. data/spec/unit/indirector/exec_spec.rb +4 -4
  842. data/spec/unit/indirector/face_spec.rb +13 -8
  843. data/spec/unit/indirector/facts/facter_spec.rb +10 -20
  844. data/spec/unit/indirector/facts/network_device_spec.rb +10 -20
  845. data/spec/unit/indirector/facts/store_configs_spec.rb +0 -0
  846. data/spec/unit/indirector/facts/yaml_spec.rb +6 -6
  847. data/spec/unit/indirector/file_bucket_file/file_spec.rb +34 -34
  848. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -1
  849. data/spec/unit/indirector/file_content/file_server_spec.rb +2 -2
  850. data/spec/unit/indirector/file_content/file_spec.rb +2 -2
  851. data/spec/unit/indirector/file_content/rest_spec.rb +1 -1
  852. data/spec/unit/indirector/file_metadata/file_server_spec.rb +2 -2
  853. data/spec/unit/indirector/file_metadata/file_spec.rb +13 -5
  854. data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -1
  855. data/spec/unit/indirector/file_server_spec.rb +35 -17
  856. data/spec/unit/indirector/indirection_spec.rb +56 -56
  857. data/spec/unit/indirector/json_spec.rb +15 -16
  858. data/spec/unit/indirector/key/ca_spec.rb +3 -3
  859. data/spec/unit/indirector/key/disabled_ca_spec.rb +0 -0
  860. data/spec/unit/indirector/key/file_spec.rb +5 -5
  861. data/spec/unit/indirector/ldap_spec.rb +13 -13
  862. data/spec/unit/indirector/memory_spec.rb +0 -0
  863. data/spec/unit/indirector/msgpack_spec.rb +15 -15
  864. data/spec/unit/indirector/node/exec_spec.rb +20 -9
  865. data/spec/unit/indirector/node/ldap_spec.rb +48 -48
  866. data/spec/unit/indirector/node/memory_spec.rb +0 -0
  867. data/spec/unit/indirector/node/msgpack_spec.rb +4 -4
  868. data/spec/unit/indirector/node/plain_spec.rb +2 -2
  869. data/spec/unit/indirector/node/rest_spec.rb +0 -0
  870. data/spec/unit/indirector/node/store_configs_spec.rb +0 -0
  871. data/spec/unit/indirector/node/yaml_spec.rb +4 -4
  872. data/spec/unit/indirector/none_spec.rb +2 -2
  873. data/spec/unit/indirector/plain_spec.rb +1 -1
  874. data/spec/unit/indirector/report/msgpack_spec.rb +5 -5
  875. data/spec/unit/indirector/report/processor_spec.rb +4 -4
  876. data/spec/unit/indirector/report/rest_spec.rb +8 -8
  877. data/spec/unit/indirector/report/yaml_spec.rb +5 -5
  878. data/spec/unit/indirector/request_spec.rb +103 -206
  879. data/spec/unit/indirector/resource/ral_spec.rb +8 -10
  880. data/spec/unit/indirector/resource/store_configs_spec.rb +2 -4
  881. data/spec/unit/indirector/resource_type/parser_spec.rb +37 -37
  882. data/spec/unit/indirector/resource_type/rest_spec.rb +2 -2
  883. data/spec/unit/indirector/rest_spec.rb +70 -55
  884. data/spec/unit/indirector/ssl_file_spec.rb +13 -13
  885. data/spec/unit/indirector/status/rest_spec.rb +1 -1
  886. data/spec/unit/indirector/store_configs_spec.rb +0 -0
  887. data/spec/unit/indirector/terminus_spec.rb +17 -17
  888. data/spec/unit/indirector/yaml_spec.rb +12 -12
  889. data/spec/unit/indirector_spec.rb +7 -7
  890. data/spec/unit/interface/action_builder_spec.rb +15 -15
  891. data/spec/unit/interface/action_manager_spec.rb +31 -56
  892. data/spec/unit/interface/action_spec.rb +62 -65
  893. data/spec/unit/interface/documentation_spec.rb +2 -2
  894. data/spec/unit/interface/face_collection_spec.rb +33 -33
  895. data/spec/unit/interface/option_builder_spec.rb +8 -8
  896. data/spec/unit/interface/option_spec.rb +23 -23
  897. data/spec/unit/interface_spec.rb +19 -24
  898. data/spec/unit/man_spec.rb +0 -0
  899. data/spec/unit/module_spec.rb +163 -115
  900. data/spec/unit/module_tool/applications/builder_spec.rb +0 -19
  901. data/spec/unit/module_tool/applications/installer_spec.rb +29 -29
  902. data/spec/unit/module_tool/applications/searcher_spec.rb +4 -4
  903. data/spec/unit/module_tool/applications/uninstaller_spec.rb +15 -15
  904. data/spec/unit/module_tool/applications/unpacker_spec.rb +3 -3
  905. data/spec/unit/module_tool/applications/upgrader_spec.rb +28 -28
  906. data/spec/unit/module_tool/install_directory_spec.rb +3 -3
  907. data/spec/unit/module_tool/metadata_spec.rb +26 -26
  908. data/spec/unit/module_tool/tar/gnu_spec.rb +1 -1
  909. data/spec/unit/module_tool/tar/mini_spec.rb +2 -2
  910. data/spec/unit/module_tool/tar_spec.rb +2 -2
  911. data/spec/unit/module_tool_spec.rb +13 -34
  912. data/spec/unit/network/auth_config_parser_spec.rb +7 -7
  913. data/spec/unit/network/authconfig_spec.rb +9 -9
  914. data/spec/unit/network/authstore_spec.rb +38 -39
  915. data/spec/unit/network/format_handler_spec.rb +14 -14
  916. data/spec/unit/network/format_spec.rb +34 -34
  917. data/spec/unit/network/format_support_spec.rb +10 -10
  918. data/spec/unit/network/formats_spec.rb +50 -136
  919. data/spec/unit/network/http/api/ca/v1_spec.rb +26 -0
  920. data/spec/unit/network/http/api/{v1_spec.rb → indirected_routes_spec.rb} +128 -184
  921. data/spec/unit/network/http/api/{v2 → master/v3}/authorization_spec.rb +23 -21
  922. data/spec/unit/network/http/api/{v2 → master/v3}/environments_spec.rb +5 -5
  923. data/spec/unit/network/http/api/master/v3_spec.rb +39 -0
  924. data/spec/unit/network/http/api_spec.rb +127 -0
  925. data/spec/unit/network/http/compression_spec.rb +20 -26
  926. data/spec/unit/network/http/connection_spec.rb +2 -5
  927. data/spec/unit/network/http/factory_spec.rb +6 -8
  928. data/spec/unit/network/http/handler_spec.rb +31 -84
  929. data/spec/unit/network/http/nocache_pool_spec.rb +0 -0
  930. data/spec/unit/network/http/pool_spec.rb +0 -0
  931. data/spec/unit/network/http/rack/rest_spec.rb +38 -39
  932. data/spec/unit/network/http/rack_spec.rb +1 -1
  933. data/spec/unit/network/http/route_spec.rb +3 -3
  934. data/spec/unit/network/http/session_spec.rb +4 -4
  935. data/spec/unit/network/http/site_spec.rb +1 -1
  936. data/spec/unit/network/http/webrick/rest_spec.rb +36 -55
  937. data/spec/unit/network/http/webrick_spec.rb +16 -27
  938. data/spec/unit/network/http_pool_spec.rb +11 -11
  939. data/spec/unit/network/http_spec.rb +0 -0
  940. data/spec/unit/network/resolver_spec.rb +10 -10
  941. data/spec/unit/network/rights_spec.rb +67 -67
  942. data/spec/unit/network/server_spec.rb +3 -3
  943. data/spec/unit/node/environment_spec.rb +177 -273
  944. data/spec/unit/node/facts_spec.rb +71 -33
  945. data/spec/unit/node_spec.rb +150 -158
  946. data/spec/unit/other/selinux_spec.rb +6 -6
  947. data/spec/unit/parameter/boolean_spec.rb +4 -3
  948. data/spec/unit/parameter/package_options_spec.rb +5 -5
  949. data/spec/unit/parameter/path_spec.rb +1 -1
  950. data/spec/unit/parameter/value_collection_spec.rb +23 -28
  951. data/spec/unit/parameter/value_spec.rb +20 -24
  952. data/spec/unit/parameter_spec.rb +26 -26
  953. data/spec/unit/parser/ast/block_expression_spec.rb +3 -2
  954. data/spec/unit/parser/ast/leaf_spec.rb +5 -378
  955. data/spec/unit/parser/compiler_spec.rb +84 -74
  956. data/spec/unit/parser/files_spec.rb +55 -121
  957. data/spec/unit/parser/functions/contain_spec.rb +8 -11
  958. data/spec/unit/parser/functions/create_resources_spec.rb +28 -28
  959. data/spec/unit/parser/functions/defined_spec.rb +52 -51
  960. data/spec/unit/parser/functions/digest_spec.rb +2 -2
  961. data/spec/unit/parser/functions/fail_spec.rb +1 -1
  962. data/spec/unit/parser/functions/file_spec.rb +7 -13
  963. data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -5
  964. data/spec/unit/parser/functions/generate_spec.rb +20 -20
  965. data/spec/unit/parser/functions/hiera_array_spec.rb +2 -16
  966. data/spec/unit/parser/functions/hiera_hash_spec.rb +2 -12
  967. data/spec/unit/parser/functions/hiera_include_spec.rb +2 -29
  968. data/spec/unit/parser/functions/hiera_spec.rb +2 -12
  969. data/spec/unit/parser/functions/include_spec.rb +9 -19
  970. data/spec/unit/parser/functions/inline_template_spec.rb +3 -3
  971. data/spec/unit/parser/functions/lookup_spec.rb +3 -140
  972. data/spec/unit/parser/functions/realize_spec.rb +0 -0
  973. data/spec/unit/parser/functions/regsubst_spec.rb +7 -179
  974. data/spec/unit/parser/functions/require_spec.rb +14 -21
  975. data/spec/unit/parser/functions/scanf_spec.rb +0 -0
  976. data/spec/unit/parser/functions/shellquote_spec.rb +20 -20
  977. data/spec/unit/parser/functions/split_spec.rb +2 -37
  978. data/spec/unit/parser/functions/sprintf_spec.rb +7 -11
  979. data/spec/unit/parser/functions/tag_spec.rb +3 -3
  980. data/spec/unit/parser/functions/template_spec.rb +10 -10
  981. data/spec/unit/parser/functions/versioncmp_spec.rb +3 -3
  982. data/spec/unit/parser/functions_spec.rb +8 -8
  983. data/spec/unit/parser/relationship_spec.rb +14 -32
  984. data/spec/unit/parser/resource/param_spec.rb +0 -0
  985. data/spec/unit/parser/resource_spec.rb +57 -57
  986. data/spec/unit/parser/scope_spec.rb +89 -101
  987. data/spec/unit/parser/templatewrapper_spec.rb +15 -32
  988. data/spec/unit/parser/type_loader_spec.rb +53 -73
  989. data/spec/unit/pops/adaptable_spec.rb +22 -22
  990. data/spec/unit/pops/binder/bindings_checker_spec.rb +14 -14
  991. data/spec/unit/pops/binder/bindings_composer_spec.rb +4 -6
  992. data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +3 -3
  993. data/spec/unit/pops/binder/config/binder_config_spec.rb +8 -1
  994. data/spec/unit/pops/binder/injector_spec.rb +91 -109
  995. data/spec/unit/pops/containment_spec.rb +4 -4
  996. data/spec/unit/pops/evaluator/access_ops_spec.rb +5 -24
  997. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +23 -23
  998. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +22 -22
  999. data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -3
  1000. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +104 -107
  1001. data/spec/unit/pops/evaluator/conditionals_spec.rb +39 -39
  1002. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +75 -143
  1003. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +1 -5
  1004. data/spec/unit/pops/evaluator/logical_ops_spec.rb +15 -15
  1005. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +5 -5
  1006. data/spec/unit/pops/evaluator/variables_spec.rb +18 -18
  1007. data/spec/unit/pops/factory_rspec_helper.rb +0 -8
  1008. data/spec/unit/pops/factory_spec.rb +104 -104
  1009. data/spec/unit/pops/issues_spec.rb +21 -21
  1010. data/spec/unit/pops/label_provider_spec.rb +6 -6
  1011. data/spec/unit/pops/loaders/loaders_spec.rb +3 -3
  1012. data/spec/unit/pops/model/model_spec.rb +10 -10
  1013. data/spec/unit/pops/parser/epp_parser_spec.rb +20 -20
  1014. data/spec/unit/pops/parser/evaluating_parser_spec.rb +2 -2
  1015. data/spec/unit/pops/parser/lexer2_spec.rb +50 -251
  1016. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +91 -91
  1017. data/spec/unit/pops/parser/parse_calls_spec.rb +19 -19
  1018. data/spec/unit/pops/parser/parse_conditionals_spec.rb +38 -22
  1019. data/spec/unit/pops/parser/parse_containers_spec.rb +47 -47
  1020. data/spec/unit/pops/parser/parse_heredoc_spec.rb +16 -42
  1021. data/spec/unit/pops/parser/parse_resource_spec.rb +75 -70
  1022. data/spec/unit/pops/parser/parser_rspec_helper.rb +0 -5
  1023. data/spec/unit/pops/parser/parser_spec.rb +7 -7
  1024. data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +0 -7
  1025. data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +2 -2
  1026. data/spec/unit/pops/types/class_loader_spec.rb +10 -0
  1027. data/spec/unit/pops/types/type_calculator_spec.rb +456 -651
  1028. data/spec/unit/pops/types/type_factory_spec.rb +59 -59
  1029. data/spec/unit/pops/types/type_parser_spec.rb +2 -10
  1030. data/spec/unit/pops/validator/validator_spec.rb +0 -55
  1031. data/spec/unit/pops/visitor_spec.rb +4 -4
  1032. data/spec/unit/property/boolean_spec.rb +2 -2
  1033. data/spec/unit/property/ensure_spec.rb +1 -1
  1034. data/spec/unit/property/keyvalue_spec.rb +16 -16
  1035. data/spec/unit/property/list_spec.rb +18 -18
  1036. data/spec/unit/property/ordered_list_spec.rb +7 -7
  1037. data/spec/unit/property_spec.rb +72 -96
  1038. data/spec/unit/provider/aixobject_spec.rb +12 -12
  1039. data/spec/unit/provider/augeas/augeas_spec.rb +171 -149
  1040. data/spec/unit/provider/cisco_spec.rb +2 -2
  1041. data/spec/unit/provider/command_spec.rb +1 -1
  1042. data/spec/unit/provider/cron/crontab_spec.rb +9 -9
  1043. data/spec/unit/provider/cron/parsed_spec.rb +59 -38
  1044. data/spec/unit/provider/exec/posix_spec.rb +9 -19
  1045. data/spec/unit/provider/exec/shell_spec.rb +13 -13
  1046. data/spec/unit/provider/exec/windows_spec.rb +10 -10
  1047. data/spec/unit/provider/exec_spec.rb +2 -2
  1048. data/spec/unit/provider/file/posix_spec.rb +27 -27
  1049. data/spec/unit/provider/file/windows_spec.rb +15 -15
  1050. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  1051. data/spec/unit/provider/group/ldap_spec.rb +11 -11
  1052. data/spec/unit/provider/group/pw_spec.rb +3 -3
  1053. data/spec/unit/provider/group/windows_adsi_spec.rb +48 -62
  1054. data/spec/unit/provider/host/parsed_spec.rb +58 -22
  1055. data/spec/unit/provider/interface/cisco_spec.rb +3 -3
  1056. data/spec/unit/provider/ldap_spec.rb +23 -23
  1057. data/spec/unit/provider/macauthorization_spec.rb +7 -7
  1058. data/spec/unit/provider/mcx/mcxcontent_spec.rb +6 -6
  1059. data/spec/unit/provider/mount/parsed_spec.rb +101 -119
  1060. data/spec/unit/provider/mount_spec.rb +0 -0
  1061. data/spec/unit/provider/naginator_spec.rb +8 -8
  1062. data/spec/unit/provider/nameservice/directoryservice_spec.rb +5 -27
  1063. data/spec/unit/provider/nameservice_spec.rb +26 -26
  1064. data/spec/unit/provider/network_device_spec.rb +11 -11
  1065. data/spec/unit/provider/package/aix_spec.rb +3 -3
  1066. data/spec/unit/provider/package/appdmg_spec.rb +1 -1
  1067. data/spec/unit/provider/package/apt_spec.rb +4 -4
  1068. data/spec/unit/provider/package/aptitude_spec.rb +1 -1
  1069. data/spec/unit/provider/package/aptrpm_spec.rb +3 -3
  1070. data/spec/unit/provider/package/dpkg_spec.rb +0 -0
  1071. data/spec/unit/provider/package/freebsd_spec.rb +1 -1
  1072. data/spec/unit/provider/package/gem_spec.rb +201 -139
  1073. data/spec/unit/provider/package/hpux_spec.rb +3 -3
  1074. data/spec/unit/provider/package/macports_spec.rb +15 -15
  1075. data/spec/unit/provider/package/nim_spec.rb +11 -11
  1076. data/spec/unit/provider/package/openbsd_spec.rb +72 -37
  1077. data/spec/unit/provider/package/opkg_spec.rb +14 -11
  1078. data/spec/unit/provider/package/pacman_spec.rb +185 -86
  1079. data/spec/unit/provider/package/pip_spec.rb +25 -54
  1080. data/spec/unit/provider/package/pkg_spec.rb +145 -71
  1081. data/spec/unit/provider/package/pkgdmg_spec.rb +9 -9
  1082. data/spec/unit/provider/package/pkgin_spec.rb +18 -18
  1083. data/spec/unit/provider/package/pkgutil_spec.rb +19 -19
  1084. data/spec/unit/provider/package/portage_spec.rb +8 -4
  1085. data/spec/unit/provider/package/puppet_gem_spec.rb +67 -0
  1086. data/spec/unit/provider/package/rpm_spec.rb +103 -9
  1087. data/spec/unit/provider/package/sun_spec.rb +14 -14
  1088. data/spec/unit/provider/package/up2date_spec.rb +1 -1
  1089. data/spec/unit/provider/package/{urpmi.rb → urpmi_spec.rb} +3 -3
  1090. data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -13
  1091. data/spec/unit/provider/package/windows/msi_package_spec.rb +16 -16
  1092. data/spec/unit/provider/package/windows/package_spec.rb +14 -14
  1093. data/spec/unit/provider/package/windows_spec.rb +26 -26
  1094. data/spec/unit/provider/package/yum_spec.rb +292 -98
  1095. data/spec/unit/provider/package/zypper_spec.rb +20 -31
  1096. data/spec/unit/provider/parsedfile_spec.rb +9 -9
  1097. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +192 -434
  1098. data/spec/unit/provider/selboolean_spec.rb +2 -2
  1099. data/spec/unit/provider/selmodule_spec.rb +8 -8
  1100. data/spec/unit/provider/service/base_spec.rb +27 -38
  1101. data/spec/unit/provider/service/daemontools_spec.rb +11 -11
  1102. data/spec/unit/provider/service/debian_spec.rb +8 -8
  1103. data/spec/unit/provider/service/freebsd_spec.rb +7 -8
  1104. data/spec/unit/provider/service/gentoo_spec.rb +12 -13
  1105. data/spec/unit/provider/service/init_spec.rb +25 -38
  1106. data/spec/unit/provider/service/launchd_spec.rb +19 -125
  1107. data/spec/unit/provider/service/openbsd_spec.rb +90 -144
  1108. data/spec/unit/provider/service/openrc_spec.rb +14 -14
  1109. data/spec/unit/provider/service/openwrt_spec.rb +9 -9
  1110. data/spec/unit/provider/service/redhat_spec.rb +14 -15
  1111. data/spec/unit/provider/service/runit_spec.rb +11 -11
  1112. data/spec/unit/provider/service/smf_spec.rb +19 -19
  1113. data/spec/unit/provider/service/src_spec.rb +9 -9
  1114. data/spec/unit/provider/service/systemd_spec.rb +33 -15
  1115. data/spec/unit/provider/service/upstart_spec.rb +59 -59
  1116. data/spec/unit/provider/service/windows_spec.rb +6 -6
  1117. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +18 -18
  1118. data/spec/unit/provider/sshkey/parsed_spec.rb +11 -11
  1119. data/spec/unit/provider/user/aix_spec.rb +19 -19
  1120. data/spec/unit/provider/user/directoryservice_spec.rb +52 -96
  1121. data/spec/unit/provider/user/hpux_spec.rb +24 -3
  1122. data/spec/unit/provider/user/ldap_spec.rb +12 -12
  1123. data/spec/unit/provider/user/openbsd_spec.rb +77 -0
  1124. data/spec/unit/provider/user/pw_spec.rb +5 -5
  1125. data/spec/unit/provider/user/user_role_add_spec.rb +20 -20
  1126. data/spec/unit/provider/user/useradd_spec.rb +48 -32
  1127. data/spec/unit/provider/user/windows_adsi_spec.rb +9 -31
  1128. data/spec/unit/provider/vlan/cisco_spec.rb +3 -3
  1129. data/spec/unit/provider/yumrepo/inifile_spec.rb +3 -3
  1130. data/spec/unit/provider/zfs/zfs_spec.rb +11 -11
  1131. data/spec/unit/provider/zone/solaris_spec.rb +22 -55
  1132. data/spec/unit/provider/zpool/zpool_spec.rb +22 -22
  1133. data/spec/unit/provider_spec.rb +110 -102
  1134. data/spec/unit/puppet_spec.rb +15 -8
  1135. data/spec/unit/relationship_spec.rb +37 -41
  1136. data/spec/unit/reports/http_spec.rb +0 -0
  1137. data/spec/unit/reports/store_spec.rb +3 -3
  1138. data/spec/unit/reports_spec.rb +5 -5
  1139. data/spec/unit/resource/catalog_spec.rb +93 -111
  1140. data/spec/unit/resource/status_spec.rb +49 -75
  1141. data/spec/unit/resource/type_collection_helper_spec.rb +1 -1
  1142. data/spec/unit/resource/type_collection_spec.rb +59 -164
  1143. data/spec/unit/resource/type_spec.rb +115 -120
  1144. data/spec/unit/resource_spec.rb +176 -159
  1145. data/spec/unit/scheduler/job_spec.rb +12 -12
  1146. data/spec/unit/scheduler/scheduler_spec.rb +8 -8
  1147. data/spec/unit/scheduler/splay_job_spec.rb +4 -4
  1148. data/spec/unit/semver_spec.rb +66 -64
  1149. data/spec/unit/settings/autosign_setting_spec.rb +1 -0
  1150. data/spec/unit/settings/config_file_spec.rb +13 -40
  1151. data/spec/unit/settings/directory_setting_spec.rb +1 -1
  1152. data/spec/unit/settings/duration_setting_spec.rb +9 -5
  1153. data/spec/unit/settings/environment_conf_spec.rb +0 -11
  1154. data/spec/unit/settings/file_setting_spec.rb +38 -69
  1155. data/spec/unit/settings/ini_file_spec.rb +2 -2
  1156. data/spec/unit/settings/path_setting_spec.rb +5 -5
  1157. data/spec/unit/settings/priority_setting_spec.rb +7 -7
  1158. data/spec/unit/settings/string_setting_spec.rb +7 -7
  1159. data/spec/unit/settings/terminus_setting_spec.rb +4 -4
  1160. data/spec/unit/settings/value_translator_spec.rb +22 -22
  1161. data/spec/unit/settings_spec.rb +189 -338
  1162. data/spec/unit/ssl/base_spec.rb +5 -5
  1163. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +2 -2
  1164. data/spec/unit/ssl/certificate_authority/interface_spec.rb +40 -13
  1165. data/spec/unit/ssl/certificate_authority_spec.rb +23 -23
  1166. data/spec/unit/ssl/certificate_factory_spec.rb +39 -26
  1167. data/spec/unit/ssl/certificate_request_attributes_spec.rb +2 -2
  1168. data/spec/unit/ssl/certificate_request_spec.rb +52 -40
  1169. data/spec/unit/ssl/certificate_revocation_list_spec.rb +10 -10
  1170. data/spec/unit/ssl/certificate_spec.rb +35 -38
  1171. data/spec/unit/ssl/configuration_spec.rb +12 -14
  1172. data/spec/unit/ssl/digest_spec.rb +5 -5
  1173. data/spec/unit/ssl/host_spec.rb +91 -91
  1174. data/spec/unit/ssl/inventory_spec.rb +11 -34
  1175. data/spec/unit/ssl/key_spec.rb +23 -23
  1176. data/spec/unit/ssl/oids_spec.rb +28 -15
  1177. data/spec/unit/ssl/validator_spec.rb +16 -17
  1178. data/spec/unit/status_spec.rb +6 -12
  1179. data/spec/unit/transaction/additional_resource_generator_spec.rb +2 -2
  1180. data/spec/unit/transaction/event_manager_spec.rb +38 -8
  1181. data/spec/unit/transaction/event_spec.rb +29 -29
  1182. data/spec/unit/transaction/report_spec.rb +76 -90
  1183. data/spec/unit/transaction/resource_harness_spec.rb +42 -42
  1184. data/spec/unit/transaction_spec.rb +66 -59
  1185. data/spec/unit/type/augeas_spec.rb +20 -20
  1186. data/spec/unit/type/component_spec.rb +10 -10
  1187. data/spec/unit/type/computer_spec.rb +10 -10
  1188. data/spec/unit/type/cron_spec.rb +21 -21
  1189. data/spec/unit/type/exec_spec.rb +65 -73
  1190. data/spec/unit/type/file/checksum_spec.rb +8 -8
  1191. data/spec/unit/type/file/content_spec.rb +144 -85
  1192. data/spec/unit/type/file/ctime_spec.rb +4 -4
  1193. data/spec/unit/type/file/ensure_spec.rb +11 -11
  1194. data/spec/unit/type/file/group_spec.rb +5 -5
  1195. data/spec/unit/type/file/mode_spec.rb +30 -28
  1196. data/spec/unit/type/file/mtime_spec.rb +4 -4
  1197. data/spec/unit/type/file/owner_spec.rb +5 -5
  1198. data/spec/unit/type/file/selinux_spec.rb +8 -8
  1199. data/spec/unit/type/file/source_spec.rb +118 -135
  1200. data/spec/unit/type/file/type_spec.rb +2 -2
  1201. data/spec/unit/type/file_spec.rb +161 -160
  1202. data/spec/unit/type/filebucket_spec.rb +8 -8
  1203. data/spec/unit/type/group_spec.rb +12 -12
  1204. data/spec/unit/type/host_spec.rb +41 -25
  1205. data/spec/unit/type/interface_spec.rb +6 -6
  1206. data/spec/unit/type/k5login_spec.rb +18 -18
  1207. data/spec/unit/type/macauthorization_spec.rb +17 -17
  1208. data/spec/unit/type/mailalias_spec.rb +34 -6
  1209. data/spec/unit/type/maillist_spec.rb +2 -2
  1210. data/spec/unit/type/mcx_spec.rb +13 -13
  1211. data/spec/unit/type/mount_spec.rb +40 -40
  1212. data/spec/unit/type/nagios_spec.rb +23 -23
  1213. data/spec/unit/type/noop_metaparam_spec.rb +5 -5
  1214. data/spec/unit/type/package/package_settings_spec.rb +9 -9
  1215. data/spec/unit/type/package_spec.rb +87 -18
  1216. data/spec/unit/type/resources_spec.rb +46 -46
  1217. data/spec/unit/type/schedule_spec.rb +83 -83
  1218. data/spec/unit/type/scheduled_task_spec.rb +15 -15
  1219. data/spec/unit/type/selboolean_spec.rb +2 -2
  1220. data/spec/unit/type/selmodule_spec.rb +2 -2
  1221. data/spec/unit/type/service_spec.rb +24 -24
  1222. data/spec/unit/type/ssh_authorized_key_spec.rb +2 -2
  1223. data/spec/unit/type/sshkey_spec.rb +0 -0
  1224. data/spec/unit/type/stage_spec.rb +1 -1
  1225. data/spec/unit/type/tidy_spec.rb +58 -39
  1226. data/spec/unit/type/user_spec.rb +56 -56
  1227. data/spec/unit/type/vlan_spec.rb +6 -6
  1228. data/spec/unit/type/whit_spec.rb +1 -1
  1229. data/spec/unit/type/yumrepo_spec.rb +15 -0
  1230. data/spec/unit/type/zfs_spec.rb +3 -3
  1231. data/spec/unit/type/zone_spec.rb +19 -19
  1232. data/spec/unit/type/zpool_spec.rb +15 -15
  1233. data/spec/unit/type_spec.rb +236 -163
  1234. data/spec/unit/util/autoload_spec.rb +31 -25
  1235. data/spec/unit/util/backups_spec.rb +4 -4
  1236. data/spec/unit/util/checksums_spec.rb +55 -27
  1237. data/spec/unit/util/colors_spec.rb +6 -50
  1238. data/spec/unit/util/command_line_spec.rb +13 -41
  1239. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +2 -2
  1240. data/spec/unit/util/constant_inflector_spec.rb +12 -12
  1241. data/spec/unit/util/diff_spec.rb +4 -4
  1242. data/spec/unit/util/errors_spec.rb +5 -5
  1243. data/spec/unit/util/execution_spec.rb +74 -29
  1244. data/spec/unit/util/execution_stub_spec.rb +10 -10
  1245. data/spec/unit/util/feature_spec.rb +15 -19
  1246. data/spec/unit/util/filetype_spec.rb +9 -9
  1247. data/spec/unit/util/http_proxy_spec.rb +18 -18
  1248. data/spec/unit/util/inifile_spec.rb +2 -2
  1249. data/spec/unit/util/json_lockfile_spec.rb +1 -1
  1250. data/spec/unit/util/ldap/connection_spec.rb +6 -6
  1251. data/spec/unit/util/ldap/generator_spec.rb +8 -8
  1252. data/spec/unit/util/ldap/manager_spec.rb +40 -40
  1253. data/spec/unit/util/lockfile_spec.rb +13 -13
  1254. data/spec/unit/util/log/destinations_spec.rb +52 -49
  1255. data/spec/unit/util/log_spec.rb +48 -173
  1256. data/spec/unit/util/logging_spec.rb +120 -3
  1257. data/spec/unit/util/metric_spec.rb +18 -33
  1258. data/spec/unit/util/monkey_patches_spec.rb +18 -139
  1259. data/spec/unit/util/nagios_maker_spec.rb +2 -2
  1260. data/spec/unit/util/network_device/cisco/device_spec.rb +23 -23
  1261. data/spec/unit/util/network_device/cisco/facts_spec.rb +3 -3
  1262. data/spec/unit/util/network_device/cisco/interface_spec.rb +0 -0
  1263. data/spec/unit/util/network_device/config_spec.rb +10 -10
  1264. data/spec/unit/util/network_device/ipcalc_spec.rb +10 -10
  1265. data/spec/unit/util/network_device/transport/base_spec.rb +2 -2
  1266. data/spec/unit/util/network_device/transport/ssh_spec.rb +10 -10
  1267. data/spec/unit/util/network_device/transport/telnet_spec.rb +3 -3
  1268. data/spec/unit/util/network_device_spec.rb +2 -2
  1269. data/spec/unit/util/package_spec.rb +2 -2
  1270. data/spec/unit/util/pidlock_spec.rb +38 -38
  1271. data/spec/unit/util/posix_spec.rb +25 -25
  1272. data/spec/unit/util/profiler/aggregate_spec.rb +14 -18
  1273. data/spec/unit/util/profiler/around_profiler_spec.rb +6 -6
  1274. data/spec/unit/util/profiler/logging_spec.rb +8 -8
  1275. data/spec/unit/util/profiler/object_counts_spec.rb +3 -5
  1276. data/spec/unit/util/profiler/wall_clock_spec.rb +1 -1
  1277. data/spec/unit/util/profiler_spec.rb +6 -14
  1278. data/spec/unit/util/rdoc_spec.rb +0 -85
  1279. data/spec/unit/util/reference_spec.rb +1 -1
  1280. data/spec/unit/util/resource_template_spec.rb +2 -2
  1281. data/spec/unit/util/{retryaction_spec.rb → retry_action_spec.rb} +25 -2
  1282. data/spec/unit/util/rubygems_spec.rb +8 -8
  1283. data/spec/unit/util/run_mode_spec.rb +164 -22
  1284. data/spec/unit/util/selinux_spec.rb +61 -39
  1285. data/spec/unit/util/ssl_spec.rb +13 -13
  1286. data/spec/unit/util/storage_spec.rb +27 -27
  1287. data/spec/unit/util/suidmanager_spec.rb +56 -67
  1288. data/spec/unit/util/symbolic_file_mode_spec.rb +15 -16
  1289. data/spec/unit/util/tag_set_spec.rb +5 -5
  1290. data/spec/unit/util/tagging_spec.rb +0 -0
  1291. data/spec/unit/util/terminal_spec.rb +5 -5
  1292. data/spec/unit/util/user_attr_spec.rb +6 -6
  1293. data/spec/unit/util/warnings_spec.rb +9 -1
  1294. data/spec/unit/util/watcher_spec.rb +1 -1
  1295. data/spec/unit/util/windows/access_control_entry_spec.rb +9 -9
  1296. data/spec/unit/util/windows/access_control_list_spec.rb +21 -21
  1297. data/spec/unit/util/windows/adsi_spec.rb +71 -209
  1298. data/spec/unit/util/windows/api_types_spec.rb +3 -3
  1299. data/spec/unit/util/windows/registry_spec.rb +72 -46
  1300. data/spec/unit/util/windows/root_certs_spec.rb +1 -1
  1301. data/spec/unit/util/windows/security_descriptor_spec.rb +18 -18
  1302. data/spec/unit/util/windows/sid_spec.rb +40 -20
  1303. data/spec/unit/util/windows/string_spec.rb +4 -4
  1304. data/spec/unit/util/yaml_spec.rb +1 -1
  1305. data/spec/unit/util_spec.rb +73 -124
  1306. data/spec/unit/version_spec.rb +4 -4
  1307. data/spec/watchr.rb +1 -5
  1308. data/tasks/benchmark.rake +1 -6
  1309. data/tasks/ci.rake +1 -1
  1310. data/tasks/manpages.rake +0 -9
  1311. data/tasks/parallel.rake +4 -7
  1312. data/tasks/parser.rake +0 -5
  1313. metadata +3163 -3413
  1314. data/conf/tagmail.conf +0 -16
  1315. data/ext/debian/puppet.conf +0 -14
  1316. data/ext/debian/puppetmaster-common.puppetqd.default +0 -27
  1317. data/ext/debian/puppetmaster-common.puppetqd.init +0 -84
  1318. data/ext/gentoo/puppet/puppet.conf +0 -25
  1319. data/ext/ips/puppet.conf +0 -29
  1320. data/ext/nagios/naggen +0 -309
  1321. data/ext/puppet-load.rb +0 -393
  1322. data/ext/redhat/puppet.conf +0 -25
  1323. data/ext/redhat/queue.init +0 -105
  1324. data/lib/hiera/backend/puppet_backend.rb +0 -103
  1325. data/lib/puppet/application/instrumentation_data.rb +0 -7
  1326. data/lib/puppet/application/instrumentation_listener.rb +0 -7
  1327. data/lib/puppet/application/instrumentation_probe.rb +0 -7
  1328. data/lib/puppet/application/kick.rb +0 -351
  1329. data/lib/puppet/application/queue.rb +0 -161
  1330. data/lib/puppet/application/secret_agent.rb +0 -9
  1331. data/lib/puppet/dsl/resource_api.rb +0 -120
  1332. data/lib/puppet/dsl/resource_type_api.rb +0 -34
  1333. data/lib/puppet/dsl.rb +0 -7
  1334. data/lib/puppet/face/instrumentation_data.rb +0 -30
  1335. data/lib/puppet/face/instrumentation_listener.rb +0 -98
  1336. data/lib/puppet/face/instrumentation_probe.rb +0 -79
  1337. data/lib/puppet/face/secret_agent.rb +0 -54
  1338. data/lib/puppet/feature/pson.rb +0 -4
  1339. data/lib/puppet/feature/rails.rb +0 -47
  1340. data/lib/puppet/feature/rdoc1.rb +0 -16
  1341. data/lib/puppet/feature/rubygems.rb +0 -7
  1342. data/lib/puppet/feature/stomp.rb +0 -5
  1343. data/lib/puppet/file_collection/lookup.rb +0 -10
  1344. data/lib/puppet/file_collection.rb +0 -19
  1345. data/lib/puppet/file_system/file18.rb +0 -5
  1346. data/lib/puppet/functions/defined.rb +0 -130
  1347. data/lib/puppet/indirector/active_record.rb +0 -29
  1348. data/lib/puppet/indirector/catalog/active_record.rb +0 -39
  1349. data/lib/puppet/indirector/catalog/queue.rb +0 -9
  1350. data/lib/puppet/indirector/couch.rb +0 -78
  1351. data/lib/puppet/indirector/facts/active_record.rb +0 -44
  1352. data/lib/puppet/indirector/facts/couch.rb +0 -36
  1353. data/lib/puppet/indirector/facts/inventory_active_record.rb +0 -110
  1354. data/lib/puppet/indirector/facts/inventory_service.rb +0 -20
  1355. data/lib/puppet/indirector/facts/rest.rb +0 -8
  1356. data/lib/puppet/indirector/instrumentation_data/local.rb +0 -22
  1357. data/lib/puppet/indirector/instrumentation_data/rest.rb +0 -8
  1358. data/lib/puppet/indirector/instrumentation_data.rb +0 -3
  1359. data/lib/puppet/indirector/instrumentation_listener/local.rb +0 -26
  1360. data/lib/puppet/indirector/instrumentation_listener/rest.rb +0 -8
  1361. data/lib/puppet/indirector/instrumentation_listener.rb +0 -3
  1362. data/lib/puppet/indirector/instrumentation_probe/local.rb +0 -27
  1363. data/lib/puppet/indirector/instrumentation_probe/rest.rb +0 -8
  1364. data/lib/puppet/indirector/instrumentation_probe.rb +0 -3
  1365. data/lib/puppet/indirector/node/active_record.rb +0 -22
  1366. data/lib/puppet/indirector/queue.rb +0 -80
  1367. data/lib/puppet/indirector/resource/active_record.rb +0 -104
  1368. data/lib/puppet/indirector/resource/rest.rb +0 -17
  1369. data/lib/puppet/indirector/run/local.rb +0 -15
  1370. data/lib/puppet/indirector/run/rest.rb +0 -12
  1371. data/lib/puppet/module_tool/modulefile.rb +0 -78
  1372. data/lib/puppet/network/authentication.rb +0 -35
  1373. data/lib/puppet/network/http/api/v2/authorization.rb +0 -15
  1374. data/lib/puppet/network/http/api/v2.rb +0 -32
  1375. data/lib/puppet/parser/ast/arithmetic_operator.rb +0 -91
  1376. data/lib/puppet/parser/ast/astarray.rb +0 -50
  1377. data/lib/puppet/parser/ast/asthash.rb +0 -37
  1378. data/lib/puppet/parser/ast/boolean_operator.rb +0 -46
  1379. data/lib/puppet/parser/ast/caseopt.rb +0 -52
  1380. data/lib/puppet/parser/ast/casestatement.rb +0 -41
  1381. data/lib/puppet/parser/ast/collection.rb +0 -53
  1382. data/lib/puppet/parser/ast/collexpr.rb +0 -109
  1383. data/lib/puppet/parser/ast/comparison_operator.rb +0 -38
  1384. data/lib/puppet/parser/ast/definition.rb +0 -17
  1385. data/lib/puppet/parser/ast/else.rb +0 -22
  1386. data/lib/puppet/parser/ast/function.rb +0 -59
  1387. data/lib/puppet/parser/ast/ifstatement.rb +0 -34
  1388. data/lib/puppet/parser/ast/in_operator.rb +0 -24
  1389. data/lib/puppet/parser/ast/lambda.rb +0 -135
  1390. data/lib/puppet/parser/ast/match_operator.rb +0 -28
  1391. data/lib/puppet/parser/ast/method_call.rb +0 -77
  1392. data/lib/puppet/parser/ast/minus.rb +0 -23
  1393. data/lib/puppet/parser/ast/nop.rb +0 -11
  1394. data/lib/puppet/parser/ast/not.rb +0 -19
  1395. data/lib/puppet/parser/ast/relationship.rb +0 -47
  1396. data/lib/puppet/parser/ast/resource_defaults.rb +0 -24
  1397. data/lib/puppet/parser/ast/resource_override.rb +0 -62
  1398. data/lib/puppet/parser/ast/resource_reference.rb +0 -28
  1399. data/lib/puppet/parser/ast/selector.rb +0 -50
  1400. data/lib/puppet/parser/ast/vardef.rb +0 -38
  1401. data/lib/puppet/parser/code_merger.rb +0 -13
  1402. data/lib/puppet/parser/collector.rb +0 -177
  1403. data/lib/puppet/parser/functions/extlookup.rb +0 -153
  1404. data/lib/puppet/parser/functions/search.rb +0 -12
  1405. data/lib/puppet/parser/grammar.ra +0 -806
  1406. data/lib/puppet/parser/lexer.rb +0 -608
  1407. data/lib/puppet/parser/makefile +0 -8
  1408. data/lib/puppet/parser/methods.rb +0 -69
  1409. data/lib/puppet/parser/parser.rb +0 -2559
  1410. data/lib/puppet/parser/parser_support.rb +0 -195
  1411. data/lib/puppet/pops/binder/lookup.rb +0 -216
  1412. data/lib/puppet/pops/migration/migration_checker.rb +0 -45
  1413. data/lib/puppet/pops/model/ast_tree_dumper.rb +0 -386
  1414. data/lib/puppet/provider/package/msi.rb +0 -125
  1415. data/lib/puppet/provider/package/yumhelper.py +0 -159
  1416. data/lib/puppet/rails/benchmark.rb +0 -63
  1417. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +0 -13
  1418. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +0 -13
  1419. data/lib/puppet/rails/database/003_add_environment_to_host.rb +0 -9
  1420. data/lib/puppet/rails/database/004_add_inventory_service_tables.rb +0 -36
  1421. data/lib/puppet/rails/database/schema.rb +0 -136
  1422. data/lib/puppet/rails/fact_name.rb +0 -7
  1423. data/lib/puppet/rails/fact_value.rb +0 -10
  1424. data/lib/puppet/rails/host.rb +0 -258
  1425. data/lib/puppet/rails/inventory_fact.rb +0 -5
  1426. data/lib/puppet/rails/inventory_node.rb +0 -43
  1427. data/lib/puppet/rails/param_name.rb +0 -25
  1428. data/lib/puppet/rails/param_value.rb +0 -74
  1429. data/lib/puppet/rails/puppet_tag.rb +0 -10
  1430. data/lib/puppet/rails/resource.rb +0 -235
  1431. data/lib/puppet/rails/resource_tag.rb +0 -26
  1432. data/lib/puppet/rails/source_file.rb +0 -8
  1433. data/lib/puppet/rails.rb +0 -139
  1434. data/lib/puppet/reports/rrdgraph.rb +0 -128
  1435. data/lib/puppet/reports/tagmail.rb +0 -179
  1436. data/lib/puppet/run.rb +0 -109
  1437. data/lib/puppet/util/cacher.rb +0 -74
  1438. data/lib/puppet/util/inline_docs.rb +0 -26
  1439. data/lib/puppet/util/instrumentation/data.rb +0 -46
  1440. data/lib/puppet/util/instrumentation/indirection_probe.rb +0 -41
  1441. data/lib/puppet/util/instrumentation/instrumentable.rb +0 -136
  1442. data/lib/puppet/util/instrumentation/listener.rb +0 -72
  1443. data/lib/puppet/util/instrumentation/listeners/log.rb +0 -23
  1444. data/lib/puppet/util/instrumentation/listeners/performance.rb +0 -24
  1445. data/lib/puppet/util/instrumentation.rb +0 -152
  1446. data/lib/puppet/util/log/rate_limited_logger.rb +0 -40
  1447. data/lib/puppet/util/monkey_patches/lines.rb +0 -13
  1448. data/lib/puppet/util/plugins.rb +0 -82
  1449. data/lib/puppet/util/pson.rb +0 -13
  1450. data/lib/puppet/util/queue/stomp.rb +0 -60
  1451. data/lib/puppet/util/queue.rb +0 -96
  1452. data/lib/puppet/util/rails/cache_accumulator.rb +0 -65
  1453. data/lib/puppet/util/rails/collection_merger.rb +0 -17
  1454. data/lib/puppet/util/rails/reference_serializer.rb +0 -32
  1455. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc1.rb +0 -19
  1456. data/lib/puppet/util/retryaction.rb +0 -47
  1457. data/lib/puppet/util/zaml.rb +0 -419
  1458. data/lib/puppet/vendor/load_safe_yaml.rb +0 -1
  1459. data/lib/puppet/vendor/safe_yaml/CHANGES.md +0 -104
  1460. data/lib/puppet/vendor/safe_yaml/Gemfile +0 -11
  1461. data/lib/puppet/vendor/safe_yaml/PUPPET_README.md +0 -6
  1462. data/lib/puppet/vendor/safe_yaml/README.md +0 -179
  1463. data/lib/puppet/vendor/safe_yaml/Rakefile +0 -6
  1464. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/deep.rb +0 -34
  1465. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/date.rb +0 -27
  1466. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/hexadecimal.rb +0 -12
  1467. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/sexagesimal.rb +0 -26
  1468. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb +0 -92
  1469. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_resolver.rb +0 -52
  1470. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/resolver.rb +0 -94
  1471. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/safe_to_ruby_visitor.rb +0 -17
  1472. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_hack.rb +0 -36
  1473. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb +0 -43
  1474. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_resolver.rb +0 -38
  1475. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_boolean.rb +0 -21
  1476. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_date.rb +0 -11
  1477. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_float.rb +0 -33
  1478. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_integer.rb +0 -25
  1479. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_nil.rb +0 -18
  1480. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_symbol.rb +0 -13
  1481. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/transformation_map.rb +0 -47
  1482. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform.rb +0 -41
  1483. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/version.rb +0 -3
  1484. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb +0 -253
  1485. data/lib/puppet/vendor/safe_yaml/run_specs_all_ruby_versions.sh +0 -21
  1486. data/lib/puppet/vendor/safe_yaml/safe_yaml.gemspec +0 -18
  1487. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.2.yaml +0 -2
  1488. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.3.yaml +0 -2
  1489. data/lib/puppet/vendor/safe_yaml/spec/psych_resolver_spec.rb +0 -10
  1490. data/lib/puppet/vendor/safe_yaml/spec/resolver_specs.rb +0 -250
  1491. data/lib/puppet/vendor/safe_yaml/spec/safe_yaml_spec.rb +0 -702
  1492. data/lib/puppet/vendor/safe_yaml/spec/spec_helper.rb +0 -18
  1493. data/lib/puppet/vendor/safe_yaml/spec/support/exploitable_back_door.rb +0 -29
  1494. data/lib/puppet/vendor/safe_yaml/spec/syck_resolver_spec.rb +0 -10
  1495. data/lib/puppet/vendor/safe_yaml/spec/transform/base64_spec.rb +0 -11
  1496. data/lib/puppet/vendor/safe_yaml/spec/transform/to_date_spec.rb +0 -34
  1497. data/lib/puppet/vendor/safe_yaml/spec/transform/to_float_spec.rb +0 -42
  1498. data/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb +0 -59
  1499. data/lib/puppet/vendor/safe_yaml/spec/transform/to_symbol_spec.rb +0 -49
  1500. data/lib/puppet/vendor/safe_yaml_patches.rb +0 -9
  1501. data/lib/puppetx.rb +0 -89
  1502. data/man/man8/puppet-instrumentation_data.8 +0 -141
  1503. data/man/man8/puppet-instrumentation_listener.8 +0 -218
  1504. data/man/man8/puppet-instrumentation_probe.8 +0 -203
  1505. data/man/man8/puppet-kick.8 +0 -131
  1506. data/man/man8/puppet-queue.8 +0 -55
  1507. data/man/man8/puppet-secret_agent.8 +0 -70
  1508. data/spec/fixtures/module.tar.gz +0 -0
  1509. data/spec/fixtures/unit/provider/package/pkg/publisher +0 -2
  1510. data/spec/fixtures/unit/provider/package/pkg/simple +0 -2
  1511. data/spec/fixtures/yaml/report0.25.x.yaml +0 -64
  1512. data/spec/integration/indirector/catalog/queue_spec.rb +0 -55
  1513. data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
  1514. data/spec/integration/parser/dynamic_scoping_spec.rb +0 -131
  1515. data/spec/integration/parser/future_compiler_spec.rb +0 -822
  1516. data/spec/integration/parser/parser_spec.rb +0 -207
  1517. data/spec/integration/parser/ruby_manifest_spec.rb +0 -119
  1518. data/spec/integration/type/sshkey_spec.rb +0 -22
  1519. data/spec/integration/util/feature_spec.rb +0 -53
  1520. data/spec/lib/puppet_spec/database.rb +0 -29
  1521. data/spec/monkey_patches/alias_should_to_must.rb +0 -21
  1522. data/spec/shared_contexts/platform.rb +0 -52
  1523. data/spec/unit/application/kick_spec.rb +0 -296
  1524. data/spec/unit/application/queue_spec.rb +0 -168
  1525. data/spec/unit/application/secret_agent_spec.rb +0 -34
  1526. data/spec/unit/dsl/resource_api_spec.rb +0 -180
  1527. data/spec/unit/dsl/resource_type_api_spec.rb +0 -53
  1528. data/spec/unit/face/instrumentation_data_spec.rb +0 -7
  1529. data/spec/unit/face/instrumentation_listener_spec.rb +0 -38
  1530. data/spec/unit/face/instrumentation_probe_spec.rb +0 -21
  1531. data/spec/unit/face/secret_agent_spec.rb +0 -27
  1532. data/spec/unit/functions/defined_spec.rb +0 -291
  1533. data/spec/unit/hiera/backend/puppet_backend_spec.rb +0 -148
  1534. data/spec/unit/indirector/active_record_spec.rb +0 -75
  1535. data/spec/unit/indirector/catalog/active_record_spec.rb +0 -107
  1536. data/spec/unit/indirector/catalog/queue_spec.rb +0 -19
  1537. data/spec/unit/indirector/facts/active_record_spec.rb +0 -113
  1538. data/spec/unit/indirector/facts/couch_spec.rb +0 -102
  1539. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +0 -175
  1540. data/spec/unit/indirector/facts/inventory_service_spec.rb +0 -21
  1541. data/spec/unit/indirector/facts/rest_spec.rb +0 -10
  1542. data/spec/unit/indirector/instrumentation_data/local_spec.rb +0 -52
  1543. data/spec/unit/indirector/instrumentation_data/rest_spec.rb +0 -11
  1544. data/spec/unit/indirector/instrumentation_listener/local_spec.rb +0 -65
  1545. data/spec/unit/indirector/instrumentation_listener/rest_spec.rb +0 -11
  1546. data/spec/unit/indirector/instrumentation_probe/local_spec.rb +0 -65
  1547. data/spec/unit/indirector/instrumentation_probe/rest_spec.rb +0 -11
  1548. data/spec/unit/indirector/node/active_record_spec.rb +0 -48
  1549. data/spec/unit/indirector/queue_spec.rb +0 -115
  1550. data/spec/unit/indirector/resource/active_record_spec.rb +0 -166
  1551. data/spec/unit/indirector/resource/rest_spec.rb +0 -10
  1552. data/spec/unit/indirector/run/local_spec.rb +0 -21
  1553. data/spec/unit/indirector/run/rest_spec.rb +0 -10
  1554. data/spec/unit/network/authentication_spec.rb +0 -104
  1555. data/spec/unit/network/http/api/v2_spec.rb +0 -14
  1556. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +0 -160
  1557. data/spec/unit/parser/ast/astarray_spec.rb +0 -56
  1558. data/spec/unit/parser/ast/asthash_spec.rb +0 -98
  1559. data/spec/unit/parser/ast/boolean_operator_spec.rb +0 -54
  1560. data/spec/unit/parser/ast/casestatement_spec.rb +0 -168
  1561. data/spec/unit/parser/ast/collection_spec.rb +0 -70
  1562. data/spec/unit/parser/ast/collexpr_spec.rb +0 -120
  1563. data/spec/unit/parser/ast/comparison_operator_spec.rb +0 -118
  1564. data/spec/unit/parser/ast/definition_spec.rb +0 -21
  1565. data/spec/unit/parser/ast/function_spec.rb +0 -92
  1566. data/spec/unit/parser/ast/hostclass_spec.rb +0 -72
  1567. data/spec/unit/parser/ast/ifstatement_spec.rb +0 -77
  1568. data/spec/unit/parser/ast/in_operator_spec.rb +0 -61
  1569. data/spec/unit/parser/ast/match_operator_spec.rb +0 -51
  1570. data/spec/unit/parser/ast/minus_spec.rb +0 -37
  1571. data/spec/unit/parser/ast/node_spec.rb +0 -30
  1572. data/spec/unit/parser/ast/nop_spec.rb +0 -19
  1573. data/spec/unit/parser/ast/not_spec.rb +0 -31
  1574. data/spec/unit/parser/ast/relationship_spec.rb +0 -87
  1575. data/spec/unit/parser/ast/resource_defaults_spec.rb +0 -21
  1576. data/spec/unit/parser/ast/resource_override_spec.rb +0 -50
  1577. data/spec/unit/parser/ast/resource_reference_spec.rb +0 -56
  1578. data/spec/unit/parser/ast/resource_spec.rb +0 -183
  1579. data/spec/unit/parser/ast/resourceparam_spec.rb +0 -51
  1580. data/spec/unit/parser/ast/selector_spec.rb +0 -88
  1581. data/spec/unit/parser/ast/vardef_spec.rb +0 -68
  1582. data/spec/unit/parser/ast_spec.rb +0 -76
  1583. data/spec/unit/parser/collector_spec.rb +0 -438
  1584. data/spec/unit/parser/functions/extlookup_spec.rb +0 -102
  1585. data/spec/unit/parser/functions/search_spec.rb +0 -28
  1586. data/spec/unit/parser/lexer_spec.rb +0 -877
  1587. data/spec/unit/parser/parser_spec.rb +0 -535
  1588. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -19
  1589. data/spec/unit/pops/migration_spec.rb +0 -180
  1590. data/spec/unit/pops/model/ast_transformer_spec.rb +0 -76
  1591. data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +0 -243
  1592. data/spec/unit/pops/transformer/transform_calls_spec.rb +0 -115
  1593. data/spec/unit/pops/transformer/transform_conditionals_spec.rb +0 -123
  1594. data/spec/unit/pops/transformer/transform_containers_spec.rb +0 -190
  1595. data/spec/unit/pops/transformer/transformer_rspec_helper.rb +0 -27
  1596. data/spec/unit/pops/validation_spec.rb +0 -66
  1597. data/spec/unit/provider/package/msi_spec.rb +0 -229
  1598. data/spec/unit/rails/host_spec.rb +0 -162
  1599. data/spec/unit/rails/param_value_spec.rb +0 -46
  1600. data/spec/unit/rails/resource_spec.rb +0 -115
  1601. data/spec/unit/rails_spec.rb +0 -244
  1602. data/spec/unit/reports/rrdgraph_spec.rb +0 -29
  1603. data/spec/unit/reports/tagmail_spec.rb +0 -218
  1604. data/spec/unit/run_spec.rb +0 -175
  1605. data/spec/unit/util/cache_accumulator_spec.rb +0 -74
  1606. data/spec/unit/util/cacher_spec.rb +0 -107
  1607. data/spec/unit/util/inline_docs_spec.rb +0 -31
  1608. data/spec/unit/util/instrumentation/data_spec.rb +0 -46
  1609. data/spec/unit/util/instrumentation/indirection_probe_spec.rb +0 -21
  1610. data/spec/unit/util/instrumentation/instrumentable_spec.rb +0 -186
  1611. data/spec/unit/util/instrumentation/listener_spec.rb +0 -101
  1612. data/spec/unit/util/instrumentation/listeners/log_spec.rb +0 -34
  1613. data/spec/unit/util/instrumentation/listeners/performance_spec.rb +0 -36
  1614. data/spec/unit/util/instrumentation_spec.rb +0 -181
  1615. data/spec/unit/util/log/rate_limited_logger_spec.rb +0 -51
  1616. data/spec/unit/util/monkey_patches/lines_spec.rb +0 -83
  1617. data/spec/unit/util/queue/stomp_spec.rb +0 -137
  1618. data/spec/unit/util/queue_spec.rb +0 -94
  1619. data/spec/unit/util/rdoc/parser_spec.rb +0 -608
  1620. data/spec/unit/util/reference_serializer_spec.rb +0 -51
  1621. data/spec/unit/util/zaml_spec.rb +0 -308
@@ -1,24 +0,0 @@
1
- Puppet::Util::Instrumentation.new_listener(:performance) do
2
-
3
- attr_reader :samples
4
-
5
- def initialize
6
- @samples = {}
7
- end
8
-
9
- def notify(label, event, data)
10
- return if event == :start
11
-
12
- duration = data[:finished] - data[:started]
13
- @samples[label] ||= { :count => 0, :max => 0, :min => nil, :sum => 0, :average => 0 }
14
- @samples[label][:count] += 1
15
- @samples[label][:sum] += duration
16
- @samples[label][:max] = [ @samples[label][:max], duration ].max
17
- @samples[label][:min] = [ @samples[label][:min], duration ].reject { |val| val.nil? }.min
18
- @samples[label][:average] = @samples[label][:sum] / @samples[label][:count]
19
- end
20
-
21
- def data
22
- @samples.dup
23
- end
24
- end
@@ -1,152 +0,0 @@
1
- require 'puppet'
2
- require 'puppet/util/classgen'
3
- require 'puppet/util/instance_loader'
4
-
5
- class Puppet::Util::Instrumentation
6
- extend Puppet::Util::ClassGen
7
- extend Puppet::Util::InstanceLoader
8
-
9
- # we're using a ruby lazy autoloader to prevent a loop when requiring listeners
10
- # since this class sets up an indirection which is also used in Puppet::Indirector::Indirection
11
- # which is used to setup indirections...
12
- autoload :Listener, 'puppet/util/instrumentation/listener'
13
- autoload :Data, 'puppet/util/instrumentation/data'
14
-
15
- # Set up autoloading and retrieving of instrumentation listeners.
16
- instance_load :listener, 'puppet/util/instrumentation/listeners'
17
-
18
- class << self
19
- attr_accessor :listeners, :listeners_of
20
- end
21
-
22
- # instrumentation layer
23
-
24
- # Triggers an instrumentation
25
- #
26
- # Call this method around the instrumentation point
27
- # Puppet::Util::Instrumentation.instrument(:my_long_computation) do
28
- # ... a long computation
29
- # end
30
- #
31
- # This will send an event to all the listeners of "my_long_computation".
32
- # Note: this method uses ruby yield directive to call the instrumented code.
33
- # It is usually way slower than calling start and stop directly around the instrumented code.
34
- # For high traffic code path, it is thus advisable to not use this method.
35
- def self.instrument(label, data = {})
36
- id = self.start(label, data)
37
- yield
38
- ensure
39
- self.stop(label, id, data)
40
- end
41
-
42
- # Triggers a "start" instrumentation event
43
- #
44
- # Important note:
45
- # For proper use, the data hash instance used for start should also
46
- # be used when calling stop. The idea is to use the current scope
47
- # where start is called to retain a reference to 'data' so that it is possible
48
- # to send it back to stop.
49
- # This way listeners can match start and stop events more easily.
50
- def self.start(label, data)
51
- data[:started] = Time.now
52
- publish(label, :start, data)
53
- data[:id] = next_id
54
- end
55
-
56
- # Triggers a "stop" instrumentation event
57
- def self.stop(label, id, data)
58
- data[:finished] = Time.now
59
- publish(label, :stop, data)
60
- end
61
-
62
- def self.publish(label, event, data)
63
- each_listener(label) do |k,l|
64
- l.notify(label, event, data)
65
- end
66
- end
67
-
68
- def self.listeners
69
- @listeners.values
70
- end
71
-
72
- def self.each_listener(label)
73
- @listeners_of[label] ||= @listeners.select do |k,l|
74
- l.listen_to?(label)
75
- end.each do |l|
76
- yield l
77
- end
78
- end
79
-
80
- # Adds a new listener
81
- #
82
- # Usage:
83
- # Puppet::Util::Instrumentation.new_listener(:my_instrumentation, pattern) do
84
- #
85
- # def notify(label, data)
86
- # ... do something for data...
87
- # end
88
- # end
89
- #
90
- # It is possible to use a "pattern". The listener will be notified only
91
- # if the pattern match the label of the event.
92
- # The pattern can be a symbol, a string or a regex.
93
- # If no pattern is provided, then the listener will be called for every events
94
- def self.new_listener(name, options = {}, &block)
95
- Puppet.debug "new listener called #{name}"
96
- name = name.intern
97
- listener = genclass(name, :hash => instance_hash(:listener), :block => block)
98
- listener.send(:define_method, :name) do
99
- name
100
- end
101
- subscribe(listener.new, options[:label_pattern], options[:event])
102
- end
103
-
104
- def self.subscribe(listener, label_pattern, event)
105
- raise "Listener #{listener.name} is already subscribed" if @listeners.include?(listener.name)
106
- Puppet.debug "registering instrumentation listener #{listener.name}"
107
- @listeners[listener.name] = Listener.new(listener, label_pattern, event)
108
- listener.subscribed if listener.respond_to?(:subscribed)
109
- rehash
110
- end
111
-
112
- def self.unsubscribe(listener)
113
- Puppet.warning("#{listener.name} hasn't been registered but asked to be unregistered") unless @listeners.include?(listener.name)
114
- Puppet.info "unregistering instrumentation listener #{listener.name}"
115
- @listeners.delete(listener.name)
116
- listener.unsubscribed if listener.respond_to?(:unsubscribed)
117
- rehash
118
- end
119
-
120
- def self.init
121
- # let's init our probe indirection
122
- require 'puppet/util/instrumentation/indirection_probe'
123
- @listeners ||= {}
124
- @listeners_of ||= {}
125
- instance_loader(:listener).loadall
126
- end
127
-
128
- def self.clear
129
- @listeners = {}
130
- @listeners_of = {}
131
- @id = 0
132
- end
133
-
134
- def self.[](key)
135
- @listeners[key.intern]
136
- end
137
-
138
- def self.[]=(key, value)
139
- @listeners[key.intern] = value
140
- rehash
141
- end
142
-
143
- private
144
-
145
- def self.rehash
146
- @listeners_of = {}
147
- end
148
-
149
- def self.next_id
150
- @id = (@id || 0) + 1
151
- end
152
- end
@@ -1,40 +0,0 @@
1
- require 'puppet/util/logging'
2
-
3
- # Logging utility class that limits the frequency of identical log messages
4
- class Puppet::Util::Log::RateLimitedLogger
5
- include Puppet::Util::Logging
6
-
7
- def initialize(interval)
8
- raise ArgumentError, "Logging rate-limit interval must be an integer" unless interval.is_a?(Integer)
9
- @interval = interval
10
- @log_record = {}
11
- end
12
-
13
- # Override the logging entry point to rate-limit it
14
- def send_log(level, message)
15
- Puppet::Util::Log.create({:level => level, :message => message}) if should_log?(level, message)
16
- end
17
-
18
- private
19
-
20
- def should_log?(level, message)
21
- # Initialize separate records for different levels, and only when needed
22
- record = (@log_record[level] ||= {})
23
- last_log = record[message]
24
-
25
- # Skip logging if the time interval since the last logging hasn't elapsed yet
26
- return false if last_log and within_interval?(last_log)
27
-
28
- # Purge stale entries; do this after the interval check to reduce passes through the cache
29
- record.delete_if { |key, time| !within_interval?(time) }
30
-
31
- # Reset the beginning of the interval to the current time
32
- record[message] = Time.now
33
-
34
- true
35
- end
36
-
37
- def within_interval?(time)
38
- time + @interval > Time.now
39
- end
40
- end
@@ -1,13 +0,0 @@
1
- require 'puppet/util/monkey_patches'
2
- require 'enumerator'
3
-
4
- module Puppet::Util::MonkeyPatches::Lines
5
- def lines(separator = $/)
6
- if block_given?
7
- self.each_line(separator) {|line| yield line }
8
- return self
9
- else
10
- return enum_for(:each_line, separator)
11
- end
12
- end
13
- end
@@ -1,82 +0,0 @@
1
- #
2
- # This system manages an extensible set of metadata about plugins which it
3
- # collects by searching for files named "plugin_init.rb" in a series of
4
- # directories. Initially, these are simply the $LOAD_PATH.
5
- #
6
- # The contents of each file found is executed in the context of a Puppet::Plugins
7
- # object (and thus scoped). An example file might contain:
8
- #
9
- # -------------------------------------------------------
10
- # @name = "Greet the CA"
11
- #
12
- # @description = %q{
13
- # This plugin causes a friendly greeting to print out on a master
14
- # that is operating as the CA, after it has been set up but before
15
- # it does anything.
16
- # }
17
- #
18
- # def after_application_setup(options)
19
- # if options[:application_object].is_a?(Puppet::Application::Master) && Puppet::SSL::CertificateAuthority.ca?
20
- # puts "Hey, this is the CA!"
21
- # end
22
- # end
23
- # -------------------------------------------------------
24
- #
25
- # Note that the instance variables are local to this Puppet::Plugin (and so may be used
26
- # for maintaining state, etc.) but the plugin system does not provide any thread safety
27
- # assurances, so they may not be adequate for some complex use cases.
28
-
29
-
30
- module Puppet
31
- class Plugins
32
- Paths = [] # Where we might find plugin initialization code
33
- Loaded = [] # Code we have found (one-to-one with paths once searched)
34
- #
35
- # Return all the Puppet::Plugins we know about, searching any new paths
36
- #
37
- def self.known
38
- Paths[Loaded.length...Paths.length].each { |path|
39
- file = File.join(path,'plugin_init.rb')
40
- Loaded << (Puppet::FileSystem.exist?(file) && new(file))
41
- }
42
- Loaded.compact
43
- end
44
- #
45
- # Add more places to look for plugins without adding duplicates or changing the
46
- # order of ones we've already found.
47
- #
48
- def self.look_in(*paths)
49
- Paths.replace Paths | paths.flatten.collect { |path| File.expand_path(path) }
50
- end
51
- #
52
- # Initially just look in $LOAD_PATH
53
- #
54
- look_in $LOAD_PATH
55
- #
56
- # Calling methods (hooks) on the class calls the method of the same name on
57
- # all plugins that use that hook, passing in the same arguments to each
58
- # and returning an array containing the results returned by each plugin as
59
- # an array of [plugin_name,result] pairs.
60
- #
61
- def self.method_missing(hook,*args,&block)
62
- known.
63
- select { |p| p.respond_to? hook }.
64
- collect { |p| [p.name,p.send(hook,*args,&block)] }
65
- end
66
- #
67
- #
68
- #
69
- attr_reader :path,:name
70
- def initialize(path)
71
- @name = @path = path
72
- class << self
73
- private
74
- def define_hooks
75
- eval File.read(path),nil,path,1
76
- end
77
- end
78
- define_hooks
79
- end
80
- end
81
- end
82
-
@@ -1,13 +0,0 @@
1
- # A simple module to provide consistency between how we use PSON and how
2
- # ruby expects it to be used. Basically, we don't want to require
3
- # that the sender specify a class.
4
- # Ruby wants everyone to provide a 'type' field, and the PSON support
5
- # requires such a field to track the class down. Because we use our URL to
6
- # figure out what class we're working on, we don't need that, and we don't want
7
- # our consumers and producers to need to know anything about our internals.
8
- module Puppet::Util::Pson
9
- def pson_create(pson)
10
- raise ArgumentError, "No data provided in pson data" unless pson['data']
11
- from_data_hash(pson['data'])
12
- end
13
- end
@@ -1,60 +0,0 @@
1
- require 'puppet/util/queue'
2
- require 'stomp'
3
- require 'uri'
4
-
5
- # Implements the Ruby Stomp client as a queue type within the
6
- # Puppet::Indirector::Queue::Client registry, for use with the <tt>:queue</tt>
7
- # indirection terminus type.
8
- #
9
- # Looks to <tt>Puppet[:queue_source]</tt> for the sole argument to the
10
- # underlying Stomp::Client constructor; consequently, for this client to work,
11
- # <tt>Puppet[:queue_source]</tt> must use the Stomp::Client URL-like syntax
12
- # for identifying the Stomp message broker: <em>login:pass@host.port</em>
13
- class Puppet::Util::Queue::Stomp
14
- attr_accessor :stomp_client
15
-
16
- def initialize
17
- begin
18
- uri = URI.parse(Puppet[:queue_source])
19
- rescue => detail
20
- raise ArgumentError, "Could not create Stomp client instance - queue source #{Puppet[:queue_source]} is invalid: #{detail}", detail.backtrace
21
- end
22
- unless uri.scheme == "stomp"
23
- raise ArgumentError, "Could not create Stomp client instance - queue source #{Puppet[:queue_source]} is not a Stomp URL: #{detail}"
24
- end
25
-
26
- begin
27
- self.stomp_client = Stomp::Client.new(uri.user, uri.password, uri.host, uri.port, true)
28
- rescue => detail
29
- raise ArgumentError, "Could not create Stomp client instance with queue source #{Puppet[:queue_source]}: got internal Stomp client error #{detail}", detail.backtrace
30
- end
31
-
32
- # Identify the supported method for sending messages.
33
- @method =
34
- case
35
- when stomp_client.respond_to?(:publish)
36
- :publish
37
- when stomp_client.respond_to?(:send)
38
- :send
39
- else
40
- raise ArgumentError, "STOMP client does not respond to either publish or send"
41
- end
42
- end
43
-
44
- def publish_message(target, msg)
45
- stomp_client.__send__(@method, stompify_target(target), msg, :persistent => true)
46
- end
47
-
48
- def subscribe(target)
49
- stomp_client.subscribe(stompify_target(target), :ack => :client) do |stomp_message|
50
- yield(stomp_message.body)
51
- stomp_client.acknowledge(stomp_message)
52
- end
53
- end
54
-
55
- def stompify_target(target)
56
- '/queue/' + target.to_s
57
- end
58
-
59
- Puppet::Util::Queue.register_queue_type(self, :stomp)
60
- end
@@ -1,96 +0,0 @@
1
-
2
- require 'puppet/indirector'
3
- require 'puppet/util/instance_loader'
4
-
5
- # Implements a message queue client type plugin registry for use by the indirector facility.
6
- # Client modules for speaking a particular protocol (e.g. Stomp::Client for Stomp message
7
- # brokers, Memcached for Starling and Sparrow, etc.) register themselves with this module.
8
- #
9
- # Client classes are expected to live under the Puppet::Util::Queue namespace and corresponding
10
- # directory; the attempted use of a client via its typename (see below) will cause Puppet::Util::Queue
11
- # to attempt to load the corresponding plugin if it is not yet loaded. The client class registers itself
12
- # with Puppet::Util::Queue and should use the same type name as the autloader expects for the plugin file.
13
- # class Puppet::Util::Queue::SpecialMagicalClient < Messaging::SpecialMagic
14
- # ...
15
- # Puppet::Util::Queue.register_queue_type_class(self)
16
- # end
17
- #
18
- # This module reduces the rightmost segment of the class name into a pretty symbol that will
19
- # serve as the queuing client's name. Which means that the "SpecialMagicalClient" above will
20
- # be named <em>:special_magical_client</em> within the registry.
21
- #
22
- # Another class/module may mix-in this module, and may then make use of the registered clients.
23
- # class Queue::Fue
24
- # # mix it in at the class object level rather than instance level
25
- # extend ::Puppet::Util::Queue
26
- # end
27
- #
28
- # Queue::Fue instances can get a message queue client through the registry through the mixed-in method
29
- # +client+, which will return a class-wide singleton client instance, determined by +client_class+.
30
- #
31
- # The client plugins are expected to implement an interface similar to that of Stomp::Client:
32
- # * <tt>new</tt> should return a connected, ready-to-go client instance. Note that no arguments are passed in.
33
- # * <tt>publish_message(queue, message)</tt> should publish the _message_ to the specified _queue_.
34
- # * <tt>subscribe(queue)</tt> _block_ subscribes to _queue_ and executes _block_ upon receiving a message.
35
- # * _queue_ names are simple names independent of the message broker or client library. No "/queue/" prefixes like in Stomp::Client.
36
- module Puppet::Util::Queue
37
- extend Puppet::Util::InstanceLoader
38
- instance_load :queue_clients, 'puppet/util/queue'
39
-
40
- # Adds a new class/queue-type pair to the registry. The _type_ argument is optional; if not provided,
41
- # _type_ defaults to a lowercased, underscored symbol programmatically derived from the rightmost
42
- # namespace of <em>klass.name</em>.
43
- #
44
- # # register with default name +:you+
45
- # register_queue_type(Foo::You)
46
- #
47
- # # register with explicit queue type name +:myself+
48
- # register_queue_type(Foo::Me, :myself)
49
- #
50
- # If the type is already registered, an exception is thrown. No checking is performed of _klass_,
51
- # however; a given class could be registered any number of times, as long as the _type_ differs with
52
- # each registration.
53
- def self.register_queue_type(klass, type = nil)
54
- type ||= queue_type_from_class(klass)
55
- raise Puppet::Error, "Queue type #{type} is already registered" if instance_hash(:queue_clients).include?(type)
56
- instance_hash(:queue_clients)[type] = klass
57
- end
58
-
59
- # Given a queue type symbol, returns the associated +Class+ object. If the queue type is unknown
60
- # (meaning it hasn't been registered with this module), an exception is thrown.
61
- def self.queue_type_to_class(type)
62
- c = loaded_instance :queue_clients, type
63
- raise Puppet::Error, "Queue type #{type} is unknown." unless c
64
- c
65
- end
66
-
67
- # Given a class object _klass_, returns the programmatic default queue type name symbol for _klass_.
68
- # The algorithm is as shown in earlier examples; the last namespace segment of _klass.name_ is taken
69
- # and converted from mixed case to underscore-separated lowercase, and interned.
70
- # queue_type_from_class(Foo) -> :foo
71
- # queue_type_from_class(Foo::Too) -> :too
72
- # queue_type_from_class(Foo::ForYouTwo) -> :for_you_too
73
- #
74
- # The implicit assumption here, consistent with Puppet's approach to plugins in general,
75
- # is that all your client modules live in the same namespace, such that reduction to
76
- # a flat namespace of symbols is reasonably safe.
77
- def self.queue_type_from_class(klass)
78
- # convert last segment of classname from studly caps to lower case with underscores, and symbolize
79
- klass.name.split('::').pop.sub(/^[A-Z]/) {|c| c.downcase}.gsub(/[A-Z]/) {|c| '_' + c.downcase }.intern
80
- end
81
-
82
- # The class object for the client to be used, determined by queue configuration
83
- # settings.
84
- # Looks to the <tt>:queue_type</tt> configuration entry in the running application for
85
- # the default queue type to use.
86
- def client_class
87
- Puppet::Util::Queue.queue_type_to_class(Puppet[:queue_type])
88
- end
89
-
90
- # Returns (instantiating as necessary) the singleton queue client instance, according to the
91
- # client_class. No arguments go to the client class constructor, meaning its up to the client class
92
- # to know how to determine its queue message source (presumably through Puppet configuration data).
93
- def client
94
- @client ||= client_class.new
95
- end
96
- end
@@ -1,65 +0,0 @@
1
- require 'puppet/util'
2
-
3
- module Puppet::Util::CacheAccumulator
4
- def self.included(klass)
5
- klass.extend ClassMethods
6
- end
7
-
8
- class Base
9
- attr_reader :klass, :attribute
10
-
11
- def initialize(klass, attribute)
12
- @klass = klass
13
- @attribute = attribute
14
- @find_or_create = "find_or_create_by_#{@attribute.to_s}".intern
15
- end
16
-
17
- def store
18
- @store || reset
19
- end
20
-
21
- def reset
22
- @store = {}
23
- end
24
-
25
- def find(*keys)
26
- result = nil
27
- if keys.length == 1
28
- result = store[keys[0]] ||= @klass.send(@find_or_create, *keys)
29
- else
30
- found, missing = keys.partition {|k| store.include? k}
31
- result = found.length
32
- result += do_multi_find(missing) if missing.length > 0
33
- end
34
- result
35
- end
36
-
37
- def do_multi_find(keys)
38
- result = 0
39
- @klass.find(:all, :conditions => {@attribute => keys}).each do |obj|
40
- store[obj.send(@attribute)] = obj
41
- result += 1
42
- end
43
- result
44
- end
45
- end
46
-
47
- module ClassMethods
48
- def accumulates(*attributes)
49
- attributes.each {|attrib| install_accumulator(attrib)}
50
- end
51
-
52
- def accumulators
53
- @accumulators ||= {}
54
- end
55
-
56
- def install_accumulator(attribute)
57
- self.accumulators[attribute] = Base.new(self, attribute)
58
- module_eval %{
59
- def self.accumulate_by_#{attribute.to_s}(*keys)
60
- accumulators[:#{attribute.to_s}].find(*keys)
61
- end
62
- }
63
- end
64
- end
65
- end
@@ -1,17 +0,0 @@
1
- module Puppet::Util::CollectionMerger
2
- def ar_hash_merge(db_hash, mem_hash, args)
3
- (db_hash.keys | mem_hash.keys).each do |key|
4
- if (db_hash[key] && mem_hash[key])
5
- # in both, update value
6
- args[:modify].call(db_hash[key], mem_hash[key])
7
- elsif (db_hash[key])
8
- # in db, not memory, delete from database
9
- args[:delete].call(db_hash[key])
10
- else
11
- # in mem, not in db, insert into the database
12
- args[:create].call(key, mem_hash[key])
13
- end
14
- end
15
- end
16
- end
17
-
@@ -1,32 +0,0 @@
1
-
2
- module Puppet::Util::ReferenceSerializer
3
- def unserialize_value(val)
4
- case val
5
- when /^--- /
6
- YAML.load(val)
7
- when "true"
8
- true
9
- when "false"
10
- false
11
- else
12
- val
13
- end
14
- end
15
-
16
- def serialize_value(val)
17
- case val
18
- when Puppet::Resource
19
- YAML.dump(val)
20
- when true, false
21
- # The database does this for us, but I prefer the
22
- # methods be their exact inverses.
23
- # Note that this means quoted booleans get returned
24
- # as actual booleans, but there doesn't appear to be
25
- # a way to fix that while keeping the ability to
26
- # search for parameters set to true.
27
- val.to_s
28
- else
29
- val
30
- end
31
- end
32
- end
@@ -1,19 +0,0 @@
1
- require 'puppet/util/rdoc/parser/puppet_parser_core.rb'
2
-
3
- module RDoc
4
- PUPPET_RDOC_VERSION = 1
5
-
6
- # @api private
7
- class PuppetParserRDoc1
8
- extend ParserFactory
9
- include PuppetParserCore
10
-
11
- def create_rdoc_preprocess
12
- preprocess = SM::PreProcess.new(@input_file_name, @options.rdoc_include)
13
- end
14
- end
15
-
16
- # For backwards compatibility
17
- # @api private
18
- Parser = PuppetParserRDoc1
19
- end
@@ -1,47 +0,0 @@
1
- module Puppet::Util::RetryAction
2
- class RetryException < Exception; end
3
- class RetryException::NoBlockGiven < RetryException; end
4
- class RetryException::NoRetriesGiven < RetryException;end
5
- class RetryException::RetriesExceeded < RetryException; end
6
-
7
- def self.retry_action( parameters = { :retry_exceptions => nil, :retries => nil } )
8
- # Retry actions for a specified amount of time. This method will allow the final
9
- # retry to complete even if that extends beyond the timeout period.
10
- unless block_given?
11
- raise RetryException::NoBlockGiven
12
- end
13
-
14
- raise RetryException::NoRetriesGiven if parameters[:retries].nil?
15
- parameters[:retry_exceptions] ||= Hash.new
16
-
17
- failures = 0
18
-
19
- begin
20
- yield
21
- rescue Exception => e
22
- # If we were giving exceptions to catch,
23
- # catch the excptions we care about and retry.
24
- # All others fail hard
25
-
26
- raise RetryException::RetriesExceeded, "#{parameters[:retries]} exceeded", e.backtrace if parameters[:retries] == 0
27
-
28
- if (not parameters[:retry_exceptions].keys.empty?) and parameters[:retry_exceptions].keys.include?(e.class)
29
- Puppet.info("Caught exception #{e.class}:#{e}")
30
- Puppet.info(parameters[:retry_exceptions][e.class])
31
- elsif (not parameters[:retry_exceptions].keys.empty?)
32
- # If the exceptions is not in the list of retry_exceptions re-raise.
33
- raise e
34
- end
35
-
36
- failures += 1
37
- parameters[:retries] -= 1
38
-
39
- # Increase the amount of time that we sleep after every
40
- # failed retry attempt.
41
- sleep (((2 ** failures) -1) * 0.1)
42
-
43
- retry
44
-
45
- end
46
- end
47
- end