puppet 3.7.0-x64-mingw32

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

Potentially problematic release.


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

Files changed (2487) hide show
  1. checksums.yaml +7 -0
  2. data/COMMITTERS.md +244 -0
  3. data/CONTRIBUTING.md +91 -0
  4. data/Gemfile +100 -0
  5. data/LICENSE +17 -0
  6. data/README.md +76 -0
  7. data/Rakefile +68 -0
  8. data/bin/extlookup2hiera +56 -0
  9. data/bin/puppet +8 -0
  10. data/conf/auth.conf +120 -0
  11. data/conf/fileserver.conf +42 -0
  12. data/conf/tagmail.conf +16 -0
  13. data/examples/hiera/README.md +91 -0
  14. data/examples/hiera/etc/hiera.yaml +15 -0
  15. data/examples/hiera/etc/hieradb/common.yaml +3 -0
  16. data/examples/hiera/etc/hieradb/dc1.yaml +6 -0
  17. data/examples/hiera/etc/hieradb/development.yaml +2 -0
  18. data/examples/hiera/etc/puppet.conf +3 -0
  19. data/examples/hiera/modules/data/manifests/common.pp +4 -0
  20. data/examples/hiera/modules/ntp/manifests/config.pp +6 -0
  21. data/examples/hiera/modules/ntp/manifests/data.pp +4 -0
  22. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +3 -0
  23. data/examples/hiera/modules/users/manifests/common.pp +4 -0
  24. data/examples/hiera/modules/users/manifests/dc1.pp +4 -0
  25. data/examples/hiera/modules/users/manifests/development.pp +4 -0
  26. data/examples/hiera/site.pp +3 -0
  27. data/ext/README.environment +8 -0
  28. data/ext/autotest/Rakefile +8 -0
  29. data/ext/autotest/config +43 -0
  30. data/ext/autotest/readme.rst +16 -0
  31. data/ext/build_defaults.yaml +38 -0
  32. data/ext/cert_inspector +140 -0
  33. data/ext/dbfix.sql +132 -0
  34. data/ext/debian/README.Debian +8 -0
  35. data/ext/debian/README.source +2 -0
  36. data/ext/debian/TODO.Debian +1 -0
  37. data/ext/debian/changelog.erb +1122 -0
  38. data/ext/debian/compat +1 -0
  39. data/ext/debian/control +144 -0
  40. data/ext/debian/copyright +361 -0
  41. data/ext/debian/docs +1 -0
  42. data/ext/debian/fileserver.conf +41 -0
  43. data/ext/debian/puppet-common.dirs +13 -0
  44. data/ext/debian/puppet-common.install +4 -0
  45. data/ext/debian/puppet-common.lintian-overrides +5 -0
  46. data/ext/debian/puppet-common.manpages +35 -0
  47. data/ext/debian/puppet-common.postinst +35 -0
  48. data/ext/debian/puppet-common.postrm +33 -0
  49. data/ext/debian/puppet-el.dirs +1 -0
  50. data/ext/debian/puppet-el.emacsen-install +25 -0
  51. data/ext/debian/puppet-el.emacsen-remove +11 -0
  52. data/ext/debian/puppet-el.emacsen-startup +9 -0
  53. data/ext/debian/puppet-el.install +1 -0
  54. data/ext/debian/puppet-testsuite.install +2 -0
  55. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  56. data/ext/debian/puppet.conf +14 -0
  57. data/ext/debian/puppet.default +9 -0
  58. data/ext/debian/puppet.init +117 -0
  59. data/ext/debian/puppet.lintian-overrides +3 -0
  60. data/ext/debian/puppet.logrotate +12 -0
  61. data/ext/debian/puppet.postinst +20 -0
  62. data/ext/debian/puppet.postrm +20 -0
  63. data/ext/debian/puppet.preinst +20 -0
  64. data/ext/debian/puppetmaster-common.install +2 -0
  65. data/ext/debian/puppetmaster-common.manpages +2 -0
  66. data/ext/debian/puppetmaster-common.puppetqd.default +27 -0
  67. data/ext/debian/puppetmaster-common.puppetqd.init +84 -0
  68. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  69. data/ext/debian/puppetmaster-passenger.postinst +162 -0
  70. data/ext/debian/puppetmaster-passenger.postrm +61 -0
  71. data/ext/debian/puppetmaster.README.debian +15 -0
  72. data/ext/debian/puppetmaster.default +14 -0
  73. data/ext/debian/puppetmaster.init +137 -0
  74. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  75. data/ext/debian/puppetmaster.postinst +20 -0
  76. data/ext/debian/puppetmaster.postrm +5 -0
  77. data/ext/debian/puppetmaster.preinst +22 -0
  78. data/ext/debian/rules +129 -0
  79. data/ext/debian/source/format +1 -0
  80. data/ext/debian/source/options +1 -0
  81. data/ext/debian/vim-puppet.README.Debian +13 -0
  82. data/ext/debian/vim-puppet.dirs +3 -0
  83. data/ext/debian/vim-puppet.yaml +5 -0
  84. data/ext/debian/watch +2 -0
  85. data/ext/emacs/puppet-mode-init.el +6 -0
  86. data/ext/emacs/puppet-mode.el +434 -0
  87. data/ext/envpuppet +139 -0
  88. data/ext/envpuppet.bat +14 -0
  89. data/ext/freebsd/puppetd +26 -0
  90. data/ext/freebsd/puppetmasterd +26 -0
  91. data/ext/gentoo/conf.d/puppet +5 -0
  92. data/ext/gentoo/conf.d/puppetmaster +12 -0
  93. data/ext/gentoo/init.d/puppet +38 -0
  94. data/ext/gentoo/init.d/puppetmaster +51 -0
  95. data/ext/gentoo/puppet/fileserver.conf +41 -0
  96. data/ext/gentoo/puppet/puppet.conf +25 -0
  97. data/ext/ips/puppet-agent +44 -0
  98. data/ext/ips/puppet-master +44 -0
  99. data/ext/ips/puppet.conf +29 -0
  100. data/ext/ips/puppet.p5m.erb +12 -0
  101. data/ext/ips/puppetagent.xml +42 -0
  102. data/ext/ips/puppetmaster.xml +42 -0
  103. data/ext/ips/rules +19 -0
  104. data/ext/ips/transforms +34 -0
  105. data/ext/ldap/puppet.schema +24 -0
  106. data/ext/logcheck/puppet +23 -0
  107. data/ext/nagios/check_puppet.rb +123 -0
  108. data/ext/nagios/naggen +309 -0
  109. data/ext/osx/file_mapping.yaml +33 -0
  110. data/ext/osx/postflight.erb +109 -0
  111. data/ext/osx/preflight.erb +52 -0
  112. data/ext/osx/prototype.plist.erb +38 -0
  113. data/ext/project_data.yaml +50 -0
  114. data/ext/puppet-load.rb +393 -0
  115. data/ext/puppet-nm-dispatcher +13 -0
  116. data/ext/puppet-test +566 -0
  117. data/ext/puppetlisten/puppetlisten.rb +75 -0
  118. data/ext/puppetlisten/puppetrun.rb +38 -0
  119. data/ext/pure_ruby_dsl/dsl_test.rb +7 -0
  120. data/ext/rack/config.ru +36 -0
  121. data/ext/rack/example-passenger-vhost.conf +57 -0
  122. data/ext/redhat/client.init +119 -0
  123. data/ext/redhat/client.sysconfig +11 -0
  124. data/ext/redhat/fileserver.conf +41 -0
  125. data/ext/redhat/logrotate +10 -0
  126. data/ext/redhat/puppet.conf +25 -0
  127. data/ext/redhat/puppet.spec.erb +860 -0
  128. data/ext/redhat/queue.init +105 -0
  129. data/ext/redhat/server.init +128 -0
  130. data/ext/redhat/server.sysconfig +13 -0
  131. data/ext/regexp_nodes/classes/databases +2 -0
  132. data/ext/regexp_nodes/classes/webservers +2 -0
  133. data/ext/regexp_nodes/environment/development +2 -0
  134. data/ext/regexp_nodes/parameters/service/prod +1 -0
  135. data/ext/regexp_nodes/parameters/service/qa +3 -0
  136. data/ext/regexp_nodes/parameters/service/sandbox +1 -0
  137. data/ext/regexp_nodes/regexp_nodes.rb +271 -0
  138. data/ext/solaris/pkginfo +6 -0
  139. data/ext/solaris/smf/puppetd.xml +77 -0
  140. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  141. data/ext/solaris/smf/svc-puppetd +64 -0
  142. data/ext/solaris/smf/svc-puppetmasterd +60 -0
  143. data/ext/suse/client.init +144 -0
  144. data/ext/suse/puppet.spec +310 -0
  145. data/ext/suse/server.init +173 -0
  146. data/ext/systemd/puppet.service +12 -0
  147. data/ext/systemd/puppetmaster.service +11 -0
  148. data/ext/upload_facts.rb +119 -0
  149. data/ext/vim/README +3 -0
  150. data/ext/vim/ftdetect/puppet.vim +2 -0
  151. data/ext/vim/ftplugin/puppet.vim +94 -0
  152. data/ext/vim/indent/puppet.vim +76 -0
  153. data/ext/vim/syntax/puppet.vim +115 -0
  154. data/ext/windows/eventlog/Rakefile +32 -0
  155. data/ext/windows/eventlog/puppetres.dll +0 -0
  156. data/ext/windows/eventlog/puppetres.mc +18 -0
  157. data/ext/windows/service/daemon.bat +6 -0
  158. data/ext/windows/service/daemon.rb +175 -0
  159. data/ext/yaml_nodes.rb +105 -0
  160. data/install.rb +429 -0
  161. data/lib/hiera/backend/puppet_backend.rb +103 -0
  162. data/lib/hiera/scope.rb +60 -0
  163. data/lib/hiera_puppet.rb +87 -0
  164. data/lib/puppet.rb +277 -0
  165. data/lib/puppet/agent.rb +121 -0
  166. data/lib/puppet/agent/disabler.rb +53 -0
  167. data/lib/puppet/agent/locker.rb +43 -0
  168. data/lib/puppet/application.rb +516 -0
  169. data/lib/puppet/application/agent.rb +480 -0
  170. data/lib/puppet/application/apply.rb +299 -0
  171. data/lib/puppet/application/ca.rb +5 -0
  172. data/lib/puppet/application/catalog.rb +4 -0
  173. data/lib/puppet/application/cert.rb +277 -0
  174. data/lib/puppet/application/certificate.rb +15 -0
  175. data/lib/puppet/application/certificate_request.rb +7 -0
  176. data/lib/puppet/application/certificate_revocation_list.rb +7 -0
  177. data/lib/puppet/application/config.rb +4 -0
  178. data/lib/puppet/application/describe.rb +254 -0
  179. data/lib/puppet/application/device.rb +238 -0
  180. data/lib/puppet/application/doc.rb +273 -0
  181. data/lib/puppet/application/face_base.rb +250 -0
  182. data/lib/puppet/application/facts.rb +4 -0
  183. data/lib/puppet/application/file.rb +4 -0
  184. data/lib/puppet/application/filebucket.rb +184 -0
  185. data/lib/puppet/application/help.rb +4 -0
  186. data/lib/puppet/application/indirection_base.rb +4 -0
  187. data/lib/puppet/application/inspect.rb +179 -0
  188. data/lib/puppet/application/instrumentation_data.rb +7 -0
  189. data/lib/puppet/application/instrumentation_listener.rb +7 -0
  190. data/lib/puppet/application/instrumentation_probe.rb +7 -0
  191. data/lib/puppet/application/key.rb +4 -0
  192. data/lib/puppet/application/kick.rb +351 -0
  193. data/lib/puppet/application/man.rb +4 -0
  194. data/lib/puppet/application/master.rb +304 -0
  195. data/lib/puppet/application/module.rb +4 -0
  196. data/lib/puppet/application/node.rb +4 -0
  197. data/lib/puppet/application/parser.rb +5 -0
  198. data/lib/puppet/application/plugin.rb +3 -0
  199. data/lib/puppet/application/queue.rb +161 -0
  200. data/lib/puppet/application/report.rb +4 -0
  201. data/lib/puppet/application/resource.rb +228 -0
  202. data/lib/puppet/application/resource_type.rb +7 -0
  203. data/lib/puppet/application/secret_agent.rb +9 -0
  204. data/lib/puppet/application/status.rb +4 -0
  205. data/lib/puppet/bindings.rb +147 -0
  206. data/lib/puppet/coercion.rb +40 -0
  207. data/lib/puppet/configurer.rb +303 -0
  208. data/lib/puppet/configurer/downloader.rb +66 -0
  209. data/lib/puppet/configurer/downloader_factory.rb +34 -0
  210. data/lib/puppet/configurer/fact_handler.rb +37 -0
  211. data/lib/puppet/configurer/plugin_handler.rb +23 -0
  212. data/lib/puppet/confine.rb +80 -0
  213. data/lib/puppet/confine/any.rb +26 -0
  214. data/lib/puppet/confine/exists.rb +19 -0
  215. data/lib/puppet/confine/false.rb +19 -0
  216. data/lib/puppet/confine/feature.rb +17 -0
  217. data/lib/puppet/confine/true.rb +20 -0
  218. data/lib/puppet/confine/variable.rb +59 -0
  219. data/lib/puppet/confine_collection.rb +50 -0
  220. data/lib/puppet/confiner.rb +46 -0
  221. data/lib/puppet/context.rb +101 -0
  222. data/lib/puppet/context/trusted_information.rb +56 -0
  223. data/lib/puppet/daemon.rb +182 -0
  224. data/lib/puppet/data_binding.rb +12 -0
  225. data/lib/puppet/defaults.rb +2091 -0
  226. data/lib/puppet/dsl.rb +7 -0
  227. data/lib/puppet/dsl/resource_api.rb +120 -0
  228. data/lib/puppet/dsl/resource_type_api.rb +34 -0
  229. data/lib/puppet/environments.rb +367 -0
  230. data/lib/puppet/error.rb +62 -0
  231. data/lib/puppet/external/dot.rb +326 -0
  232. data/lib/puppet/external/nagios.rb +46 -0
  233. data/lib/puppet/external/nagios/base.rb +472 -0
  234. data/lib/puppet/external/nagios/grammar.ry +248 -0
  235. data/lib/puppet/external/nagios/makefile +9 -0
  236. data/lib/puppet/external/nagios/parser.rb +400 -0
  237. data/lib/puppet/external/pson/common.rb +385 -0
  238. data/lib/puppet/external/pson/pure.rb +15 -0
  239. data/lib/puppet/external/pson/pure/generator.rb +394 -0
  240. data/lib/puppet/external/pson/pure/parser.rb +318 -0
  241. data/lib/puppet/external/pson/version.rb +8 -0
  242. data/lib/puppet/face.rb +12 -0
  243. data/lib/puppet/face/ca.rb +254 -0
  244. data/lib/puppet/face/catalog.rb +130 -0
  245. data/lib/puppet/face/catalog/select.rb +49 -0
  246. data/lib/puppet/face/certificate.rb +160 -0
  247. data/lib/puppet/face/certificate_request.rb +53 -0
  248. data/lib/puppet/face/certificate_revocation_list.rb +58 -0
  249. data/lib/puppet/face/config.rb +119 -0
  250. data/lib/puppet/face/facts.rb +81 -0
  251. data/lib/puppet/face/file.rb +47 -0
  252. data/lib/puppet/face/file/download.rb +57 -0
  253. data/lib/puppet/face/file/store.rb +21 -0
  254. data/lib/puppet/face/help.rb +194 -0
  255. data/lib/puppet/face/help/action.erb +86 -0
  256. data/lib/puppet/face/help/face.erb +111 -0
  257. data/lib/puppet/face/help/global.erb +16 -0
  258. data/lib/puppet/face/help/man.erb +152 -0
  259. data/lib/puppet/face/instrumentation_data.rb +30 -0
  260. data/lib/puppet/face/instrumentation_listener.rb +98 -0
  261. data/lib/puppet/face/instrumentation_probe.rb +79 -0
  262. data/lib/puppet/face/key.rb +15 -0
  263. data/lib/puppet/face/man.rb +99 -0
  264. data/lib/puppet/face/module.rb +19 -0
  265. data/lib/puppet/face/module/build.rb +63 -0
  266. data/lib/puppet/face/module/changes.rb +41 -0
  267. data/lib/puppet/face/module/generate.rb +251 -0
  268. data/lib/puppet/face/module/install.rb +145 -0
  269. data/lib/puppet/face/module/list.rb +275 -0
  270. data/lib/puppet/face/module/search.rb +94 -0
  271. data/lib/puppet/face/module/uninstall.rb +78 -0
  272. data/lib/puppet/face/module/upgrade.rb +86 -0
  273. data/lib/puppet/face/node.rb +43 -0
  274. data/lib/puppet/face/node/clean.rb +159 -0
  275. data/lib/puppet/face/parser.rb +160 -0
  276. data/lib/puppet/face/plugin.rb +65 -0
  277. data/lib/puppet/face/report.rb +54 -0
  278. data/lib/puppet/face/resource.rb +53 -0
  279. data/lib/puppet/face/resource_type.rb +81 -0
  280. data/lib/puppet/face/secret_agent.rb +54 -0
  281. data/lib/puppet/face/status.rb +53 -0
  282. data/lib/puppet/feature/base.rb +94 -0
  283. data/lib/puppet/feature/cfacter.rb +14 -0
  284. data/lib/puppet/feature/eventlog.rb +5 -0
  285. data/lib/puppet/feature/external_facts.rb +5 -0
  286. data/lib/puppet/feature/libuser.rb +8 -0
  287. data/lib/puppet/feature/msgpack.rb +3 -0
  288. data/lib/puppet/feature/pe_license.rb +4 -0
  289. data/lib/puppet/feature/pson.rb +4 -0
  290. data/lib/puppet/feature/rack.rb +19 -0
  291. data/lib/puppet/feature/rails.rb +47 -0
  292. data/lib/puppet/feature/rdoc1.rb +16 -0
  293. data/lib/puppet/feature/rubygems.rb +7 -0
  294. data/lib/puppet/feature/selinux.rb +3 -0
  295. data/lib/puppet/feature/ssh.rb +3 -0
  296. data/lib/puppet/feature/stomp.rb +5 -0
  297. data/lib/puppet/feature/zlib.rb +5 -0
  298. data/lib/puppet/file_bucket.rb +4 -0
  299. data/lib/puppet/file_bucket/dipper.rb +119 -0
  300. data/lib/puppet/file_bucket/file.rb +157 -0
  301. data/lib/puppet/file_collection.rb +19 -0
  302. data/lib/puppet/file_collection/lookup.rb +10 -0
  303. data/lib/puppet/file_serving.rb +3 -0
  304. data/lib/puppet/file_serving/base.rb +95 -0
  305. data/lib/puppet/file_serving/configuration.rb +109 -0
  306. data/lib/puppet/file_serving/configuration/parser.rb +121 -0
  307. data/lib/puppet/file_serving/content.rb +45 -0
  308. data/lib/puppet/file_serving/fileset.rb +172 -0
  309. data/lib/puppet/file_serving/metadata.rb +199 -0
  310. data/lib/puppet/file_serving/mount.rb +39 -0
  311. data/lib/puppet/file_serving/mount/file.rb +121 -0
  312. data/lib/puppet/file_serving/mount/modules.rb +24 -0
  313. data/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
  314. data/lib/puppet/file_serving/mount/plugins.rb +35 -0
  315. data/lib/puppet/file_serving/terminus_helper.rb +21 -0
  316. data/lib/puppet/file_serving/terminus_selector.rb +30 -0
  317. data/lib/puppet/file_system.rb +366 -0
  318. data/lib/puppet/file_system/file18.rb +5 -0
  319. data/lib/puppet/file_system/file19.rb +46 -0
  320. data/lib/puppet/file_system/file19windows.rb +107 -0
  321. data/lib/puppet/file_system/file_impl.rb +145 -0
  322. data/lib/puppet/file_system/memory_file.rb +71 -0
  323. data/lib/puppet/file_system/memory_impl.rb +78 -0
  324. data/lib/puppet/file_system/path_pattern.rb +97 -0
  325. data/lib/puppet/file_system/uniquefile.rb +190 -0
  326. data/lib/puppet/forge.rb +226 -0
  327. data/lib/puppet/forge/cache.rb +59 -0
  328. data/lib/puppet/forge/errors.rb +112 -0
  329. data/lib/puppet/forge/repository.rb +182 -0
  330. data/lib/puppet/functions.rb +555 -0
  331. data/lib/puppet/functions/assert_type.rb +59 -0
  332. data/lib/puppet/functions/each.rb +111 -0
  333. data/lib/puppet/functions/epp.rb +54 -0
  334. data/lib/puppet/functions/filter.rb +113 -0
  335. data/lib/puppet/functions/import.rb +7 -0
  336. data/lib/puppet/functions/inline_epp.rb +88 -0
  337. data/lib/puppet/functions/map.rb +97 -0
  338. data/lib/puppet/functions/match.rb +102 -0
  339. data/lib/puppet/functions/reduce.rb +94 -0
  340. data/lib/puppet/functions/slice.rb +126 -0
  341. data/lib/puppet/functions/with.rb +23 -0
  342. data/lib/puppet/graph.rb +11 -0
  343. data/lib/puppet/graph/key.rb +26 -0
  344. data/lib/puppet/graph/prioritizer.rb +29 -0
  345. data/lib/puppet/graph/random_prioritizer.rb +16 -0
  346. data/lib/puppet/graph/rb_tree_map.rb +388 -0
  347. data/lib/puppet/graph/relationship_graph.rb +246 -0
  348. data/lib/puppet/graph/sequential_prioritizer.rb +31 -0
  349. data/lib/puppet/graph/simple_graph.rb +566 -0
  350. data/lib/puppet/graph/title_hash_prioritizer.rb +16 -0
  351. data/lib/puppet/indirector.rb +61 -0
  352. data/lib/puppet/indirector/active_record.rb +29 -0
  353. data/lib/puppet/indirector/catalog/active_record.rb +39 -0
  354. data/lib/puppet/indirector/catalog/compiler.rb +182 -0
  355. data/lib/puppet/indirector/catalog/json.rb +6 -0
  356. data/lib/puppet/indirector/catalog/msgpack.rb +6 -0
  357. data/lib/puppet/indirector/catalog/queue.rb +9 -0
  358. data/lib/puppet/indirector/catalog/rest.rb +6 -0
  359. data/lib/puppet/indirector/catalog/static_compiler.rb +214 -0
  360. data/lib/puppet/indirector/catalog/store_configs.rb +8 -0
  361. data/lib/puppet/indirector/catalog/yaml.rb +22 -0
  362. data/lib/puppet/indirector/certificate/ca.rb +9 -0
  363. data/lib/puppet/indirector/certificate/disabled_ca.rb +22 -0
  364. data/lib/puppet/indirector/certificate/file.rb +9 -0
  365. data/lib/puppet/indirector/certificate/rest.rb +16 -0
  366. data/lib/puppet/indirector/certificate_request/ca.rb +22 -0
  367. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
  368. data/lib/puppet/indirector/certificate_request/file.rb +8 -0
  369. data/lib/puppet/indirector/certificate_request/memory.rb +6 -0
  370. data/lib/puppet/indirector/certificate_request/rest.rb +10 -0
  371. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
  372. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
  373. data/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
  374. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +10 -0
  375. data/lib/puppet/indirector/certificate_status.rb +4 -0
  376. data/lib/puppet/indirector/certificate_status/file.rb +91 -0
  377. data/lib/puppet/indirector/certificate_status/rest.rb +11 -0
  378. data/lib/puppet/indirector/code.rb +6 -0
  379. data/lib/puppet/indirector/couch.rb +78 -0
  380. data/lib/puppet/indirector/data_binding/hiera.rb +7 -0
  381. data/lib/puppet/indirector/data_binding/none.rb +5 -0
  382. data/lib/puppet/indirector/direct_file_server.rb +19 -0
  383. data/lib/puppet/indirector/envelope.rb +11 -0
  384. data/lib/puppet/indirector/errors.rb +5 -0
  385. data/lib/puppet/indirector/exec.rb +38 -0
  386. data/lib/puppet/indirector/face.rb +139 -0
  387. data/lib/puppet/indirector/facts/active_record.rb +44 -0
  388. data/lib/puppet/indirector/facts/couch.rb +36 -0
  389. data/lib/puppet/indirector/facts/facter.rb +78 -0
  390. data/lib/puppet/indirector/facts/inventory_active_record.rb +110 -0
  391. data/lib/puppet/indirector/facts/inventory_service.rb +20 -0
  392. data/lib/puppet/indirector/facts/memory.rb +9 -0
  393. data/lib/puppet/indirector/facts/network_device.rb +24 -0
  394. data/lib/puppet/indirector/facts/rest.rb +8 -0
  395. data/lib/puppet/indirector/facts/store_configs.rb +8 -0
  396. data/lib/puppet/indirector/facts/yaml.rb +82 -0
  397. data/lib/puppet/indirector/file_bucket_file/file.rb +142 -0
  398. data/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
  399. data/lib/puppet/indirector/file_bucket_file/selector.rb +53 -0
  400. data/lib/puppet/indirector/file_content.rb +5 -0
  401. data/lib/puppet/indirector/file_content/file.rb +7 -0
  402. data/lib/puppet/indirector/file_content/file_server.rb +7 -0
  403. data/lib/puppet/indirector/file_content/rest.rb +9 -0
  404. data/lib/puppet/indirector/file_content/selector.rb +30 -0
  405. data/lib/puppet/indirector/file_metadata.rb +5 -0
  406. data/lib/puppet/indirector/file_metadata/file.rb +22 -0
  407. data/lib/puppet/indirector/file_metadata/file_server.rb +7 -0
  408. data/lib/puppet/indirector/file_metadata/rest.rb +9 -0
  409. data/lib/puppet/indirector/file_metadata/selector.rb +30 -0
  410. data/lib/puppet/indirector/file_server.rb +65 -0
  411. data/lib/puppet/indirector/hiera.rb +48 -0
  412. data/lib/puppet/indirector/indirection.rb +336 -0
  413. data/lib/puppet/indirector/instrumentation_data.rb +3 -0
  414. data/lib/puppet/indirector/instrumentation_data/local.rb +22 -0
  415. data/lib/puppet/indirector/instrumentation_data/rest.rb +8 -0
  416. data/lib/puppet/indirector/instrumentation_listener.rb +3 -0
  417. data/lib/puppet/indirector/instrumentation_listener/local.rb +26 -0
  418. data/lib/puppet/indirector/instrumentation_listener/rest.rb +8 -0
  419. data/lib/puppet/indirector/instrumentation_probe.rb +3 -0
  420. data/lib/puppet/indirector/instrumentation_probe/local.rb +27 -0
  421. data/lib/puppet/indirector/instrumentation_probe/rest.rb +8 -0
  422. data/lib/puppet/indirector/json.rb +76 -0
  423. data/lib/puppet/indirector/key/ca.rb +16 -0
  424. data/lib/puppet/indirector/key/disabled_ca.rb +22 -0
  425. data/lib/puppet/indirector/key/file.rb +49 -0
  426. data/lib/puppet/indirector/key/memory.rb +6 -0
  427. data/lib/puppet/indirector/ldap.rb +79 -0
  428. data/lib/puppet/indirector/memory.rb +34 -0
  429. data/lib/puppet/indirector/msgpack.rb +82 -0
  430. data/lib/puppet/indirector/node/active_record.rb +22 -0
  431. data/lib/puppet/indirector/node/exec.rb +69 -0
  432. data/lib/puppet/indirector/node/ldap.rb +257 -0
  433. data/lib/puppet/indirector/node/memory.rb +10 -0
  434. data/lib/puppet/indirector/node/msgpack.rb +7 -0
  435. data/lib/puppet/indirector/node/plain.rb +20 -0
  436. data/lib/puppet/indirector/node/rest.rb +7 -0
  437. data/lib/puppet/indirector/node/store_configs.rb +8 -0
  438. data/lib/puppet/indirector/node/write_only_yaml.rb +32 -0
  439. data/lib/puppet/indirector/node/yaml.rb +22 -0
  440. data/lib/puppet/indirector/none.rb +9 -0
  441. data/lib/puppet/indirector/plain.rb +9 -0
  442. data/lib/puppet/indirector/queue.rb +80 -0
  443. data/lib/puppet/indirector/report/msgpack.rb +11 -0
  444. data/lib/puppet/indirector/report/processor.rb +59 -0
  445. data/lib/puppet/indirector/report/rest.rb +15 -0
  446. data/lib/puppet/indirector/report/yaml.rb +11 -0
  447. data/lib/puppet/indirector/request.rb +318 -0
  448. data/lib/puppet/indirector/resource/active_record.rb +104 -0
  449. data/lib/puppet/indirector/resource/ral.rb +64 -0
  450. data/lib/puppet/indirector/resource/rest.rb +17 -0
  451. data/lib/puppet/indirector/resource/store_configs.rb +13 -0
  452. data/lib/puppet/indirector/resource/validator.rb +8 -0
  453. data/lib/puppet/indirector/resource_type.rb +5 -0
  454. data/lib/puppet/indirector/resource_type/parser.rb +101 -0
  455. data/lib/puppet/indirector/resource_type/rest.rb +7 -0
  456. data/lib/puppet/indirector/rest.rb +267 -0
  457. data/lib/puppet/indirector/run/local.rb +15 -0
  458. data/lib/puppet/indirector/run/rest.rb +12 -0
  459. data/lib/puppet/indirector/ssl_file.rb +180 -0
  460. data/lib/puppet/indirector/status.rb +3 -0
  461. data/lib/puppet/indirector/status/local.rb +12 -0
  462. data/lib/puppet/indirector/status/rest.rb +9 -0
  463. data/lib/puppet/indirector/store_configs.rb +30 -0
  464. data/lib/puppet/indirector/terminus.rb +169 -0
  465. data/lib/puppet/indirector/yaml.rb +63 -0
  466. data/lib/puppet/interface.rb +235 -0
  467. data/lib/puppet/interface/action.rb +374 -0
  468. data/lib/puppet/interface/action_builder.rb +149 -0
  469. data/lib/puppet/interface/action_manager.rb +101 -0
  470. data/lib/puppet/interface/documentation.rb +342 -0
  471. data/lib/puppet/interface/face_collection.rb +125 -0
  472. data/lib/puppet/interface/option.rb +150 -0
  473. data/lib/puppet/interface/option_builder.rb +93 -0
  474. data/lib/puppet/interface/option_manager.rb +99 -0
  475. data/lib/puppet/loaders.rb +19 -0
  476. data/lib/puppet/metatype/manager.rb +184 -0
  477. data/lib/puppet/module.rb +339 -0
  478. data/lib/puppet/module_tool.rb +194 -0
  479. data/lib/puppet/module_tool/applications.rb +14 -0
  480. data/lib/puppet/module_tool/applications/application.rb +98 -0
  481. data/lib/puppet/module_tool/applications/builder.rb +148 -0
  482. data/lib/puppet/module_tool/applications/checksummer.rb +62 -0
  483. data/lib/puppet/module_tool/applications/installer.rb +353 -0
  484. data/lib/puppet/module_tool/applications/searcher.rb +29 -0
  485. data/lib/puppet/module_tool/applications/uninstaller.rb +117 -0
  486. data/lib/puppet/module_tool/applications/unpacker.rb +100 -0
  487. data/lib/puppet/module_tool/applications/upgrader.rb +279 -0
  488. data/lib/puppet/module_tool/checksums.rb +49 -0
  489. data/lib/puppet/module_tool/contents_description.rb +84 -0
  490. data/lib/puppet/module_tool/dependency.rb +42 -0
  491. data/lib/puppet/module_tool/errors.rb +11 -0
  492. data/lib/puppet/module_tool/errors/base.rb +15 -0
  493. data/lib/puppet/module_tool/errors/installer.rb +95 -0
  494. data/lib/puppet/module_tool/errors/shared.rb +188 -0
  495. data/lib/puppet/module_tool/errors/uninstaller.rb +45 -0
  496. data/lib/puppet/module_tool/errors/upgrader.rb +63 -0
  497. data/lib/puppet/module_tool/install_directory.rb +45 -0
  498. data/lib/puppet/module_tool/installed_modules.rb +98 -0
  499. data/lib/puppet/module_tool/local_tarball.rb +90 -0
  500. data/lib/puppet/module_tool/metadata.rb +209 -0
  501. data/lib/puppet/module_tool/modulefile.rb +78 -0
  502. data/lib/puppet/module_tool/shared_behaviors.rb +180 -0
  503. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +7 -0
  504. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +79 -0
  505. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +18 -0
  506. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +41 -0
  507. data/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +1 -0
  508. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +7 -0
  509. data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +1 -0
  510. data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +12 -0
  511. data/lib/puppet/module_tool/tar.rb +17 -0
  512. data/lib/puppet/module_tool/tar/gnu.rb +19 -0
  513. data/lib/puppet/module_tool/tar/mini.rb +53 -0
  514. data/lib/puppet/network.rb +3 -0
  515. data/lib/puppet/network/auth_config_parser.rb +84 -0
  516. data/lib/puppet/network/authconfig.rb +76 -0
  517. data/lib/puppet/network/authentication.rb +35 -0
  518. data/lib/puppet/network/authorization.rb +34 -0
  519. data/lib/puppet/network/authstore.rb +282 -0
  520. data/lib/puppet/network/client_request.rb +29 -0
  521. data/lib/puppet/network/format.rb +110 -0
  522. data/lib/puppet/network/format_handler.rb +105 -0
  523. data/lib/puppet/network/format_support.rb +124 -0
  524. data/lib/puppet/network/formats.rb +216 -0
  525. data/lib/puppet/network/http.rb +20 -0
  526. data/lib/puppet/network/http/api.rb +2 -0
  527. data/lib/puppet/network/http/api/v1.rb +222 -0
  528. data/lib/puppet/network/http/api/v2.rb +32 -0
  529. data/lib/puppet/network/http/api/v2/authorization.rb +15 -0
  530. data/lib/puppet/network/http/api/v2/environments.rb +35 -0
  531. data/lib/puppet/network/http/compression.rb +114 -0
  532. data/lib/puppet/network/http/connection.rb +240 -0
  533. data/lib/puppet/network/http/error.rb +69 -0
  534. data/lib/puppet/network/http/factory.rb +44 -0
  535. data/lib/puppet/network/http/handler.rb +186 -0
  536. data/lib/puppet/network/http/issues.rb +11 -0
  537. data/lib/puppet/network/http/memory_response.rb +13 -0
  538. data/lib/puppet/network/http/nocache_pool.rb +21 -0
  539. data/lib/puppet/network/http/pool.rb +120 -0
  540. data/lib/puppet/network/http/rack.rb +33 -0
  541. data/lib/puppet/network/http/rack/rest.rb +138 -0
  542. data/lib/puppet/network/http/request.rb +56 -0
  543. data/lib/puppet/network/http/response.rb +11 -0
  544. data/lib/puppet/network/http/route.rb +100 -0
  545. data/lib/puppet/network/http/session.rb +17 -0
  546. data/lib/puppet/network/http/site.rb +39 -0
  547. data/lib/puppet/network/http/webrick.rb +119 -0
  548. data/lib/puppet/network/http/webrick/rest.rb +104 -0
  549. data/lib/puppet/network/http_pool.rb +61 -0
  550. data/lib/puppet/network/resolver.rb +86 -0
  551. data/lib/puppet/network/rest_controller.rb +2 -0
  552. data/lib/puppet/network/rights.rb +219 -0
  553. data/lib/puppet/network/server.rb +39 -0
  554. data/lib/puppet/node.rb +184 -0
  555. data/lib/puppet/node/environment.rb +595 -0
  556. data/lib/puppet/node/facts.rb +155 -0
  557. data/lib/puppet/parameter.rb +585 -0
  558. data/lib/puppet/parameter/boolean.rb +15 -0
  559. data/lib/puppet/parameter/package_options.rb +31 -0
  560. data/lib/puppet/parameter/path.rb +57 -0
  561. data/lib/puppet/parameter/value.rb +93 -0
  562. data/lib/puppet/parameter/value_collection.rb +211 -0
  563. data/lib/puppet/parser.rb +7 -0
  564. data/lib/puppet/parser/ast.rb +129 -0
  565. data/lib/puppet/parser/ast/arithmetic_operator.rb +91 -0
  566. data/lib/puppet/parser/ast/astarray.rb +50 -0
  567. data/lib/puppet/parser/ast/asthash.rb +37 -0
  568. data/lib/puppet/parser/ast/block_expression.rb +40 -0
  569. data/lib/puppet/parser/ast/boolean_operator.rb +46 -0
  570. data/lib/puppet/parser/ast/branch.rb +22 -0
  571. data/lib/puppet/parser/ast/caseopt.rb +52 -0
  572. data/lib/puppet/parser/ast/casestatement.rb +41 -0
  573. data/lib/puppet/parser/ast/collection.rb +53 -0
  574. data/lib/puppet/parser/ast/collexpr.rb +109 -0
  575. data/lib/puppet/parser/ast/comparison_operator.rb +38 -0
  576. data/lib/puppet/parser/ast/definition.rb +17 -0
  577. data/lib/puppet/parser/ast/else.rb +22 -0
  578. data/lib/puppet/parser/ast/function.rb +59 -0
  579. data/lib/puppet/parser/ast/hostclass.rb +29 -0
  580. data/lib/puppet/parser/ast/ifstatement.rb +34 -0
  581. data/lib/puppet/parser/ast/in_operator.rb +24 -0
  582. data/lib/puppet/parser/ast/lambda.rb +135 -0
  583. data/lib/puppet/parser/ast/leaf.rb +232 -0
  584. data/lib/puppet/parser/ast/match_operator.rb +28 -0
  585. data/lib/puppet/parser/ast/method_call.rb +77 -0
  586. data/lib/puppet/parser/ast/minus.rb +23 -0
  587. data/lib/puppet/parser/ast/node.rb +25 -0
  588. data/lib/puppet/parser/ast/nop.rb +11 -0
  589. data/lib/puppet/parser/ast/not.rb +19 -0
  590. data/lib/puppet/parser/ast/pops_bridge.rb +252 -0
  591. data/lib/puppet/parser/ast/relationship.rb +47 -0
  592. data/lib/puppet/parser/ast/resource.rb +67 -0
  593. data/lib/puppet/parser/ast/resource_defaults.rb +24 -0
  594. data/lib/puppet/parser/ast/resource_instance.rb +9 -0
  595. data/lib/puppet/parser/ast/resource_override.rb +62 -0
  596. data/lib/puppet/parser/ast/resource_reference.rb +28 -0
  597. data/lib/puppet/parser/ast/resourceparam.rb +27 -0
  598. data/lib/puppet/parser/ast/selector.rb +50 -0
  599. data/lib/puppet/parser/ast/top_level_construct.rb +4 -0
  600. data/lib/puppet/parser/ast/vardef.rb +38 -0
  601. data/lib/puppet/parser/code_merger.rb +13 -0
  602. data/lib/puppet/parser/collector.rb +177 -0
  603. data/lib/puppet/parser/compiler.rb +626 -0
  604. data/lib/puppet/parser/e4_parser_adapter.rb +81 -0
  605. data/lib/puppet/parser/files.rb +137 -0
  606. data/lib/puppet/parser/functions.rb +262 -0
  607. data/lib/puppet/parser/functions/assert_type.rb +31 -0
  608. data/lib/puppet/parser/functions/contain.rb +36 -0
  609. data/lib/puppet/parser/functions/create_resources.rb +82 -0
  610. data/lib/puppet/parser/functions/defined.rb +73 -0
  611. data/lib/puppet/parser/functions/digest.rb +5 -0
  612. data/lib/puppet/parser/functions/each.rb +48 -0
  613. data/lib/puppet/parser/functions/epp.rb +45 -0
  614. data/lib/puppet/parser/functions/extlookup.rb +153 -0
  615. data/lib/puppet/parser/functions/fail.rb +4 -0
  616. data/lib/puppet/parser/functions/file.rb +31 -0
  617. data/lib/puppet/parser/functions/filter.rb +44 -0
  618. data/lib/puppet/parser/functions/fqdn_rand.rb +21 -0
  619. data/lib/puppet/parser/functions/generate.rb +37 -0
  620. data/lib/puppet/parser/functions/hiera.rb +26 -0
  621. data/lib/puppet/parser/functions/hiera_array.rb +27 -0
  622. data/lib/puppet/parser/functions/hiera_hash.rb +29 -0
  623. data/lib/puppet/parser/functions/hiera_include.rb +44 -0
  624. data/lib/puppet/parser/functions/include.rb +35 -0
  625. data/lib/puppet/parser/functions/inline_epp.rb +76 -0
  626. data/lib/puppet/parser/functions/inline_template.rb +21 -0
  627. data/lib/puppet/parser/functions/lookup.rb +144 -0
  628. data/lib/puppet/parser/functions/map.rb +43 -0
  629. data/lib/puppet/parser/functions/match.rb +28 -0
  630. data/lib/puppet/parser/functions/md5.rb +5 -0
  631. data/lib/puppet/parser/functions/realize.rb +14 -0
  632. data/lib/puppet/parser/functions/reduce.rb +71 -0
  633. data/lib/puppet/parser/functions/regsubst.rb +116 -0
  634. data/lib/puppet/parser/functions/require.rb +61 -0
  635. data/lib/puppet/parser/functions/search.rb +12 -0
  636. data/lib/puppet/parser/functions/sha1.rb +5 -0
  637. data/lib/puppet/parser/functions/shellquote.rb +61 -0
  638. data/lib/puppet/parser/functions/slice.rb +48 -0
  639. data/lib/puppet/parser/functions/split.rb +28 -0
  640. data/lib/puppet/parser/functions/sprintf.rb +36 -0
  641. data/lib/puppet/parser/functions/tag.rb +6 -0
  642. data/lib/puppet/parser/functions/tagged.rb +18 -0
  643. data/lib/puppet/parser/functions/template.rb +30 -0
  644. data/lib/puppet/parser/functions/versioncmp.rb +30 -0
  645. data/lib/puppet/parser/functions/with.rb +21 -0
  646. data/lib/puppet/parser/grammar.ra +806 -0
  647. data/lib/puppet/parser/lexer.rb +608 -0
  648. data/lib/puppet/parser/makefile +8 -0
  649. data/lib/puppet/parser/methods.rb +69 -0
  650. data/lib/puppet/parser/parser.rb +2559 -0
  651. data/lib/puppet/parser/parser_factory.rb +76 -0
  652. data/lib/puppet/parser/parser_support.rb +195 -0
  653. data/lib/puppet/parser/relationship.rb +62 -0
  654. data/lib/puppet/parser/resource.rb +277 -0
  655. data/lib/puppet/parser/resource/param.rb +25 -0
  656. data/lib/puppet/parser/scope.rb +906 -0
  657. data/lib/puppet/parser/templatewrapper.rb +127 -0
  658. data/lib/puppet/parser/type_loader.rb +152 -0
  659. data/lib/puppet/parser/yaml_trimmer.rb +7 -0
  660. data/lib/puppet/pops.rb +118 -0
  661. data/lib/puppet/pops/adaptable.rb +190 -0
  662. data/lib/puppet/pops/adapters.rb +109 -0
  663. data/lib/puppet/pops/binder/binder.rb +393 -0
  664. data/lib/puppet/pops/binder/binder_issues.rb +122 -0
  665. data/lib/puppet/pops/binder/bindings_checker.rb +197 -0
  666. data/lib/puppet/pops/binder/bindings_composer.rb +175 -0
  667. data/lib/puppet/pops/binder/bindings_factory.rb +805 -0
  668. data/lib/puppet/pops/binder/bindings_label_provider.rb +43 -0
  669. data/lib/puppet/pops/binder/bindings_loader.rb +88 -0
  670. data/lib/puppet/pops/binder/bindings_model.rb +68 -0
  671. data/lib/puppet/pops/binder/bindings_model_dumper.rb +187 -0
  672. data/lib/puppet/pops/binder/bindings_model_meta.rb +215 -0
  673. data/lib/puppet/pops/binder/bindings_validator_factory.rb +28 -0
  674. data/lib/puppet/pops/binder/config/binder_config.rb +107 -0
  675. data/lib/puppet/pops/binder/config/binder_config_checker.rb +142 -0
  676. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +32 -0
  677. data/lib/puppet/pops/binder/config/issues.rb +86 -0
  678. data/lib/puppet/pops/binder/injector.rb +767 -0
  679. data/lib/puppet/pops/binder/injector_entry.rb +57 -0
  680. data/lib/puppet/pops/binder/key_factory.rb +67 -0
  681. data/lib/puppet/pops/binder/lookup.rb +199 -0
  682. data/lib/puppet/pops/binder/producers.rb +826 -0
  683. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +34 -0
  684. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +84 -0
  685. data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +53 -0
  686. data/lib/puppet/pops/binder/system_bindings.rb +60 -0
  687. data/lib/puppet/pops/containment.rb +104 -0
  688. data/lib/puppet/pops/evaluator/access_operator.rb +604 -0
  689. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +175 -0
  690. data/lib/puppet/pops/evaluator/callable_signature.rb +100 -0
  691. data/lib/puppet/pops/evaluator/closure.rb +228 -0
  692. data/lib/puppet/pops/evaluator/compare_operator.rb +172 -0
  693. data/lib/puppet/pops/evaluator/epp_evaluator.rb +88 -0
  694. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1115 -0
  695. data/lib/puppet/pops/evaluator/external_syntax_support.rb +49 -0
  696. data/lib/puppet/pops/evaluator/relationship_operator.rb +157 -0
  697. data/lib/puppet/pops/evaluator/runtime3_support.rb +573 -0
  698. data/lib/puppet/pops/functions/dispatch.rb +76 -0
  699. data/lib/puppet/pops/functions/dispatcher.rb +70 -0
  700. data/lib/puppet/pops/functions/function.rb +77 -0
  701. data/lib/puppet/pops/issue_reporter.rb +87 -0
  702. data/lib/puppet/pops/issues.rb +548 -0
  703. data/lib/puppet/pops/label_provider.rb +76 -0
  704. data/lib/puppet/pops/loader/base_loader.rb +102 -0
  705. data/lib/puppet/pops/loader/dependency_loader.rb +60 -0
  706. data/lib/puppet/pops/loader/gem_support.rb +49 -0
  707. data/lib/puppet/pops/loader/loader.rb +180 -0
  708. data/lib/puppet/pops/loader/loader_paths.rb +118 -0
  709. data/lib/puppet/pops/loader/module_loaders.rb +242 -0
  710. data/lib/puppet/pops/loader/null_loader.rb +44 -0
  711. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +34 -0
  712. data/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
  713. data/lib/puppet/pops/loader/static_loader.rb +79 -0
  714. data/lib/puppet/pops/loader/uri_helper.rb +22 -0
  715. data/lib/puppet/pops/loaders.rb +240 -0
  716. data/lib/puppet/pops/model/ast_transformer.rb +643 -0
  717. data/lib/puppet/pops/model/ast_tree_dumper.rb +386 -0
  718. data/lib/puppet/pops/model/factory.rb +1040 -0
  719. data/lib/puppet/pops/model/model.rb +114 -0
  720. data/lib/puppet/pops/model/model_label_provider.rb +106 -0
  721. data/lib/puppet/pops/model/model_meta.rb +576 -0
  722. data/lib/puppet/pops/model/model_tree_dumper.rb +407 -0
  723. data/lib/puppet/pops/model/tree_dumper.rb +59 -0
  724. data/lib/puppet/pops/parser/code_merger.rb +17 -0
  725. data/lib/puppet/pops/parser/egrammar.ra +757 -0
  726. data/lib/puppet/pops/parser/eparser.rb +2655 -0
  727. data/lib/puppet/pops/parser/epp_parser.rb +51 -0
  728. data/lib/puppet/pops/parser/epp_support.rb +247 -0
  729. data/lib/puppet/pops/parser/evaluating_parser.rb +140 -0
  730. data/lib/puppet/pops/parser/heredoc_support.rb +139 -0
  731. data/lib/puppet/pops/parser/interpolation_support.rb +231 -0
  732. data/lib/puppet/pops/parser/lexer2.rb +696 -0
  733. data/lib/puppet/pops/parser/lexer_support.rb +113 -0
  734. data/lib/puppet/pops/parser/locatable.rb +23 -0
  735. data/lib/puppet/pops/parser/locator.rb +291 -0
  736. data/lib/puppet/pops/parser/parser_support.rb +213 -0
  737. data/lib/puppet/pops/parser/slurp_support.rb +95 -0
  738. data/lib/puppet/pops/patterns.rb +44 -0
  739. data/lib/puppet/pops/semantic_error.rb +17 -0
  740. data/lib/puppet/pops/types/class_loader.rb +129 -0
  741. data/lib/puppet/pops/types/enumeration.rb +34 -0
  742. data/lib/puppet/pops/types/type_calculator.rb +1698 -0
  743. data/lib/puppet/pops/types/type_factory.rb +432 -0
  744. data/lib/puppet/pops/types/type_parser.rb +475 -0
  745. data/lib/puppet/pops/types/types.rb +397 -0
  746. data/lib/puppet/pops/types/types_meta.rb +223 -0
  747. data/lib/puppet/pops/utils.rb +122 -0
  748. data/lib/puppet/pops/validation.rb +432 -0
  749. data/lib/puppet/pops/validation/checker4_0.rb +760 -0
  750. data/lib/puppet/pops/validation/validator_factory_4_0.rb +30 -0
  751. data/lib/puppet/pops/visitable.rb +6 -0
  752. data/lib/puppet/pops/visitor.rb +89 -0
  753. data/lib/puppet/property.rb +617 -0
  754. data/lib/puppet/property/boolean.rb +7 -0
  755. data/lib/puppet/property/ensure.rb +105 -0
  756. data/lib/puppet/property/keyvalue.rb +95 -0
  757. data/lib/puppet/property/list.rb +78 -0
  758. data/lib/puppet/property/ordered_list.rb +29 -0
  759. data/lib/puppet/provider.rb +651 -0
  760. data/lib/puppet/provider/aixobject.rb +392 -0
  761. data/lib/puppet/provider/augeas/augeas.rb +509 -0
  762. data/lib/puppet/provider/cisco.rb +9 -0
  763. data/lib/puppet/provider/command.rb +25 -0
  764. data/lib/puppet/provider/computer/computer.rb +20 -0
  765. data/lib/puppet/provider/confine.rb +6 -0
  766. data/lib/puppet/provider/cron/crontab.rb +260 -0
  767. data/lib/puppet/provider/exec.rb +100 -0
  768. data/lib/puppet/provider/exec/posix.rb +48 -0
  769. data/lib/puppet/provider/exec/shell.rb +25 -0
  770. data/lib/puppet/provider/exec/windows.rb +55 -0
  771. data/lib/puppet/provider/file/posix.rb +136 -0
  772. data/lib/puppet/provider/file/windows.rb +104 -0
  773. data/lib/puppet/provider/group/aix.rb +141 -0
  774. data/lib/puppet/provider/group/directoryservice.rb +12 -0
  775. data/lib/puppet/provider/group/groupadd.rb +85 -0
  776. data/lib/puppet/provider/group/ldap.rb +45 -0
  777. data/lib/puppet/provider/group/pw.rb +48 -0
  778. data/lib/puppet/provider/group/windows_adsi.rb +86 -0
  779. data/lib/puppet/provider/host/parsed.rb +44 -0
  780. data/lib/puppet/provider/interface/cisco.rb +27 -0
  781. data/lib/puppet/provider/ldap.rb +137 -0
  782. data/lib/puppet/provider/macauthorization/macauthorization.rb +309 -0
  783. data/lib/puppet/provider/mailalias/aliases.rb +39 -0
  784. data/lib/puppet/provider/maillist/mailman.rb +108 -0
  785. data/lib/puppet/provider/mcx/mcxcontent.rb +172 -0
  786. data/lib/puppet/provider/mount.rb +58 -0
  787. data/lib/puppet/provider/mount/parsed.rb +123 -0
  788. data/lib/puppet/provider/naginator.rb +63 -0
  789. data/lib/puppet/provider/nameservice.rb +292 -0
  790. data/lib/puppet/provider/nameservice/directoryservice.rb +588 -0
  791. data/lib/puppet/provider/nameservice/objectadd.rb +33 -0
  792. data/lib/puppet/provider/nameservice/pw.rb +21 -0
  793. data/lib/puppet/provider/network_device.rb +68 -0
  794. data/lib/puppet/provider/package.rb +52 -0
  795. data/lib/puppet/provider/package/aix.rb +152 -0
  796. data/lib/puppet/provider/package/appdmg.rb +106 -0
  797. data/lib/puppet/provider/package/apple.rb +47 -0
  798. data/lib/puppet/provider/package/apt.rb +116 -0
  799. data/lib/puppet/provider/package/aptitude.rb +29 -0
  800. data/lib/puppet/provider/package/aptrpm.rb +83 -0
  801. data/lib/puppet/provider/package/blastwave.rb +111 -0
  802. data/lib/puppet/provider/package/dpkg.rb +165 -0
  803. data/lib/puppet/provider/package/fink.rb +79 -0
  804. data/lib/puppet/provider/package/freebsd.rb +47 -0
  805. data/lib/puppet/provider/package/gem.rb +135 -0
  806. data/lib/puppet/provider/package/hpux.rb +44 -0
  807. data/lib/puppet/provider/package/macports.rb +107 -0
  808. data/lib/puppet/provider/package/msi.rb +125 -0
  809. data/lib/puppet/provider/package/nim.rb +280 -0
  810. data/lib/puppet/provider/package/openbsd.rb +228 -0
  811. data/lib/puppet/provider/package/opkg.rb +76 -0
  812. data/lib/puppet/provider/package/pacman.rb +234 -0
  813. data/lib/puppet/provider/package/pip.rb +119 -0
  814. data/lib/puppet/provider/package/pkg.rb +190 -0
  815. data/lib/puppet/provider/package/pkgdmg.rb +149 -0
  816. data/lib/puppet/provider/package/pkgin.rb +87 -0
  817. data/lib/puppet/provider/package/pkgutil.rb +186 -0
  818. data/lib/puppet/provider/package/portage.rb +149 -0
  819. data/lib/puppet/provider/package/ports.rb +94 -0
  820. data/lib/puppet/provider/package/portupgrade.rb +241 -0
  821. data/lib/puppet/provider/package/rpm.rb +187 -0
  822. data/lib/puppet/provider/package/rug.rb +52 -0
  823. data/lib/puppet/provider/package/sun.rb +132 -0
  824. data/lib/puppet/provider/package/sunfreeware.rb +9 -0
  825. data/lib/puppet/provider/package/up2date.rb +40 -0
  826. data/lib/puppet/provider/package/urpmi.rb +55 -0
  827. data/lib/puppet/provider/package/windows.rb +113 -0
  828. data/lib/puppet/provider/package/windows/exe_package.rb +70 -0
  829. data/lib/puppet/provider/package/windows/msi_package.rb +62 -0
  830. data/lib/puppet/provider/package/windows/package.rb +92 -0
  831. data/lib/puppet/provider/package/yum.rb +199 -0
  832. data/lib/puppet/provider/package/yumhelper.py +159 -0
  833. data/lib/puppet/provider/package/zypper.rb +90 -0
  834. data/lib/puppet/provider/parsedfile.rb +459 -0
  835. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +559 -0
  836. data/lib/puppet/provider/selboolean/getsetsebool.rb +47 -0
  837. data/lib/puppet/provider/selmodule/semodule.rb +134 -0
  838. data/lib/puppet/provider/service/base.rb +106 -0
  839. data/lib/puppet/provider/service/bsd.rb +51 -0
  840. data/lib/puppet/provider/service/daemontools.rb +194 -0
  841. data/lib/puppet/provider/service/debian.rb +64 -0
  842. data/lib/puppet/provider/service/freebsd.rb +143 -0
  843. data/lib/puppet/provider/service/gentoo.rb +45 -0
  844. data/lib/puppet/provider/service/init.rb +169 -0
  845. data/lib/puppet/provider/service/launchd.rb +353 -0
  846. data/lib/puppet/provider/service/openbsd.rb +342 -0
  847. data/lib/puppet/provider/service/openrc.rb +71 -0
  848. data/lib/puppet/provider/service/openwrt.rb +36 -0
  849. data/lib/puppet/provider/service/redhat.rb +67 -0
  850. data/lib/puppet/provider/service/runit.rb +111 -0
  851. data/lib/puppet/provider/service/service.rb +42 -0
  852. data/lib/puppet/provider/service/smf.rb +116 -0
  853. data/lib/puppet/provider/service/src.rb +120 -0
  854. data/lib/puppet/provider/service/systemd.rb +65 -0
  855. data/lib/puppet/provider/service/upstart.rb +355 -0
  856. data/lib/puppet/provider/service/windows.rb +106 -0
  857. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +89 -0
  858. data/lib/puppet/provider/sshkey/parsed.rb +40 -0
  859. data/lib/puppet/provider/user/aix.rb +369 -0
  860. data/lib/puppet/provider/user/directoryservice.rb +685 -0
  861. data/lib/puppet/provider/user/hpux.rb +66 -0
  862. data/lib/puppet/provider/user/ldap.rb +128 -0
  863. data/lib/puppet/provider/user/pw.rb +97 -0
  864. data/lib/puppet/provider/user/user_role_add.rb +210 -0
  865. data/lib/puppet/provider/user/useradd.rb +231 -0
  866. data/lib/puppet/provider/user/windows_adsi.rb +99 -0
  867. data/lib/puppet/provider/vlan/cisco.rb +28 -0
  868. data/lib/puppet/provider/yumrepo/inifile.rb +300 -0
  869. data/lib/puppet/provider/zfs/zfs.rb +83 -0
  870. data/lib/puppet/provider/zone/solaris.rb +361 -0
  871. data/lib/puppet/provider/zpool/zpool.rb +120 -0
  872. data/lib/puppet/rails.rb +139 -0
  873. data/lib/puppet/rails/benchmark.rb +63 -0
  874. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +13 -0
  875. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +13 -0
  876. data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
  877. data/lib/puppet/rails/database/004_add_inventory_service_tables.rb +36 -0
  878. data/lib/puppet/rails/database/schema.rb +136 -0
  879. data/lib/puppet/rails/fact_name.rb +7 -0
  880. data/lib/puppet/rails/fact_value.rb +10 -0
  881. data/lib/puppet/rails/host.rb +258 -0
  882. data/lib/puppet/rails/inventory_fact.rb +5 -0
  883. data/lib/puppet/rails/inventory_node.rb +43 -0
  884. data/lib/puppet/rails/param_name.rb +25 -0
  885. data/lib/puppet/rails/param_value.rb +74 -0
  886. data/lib/puppet/rails/puppet_tag.rb +10 -0
  887. data/lib/puppet/rails/resource.rb +235 -0
  888. data/lib/puppet/rails/resource_tag.rb +26 -0
  889. data/lib/puppet/rails/source_file.rb +8 -0
  890. data/lib/puppet/reference/configuration.rb +73 -0
  891. data/lib/puppet/reference/function.rb +17 -0
  892. data/lib/puppet/reference/indirection.rb +71 -0
  893. data/lib/puppet/reference/metaparameter.rb +44 -0
  894. data/lib/puppet/reference/providers.rb +119 -0
  895. data/lib/puppet/reference/report.rb +23 -0
  896. data/lib/puppet/reference/type.rb +116 -0
  897. data/lib/puppet/relationship.rb +103 -0
  898. data/lib/puppet/reports.rb +89 -0
  899. data/lib/puppet/reports/http.rb +31 -0
  900. data/lib/puppet/reports/log.rb +14 -0
  901. data/lib/puppet/reports/rrdgraph.rb +128 -0
  902. data/lib/puppet/reports/store.rb +68 -0
  903. data/lib/puppet/reports/tagmail.rb +179 -0
  904. data/lib/puppet/resource.rb +610 -0
  905. data/lib/puppet/resource/catalog.rb +554 -0
  906. data/lib/puppet/resource/status.rb +155 -0
  907. data/lib/puppet/resource/type.rb +413 -0
  908. data/lib/puppet/resource/type_collection.rb +230 -0
  909. data/lib/puppet/resource/type_collection_helper.rb +7 -0
  910. data/lib/puppet/run.rb +109 -0
  911. data/lib/puppet/scheduler.rb +16 -0
  912. data/lib/puppet/scheduler/job.rb +53 -0
  913. data/lib/puppet/scheduler/scheduler.rb +44 -0
  914. data/lib/puppet/scheduler/splay_job.rb +32 -0
  915. data/lib/puppet/scheduler/timer.rb +13 -0
  916. data/lib/puppet/settings.rb +1392 -0
  917. data/lib/puppet/settings/array_setting.rb +17 -0
  918. data/lib/puppet/settings/autosign_setting.rb +22 -0
  919. data/lib/puppet/settings/base_setting.rb +195 -0
  920. data/lib/puppet/settings/boolean_setting.rb +32 -0
  921. data/lib/puppet/settings/config_file.rb +139 -0
  922. data/lib/puppet/settings/directory_setting.rb +12 -0
  923. data/lib/puppet/settings/duration_setting.rb +32 -0
  924. data/lib/puppet/settings/enum_setting.rb +16 -0
  925. data/lib/puppet/settings/environment_conf.rb +175 -0
  926. data/lib/puppet/settings/errors.rb +11 -0
  927. data/lib/puppet/settings/file_or_directory_setting.rb +34 -0
  928. data/lib/puppet/settings/file_setting.rb +234 -0
  929. data/lib/puppet/settings/ini_file.rb +171 -0
  930. data/lib/puppet/settings/path_setting.rb +8 -0
  931. data/lib/puppet/settings/priority_setting.rb +42 -0
  932. data/lib/puppet/settings/string_setting.rb +9 -0
  933. data/lib/puppet/settings/terminus_setting.rb +14 -0
  934. data/lib/puppet/settings/ttl_setting.rb +48 -0
  935. data/lib/puppet/settings/value_translator.rb +15 -0
  936. data/lib/puppet/ssl.rb +13 -0
  937. data/lib/puppet/ssl/base.rb +140 -0
  938. data/lib/puppet/ssl/certificate.rb +65 -0
  939. data/lib/puppet/ssl/certificate_authority.rb +517 -0
  940. data/lib/puppet/ssl/certificate_authority/autosign_command.rb +45 -0
  941. data/lib/puppet/ssl/certificate_authority/interface.rb +178 -0
  942. data/lib/puppet/ssl/certificate_factory.rb +219 -0
  943. data/lib/puppet/ssl/certificate_request.rb +299 -0
  944. data/lib/puppet/ssl/certificate_request_attributes.rb +37 -0
  945. data/lib/puppet/ssl/certificate_revocation_list.rb +110 -0
  946. data/lib/puppet/ssl/certificate_signer.rb +22 -0
  947. data/lib/puppet/ssl/configuration.rb +64 -0
  948. data/lib/puppet/ssl/digest.rb +20 -0
  949. data/lib/puppet/ssl/host.rb +372 -0
  950. data/lib/puppet/ssl/inventory.rb +55 -0
  951. data/lib/puppet/ssl/key.rb +59 -0
  952. data/lib/puppet/ssl/oids.rb +78 -0
  953. data/lib/puppet/ssl/validator.rb +60 -0
  954. data/lib/puppet/ssl/validator/default_validator.rb +154 -0
  955. data/lib/puppet/ssl/validator/no_validator.rb +20 -0
  956. data/lib/puppet/status.rb +45 -0
  957. data/lib/puppet/test/test_helper.rb +243 -0
  958. data/lib/puppet/transaction.rb +369 -0
  959. data/lib/puppet/transaction/additional_resource_generator.rb +126 -0
  960. data/lib/puppet/transaction/event.rb +107 -0
  961. data/lib/puppet/transaction/event_manager.rb +122 -0
  962. data/lib/puppet/transaction/report.rb +383 -0
  963. data/lib/puppet/transaction/resource_harness.rb +251 -0
  964. data/lib/puppet/type.rb +2452 -0
  965. data/lib/puppet/type/augeas.rb +201 -0
  966. data/lib/puppet/type/component.rb +77 -0
  967. data/lib/puppet/type/computer.rb +66 -0
  968. data/lib/puppet/type/cron.rb +488 -0
  969. data/lib/puppet/type/exec.rb +592 -0
  970. data/lib/puppet/type/file.rb +933 -0
  971. data/lib/puppet/type/file/checksum.rb +43 -0
  972. data/lib/puppet/type/file/content.rb +241 -0
  973. data/lib/puppet/type/file/ctime.rb +20 -0
  974. data/lib/puppet/type/file/ensure.rb +189 -0
  975. data/lib/puppet/type/file/group.rb +41 -0
  976. data/lib/puppet/type/file/mode.rb +168 -0
  977. data/lib/puppet/type/file/mtime.rb +18 -0
  978. data/lib/puppet/type/file/owner.rb +44 -0
  979. data/lib/puppet/type/file/selcontext.rb +124 -0
  980. data/lib/puppet/type/file/source.rb +259 -0
  981. data/lib/puppet/type/file/target.rb +87 -0
  982. data/lib/puppet/type/file/type.rb +19 -0
  983. data/lib/puppet/type/filebucket.rb +122 -0
  984. data/lib/puppet/type/group.rb +188 -0
  985. data/lib/puppet/type/host.rb +86 -0
  986. data/lib/puppet/type/interface.rb +116 -0
  987. data/lib/puppet/type/k5login.rb +88 -0
  988. data/lib/puppet/type/macauthorization.rb +167 -0
  989. data/lib/puppet/type/mailalias.rb +48 -0
  990. data/lib/puppet/type/maillist.rb +62 -0
  991. data/lib/puppet/type/mcx.rb +98 -0
  992. data/lib/puppet/type/mount.rb +286 -0
  993. data/lib/puppet/type/nagios_command.rb +3 -0
  994. data/lib/puppet/type/nagios_contact.rb +3 -0
  995. data/lib/puppet/type/nagios_contactgroup.rb +3 -0
  996. data/lib/puppet/type/nagios_host.rb +3 -0
  997. data/lib/puppet/type/nagios_hostdependency.rb +3 -0
  998. data/lib/puppet/type/nagios_hostescalation.rb +3 -0
  999. data/lib/puppet/type/nagios_hostextinfo.rb +3 -0
  1000. data/lib/puppet/type/nagios_hostgroup.rb +3 -0
  1001. data/lib/puppet/type/nagios_service.rb +3 -0
  1002. data/lib/puppet/type/nagios_servicedependency.rb +3 -0
  1003. data/lib/puppet/type/nagios_serviceescalation.rb +3 -0
  1004. data/lib/puppet/type/nagios_serviceextinfo.rb +3 -0
  1005. data/lib/puppet/type/nagios_servicegroup.rb +3 -0
  1006. data/lib/puppet/type/nagios_timeperiod.rb +3 -0
  1007. data/lib/puppet/type/notify.rb +44 -0
  1008. data/lib/puppet/type/package.rb +466 -0
  1009. data/lib/puppet/type/resources.rb +187 -0
  1010. data/lib/puppet/type/router.rb +17 -0
  1011. data/lib/puppet/type/schedule.rb +469 -0
  1012. data/lib/puppet/type/scheduled_task.rb +169 -0
  1013. data/lib/puppet/type/selboolean.rb +26 -0
  1014. data/lib/puppet/type/selmodule.rb +59 -0
  1015. data/lib/puppet/type/service.rb +234 -0
  1016. data/lib/puppet/type/ssh_authorized_key.rb +153 -0
  1017. data/lib/puppet/type/sshkey.rb +73 -0
  1018. data/lib/puppet/type/stage.rb +27 -0
  1019. data/lib/puppet/type/tidy.rb +324 -0
  1020. data/lib/puppet/type/user.rb +688 -0
  1021. data/lib/puppet/type/vlan.rb +26 -0
  1022. data/lib/puppet/type/whit.rb +34 -0
  1023. data/lib/puppet/type/yumrepo.rb +363 -0
  1024. data/lib/puppet/type/zfs.rb +150 -0
  1025. data/lib/puppet/type/zone.rb +382 -0
  1026. data/lib/puppet/type/zpool.rb +91 -0
  1027. data/lib/puppet/util.rb +554 -0
  1028. data/lib/puppet/util/autoload.rb +227 -0
  1029. data/lib/puppet/util/backups.rb +86 -0
  1030. data/lib/puppet/util/cacher.rb +74 -0
  1031. data/lib/puppet/util/checksums.rb +202 -0
  1032. data/lib/puppet/util/classgen.rb +236 -0
  1033. data/lib/puppet/util/colors.rb +217 -0
  1034. data/lib/puppet/util/command_line.rb +199 -0
  1035. data/lib/puppet/util/command_line/puppet_option_parser.rb +87 -0
  1036. data/lib/puppet/util/command_line/trollop.rb +824 -0
  1037. data/lib/puppet/util/constant_inflector.rb +24 -0
  1038. data/lib/puppet/util/diff.rb +79 -0
  1039. data/lib/puppet/util/docs.rb +128 -0
  1040. data/lib/puppet/util/errors.rb +106 -0
  1041. data/lib/puppet/util/execution.rb +327 -0
  1042. data/lib/puppet/util/execution_stub.rb +26 -0
  1043. data/lib/puppet/util/feature.rb +97 -0
  1044. data/lib/puppet/util/file_watcher.rb +28 -0
  1045. data/lib/puppet/util/fileparsing.rb +376 -0
  1046. data/lib/puppet/util/filetype.rb +303 -0
  1047. data/lib/puppet/util/http_proxy.rb +65 -0
  1048. data/lib/puppet/util/inifile.rb +341 -0
  1049. data/lib/puppet/util/inline_docs.rb +26 -0
  1050. data/lib/puppet/util/instance_loader.rb +81 -0
  1051. data/lib/puppet/util/instrumentation.rb +152 -0
  1052. data/lib/puppet/util/instrumentation/data.rb +46 -0
  1053. data/lib/puppet/util/instrumentation/indirection_probe.rb +41 -0
  1054. data/lib/puppet/util/instrumentation/instrumentable.rb +136 -0
  1055. data/lib/puppet/util/instrumentation/listener.rb +72 -0
  1056. data/lib/puppet/util/instrumentation/listeners/log.rb +23 -0
  1057. data/lib/puppet/util/instrumentation/listeners/performance.rb +24 -0
  1058. data/lib/puppet/util/json_lockfile.rb +44 -0
  1059. data/lib/puppet/util/ldap.rb +2 -0
  1060. data/lib/puppet/util/ldap/connection.rb +71 -0
  1061. data/lib/puppet/util/ldap/generator.rb +42 -0
  1062. data/lib/puppet/util/ldap/manager.rb +278 -0
  1063. data/lib/puppet/util/libuser.conf +15 -0
  1064. data/lib/puppet/util/libuser.rb +12 -0
  1065. data/lib/puppet/util/limits.rb +12 -0
  1066. data/lib/puppet/util/lockfile.rb +66 -0
  1067. data/lib/puppet/util/log.rb +343 -0
  1068. data/lib/puppet/util/log/destination.rb +49 -0
  1069. data/lib/puppet/util/log/destinations.rb +232 -0
  1070. data/lib/puppet/util/log/rate_limited_logger.rb +40 -0
  1071. data/lib/puppet/util/logging.rb +181 -0
  1072. data/lib/puppet/util/metaid.rb +21 -0
  1073. data/lib/puppet/util/methodhelper.rb +32 -0
  1074. data/lib/puppet/util/metric.rb +210 -0
  1075. data/lib/puppet/util/monkey_patches.rb +225 -0
  1076. data/lib/puppet/util/monkey_patches/lines.rb +13 -0
  1077. data/lib/puppet/util/nagios_maker.rb +85 -0
  1078. data/lib/puppet/util/network_device.rb +17 -0
  1079. data/lib/puppet/util/network_device/base.rb +27 -0
  1080. data/lib/puppet/util/network_device/cisco.rb +4 -0
  1081. data/lib/puppet/util/network_device/cisco/device.rb +267 -0
  1082. data/lib/puppet/util/network_device/cisco/facts.rb +72 -0
  1083. data/lib/puppet/util/network_device/cisco/interface.rb +82 -0
  1084. data/lib/puppet/util/network_device/config.rb +93 -0
  1085. data/lib/puppet/util/network_device/ipcalc.rb +68 -0
  1086. data/lib/puppet/util/network_device/transport.rb +5 -0
  1087. data/lib/puppet/util/network_device/transport/base.rb +26 -0
  1088. data/lib/puppet/util/network_device/transport/ssh.rb +122 -0
  1089. data/lib/puppet/util/network_device/transport/telnet.rb +44 -0
  1090. data/lib/puppet/util/package.rb +31 -0
  1091. data/lib/puppet/util/pidlock.rb +62 -0
  1092. data/lib/puppet/util/platform.rb +22 -0
  1093. data/lib/puppet/util/plugins.rb +82 -0
  1094. data/lib/puppet/util/posix.rb +137 -0
  1095. data/lib/puppet/util/profiler.rb +53 -0
  1096. data/lib/puppet/util/profiler/aggregate.rb +85 -0
  1097. data/lib/puppet/util/profiler/around_profiler.rb +67 -0
  1098. data/lib/puppet/util/profiler/logging.rb +48 -0
  1099. data/lib/puppet/util/profiler/object_counts.rb +17 -0
  1100. data/lib/puppet/util/profiler/wall_clock.rb +35 -0
  1101. data/lib/puppet/util/provider_features.rb +184 -0
  1102. data/lib/puppet/util/pson.rb +13 -0
  1103. data/lib/puppet/util/queue.rb +96 -0
  1104. data/lib/puppet/util/queue/stomp.rb +60 -0
  1105. data/lib/puppet/util/rails/cache_accumulator.rb +65 -0
  1106. data/lib/puppet/util/rails/collection_merger.rb +17 -0
  1107. data/lib/puppet/util/rails/reference_serializer.rb +32 -0
  1108. data/lib/puppet/util/rdoc.rb +96 -0
  1109. data/lib/puppet/util/rdoc/code_objects.rb +334 -0
  1110. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +910 -0
  1111. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1085 -0
  1112. data/lib/puppet/util/rdoc/parser.rb +22 -0
  1113. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +477 -0
  1114. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc1.rb +19 -0
  1115. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
  1116. data/lib/puppet/util/reference.rb +124 -0
  1117. data/lib/puppet/util/resource_template.rb +61 -0
  1118. data/lib/puppet/util/retryaction.rb +47 -0
  1119. data/lib/puppet/util/rubygems.rb +75 -0
  1120. data/lib/puppet/util/run_mode.rb +82 -0
  1121. data/lib/puppet/util/selinux.rb +222 -0
  1122. data/lib/puppet/util/ssl.rb +53 -0
  1123. data/lib/puppet/util/storage.rb +89 -0
  1124. data/lib/puppet/util/suidmanager.rb +191 -0
  1125. data/lib/puppet/util/symbolic_file_mode.rb +144 -0
  1126. data/lib/puppet/util/tag_set.rb +41 -0
  1127. data/lib/puppet/util/tagging.rb +56 -0
  1128. data/lib/puppet/util/terminal.rb +16 -0
  1129. data/lib/puppet/util/user_attr.rb +21 -0
  1130. data/lib/puppet/util/warnings.rb +32 -0
  1131. data/lib/puppet/util/watched_file.rb +37 -0
  1132. data/lib/puppet/util/watcher.rb +17 -0
  1133. data/lib/puppet/util/watcher/change_watcher.rb +33 -0
  1134. data/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
  1135. data/lib/puppet/util/watcher/timer.rb +19 -0
  1136. data/lib/puppet/util/windows.rb +28 -0
  1137. data/lib/puppet/util/windows/access_control_entry.rb +84 -0
  1138. data/lib/puppet/util/windows/access_control_list.rb +113 -0
  1139. data/lib/puppet/util/windows/adsi.rb +430 -0
  1140. data/lib/puppet/util/windows/api_types.rb +255 -0
  1141. data/lib/puppet/util/windows/com.rb +224 -0
  1142. data/lib/puppet/util/windows/error.rb +83 -0
  1143. data/lib/puppet/util/windows/file.rb +401 -0
  1144. data/lib/puppet/util/windows/process.rb +354 -0
  1145. data/lib/puppet/util/windows/registry.rb +80 -0
  1146. data/lib/puppet/util/windows/root_certs.rb +108 -0
  1147. data/lib/puppet/util/windows/security.rb +920 -0
  1148. data/lib/puppet/util/windows/security_descriptor.rb +62 -0
  1149. data/lib/puppet/util/windows/sid.rb +162 -0
  1150. data/lib/puppet/util/windows/string.rb +16 -0
  1151. data/lib/puppet/util/windows/taskscheduler.rb +1241 -0
  1152. data/lib/puppet/util/windows/user.rb +292 -0
  1153. data/lib/puppet/util/yaml.rb +24 -0
  1154. data/lib/puppet/util/zaml.rb +419 -0
  1155. data/lib/puppet/vendor.rb +57 -0
  1156. data/lib/puppet/vendor/load_pathspec.rb +1 -0
  1157. data/lib/puppet/vendor/load_rgen.rb +1 -0
  1158. data/lib/puppet/vendor/load_safe_yaml.rb +1 -0
  1159. data/lib/puppet/vendor/load_semantic.rb +1 -0
  1160. data/lib/puppet/vendor/pathspec/CHANGELOG.md +2 -0
  1161. data/lib/puppet/vendor/pathspec/LICENSE +201 -0
  1162. data/lib/puppet/vendor/pathspec/PUPPET_README.md +6 -0
  1163. data/lib/puppet/vendor/pathspec/README.md +53 -0
  1164. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +121 -0
  1165. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +275 -0
  1166. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +17 -0
  1167. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +14 -0
  1168. data/lib/puppet/vendor/require_vendored.rb +9 -0
  1169. data/lib/puppet/vendor/rgen/CHANGELOG +197 -0
  1170. data/lib/puppet/vendor/rgen/MIT-LICENSE +20 -0
  1171. data/lib/puppet/vendor/rgen/PUPPET_README.md +6 -0
  1172. data/lib/puppet/vendor/rgen/README.rdoc +78 -0
  1173. data/lib/puppet/vendor/rgen/Rakefile +41 -0
  1174. data/lib/puppet/vendor/rgen/TODO +41 -0
  1175. data/lib/puppet/vendor/rgen/anounce.txt +61 -0
  1176. data/lib/puppet/vendor/rgen/design_rationale.txt +71 -0
  1177. data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +54 -0
  1178. data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +32 -0
  1179. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +562 -0
  1180. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +45 -0
  1181. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +43 -0
  1182. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +103 -0
  1183. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +89 -0
  1184. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +559 -0
  1185. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +26 -0
  1186. data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +20 -0
  1187. data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +91 -0
  1188. data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +28 -0
  1189. data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +37 -0
  1190. data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +172 -0
  1191. data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +45 -0
  1192. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +218 -0
  1193. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +81 -0
  1194. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +69 -0
  1195. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +47 -0
  1196. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +167 -0
  1197. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +91 -0
  1198. data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +129 -0
  1199. data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +63 -0
  1200. data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +140 -0
  1201. data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +289 -0
  1202. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +66 -0
  1203. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +66 -0
  1204. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +117 -0
  1205. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +169 -0
  1206. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +126 -0
  1207. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +331 -0
  1208. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +94 -0
  1209. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +137 -0
  1210. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +97 -0
  1211. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +128 -0
  1212. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +47 -0
  1213. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +168 -0
  1214. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +224 -0
  1215. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +556 -0
  1216. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +174 -0
  1217. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +89 -0
  1218. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +77 -0
  1219. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +30 -0
  1220. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +168 -0
  1221. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +23 -0
  1222. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +42 -0
  1223. data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +32 -0
  1224. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +334 -0
  1225. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +225 -0
  1226. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +156 -0
  1227. data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +121 -0
  1228. data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +18 -0
  1229. data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +47 -0
  1230. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +116 -0
  1231. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +71 -0
  1232. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +98 -0
  1233. data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +297 -0
  1234. data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +83 -0
  1235. data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +87 -0
  1236. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +234 -0
  1237. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +26 -0
  1238. data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +475 -0
  1239. data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +61 -0
  1240. data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +67 -0
  1241. data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +124 -0
  1242. data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +84 -0
  1243. data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +114 -0
  1244. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +68 -0
  1245. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +142 -0
  1246. data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +29 -0
  1247. data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +42 -0
  1248. data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +329 -0
  1249. data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +79 -0
  1250. data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +127 -0
  1251. data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +64 -0
  1252. data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +35 -0
  1253. data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +23 -0
  1254. data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +54 -0
  1255. data/lib/puppet/vendor/rgen/test/environment_test.rb +90 -0
  1256. data/lib/puppet/vendor/rgen/test/json_test.rb +171 -0
  1257. data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +1482 -0
  1258. data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +57 -0
  1259. data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +131 -0
  1260. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +98 -0
  1261. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +70 -0
  1262. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +42 -0
  1263. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +44 -0
  1264. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +9 -0
  1265. data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +178 -0
  1266. data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +59 -0
  1267. data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +242 -0
  1268. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +163 -0
  1269. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +163 -0
  1270. data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +156 -0
  1271. data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +94 -0
  1272. data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +42 -0
  1273. data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +23 -0
  1274. data/lib/puppet/vendor/rgen/test/model_builder_test.rb +6 -0
  1275. data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +30 -0
  1276. data/lib/puppet/vendor/rgen/test/output_handler_test.rb +58 -0
  1277. data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +48 -0
  1278. data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +102 -0
  1279. data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +117 -0
  1280. data/lib/puppet/vendor/rgen/test/rgen_test.rb +26 -0
  1281. data/lib/puppet/vendor/rgen/test/template_language_test.rb +163 -0
  1282. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +29 -0
  1283. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +9 -0
  1284. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +4 -0
  1285. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +1 -0
  1286. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +1 -0
  1287. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +12 -0
  1288. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +5 -0
  1289. data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +11 -0
  1290. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +7 -0
  1291. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +5 -0
  1292. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +8 -0
  1293. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +8 -0
  1294. data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +7 -0
  1295. data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +12 -0
  1296. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +1 -0
  1297. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +3 -0
  1298. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +5 -0
  1299. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +3 -0
  1300. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +3 -0
  1301. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +24 -0
  1302. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +13 -0
  1303. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +10 -0
  1304. data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +17 -0
  1305. data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +31 -0
  1306. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +9 -0
  1307. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +3 -0
  1308. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +4 -0
  1309. data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +29 -0
  1310. data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +119 -0
  1311. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
  1312. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +1029 -0
  1313. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +317 -0
  1314. data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +101 -0
  1315. data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +22 -0
  1316. data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +67 -0
  1317. data/lib/puppet/vendor/rgen/test/transformer_test.rb +254 -0
  1318. data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +99 -0
  1319. data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +97 -0
  1320. data/lib/puppet/vendor/rgen/test/util_test.rb +5 -0
  1321. data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +160 -0
  1322. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +94 -0
  1323. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +53 -0
  1324. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +49 -0
  1325. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +75 -0
  1326. data/lib/puppet/vendor/safe_yaml/CHANGES.md +104 -0
  1327. data/lib/puppet/vendor/safe_yaml/Gemfile +11 -0
  1328. data/lib/puppet/vendor/safe_yaml/LICENSE.txt +22 -0
  1329. data/lib/puppet/vendor/safe_yaml/PUPPET_README.md +6 -0
  1330. data/lib/puppet/vendor/safe_yaml/README.md +179 -0
  1331. data/lib/puppet/vendor/safe_yaml/Rakefile +6 -0
  1332. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb +253 -0
  1333. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/deep.rb +34 -0
  1334. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/date.rb +27 -0
  1335. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/hexadecimal.rb +12 -0
  1336. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/sexagesimal.rb +26 -0
  1337. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb +92 -0
  1338. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_resolver.rb +52 -0
  1339. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/resolver.rb +94 -0
  1340. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/safe_to_ruby_visitor.rb +17 -0
  1341. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_hack.rb +36 -0
  1342. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb +43 -0
  1343. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_resolver.rb +38 -0
  1344. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform.rb +41 -0
  1345. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_boolean.rb +21 -0
  1346. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_date.rb +11 -0
  1347. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_float.rb +33 -0
  1348. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_integer.rb +25 -0
  1349. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_nil.rb +18 -0
  1350. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_symbol.rb +13 -0
  1351. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/transformation_map.rb +47 -0
  1352. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/version.rb +3 -0
  1353. data/lib/puppet/vendor/safe_yaml/run_specs_all_ruby_versions.sh +21 -0
  1354. data/lib/puppet/vendor/safe_yaml/safe_yaml.gemspec +18 -0
  1355. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.2.yaml +2 -0
  1356. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.3.yaml +2 -0
  1357. data/lib/puppet/vendor/safe_yaml/spec/psych_resolver_spec.rb +10 -0
  1358. data/lib/puppet/vendor/safe_yaml/spec/resolver_specs.rb +250 -0
  1359. data/lib/puppet/vendor/safe_yaml/spec/safe_yaml_spec.rb +702 -0
  1360. data/lib/puppet/vendor/safe_yaml/spec/spec_helper.rb +18 -0
  1361. data/lib/puppet/vendor/safe_yaml/spec/support/exploitable_back_door.rb +29 -0
  1362. data/lib/puppet/vendor/safe_yaml/spec/syck_resolver_spec.rb +10 -0
  1363. data/lib/puppet/vendor/safe_yaml/spec/transform/base64_spec.rb +11 -0
  1364. data/lib/puppet/vendor/safe_yaml/spec/transform/to_date_spec.rb +34 -0
  1365. data/lib/puppet/vendor/safe_yaml/spec/transform/to_float_spec.rb +42 -0
  1366. data/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb +59 -0
  1367. data/lib/puppet/vendor/safe_yaml/spec/transform/to_symbol_spec.rb +49 -0
  1368. data/lib/puppet/vendor/safe_yaml_patches.rb +9 -0
  1369. data/lib/puppet/vendor/semantic/Gemfile +20 -0
  1370. data/lib/puppet/vendor/semantic/PUPPET_README.md +6 -0
  1371. data/lib/puppet/vendor/semantic/Rakefile +69 -0
  1372. data/lib/puppet/vendor/semantic/lib/semantic.rb +7 -0
  1373. data/lib/puppet/vendor/semantic/lib/semantic/dependency.rb +181 -0
  1374. data/lib/puppet/vendor/semantic/lib/semantic/dependency/graph.rb +60 -0
  1375. data/lib/puppet/vendor/semantic/lib/semantic/dependency/graph_node.rb +117 -0
  1376. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +46 -0
  1377. data/lib/puppet/vendor/semantic/lib/semantic/dependency/source.rb +25 -0
  1378. data/lib/puppet/vendor/semantic/lib/semantic/dependency/unsatisfiable_graph.rb +31 -0
  1379. data/lib/puppet/vendor/semantic/lib/semantic/version.rb +168 -0
  1380. data/lib/puppet/vendor/semantic/lib/semantic/version_range.rb +424 -0
  1381. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +24 -0
  1382. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +141 -0
  1383. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +162 -0
  1384. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +143 -0
  1385. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +5 -0
  1386. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +44 -0
  1387. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +383 -0
  1388. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +307 -0
  1389. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +608 -0
  1390. data/lib/puppet/version.rb +89 -0
  1391. data/lib/puppetx.rb +89 -0
  1392. data/lib/puppetx/puppet/bindings_scheme_handler.rb +130 -0
  1393. data/lib/puppetx/puppet/syntax_checker.rb +91 -0
  1394. data/lib/puppetx/puppetlabs/syntax_checkers/json.rb +37 -0
  1395. data/lib/semver.rb +124 -0
  1396. data/man/man5/puppet.conf.5 +1581 -0
  1397. data/man/man8/extlookup2hiera.8 +23 -0
  1398. data/man/man8/puppet-agent.8 +157 -0
  1399. data/man/man8/puppet-apply.8 +80 -0
  1400. data/man/man8/puppet-ca.8 +170 -0
  1401. data/man/man8/puppet-catalog.8 +292 -0
  1402. data/man/man8/puppet-cert.8 +97 -0
  1403. data/man/man8/puppet-certificate.8 +238 -0
  1404. data/man/man8/puppet-certificate_request.8 +168 -0
  1405. data/man/man8/puppet-certificate_revocation_list.8 +165 -0
  1406. data/man/man8/puppet-config.8 +76 -0
  1407. data/man/man8/puppet-describe.8 +51 -0
  1408. data/man/man8/puppet-device.8 +86 -0
  1409. data/man/man8/puppet-doc.8 +119 -0
  1410. data/man/man8/puppet-facts.8 +223 -0
  1411. data/man/man8/puppet-file.8 +215 -0
  1412. data/man/man8/puppet-filebucket.8 +81 -0
  1413. data/man/man8/puppet-help.8 +64 -0
  1414. data/man/man8/puppet-inspect.8 +36 -0
  1415. data/man/man8/puppet-instrumentation_data.8 +141 -0
  1416. data/man/man8/puppet-instrumentation_listener.8 +218 -0
  1417. data/man/man8/puppet-instrumentation_probe.8 +203 -0
  1418. data/man/man8/puppet-key.8 +129 -0
  1419. data/man/man8/puppet-kick.8 +131 -0
  1420. data/man/man8/puppet-man.8 +70 -0
  1421. data/man/man8/puppet-master.8 +78 -0
  1422. data/man/man8/puppet-module.8 +422 -0
  1423. data/man/man8/puppet-node.8 +211 -0
  1424. data/man/man8/puppet-parser.8 +73 -0
  1425. data/man/man8/puppet-plugin.8 +73 -0
  1426. data/man/man8/puppet-queue.8 +55 -0
  1427. data/man/man8/puppet-report.8 +186 -0
  1428. data/man/man8/puppet-resource.8 +84 -0
  1429. data/man/man8/puppet-resource_type.8 +214 -0
  1430. data/man/man8/puppet-secret_agent.8 +70 -0
  1431. data/man/man8/puppet-status.8 +150 -0
  1432. data/man/man8/puppet.8 +10 -0
  1433. data/spec/fixtures/faulty_face/puppet/face/syntax.rb +8 -0
  1434. data/spec/fixtures/hiera.yaml +9 -0
  1435. data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +2 -0
  1436. data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +6 -0
  1437. data/spec/fixtures/integration/node/environment/sitedir/03_empty.pp +0 -0
  1438. data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +2 -0
  1439. data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +2 -0
  1440. data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +6 -0
  1441. data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +1 -0
  1442. data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +2 -0
  1443. data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +19 -0
  1444. data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +18 -0
  1445. data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +15 -0
  1446. data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +4 -0
  1447. data/spec/fixtures/integration/provider/cron/crontab/modify_entry +13 -0
  1448. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +15 -0
  1449. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +6 -0
  1450. data/spec/fixtures/integration/provider/cron/crontab/purged +8 -0
  1451. data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +12 -0
  1452. data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +14 -0
  1453. data/spec/fixtures/integration/provider/cron/crontab/unspecialized +15 -0
  1454. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +28 -0
  1455. data/spec/fixtures/java.tgz +0 -0
  1456. data/spec/fixtures/manifests/site.pp +0 -0
  1457. data/spec/fixtures/releases/jamtur01-apache/Modulefile +2 -0
  1458. data/spec/fixtures/releases/jamtur01-apache/files/httpd +24 -0
  1459. data/spec/fixtures/releases/jamtur01-apache/files/test.vhost +18 -0
  1460. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +21 -0
  1461. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/type/a2mod.rb +12 -0
  1462. data/spec/fixtures/releases/jamtur01-apache/manifests/dev.pp +5 -0
  1463. data/spec/fixtures/releases/jamtur01-apache/manifests/init.pp +34 -0
  1464. data/spec/fixtures/releases/jamtur01-apache/manifests/params.pp +17 -0
  1465. data/spec/fixtures/releases/jamtur01-apache/manifests/php.pp +5 -0
  1466. data/spec/fixtures/releases/jamtur01-apache/manifests/ssl.pp +15 -0
  1467. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +15 -0
  1468. data/spec/fixtures/releases/jamtur01-apache/metadata.json +1 -0
  1469. data/spec/fixtures/releases/jamtur01-apache/templates/vhost-default.conf.erb +20 -0
  1470. data/spec/fixtures/releases/jamtur01-apache/tests/apache.pp +1 -0
  1471. data/spec/fixtures/releases/jamtur01-apache/tests/dev.pp +1 -0
  1472. data/spec/fixtures/releases/jamtur01-apache/tests/init.pp +1 -0
  1473. data/spec/fixtures/releases/jamtur01-apache/tests/php.pp +1 -0
  1474. data/spec/fixtures/releases/jamtur01-apache/tests/ssl.pp +1 -0
  1475. data/spec/fixtures/releases/jamtur01-apache/tests/vhost.pp +2 -0
  1476. data/spec/fixtures/stdlib.tgz +0 -0
  1477. data/spec/fixtures/unit/indirector/data_binding/hiera/global.yaml +10 -0
  1478. data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +1 -0
  1479. data/spec/fixtures/unit/indirector/hiera/global.yaml +10 -0
  1480. data/spec/fixtures/unit/indirector/hiera/invalid.yaml +1 -0
  1481. data/spec/fixtures/unit/module/trailing-comma.json +24 -0
  1482. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +3 -0
  1483. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +3 -0
  1484. data/spec/fixtures/unit/parser/lexer/aliastest.pp +16 -0
  1485. data/spec/fixtures/unit/parser/lexer/append.pp +11 -0
  1486. data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +14 -0
  1487. data/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp +8 -0
  1488. data/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp +3 -0
  1489. data/spec/fixtures/unit/parser/lexer/casestatement.pp +65 -0
  1490. data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +15 -0
  1491. data/spec/fixtures/unit/parser/lexer/classincludes.pp +17 -0
  1492. data/spec/fixtures/unit/parser/lexer/classpathtest.pp +11 -0
  1493. data/spec/fixtures/unit/parser/lexer/collection.pp +10 -0
  1494. data/spec/fixtures/unit/parser/lexer/collection_override.pp +8 -0
  1495. data/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp +20 -0
  1496. data/spec/fixtures/unit/parser/lexer/componentmetaparams.pp +11 -0
  1497. data/spec/fixtures/unit/parser/lexer/componentrequire.pp +8 -0
  1498. data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +23 -0
  1499. data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +17 -0
  1500. data/spec/fixtures/unit/parser/lexer/emptyclass.pp +9 -0
  1501. data/spec/fixtures/unit/parser/lexer/emptyexec.pp +3 -0
  1502. data/spec/fixtures/unit/parser/lexer/emptyifelse.pp +9 -0
  1503. data/spec/fixtures/unit/parser/lexer/falsevalues.pp +3 -0
  1504. data/spec/fixtures/unit/parser/lexer/filecreate.pp +11 -0
  1505. data/spec/fixtures/unit/parser/lexer/fqdefinition.pp +5 -0
  1506. data/spec/fixtures/unit/parser/lexer/fqparents.pp +11 -0
  1507. data/spec/fixtures/unit/parser/lexer/funccomma.pp +5 -0
  1508. data/spec/fixtures/unit/parser/lexer/hash.pp +33 -0
  1509. data/spec/fixtures/unit/parser/lexer/ifexpression.pp +12 -0
  1510. data/spec/fixtures/unit/parser/lexer/implicititeration.pp +15 -0
  1511. data/spec/fixtures/unit/parser/lexer/multilinecomments.pp +10 -0
  1512. data/spec/fixtures/unit/parser/lexer/multipleclass.pp +9 -0
  1513. data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +7 -0
  1514. data/spec/fixtures/unit/parser/lexer/multisubs.pp +13 -0
  1515. data/spec/fixtures/unit/parser/lexer/namevartest.pp +9 -0
  1516. data/spec/fixtures/unit/parser/lexer/scopetest.pp +13 -0
  1517. data/spec/fixtures/unit/parser/lexer/selectorvalues.pp +49 -0
  1518. data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +5 -0
  1519. data/spec/fixtures/unit/parser/lexer/simpleselector.pp +38 -0
  1520. data/spec/fixtures/unit/parser/lexer/singleary.pp +19 -0
  1521. data/spec/fixtures/unit/parser/lexer/singlequote.pp +11 -0
  1522. data/spec/fixtures/unit/parser/lexer/singleselector.pp +22 -0
  1523. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +11 -0
  1524. data/spec/fixtures/unit/parser/lexer/tag.pp +9 -0
  1525. data/spec/fixtures/unit/parser/lexer/tagged.pp +35 -0
  1526. data/spec/fixtures/unit/parser/lexer/virtualresources.pp +14 -0
  1527. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +10 -0
  1528. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +10 -0
  1529. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +20 -0
  1530. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppetx/awesome2/echo_scheme_handler.rb +18 -0
  1531. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +5 -0
  1532. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +6 -0
  1533. data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +9 -0
  1534. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/usee/lib/puppet/functions/usee/callee.rb +5 -0
  1535. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/user/lib/puppet/functions/user/caller.rb +5 -0
  1536. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/user/metadata.json +9 -0
  1537. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/modulea/rb_func_a.rb +5 -0
  1538. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/lib/puppet/functions/rb_func_a.rb +5 -0
  1539. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/manifests/init.pp +3 -0
  1540. data/spec/fixtures/unit/pops/loaders/loaders/single_module/modules/modulea/metadata.json +19 -0
  1541. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/lib/puppet/functions/moduleb/rb_func_b.rb +6 -0
  1542. data/spec/fixtures/unit/pops/loaders/loaders/wo_metadata_module/modules/moduleb/manifests/init.pp +3 -0
  1543. data/spec/fixtures/unit/pops/parser/lexer/aliastest.pp +16 -0
  1544. data/spec/fixtures/unit/pops/parser/lexer/append.pp +11 -0
  1545. data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +14 -0
  1546. data/spec/fixtures/unit/pops/parser/lexer/arithmetic_expression.pp +8 -0
  1547. data/spec/fixtures/unit/pops/parser/lexer/arraytrailingcomma.pp +3 -0
  1548. data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +65 -0
  1549. data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +15 -0
  1550. data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +17 -0
  1551. data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +11 -0
  1552. data/spec/fixtures/unit/pops/parser/lexer/collection.pp +10 -0
  1553. data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +8 -0
  1554. data/spec/fixtures/unit/pops/parser/lexer/collection_within_virtual_definitions.pp +20 -0
  1555. data/spec/fixtures/unit/pops/parser/lexer/componentmetaparams.pp +11 -0
  1556. data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +8 -0
  1557. data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +23 -0
  1558. data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +17 -0
  1559. data/spec/fixtures/unit/pops/parser/lexer/emptyclass.pp +9 -0
  1560. data/spec/fixtures/unit/pops/parser/lexer/emptyexec.pp +3 -0
  1561. data/spec/fixtures/unit/pops/parser/lexer/emptyifelse.pp +9 -0
  1562. data/spec/fixtures/unit/pops/parser/lexer/falsevalues.pp +3 -0
  1563. data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +11 -0
  1564. data/spec/fixtures/unit/pops/parser/lexer/fqdefinition.pp +5 -0
  1565. data/spec/fixtures/unit/pops/parser/lexer/fqparents.pp +11 -0
  1566. data/spec/fixtures/unit/pops/parser/lexer/funccomma.pp +5 -0
  1567. data/spec/fixtures/unit/pops/parser/lexer/hash.pp +33 -0
  1568. data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +12 -0
  1569. data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +15 -0
  1570. data/spec/fixtures/unit/pops/parser/lexer/multilinecomments.pp +10 -0
  1571. data/spec/fixtures/unit/pops/parser/lexer/multipleclass.pp +9 -0
  1572. data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +7 -0
  1573. data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +13 -0
  1574. data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +9 -0
  1575. data/spec/fixtures/unit/pops/parser/lexer/scopetest.pp +13 -0
  1576. data/spec/fixtures/unit/pops/parser/lexer/selectorvalues.pp +49 -0
  1577. data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +5 -0
  1578. data/spec/fixtures/unit/pops/parser/lexer/simpleselector.pp +38 -0
  1579. data/spec/fixtures/unit/pops/parser/lexer/singleary.pp +19 -0
  1580. data/spec/fixtures/unit/pops/parser/lexer/singlequote.pp +11 -0
  1581. data/spec/fixtures/unit/pops/parser/lexer/singleselector.pp +22 -0
  1582. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +11 -0
  1583. data/spec/fixtures/unit/pops/parser/lexer/tag.pp +9 -0
  1584. data/spec/fixtures/unit/pops/parser/lexer/tagged.pp +35 -0
  1585. data/spec/fixtures/unit/pops/parser/lexer/virtualresources.pp +14 -0
  1586. data/spec/fixtures/unit/provider/augeas/augeas/augeas/lenses/test.aug +13 -0
  1587. data/spec/fixtures/unit/provider/augeas/augeas/etc/fstab +10 -0
  1588. data/spec/fixtures/unit/provider/augeas/augeas/etc/hosts +6 -0
  1589. data/spec/fixtures/unit/provider/augeas/augeas/etc/test +3 -0
  1590. data/spec/fixtures/unit/provider/augeas/augeas/test.aug +13 -0
  1591. data/spec/fixtures/unit/provider/cron/crontab/single_line.yaml +272 -0
  1592. data/spec/fixtures/unit/provider/cron/crontab/vixie_header.txt +3 -0
  1593. data/spec/fixtures/unit/provider/cron/parsed/managed +6 -0
  1594. data/spec/fixtures/unit/provider/cron/parsed/simple +9 -0
  1595. data/spec/fixtures/unit/provider/host/parsed/valid_hosts +19 -0
  1596. data/spec/fixtures/unit/provider/mount/mount-output.aix.txt +7 -0
  1597. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +144 -0
  1598. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +7 -0
  1599. data/spec/fixtures/unit/provider/mount/parsed/darwin.mount +6 -0
  1600. data/spec/fixtures/unit/provider/mount/parsed/freebsd.fstab +8 -0
  1601. data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +3 -0
  1602. data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +17 -0
  1603. data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +11 -0
  1604. data/spec/fixtures/unit/provider/mount/parsed/linux.mount +5 -0
  1605. data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +9 -0
  1606. data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +8 -0
  1607. data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +4 -0
  1608. data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +4 -0
  1609. data/spec/fixtures/unit/provider/mount/parsed/solaris.fstab +11 -0
  1610. data/spec/fixtures/unit/provider/mount/parsed/solaris.mount +6 -0
  1611. data/spec/fixtures/unit/provider/naginator/define_empty_param +6 -0
  1612. data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +4 -0
  1613. data/spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning +14 -0
  1614. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.detail +19 -0
  1615. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.list +10 -0
  1616. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.query +1 -0
  1617. data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +2 -0
  1618. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +1 -0
  1619. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.installed +1 -0
  1620. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +1 -0
  1621. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +1 -0
  1622. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +1 -0
  1623. data/spec/fixtures/unit/provider/package/pkg/incomplete +1 -0
  1624. data/spec/fixtures/unit/provider/package/pkg/publisher +2 -0
  1625. data/spec/fixtures/unit/provider/package/pkg/simple +2 -0
  1626. data/spec/fixtures/unit/provider/package/pkg/solaris11 +2 -0
  1627. data/spec/fixtures/unit/provider/package/pkg/unknown_status +12 -0
  1628. data/spec/fixtures/unit/provider/package/sun/dummy.server +12 -0
  1629. data/spec/fixtures/unit/provider/package/sun/simple +24 -0
  1630. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out +369 -0
  1631. data/spec/fixtures/unit/provider/parsedfile/simple.txt +4 -0
  1632. data/spec/fixtures/unit/provider/service/gentoo/rc_update_show +30 -0
  1633. data/spec/fixtures/unit/provider/service/openrc/rcservice_list +8 -0
  1634. data/spec/fixtures/unit/provider/service/openrc/rcstatus +43 -0
  1635. data/spec/fixtures/unit/provider/service/smf/svcs.out +3 -0
  1636. data/spec/fixtures/unit/provider/service/systemd/list_unit_files_services +7 -0
  1637. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys +7 -0
  1638. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys1 +3 -0
  1639. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys2 +1 -0
  1640. data/spec/fixtures/unit/provider/sshkey/parsed/sample +21 -0
  1641. data/spec/fixtures/unit/provider/zfs/zfs/zfs-list.out +2 -0
  1642. data/spec/fixtures/unit/provider/zpool/zpool/zpool-list.out +2 -0
  1643. data/spec/fixtures/unit/reports/tagmail/tagmail_email.conf +2 -0
  1644. data/spec/fixtures/unit/reports/tagmail/tagmail_failers.conf +3 -0
  1645. data/spec/fixtures/unit/reports/tagmail/tagmail_passers.conf +30 -0
  1646. data/spec/fixtures/unit/type/user/authorized_keys +5 -0
  1647. data/spec/fixtures/unit/util/filetype/aixtab_output +44 -0
  1648. data/spec/fixtures/unit/util/filetype/suntab_output +9 -0
  1649. data/spec/fixtures/unit/util/monkey_patches/x509.pem +32 -0
  1650. data/spec/fixtures/unit/util/rdoc/basic.pp +16 -0
  1651. data/spec/fixtures/yaml/report0.25.x.yaml +64 -0
  1652. data/spec/fixtures/yaml/report2.6.x.yaml +190 -0
  1653. data/spec/fixtures/yaml/test.local.yaml +16 -0
  1654. data/spec/integration/agent/logging_spec.rb +182 -0
  1655. data/spec/integration/application/apply_spec.rb +109 -0
  1656. data/spec/integration/application/doc_spec.rb +57 -0
  1657. data/spec/integration/configurer_spec.rb +67 -0
  1658. data/spec/integration/data_binding.rb +100 -0
  1659. data/spec/integration/defaults_spec.rb +341 -0
  1660. data/spec/integration/directory_environments_spec.rb +51 -0
  1661. data/spec/integration/environments/default_manifest_spec.rb +274 -0
  1662. data/spec/integration/faces/ca_spec.rb +354 -0
  1663. data/spec/integration/faces/documentation_spec.rb +58 -0
  1664. data/spec/integration/faces/plugin_spec.rb +62 -0
  1665. data/spec/integration/file_bucket/file_spec.rb +65 -0
  1666. data/spec/integration/file_serving/content_spec.rb +8 -0
  1667. data/spec/integration/file_serving/fileset_spec.rb +13 -0
  1668. data/spec/integration/file_serving/metadata_spec.rb +9 -0
  1669. data/spec/integration/file_serving/terminus_helper_spec.rb +21 -0
  1670. data/spec/integration/indirector/catalog/compiler_spec.rb +65 -0
  1671. data/spec/integration/indirector/catalog/queue_spec.rb +55 -0
  1672. data/spec/integration/indirector/direct_file_server_spec.rb +64 -0
  1673. data/spec/integration/indirector/facts/facter_spec.rb +22 -0
  1674. data/spec/integration/indirector/file_content/file_server_spec.rb +89 -0
  1675. data/spec/integration/indirector/file_metadata/file_server_spec.rb +14 -0
  1676. data/spec/integration/indirector/node/ldap_spec.rb +14 -0
  1677. data/spec/integration/network/authconfig_spec.rb +257 -0
  1678. data/spec/integration/network/formats_spec.rb +91 -0
  1679. data/spec/integration/node/environment_spec.rb +125 -0
  1680. data/spec/integration/node/facts_spec.rb +41 -0
  1681. data/spec/integration/node_spec.rb +82 -0
  1682. data/spec/integration/parser/catalog_spec.rb +125 -0
  1683. data/spec/integration/parser/class_spec.rb +37 -0
  1684. data/spec/integration/parser/collector_spec.rb +276 -0
  1685. data/spec/integration/parser/compiler_spec.rb +525 -0
  1686. data/spec/integration/parser/conditionals_spec.rb +117 -0
  1687. data/spec/integration/parser/functions/require_spec.rb +43 -0
  1688. data/spec/integration/parser/future_compiler_spec.rb +750 -0
  1689. data/spec/integration/parser/node_spec.rb +185 -0
  1690. data/spec/integration/parser/parser_spec.rb +207 -0
  1691. data/spec/integration/parser/resource_expressions_spec.rb +286 -0
  1692. data/spec/integration/parser/ruby_manifest_spec.rb +119 -0
  1693. data/spec/integration/parser/scope_spec.rb +741 -0
  1694. data/spec/integration/parser/undef_param_spec.rb +87 -0
  1695. data/spec/integration/provider/cron/crontab_spec.rb +241 -0
  1696. data/spec/integration/provider/mailalias/aliases_spec.rb +10 -0
  1697. data/spec/integration/provider/mount_spec.rb +169 -0
  1698. data/spec/integration/provider/package_spec.rb +44 -0
  1699. data/spec/integration/provider/service/init_spec.rb +46 -0
  1700. data/spec/integration/provider/service/systemd_spec.rb +20 -0
  1701. data/spec/integration/provider/ssh_authorized_key_spec.rb +219 -0
  1702. data/spec/integration/reference/providers_spec.rb +16 -0
  1703. data/spec/integration/reports_spec.rb +14 -0
  1704. data/spec/integration/resource/catalog_spec.rb +54 -0
  1705. data/spec/integration/resource/type_collection_spec.rb +94 -0
  1706. data/spec/integration/ssl/autosign_spec.rb +130 -0
  1707. data/spec/integration/ssl/certificate_authority_spec.rb +163 -0
  1708. data/spec/integration/ssl/certificate_request_spec.rb +48 -0
  1709. data/spec/integration/ssl/certificate_revocation_list_spec.rb +35 -0
  1710. data/spec/integration/ssl/host_spec.rb +82 -0
  1711. data/spec/integration/transaction/report_spec.rb +24 -0
  1712. data/spec/integration/transaction_spec.rb +362 -0
  1713. data/spec/integration/type/exec_spec.rb +77 -0
  1714. data/spec/integration/type/file_spec.rb +1378 -0
  1715. data/spec/integration/type/nagios_spec.rb +71 -0
  1716. data/spec/integration/type/package_spec.rb +28 -0
  1717. data/spec/integration/type/sshkey_spec.rb +22 -0
  1718. data/spec/integration/type/tidy_spec.rb +34 -0
  1719. data/spec/integration/type/user_spec.rb +36 -0
  1720. data/spec/integration/type_spec.rb +32 -0
  1721. data/spec/integration/util/autoload_spec.rb +107 -0
  1722. data/spec/integration/util/execution_spec.rb +17 -0
  1723. data/spec/integration/util/feature_spec.rb +53 -0
  1724. data/spec/integration/util/rdoc/parser_spec.rb +268 -0
  1725. data/spec/integration/util/settings_spec.rb +89 -0
  1726. data/spec/integration/util/windows/process_spec.rb +34 -0
  1727. data/spec/integration/util/windows/security_spec.rb +864 -0
  1728. data/spec/integration/util/windows/user_spec.rb +125 -0
  1729. data/spec/integration/util_spec.rb +111 -0
  1730. data/spec/lib/matchers/containment_matchers.rb +52 -0
  1731. data/spec/lib/matchers/include.rb +27 -0
  1732. data/spec/lib/matchers/include_in_order.rb +21 -0
  1733. data/spec/lib/matchers/include_in_order_spec.rb +30 -0
  1734. data/spec/lib/matchers/include_spec.rb +32 -0
  1735. data/spec/lib/matchers/json.rb +167 -0
  1736. data/spec/lib/matchers/match_tokens2.rb +74 -0
  1737. data/spec/lib/matchers/relationship_graph_matchers.rb +48 -0
  1738. data/spec/lib/matchers/resource.rb +68 -0
  1739. data/spec/lib/puppet/face/1.0.0/huzzah.rb +8 -0
  1740. data/spec/lib/puppet/face/basetest.rb +51 -0
  1741. data/spec/lib/puppet/face/huzzah.rb +8 -0
  1742. data/spec/lib/puppet/face/huzzah/obsolete.rb +6 -0
  1743. data/spec/lib/puppet/face/version_matching.rb +12 -0
  1744. data/spec/lib/puppet/indirector/indirector_testing/json.rb +6 -0
  1745. data/spec/lib/puppet/indirector/indirector_testing/memory.rb +7 -0
  1746. data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +6 -0
  1747. data/spec/lib/puppet/indirector_testing.rb +37 -0
  1748. data/spec/lib/puppet_spec/compiler.rb +49 -0
  1749. data/spec/lib/puppet_spec/database.rb +29 -0
  1750. data/spec/lib/puppet_spec/files.rb +88 -0
  1751. data/spec/lib/puppet_spec/fixtures.rb +28 -0
  1752. data/spec/lib/puppet_spec/language.rb +74 -0
  1753. data/spec/lib/puppet_spec/matchers.rb +147 -0
  1754. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +56 -0
  1755. data/spec/lib/puppet_spec/module_tool/stub_source.rb +136 -0
  1756. data/spec/lib/puppet_spec/modules.rb +26 -0
  1757. data/spec/lib/puppet_spec/pops.rb +16 -0
  1758. data/spec/lib/puppet_spec/scope.rb +14 -0
  1759. data/spec/lib/puppet_spec/settings.rb +15 -0
  1760. data/spec/lib/puppet_spec/verbose.rb +9 -0
  1761. data/spec/monkey_patches/alias_should_to_must.rb +21 -0
  1762. data/spec/shared_behaviours/all_parsedfile_providers.rb +21 -0
  1763. data/spec/shared_behaviours/an_indirector_face.rb +6 -0
  1764. data/spec/shared_behaviours/documentation_on_faces.rb +263 -0
  1765. data/spec/shared_behaviours/file_server_terminus.rb +41 -0
  1766. data/spec/shared_behaviours/file_serving.rb +75 -0
  1767. data/spec/shared_behaviours/file_serving_model.rb +72 -0
  1768. data/spec/shared_behaviours/hiera_indirections.rb +99 -0
  1769. data/spec/shared_behaviours/iterative_functions.rb +69 -0
  1770. data/spec/shared_behaviours/memory_terminus.rb +28 -0
  1771. data/spec/shared_behaviours/path_parameters.rb +160 -0
  1772. data/spec/shared_behaviours/store_configs_terminus.rb +21 -0
  1773. data/spec/shared_behaviours/things_that_declare_options.rb +262 -0
  1774. data/spec/shared_contexts/checksums.rb +55 -0
  1775. data/spec/shared_contexts/platform.rb +52 -0
  1776. data/spec/spec_helper.rb +193 -0
  1777. data/spec/unit/agent/disabler_spec.rb +64 -0
  1778. data/spec/unit/agent/locker_spec.rb +100 -0
  1779. data/spec/unit/agent_spec.rb +327 -0
  1780. data/spec/unit/application/agent_spec.rb +656 -0
  1781. data/spec/unit/application/apply_spec.rb +460 -0
  1782. data/spec/unit/application/cert_spec.rb +220 -0
  1783. data/spec/unit/application/certificate_spec.rb +22 -0
  1784. data/spec/unit/application/config_spec.rb +9 -0
  1785. data/spec/unit/application/describe_spec.rb +79 -0
  1786. data/spec/unit/application/device_spec.rb +415 -0
  1787. data/spec/unit/application/doc_spec.rb +344 -0
  1788. data/spec/unit/application/face_base_spec.rb +408 -0
  1789. data/spec/unit/application/facts_spec.rb +32 -0
  1790. data/spec/unit/application/filebucket_spec.rb +207 -0
  1791. data/spec/unit/application/indirection_base_spec.rb +52 -0
  1792. data/spec/unit/application/inspect_spec.rb +287 -0
  1793. data/spec/unit/application/kick_spec.rb +296 -0
  1794. data/spec/unit/application/master_spec.rb +363 -0
  1795. data/spec/unit/application/queue_spec.rb +168 -0
  1796. data/spec/unit/application/resource_spec.rb +209 -0
  1797. data/spec/unit/application/secret_agent_spec.rb +34 -0
  1798. data/spec/unit/application_spec.rb +645 -0
  1799. data/spec/unit/configurer/downloader_factory_spec.rb +96 -0
  1800. data/spec/unit/configurer/downloader_spec.rb +222 -0
  1801. data/spec/unit/configurer/fact_handler_spec.rb +89 -0
  1802. data/spec/unit/configurer/plugin_handler_spec.rb +39 -0
  1803. data/spec/unit/configurer_spec.rb +680 -0
  1804. data/spec/unit/confine/exists_spec.rb +80 -0
  1805. data/spec/unit/confine/false_spec.rb +52 -0
  1806. data/spec/unit/confine/feature_spec.rb +57 -0
  1807. data/spec/unit/confine/true_spec.rb +52 -0
  1808. data/spec/unit/confine/variable_spec.rb +106 -0
  1809. data/spec/unit/confine_collection_spec.rb +133 -0
  1810. data/spec/unit/confine_spec.rb +77 -0
  1811. data/spec/unit/confiner_spec.rb +62 -0
  1812. data/spec/unit/context/trusted_information_spec.rb +124 -0
  1813. data/spec/unit/context_spec.rb +136 -0
  1814. data/spec/unit/daemon_spec.rb +255 -0
  1815. data/spec/unit/data_binding_spec.rb +11 -0
  1816. data/spec/unit/defaults_spec.rb +74 -0
  1817. data/spec/unit/dsl/resource_api_spec.rb +180 -0
  1818. data/spec/unit/dsl/resource_type_api_spec.rb +53 -0
  1819. data/spec/unit/environments_spec.rb +383 -0
  1820. data/spec/unit/face/catalog_spec.rb +7 -0
  1821. data/spec/unit/face/certificate_spec.rb +223 -0
  1822. data/spec/unit/face/config_spec.rb +147 -0
  1823. data/spec/unit/face/facts_spec.rb +23 -0
  1824. data/spec/unit/face/file_spec.rb +12 -0
  1825. data/spec/unit/face/help_spec.rb +144 -0
  1826. data/spec/unit/face/instrumentation_data_spec.rb +7 -0
  1827. data/spec/unit/face/instrumentation_listener_spec.rb +38 -0
  1828. data/spec/unit/face/instrumentation_probe_spec.rb +21 -0
  1829. data/spec/unit/face/module/build_spec.rb +69 -0
  1830. data/spec/unit/face/module/install_spec.rb +42 -0
  1831. data/spec/unit/face/module/list_spec.rb +241 -0
  1832. data/spec/unit/face/module/search_spec.rb +201 -0
  1833. data/spec/unit/face/module/uninstall_spec.rb +49 -0
  1834. data/spec/unit/face/module/upgrade_spec.rb +26 -0
  1835. data/spec/unit/face/module_spec.rb +3 -0
  1836. data/spec/unit/face/node_spec.rb +272 -0
  1837. data/spec/unit/face/parser_spec.rb +111 -0
  1838. data/spec/unit/face/plugin_spec.rb +10 -0
  1839. data/spec/unit/face/secret_agent_spec.rb +27 -0
  1840. data/spec/unit/face_spec.rb +1 -0
  1841. data/spec/unit/file_bucket/dipper_spec.rb +176 -0
  1842. data/spec/unit/file_bucket/file_spec.rb +76 -0
  1843. data/spec/unit/file_serving/base_spec.rb +168 -0
  1844. data/spec/unit/file_serving/configuration/parser_spec.rb +186 -0
  1845. data/spec/unit/file_serving/configuration_spec.rb +231 -0
  1846. data/spec/unit/file_serving/content_spec.rb +112 -0
  1847. data/spec/unit/file_serving/fileset_spec.rb +354 -0
  1848. data/spec/unit/file_serving/metadata_spec.rb +432 -0
  1849. data/spec/unit/file_serving/mount/file_spec.rb +189 -0
  1850. data/spec/unit/file_serving/mount/modules_spec.rb +70 -0
  1851. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +73 -0
  1852. data/spec/unit/file_serving/mount/plugins_spec.rb +73 -0
  1853. data/spec/unit/file_serving/mount_spec.rb +31 -0
  1854. data/spec/unit/file_serving/terminus_helper_spec.rb +94 -0
  1855. data/spec/unit/file_serving/terminus_selector_spec.rb +58 -0
  1856. data/spec/unit/file_system/path_pattern_spec.rb +138 -0
  1857. data/spec/unit/file_system/uniquefile_spec.rb +184 -0
  1858. data/spec/unit/file_system_spec.rb +508 -0
  1859. data/spec/unit/forge/errors_spec.rb +80 -0
  1860. data/spec/unit/forge/module_release_spec.rb +220 -0
  1861. data/spec/unit/forge/repository_spec.rb +230 -0
  1862. data/spec/unit/forge_spec.rb +172 -0
  1863. data/spec/unit/functions/assert_type_spec.rb +78 -0
  1864. data/spec/unit/functions/each_spec.rb +111 -0
  1865. data/spec/unit/functions/epp_spec.rb +155 -0
  1866. data/spec/unit/functions/filter_spec.rb +131 -0
  1867. data/spec/unit/functions/inline_epp_spec.rb +97 -0
  1868. data/spec/unit/functions/map_spec.rb +169 -0
  1869. data/spec/unit/functions/match_spec.rb +57 -0
  1870. data/spec/unit/functions/reduce_spec.rb +96 -0
  1871. data/spec/unit/functions/slice_spec.rb +148 -0
  1872. data/spec/unit/functions/with_spec.rb +35 -0
  1873. data/spec/unit/functions4_spec.rb +670 -0
  1874. data/spec/unit/graph/key_spec.rb +41 -0
  1875. data/spec/unit/graph/rb_tree_map_spec.rb +572 -0
  1876. data/spec/unit/graph/relationship_graph_spec.rb +387 -0
  1877. data/spec/unit/graph/sequential_prioritizer_spec.rb +32 -0
  1878. data/spec/unit/graph/simple_graph.rb +721 -0
  1879. data/spec/unit/graph/title_hash_prioritizer_spec.rb +49 -0
  1880. data/spec/unit/hiera/backend/puppet_backend_spec.rb +148 -0
  1881. data/spec/unit/hiera/scope_spec.rb +89 -0
  1882. data/spec/unit/hiera_puppet_spec.rb +118 -0
  1883. data/spec/unit/indirector/active_record_spec.rb +75 -0
  1884. data/spec/unit/indirector/catalog/active_record_spec.rb +107 -0
  1885. data/spec/unit/indirector/catalog/compiler_spec.rb +272 -0
  1886. data/spec/unit/indirector/catalog/json_spec.rb +12 -0
  1887. data/spec/unit/indirector/catalog/msgpack_spec.rb +12 -0
  1888. data/spec/unit/indirector/catalog/queue_spec.rb +19 -0
  1889. data/spec/unit/indirector/catalog/rest_spec.rb +10 -0
  1890. data/spec/unit/indirector/catalog/static_compiler_spec.rb +236 -0
  1891. data/spec/unit/indirector/catalog/store_configs_spec.rb +17 -0
  1892. data/spec/unit/indirector/catalog/yaml_spec.rb +24 -0
  1893. data/spec/unit/indirector/certificate/ca_spec.rb +23 -0
  1894. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +33 -0
  1895. data/spec/unit/indirector/certificate/file_spec.rb +23 -0
  1896. data/spec/unit/indirector/certificate/rest_spec.rb +63 -0
  1897. data/spec/unit/indirector/certificate_request/ca_spec.rb +57 -0
  1898. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +33 -0
  1899. data/spec/unit/indirector/certificate_request/file_spec.rb +15 -0
  1900. data/spec/unit/indirector/certificate_request/rest_spec.rb +26 -0
  1901. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +16 -0
  1902. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +33 -0
  1903. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +17 -0
  1904. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +26 -0
  1905. data/spec/unit/indirector/certificate_status/file_spec.rb +191 -0
  1906. data/spec/unit/indirector/certificate_status/rest_spec.rb +18 -0
  1907. data/spec/unit/indirector/code_spec.rb +31 -0
  1908. data/spec/unit/indirector/data_binding/hiera_spec.rb +19 -0
  1909. data/spec/unit/indirector/data_binding/none_spec.rb +28 -0
  1910. data/spec/unit/indirector/direct_file_server_spec.rb +80 -0
  1911. data/spec/unit/indirector/envelope_spec.rb +33 -0
  1912. data/spec/unit/indirector/exec_spec.rb +58 -0
  1913. data/spec/unit/indirector/face_spec.rb +70 -0
  1914. data/spec/unit/indirector/facts/active_record_spec.rb +113 -0
  1915. data/spec/unit/indirector/facts/couch_spec.rb +102 -0
  1916. data/spec/unit/indirector/facts/facter_spec.rb +170 -0
  1917. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +175 -0
  1918. data/spec/unit/indirector/facts/inventory_service_spec.rb +21 -0
  1919. data/spec/unit/indirector/facts/network_device_spec.rb +88 -0
  1920. data/spec/unit/indirector/facts/rest_spec.rb +10 -0
  1921. data/spec/unit/indirector/facts/store_configs_spec.rb +17 -0
  1922. data/spec/unit/indirector/facts/yaml_spec.rb +239 -0
  1923. data/spec/unit/indirector/file_bucket_file/file_spec.rb +286 -0
  1924. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +10 -0
  1925. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +29 -0
  1926. data/spec/unit/indirector/file_content/file_server_spec.rb +14 -0
  1927. data/spec/unit/indirector/file_content/file_spec.rb +14 -0
  1928. data/spec/unit/indirector/file_content/rest_spec.rb +14 -0
  1929. data/spec/unit/indirector/file_content/selector_spec.rb +10 -0
  1930. data/spec/unit/indirector/file_metadata/file_server_spec.rb +14 -0
  1931. data/spec/unit/indirector/file_metadata/file_spec.rb +50 -0
  1932. data/spec/unit/indirector/file_metadata/rest_spec.rb +13 -0
  1933. data/spec/unit/indirector/file_metadata/selector_spec.rb +11 -0
  1934. data/spec/unit/indirector/file_server_spec.rb +263 -0
  1935. data/spec/unit/indirector/hiera_spec.rb +17 -0
  1936. data/spec/unit/indirector/indirection_spec.rb +875 -0
  1937. data/spec/unit/indirector/instrumentation_data/local_spec.rb +52 -0
  1938. data/spec/unit/indirector/instrumentation_data/rest_spec.rb +11 -0
  1939. data/spec/unit/indirector/instrumentation_listener/local_spec.rb +65 -0
  1940. data/spec/unit/indirector/instrumentation_listener/rest_spec.rb +11 -0
  1941. data/spec/unit/indirector/instrumentation_probe/local_spec.rb +65 -0
  1942. data/spec/unit/indirector/instrumentation_probe/rest_spec.rb +11 -0
  1943. data/spec/unit/indirector/json_spec.rb +193 -0
  1944. data/spec/unit/indirector/key/ca_spec.rb +23 -0
  1945. data/spec/unit/indirector/key/disabled_ca_spec.rb +33 -0
  1946. data/spec/unit/indirector/key/file_spec.rb +97 -0
  1947. data/spec/unit/indirector/ldap_spec.rb +137 -0
  1948. data/spec/unit/indirector/memory_spec.rb +27 -0
  1949. data/spec/unit/indirector/msgpack_spec.rb +191 -0
  1950. data/spec/unit/indirector/node/active_record_spec.rb +48 -0
  1951. data/spec/unit/indirector/node/exec_spec.rb +76 -0
  1952. data/spec/unit/indirector/node/ldap_spec.rb +441 -0
  1953. data/spec/unit/indirector/node/memory_spec.rb +18 -0
  1954. data/spec/unit/indirector/node/msgpack_spec.rb +24 -0
  1955. data/spec/unit/indirector/node/plain_spec.rb +26 -0
  1956. data/spec/unit/indirector/node/rest_spec.rb +12 -0
  1957. data/spec/unit/indirector/node/store_configs_spec.rb +17 -0
  1958. data/spec/unit/indirector/node/yaml_spec.rb +24 -0
  1959. data/spec/unit/indirector/none_spec.rb +33 -0
  1960. data/spec/unit/indirector/plain_spec.rb +27 -0
  1961. data/spec/unit/indirector/queue_spec.rb +115 -0
  1962. data/spec/unit/indirector/report/msgpack_spec.rb +28 -0
  1963. data/spec/unit/indirector/report/processor_spec.rb +100 -0
  1964. data/spec/unit/indirector/report/rest_spec.rb +67 -0
  1965. data/spec/unit/indirector/report/yaml_spec.rb +28 -0
  1966. data/spec/unit/indirector/request_spec.rb +603 -0
  1967. data/spec/unit/indirector/resource/active_record_spec.rb +166 -0
  1968. data/spec/unit/indirector/resource/ral_spec.rb +147 -0
  1969. data/spec/unit/indirector/resource/rest_spec.rb +10 -0
  1970. data/spec/unit/indirector/resource/store_configs_spec.rb +23 -0
  1971. data/spec/unit/indirector/resource_type/parser_spec.rb +254 -0
  1972. data/spec/unit/indirector/resource_type/rest_spec.rb +14 -0
  1973. data/spec/unit/indirector/rest_spec.rb +589 -0
  1974. data/spec/unit/indirector/run/local_spec.rb +21 -0
  1975. data/spec/unit/indirector/run/rest_spec.rb +10 -0
  1976. data/spec/unit/indirector/ssl_file_spec.rb +328 -0
  1977. data/spec/unit/indirector/status/local_spec.rb +11 -0
  1978. data/spec/unit/indirector/status/rest_spec.rb +10 -0
  1979. data/spec/unit/indirector/store_configs_spec.rb +8 -0
  1980. data/spec/unit/indirector/terminus_spec.rb +264 -0
  1981. data/spec/unit/indirector/yaml_spec.rb +166 -0
  1982. data/spec/unit/indirector_spec.rb +150 -0
  1983. data/spec/unit/interface/action_builder_spec.rb +217 -0
  1984. data/spec/unit/interface/action_manager_spec.rb +280 -0
  1985. data/spec/unit/interface/action_spec.rb +650 -0
  1986. data/spec/unit/interface/documentation_spec.rb +33 -0
  1987. data/spec/unit/interface/face_collection_spec.rb +212 -0
  1988. data/spec/unit/interface/option_builder_spec.rb +86 -0
  1989. data/spec/unit/interface/option_spec.rb +156 -0
  1990. data/spec/unit/interface_spec.rb +271 -0
  1991. data/spec/unit/man_spec.rb +32 -0
  1992. data/spec/unit/module_spec.rb +722 -0
  1993. data/spec/unit/module_tool/application_spec.rb +25 -0
  1994. data/spec/unit/module_tool/applications/builder_spec.rb +416 -0
  1995. data/spec/unit/module_tool/applications/checksummer_spec.rb +115 -0
  1996. data/spec/unit/module_tool/applications/installer_spec.rb +363 -0
  1997. data/spec/unit/module_tool/applications/searcher_spec.rb +38 -0
  1998. data/spec/unit/module_tool/applications/uninstaller_spec.rb +165 -0
  1999. data/spec/unit/module_tool/applications/unpacker_spec.rb +74 -0
  2000. data/spec/unit/module_tool/applications/upgrader_spec.rb +324 -0
  2001. data/spec/unit/module_tool/install_directory_spec.rb +70 -0
  2002. data/spec/unit/module_tool/installed_modules_spec.rb +49 -0
  2003. data/spec/unit/module_tool/metadata_spec.rb +301 -0
  2004. data/spec/unit/module_tool/tar/gnu_spec.rb +23 -0
  2005. data/spec/unit/module_tool/tar/mini_spec.rb +60 -0
  2006. data/spec/unit/module_tool/tar_spec.rb +31 -0
  2007. data/spec/unit/module_tool_spec.rb +330 -0
  2008. data/spec/unit/network/auth_config_parser_spec.rb +101 -0
  2009. data/spec/unit/network/authconfig_spec.rb +109 -0
  2010. data/spec/unit/network/authentication_spec.rb +104 -0
  2011. data/spec/unit/network/authorization_spec.rb +34 -0
  2012. data/spec/unit/network/authstore_spec.rb +424 -0
  2013. data/spec/unit/network/format_handler_spec.rb +94 -0
  2014. data/spec/unit/network/format_spec.rb +197 -0
  2015. data/spec/unit/network/format_support_spec.rb +199 -0
  2016. data/spec/unit/network/formats_spec.rb +422 -0
  2017. data/spec/unit/network/http/api/v1_spec.rb +529 -0
  2018. data/spec/unit/network/http/api/v2/authorization_spec.rb +57 -0
  2019. data/spec/unit/network/http/api/v2/environments_spec.rb +63 -0
  2020. data/spec/unit/network/http/api/v2_spec.rb +14 -0
  2021. data/spec/unit/network/http/compression_spec.rb +196 -0
  2022. data/spec/unit/network/http/connection_spec.rb +306 -0
  2023. data/spec/unit/network/http/error_spec.rb +30 -0
  2024. data/spec/unit/network/http/factory_spec.rb +82 -0
  2025. data/spec/unit/network/http/handler_spec.rb +232 -0
  2026. data/spec/unit/network/http/nocache_pool_spec.rb +43 -0
  2027. data/spec/unit/network/http/pool_spec.rb +269 -0
  2028. data/spec/unit/network/http/rack/rest_spec.rb +316 -0
  2029. data/spec/unit/network/http/rack_spec.rb +43 -0
  2030. data/spec/unit/network/http/route_spec.rb +91 -0
  2031. data/spec/unit/network/http/session_spec.rb +43 -0
  2032. data/spec/unit/network/http/site_spec.rb +90 -0
  2033. data/spec/unit/network/http/webrick/rest_spec.rb +231 -0
  2034. data/spec/unit/network/http/webrick_spec.rb +271 -0
  2035. data/spec/unit/network/http_pool_spec.rb +98 -0
  2036. data/spec/unit/network/http_spec.rb +10 -0
  2037. data/spec/unit/network/resolver_spec.rb +207 -0
  2038. data/spec/unit/network/rights_spec.rb +440 -0
  2039. data/spec/unit/network/server_spec.rb +95 -0
  2040. data/spec/unit/node/environment_spec.rb +581 -0
  2041. data/spec/unit/node/facts_spec.rb +175 -0
  2042. data/spec/unit/node_spec.rb +321 -0
  2043. data/spec/unit/other/selinux_spec.rb +99 -0
  2044. data/spec/unit/parameter/boolean_spec.rb +35 -0
  2045. data/spec/unit/parameter/package_options_spec.rb +44 -0
  2046. data/spec/unit/parameter/path_spec.rb +24 -0
  2047. data/spec/unit/parameter/value_collection_spec.rb +166 -0
  2048. data/spec/unit/parameter/value_spec.rb +87 -0
  2049. data/spec/unit/parameter_spec.rb +193 -0
  2050. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +160 -0
  2051. data/spec/unit/parser/ast/astarray_spec.rb +56 -0
  2052. data/spec/unit/parser/ast/asthash_spec.rb +98 -0
  2053. data/spec/unit/parser/ast/block_expression_spec.rb +67 -0
  2054. data/spec/unit/parser/ast/boolean_operator_spec.rb +54 -0
  2055. data/spec/unit/parser/ast/casestatement_spec.rb +168 -0
  2056. data/spec/unit/parser/ast/collection_spec.rb +70 -0
  2057. data/spec/unit/parser/ast/collexpr_spec.rb +120 -0
  2058. data/spec/unit/parser/ast/comparison_operator_spec.rb +118 -0
  2059. data/spec/unit/parser/ast/definition_spec.rb +21 -0
  2060. data/spec/unit/parser/ast/function_spec.rb +92 -0
  2061. data/spec/unit/parser/ast/hostclass_spec.rb +72 -0
  2062. data/spec/unit/parser/ast/ifstatement_spec.rb +77 -0
  2063. data/spec/unit/parser/ast/in_operator_spec.rb +61 -0
  2064. data/spec/unit/parser/ast/leaf_spec.rb +511 -0
  2065. data/spec/unit/parser/ast/match_operator_spec.rb +51 -0
  2066. data/spec/unit/parser/ast/minus_spec.rb +37 -0
  2067. data/spec/unit/parser/ast/node_spec.rb +30 -0
  2068. data/spec/unit/parser/ast/nop_spec.rb +19 -0
  2069. data/spec/unit/parser/ast/not_spec.rb +31 -0
  2070. data/spec/unit/parser/ast/relationship_spec.rb +87 -0
  2071. data/spec/unit/parser/ast/resource_defaults_spec.rb +21 -0
  2072. data/spec/unit/parser/ast/resource_override_spec.rb +50 -0
  2073. data/spec/unit/parser/ast/resource_reference_spec.rb +56 -0
  2074. data/spec/unit/parser/ast/resource_spec.rb +183 -0
  2075. data/spec/unit/parser/ast/resourceparam_spec.rb +51 -0
  2076. data/spec/unit/parser/ast/selector_spec.rb +88 -0
  2077. data/spec/unit/parser/ast/vardef_spec.rb +68 -0
  2078. data/spec/unit/parser/ast_spec.rb +76 -0
  2079. data/spec/unit/parser/collector_spec.rb +438 -0
  2080. data/spec/unit/parser/compiler_spec.rb +910 -0
  2081. data/spec/unit/parser/files_spec.rb +168 -0
  2082. data/spec/unit/parser/functions/contain_spec.rb +236 -0
  2083. data/spec/unit/parser/functions/create_resources_spec.rb +213 -0
  2084. data/spec/unit/parser/functions/defined_spec.rb +114 -0
  2085. data/spec/unit/parser/functions/digest_spec.rb +31 -0
  2086. data/spec/unit/parser/functions/extlookup_spec.rb +102 -0
  2087. data/spec/unit/parser/functions/fail_spec.rb +28 -0
  2088. data/spec/unit/parser/functions/file_spec.rb +98 -0
  2089. data/spec/unit/parser/functions/fqdn_rand_spec.rb +46 -0
  2090. data/spec/unit/parser/functions/generate_spec.rb +136 -0
  2091. data/spec/unit/parser/functions/hiera_array_spec.rb +26 -0
  2092. data/spec/unit/parser/functions/hiera_hash_spec.rb +22 -0
  2093. data/spec/unit/parser/functions/hiera_include_spec.rb +39 -0
  2094. data/spec/unit/parser/functions/hiera_spec.rb +22 -0
  2095. data/spec/unit/parser/functions/include_spec.rb +65 -0
  2096. data/spec/unit/parser/functions/inline_template_spec.rb +34 -0
  2097. data/spec/unit/parser/functions/lookup_spec.rb +146 -0
  2098. data/spec/unit/parser/functions/realize_spec.rb +61 -0
  2099. data/spec/unit/parser/functions/regsubst_spec.rb +196 -0
  2100. data/spec/unit/parser/functions/require_spec.rb +75 -0
  2101. data/spec/unit/parser/functions/search_spec.rb +28 -0
  2102. data/spec/unit/parser/functions/shared.rb +82 -0
  2103. data/spec/unit/parser/functions/shellquote_spec.rb +67 -0
  2104. data/spec/unit/parser/functions/split_spec.rb +53 -0
  2105. data/spec/unit/parser/functions/sprintf_spec.rb +51 -0
  2106. data/spec/unit/parser/functions/tag_spec.rb +28 -0
  2107. data/spec/unit/parser/functions/template_spec.rb +89 -0
  2108. data/spec/unit/parser/functions/versioncmp_spec.rb +33 -0
  2109. data/spec/unit/parser/functions_spec.rb +132 -0
  2110. data/spec/unit/parser/lexer_spec.rb +877 -0
  2111. data/spec/unit/parser/parser_spec.rb +535 -0
  2112. data/spec/unit/parser/relationship_spec.rb +93 -0
  2113. data/spec/unit/parser/resource/param_spec.rb +44 -0
  2114. data/spec/unit/parser/resource_spec.rb +586 -0
  2115. data/spec/unit/parser/scope_spec.rb +661 -0
  2116. data/spec/unit/parser/templatewrapper_spec.rb +118 -0
  2117. data/spec/unit/parser/type_loader_spec.rb +224 -0
  2118. data/spec/unit/pops/adaptable_spec.rb +141 -0
  2119. data/spec/unit/pops/benchmark_spec.rb +142 -0
  2120. data/spec/unit/pops/binder/binder_spec.rb +43 -0
  2121. data/spec/unit/pops/binder/bindings_checker_spec.rb +155 -0
  2122. data/spec/unit/pops/binder/bindings_composer_spec.rb +66 -0
  2123. data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +18 -0
  2124. data/spec/unit/pops/binder/config/binder_config_spec.rb +35 -0
  2125. data/spec/unit/pops/binder/injector_spec.rb +786 -0
  2126. data/spec/unit/pops/containment_spec.rb +26 -0
  2127. data/spec/unit/pops/evaluator/access_ops_spec.rb +441 -0
  2128. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +77 -0
  2129. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +103 -0
  2130. data/spec/unit/pops/evaluator/collections_ops_spec.rb +111 -0
  2131. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +259 -0
  2132. data/spec/unit/pops/evaluator/conditionals_spec.rb +190 -0
  2133. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1300 -0
  2134. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +75 -0
  2135. data/spec/unit/pops/evaluator/logical_ops_spec.rb +90 -0
  2136. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +44 -0
  2137. data/spec/unit/pops/evaluator/variables_spec.rb +89 -0
  2138. data/spec/unit/pops/factory_rspec_helper.rb +77 -0
  2139. data/spec/unit/pops/factory_spec.rb +306 -0
  2140. data/spec/unit/pops/issues_spec.rb +196 -0
  2141. data/spec/unit/pops/label_provider_spec.rb +42 -0
  2142. data/spec/unit/pops/loaders/dependency_loader_spec.rb +61 -0
  2143. data/spec/unit/pops/loaders/loader_paths_spec.rb +55 -0
  2144. data/spec/unit/pops/loaders/loaders_spec.rb +125 -0
  2145. data/spec/unit/pops/loaders/module_loaders_spec.rb +90 -0
  2146. data/spec/unit/pops/loaders/static_loader_spec.rb +52 -0
  2147. data/spec/unit/pops/model/ast_transformer_spec.rb +76 -0
  2148. data/spec/unit/pops/model/model_spec.rb +37 -0
  2149. data/spec/unit/pops/parser/epp_parser_spec.rb +115 -0
  2150. data/spec/unit/pops/parser/evaluating_parser_spec.rb +89 -0
  2151. data/spec/unit/pops/parser/lexer2_spec.rb +464 -0
  2152. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +278 -0
  2153. data/spec/unit/pops/parser/parse_calls_spec.rb +104 -0
  2154. data/spec/unit/pops/parser/parse_conditionals_spec.rb +157 -0
  2155. data/spec/unit/pops/parser/parse_containers_spec.rb +261 -0
  2156. data/spec/unit/pops/parser/parse_heredoc_spec.rb +87 -0
  2157. data/spec/unit/pops/parser/parse_resource_spec.rb +324 -0
  2158. data/spec/unit/pops/parser/parser_rspec_helper.rb +11 -0
  2159. data/spec/unit/pops/parser/parser_spec.rb +33 -0
  2160. data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +72 -0
  2161. data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +23 -0
  2162. data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +243 -0
  2163. data/spec/unit/pops/transformer/transform_calls_spec.rb +115 -0
  2164. data/spec/unit/pops/transformer/transform_conditionals_spec.rb +123 -0
  2165. data/spec/unit/pops/transformer/transform_containers_spec.rb +190 -0
  2166. data/spec/unit/pops/transformer/transformer_rspec_helper.rb +27 -0
  2167. data/spec/unit/pops/types/enumeration_spec.rb +50 -0
  2168. data/spec/unit/pops/types/type_calculator_spec.rb +1800 -0
  2169. data/spec/unit/pops/types/type_factory_spec.rb +281 -0
  2170. data/spec/unit/pops/types/type_parser_spec.rb +240 -0
  2171. data/spec/unit/pops/validator/validator_spec.rb +184 -0
  2172. data/spec/unit/pops/visitor_spec.rb +94 -0
  2173. data/spec/unit/property/boolean_spec.rb +24 -0
  2174. data/spec/unit/property/ensure_spec.rb +12 -0
  2175. data/spec/unit/property/keyvalue_spec.rb +170 -0
  2176. data/spec/unit/property/list_spec.rb +173 -0
  2177. data/spec/unit/property/ordered_list_spec.rb +63 -0
  2178. data/spec/unit/property_spec.rb +541 -0
  2179. data/spec/unit/provider/README.markdown +4 -0
  2180. data/spec/unit/provider/aixobject_spec.rb +101 -0
  2181. data/spec/unit/provider/augeas/augeas_spec.rb +944 -0
  2182. data/spec/unit/provider/cisco_spec.rb +15 -0
  2183. data/spec/unit/provider/command_spec.rb +62 -0
  2184. data/spec/unit/provider/cron/crontab_spec.rb +207 -0
  2185. data/spec/unit/provider/cron/parsed_spec.rb +336 -0
  2186. data/spec/unit/provider/exec/posix_spec.rb +219 -0
  2187. data/spec/unit/provider/exec/shell_spec.rb +53 -0
  2188. data/spec/unit/provider/exec/windows_spec.rb +107 -0
  2189. data/spec/unit/provider/exec_spec.rb +35 -0
  2190. data/spec/unit/provider/file/posix_spec.rb +232 -0
  2191. data/spec/unit/provider/file/windows_spec.rb +154 -0
  2192. data/spec/unit/provider/group/groupadd_spec.rb +76 -0
  2193. data/spec/unit/provider/group/ldap_spec.rb +101 -0
  2194. data/spec/unit/provider/group/pw_spec.rb +81 -0
  2195. data/spec/unit/provider/group/windows_adsi_spec.rb +168 -0
  2196. data/spec/unit/provider/host/parsed_spec.rb +197 -0
  2197. data/spec/unit/provider/interface/cisco_spec.rb +57 -0
  2198. data/spec/unit/provider/ldap_spec.rb +244 -0
  2199. data/spec/unit/provider/macauthorization_spec.rb +152 -0
  2200. data/spec/unit/provider/mcx/mcxcontent_spec.rb +192 -0
  2201. data/spec/unit/provider/mount/parsed_spec.rb +283 -0
  2202. data/spec/unit/provider/mount_spec.rb +165 -0
  2203. data/spec/unit/provider/naginator_spec.rb +79 -0
  2204. data/spec/unit/provider/nameservice/directoryservice_spec.rb +189 -0
  2205. data/spec/unit/provider/nameservice_spec.rb +304 -0
  2206. data/spec/unit/provider/network_device_spec.rb +152 -0
  2207. data/spec/unit/provider/package/aix_spec.rb +107 -0
  2208. data/spec/unit/provider/package/appdmg_spec.rb +42 -0
  2209. data/spec/unit/provider/package/apt_spec.rb +160 -0
  2210. data/spec/unit/provider/package/aptitude_spec.rb +45 -0
  2211. data/spec/unit/provider/package/aptrpm_spec.rb +47 -0
  2212. data/spec/unit/provider/package/dpkg_spec.rb +281 -0
  2213. data/spec/unit/provider/package/freebsd_spec.rb +54 -0
  2214. data/spec/unit/provider/package/gem_spec.rb +187 -0
  2215. data/spec/unit/provider/package/hpux_spec.rb +51 -0
  2216. data/spec/unit/provider/package/macports_spec.rb +140 -0
  2217. data/spec/unit/provider/package/msi_spec.rb +229 -0
  2218. data/spec/unit/provider/package/nim_spec.rb +250 -0
  2219. data/spec/unit/provider/package/openbsd_spec.rb +369 -0
  2220. data/spec/unit/provider/package/opkg_spec.rb +180 -0
  2221. data/spec/unit/provider/package/pacman_spec.rb +314 -0
  2222. data/spec/unit/provider/package/pip_spec.rb +247 -0
  2223. data/spec/unit/provider/package/pkg_spec.rb +255 -0
  2224. data/spec/unit/provider/package/pkgdmg_spec.rb +144 -0
  2225. data/spec/unit/provider/package/pkgin_spec.rb +178 -0
  2226. data/spec/unit/provider/package/pkgutil_spec.rb +235 -0
  2227. data/spec/unit/provider/package/portage_spec.rb +65 -0
  2228. data/spec/unit/provider/package/rpm_spec.rb +390 -0
  2229. data/spec/unit/provider/package/sun_spec.rb +114 -0
  2230. data/spec/unit/provider/package/up2date_spec.rb +24 -0
  2231. data/spec/unit/provider/package/urpmi.rb +80 -0
  2232. data/spec/unit/provider/package/windows/exe_package_spec.rb +99 -0
  2233. data/spec/unit/provider/package/windows/msi_package_spec.rb +115 -0
  2234. data/spec/unit/provider/package/windows/package_spec.rb +141 -0
  2235. data/spec/unit/provider/package/windows_spec.rb +251 -0
  2236. data/spec/unit/provider/package/yum_spec.rb +308 -0
  2237. data/spec/unit/provider/package/zypper_spec.rb +186 -0
  2238. data/spec/unit/provider/parsedfile_spec.rb +228 -0
  2239. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +1574 -0
  2240. data/spec/unit/provider/selboolean_spec.rb +36 -0
  2241. data/spec/unit/provider/selmodule-example.pp +0 -0
  2242. data/spec/unit/provider/selmodule_spec.rb +73 -0
  2243. data/spec/unit/provider/service/base_spec.rb +77 -0
  2244. data/spec/unit/provider/service/daemontools_spec.rb +171 -0
  2245. data/spec/unit/provider/service/debian_spec.rb +116 -0
  2246. data/spec/unit/provider/service/freebsd_spec.rb +75 -0
  2247. data/spec/unit/provider/service/gentoo_spec.rb +241 -0
  2248. data/spec/unit/provider/service/init_spec.rb +212 -0
  2249. data/spec/unit/provider/service/launchd_spec.rb +290 -0
  2250. data/spec/unit/provider/service/openbsd_spec.rb +256 -0
  2251. data/spec/unit/provider/service/openrc_spec.rb +225 -0
  2252. data/spec/unit/provider/service/openwrt_spec.rb +109 -0
  2253. data/spec/unit/provider/service/redhat_spec.rb +162 -0
  2254. data/spec/unit/provider/service/runit_spec.rb +145 -0
  2255. data/spec/unit/provider/service/smf_spec.rb +153 -0
  2256. data/spec/unit/provider/service/src_spec.rb +173 -0
  2257. data/spec/unit/provider/service/systemd_spec.rb +158 -0
  2258. data/spec/unit/provider/service/upstart_spec.rb +533 -0
  2259. data/spec/unit/provider/service/windows_spec.rb +183 -0
  2260. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +261 -0
  2261. data/spec/unit/provider/sshkey/parsed_spec.rb +71 -0
  2262. data/spec/unit/provider/user/aix_spec.rb +162 -0
  2263. data/spec/unit/provider/user/directoryservice_spec.rb +1114 -0
  2264. data/spec/unit/provider/user/hpux_spec.rb +52 -0
  2265. data/spec/unit/provider/user/ldap_spec.rb +289 -0
  2266. data/spec/unit/provider/user/pw_spec.rb +214 -0
  2267. data/spec/unit/provider/user/user_role_add_spec.rb +357 -0
  2268. data/spec/unit/provider/user/useradd_spec.rb +430 -0
  2269. data/spec/unit/provider/user/windows_adsi_spec.rb +173 -0
  2270. data/spec/unit/provider/vlan/cisco_spec.rb +55 -0
  2271. data/spec/unit/provider/yumrepo/inifile_spec.rb +309 -0
  2272. data/spec/unit/provider/zfs/zfs_spec.rb +106 -0
  2273. data/spec/unit/provider/zone/solaris_spec.rb +195 -0
  2274. data/spec/unit/provider/zpool/zpool_spec.rb +214 -0
  2275. data/spec/unit/provider_spec.rb +714 -0
  2276. data/spec/unit/puppet_spec.rb +41 -0
  2277. data/spec/unit/rails/host_spec.rb +162 -0
  2278. data/spec/unit/rails/param_value_spec.rb +46 -0
  2279. data/spec/unit/rails/resource_spec.rb +115 -0
  2280. data/spec/unit/rails_spec.rb +244 -0
  2281. data/spec/unit/relationship_spec.rb +228 -0
  2282. data/spec/unit/reports/http_spec.rb +100 -0
  2283. data/spec/unit/reports/rrdgraph_spec.rb +29 -0
  2284. data/spec/unit/reports/store_spec.rb +60 -0
  2285. data/spec/unit/reports/tagmail_spec.rb +218 -0
  2286. data/spec/unit/reports_spec.rb +60 -0
  2287. data/spec/unit/resource/catalog_spec.rb +884 -0
  2288. data/spec/unit/resource/status_spec.rb +220 -0
  2289. data/spec/unit/resource/type_collection_helper_spec.rb +24 -0
  2290. data/spec/unit/resource/type_collection_spec.rb +418 -0
  2291. data/spec/unit/resource/type_spec.rb +777 -0
  2292. data/spec/unit/resource_spec.rb +979 -0
  2293. data/spec/unit/run_spec.rb +175 -0
  2294. data/spec/unit/scheduler/job_spec.rb +79 -0
  2295. data/spec/unit/scheduler/scheduler_spec.rb +116 -0
  2296. data/spec/unit/scheduler/splay_job_spec.rb +35 -0
  2297. data/spec/unit/semver_spec.rb +303 -0
  2298. data/spec/unit/settings/array_setting_spec.rb +39 -0
  2299. data/spec/unit/settings/autosign_setting_spec.rb +103 -0
  2300. data/spec/unit/settings/config_file_spec.rb +176 -0
  2301. data/spec/unit/settings/directory_setting_spec.rb +32 -0
  2302. data/spec/unit/settings/duration_setting_spec.rb +45 -0
  2303. data/spec/unit/settings/enum_setting_spec.rb +27 -0
  2304. data/spec/unit/settings/environment_conf_spec.rb +118 -0
  2305. data/spec/unit/settings/file_setting_spec.rb +298 -0
  2306. data/spec/unit/settings/ini_file_spec.rb +184 -0
  2307. data/spec/unit/settings/path_setting_spec.rb +30 -0
  2308. data/spec/unit/settings/priority_setting_spec.rb +66 -0
  2309. data/spec/unit/settings/string_setting_spec.rb +75 -0
  2310. data/spec/unit/settings/terminus_setting_spec.rb +28 -0
  2311. data/spec/unit/settings/value_translator_spec.rb +77 -0
  2312. data/spec/unit/settings_spec.rb +1883 -0
  2313. data/spec/unit/ssl/base_spec.rb +85 -0
  2314. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +30 -0
  2315. data/spec/unit/ssl/certificate_authority/interface_spec.rb +366 -0
  2316. data/spec/unit/ssl/certificate_authority_spec.rb +1130 -0
  2317. data/spec/unit/ssl/certificate_factory_spec.rb +168 -0
  2318. data/spec/unit/ssl/certificate_request_attributes_spec.rb +61 -0
  2319. data/spec/unit/ssl/certificate_request_spec.rb +369 -0
  2320. data/spec/unit/ssl/certificate_revocation_list_spec.rb +196 -0
  2321. data/spec/unit/ssl/certificate_spec.rb +193 -0
  2322. data/spec/unit/ssl/configuration_spec.rb +134 -0
  2323. data/spec/unit/ssl/digest_spec.rb +35 -0
  2324. data/spec/unit/ssl/host_spec.rb +940 -0
  2325. data/spec/unit/ssl/inventory_spec.rb +150 -0
  2326. data/spec/unit/ssl/key_spec.rb +191 -0
  2327. data/spec/unit/ssl/oids_spec.rb +48 -0
  2328. data/spec/unit/ssl/validator_spec.rb +353 -0
  2329. data/spec/unit/status_spec.rb +51 -0
  2330. data/spec/unit/transaction/additional_resource_generator_spec.rb +411 -0
  2331. data/spec/unit/transaction/event_manager_spec.rb +310 -0
  2332. data/spec/unit/transaction/event_spec.rb +192 -0
  2333. data/spec/unit/transaction/report_spec.rb +497 -0
  2334. data/spec/unit/transaction/resource_harness_spec.rb +542 -0
  2335. data/spec/unit/transaction_spec.rb +722 -0
  2336. data/spec/unit/type/README.markdown +4 -0
  2337. data/spec/unit/type/augeas_spec.rb +119 -0
  2338. data/spec/unit/type/component_spec.rb +53 -0
  2339. data/spec/unit/type/computer_spec.rb +80 -0
  2340. data/spec/unit/type/cron_spec.rb +543 -0
  2341. data/spec/unit/type/exec_spec.rb +772 -0
  2342. data/spec/unit/type/file/checksum_spec.rb +79 -0
  2343. data/spec/unit/type/file/content_spec.rb +516 -0
  2344. data/spec/unit/type/file/ctime_spec.rb +34 -0
  2345. data/spec/unit/type/file/ensure_spec.rb +123 -0
  2346. data/spec/unit/type/file/group_spec.rb +60 -0
  2347. data/spec/unit/type/file/mode_spec.rb +220 -0
  2348. data/spec/unit/type/file/mtime_spec.rb +34 -0
  2349. data/spec/unit/type/file/owner_spec.rb +58 -0
  2350. data/spec/unit/type/file/selinux_spec.rb +89 -0
  2351. data/spec/unit/type/file/source_spec.rb +577 -0
  2352. data/spec/unit/type/file/type_spec.rb +19 -0
  2353. data/spec/unit/type/file_spec.rb +1504 -0
  2354. data/spec/unit/type/filebucket_spec.rb +103 -0
  2355. data/spec/unit/type/group_spec.rb +84 -0
  2356. data/spec/unit/type/host_spec.rb +665 -0
  2357. data/spec/unit/type/interface_spec.rb +97 -0
  2358. data/spec/unit/type/k5login_spec.rb +115 -0
  2359. data/spec/unit/type/macauthorization_spec.rb +110 -0
  2360. data/spec/unit/type/mailalias_spec.rb +21 -0
  2361. data/spec/unit/type/maillist_spec.rb +41 -0
  2362. data/spec/unit/type/mcx_spec.rb +79 -0
  2363. data/spec/unit/type/mount_spec.rb +592 -0
  2364. data/spec/unit/type/nagios_spec.rb +293 -0
  2365. data/spec/unit/type/noop_metaparam_spec.rb +38 -0
  2366. data/spec/unit/type/package/package_settings_spec.rb +135 -0
  2367. data/spec/unit/type/package_spec.rb +324 -0
  2368. data/spec/unit/type/resources_spec.rb +318 -0
  2369. data/spec/unit/type/schedule_spec.rb +607 -0
  2370. data/spec/unit/type/scheduled_task_spec.rb +103 -0
  2371. data/spec/unit/type/selboolean_spec.rb +44 -0
  2372. data/spec/unit/type/selmodule_spec.rb +17 -0
  2373. data/spec/unit/type/service_spec.rb +261 -0
  2374. data/spec/unit/type/ssh_authorized_key_spec.rb +258 -0
  2375. data/spec/unit/type/sshkey_spec.rb +77 -0
  2376. data/spec/unit/type/stage_spec.rb +8 -0
  2377. data/spec/unit/type/tidy_spec.rb +433 -0
  2378. data/spec/unit/type/user_spec.rb +514 -0
  2379. data/spec/unit/type/vlan_spec.rb +44 -0
  2380. data/spec/unit/type/whit_spec.rb +10 -0
  2381. data/spec/unit/type/yumrepo_spec.rb +387 -0
  2382. data/spec/unit/type/zfs_spec.rb +46 -0
  2383. data/spec/unit/type/zone_spec.rb +172 -0
  2384. data/spec/unit/type/zpool_spec.rb +109 -0
  2385. data/spec/unit/type_spec.rb +1114 -0
  2386. data/spec/unit/util/autoload_spec.rb +256 -0
  2387. data/spec/unit/util/backups_spec.rb +134 -0
  2388. data/spec/unit/util/cache_accumulator_spec.rb +74 -0
  2389. data/spec/unit/util/cacher_spec.rb +107 -0
  2390. data/spec/unit/util/checksums_spec.rb +180 -0
  2391. data/spec/unit/util/colors_spec.rb +89 -0
  2392. data/spec/unit/util/command_line_spec.rb +192 -0
  2393. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +129 -0
  2394. data/spec/unit/util/constant_inflector_spec.rb +56 -0
  2395. data/spec/unit/util/diff_spec.rb +39 -0
  2396. data/spec/unit/util/docs_spec.rb +100 -0
  2397. data/spec/unit/util/errors_spec.rb +37 -0
  2398. data/spec/unit/util/execution_spec.rb +630 -0
  2399. data/spec/unit/util/execution_stub_spec.rb +39 -0
  2400. data/spec/unit/util/feature_spec.rb +106 -0
  2401. data/spec/unit/util/filetype_spec.rb +211 -0
  2402. data/spec/unit/util/http_proxy_spec.rb +125 -0
  2403. data/spec/unit/util/inifile_spec.rb +492 -0
  2404. data/spec/unit/util/inline_docs_spec.rb +31 -0
  2405. data/spec/unit/util/instrumentation/data_spec.rb +46 -0
  2406. data/spec/unit/util/instrumentation/indirection_probe_spec.rb +21 -0
  2407. data/spec/unit/util/instrumentation/instrumentable_spec.rb +186 -0
  2408. data/spec/unit/util/instrumentation/listener_spec.rb +101 -0
  2409. data/spec/unit/util/instrumentation/listeners/log_spec.rb +34 -0
  2410. data/spec/unit/util/instrumentation/listeners/performance_spec.rb +36 -0
  2411. data/spec/unit/util/instrumentation_spec.rb +181 -0
  2412. data/spec/unit/util/json_lockfile_spec.rb +50 -0
  2413. data/spec/unit/util/ldap/connection_spec.rb +161 -0
  2414. data/spec/unit/util/ldap/generator_spec.rb +50 -0
  2415. data/spec/unit/util/ldap/manager_spec.rb +641 -0
  2416. data/spec/unit/util/lockfile_spec.rb +118 -0
  2417. data/spec/unit/util/log/destinations_spec.rb +227 -0
  2418. data/spec/unit/util/log/rate_limited_logger_spec.rb +51 -0
  2419. data/spec/unit/util/log_spec.rb +378 -0
  2420. data/spec/unit/util/logging_spec.rb +205 -0
  2421. data/spec/unit/util/metric_spec.rb +98 -0
  2422. data/spec/unit/util/monkey_patches/lines_spec.rb +83 -0
  2423. data/spec/unit/util/monkey_patches_spec.rb +328 -0
  2424. data/spec/unit/util/nagios_maker_spec.rb +122 -0
  2425. data/spec/unit/util/network_device/cisco/device_spec.rb +445 -0
  2426. data/spec/unit/util/network_device/cisco/facts_spec.rb +64 -0
  2427. data/spec/unit/util/network_device/cisco/interface_spec.rb +88 -0
  2428. data/spec/unit/util/network_device/config_spec.rb +86 -0
  2429. data/spec/unit/util/network_device/ipcalc_spec.rb +62 -0
  2430. data/spec/unit/util/network_device/transport/base_spec.rb +41 -0
  2431. data/spec/unit/util/network_device/transport/ssh_spec.rb +218 -0
  2432. data/spec/unit/util/network_device/transport/telnet_spec.rb +84 -0
  2433. data/spec/unit/util/network_device_spec.rb +50 -0
  2434. data/spec/unit/util/package_spec.rb +20 -0
  2435. data/spec/unit/util/pidlock_spec.rb +218 -0
  2436. data/spec/unit/util/posix_spec.rb +251 -0
  2437. data/spec/unit/util/profiler/aggregate_spec.rb +59 -0
  2438. data/spec/unit/util/profiler/around_profiler_spec.rb +61 -0
  2439. data/spec/unit/util/profiler/logging_spec.rb +70 -0
  2440. data/spec/unit/util/profiler/object_counts_spec.rb +14 -0
  2441. data/spec/unit/util/profiler/wall_clock_spec.rb +13 -0
  2442. data/spec/unit/util/profiler_spec.rb +55 -0
  2443. data/spec/unit/util/pson_spec.rb +71 -0
  2444. data/spec/unit/util/queue/stomp_spec.rb +137 -0
  2445. data/spec/unit/util/queue_spec.rb +94 -0
  2446. data/spec/unit/util/rdoc/parser_spec.rb +608 -0
  2447. data/spec/unit/util/rdoc_spec.rb +141 -0
  2448. data/spec/unit/util/reference_serializer_spec.rb +51 -0
  2449. data/spec/unit/util/reference_spec.rb +39 -0
  2450. data/spec/unit/util/resource_template_spec.rb +57 -0
  2451. data/spec/unit/util/retryaction_spec.rb +62 -0
  2452. data/spec/unit/util/rubygems_spec.rb +82 -0
  2453. data/spec/unit/util/run_mode_spec.rb +145 -0
  2454. data/spec/unit/util/selinux_spec.rb +289 -0
  2455. data/spec/unit/util/ssl_spec.rb +92 -0
  2456. data/spec/unit/util/storage_spec.rb +210 -0
  2457. data/spec/unit/util/suidmanager_spec.rb +297 -0
  2458. data/spec/unit/util/symbolic_file_mode_spec.rb +182 -0
  2459. data/spec/unit/util/tag_set_spec.rb +46 -0
  2460. data/spec/unit/util/tagging_spec.rb +162 -0
  2461. data/spec/unit/util/terminal_spec.rb +42 -0
  2462. data/spec/unit/util/user_attr_spec.rb +46 -0
  2463. data/spec/unit/util/warnings_spec.rb +38 -0
  2464. data/spec/unit/util/watched_file_spec.rb +52 -0
  2465. data/spec/unit/util/watcher/periodic_watcher_spec.rb +52 -0
  2466. data/spec/unit/util/watcher_spec.rb +56 -0
  2467. data/spec/unit/util/windows/access_control_entry_spec.rb +67 -0
  2468. data/spec/unit/util/windows/access_control_list_spec.rb +133 -0
  2469. data/spec/unit/util/windows/adsi_spec.rb +440 -0
  2470. data/spec/unit/util/windows/api_types_spec.rb +28 -0
  2471. data/spec/unit/util/windows/registry_spec.rb +141 -0
  2472. data/spec/unit/util/windows/root_certs_spec.rb +17 -0
  2473. data/spec/unit/util/windows/security_descriptor_spec.rb +117 -0
  2474. data/spec/unit/util/windows/sid_spec.rb +166 -0
  2475. data/spec/unit/util/windows/string_spec.rb +58 -0
  2476. data/spec/unit/util/yaml_spec.rb +55 -0
  2477. data/spec/unit/util/zaml_spec.rb +308 -0
  2478. data/spec/unit/util_spec.rb +577 -0
  2479. data/spec/unit/version_spec.rb +42 -0
  2480. data/spec/watchr.rb +142 -0
  2481. data/tasks/benchmark.rake +144 -0
  2482. data/tasks/ci.rake +29 -0
  2483. data/tasks/manpages.rake +84 -0
  2484. data/tasks/parallel.rake +408 -0
  2485. data/tasks/parser.rake +19 -0
  2486. data/tasks/yard.rake +59 -0
  2487. metadata +3727 -0
@@ -0,0 +1,32 @@
1
+ module Puppet::Scheduler
2
+ class SplayJob < Job
3
+ attr_reader :splay
4
+
5
+ def initialize(run_interval, splay_limit, &block)
6
+ @splay = calculate_splay(splay_limit)
7
+ super(run_interval, &block)
8
+ end
9
+
10
+ def interval_to_next_from(time)
11
+ if last_run
12
+ super
13
+ else
14
+ (start_time + splay) - time
15
+ end
16
+ end
17
+
18
+ def ready?(time)
19
+ if last_run
20
+ super
21
+ else
22
+ start_time + splay <= time
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def calculate_splay(limit)
29
+ rand(limit + 1)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ module Puppet::Scheduler
2
+ class Timer
3
+ def wait_for(seconds)
4
+ if seconds > 0
5
+ sleep(seconds)
6
+ end
7
+ end
8
+
9
+ def now
10
+ Time.now
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,1392 @@
1
+ require 'puppet'
2
+ require 'getoptlong'
3
+ require 'puppet/util/watched_file'
4
+ require 'puppet/util/command_line/puppet_option_parser'
5
+ require 'forwardable'
6
+
7
+ # The class for handling configuration files.
8
+ class Puppet::Settings
9
+ extend Forwardable
10
+ include Enumerable
11
+
12
+ require 'puppet/settings/errors'
13
+ require 'puppet/settings/base_setting'
14
+ require 'puppet/settings/string_setting'
15
+ require 'puppet/settings/enum_setting'
16
+ require 'puppet/settings/array_setting'
17
+ require 'puppet/settings/file_setting'
18
+ require 'puppet/settings/directory_setting'
19
+ require 'puppet/settings/file_or_directory_setting'
20
+ require 'puppet/settings/path_setting'
21
+ require 'puppet/settings/boolean_setting'
22
+ require 'puppet/settings/terminus_setting'
23
+ require 'puppet/settings/duration_setting'
24
+ require 'puppet/settings/ttl_setting'
25
+ require 'puppet/settings/priority_setting'
26
+ require 'puppet/settings/autosign_setting'
27
+ require 'puppet/settings/config_file'
28
+ require 'puppet/settings/value_translator'
29
+ require 'puppet/settings/environment_conf'
30
+
31
+ # local reference for convenience
32
+ PuppetOptionParser = Puppet::Util::CommandLine::PuppetOptionParser
33
+
34
+ attr_accessor :files
35
+ attr_reader :timer
36
+
37
+ # These are the settings that every app is required to specify; there are reasonable defaults defined in application.rb.
38
+ REQUIRED_APP_SETTINGS = [:logdir, :confdir, :vardir]
39
+
40
+ # This method is intended for puppet internal use only; it is a convenience method that
41
+ # returns reasonable application default settings values for a given run_mode.
42
+ def self.app_defaults_for_run_mode(run_mode)
43
+ {
44
+ :name => run_mode.to_s,
45
+ :run_mode => run_mode.name,
46
+ :confdir => run_mode.conf_dir,
47
+ :vardir => run_mode.var_dir,
48
+ :rundir => run_mode.run_dir,
49
+ :logdir => run_mode.log_dir,
50
+ }
51
+ end
52
+
53
+ def self.default_certname()
54
+ hostname = hostname_fact
55
+ domain = domain_fact
56
+ if domain and domain != ""
57
+ fqdn = [hostname, domain].join(".")
58
+ else
59
+ fqdn = hostname
60
+ end
61
+ fqdn.to_s.gsub(/\.$/, '')
62
+ end
63
+
64
+ def self.hostname_fact()
65
+ Facter["hostname"].value
66
+ end
67
+
68
+ def self.domain_fact()
69
+ Facter["domain"].value
70
+ end
71
+
72
+ def self.default_config_file_name
73
+ "puppet.conf"
74
+ end
75
+
76
+ # Create a new collection of config settings.
77
+ def initialize
78
+ @config = {}
79
+ @shortnames = {}
80
+
81
+ @created = []
82
+
83
+ # Keep track of set values.
84
+ @value_sets = {
85
+ :cli => Values.new(:cli, @config),
86
+ :memory => Values.new(:memory, @config),
87
+ :application_defaults => Values.new(:application_defaults, @config),
88
+ :overridden_defaults => Values.new(:overridden_defaults, @config),
89
+ }
90
+ @configuration_file = nil
91
+
92
+ # And keep a per-environment cache
93
+ @cache = Hash.new { |hash, key| hash[key] = {} }
94
+ @values = Hash.new { |hash, key| hash[key] = {} }
95
+
96
+ # The list of sections we've used.
97
+ @used = []
98
+
99
+ @hooks_to_call_on_application_initialization = []
100
+ @deprecated_setting_names = []
101
+ @deprecated_settings_that_have_been_configured = []
102
+
103
+ @translate = Puppet::Settings::ValueTranslator.new
104
+ @config_file_parser = Puppet::Settings::ConfigFile.new(@translate)
105
+ end
106
+
107
+ # @param name [Symbol] The name of the setting to fetch
108
+ # @return [Puppet::Settings::BaseSetting] The setting object
109
+ def setting(name)
110
+ @config[name]
111
+ end
112
+
113
+ # Retrieve a config value
114
+ # @param param [Symbol] the name of the setting
115
+ # @return [Object] the value of the setting
116
+ # @api private
117
+ def [](param)
118
+ if @deprecated_setting_names.include?(param)
119
+ issue_deprecation_warning(setting(param), "Accessing '#{param}' as a setting is deprecated.")
120
+ end
121
+ value(param)
122
+ end
123
+
124
+ # Set a config value. This doesn't set the defaults, it sets the value itself.
125
+ # @param param [Symbol] the name of the setting
126
+ # @param value [Object] the new value of the setting
127
+ # @api private
128
+ def []=(param, value)
129
+ if @deprecated_setting_names.include?(param)
130
+ issue_deprecation_warning(setting(param), "Modifying '#{param}' as a setting is deprecated.")
131
+ end
132
+ @value_sets[:memory].set(param, value)
133
+ unsafe_flush_cache
134
+ end
135
+
136
+ # Create a new default value for the given setting. The default overrides are
137
+ # higher precedence than the defaults given in defaults.rb, but lower
138
+ # precedence than any other values for the setting. This allows one setting
139
+ # `a` to change the default of setting `b`, but still allow a user to provide
140
+ # a value for setting `b`.
141
+ #
142
+ # @param param [Symbol] the name of the setting
143
+ # @param value [Object] the new default value for the setting
144
+ # @api private
145
+ def override_default(param, value)
146
+ @value_sets[:overridden_defaults].set(param, value)
147
+ unsafe_flush_cache
148
+ end
149
+
150
+ # Generate the list of valid arguments, in a format that GetoptLong can
151
+ # understand, and add them to the passed option list.
152
+ def addargs(options)
153
+ # Add all of the settings as valid options.
154
+ self.each { |name, setting|
155
+ setting.getopt_args.each { |args| options << args }
156
+ }
157
+
158
+ options
159
+ end
160
+
161
+ # Generate the list of valid arguments, in a format that OptionParser can
162
+ # understand, and add them to the passed option list.
163
+ def optparse_addargs(options)
164
+ # Add all of the settings as valid options.
165
+ self.each { |name, setting|
166
+ options << setting.optparse_args
167
+ }
168
+
169
+ options
170
+ end
171
+
172
+ # Is our setting a boolean setting?
173
+ def boolean?(param)
174
+ param = param.to_sym
175
+ @config.include?(param) and @config[param].kind_of?(BooleanSetting)
176
+ end
177
+
178
+ # Remove all set values, potentially skipping cli values.
179
+ def clear
180
+ unsafe_clear
181
+ end
182
+
183
+ # Remove all set values, potentially skipping cli values.
184
+ def unsafe_clear(clear_cli = true, clear_application_defaults = false)
185
+ if clear_application_defaults
186
+ @value_sets[:application_defaults] = Values.new(:application_defaults, @config)
187
+ @app_defaults_initialized = false
188
+ end
189
+
190
+ if clear_cli
191
+ @value_sets[:cli] = Values.new(:cli, @config)
192
+
193
+ # Only clear the 'used' values if we were explicitly asked to clear out
194
+ # :cli values; otherwise, it may be just a config file reparse,
195
+ # and we want to retain this cli values.
196
+ @used = []
197
+ end
198
+
199
+ @value_sets[:memory] = Values.new(:memory, @config)
200
+ @value_sets[:overridden_defaults] = Values.new(:overridden_defaults, @config)
201
+
202
+ @deprecated_settings_that_have_been_configured.clear
203
+ @values.clear
204
+ @cache.clear
205
+ end
206
+ private :unsafe_clear
207
+
208
+ # Clear @cache, @used and the Environment.
209
+ #
210
+ # Whenever an object is returned by Settings, a copy is stored in @cache.
211
+ # As long as Setting attributes that determine the content of returned
212
+ # objects remain unchanged, Settings can keep returning objects from @cache
213
+ # without re-fetching or re-generating them.
214
+ #
215
+ # Whenever a Settings attribute changes, such as @values or @preferred_run_mode,
216
+ # this method must be called to clear out the caches so that updated
217
+ # objects will be returned.
218
+ def flush_cache
219
+ unsafe_flush_cache
220
+ end
221
+
222
+ def unsafe_flush_cache
223
+ clearused
224
+
225
+ # Clear the list of environments, because they cache, at least, the module path.
226
+ # We *could* preferentially just clear them if the modulepath is changed,
227
+ # but we don't really know if, say, the vardir is changed and the modulepath
228
+ # is defined relative to it. We need the defined?(stuff) because of loading
229
+ # order issues.
230
+ Puppet::Node::Environment.clear if defined?(Puppet::Node) and defined?(Puppet::Node::Environment)
231
+ end
232
+ private :unsafe_flush_cache
233
+
234
+ def clearused
235
+ @cache.clear
236
+ @used = []
237
+ end
238
+
239
+ def global_defaults_initialized?()
240
+ @global_defaults_initialized
241
+ end
242
+
243
+ def initialize_global_settings(args = [])
244
+ raise Puppet::DevError, "Attempting to initialize global default settings more than once!" if global_defaults_initialized?
245
+
246
+ # The first two phases of the lifecycle of a puppet application are:
247
+ # 1) Parse the command line options and handle any of them that are
248
+ # registered, defined "global" puppet settings (mostly from defaults.rb).
249
+ # 2) Parse the puppet config file(s).
250
+
251
+ parse_global_options(args)
252
+ parse_config_files
253
+
254
+ @global_defaults_initialized = true
255
+ end
256
+
257
+ # This method is called during application bootstrapping. It is responsible for parsing all of the
258
+ # command line options and initializing the settings accordingly.
259
+ #
260
+ # It will ignore options that are not defined in the global puppet settings list, because they may
261
+ # be valid options for the specific application that we are about to launch... however, at this point
262
+ # in the bootstrapping lifecycle, we don't yet know what that application is.
263
+ def parse_global_options(args)
264
+ # Create an option parser
265
+ option_parser = PuppetOptionParser.new
266
+ option_parser.ignore_invalid_options = true
267
+
268
+ # Add all global options to it.
269
+ self.optparse_addargs([]).each do |option|
270
+ option_parser.on(*option) do |arg|
271
+ opt, val = Puppet::Settings.clean_opt(option[0], arg)
272
+ handlearg(opt, val)
273
+ end
274
+ end
275
+
276
+ option_parser.on('--run_mode',
277
+ "The effective 'run mode' of the application: master, agent, or user.",
278
+ :REQUIRED) do |arg|
279
+ Puppet.settings.preferred_run_mode = arg
280
+ end
281
+
282
+ option_parser.parse(args)
283
+
284
+ # remove run_mode options from the arguments so that later parses don't think
285
+ # it is an unknown option.
286
+ while option_index = args.index('--run_mode') do
287
+ args.delete_at option_index
288
+ args.delete_at option_index
289
+ end
290
+ args.reject! { |arg| arg.start_with? '--run_mode=' }
291
+ end
292
+ private :parse_global_options
293
+
294
+ # A utility method (public, is used by application.rb and perhaps elsewhere) that munges a command-line
295
+ # option string into the format that Puppet.settings expects. (This mostly has to deal with handling the
296
+ # "no-" prefix on flag/boolean options).
297
+ #
298
+ # @param [String] opt the command line option that we are munging
299
+ # @param [String, TrueClass, FalseClass] val the value for the setting (as determined by the OptionParser)
300
+ def self.clean_opt(opt, val)
301
+ # rewrite --[no-]option to --no-option if that's what was given
302
+ if opt =~ /\[no-\]/ and !val
303
+ opt = opt.gsub(/\[no-\]/,'no-')
304
+ end
305
+ # otherwise remove the [no-] prefix to not confuse everybody
306
+ opt = opt.gsub(/\[no-\]/, '')
307
+ [opt, val]
308
+ end
309
+
310
+
311
+ def app_defaults_initialized?
312
+ @app_defaults_initialized
313
+ end
314
+
315
+ def initialize_app_defaults(app_defaults)
316
+ REQUIRED_APP_SETTINGS.each do |key|
317
+ raise SettingsError, "missing required app default setting '#{key}'" unless app_defaults.has_key?(key)
318
+ end
319
+
320
+ app_defaults.each do |key, value|
321
+ if key == :run_mode
322
+ self.preferred_run_mode = value
323
+ else
324
+ @value_sets[:application_defaults].set(key, value)
325
+ unsafe_flush_cache
326
+ end
327
+ end
328
+ apply_metadata
329
+ call_hooks_deferred_to_application_initialization
330
+ issue_deprecations
331
+
332
+ @app_defaults_initialized = true
333
+ end
334
+
335
+ def call_hooks_deferred_to_application_initialization(options = {})
336
+ @hooks_to_call_on_application_initialization.each do |setting|
337
+ begin
338
+ setting.handle(self.value(setting.name))
339
+ rescue InterpolationError => err
340
+ raise InterpolationError, err, err.backtrace unless options[:ignore_interpolation_dependency_errors]
341
+ #swallow. We're not concerned if we can't call hooks because dependencies don't exist yet
342
+ #we'll get another chance after application defaults are initialized
343
+ end
344
+ end
345
+ end
346
+ private :call_hooks_deferred_to_application_initialization
347
+
348
+ # Return a value's description.
349
+ def description(name)
350
+ if obj = @config[name.to_sym]
351
+ obj.desc
352
+ else
353
+ nil
354
+ end
355
+ end
356
+
357
+ def_delegator :@config, :each
358
+
359
+ # Iterate over each section name.
360
+ def eachsection
361
+ yielded = []
362
+ @config.each do |name, object|
363
+ section = object.section
364
+ unless yielded.include? section
365
+ yield section
366
+ yielded << section
367
+ end
368
+ end
369
+ end
370
+
371
+ # Return an object by name.
372
+ def setting(param)
373
+ param = param.to_sym
374
+ @config[param]
375
+ end
376
+
377
+ # Handle a command-line argument.
378
+ def handlearg(opt, value = nil)
379
+ @cache.clear
380
+
381
+ if value.is_a?(FalseClass)
382
+ value = "false"
383
+ elsif value.is_a?(TrueClass)
384
+ value = "true"
385
+ end
386
+
387
+ value &&= @translate[value]
388
+ str = opt.sub(/^--/,'')
389
+
390
+ bool = true
391
+ newstr = str.sub(/^no-/, '')
392
+ if newstr != str
393
+ str = newstr
394
+ bool = false
395
+ end
396
+ str = str.intern
397
+
398
+ if @config[str].is_a?(Puppet::Settings::BooleanSetting)
399
+ if value == "" or value.nil?
400
+ value = bool
401
+ end
402
+ end
403
+
404
+ if s = @config[str]
405
+ @deprecated_settings_that_have_been_configured << s if s.completely_deprecated?
406
+ end
407
+
408
+ @value_sets[:cli].set(str, value)
409
+ unsafe_flush_cache
410
+ end
411
+
412
+ def include?(name)
413
+ name = name.intern if name.is_a? String
414
+ @config.include?(name)
415
+ end
416
+
417
+ # check to see if a short name is already defined
418
+ def shortinclude?(short)
419
+ short = short.intern if name.is_a? String
420
+ @shortnames.include?(short)
421
+ end
422
+
423
+ # Prints the contents of a config file with the available config settings, or it
424
+ # prints a single value of a config setting.
425
+ def print_config_options
426
+ env = value(:environment)
427
+ val = value(:configprint)
428
+ if val == "all"
429
+ hash = {}
430
+ each do |name, obj|
431
+ val = value(name,env)
432
+ val = val.inspect if val == ""
433
+ hash[name] = val
434
+ end
435
+ hash.sort { |a,b| a[0].to_s <=> b[0].to_s }.each do |name, val|
436
+ puts "#{name} = #{val}"
437
+ end
438
+ else
439
+ val.split(/\s*,\s*/).sort.each do |v|
440
+ if include?(v)
441
+ #if there is only one value, just print it for back compatibility
442
+ if v == val
443
+ puts value(val,env)
444
+ break
445
+ end
446
+ puts "#{v} = #{value(v,env)}"
447
+ else
448
+ puts "invalid setting: #{v}"
449
+ return false
450
+ end
451
+ end
452
+ end
453
+ true
454
+ end
455
+
456
+ def generate_config
457
+ puts to_config
458
+ true
459
+ end
460
+
461
+ def generate_manifest
462
+ puts to_manifest
463
+ true
464
+ end
465
+
466
+ def print_configs
467
+ return print_config_options if value(:configprint) != ""
468
+ return generate_config if value(:genconfig)
469
+ generate_manifest if value(:genmanifest)
470
+ end
471
+
472
+ def print_configs?
473
+ (value(:configprint) != "" || value(:genconfig) || value(:genmanifest)) && true
474
+ end
475
+
476
+ # Return a given object's file metadata.
477
+ def metadata(param)
478
+ if obj = @config[param.to_sym] and obj.is_a?(FileSetting)
479
+ {
480
+ :owner => obj.owner,
481
+ :group => obj.group,
482
+ :mode => obj.mode
483
+ }.delete_if { |key, value| value.nil? }
484
+ else
485
+ nil
486
+ end
487
+ end
488
+
489
+ # Make a directory with the appropriate user, group, and mode
490
+ def mkdir(default)
491
+ obj = get_config_file_default(default)
492
+
493
+ Puppet::Util::SUIDManager.asuser(obj.owner, obj.group) do
494
+ mode = obj.mode || 0750
495
+ Dir.mkdir(obj.value, mode)
496
+ end
497
+ end
498
+
499
+ # The currently configured run mode that is preferred for constructing the application configuration.
500
+ def preferred_run_mode
501
+ @preferred_run_mode_name || :user
502
+ end
503
+
504
+ # PRIVATE! This only exists because we need a hook to validate the run mode when it's being set, and
505
+ # it should never, ever, ever, ever be called from outside of this file.
506
+ # This method is also called when --run_mode MODE is used on the command line to set the default
507
+ #
508
+ # @param mode [String|Symbol] the name of the mode to have in effect
509
+ # @api private
510
+ def preferred_run_mode=(mode)
511
+ mode = mode.to_s.downcase.intern
512
+ raise ValidationError, "Invalid run mode '#{mode}'" unless [:master, :agent, :user].include?(mode)
513
+ @preferred_run_mode_name = mode
514
+ # Changing the run mode has far-reaching consequences. Flush any cached
515
+ # settings so they will be re-generated.
516
+ flush_cache
517
+ mode
518
+ end
519
+
520
+ # Return all of the settings associated with a given section.
521
+ def params(section = nil)
522
+ if section
523
+ section = section.intern if section.is_a? String
524
+ @config.find_all { |name, obj|
525
+ obj.section == section
526
+ }.collect { |name, obj|
527
+ name
528
+ }
529
+ else
530
+ @config.keys
531
+ end
532
+ end
533
+
534
+ def parse_config(text, file = "text")
535
+ begin
536
+ data = @config_file_parser.parse_file(file, text)
537
+ rescue => detail
538
+ Puppet.log_exception(detail, "Could not parse #{file}: #{detail}")
539
+ return
540
+ end
541
+
542
+ # If we get here and don't have any data, we just return and don't muck with the current state of the world.
543
+ return if data.nil?
544
+
545
+ # If we get here then we have some data, so we need to clear out any
546
+ # previous settings that may have come from config files.
547
+ unsafe_clear(false, false)
548
+
549
+ record_deprecations_from_puppet_conf(data)
550
+
551
+ # And now we can repopulate with the values from our last parsing of the config files.
552
+ @configuration_file = data
553
+
554
+ # Determine our environment, if we have one.
555
+ if @config[:environment]
556
+ env = self.value(:environment).to_sym
557
+ else
558
+ env = "none"
559
+ end
560
+
561
+ # Call any hooks we should be calling.
562
+ @config.values.select(&:has_hook?).each do |setting|
563
+ value_sets_for(env, self.preferred_run_mode).each do |source|
564
+ if source.include?(setting.name)
565
+ # We still have to use value to retrieve the value, since
566
+ # we want the fully interpolated value, not $vardir/lib or whatever.
567
+ # This results in extra work, but so few of the settings
568
+ # will have associated hooks that it ends up being less work this
569
+ # way overall.
570
+ if setting.call_hook_on_initialize?
571
+ @hooks_to_call_on_application_initialization << setting
572
+ else
573
+ setting.handle(self.value(setting.name, env))
574
+ end
575
+ break
576
+ end
577
+ end
578
+ end
579
+
580
+ call_hooks_deferred_to_application_initialization :ignore_interpolation_dependency_errors => true
581
+ apply_metadata
582
+ end
583
+
584
+ # Parse the configuration file. Just provides thread safety.
585
+ def parse_config_files
586
+ file = which_configuration_file
587
+ if Puppet::FileSystem.exist?(file)
588
+ begin
589
+ text = read_file(file)
590
+ rescue => detail
591
+ Puppet.log_exception(detail, "Could not load #{file}: #{detail}")
592
+ return
593
+ end
594
+ else
595
+ return
596
+ end
597
+
598
+ parse_config(text, file)
599
+ end
600
+ private :parse_config_files
601
+
602
+ def main_config_file
603
+ if explicit_config_file?
604
+ return self[:config]
605
+ else
606
+ return File.join(Puppet::Util::RunMode[:master].conf_dir, config_file_name)
607
+ end
608
+ end
609
+ private :main_config_file
610
+
611
+ def user_config_file
612
+ return File.join(Puppet::Util::RunMode[:user].conf_dir, config_file_name)
613
+ end
614
+ private :user_config_file
615
+
616
+ # This method is here to get around some life-cycle issues. We need to be
617
+ # able to determine the config file name before the settings / defaults are
618
+ # fully loaded. However, we also need to respect any overrides of this value
619
+ # that the user may have specified on the command line.
620
+ #
621
+ # The easiest way to do this is to attempt to read the setting, and if we
622
+ # catch an error (meaning that it hasn't been set yet), we'll fall back to
623
+ # the default value.
624
+ def config_file_name
625
+ begin
626
+ return self[:config_file_name] if self[:config_file_name]
627
+ rescue SettingsError
628
+ # This just means that the setting wasn't explicitly set on the command line, so we will ignore it and
629
+ # fall through to the default name.
630
+ end
631
+ return self.class.default_config_file_name
632
+ end
633
+ private :config_file_name
634
+
635
+ def apply_metadata
636
+ # We have to do it in the reverse of the search path,
637
+ # because multiple sections could set the same value
638
+ # and I'm too lazy to only set the metadata once.
639
+ if @configuration_file
640
+ searchpath.reverse.each do |source|
641
+ source = preferred_run_mode if source == :run_mode
642
+ if section = @configuration_file.sections[source]
643
+ apply_metadata_from_section(section)
644
+ end
645
+ end
646
+ end
647
+ end
648
+ private :apply_metadata
649
+
650
+ def apply_metadata_from_section(section)
651
+ section.settings.each do |setting|
652
+ if setting.has_metadata? && type = @config[setting.name]
653
+ type.set_meta(setting.meta)
654
+ end
655
+ end
656
+ end
657
+
658
+ SETTING_TYPES = {
659
+ :string => StringSetting,
660
+ :file => FileSetting,
661
+ :directory => DirectorySetting,
662
+ :file_or_directory => FileOrDirectorySetting,
663
+ :path => PathSetting,
664
+ :boolean => BooleanSetting,
665
+ :terminus => TerminusSetting,
666
+ :duration => DurationSetting,
667
+ :ttl => TTLSetting,
668
+ :array => ArraySetting,
669
+ :enum => EnumSetting,
670
+ :priority => PrioritySetting,
671
+ :autosign => AutosignSetting,
672
+ }
673
+
674
+ # Create a new setting. The value is passed in because it's used to determine
675
+ # what kind of setting we're creating, but the value itself might be either
676
+ # a default or a value, so we can't actually assign it.
677
+ #
678
+ # See #define_settings for documentation on the legal values for the ":type" option.
679
+ def newsetting(hash)
680
+ klass = nil
681
+ hash[:section] = hash[:section].to_sym if hash[:section]
682
+
683
+ if type = hash[:type]
684
+ unless klass = SETTING_TYPES[type]
685
+ raise ArgumentError, "Invalid setting type '#{type}'"
686
+ end
687
+ hash.delete(:type)
688
+ else
689
+ # The only implicit typing we still do for settings is to fall back to "String" type if they didn't explicitly
690
+ # specify a type. Personally I'd like to get rid of this too, and make the "type" option mandatory... but
691
+ # there was a little resistance to taking things quite that far for now. --cprice 2012-03-19
692
+ klass = StringSetting
693
+ end
694
+ hash[:settings] = self
695
+ setting = klass.new(hash)
696
+
697
+ setting
698
+ end
699
+
700
+ # This has to be private, because it doesn't add the settings to @config
701
+ private :newsetting
702
+
703
+ # Iterate across all of the objects in a given section.
704
+ def persection(section)
705
+ section = section.to_sym
706
+ self.each { |name, obj|
707
+ if obj.section == section
708
+ yield obj
709
+ end
710
+ }
711
+ end
712
+
713
+ # Reparse our config file, if necessary.
714
+ def reparse_config_files
715
+ if files
716
+ if filename = any_files_changed?
717
+ Puppet.notice "Config file #{filename} changed; triggering re-parse of all config files."
718
+ parse_config_files
719
+ reuse
720
+ end
721
+ end
722
+ end
723
+
724
+ def files
725
+ return @files if @files
726
+ @files = []
727
+ [main_config_file, user_config_file].each do |path|
728
+ if Puppet::FileSystem.exist?(path)
729
+ @files << Puppet::Util::WatchedFile.new(path)
730
+ end
731
+ end
732
+ @files
733
+ end
734
+ private :files
735
+
736
+ # Checks to see if any of the config files have been modified
737
+ # @return the filename of the first file that is found to have changed, or
738
+ # nil if no files have changed
739
+ def any_files_changed?
740
+ files.each do |file|
741
+ return file.to_str if file.changed?
742
+ end
743
+ nil
744
+ end
745
+ private :any_files_changed?
746
+
747
+ def reuse
748
+ return unless defined?(@used)
749
+ new = @used
750
+ @used = []
751
+ self.use(*new)
752
+ end
753
+
754
+ # The order in which to search for values.
755
+ def searchpath(environment = nil)
756
+ [:memory, :cli, environment, :run_mode, :main, :application_defaults, :overridden_defaults].compact
757
+ end
758
+
759
+ # Get a list of objects per section
760
+ def sectionlist
761
+ sectionlist = []
762
+ self.each { |name, obj|
763
+ section = obj.section || "puppet"
764
+ sections[section] ||= []
765
+ sectionlist << section unless sectionlist.include?(section)
766
+ sections[section] << obj
767
+ }
768
+
769
+ return sectionlist, sections
770
+ end
771
+
772
+ def service_user_available?
773
+ return @service_user_available if defined?(@service_user_available)
774
+
775
+ if self[:user]
776
+ user = Puppet::Type.type(:user).new :name => self[:user], :audit => :ensure
777
+
778
+ @service_user_available = user.exists?
779
+ else
780
+ @service_user_available = false
781
+ end
782
+ end
783
+
784
+ def service_group_available?
785
+ return @service_group_available if defined?(@service_group_available)
786
+
787
+ if self[:group]
788
+ group = Puppet::Type.type(:group).new :name => self[:group], :audit => :ensure
789
+
790
+ @service_group_available = group.exists?
791
+ else
792
+ @service_group_available = false
793
+ end
794
+ end
795
+
796
+ # Allow later inspection to determine if the setting was set on the
797
+ # command line, or through some other code path. Used for the
798
+ # `dns_alt_names` option during cert generate. --daniel 2011-10-18
799
+ def set_by_cli?(param)
800
+ param = param.to_sym
801
+ !@value_sets[:cli].lookup(param).nil?
802
+ end
803
+
804
+ def set_value(param, value, type, options = {})
805
+ Puppet.deprecation_warning("Puppet.settings.set_value is deprecated. Use Puppet[]= instead.")
806
+ if @value_sets[type]
807
+ @value_sets[type].set(param, value)
808
+ unsafe_flush_cache
809
+ end
810
+ end
811
+
812
+ # Deprecated; use #define_settings instead
813
+ def setdefaults(section, defs)
814
+ Puppet.deprecation_warning("'setdefaults' is deprecated and will be removed; please call 'define_settings' instead")
815
+ define_settings(section, defs)
816
+ end
817
+
818
+ # Define a group of settings.
819
+ #
820
+ # @param [Symbol] section a symbol to use for grouping multiple settings together into a conceptual unit. This value
821
+ # (and the conceptual separation) is not used very often; the main place where it will have a potential impact
822
+ # is when code calls Settings#use method. See docs on that method for further details, but basically that method
823
+ # just attempts to do any preparation that may be necessary before code attempts to leverage the value of a particular
824
+ # setting. This has the most impact for file/directory settings, where #use will attempt to "ensure" those
825
+ # files / directories.
826
+ # @param [Hash[Hash]] defs the settings to be defined. This argument is a hash of hashes; each key should be a symbol,
827
+ # which is basically the name of the setting that you are defining. The value should be another hash that specifies
828
+ # the parameters for the particular setting. Legal values include:
829
+ # [:default] => not required; this is the value for the setting if no other value is specified (via cli, config file, etc.)
830
+ # For string settings this may include "variables", demarcated with $ or ${} which will be interpolated with values of other settings.
831
+ # The default value may also be a Proc that will be called only once to evaluate the default when the setting's value is retrieved.
832
+ # [:desc] => required; a description of the setting, used in documentation / help generation
833
+ # [:type] => not required, but highly encouraged! This specifies the data type that the setting represents. If
834
+ # you do not specify it, it will default to "string". Legal values include:
835
+ # :string - A generic string setting
836
+ # :boolean - A boolean setting; values are expected to be "true" or "false"
837
+ # :file - A (single) file path; puppet may attempt to create this file depending on how the settings are used. This type
838
+ # also supports additional options such as "mode", "owner", "group"
839
+ # :directory - A (single) directory path; puppet may attempt to create this file depending on how the settings are used. This type
840
+ # also supports additional options such as "mode", "owner", "group"
841
+ # :path - This is intended to be used for settings whose value can contain multiple directory paths, respresented
842
+ # as strings separated by the system path separator (e.g. system path, module path, etc.).
843
+ # [:mode] => an (optional) octal value to be used as the permissions/mode for :file and :directory settings
844
+ # [:owner] => optional owner username/uid for :file and :directory settings
845
+ # [:group] => optional group name/gid for :file and :directory settings
846
+ #
847
+ def define_settings(section, defs)
848
+ section = section.to_sym
849
+ call = []
850
+ defs.each do |name, hash|
851
+ raise ArgumentError, "setting definition for '#{name}' is not a hash!" unless hash.is_a? Hash
852
+
853
+ name = name.to_sym
854
+ hash[:name] = name
855
+ hash[:section] = section
856
+ raise ArgumentError, "Setting #{name} is already defined" if @config.include?(name)
857
+ tryconfig = newsetting(hash)
858
+ if short = tryconfig.short
859
+ if other = @shortnames[short]
860
+ raise ArgumentError, "Setting #{other.name} is already using short name '#{short}'"
861
+ end
862
+ @shortnames[short] = tryconfig
863
+ end
864
+ @config[name] = tryconfig
865
+
866
+ # Collect the settings that need to have their hooks called immediately.
867
+ # We have to collect them so that we can be sure we're fully initialized before
868
+ # the hook is called.
869
+ if tryconfig.has_hook?
870
+ if tryconfig.call_hook_on_define?
871
+ call << tryconfig
872
+ elsif tryconfig.call_hook_on_initialize?
873
+ @hooks_to_call_on_application_initialization << tryconfig
874
+ end
875
+ end
876
+
877
+ @deprecated_setting_names << name if tryconfig.deprecated?
878
+ end
879
+
880
+ call.each do |setting|
881
+ setting.handle(self.value(setting.name))
882
+ end
883
+ end
884
+
885
+ # Convert the settings we manage into a catalog full of resources that model those settings.
886
+ def to_catalog(*sections)
887
+ sections = nil if sections.empty?
888
+
889
+ catalog = Puppet::Resource::Catalog.new("Settings", Puppet::Node::Environment::NONE)
890
+
891
+ @config.keys.find_all { |key| @config[key].is_a?(FileSetting) }.each do |key|
892
+ file = @config[key]
893
+ next unless (sections.nil? or sections.include?(file.section))
894
+ next unless resource = file.to_resource
895
+ next if catalog.resource(resource.ref)
896
+
897
+ Puppet.debug("Using settings: adding file resource '#{key}': '#{resource.inspect}'")
898
+
899
+ catalog.add_resource(resource)
900
+ end
901
+
902
+ add_user_resources(catalog, sections)
903
+ add_environment_resources(catalog, sections)
904
+
905
+ catalog
906
+ end
907
+
908
+ # Convert our list of config settings into a configuration file.
909
+ def to_config
910
+ str = %{The configuration file for #{Puppet.run_mode.name}. Note that this file
911
+ is likely to have unused settings in it; any setting that's
912
+ valid anywhere in Puppet can be in any config file, even if it's not used.
913
+
914
+ Every section can specify three special parameters: owner, group, and mode.
915
+ These parameters affect the required permissions of any files specified after
916
+ their specification. Puppet will sometimes use these parameters to check its
917
+ own configured state, so they can be used to make Puppet a bit more self-managing.
918
+
919
+ The file format supports octothorpe-commented lines, but not partial-line comments.
920
+
921
+ Generated on #{Time.now}.
922
+
923
+ }.gsub(/^/, "# ")
924
+
925
+ # Add a section heading that matches our name.
926
+ str += "[#{preferred_run_mode}]\n"
927
+ eachsection do |section|
928
+ persection(section) do |obj|
929
+ str += obj.to_config + "\n" unless obj.name == :genconfig
930
+ end
931
+ end
932
+
933
+ return str
934
+ end
935
+
936
+ # Convert to a parseable manifest
937
+ def to_manifest
938
+ catalog = to_catalog
939
+ catalog.resource_refs.collect do |ref|
940
+ catalog.resource(ref).to_manifest
941
+ end.join("\n\n")
942
+ end
943
+
944
+ # Create the necessary objects to use a section. This is idempotent;
945
+ # you can 'use' a section as many times as you want.
946
+ def use(*sections)
947
+ sections = sections.collect { |s| s.to_sym }
948
+ sections = sections.reject { |s| @used.include?(s) }
949
+
950
+ return if sections.empty?
951
+
952
+ begin
953
+ catalog = to_catalog(*sections).to_ral
954
+ rescue => detail
955
+ Puppet.log_and_raise(detail, "Could not create resources for managing Puppet's files and directories in sections #{sections.inspect}: #{detail}")
956
+ end
957
+
958
+ catalog.host_config = false
959
+ catalog.apply do |transaction|
960
+ if transaction.any_failed?
961
+ report = transaction.report
962
+ status_failures = report.resource_statuses.values.select { |r| r.failed? }
963
+ status_fail_msg = status_failures.
964
+ collect(&:events).
965
+ flatten.
966
+ select { |event| event.status == 'failure' }.
967
+ collect { |event| "#{event.resource}: #{event.message}" }.join("; ")
968
+
969
+ raise "Got #{status_failures.length} failure(s) while initializing: #{status_fail_msg}"
970
+ end
971
+ end
972
+
973
+ sections.each { |s| @used << s }
974
+ @used.uniq!
975
+ end
976
+
977
+ def valid?(param)
978
+ param = param.to_sym
979
+ @config.has_key?(param)
980
+ end
981
+
982
+ def uninterpolated_value(param, environment = nil)
983
+ Puppet.deprecation_warning("Puppet.settings.uninterpolated_value is deprecated. Use Puppet.settings.value instead")
984
+ param = param.to_sym
985
+ environment &&= environment.to_sym
986
+
987
+ values(environment, self.preferred_run_mode).lookup(param)
988
+ end
989
+
990
+ # Retrieve an object that can be used for looking up values of configuration
991
+ # settings.
992
+ #
993
+ # @param environment [Symbol] The name of the environment in which to lookup
994
+ # @param section [Symbol] The name of the configuration section in which to lookup
995
+ # @return [Puppet::Settings::ChainedValues] An object to perform lookups
996
+ # @api public
997
+ def values(environment, section)
998
+ @values[environment][section] ||= ChainedValues.new(
999
+ section,
1000
+ environment,
1001
+ value_sets_for(environment, section),
1002
+ @config)
1003
+ end
1004
+
1005
+ # Find the correct value using our search path.
1006
+ #
1007
+ # @param param [String, Symbol] The value to look up
1008
+ # @param environment [String, Symbol] The environment to check for the value
1009
+ # @param bypass_interpolation [true, false] Whether to skip interpolation
1010
+ #
1011
+ # @return [Object] The looked up value
1012
+ #
1013
+ # @raise [InterpolationError]
1014
+ def value(param, environment = nil, bypass_interpolation = false)
1015
+ param = param.to_sym
1016
+ environment &&= environment.to_sym
1017
+
1018
+ setting = @config[param]
1019
+
1020
+ # Short circuit to nil for undefined settings.
1021
+ return nil if setting.nil?
1022
+
1023
+ # Check the cache first. It needs to be a per-environment
1024
+ # cache so that we don't spread values from one env
1025
+ # to another.
1026
+ if @cache[environment||"none"].has_key?(param)
1027
+ return @cache[environment||"none"][param]
1028
+ elsif bypass_interpolation
1029
+ val = values(environment, self.preferred_run_mode).lookup(param)
1030
+ else
1031
+ val = values(environment, self.preferred_run_mode).interpolate(param)
1032
+ end
1033
+
1034
+ @cache[environment||"none"][param] = val
1035
+ val
1036
+ end
1037
+
1038
+ ##
1039
+ # (#15337) All of the logic to determine the configuration file to use
1040
+ # should be centralized into this method. The simplified approach is:
1041
+ #
1042
+ # 1. If there is an explicit configuration file, use that. (--confdir or
1043
+ # --config)
1044
+ # 2. If we're running as a root process, use the system puppet.conf
1045
+ # (usually /etc/puppet/puppet.conf)
1046
+ # 3. Otherwise, use the user puppet.conf (usually ~/.puppet/puppet.conf)
1047
+ #
1048
+ # @api private
1049
+ # @todo this code duplicates {Puppet::Util::RunMode#which_dir} as described
1050
+ # in {http://projects.puppetlabs.com/issues/16637 #16637}
1051
+ def which_configuration_file
1052
+ if explicit_config_file? or Puppet.features.root? then
1053
+ return main_config_file
1054
+ else
1055
+ return user_config_file
1056
+ end
1057
+ end
1058
+
1059
+ # This method just turns a file into a new ConfigFile::Conf instance
1060
+ # @param file [String] absolute path to the configuration file
1061
+ # @return [Puppet::Settings::ConfigFile::Conf]
1062
+ # @api private
1063
+ def parse_file(file)
1064
+ @config_file_parser.parse_file(file, read_file(file))
1065
+ end
1066
+
1067
+ private
1068
+
1069
+ DEPRECATION_REFS = {
1070
+ [:manifest, :modulepath, :config_version, :templatedir, :manifestdir] =>
1071
+ "See http://links.puppetlabs.com/env-settings-deprecations"
1072
+ }.freeze
1073
+
1074
+ # Record that we want to issue a deprecation warning later in the application
1075
+ # initialization cycle when we have settings bootstrapped to the point where
1076
+ # we can read the Puppet[:disable_warnings] setting.
1077
+ #
1078
+ # We are only recording warnings applicable to settings set in puppet.conf
1079
+ # itself.
1080
+ def record_deprecations_from_puppet_conf(puppet_conf)
1081
+ conf_sections = puppet_conf.sections.inject([]) do |accum,entry|
1082
+ accum << entry[1] if [:main, :master, :agent, :user].include?(entry[0])
1083
+ accum
1084
+ end
1085
+
1086
+ conf_sections.each do |section|
1087
+ section.settings.each do |conf_setting|
1088
+ if setting = self.setting(conf_setting.name)
1089
+ @deprecated_settings_that_have_been_configured << setting if setting.deprecated?
1090
+ end
1091
+ end
1092
+ end
1093
+ end
1094
+
1095
+ def issue_deprecations
1096
+ @deprecated_settings_that_have_been_configured.each do |setting|
1097
+ issue_deprecation_warning(setting)
1098
+ end
1099
+ end
1100
+
1101
+ def issue_deprecation_warning(setting, msg = nil)
1102
+ name = setting.name
1103
+ ref = DEPRECATION_REFS.find { |params,reference| params.include?(name) }
1104
+ ref = ref[1] if ref
1105
+ case
1106
+ when msg
1107
+ msg << " #{ref}" if ref
1108
+ Puppet.deprecation_warning(msg)
1109
+ when setting.completely_deprecated?
1110
+ Puppet.deprecation_warning("Setting #{name} is deprecated. #{ref}", "setting-#{name}")
1111
+ when setting.allowed_on_commandline?
1112
+ Puppet.deprecation_warning("Setting #{name} is deprecated in puppet.conf. #{ref}", "puppet-conf-setting-#{name}")
1113
+ end
1114
+ end
1115
+
1116
+ def get_config_file_default(default)
1117
+ obj = nil
1118
+ unless obj = @config[default]
1119
+ raise ArgumentError, "Unknown default #{default}"
1120
+ end
1121
+
1122
+ raise ArgumentError, "Default #{default} is not a file" unless obj.is_a? FileSetting
1123
+
1124
+ obj
1125
+ end
1126
+
1127
+ def add_environment_resources(catalog, sections)
1128
+ path = self[:environmentpath]
1129
+ envdir = path.split(File::PATH_SEPARATOR).first if path
1130
+ configured_environment = self[:environment]
1131
+ if configured_environment == "production" && envdir && Puppet::FileSystem.exist?(envdir)
1132
+ configured_environment_path = File.join(envdir, configured_environment)
1133
+ catalog.add_resource(
1134
+ Puppet::Resource.new(:file,
1135
+ configured_environment_path,
1136
+ :parameters => { :ensure => 'directory' })
1137
+ )
1138
+ end
1139
+ end
1140
+
1141
+ def add_user_resources(catalog, sections)
1142
+ return unless Puppet.features.root?
1143
+ return if Puppet.features.microsoft_windows?
1144
+ return unless self[:mkusers]
1145
+
1146
+ @config.each do |name, setting|
1147
+ next unless setting.respond_to?(:owner)
1148
+ next unless sections.nil? or sections.include?(setting.section)
1149
+
1150
+ if user = setting.owner and user != "root" and catalog.resource(:user, user).nil?
1151
+ resource = Puppet::Resource.new(:user, user, :parameters => {:ensure => :present})
1152
+ resource[:gid] = self[:group] if self[:group]
1153
+ catalog.add_resource resource
1154
+ end
1155
+ if group = setting.group and ! %w{root wheel}.include?(group) and catalog.resource(:group, group).nil?
1156
+ catalog.add_resource Puppet::Resource.new(:group, group, :parameters => {:ensure => :present})
1157
+ end
1158
+ end
1159
+ end
1160
+
1161
+ # Yield each search source in turn.
1162
+ def value_sets_for(environment, mode)
1163
+ searchpath(environment).collect do |name|
1164
+ case name
1165
+ when :cli, :memory, :application_defaults, :overridden_defaults
1166
+ @value_sets[name]
1167
+ when :run_mode
1168
+ if @configuration_file
1169
+ section = @configuration_file.sections[mode]
1170
+ if section
1171
+ ValuesFromSection.new(mode, section)
1172
+ end
1173
+ end
1174
+ else
1175
+ values_from_section = nil
1176
+ if @configuration_file
1177
+ if section = @configuration_file.sections[name]
1178
+ values_from_section = ValuesFromSection.new(name, section)
1179
+ end
1180
+ end
1181
+ if values_from_section.nil? && global_defaults_initialized?
1182
+ values_from_section = ValuesFromEnvironmentConf.new(name)
1183
+ end
1184
+ values_from_section
1185
+ end
1186
+ end.compact
1187
+ end
1188
+
1189
+ # Read the file in.
1190
+ # @api private
1191
+ def read_file(file)
1192
+ return Puppet::FileSystem.read(file)
1193
+ end
1194
+
1195
+ # Private method for internal test use only; allows to do a comprehensive clear of all settings between tests.
1196
+ #
1197
+ # @return nil
1198
+ def clear_everything_for_tests()
1199
+ unsafe_clear(true, true)
1200
+ @configuration_file = nil
1201
+ @global_defaults_initialized = false
1202
+ @app_defaults_initialized = false
1203
+ end
1204
+ private :clear_everything_for_tests
1205
+
1206
+ def explicit_config_file?
1207
+ # Figure out if the user has provided an explicit configuration file. If
1208
+ # so, return the path to the file, if not return nil.
1209
+ #
1210
+ # The easiest way to determine whether an explicit one has been specified
1211
+ # is to simply attempt to evaluate the value of ":config". This will
1212
+ # obviously be successful if they've passed an explicit value for :config,
1213
+ # but it will also result in successful interpolation if they've only
1214
+ # passed an explicit value for :confdir.
1215
+ #
1216
+ # If they've specified neither, then the interpolation will fail and we'll
1217
+ # get an exception.
1218
+ #
1219
+ begin
1220
+ return true if self[:config]
1221
+ rescue InterpolationError
1222
+ # This means we failed to interpolate, which means that they didn't
1223
+ # explicitly specify either :config or :confdir... so we'll fall out to
1224
+ # the default value.
1225
+ return false
1226
+ end
1227
+ end
1228
+ private :explicit_config_file?
1229
+
1230
+ # Lookup configuration setting value through a chain of different value sources.
1231
+ #
1232
+ # @api public
1233
+ class ChainedValues
1234
+ ENVIRONMENT_SETTING = "environment".freeze
1235
+
1236
+ # @see Puppet::Settings.values
1237
+ # @api private
1238
+ def initialize(mode, environment, value_sets, defaults)
1239
+ @mode = mode
1240
+ @environment = environment
1241
+ @value_sets = value_sets
1242
+ @defaults = defaults
1243
+ end
1244
+
1245
+ # Lookup the uninterpolated value.
1246
+ #
1247
+ # @param name [Symbol] The configuration setting name to look up
1248
+ # @return [Object] The configuration setting value or nil if the setting is not known
1249
+ # @api public
1250
+ def lookup(name)
1251
+ set = @value_sets.find do |set|
1252
+ set.include?(name)
1253
+ end
1254
+ if set
1255
+ value = set.lookup(name)
1256
+ if !value.nil?
1257
+ return value
1258
+ end
1259
+ end
1260
+
1261
+ @defaults[name].default
1262
+ end
1263
+
1264
+ # Lookup the interpolated value. All instances of `$name` in the value will
1265
+ # be replaced by performing a lookup of `name` and substituting the text
1266
+ # for `$name` in the original value. This interpolation is only performed
1267
+ # if the looked up value is a String.
1268
+ #
1269
+ # @param name [Symbol] The configuration setting name to look up
1270
+ # @return [Object] The configuration setting value or nil if the setting is not known
1271
+ # @api public
1272
+ def interpolate(name)
1273
+ setting = @defaults[name]
1274
+
1275
+ if setting
1276
+ val = lookup(name)
1277
+ # if we interpolate code, all hell breaks loose.
1278
+ if name == :code
1279
+ val
1280
+ else
1281
+ # Convert it if necessary
1282
+ begin
1283
+ val = convert(val)
1284
+ rescue InterpolationError => err
1285
+ # This happens because we don't have access to the param name when the
1286
+ # exception is originally raised, but we want it in the message
1287
+ raise InterpolationError, "Error converting value for param '#{name}': #{err}", err.backtrace
1288
+ end
1289
+
1290
+ setting.munge(val)
1291
+ end
1292
+ else
1293
+ nil
1294
+ end
1295
+ end
1296
+
1297
+ private
1298
+
1299
+ def convert(value)
1300
+ case value
1301
+ when nil
1302
+ nil
1303
+ when String
1304
+ value.gsub(/\$(\w+)|\$\{(\w+)\}/) do |value|
1305
+ varname = $2 || $1
1306
+ if varname == ENVIRONMENT_SETTING && @environment
1307
+ @environment
1308
+ elsif varname == "run_mode"
1309
+ @mode
1310
+ elsif !(pval = interpolate(varname.to_sym)).nil?
1311
+ pval
1312
+ else
1313
+ raise InterpolationError, "Could not find value for #{value}"
1314
+ end
1315
+ end
1316
+ else
1317
+ value
1318
+ end
1319
+ end
1320
+ end
1321
+
1322
+ class Values
1323
+ extend Forwardable
1324
+
1325
+ def initialize(name, defaults)
1326
+ @name = name
1327
+ @values = {}
1328
+ @defaults = defaults
1329
+ end
1330
+
1331
+ def_delegator :@values, :include?
1332
+ def_delegator :@values, :[], :lookup
1333
+
1334
+ def set(name, value)
1335
+ default = @defaults[name]
1336
+
1337
+ if !default
1338
+ raise ArgumentError,
1339
+ "Attempt to assign a value to unknown setting #{name.inspect}"
1340
+ end
1341
+
1342
+ if default.has_hook?
1343
+ default.handle(value)
1344
+ end
1345
+
1346
+ @values[name] = value
1347
+ end
1348
+ end
1349
+
1350
+ class ValuesFromSection
1351
+ def initialize(name, section)
1352
+ @name = name
1353
+ @section = section
1354
+ end
1355
+
1356
+ def include?(name)
1357
+ !@section.setting(name).nil?
1358
+ end
1359
+
1360
+ def lookup(name)
1361
+ setting = @section.setting(name)
1362
+ if setting
1363
+ setting.value
1364
+ end
1365
+ end
1366
+ end
1367
+
1368
+ # @api private
1369
+ class ValuesFromEnvironmentConf
1370
+ def initialize(environment_name)
1371
+ @environment_name = environment_name
1372
+ end
1373
+
1374
+ def include?(name)
1375
+ if Puppet::Settings::EnvironmentConf::VALID_SETTINGS.include?(name) && conf
1376
+ return true
1377
+ end
1378
+ false
1379
+ end
1380
+
1381
+ def lookup(name)
1382
+ return nil unless Puppet::Settings::EnvironmentConf::VALID_SETTINGS.include?(name)
1383
+ conf.send(name) if conf
1384
+ end
1385
+
1386
+ def conf
1387
+ @conf ||= if environments = Puppet.lookup(:environments)
1388
+ environments.get_conf(@environment_name)
1389
+ end
1390
+ end
1391
+ end
1392
+ end