puppet 3.7.0-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

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,30 @@
1
+ #! /usr/bin/env ruby
2
+ require 'spec_helper'
3
+
4
+ describe Puppet::Settings::PathSetting do
5
+ subject { described_class.new(:settings => mock('settings'), :desc => "test") }
6
+
7
+ context "#munge" do
8
+ it "should expand all path elements" do
9
+ munged = subject.munge("hello#{File::PATH_SEPARATOR}good/morning#{File::PATH_SEPARATOR}goodbye")
10
+ munged.split(File::PATH_SEPARATOR).each do |p|
11
+ Puppet::Util.should be_absolute_path(p)
12
+ end
13
+ end
14
+
15
+ it "should leave nil as nil" do
16
+ subject.munge(nil).should be_nil
17
+ end
18
+
19
+ context "on Windows", :if => Puppet.features.microsoft_windows? do
20
+ it "should convert \\ to /" do
21
+ subject.munge('C:\test\directory').should == 'C:/test/directory'
22
+ end
23
+
24
+ it "should work with UNC paths" do
25
+ subject.munge('//localhost/some/path').should == '//localhost/some/path'
26
+ subject.munge('\\\\localhost\some\path').should == '//localhost/some/path'
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+ require 'spec_helper'
3
+
4
+ require 'puppet/settings'
5
+ require 'puppet/settings/priority_setting'
6
+ require 'puppet/util/platform'
7
+
8
+ describe Puppet::Settings::PrioritySetting do
9
+ let(:setting) { described_class.new(:settings => mock('settings'), :desc => "test") }
10
+
11
+ it "is of type :priority" do
12
+ setting.type.should == :priority
13
+ end
14
+
15
+ describe "when munging the setting" do
16
+ it "passes nil through" do
17
+ setting.munge(nil).should be_nil
18
+ end
19
+
20
+ it "returns the same value if given an integer" do
21
+ setting.munge(5).should == 5
22
+ end
23
+
24
+ it "returns an integer if given a decimal string" do
25
+ setting.munge('12').should == 12
26
+ end
27
+
28
+ it "returns a negative integer if given a negative integer string" do
29
+ setting.munge('-5').should == -5
30
+ end
31
+
32
+ it "fails if given anything else" do
33
+ [ 'foo', 'realtime', true, 8.3, [] ].each do |value|
34
+ expect {
35
+ setting.munge(value)
36
+ }.to raise_error(Puppet::Settings::ValidationError)
37
+ end
38
+ end
39
+
40
+ describe "on a Unix-like platform it", :unless => Puppet::Util::Platform.windows? do
41
+ it "parses high, normal, low, and idle priorities" do
42
+ {
43
+ 'high' => -10,
44
+ 'normal' => 0,
45
+ 'low' => 10,
46
+ 'idle' => 19
47
+ }.each do |value, converted_value|
48
+ setting.munge(value).should == converted_value
49
+ end
50
+ end
51
+ end
52
+
53
+ describe "on a Windows-like platform it", :if => Puppet::Util::Platform.windows? do
54
+ it "parses high, normal, low, and idle priorities" do
55
+ {
56
+ 'high' => Puppet::Util::Windows::Process::HIGH_PRIORITY_CLASS,
57
+ 'normal' => Puppet::Util::Windows::Process::NORMAL_PRIORITY_CLASS,
58
+ 'low' => Puppet::Util::Windows::Process::BELOW_NORMAL_PRIORITY_CLASS,
59
+ 'idle' => Puppet::Util::Windows::Process::IDLE_PRIORITY_CLASS
60
+ }.each do |value, converted_value|
61
+ setting.munge(value).should == converted_value
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,75 @@
1
+ #! /usr/bin/env ruby
2
+ require 'spec_helper'
3
+
4
+ require 'puppet/settings'
5
+ require 'puppet/settings/string_setting'
6
+
7
+ describe Puppet::Settings::StringSetting do
8
+ StringSetting = Puppet::Settings::StringSetting
9
+
10
+ before(:each) do
11
+ @test_setting_name = :test_setting
12
+ @test_setting_default = "my_crazy_default/$var"
13
+ @application_setting = "application/$var"
14
+ @application_defaults = { }
15
+ Puppet::Settings::REQUIRED_APP_SETTINGS.each do |key|
16
+ @application_defaults[key] = "foo"
17
+ end
18
+ @application_defaults[:run_mode] = :user
19
+ @settings = Puppet::Settings.new
20
+ @application_defaults.each { |k,v| @settings.define_settings :main, k => {:default=>"", :desc => "blah"} }
21
+ @settings.define_settings :main, :var => { :default => "interpolate!",
22
+ :type => :string,
23
+ :desc => "my var desc" },
24
+ @test_setting_name => { :default => @test_setting_default,
25
+ :type => :string,
26
+ :desc => "my test desc" }
27
+ @test_setting = @settings.setting(@test_setting_name)
28
+ end
29
+
30
+ describe "#default" do
31
+ describe "with no arguments" do
32
+ it "should return the setting default" do
33
+ @test_setting.default.should == @test_setting_default
34
+ end
35
+
36
+ it "should be uninterpolated" do
37
+ @test_setting.default.should_not =~ /interpolate/
38
+ end
39
+ end
40
+
41
+ describe "checking application defaults first" do
42
+ describe "if application defaults set" do
43
+ before(:each) do
44
+ @settings.initialize_app_defaults @application_defaults.merge @test_setting_name => @application_setting
45
+ end
46
+
47
+ it "should return the application-set default" do
48
+ @test_setting.default(true).should == @application_setting
49
+ end
50
+
51
+ it "should be uninterpolated" do
52
+ @test_setting.default(true).should_not =~ /interpolate/
53
+ end
54
+
55
+ end
56
+
57
+ describe "if application defaults not set" do
58
+ it "should return the regular default" do
59
+ @test_setting.default(true).should == @test_setting_default
60
+ end
61
+
62
+ it "should be uninterpolated" do
63
+ @test_setting.default(true).should_not =~ /interpolate/
64
+ end
65
+ end
66
+ end
67
+ end
68
+
69
+ describe "#value" do
70
+ it "should be interpolated" do
71
+ @test_setting.value.should =~ /interpolate/
72
+ end
73
+ end
74
+ end
75
+
@@ -0,0 +1,28 @@
1
+ #! /usr/bin/env ruby
2
+ require 'spec_helper'
3
+
4
+ describe Puppet::Settings::TerminusSetting do
5
+ let(:setting) { described_class.new(:settings => mock('settings'), :desc => "test") }
6
+
7
+ describe "#munge" do
8
+ it "converts strings to symbols" do
9
+ setting.munge("string").should == :string
10
+ end
11
+
12
+ it "converts '' to nil" do
13
+ setting.munge('').should be_nil
14
+ end
15
+
16
+ it "preserves symbols" do
17
+ setting.munge(:symbol).should == :symbol
18
+ end
19
+
20
+ it "preserves nil" do
21
+ setting.munge(nil).should be_nil
22
+ end
23
+
24
+ it "does not allow unknown types through" do
25
+ expect { setting.munge(["not a terminus type"]) }.to raise_error Puppet::Settings::ValidationError
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,77 @@
1
+ #! /usr/bin/env ruby -S rspec
2
+ require 'spec_helper'
3
+ require 'puppet/settings/value_translator'
4
+
5
+ describe Puppet::Settings::ValueTranslator do
6
+ let(:translator) { Puppet::Settings::ValueTranslator.new }
7
+
8
+ context "booleans" do
9
+ it "translates strings representing booleans to booleans" do
10
+ translator['true'].should == true
11
+ translator['false'].should == false
12
+ end
13
+
14
+ it "translates boolean values into themselves" do
15
+ translator[true].should == true
16
+ translator[false].should == false
17
+ end
18
+
19
+ it "leaves a boolean string with whitespace as a string" do
20
+ translator[' true'].should == " true"
21
+ translator['true '].should == "true"
22
+
23
+ translator[' false'].should == " false"
24
+ translator['false '].should == "false"
25
+ end
26
+ end
27
+
28
+ context "numbers" do
29
+ it "translates integer strings to integers" do
30
+ translator["1"].should == 1
31
+ translator["2"].should == 2
32
+ end
33
+
34
+ it "translates numbers starting with a 0 as octal" do
35
+ translator["011"].should == 9
36
+ end
37
+
38
+ it "leaves hex numbers as strings" do
39
+ translator["0x11"].should == "0x11"
40
+ end
41
+ end
42
+
43
+ context "arbitrary strings" do
44
+ it "translates an empty string as the empty string" do
45
+ translator[""].should == ""
46
+ end
47
+
48
+
49
+ it "strips double quotes" do
50
+ translator['"a string"'].should == 'a string'
51
+ end
52
+
53
+ it "strips single quotes" do
54
+ translator["'a string'"].should == "a string"
55
+ end
56
+
57
+ it "does not strip preceeding whitespace" do
58
+ translator[" \ta string"].should == " \ta string"
59
+ end
60
+
61
+ it "strips trailing whitespace" do
62
+ translator["a string\t "].should == "a string"
63
+ end
64
+
65
+ it "leaves leading quote that is preceeded by whitespace" do
66
+ translator[" 'a string'"].should == " 'a string"
67
+ end
68
+
69
+ it "leaves trailing quote that is succeeded by whitespace" do
70
+ translator["'a string' "].should == "a string'"
71
+ end
72
+
73
+ it "leaves quotes that are not at the beginning or end of the string" do
74
+ translator["a st'\"ring"].should == "a st'\"ring"
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,1883 @@
1
+ #! /usr/bin/env ruby
2
+ require 'spec_helper'
3
+ require 'ostruct'
4
+ require 'puppet/settings/errors'
5
+
6
+ describe Puppet::Settings do
7
+ include PuppetSpec::Files
8
+
9
+ let(:main_config_file_default_location) do
10
+ File.join(Puppet::Util::RunMode[:master].conf_dir, "puppet.conf")
11
+ end
12
+
13
+ let(:user_config_file_default_location) do
14
+ File.join(Puppet::Util::RunMode[:user].conf_dir, "puppet.conf")
15
+ end
16
+
17
+ describe "when specifying defaults" do
18
+ before do
19
+ @settings = Puppet::Settings.new
20
+ end
21
+
22
+ it "should start with no defined parameters" do
23
+ @settings.params.length.should == 0
24
+ end
25
+
26
+ it "should not allow specification of default values associated with a section as an array" do
27
+ expect {
28
+ @settings.define_settings(:section, :myvalue => ["defaultval", "my description"])
29
+ }.to raise_error
30
+ end
31
+
32
+ it "should not allow duplicate parameter specifications" do
33
+ @settings.define_settings(:section, :myvalue => { :default => "a", :desc => "b" })
34
+ lambda { @settings.define_settings(:section, :myvalue => { :default => "c", :desc => "d" }) }.should raise_error(ArgumentError)
35
+ end
36
+
37
+ it "should allow specification of default values associated with a section as a hash" do
38
+ @settings.define_settings(:section, :myvalue => {:default => "defaultval", :desc => "my description"})
39
+ end
40
+
41
+ it "should consider defined parameters to be valid" do
42
+ @settings.define_settings(:section, :myvalue => { :default => "defaultval", :desc => "my description" })
43
+ @settings.valid?(:myvalue).should be_true
44
+ end
45
+
46
+ it "should require a description when defaults are specified with a hash" do
47
+ lambda { @settings.define_settings(:section, :myvalue => {:default => "a value"}) }.should raise_error(ArgumentError)
48
+ end
49
+
50
+ it "should support specifying owner, group, and mode when specifying files" do
51
+ @settings.define_settings(:section, :myvalue => {:type => :file, :default => "/some/file", :owner => "service", :mode => "boo", :group => "service", :desc => "whatever"})
52
+ end
53
+
54
+ it "should support specifying a short name" do
55
+ @settings.define_settings(:section, :myvalue => {:default => "w", :desc => "b", :short => "m"})
56
+ end
57
+
58
+ it "should support specifying the setting type" do
59
+ @settings.define_settings(:section, :myvalue => {:default => "/w", :desc => "b", :type => :string})
60
+ @settings.setting(:myvalue).should be_instance_of(Puppet::Settings::StringSetting)
61
+ end
62
+
63
+ it "should fail if an invalid setting type is specified" do
64
+ lambda { @settings.define_settings(:section, :myvalue => {:default => "w", :desc => "b", :type => :foo}) }.should raise_error(ArgumentError)
65
+ end
66
+
67
+ it "should fail when short names conflict" do
68
+ @settings.define_settings(:section, :myvalue => {:default => "w", :desc => "b", :short => "m"})
69
+ lambda { @settings.define_settings(:section, :myvalue => {:default => "w", :desc => "b", :short => "m"}) }.should raise_error(ArgumentError)
70
+ end
71
+ end
72
+
73
+
74
+ describe "when initializing application defaults do" do
75
+ let(:default_values) do
76
+ values = {}
77
+ PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS.keys.each do |key|
78
+ values[key] = 'default value'
79
+ end
80
+ values
81
+ end
82
+
83
+ before do
84
+ @settings = Puppet::Settings.new
85
+ @settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
86
+ end
87
+
88
+ it "should fail if the app defaults hash is missing any required values" do
89
+ incomplete_default_values = default_values.reject { |key, _| key == :confdir }
90
+ expect {
91
+ @settings.initialize_app_defaults(default_values.reject { |key, _| key == :confdir })
92
+ }.to raise_error(Puppet::Settings::SettingsError)
93
+ end
94
+
95
+ # ultimately I'd like to stop treating "run_mode" as a normal setting, because it has so many special
96
+ # case behaviors / uses. However, until that time... we need to make sure that our private run_mode=
97
+ # setter method gets properly called during app initialization.
98
+ it "sets the preferred run mode when initializing the app defaults" do
99
+ @settings.initialize_app_defaults(default_values.merge(:run_mode => :master))
100
+
101
+ @settings.preferred_run_mode.should == :master
102
+ end
103
+ end
104
+
105
+ describe "#call_hooks_deferred_to_application_initialization" do
106
+ let(:good_default) { "yay" }
107
+ let(:bad_default) { "$doesntexist" }
108
+ before(:each) do
109
+ @settings = Puppet::Settings.new
110
+ end
111
+
112
+ describe "when ignoring dependency interpolation errors" do
113
+ let(:options) { {:ignore_interpolation_dependency_errors => true} }
114
+
115
+ describe "if interpolation error" do
116
+ it "should not raise an error" do
117
+ hook_values = []
118
+ @settings.define_settings(:section, :badhook => {:default => bad_default, :desc => "boo", :call_hook => :on_initialize_and_write, :hook => lambda { |v| hook_values << v }})
119
+ expect do
120
+ @settings.send(:call_hooks_deferred_to_application_initialization, options)
121
+ end.to_not raise_error
122
+ end
123
+ end
124
+ describe "if no interpolation error" do
125
+ it "should not raise an error" do
126
+ hook_values = []
127
+ @settings.define_settings(:section, :goodhook => {:default => good_default, :desc => "boo", :call_hook => :on_initialize_and_write, :hook => lambda { |v| hook_values << v }})
128
+ expect do
129
+ @settings.send(:call_hooks_deferred_to_application_initialization, options)
130
+ end.to_not raise_error
131
+ end
132
+ end
133
+ end
134
+
135
+ describe "when not ignoring dependency interpolation errors" do
136
+ [ {}, {:ignore_interpolation_dependency_errors => false}].each do |options|
137
+ describe "if interpolation error" do
138
+ it "should raise an error" do
139
+ hook_values = []
140
+ @settings.define_settings(
141
+ :section,
142
+ :badhook => {
143
+ :default => bad_default,
144
+ :desc => "boo",
145
+ :call_hook => :on_initialize_and_write,
146
+ :hook => lambda { |v| hook_values << v }
147
+ }
148
+ )
149
+ expect do
150
+ @settings.send(:call_hooks_deferred_to_application_initialization, options)
151
+ end.to raise_error(Puppet::Settings::InterpolationError)
152
+ end
153
+ it "should contain the setting name in error message" do
154
+ hook_values = []
155
+ @settings.define_settings(
156
+ :section,
157
+ :badhook => {
158
+ :default => bad_default,
159
+ :desc => "boo",
160
+ :call_hook => :on_initialize_and_write,
161
+ :hook => lambda { |v| hook_values << v }
162
+ }
163
+ )
164
+ expect do
165
+ @settings.send(:call_hooks_deferred_to_application_initialization, options)
166
+ end.to raise_error(Puppet::Settings::InterpolationError, /badhook/)
167
+ end
168
+ end
169
+ describe "if no interpolation error" do
170
+ it "should not raise an error" do
171
+ hook_values = []
172
+ @settings.define_settings(
173
+ :section,
174
+ :goodhook => {
175
+ :default => good_default,
176
+ :desc => "boo",
177
+ :call_hook => :on_initialize_and_write,
178
+ :hook => lambda { |v| hook_values << v }
179
+ }
180
+ )
181
+ expect do
182
+ @settings.send(:call_hooks_deferred_to_application_initialization, options)
183
+ end.to_not raise_error
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end
189
+
190
+ describe "when setting values" do
191
+ before do
192
+ @settings = Puppet::Settings.new
193
+ @settings.define_settings :main, :myval => { :default => "val", :desc => "desc" }
194
+ @settings.define_settings :main, :bool => { :type => :boolean, :default => true, :desc => "desc" }
195
+ end
196
+
197
+ it "should provide a method for setting values from other objects" do
198
+ @settings[:myval] = "something else"
199
+ @settings[:myval].should == "something else"
200
+ end
201
+
202
+ it "should support a getopt-specific mechanism for setting values" do
203
+ @settings.handlearg("--myval", "newval")
204
+ @settings[:myval].should == "newval"
205
+ end
206
+
207
+ it "should support a getopt-specific mechanism for turning booleans off" do
208
+ @settings.override_default(:bool, true)
209
+ @settings.handlearg("--no-bool", "")
210
+ @settings[:bool].should == false
211
+ end
212
+
213
+ it "should support a getopt-specific mechanism for turning booleans on" do
214
+ # Turn it off first
215
+ @settings.override_default(:bool, false)
216
+ @settings.handlearg("--bool", "")
217
+ @settings[:bool].should == true
218
+ end
219
+
220
+ it "should consider a cli setting with no argument to be a boolean" do
221
+ # Turn it off first
222
+ @settings.override_default(:bool, false)
223
+ @settings.handlearg("--bool")
224
+ @settings[:bool].should == true
225
+ end
226
+
227
+ it "should consider a cli setting with an empty string as an argument to be an empty argument, if the setting itself is not a boolean" do
228
+ @settings.override_default(:myval, "bob")
229
+ @settings.handlearg("--myval", "")
230
+ @settings[:myval].should == ""
231
+ end
232
+
233
+ it "should consider a cli setting with a boolean as an argument to be a boolean" do
234
+ # Turn it off first
235
+ @settings.override_default(:bool, false)
236
+ @settings.handlearg("--bool", "true")
237
+ @settings[:bool].should == true
238
+ end
239
+
240
+ it "should not consider a cli setting of a non boolean with a boolean as an argument to be a boolean" do
241
+ @settings.override_default(:myval, "bob")
242
+ @settings.handlearg("--no-myval", "")
243
+ @settings[:myval].should == ""
244
+ end
245
+
246
+ it "should flag string settings from the CLI" do
247
+ @settings.handlearg("--myval", "12")
248
+ @settings.set_by_cli?(:myval).should be_true
249
+ end
250
+
251
+ it "should flag bool settings from the CLI" do
252
+ @settings.handlearg("--bool")
253
+ @settings.set_by_cli?(:bool).should be_true
254
+ end
255
+
256
+ it "should not flag settings memory as from CLI" do
257
+ @settings[:myval] = "12"
258
+ @settings.set_by_cli?(:myval).should be_false
259
+ end
260
+
261
+ describe "setbycli" do
262
+ it "should generate a deprecation warning" do
263
+ Puppet.expects(:deprecation_warning).at_least(1)
264
+ @settings.setting(:myval).setbycli = true
265
+ end
266
+ it "should set the value" do
267
+ @settings[:myval] = "blah"
268
+ @settings.setting(:myval).setbycli = true
269
+ @settings.set_by_cli?(:myval).should be_true
270
+ end
271
+ it "should raise error if trying to unset value" do
272
+ @settings.handlearg("--myval", "blah")
273
+ expect do
274
+ @settings.setting(:myval).setbycli = nil
275
+ end.to raise_error(ArgumentError, /unset/)
276
+ end
277
+ end
278
+
279
+ it "should clear the cache when setting getopt-specific values" do
280
+ @settings.define_settings :mysection,
281
+ :one => { :default => "whah", :desc => "yay" },
282
+ :two => { :default => "$one yay", :desc => "bah" }
283
+ @settings.expects(:unsafe_flush_cache)
284
+ @settings[:two].should == "whah yay"
285
+ @settings.handlearg("--one", "else")
286
+ @settings[:two].should == "else yay"
287
+ end
288
+
289
+ it "should clear the cache when the preferred_run_mode is changed" do
290
+ @settings.expects(:flush_cache)
291
+ @settings.preferred_run_mode = :master
292
+ end
293
+
294
+ it "should not clear other values when setting getopt-specific values" do
295
+ @settings[:myval] = "yay"
296
+ @settings.handlearg("--no-bool", "")
297
+ @settings[:myval].should == "yay"
298
+ end
299
+
300
+ it "should clear the list of used sections" do
301
+ @settings.expects(:clearused)
302
+ @settings[:myval] = "yay"
303
+ end
304
+
305
+ describe "call_hook" do
306
+ Puppet::Settings::StringSetting.available_call_hook_values.each do |val|
307
+ describe "when :#{val}" do
308
+ describe "and definition invalid" do
309
+ it "should raise error if no hook defined" do
310
+ expect do
311
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => val})
312
+ end.to raise_error(ArgumentError, /no :hook/)
313
+ end
314
+ it "should include the setting name in the error message" do
315
+ expect do
316
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => val})
317
+ end.to raise_error(ArgumentError, /for :hooker/)
318
+ end
319
+ end
320
+ describe "and definition valid" do
321
+ before(:each) do
322
+ hook_values = []
323
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => val, :hook => lambda { |v| hook_values << v }})
324
+ end
325
+
326
+ it "should call the hook when value written" do
327
+ @settings.setting(:hooker).expects(:handle).with("something").once
328
+ @settings[:hooker] = "something"
329
+ end
330
+ end
331
+ end
332
+ end
333
+
334
+ it "should have a default value of :on_write_only" do
335
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :hook => lambda { |v| hook_values << v }})
336
+ @settings.setting(:hooker).call_hook.should == :on_write_only
337
+ end
338
+
339
+ describe "when nil" do
340
+ it "should generate a warning" do
341
+ Puppet.expects(:warning)
342
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => nil, :hook => lambda { |v| hook_values << v }})
343
+ end
344
+ it "should use default" do
345
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => nil, :hook => lambda { |v| hook_values << v }})
346
+ @settings.setting(:hooker).call_hook.should == :on_write_only
347
+ end
348
+ end
349
+
350
+ describe "when invalid" do
351
+ it "should raise an error" do
352
+ expect do
353
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => :foo, :hook => lambda { |v| hook_values << v }})
354
+ end.to raise_error(ArgumentError, /invalid.*call_hook/i)
355
+ end
356
+ end
357
+
358
+ describe "when :on_define_and_write" do
359
+ it "should call the hook at definition" do
360
+ hook_values = []
361
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| hook_values << v }})
362
+ @settings.setting(:hooker).call_hook.should == :on_define_and_write
363
+ hook_values.should == %w{yay}
364
+ end
365
+ end
366
+
367
+ describe "when :on_initialize_and_write" do
368
+ before(:each) do
369
+ @hook_values = []
370
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => :on_initialize_and_write, :hook => lambda { |v| @hook_values << v }})
371
+ end
372
+
373
+ it "should not call the hook at definition" do
374
+ @hook_values.should == []
375
+ @hook_values.should_not == %w{yay}
376
+ end
377
+
378
+ it "should call the hook at initialization" do
379
+ app_defaults = {}
380
+ Puppet::Settings::REQUIRED_APP_SETTINGS.each do |key|
381
+ app_defaults[key] = "foo"
382
+ end
383
+ app_defaults[:run_mode] = :user
384
+ @settings.define_settings(:main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS)
385
+
386
+ @settings.setting(:hooker).expects(:handle).with("yay").once
387
+
388
+ @settings.initialize_app_defaults app_defaults
389
+ end
390
+ end
391
+ end
392
+
393
+ describe "call_on_define" do
394
+ [true, false].each do |val|
395
+ describe "to #{val}" do
396
+ it "should generate a deprecation warning" do
397
+ Puppet.expects(:deprecation_warning)
398
+ values = []
399
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_on_define => val, :hook => lambda { |v| values << v }})
400
+ end
401
+
402
+ it "should should set call_hook" do
403
+ values = []
404
+ name = "hooker_#{val}".to_sym
405
+ @settings.define_settings(:section, name => {:default => "yay", :desc => "boo", :call_on_define => val, :hook => lambda { |v| values << v }})
406
+
407
+ @settings.setting(name).call_hook.should == :on_define_and_write if val
408
+ @settings.setting(name).call_hook.should == :on_write_only unless val
409
+ end
410
+ end
411
+ end
412
+ end
413
+
414
+ it "should call passed blocks when values are set" do
415
+ values = []
416
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :hook => lambda { |v| values << v }})
417
+ values.should == []
418
+
419
+ @settings[:hooker] = "something"
420
+ values.should == %w{something}
421
+ end
422
+
423
+ it "should call passed blocks when values are set via the command line" do
424
+ values = []
425
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :hook => lambda { |v| values << v }})
426
+ values.should == []
427
+
428
+ @settings.handlearg("--hooker", "yay")
429
+
430
+ values.should == %w{yay}
431
+ end
432
+
433
+ it "should provide an option to call passed blocks during definition" do
434
+ values = []
435
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| values << v }})
436
+ values.should == %w{yay}
437
+ end
438
+
439
+ it "should pass the fully interpolated value to the hook when called on definition" do
440
+ values = []
441
+ @settings.define_settings(:section, :one => { :default => "test", :desc => "a" })
442
+ @settings.define_settings(:section, :hooker => {:default => "$one/yay", :desc => "boo", :call_hook => :on_define_and_write, :hook => lambda { |v| values << v }})
443
+ values.should == %w{test/yay}
444
+ end
445
+
446
+ it "should munge values using the setting-specific methods" do
447
+ @settings[:bool] = "false"
448
+ @settings[:bool].should == false
449
+ end
450
+
451
+ it "should prefer values set in ruby to values set on the cli" do
452
+ @settings[:myval] = "memarg"
453
+ @settings.handlearg("--myval", "cliarg")
454
+
455
+ @settings[:myval].should == "memarg"
456
+ end
457
+
458
+ it "should clear the list of environments" do
459
+ Puppet::Node::Environment.expects(:clear).at_least(1)
460
+ @settings[:myval] = "memarg"
461
+ end
462
+
463
+ it "should raise an error if we try to set a setting that hasn't been defined'" do
464
+ lambda{
465
+ @settings[:why_so_serious] = "foo"
466
+ }.should raise_error(ArgumentError, /unknown setting/)
467
+ end
468
+
469
+ it "allows overriding cli args based on the cli-set value" do
470
+ @settings.handlearg("--myval", "cliarg")
471
+ @settings.set_value(:myval, "modified #{@settings[:myval]}", :cli)
472
+ expect(@settings[:myval]).to eq("modified cliarg")
473
+ end
474
+ end
475
+
476
+ describe "when returning values" do
477
+ before do
478
+ @settings = Puppet::Settings.new
479
+ @settings.define_settings :section,
480
+ :config => { :type => :file, :default => "/my/file", :desc => "eh" },
481
+ :one => { :default => "ONE", :desc => "a" },
482
+ :two => { :default => "$one TWO", :desc => "b"},
483
+ :three => { :default => "$one $two THREE", :desc => "c"},
484
+ :four => { :default => "$two $three FOUR", :desc => "d"},
485
+ :five => { :default => nil, :desc => "e" }
486
+ Puppet::FileSystem.stubs(:exist?).returns true
487
+ end
488
+
489
+ describe "call_on_define" do
490
+ it "should generate a deprecation warning" do
491
+ Puppet.expects(:deprecation_warning)
492
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :hook => lambda { |v| hook_values << v }})
493
+ @settings.setting(:hooker).call_on_define
494
+ end
495
+
496
+ Puppet::Settings::StringSetting.available_call_hook_values.each do |val|
497
+ it "should match value for call_hook => :#{val}" do
498
+ hook_values = []
499
+ @settings.define_settings(:section, :hooker => {:default => "yay", :desc => "boo", :call_hook => val, :hook => lambda { |v| hook_values << v }})
500
+ @settings.setting(:hooker).call_on_define.should == @settings.setting(:hooker).call_hook_on_define?
501
+ end
502
+ end
503
+ end
504
+
505
+ it "should provide a mechanism for returning set values" do
506
+ @settings[:one] = "other"
507
+ @settings[:one].should == "other"
508
+ end
509
+
510
+ it "setting a value to nil causes it to return to its default" do
511
+ default_values = { :one => "skipped value" }
512
+ [:logdir, :confdir, :vardir].each do |key|
513
+ default_values[key] = 'default value'
514
+ end
515
+ @settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
516
+ @settings.initialize_app_defaults(default_values)
517
+ @settings[:one] = "value will disappear"
518
+
519
+ @settings[:one] = nil
520
+
521
+ @settings[:one].should == "ONE"
522
+ end
523
+
524
+ it "should interpolate default values for other parameters into returned parameter values" do
525
+ @settings[:one].should == "ONE"
526
+ @settings[:two].should == "ONE TWO"
527
+ @settings[:three].should == "ONE ONE TWO THREE"
528
+ end
529
+
530
+ it "should interpolate default values that themselves need to be interpolated" do
531
+ @settings[:four].should == "ONE TWO ONE ONE TWO THREE FOUR"
532
+ end
533
+
534
+ it "should provide a method for returning uninterpolated values" do
535
+ @settings[:two] = "$one tw0"
536
+ @settings.uninterpolated_value(:two).should == "$one tw0"
537
+ @settings.uninterpolated_value(:four).should == "$two $three FOUR"
538
+ end
539
+
540
+ it "should interpolate set values for other parameters into returned parameter values" do
541
+ @settings[:one] = "on3"
542
+ @settings[:two] = "$one tw0"
543
+ @settings[:three] = "$one $two thr33"
544
+ @settings[:four] = "$one $two $three f0ur"
545
+ @settings[:one].should == "on3"
546
+ @settings[:two].should == "on3 tw0"
547
+ @settings[:three].should == "on3 on3 tw0 thr33"
548
+ @settings[:four].should == "on3 on3 tw0 on3 on3 tw0 thr33 f0ur"
549
+ end
550
+
551
+ it "should not cache interpolated values such that stale information is returned" do
552
+ @settings[:two].should == "ONE TWO"
553
+ @settings[:one] = "one"
554
+ @settings[:two].should == "one TWO"
555
+ end
556
+
557
+ it "should not cache values such that information from one environment is returned for another environment" do
558
+ text = "[env1]\none = oneval\n[env2]\none = twoval\n"
559
+ @settings.stubs(:read_file).returns(text)
560
+ @settings.send(:parse_config_files)
561
+
562
+ @settings.value(:one, "env1").should == "oneval"
563
+ @settings.value(:one, "env2").should == "twoval"
564
+ end
565
+
566
+ it "should have a run_mode that defaults to user" do
567
+ @settings.preferred_run_mode.should == :user
568
+ end
569
+
570
+ it "interpolates a boolean false without raising an error" do
571
+ @settings.define_settings(:section,
572
+ :trip_wire => { :type => :boolean, :default => false, :desc => "a trip wire" },
573
+ :tripping => { :default => '$trip_wire', :desc => "once tripped if interpolated was false" })
574
+ @settings[:tripping].should == "false"
575
+ end
576
+
577
+ describe "setbycli" do
578
+ it "should generate a deprecation warning" do
579
+ @settings.handlearg("--one", "blah")
580
+ Puppet.expects(:deprecation_warning)
581
+ @settings.setting(:one).setbycli
582
+ end
583
+ it "should be true" do
584
+ @settings.handlearg("--one", "blah")
585
+ @settings.setting(:one).setbycli.should be_true
586
+ end
587
+ end
588
+ end
589
+
590
+ describe "when choosing which value to return" do
591
+ before do
592
+ @settings = Puppet::Settings.new
593
+ @settings.define_settings :section,
594
+ :config => { :type => :file, :default => "/my/file", :desc => "a" },
595
+ :one => { :default => "ONE", :desc => "a" },
596
+ :two => { :default => "TWO", :desc => "b" }
597
+ Puppet::FileSystem.stubs(:exist?).returns true
598
+ @settings.preferred_run_mode = :agent
599
+ end
600
+
601
+ it "should return default values if no values have been set" do
602
+ @settings[:one].should == "ONE"
603
+ end
604
+
605
+ it "should return values set on the cli before values set in the configuration file" do
606
+ text = "[main]\none = fileval\n"
607
+ @settings.stubs(:read_file).returns(text)
608
+ @settings.handlearg("--one", "clival")
609
+ @settings.send(:parse_config_files)
610
+
611
+ @settings[:one].should == "clival"
612
+ end
613
+
614
+ it "should return values set in the mode-specific section before values set in the main section" do
615
+ text = "[main]\none = mainval\n[agent]\none = modeval\n"
616
+ @settings.stubs(:read_file).returns(text)
617
+ @settings.send(:parse_config_files)
618
+
619
+ @settings[:one].should == "modeval"
620
+ end
621
+
622
+ it "should not return values outside of its search path" do
623
+ text = "[other]\none = oval\n"
624
+ file = "/some/file"
625
+ @settings.stubs(:read_file).returns(text)
626
+ @settings.send(:parse_config_files)
627
+ @settings[:one].should == "ONE"
628
+ end
629
+
630
+ it "should return values in a specified environment" do
631
+ text = "[env]\none = envval\n"
632
+ @settings.stubs(:read_file).returns(text)
633
+ @settings.send(:parse_config_files)
634
+ @settings.value(:one, "env").should == "envval"
635
+ end
636
+
637
+ it 'should use the current environment for $environment' do
638
+ @settings.define_settings :main, :myval => { :default => "$environment/foo", :desc => "mydocs" }
639
+
640
+ @settings.value(:myval, "myenv").should == "myenv/foo"
641
+ end
642
+
643
+ it "should interpolate found values using the current environment" do
644
+ text = "[main]\none = mainval\n[myname]\none = nameval\ntwo = $one/two\n"
645
+ @settings.stubs(:read_file).returns(text)
646
+ @settings.send(:parse_config_files)
647
+
648
+ @settings.value(:two, "myname").should == "nameval/two"
649
+ end
650
+
651
+ it "should return values in a specified environment before values in the main or name sections" do
652
+ text = "[env]\none = envval\n[main]\none = mainval\n[myname]\none = nameval\n"
653
+ @settings.stubs(:read_file).returns(text)
654
+ @settings.send(:parse_config_files)
655
+ @settings.value(:one, "env").should == "envval"
656
+ end
657
+
658
+ context "when interpolating a dynamic environments setting" do
659
+ let(:dynamic_manifestdir) { "manifestdir=/somewhere/$environment/manifests" }
660
+ let(:environment) { "environment=anenv" }
661
+
662
+ before(:each) do
663
+ @settings.define_settings :main,
664
+ :manifestdir => { :default => "/manifests", :desc => "manifestdir setting" },
665
+ :environment => { :default => "production", :desc => "environment setting" }
666
+ end
667
+
668
+ it "interpolates default environment when no environment specified" do
669
+ text = <<-EOF
670
+ [main]
671
+ #{dynamic_manifestdir}
672
+ EOF
673
+ @settings.stubs(:read_file).returns(text)
674
+ @settings.send(:parse_config_files)
675
+ expect(@settings.value(:manifestdir)).to eq("/somewhere/production/manifests")
676
+ end
677
+
678
+ it "interpolates the set environment when no environment specified" do
679
+ text = <<-EOF
680
+ [main]
681
+ #{dynamic_manifestdir}
682
+ #{environment}
683
+ EOF
684
+ @settings.stubs(:read_file).returns(text)
685
+ @settings.send(:parse_config_files)
686
+ expect(@settings.value(:manifestdir)).to eq("/somewhere/anenv/manifests")
687
+ end
688
+ end
689
+ end
690
+
691
+
692
+ describe "when locating config files" do
693
+ before do
694
+ @settings = Puppet::Settings.new
695
+ end
696
+
697
+ describe "when root" do
698
+ it "should look for the main config file default location config settings haven't been overridden'" do
699
+ Puppet.features.stubs(:root?).returns(true)
700
+ Puppet::FileSystem.expects(:exist?).with(main_config_file_default_location).returns(false)
701
+ Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).never
702
+
703
+ @settings.send(:parse_config_files)
704
+ end
705
+ end
706
+
707
+ describe "when not root" do
708
+ it "should look for user config file default location if config settings haven't been overridden'" do
709
+ Puppet.features.stubs(:root?).returns(false)
710
+
711
+ seq = sequence "load config files"
712
+ Puppet::FileSystem.expects(:exist?).with(user_config_file_default_location).returns(false).in_sequence(seq)
713
+
714
+ @settings.send(:parse_config_files)
715
+ end
716
+ end
717
+ end
718
+
719
+ describe "when parsing its configuration" do
720
+ before do
721
+ @settings = Puppet::Settings.new
722
+ @settings.stubs(:service_user_available?).returns true
723
+ @settings.stubs(:service_group_available?).returns true
724
+ @file = make_absolute("/some/file")
725
+ @userconfig = make_absolute("/test/userconfigfile")
726
+ @settings.define_settings :section, :user => { :default => "suser", :desc => "doc" }, :group => { :default => "sgroup", :desc => "doc" }
727
+ @settings.define_settings :section,
728
+ :config => { :type => :file, :default => @file, :desc => "eh" },
729
+ :one => { :default => "ONE", :desc => "a" },
730
+ :two => { :default => "$one TWO", :desc => "b" },
731
+ :three => { :default => "$one $two THREE", :desc => "c" }
732
+ @settings.stubs(:user_config_file).returns(@userconfig)
733
+ Puppet::FileSystem.stubs(:exist?).with(@file).returns true
734
+ Puppet::FileSystem.stubs(:exist?).with(@userconfig).returns false
735
+ end
736
+
737
+ it "should not ignore the report setting" do
738
+ @settings.define_settings :section, :report => { :default => "false", :desc => "a" }
739
+ # This is needed in order to make sure we pass on windows
740
+ myfile = File.expand_path(@file)
741
+ @settings[:config] = myfile
742
+ text = <<-CONF
743
+ [puppetd]
744
+ report=true
745
+ CONF
746
+ Puppet::FileSystem.expects(:exist?).with(myfile).returns(true)
747
+ @settings.expects(:read_file).returns(text)
748
+ @settings.send(:parse_config_files)
749
+ @settings[:report].should be_true
750
+ end
751
+
752
+ it "should use its current ':config' value for the file to parse" do
753
+ myfile = make_absolute("/my/file") # do not stub expand_path here, as this leads to a stack overflow, when mocha tries to use it
754
+ @settings[:config] = myfile
755
+
756
+ Puppet::FileSystem.expects(:exist?).with(myfile).returns(true)
757
+
758
+ Puppet::FileSystem.expects(:read).with(myfile).returns "[main]"
759
+
760
+ @settings.send(:parse_config_files)
761
+ end
762
+
763
+ it "should not try to parse non-existent files" do
764
+ Puppet::FileSystem.expects(:exist?).with(@file).returns false
765
+
766
+ File.expects(:read).with(@file).never
767
+
768
+ @settings.send(:parse_config_files)
769
+ end
770
+
771
+ it "should return values set in the configuration file" do
772
+ text = "[main]
773
+ one = fileval
774
+ "
775
+ @settings.expects(:read_file).returns(text)
776
+ @settings.send(:parse_config_files)
777
+ @settings[:one].should == "fileval"
778
+ end
779
+
780
+ #484 - this should probably be in the regression area
781
+ it "should not throw an exception on unknown parameters" do
782
+ text = "[main]\nnosuchparam = mval\n"
783
+ @settings.expects(:read_file).returns(text)
784
+ lambda { @settings.send(:parse_config_files) }.should_not raise_error
785
+ end
786
+
787
+ it "should convert booleans in the configuration file into Ruby booleans" do
788
+ text = "[main]
789
+ one = true
790
+ two = false
791
+ "
792
+ @settings.expects(:read_file).returns(text)
793
+ @settings.send(:parse_config_files)
794
+ @settings[:one].should == true
795
+ @settings[:two].should == false
796
+ end
797
+
798
+ it "should convert integers in the configuration file into Ruby Integers" do
799
+ text = "[main]
800
+ one = 65
801
+ "
802
+ @settings.expects(:read_file).returns(text)
803
+ @settings.send(:parse_config_files)
804
+ @settings[:one].should == 65
805
+ end
806
+
807
+ it "should support specifying all metadata (owner, group, mode) in the configuration file" do
808
+ @settings.define_settings :section, :myfile => { :type => :file, :default => make_absolute("/myfile"), :desc => "a" }
809
+
810
+ otherfile = make_absolute("/other/file")
811
+ @settings.parse_config(<<-CONF)
812
+ [main]
813
+ myfile = #{otherfile} {owner = service, group = service, mode = 644}
814
+ CONF
815
+
816
+ @settings[:myfile].should == otherfile
817
+ @settings.metadata(:myfile).should == {:owner => "suser", :group => "sgroup", :mode => "644"}
818
+ end
819
+
820
+ it "should support specifying a single piece of metadata (owner, group, or mode) in the configuration file" do
821
+ @settings.define_settings :section, :myfile => { :type => :file, :default => make_absolute("/myfile"), :desc => "a" }
822
+
823
+ otherfile = make_absolute("/other/file")
824
+ @settings.parse_config(<<-CONF)
825
+ [main]
826
+ myfile = #{otherfile} {owner = service}
827
+ CONF
828
+
829
+ @settings[:myfile].should == otherfile
830
+ @settings.metadata(:myfile).should == {:owner => "suser"}
831
+ end
832
+
833
+ it "should support loading metadata (owner, group, or mode) from a run_mode section in the configuration file" do
834
+ default_values = {}
835
+ PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS.keys.each do |key|
836
+ default_values[key] = 'default value'
837
+ end
838
+ @settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
839
+ @settings.define_settings :master, :myfile => { :type => :file, :default => make_absolute("/myfile"), :desc => "a" }
840
+
841
+ otherfile = make_absolute("/other/file")
842
+ text = "[master]
843
+ myfile = #{otherfile} {mode = 664}
844
+ "
845
+ @settings.expects(:read_file).returns(text)
846
+
847
+ # will start initialization as user
848
+ @settings.preferred_run_mode.should == :user
849
+ @settings.send(:parse_config_files)
850
+
851
+ # change app run_mode to master
852
+ @settings.initialize_app_defaults(default_values.merge(:run_mode => :master))
853
+ @settings.preferred_run_mode.should == :master
854
+
855
+ # initializing the app should have reloaded the metadata based on run_mode
856
+ @settings[:myfile].should == otherfile
857
+ @settings.metadata(:myfile).should == {:mode => "664"}
858
+ end
859
+
860
+ it "does not use the metadata from the same setting in a different section" do
861
+ default_values = {}
862
+ PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS.keys.each do |key|
863
+ default_values[key] = 'default value'
864
+ end
865
+
866
+ file = make_absolute("/file")
867
+ default_mode = "0600"
868
+ @settings.define_settings :main, PuppetSpec::Settings::TEST_APP_DEFAULT_DEFINITIONS
869
+ @settings.define_settings :master, :myfile => { :type => :file, :default => file, :desc => "a", :mode => default_mode }
870
+
871
+ text = "[master]
872
+ myfile = #{file}/foo
873
+ [agent]
874
+ myfile = #{file} {mode = 664}
875
+ "
876
+ @settings.expects(:read_file).returns(text)
877
+
878
+ # will start initialization as user
879
+ @settings.preferred_run_mode.should == :user
880
+ @settings.send(:parse_config_files)
881
+
882
+ # change app run_mode to master
883
+ @settings.initialize_app_defaults(default_values.merge(:run_mode => :master))
884
+ @settings.preferred_run_mode.should == :master
885
+
886
+ # initializing the app should have reloaded the metadata based on run_mode
887
+ @settings[:myfile].should == "#{file}/foo"
888
+ @settings.metadata(:myfile).should == { :mode => default_mode }
889
+ end
890
+
891
+ it "should call hooks associated with values set in the configuration file" do
892
+ values = []
893
+ @settings.define_settings :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
894
+
895
+ text = "[main]
896
+ mysetting = setval
897
+ "
898
+ @settings.expects(:read_file).returns(text)
899
+ @settings.send(:parse_config_files)
900
+ values.should == ["setval"]
901
+ end
902
+
903
+ it "should not call the same hook for values set multiple times in the configuration file" do
904
+ values = []
905
+ @settings.define_settings :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
906
+
907
+ text = "[user]
908
+ mysetting = setval
909
+ [main]
910
+ mysetting = other
911
+ "
912
+ @settings.expects(:read_file).returns(text)
913
+ @settings.send(:parse_config_files)
914
+ values.should == ["setval"]
915
+ end
916
+
917
+ it "should pass the environment-specific value to the hook when one is available" do
918
+ values = []
919
+ @settings.define_settings :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
920
+ @settings.define_settings :section, :environment => { :default => "yay", :desc => "a" }
921
+ @settings.define_settings :section, :environments => { :default => "yay,foo", :desc => "a" }
922
+
923
+ text = "[main]
924
+ mysetting = setval
925
+ [yay]
926
+ mysetting = other
927
+ "
928
+ @settings.expects(:read_file).returns(text)
929
+ @settings.send(:parse_config_files)
930
+ values.should == ["other"]
931
+ end
932
+
933
+ it "should pass the interpolated value to the hook when one is available" do
934
+ values = []
935
+ @settings.define_settings :section, :base => {:default => "yay", :desc => "a", :hook => proc { |v| values << v }}
936
+ @settings.define_settings :section, :mysetting => {:default => "defval", :desc => "a", :hook => proc { |v| values << v }}
937
+
938
+ text = "[main]
939
+ mysetting = $base/setval
940
+ "
941
+ @settings.expects(:read_file).returns(text)
942
+ @settings.send(:parse_config_files)
943
+ values.should == ["yay/setval"]
944
+ end
945
+
946
+ it "should allow hooks invoked at parse time to be deferred" do
947
+ hook_invoked = false
948
+ @settings.define_settings :section, :deferred => {:desc => '',
949
+ :hook => proc { |v| hook_invoked = true },
950
+ :call_hook => :on_initialize_and_write, }
951
+
952
+ @settings.define_settings(:main,
953
+ :logdir => { :type => :directory, :default => nil, :desc => "logdir" },
954
+ :confdir => { :type => :directory, :default => nil, :desc => "confdir" },
955
+ :vardir => { :type => :directory, :default => nil, :desc => "vardir" })
956
+
957
+ text = <<-EOD
958
+ [main]
959
+ deferred=$confdir/goose
960
+ EOD
961
+
962
+ @settings.stubs(:read_file).returns(text)
963
+ @settings.initialize_global_settings
964
+
965
+ hook_invoked.should be_false
966
+
967
+ @settings.initialize_app_defaults(:logdir => '/path/to/logdir', :confdir => '/path/to/confdir', :vardir => '/path/to/vardir')
968
+
969
+ hook_invoked.should be_true
970
+ @settings[:deferred].should eq(File.expand_path('/path/to/confdir/goose'))
971
+ end
972
+
973
+ it "does not require the value for a setting without a hook to resolve during global setup" do
974
+ hook_invoked = false
975
+ @settings.define_settings :section, :can_cause_problems => {:desc => '' }
976
+
977
+ @settings.define_settings(:main,
978
+ :logdir => { :type => :directory, :default => nil, :desc => "logdir" },
979
+ :confdir => { :type => :directory, :default => nil, :desc => "confdir" },
980
+ :vardir => { :type => :directory, :default => nil, :desc => "vardir" })
981
+
982
+ text = <<-EOD
983
+ [main]
984
+ can_cause_problems=$confdir/goose
985
+ EOD
986
+
987
+ @settings.stubs(:read_file).returns(text)
988
+ @settings.initialize_global_settings
989
+ @settings.initialize_app_defaults(:logdir => '/path/to/logdir', :confdir => '/path/to/confdir', :vardir => '/path/to/vardir')
990
+
991
+ @settings[:can_cause_problems].should eq(File.expand_path('/path/to/confdir/goose'))
992
+ end
993
+
994
+ it "should allow empty values" do
995
+ @settings.define_settings :section, :myarg => { :default => "myfile", :desc => "a" }
996
+
997
+ text = "[main]
998
+ myarg =
999
+ "
1000
+ @settings.stubs(:read_file).returns(text)
1001
+ @settings.send(:parse_config_files)
1002
+ @settings[:myarg].should == ""
1003
+ end
1004
+
1005
+ describe "deprecations" do
1006
+ let(:settings) { Puppet::Settings.new }
1007
+ let(:app_defaults) {
1008
+ {
1009
+ :logdir => "/dev/null",
1010
+ :confdir => "/dev/null",
1011
+ :vardir => "/dev/null",
1012
+ }
1013
+ }
1014
+
1015
+ def assert_accessing_setting_is_deprecated(settings, setting)
1016
+ Puppet.expects(:deprecation_warning).with("Accessing '#{setting}' as a setting is deprecated. See http://links.puppetlabs.com/env-settings-deprecations")
1017
+ Puppet.expects(:deprecation_warning).with("Modifying '#{setting}' as a setting is deprecated. See http://links.puppetlabs.com/env-settings-deprecations")
1018
+ settings[setting.intern] = apath = File.expand_path('foo')
1019
+ expect(settings[setting.intern]).to eq(apath)
1020
+ end
1021
+
1022
+ before(:each) do
1023
+ settings.define_settings(:main, {
1024
+ :logdir => { :default => 'a', :desc => 'a' },
1025
+ :confdir => { :default => 'b', :desc => 'b' },
1026
+ :vardir => { :default => 'c', :desc => 'c' },
1027
+ })
1028
+ end
1029
+
1030
+ context "complete" do
1031
+ let(:completely_deprecated_settings) do
1032
+ settings.define_settings(:main, {
1033
+ :manifestdir => {
1034
+ :default => 'foo',
1035
+ :desc => 'a deprecated setting',
1036
+ :deprecated => :completely,
1037
+ }
1038
+ })
1039
+ settings
1040
+ end
1041
+
1042
+ it "warns when set in puppet.conf" do
1043
+ Puppet.expects(:deprecation_warning).with(regexp_matches(/manifestdir is deprecated\./), 'setting-manifestdir')
1044
+
1045
+ completely_deprecated_settings.parse_config(<<-CONF)
1046
+ manifestdir='should warn'
1047
+ CONF
1048
+ completely_deprecated_settings.initialize_app_defaults(app_defaults)
1049
+ end
1050
+
1051
+ it "warns when set on the commandline" do
1052
+ Puppet.expects(:deprecation_warning).with(regexp_matches(/manifestdir is deprecated\./), 'setting-manifestdir')
1053
+
1054
+ args = ["--manifestdir", "/some/value"]
1055
+ completely_deprecated_settings.send(:parse_global_options, args)
1056
+ completely_deprecated_settings.initialize_app_defaults(app_defaults)
1057
+ end
1058
+
1059
+ it "warns when set in code" do
1060
+ assert_accessing_setting_is_deprecated(completely_deprecated_settings, 'manifestdir')
1061
+ end
1062
+ end
1063
+
1064
+ context "partial" do
1065
+ let(:partially_deprecated_settings) do
1066
+ settings.define_settings(:main, {
1067
+ :modulepath => {
1068
+ :default => 'foo',
1069
+ :desc => 'a partially deprecated setting',
1070
+ :deprecated => :allowed_on_commandline,
1071
+ }
1072
+ })
1073
+ settings
1074
+ end
1075
+
1076
+ it "warns for a deprecated setting allowed on the command line set in puppet.conf" do
1077
+ Puppet.expects(:deprecation_warning).with(regexp_matches(/modulepath is deprecated in puppet\.conf/), 'puppet-conf-setting-modulepath')
1078
+ partially_deprecated_settings.parse_config(<<-CONF)
1079
+ modulepath='should warn'
1080
+ CONF
1081
+ partially_deprecated_settings.initialize_app_defaults(app_defaults)
1082
+ end
1083
+
1084
+ it "does not warn when manifest is set on command line" do
1085
+ Puppet.expects(:deprecation_warning).never
1086
+
1087
+ args = ["--modulepath", "/some/value"]
1088
+ partially_deprecated_settings.send(:parse_global_options, args)
1089
+ partially_deprecated_settings.initialize_app_defaults(app_defaults)
1090
+ end
1091
+
1092
+ it "warns when set in code" do
1093
+ assert_accessing_setting_is_deprecated(partially_deprecated_settings, 'modulepath')
1094
+ end
1095
+ end
1096
+ end
1097
+ end
1098
+
1099
+ describe "when there are multiple config files" do
1100
+ let(:main_config_text) { "[main]\none = main\ntwo = main2" }
1101
+ let(:user_config_text) { "[main]\none = user\n" }
1102
+ let(:seq) { sequence "config_file_sequence" }
1103
+
1104
+ before :each do
1105
+ @settings = Puppet::Settings.new
1106
+ @settings.define_settings(:section,
1107
+ { :confdir => { :default => nil, :desc => "Conf dir" },
1108
+ :config => { :default => "$confdir/puppet.conf", :desc => "Config" },
1109
+ :one => { :default => "ONE", :desc => "a" },
1110
+ :two => { :default => "TWO", :desc => "b" }, })
1111
+ end
1112
+
1113
+ context "running non-root without explicit config file" do
1114
+ before :each do
1115
+ Puppet.features.stubs(:root?).returns(false)
1116
+ Puppet::FileSystem.expects(:exist?).
1117
+ with(user_config_file_default_location).
1118
+ returns(true).in_sequence(seq)
1119
+ @settings.expects(:read_file).
1120
+ with(user_config_file_default_location).
1121
+ returns(user_config_text).in_sequence(seq)
1122
+ end
1123
+
1124
+ it "should return values from the user config file" do
1125
+ @settings.send(:parse_config_files)
1126
+ @settings[:one].should == "user"
1127
+ end
1128
+
1129
+ it "should not return values from the main config file" do
1130
+ @settings.send(:parse_config_files)
1131
+ @settings[:two].should == "TWO"
1132
+ end
1133
+ end
1134
+
1135
+ context "running as root without explicit config file" do
1136
+ before :each do
1137
+ Puppet.features.stubs(:root?).returns(true)
1138
+ Puppet::FileSystem.expects(:exist?).
1139
+ with(main_config_file_default_location).
1140
+ returns(true).in_sequence(seq)
1141
+ @settings.expects(:read_file).
1142
+ with(main_config_file_default_location).
1143
+ returns(main_config_text).in_sequence(seq)
1144
+ end
1145
+
1146
+ it "should return values from the main config file" do
1147
+ @settings.send(:parse_config_files)
1148
+ @settings[:one].should == "main"
1149
+ end
1150
+
1151
+ it "should not return values from the user config file" do
1152
+ @settings.send(:parse_config_files)
1153
+ @settings[:two].should == "main2"
1154
+ end
1155
+ end
1156
+
1157
+ context "running with an explicit config file as a user (e.g. Apache + Passenger)" do
1158
+ before :each do
1159
+ Puppet.features.stubs(:root?).returns(false)
1160
+ @settings[:confdir] = File.dirname(main_config_file_default_location)
1161
+ Puppet::FileSystem.expects(:exist?).
1162
+ with(main_config_file_default_location).
1163
+ returns(true).in_sequence(seq)
1164
+ @settings.expects(:read_file).
1165
+ with(main_config_file_default_location).
1166
+ returns(main_config_text).in_sequence(seq)
1167
+ end
1168
+
1169
+ it "should return values from the main config file" do
1170
+ @settings.send(:parse_config_files)
1171
+ @settings[:one].should == "main"
1172
+ end
1173
+
1174
+ it "should not return values from the user config file" do
1175
+ @settings.send(:parse_config_files)
1176
+ @settings[:two].should == "main2"
1177
+ end
1178
+ end
1179
+ end
1180
+
1181
+ describe "when reparsing its configuration" do
1182
+ before do
1183
+ @file = make_absolute("/test/file")
1184
+ @userconfig = make_absolute("/test/userconfigfile")
1185
+ @settings = Puppet::Settings.new
1186
+ @settings.define_settings :section,
1187
+ :config => { :type => :file, :default => @file, :desc => "a" },
1188
+ :one => { :default => "ONE", :desc => "a" },
1189
+ :two => { :default => "$one TWO", :desc => "b" },
1190
+ :three => { :default => "$one $two THREE", :desc => "c" }
1191
+ Puppet::FileSystem.stubs(:exist?).with(@file).returns true
1192
+ Puppet::FileSystem.stubs(:exist?).with(@userconfig).returns false
1193
+ @settings.stubs(:user_config_file).returns(@userconfig)
1194
+ end
1195
+
1196
+ it "does not create the WatchedFile instance and should not parse if the file does not exist" do
1197
+ Puppet::FileSystem.expects(:exist?).with(@file).returns false
1198
+ Puppet::Util::WatchedFile.expects(:new).never
1199
+
1200
+ @settings.expects(:parse_config_files).never
1201
+
1202
+ @settings.reparse_config_files
1203
+ end
1204
+
1205
+ context "and watched file exists" do
1206
+ before do
1207
+ @watched_file = Puppet::Util::WatchedFile.new(@file)
1208
+ Puppet::Util::WatchedFile.expects(:new).with(@file).returns @watched_file
1209
+ end
1210
+
1211
+ it "uses a WatchedFile instance to determine if the file has changed" do
1212
+ @watched_file.expects(:changed?)
1213
+
1214
+ @settings.reparse_config_files
1215
+ end
1216
+
1217
+ it "does not reparse if the file has not changed" do
1218
+ @watched_file.expects(:changed?).returns false
1219
+
1220
+ @settings.expects(:parse_config_files).never
1221
+
1222
+ @settings.reparse_config_files
1223
+ end
1224
+
1225
+ it "reparses if the file has changed" do
1226
+ @watched_file.expects(:changed?).returns true
1227
+
1228
+ @settings.expects(:parse_config_files)
1229
+
1230
+ @settings.reparse_config_files
1231
+ end
1232
+
1233
+ it "replaces in-memory values with on-file values" do
1234
+ @watched_file.stubs(:changed?).returns(true)
1235
+ @settings[:one] = "init"
1236
+
1237
+ # Now replace the value
1238
+ text = "[main]\none = disk-replace\n"
1239
+ @settings.stubs(:read_file).returns(text)
1240
+ @settings.reparse_config_files
1241
+ @settings[:one].should == "disk-replace"
1242
+ end
1243
+ end
1244
+
1245
+ it "should retain parameters set by cli when configuration files are reparsed" do
1246
+ @settings.handlearg("--one", "clival")
1247
+
1248
+ text = "[main]\none = on-disk\n"
1249
+ @settings.stubs(:read_file).returns(text)
1250
+ @settings.send(:parse_config_files)
1251
+
1252
+ @settings[:one].should == "clival"
1253
+ end
1254
+
1255
+ it "should remove in-memory values that are no longer set in the file" do
1256
+ # Init the value
1257
+ text = "[main]\none = disk-init\n"
1258
+ @settings.expects(:read_file).returns(text)
1259
+ @settings.send(:parse_config_files)
1260
+ @settings[:one].should == "disk-init"
1261
+
1262
+ # Now replace the value
1263
+ text = "[main]\ntwo = disk-replace\n"
1264
+ @settings.expects(:read_file).returns(text)
1265
+ @settings.send(:parse_config_files)
1266
+
1267
+ # The originally-overridden value should be replaced with the default
1268
+ @settings[:one].should == "ONE"
1269
+
1270
+ # and we should now have the new value in memory
1271
+ @settings[:two].should == "disk-replace"
1272
+ end
1273
+
1274
+ it "should retain in-memory values if the file has a syntax error" do
1275
+ # Init the value
1276
+ text = "[main]\none = initial-value\n"
1277
+ @settings.expects(:read_file).with(@file).returns(text)
1278
+ @settings.send(:parse_config_files)
1279
+ @settings[:one].should == "initial-value"
1280
+
1281
+ # Now replace the value with something bogus
1282
+ text = "[main]\nkenny = killed-by-what-follows\n1 is 2, blah blah florp\n"
1283
+ @settings.expects(:read_file).with(@file).returns(text)
1284
+ @settings.send(:parse_config_files)
1285
+
1286
+ # The originally-overridden value should not be replaced with the default
1287
+ @settings[:one].should == "initial-value"
1288
+
1289
+ # and we should not have the new value in memory
1290
+ @settings[:kenny].should be_nil
1291
+ end
1292
+ end
1293
+
1294
+ it "should provide a method for creating a catalog of resources from its configuration" do
1295
+ Puppet::Settings.new.should respond_to(:to_catalog)
1296
+ end
1297
+
1298
+ describe "when creating a catalog" do
1299
+ before do
1300
+ @settings = Puppet::Settings.new
1301
+ @settings.stubs(:service_user_available?).returns true
1302
+ @prefix = Puppet.features.posix? ? "" : "C:"
1303
+ end
1304
+
1305
+ it "should add all file resources to the catalog if no sections have been specified" do
1306
+ @settings.define_settings :main,
1307
+ :maindir => { :type => :directory, :default => @prefix+"/maindir", :desc => "a"},
1308
+ :seconddir => { :type => :directory, :default => @prefix+"/seconddir", :desc => "a"}
1309
+ @settings.define_settings :other,
1310
+ :otherdir => { :type => :directory, :default => @prefix+"/otherdir", :desc => "a" }
1311
+
1312
+ catalog = @settings.to_catalog
1313
+
1314
+ [@prefix+"/maindir", @prefix+"/seconddir", @prefix+"/otherdir"].each do |path|
1315
+ catalog.resource(:file, path).should be_instance_of(Puppet::Resource)
1316
+ end
1317
+ end
1318
+
1319
+ it "should add only files in the specified sections if section names are provided" do
1320
+ @settings.define_settings :main, :maindir => { :type => :directory, :default => @prefix+"/maindir", :desc => "a" }
1321
+ @settings.define_settings :other, :otherdir => { :type => :directory, :default => @prefix+"/otherdir", :desc => "a" }
1322
+ catalog = @settings.to_catalog(:main)
1323
+ catalog.resource(:file, @prefix+"/otherdir").should be_nil
1324
+ catalog.resource(:file, @prefix+"/maindir").should be_instance_of(Puppet::Resource)
1325
+ end
1326
+
1327
+ it "should not try to add the same file twice" do
1328
+ @settings.define_settings :main, :maindir => { :type => :directory, :default => @prefix+"/maindir", :desc => "a" }
1329
+ @settings.define_settings :other, :otherdir => { :type => :directory, :default => @prefix+"/maindir", :desc => "a" }
1330
+ lambda { @settings.to_catalog }.should_not raise_error
1331
+ end
1332
+
1333
+ it "should ignore files whose :to_resource method returns nil" do
1334
+ @settings.define_settings :main, :maindir => { :type => :directory, :default => @prefix+"/maindir", :desc => "a" }
1335
+ @settings.setting(:maindir).expects(:to_resource).returns nil
1336
+
1337
+ Puppet::Resource::Catalog.any_instance.expects(:add_resource).never
1338
+ @settings.to_catalog
1339
+ end
1340
+
1341
+ describe "on Microsoft Windows" do
1342
+ before :each do
1343
+ Puppet.features.stubs(:root?).returns true
1344
+ Puppet.features.stubs(:microsoft_windows?).returns true
1345
+
1346
+ @settings.define_settings :foo,
1347
+ :mkusers => { :type => :boolean, :default => true, :desc => "e" },
1348
+ :user => { :default => "suser", :desc => "doc" },
1349
+ :group => { :default => "sgroup", :desc => "doc" }
1350
+ @settings.define_settings :other,
1351
+ :otherdir => { :type => :directory, :default => "/otherdir", :desc => "a", :owner => "service", :group => "service"}
1352
+
1353
+ @catalog = @settings.to_catalog
1354
+ end
1355
+
1356
+ it "it should not add users and groups to the catalog" do
1357
+ @catalog.resource(:user, "suser").should be_nil
1358
+ @catalog.resource(:group, "sgroup").should be_nil
1359
+ end
1360
+ end
1361
+
1362
+ describe "adding default directory environment to the catalog" do
1363
+ let(:tmpenv) { tmpdir("envs") }
1364
+ let(:default_path) { "#{tmpenv}/environments" }
1365
+ before(:each) do
1366
+ @settings.define_settings :main,
1367
+ :environment => { :default => "production", :desc => "env"},
1368
+ :environmentpath => { :type => :path, :default => default_path, :desc => "envpath"}
1369
+ end
1370
+
1371
+ it "adds if environmentpath exists" do
1372
+ envpath = "#{tmpenv}/custom_envpath"
1373
+ @settings[:environmentpath] = envpath
1374
+ Dir.mkdir(envpath)
1375
+ catalog = @settings.to_catalog
1376
+ expect(catalog.resource_keys).to include(["File", "#{envpath}/production"])
1377
+ end
1378
+
1379
+ it "adds the first directory of environmentpath" do
1380
+ envdir = "#{tmpenv}/custom_envpath"
1381
+ envpath = "#{envdir}#{File::PATH_SEPARATOR}/some/other/envdir"
1382
+ @settings[:environmentpath] = envpath
1383
+ Dir.mkdir(envdir)
1384
+ catalog = @settings.to_catalog
1385
+ expect(catalog.resource_keys).to include(["File", "#{envdir}/production"])
1386
+ end
1387
+
1388
+ it "handles a non-existent environmentpath" do
1389
+ catalog = @settings.to_catalog
1390
+ expect(catalog.resource_keys).to be_empty
1391
+ end
1392
+
1393
+ it "handles a default environmentpath" do
1394
+ Dir.mkdir(default_path)
1395
+ catalog = @settings.to_catalog
1396
+ expect(catalog.resource_keys).to include(["File", "#{default_path}/production"])
1397
+ end
1398
+ end
1399
+
1400
+ describe "when adding users and groups to the catalog" do
1401
+ before do
1402
+ Puppet.features.stubs(:root?).returns true
1403
+ Puppet.features.stubs(:microsoft_windows?).returns false
1404
+
1405
+ @settings.define_settings :foo,
1406
+ :mkusers => { :type => :boolean, :default => true, :desc => "e" },
1407
+ :user => { :default => "suser", :desc => "doc" },
1408
+ :group => { :default => "sgroup", :desc => "doc" }
1409
+ @settings.define_settings :other, :otherdir => {:type => :directory, :default => "/otherdir", :desc => "a", :owner => "service", :group => "service"}
1410
+
1411
+ @catalog = @settings.to_catalog
1412
+ end
1413
+
1414
+ it "should add each specified user and group to the catalog if :mkusers is a valid setting, is enabled, and we're running as root" do
1415
+ @catalog.resource(:user, "suser").should be_instance_of(Puppet::Resource)
1416
+ @catalog.resource(:group, "sgroup").should be_instance_of(Puppet::Resource)
1417
+ end
1418
+
1419
+ it "should only add users and groups to the catalog from specified sections" do
1420
+ @settings.define_settings :yay, :yaydir => { :type => :directory, :default => "/yaydir", :desc => "a", :owner => "service", :group => "service"}
1421
+ catalog = @settings.to_catalog(:other)
1422
+ catalog.resource(:user, "jane").should be_nil
1423
+ catalog.resource(:group, "billy").should be_nil
1424
+ end
1425
+
1426
+ it "should not add users or groups to the catalog if :mkusers not running as root" do
1427
+ Puppet.features.stubs(:root?).returns false
1428
+
1429
+ catalog = @settings.to_catalog
1430
+ catalog.resource(:user, "suser").should be_nil
1431
+ catalog.resource(:group, "sgroup").should be_nil
1432
+ end
1433
+
1434
+ it "should not add users or groups to the catalog if :mkusers is not a valid setting" do
1435
+ Puppet.features.stubs(:root?).returns true
1436
+ settings = Puppet::Settings.new
1437
+ settings.define_settings :other, :otherdir => {:type => :directory, :default => "/otherdir", :desc => "a", :owner => "service", :group => "service"}
1438
+
1439
+ catalog = settings.to_catalog
1440
+ catalog.resource(:user, "suser").should be_nil
1441
+ catalog.resource(:group, "sgroup").should be_nil
1442
+ end
1443
+
1444
+ it "should not add users or groups to the catalog if :mkusers is a valid setting but is disabled" do
1445
+ @settings[:mkusers] = false
1446
+
1447
+ catalog = @settings.to_catalog
1448
+ catalog.resource(:user, "suser").should be_nil
1449
+ catalog.resource(:group, "sgroup").should be_nil
1450
+ end
1451
+
1452
+ it "should not try to add users or groups to the catalog twice" do
1453
+ @settings.define_settings :yay, :yaydir => {:type => :directory, :default => "/yaydir", :desc => "a", :owner => "service", :group => "service"}
1454
+
1455
+ # This would fail if users/groups were added twice
1456
+ lambda { @settings.to_catalog }.should_not raise_error
1457
+ end
1458
+
1459
+ it "should set :ensure to :present on each created user and group" do
1460
+ @catalog.resource(:user, "suser")[:ensure].should == :present
1461
+ @catalog.resource(:group, "sgroup")[:ensure].should == :present
1462
+ end
1463
+
1464
+ it "should set each created user's :gid to the service group" do
1465
+ @settings.to_catalog.resource(:user, "suser")[:gid].should == "sgroup"
1466
+ end
1467
+
1468
+ it "should not attempt to manage the root user" do
1469
+ Puppet.features.stubs(:root?).returns true
1470
+ @settings.define_settings :foo, :foodir => {:type => :directory, :default => "/foodir", :desc => "a", :owner => "root", :group => "service"}
1471
+
1472
+ @settings.to_catalog.resource(:user, "root").should be_nil
1473
+ end
1474
+ end
1475
+ end
1476
+
1477
+ it "should be able to be converted to a manifest" do
1478
+ Puppet::Settings.new.should respond_to(:to_manifest)
1479
+ end
1480
+
1481
+ describe "when being converted to a manifest" do
1482
+ it "should produce a string with the code for each resource joined by two carriage returns" do
1483
+ @settings = Puppet::Settings.new
1484
+ @settings.define_settings :main,
1485
+ :maindir => { :type => :directory, :default => "/maindir", :desc => "a"},
1486
+ :seconddir => { :type => :directory, :default => "/seconddir", :desc => "a"}
1487
+
1488
+ main = stub 'main_resource', :ref => "File[/maindir]"
1489
+ main.expects(:to_manifest).returns "maindir"
1490
+ second = stub 'second_resource', :ref => "File[/seconddir]"
1491
+ second.expects(:to_manifest).returns "seconddir"
1492
+ @settings.setting(:maindir).expects(:to_resource).returns main
1493
+ @settings.setting(:seconddir).expects(:to_resource).returns second
1494
+
1495
+ @settings.to_manifest.split("\n\n").sort.should == %w{maindir seconddir}
1496
+ end
1497
+ end
1498
+
1499
+ describe "when using sections of the configuration to manage the local host" do
1500
+ before do
1501
+ @settings = Puppet::Settings.new
1502
+ @settings.stubs(:service_user_available?).returns true
1503
+ @settings.stubs(:service_group_available?).returns true
1504
+ @settings.define_settings :main, :noop => { :default => false, :desc => "", :type => :boolean }
1505
+ @settings.define_settings :main,
1506
+ :maindir => { :type => :directory, :default => make_absolute("/maindir"), :desc => "a" },
1507
+ :seconddir => { :type => :directory, :default => make_absolute("/seconddir"), :desc => "a"}
1508
+ @settings.define_settings :main, :user => { :default => "suser", :desc => "doc" }, :group => { :default => "sgroup", :desc => "doc" }
1509
+ @settings.define_settings :other, :otherdir => {:type => :directory, :default => make_absolute("/otherdir"), :desc => "a", :owner => "service", :group => "service", :mode => '0755'}
1510
+ @settings.define_settings :third, :thirddir => { :type => :directory, :default => make_absolute("/thirddir"), :desc => "b"}
1511
+ @settings.define_settings :files, :myfile => {:type => :file, :default => make_absolute("/myfile"), :desc => "a", :mode => '0755'}
1512
+ end
1513
+
1514
+ it "should provide a method that creates directories with the correct modes" do
1515
+ Puppet::Util::SUIDManager.expects(:asuser).with("suser", "sgroup").yields
1516
+ Dir.expects(:mkdir).with(make_absolute("/otherdir"), '0755')
1517
+ @settings.mkdir(:otherdir)
1518
+ end
1519
+
1520
+ it "should create a catalog with the specified sections" do
1521
+ @settings.expects(:to_catalog).with(:main, :other).returns Puppet::Resource::Catalog.new("foo")
1522
+ @settings.use(:main, :other)
1523
+ end
1524
+
1525
+ it "should canonicalize the sections" do
1526
+ @settings.expects(:to_catalog).with(:main, :other).returns Puppet::Resource::Catalog.new("foo")
1527
+ @settings.use("main", "other")
1528
+ end
1529
+
1530
+ it "should ignore sections that have already been used" do
1531
+ @settings.expects(:to_catalog).with(:main).returns Puppet::Resource::Catalog.new("foo")
1532
+ @settings.use(:main)
1533
+ @settings.expects(:to_catalog).with(:other).returns Puppet::Resource::Catalog.new("foo")
1534
+ @settings.use(:main, :other)
1535
+ end
1536
+
1537
+ it "should convert the created catalog to a RAL catalog" do
1538
+ @catalog = Puppet::Resource::Catalog.new("foo")
1539
+ @settings.expects(:to_catalog).with(:main).returns @catalog
1540
+
1541
+ @catalog.expects(:to_ral).returns @catalog
1542
+ @settings.use(:main)
1543
+ end
1544
+
1545
+ it "should specify that it is not managing a host catalog" do
1546
+ catalog = Puppet::Resource::Catalog.new("foo")
1547
+ catalog.expects(:apply)
1548
+ @settings.expects(:to_catalog).returns catalog
1549
+
1550
+ catalog.stubs(:to_ral).returns catalog
1551
+
1552
+ catalog.expects(:host_config=).with false
1553
+
1554
+ @settings.use(:main)
1555
+ end
1556
+
1557
+ it "should support a method for re-using all currently used sections" do
1558
+ @settings.expects(:to_catalog).with(:main, :third).times(2).returns Puppet::Resource::Catalog.new("foo")
1559
+
1560
+ @settings.use(:main, :third)
1561
+ @settings.reuse
1562
+ end
1563
+
1564
+ it "should fail with an appropriate message if any resources fail" do
1565
+ @catalog = Puppet::Resource::Catalog.new("foo")
1566
+ @catalog.stubs(:to_ral).returns @catalog
1567
+ @settings.expects(:to_catalog).returns @catalog
1568
+
1569
+ @trans = mock("transaction")
1570
+ @catalog.expects(:apply).yields(@trans)
1571
+
1572
+ @trans.expects(:any_failed?).returns(true)
1573
+
1574
+ resource = Puppet::Type.type(:notify).new(:title => 'failed')
1575
+ status = Puppet::Resource::Status.new(resource)
1576
+ event = Puppet::Transaction::Event.new(
1577
+ :name => 'failure',
1578
+ :status => 'failure',
1579
+ :message => 'My failure')
1580
+ status.add_event(event)
1581
+
1582
+ report = Puppet::Transaction::Report.new('apply')
1583
+ report.add_resource_status(status)
1584
+
1585
+ @trans.expects(:report).returns report
1586
+
1587
+ @settings.expects(:raise).with(includes("My failure"))
1588
+ @settings.use(:whatever)
1589
+ end
1590
+ end
1591
+
1592
+ describe "when dealing with printing configs" do
1593
+ before do
1594
+ @settings = Puppet::Settings.new
1595
+ #these are the magic default values
1596
+ @settings.stubs(:value).with(:configprint).returns("")
1597
+ @settings.stubs(:value).with(:genconfig).returns(false)
1598
+ @settings.stubs(:value).with(:genmanifest).returns(false)
1599
+ @settings.stubs(:value).with(:environment).returns(nil)
1600
+ end
1601
+
1602
+ describe "when checking print_config?" do
1603
+ it "should return false when the :configprint, :genconfig and :genmanifest are not set" do
1604
+ @settings.print_configs?.should be_false
1605
+ end
1606
+
1607
+ it "should return true when :configprint has a value" do
1608
+ @settings.stubs(:value).with(:configprint).returns("something")
1609
+ @settings.print_configs?.should be_true
1610
+ end
1611
+
1612
+ it "should return true when :genconfig has a value" do
1613
+ @settings.stubs(:value).with(:genconfig).returns(true)
1614
+ @settings.print_configs?.should be_true
1615
+ end
1616
+
1617
+ it "should return true when :genmanifest has a value" do
1618
+ @settings.stubs(:value).with(:genmanifest).returns(true)
1619
+ @settings.print_configs?.should be_true
1620
+ end
1621
+ end
1622
+
1623
+ describe "when printing configs" do
1624
+ describe "when :configprint has a value" do
1625
+ it "should call print_config_options" do
1626
+ @settings.stubs(:value).with(:configprint).returns("something")
1627
+ @settings.expects(:print_config_options)
1628
+ @settings.print_configs
1629
+ end
1630
+
1631
+ it "should get the value of the option using the environment" do
1632
+ @settings.stubs(:value).with(:configprint).returns("something")
1633
+ @settings.stubs(:include?).with("something").returns(true)
1634
+ @settings.expects(:value).with(:environment).returns("env")
1635
+ @settings.expects(:value).with("something", "env").returns("foo")
1636
+ @settings.stubs(:puts).with("foo")
1637
+ @settings.print_configs
1638
+ end
1639
+
1640
+ it "should print the value of the option" do
1641
+ @settings.stubs(:value).with(:configprint).returns("something")
1642
+ @settings.stubs(:include?).with("something").returns(true)
1643
+ @settings.stubs(:value).with("something", nil).returns("foo")
1644
+ @settings.expects(:puts).with("foo")
1645
+ @settings.print_configs
1646
+ end
1647
+
1648
+ it "should print the value pairs if there are multiple options" do
1649
+ @settings.stubs(:value).with(:configprint).returns("bar,baz")
1650
+ @settings.stubs(:include?).with("bar").returns(true)
1651
+ @settings.stubs(:include?).with("baz").returns(true)
1652
+ @settings.stubs(:value).with("bar", nil).returns("foo")
1653
+ @settings.stubs(:value).with("baz", nil).returns("fud")
1654
+ @settings.expects(:puts).with("bar = foo")
1655
+ @settings.expects(:puts).with("baz = fud")
1656
+ @settings.print_configs
1657
+ end
1658
+
1659
+ it "should return true after printing" do
1660
+ @settings.stubs(:value).with(:configprint).returns("something")
1661
+ @settings.stubs(:include?).with("something").returns(true)
1662
+ @settings.stubs(:value).with("something", nil).returns("foo")
1663
+ @settings.stubs(:puts).with("foo")
1664
+ @settings.print_configs.should be_true
1665
+ end
1666
+
1667
+ it "should return false if a config param is not found" do
1668
+ @settings.stubs :puts
1669
+ @settings.stubs(:value).with(:configprint).returns("something")
1670
+ @settings.stubs(:include?).with("something").returns(false)
1671
+ @settings.print_configs.should be_false
1672
+ end
1673
+ end
1674
+
1675
+ describe "when genconfig is true" do
1676
+ before do
1677
+ @settings.stubs :puts
1678
+ end
1679
+
1680
+ it "should call to_config" do
1681
+ @settings.stubs(:value).with(:genconfig).returns(true)
1682
+ @settings.expects(:to_config)
1683
+ @settings.print_configs
1684
+ end
1685
+
1686
+ it "should return true from print_configs" do
1687
+ @settings.stubs(:value).with(:genconfig).returns(true)
1688
+ @settings.stubs(:to_config)
1689
+ @settings.print_configs.should be_true
1690
+ end
1691
+ end
1692
+
1693
+ describe "when genmanifest is true" do
1694
+ before do
1695
+ @settings.stubs :puts
1696
+ end
1697
+
1698
+ it "should call to_config" do
1699
+ @settings.stubs(:value).with(:genmanifest).returns(true)
1700
+ @settings.expects(:to_manifest)
1701
+ @settings.print_configs
1702
+ end
1703
+
1704
+ it "should return true from print_configs" do
1705
+ @settings.stubs(:value).with(:genmanifest).returns(true)
1706
+ @settings.stubs(:to_manifest)
1707
+ @settings.print_configs.should be_true
1708
+ end
1709
+ end
1710
+ end
1711
+ end
1712
+
1713
+ describe "when determining if the service user is available" do
1714
+ let(:settings) do
1715
+ settings = Puppet::Settings.new
1716
+ settings.define_settings :main, :user => { :default => nil, :desc => "doc" }
1717
+ settings
1718
+ end
1719
+
1720
+ def a_user_type_for(username)
1721
+ user = mock 'user'
1722
+ Puppet::Type.type(:user).expects(:new).with { |args| args[:name] == username }.returns user
1723
+ user
1724
+ end
1725
+
1726
+ it "should return false if there is no user setting" do
1727
+ settings.should_not be_service_user_available
1728
+ end
1729
+
1730
+ it "should return false if the user provider says the user is missing" do
1731
+ settings[:user] = "foo"
1732
+
1733
+ a_user_type_for("foo").expects(:exists?).returns false
1734
+
1735
+ settings.should_not be_service_user_available
1736
+ end
1737
+
1738
+ it "should return true if the user provider says the user is present" do
1739
+ settings[:user] = "foo"
1740
+
1741
+ a_user_type_for("foo").expects(:exists?).returns true
1742
+
1743
+ settings.should be_service_user_available
1744
+ end
1745
+
1746
+ it "caches the result of determining if the user is present" do
1747
+ settings[:user] = "foo"
1748
+
1749
+ a_user_type_for("foo").expects(:exists?).returns true
1750
+ settings.should be_service_user_available
1751
+
1752
+ settings.should be_service_user_available
1753
+ end
1754
+ end
1755
+
1756
+ describe "when determining if the service group is available" do
1757
+ let(:settings) do
1758
+ settings = Puppet::Settings.new
1759
+ settings.define_settings :main, :group => { :default => nil, :desc => "doc" }
1760
+ settings
1761
+ end
1762
+
1763
+ def a_group_type_for(groupname)
1764
+ group = mock 'group'
1765
+ Puppet::Type.type(:group).expects(:new).with { |args| args[:name] == groupname }.returns group
1766
+ group
1767
+ end
1768
+
1769
+ it "should return false if there is no group setting" do
1770
+ settings.should_not be_service_group_available
1771
+ end
1772
+
1773
+ it "should return false if the group provider says the group is missing" do
1774
+ settings[:group] = "foo"
1775
+
1776
+ a_group_type_for("foo").expects(:exists?).returns false
1777
+
1778
+ settings.should_not be_service_group_available
1779
+ end
1780
+
1781
+ it "should return true if the group provider says the group is present" do
1782
+ settings[:group] = "foo"
1783
+
1784
+ a_group_type_for("foo").expects(:exists?).returns true
1785
+
1786
+ settings.should be_service_group_available
1787
+ end
1788
+
1789
+ it "caches the result of determining if the group is present" do
1790
+ settings[:group] = "foo"
1791
+
1792
+ a_group_type_for("foo").expects(:exists?).returns true
1793
+ settings.should be_service_group_available
1794
+
1795
+ settings.should be_service_group_available
1796
+ end
1797
+ end
1798
+
1799
+ describe "when dealing with command-line options" do
1800
+ let(:settings) { Puppet::Settings.new }
1801
+
1802
+ it "should get options from Puppet.settings.optparse_addargs" do
1803
+ settings.expects(:optparse_addargs).returns([])
1804
+
1805
+ settings.send(:parse_global_options, [])
1806
+ end
1807
+
1808
+ it "should add options to OptionParser" do
1809
+ settings.stubs(:optparse_addargs).returns( [["--option","-o", "Funny Option", :NONE]])
1810
+ settings.expects(:handlearg).with("--option", true)
1811
+ settings.send(:parse_global_options, ["--option"])
1812
+ end
1813
+
1814
+ it "should not die if it sees an unrecognized option, because the app/face may handle it later" do
1815
+ expect { settings.send(:parse_global_options, ["--topuppet", "value"]) } .to_not raise_error
1816
+ end
1817
+
1818
+ it "should not pass an unrecognized option to handleargs" do
1819
+ settings.expects(:handlearg).with("--topuppet", "value").never
1820
+ expect { settings.send(:parse_global_options, ["--topuppet", "value"]) } .to_not raise_error
1821
+ end
1822
+
1823
+ it "should pass valid puppet settings options to handlearg even if they appear after an unrecognized option" do
1824
+ settings.stubs(:optparse_addargs).returns( [["--option","-o", "Funny Option", :NONE]])
1825
+ settings.expects(:handlearg).with("--option", true)
1826
+ settings.send(:parse_global_options, ["--invalidoption", "--option"])
1827
+ end
1828
+
1829
+ it "should transform boolean option to normal form" do
1830
+ Puppet::Settings.clean_opt("--[no-]option", true).should == ["--option", true]
1831
+ end
1832
+
1833
+ it "should transform boolean option to no- form" do
1834
+ Puppet::Settings.clean_opt("--[no-]option", false).should == ["--no-option", false]
1835
+ end
1836
+
1837
+ it "should set preferred run mode from --run_mode <foo> string without error" do
1838
+ args = ["--run_mode", "master"]
1839
+ settings.expects(:handlearg).with("--run_mode", "master").never
1840
+ expect { settings.send(:parse_global_options, args) } .to_not raise_error
1841
+ Puppet.settings.preferred_run_mode.should == :master
1842
+ args.empty?.should == true
1843
+ end
1844
+
1845
+ it "should set preferred run mode from --run_mode=<foo> string without error" do
1846
+ args = ["--run_mode=master"]
1847
+ settings.expects(:handlearg).with("--run_mode", "master").never
1848
+ expect { settings.send(:parse_global_options, args) } .to_not raise_error
1849
+ Puppet.settings.preferred_run_mode.should == :master
1850
+ args.empty?.should == true
1851
+ end
1852
+ end
1853
+
1854
+ describe "default_certname" do
1855
+ describe "using hostname and domainname" do
1856
+ before :each do
1857
+ Puppet::Settings.stubs(:hostname_fact).returns("testhostname")
1858
+ Puppet::Settings.stubs(:domain_fact).returns("domain.test.")
1859
+ end
1860
+
1861
+ it "should use both to generate fqdn" do
1862
+ Puppet::Settings.default_certname.should =~ /testhostname\.domain\.test/
1863
+ end
1864
+ it "should remove trailing dots from fqdn" do
1865
+ Puppet::Settings.default_certname.should == 'testhostname.domain.test'
1866
+ end
1867
+ end
1868
+
1869
+ describe "using just hostname" do
1870
+ before :each do
1871
+ Puppet::Settings.stubs(:hostname_fact).returns("testhostname")
1872
+ Puppet::Settings.stubs(:domain_fact).returns("")
1873
+ end
1874
+
1875
+ it "should use only hostname to generate fqdn" do
1876
+ Puppet::Settings.default_certname.should == "testhostname"
1877
+ end
1878
+ it "should removing trailing dots from fqdn" do
1879
+ Puppet::Settings.default_certname.should == "testhostname"
1880
+ end
1881
+ end
1882
+ end
1883
+ end