puppet 3.5.0.rc1-x86-mingw32

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

Potentially problematic release.


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

Files changed (2193) hide show
  1. data/COMMITTERS.md +244 -0
  2. data/CONTRIBUTING.md +87 -0
  3. data/Gemfile +88 -0
  4. data/LICENSE +17 -0
  5. data/README.md +75 -0
  6. data/Rakefile +68 -0
  7. data/bin/extlookup2hiera +56 -0
  8. data/bin/puppet +4 -0
  9. data/conf/auth.conf +120 -0
  10. data/conf/fileserver.conf +41 -0
  11. data/conf/tagmail.conf +16 -0
  12. data/examples/hiera/README.md +91 -0
  13. data/examples/hiera/etc/hiera.yaml +15 -0
  14. data/examples/hiera/etc/hieradb/common.yaml +3 -0
  15. data/examples/hiera/etc/hieradb/dc1.yaml +6 -0
  16. data/examples/hiera/etc/hieradb/development.yaml +2 -0
  17. data/examples/hiera/etc/puppet.conf +3 -0
  18. data/examples/hiera/modules/data/manifests/common.pp +4 -0
  19. data/examples/hiera/modules/ntp/manifests/config.pp +6 -0
  20. data/examples/hiera/modules/ntp/manifests/data.pp +4 -0
  21. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +3 -0
  22. data/examples/hiera/modules/users/manifests/common.pp +4 -0
  23. data/examples/hiera/modules/users/manifests/dc1.pp +4 -0
  24. data/examples/hiera/modules/users/manifests/development.pp +4 -0
  25. data/examples/hiera/site.pp +3 -0
  26. data/ext/autotest/Rakefile +8 -0
  27. data/ext/autotest/config +43 -0
  28. data/ext/autotest/readme.rst +16 -0
  29. data/ext/build_defaults.yaml +23 -0
  30. data/ext/cert_inspector +140 -0
  31. data/ext/dbfix.sql +132 -0
  32. data/ext/debian/README.Debian +8 -0
  33. data/ext/debian/README.source +2 -0
  34. data/ext/debian/TODO.Debian +1 -0
  35. data/ext/debian/changelog.erb +1122 -0
  36. data/ext/debian/compat +1 -0
  37. data/ext/debian/control +143 -0
  38. data/ext/debian/copyright +361 -0
  39. data/ext/debian/docs +1 -0
  40. data/ext/debian/fileserver.conf +41 -0
  41. data/ext/debian/puppet-common.dirs +8 -0
  42. data/ext/debian/puppet-common.install +4 -0
  43. data/ext/debian/puppet-common.lintian-overrides +5 -0
  44. data/ext/debian/puppet-common.manpages +35 -0
  45. data/ext/debian/puppet-common.postinst +35 -0
  46. data/ext/debian/puppet-common.postrm +32 -0
  47. data/ext/debian/puppet-el.dirs +1 -0
  48. data/ext/debian/puppet-el.emacsen-install +25 -0
  49. data/ext/debian/puppet-el.emacsen-remove +11 -0
  50. data/ext/debian/puppet-el.emacsen-startup +9 -0
  51. data/ext/debian/puppet-el.install +1 -0
  52. data/ext/debian/puppet-testsuite.install +2 -0
  53. data/ext/debian/puppet-testsuite.lintian-overrides +4 -0
  54. data/ext/debian/puppet.conf +14 -0
  55. data/ext/debian/puppet.default +9 -0
  56. data/ext/debian/puppet.init +117 -0
  57. data/ext/debian/puppet.lintian-overrides +3 -0
  58. data/ext/debian/puppet.logrotate +12 -0
  59. data/ext/debian/puppet.postinst +20 -0
  60. data/ext/debian/puppet.postrm +20 -0
  61. data/ext/debian/puppet.preinst +20 -0
  62. data/ext/debian/puppetmaster-common.install +2 -0
  63. data/ext/debian/puppetmaster-common.manpages +2 -0
  64. data/ext/debian/puppetmaster-common.puppetqd.default +27 -0
  65. data/ext/debian/puppetmaster-common.puppetqd.init +84 -0
  66. data/ext/debian/puppetmaster-passenger.dirs +4 -0
  67. data/ext/debian/puppetmaster-passenger.postinst +66 -0
  68. data/ext/debian/puppetmaster-passenger.postrm +33 -0
  69. data/ext/debian/puppetmaster.README.debian +15 -0
  70. data/ext/debian/puppetmaster.default +14 -0
  71. data/ext/debian/puppetmaster.init +137 -0
  72. data/ext/debian/puppetmaster.lintian-overrides +3 -0
  73. data/ext/debian/puppetmaster.postinst +20 -0
  74. data/ext/debian/puppetmaster.postrm +5 -0
  75. data/ext/debian/puppetmaster.preinst +22 -0
  76. data/ext/debian/rules +125 -0
  77. data/ext/debian/source/format +1 -0
  78. data/ext/debian/source/options +1 -0
  79. data/ext/debian/vim-puppet.README.Debian +13 -0
  80. data/ext/debian/vim-puppet.dirs +3 -0
  81. data/ext/debian/vim-puppet.yaml +5 -0
  82. data/ext/debian/watch +2 -0
  83. data/ext/emacs/puppet-mode-init.el +6 -0
  84. data/ext/emacs/puppet-mode.el +415 -0
  85. data/ext/envpuppet +139 -0
  86. data/ext/envpuppet.bat +14 -0
  87. data/ext/freebsd/puppetd +26 -0
  88. data/ext/freebsd/puppetmasterd +26 -0
  89. data/ext/gentoo/conf.d/puppet +5 -0
  90. data/ext/gentoo/conf.d/puppetmaster +12 -0
  91. data/ext/gentoo/init.d/puppet +38 -0
  92. data/ext/gentoo/init.d/puppetmaster +51 -0
  93. data/ext/gentoo/puppet/fileserver.conf +41 -0
  94. data/ext/gentoo/puppet/puppet.conf +25 -0
  95. data/ext/ips/puppet-agent +44 -0
  96. data/ext/ips/puppet-master +44 -0
  97. data/ext/ips/puppet.conf +29 -0
  98. data/ext/ips/puppet.p5m.erb +12 -0
  99. data/ext/ips/puppetagent.xml +42 -0
  100. data/ext/ips/puppetmaster.xml +42 -0
  101. data/ext/ips/rules +19 -0
  102. data/ext/ips/transforms +34 -0
  103. data/ext/ldap/puppet.schema +24 -0
  104. data/ext/logcheck/puppet +23 -0
  105. data/ext/nagios/check_puppet.rb +123 -0
  106. data/ext/nagios/naggen +309 -0
  107. data/ext/osx/file_mapping.yaml +33 -0
  108. data/ext/osx/postflight.erb +109 -0
  109. data/ext/osx/preflight.erb +52 -0
  110. data/ext/osx/prototype.plist.erb +38 -0
  111. data/ext/project_data.yaml +46 -0
  112. data/ext/puppet-load.rb +393 -0
  113. data/ext/puppet-nm-dispatcher +13 -0
  114. data/ext/puppet-test +566 -0
  115. data/ext/puppetlisten/puppetlisten.rb +75 -0
  116. data/ext/puppetlisten/puppetrun.rb +38 -0
  117. data/ext/pure_ruby_dsl/dsl_test.rb +7 -0
  118. data/ext/rack/config.ru +36 -0
  119. data/ext/rack/example-passenger-vhost.conf +52 -0
  120. data/ext/redhat/client.init +119 -0
  121. data/ext/redhat/client.sysconfig +11 -0
  122. data/ext/redhat/fileserver.conf +41 -0
  123. data/ext/redhat/logrotate +10 -0
  124. data/ext/redhat/puppet.conf +25 -0
  125. data/ext/redhat/puppet.spec.erb +848 -0
  126. data/ext/redhat/queue.init +105 -0
  127. data/ext/redhat/server.init +128 -0
  128. data/ext/redhat/server.sysconfig +13 -0
  129. data/ext/regexp_nodes/classes/databases +2 -0
  130. data/ext/regexp_nodes/classes/webservers +2 -0
  131. data/ext/regexp_nodes/environment/development +2 -0
  132. data/ext/regexp_nodes/parameters/service/prod +1 -0
  133. data/ext/regexp_nodes/parameters/service/qa +3 -0
  134. data/ext/regexp_nodes/parameters/service/sandbox +1 -0
  135. data/ext/regexp_nodes/regexp_nodes.rb +271 -0
  136. data/ext/solaris/pkginfo +6 -0
  137. data/ext/solaris/smf/puppetd.xml +77 -0
  138. data/ext/solaris/smf/puppetmasterd.xml +77 -0
  139. data/ext/solaris/smf/svc-puppetd +64 -0
  140. data/ext/solaris/smf/svc-puppetmasterd +60 -0
  141. data/ext/suse/client.init +144 -0
  142. data/ext/suse/puppet.spec +310 -0
  143. data/ext/suse/server.init +173 -0
  144. data/ext/systemd/puppet.service +13 -0
  145. data/ext/systemd/puppetmaster.service +13 -0
  146. data/ext/upload_facts.rb +119 -0
  147. data/ext/vim/README +3 -0
  148. data/ext/vim/ftdetect/puppet.vim +2 -0
  149. data/ext/vim/ftplugin/puppet.vim +94 -0
  150. data/ext/vim/indent/puppet.vim +76 -0
  151. data/ext/vim/syntax/puppet.vim +115 -0
  152. data/ext/windows/eventlog/Rakefile +32 -0
  153. data/ext/windows/eventlog/puppetres.dll +0 -0
  154. data/ext/windows/eventlog/puppetres.mc +18 -0
  155. data/ext/windows/service/daemon.bat +6 -0
  156. data/ext/windows/service/daemon.rb +169 -0
  157. data/ext/yaml_nodes.rb +105 -0
  158. data/install.rb +429 -0
  159. data/lib/hiera/backend/puppet_backend.rb +103 -0
  160. data/lib/hiera/scope.rb +60 -0
  161. data/lib/hiera_puppet.rb +87 -0
  162. data/lib/puppet.rb +247 -0
  163. data/lib/puppet/agent.rb +122 -0
  164. data/lib/puppet/agent/disabler.rb +53 -0
  165. data/lib/puppet/agent/locker.rb +43 -0
  166. data/lib/puppet/application.rb +485 -0
  167. data/lib/puppet/application/agent.rb +479 -0
  168. data/lib/puppet/application/apply.rb +290 -0
  169. data/lib/puppet/application/ca.rb +5 -0
  170. data/lib/puppet/application/catalog.rb +4 -0
  171. data/lib/puppet/application/cert.rb +277 -0
  172. data/lib/puppet/application/certificate.rb +15 -0
  173. data/lib/puppet/application/certificate_request.rb +7 -0
  174. data/lib/puppet/application/certificate_revocation_list.rb +7 -0
  175. data/lib/puppet/application/config.rb +4 -0
  176. data/lib/puppet/application/describe.rb +254 -0
  177. data/lib/puppet/application/device.rb +238 -0
  178. data/lib/puppet/application/doc.rb +280 -0
  179. data/lib/puppet/application/face_base.rb +250 -0
  180. data/lib/puppet/application/facts.rb +4 -0
  181. data/lib/puppet/application/file.rb +4 -0
  182. data/lib/puppet/application/filebucket.rb +184 -0
  183. data/lib/puppet/application/help.rb +4 -0
  184. data/lib/puppet/application/indirection_base.rb +4 -0
  185. data/lib/puppet/application/inspect.rb +179 -0
  186. data/lib/puppet/application/instrumentation_data.rb +7 -0
  187. data/lib/puppet/application/instrumentation_listener.rb +7 -0
  188. data/lib/puppet/application/instrumentation_probe.rb +7 -0
  189. data/lib/puppet/application/key.rb +4 -0
  190. data/lib/puppet/application/kick.rb +351 -0
  191. data/lib/puppet/application/man.rb +4 -0
  192. data/lib/puppet/application/master.rb +302 -0
  193. data/lib/puppet/application/module.rb +4 -0
  194. data/lib/puppet/application/node.rb +4 -0
  195. data/lib/puppet/application/parser.rb +5 -0
  196. data/lib/puppet/application/plugin.rb +3 -0
  197. data/lib/puppet/application/queue.rb +161 -0
  198. data/lib/puppet/application/report.rb +4 -0
  199. data/lib/puppet/application/resource.rb +229 -0
  200. data/lib/puppet/application/resource_type.rb +7 -0
  201. data/lib/puppet/application/secret_agent.rb +9 -0
  202. data/lib/puppet/application/status.rb +4 -0
  203. data/lib/puppet/bindings.rb +147 -0
  204. data/lib/puppet/coercion.rb +40 -0
  205. data/lib/puppet/configurer.rb +268 -0
  206. data/lib/puppet/configurer/downloader.rb +70 -0
  207. data/lib/puppet/configurer/fact_handler.rb +37 -0
  208. data/lib/puppet/configurer/plugin_handler.rb +28 -0
  209. data/lib/puppet/confine.rb +80 -0
  210. data/lib/puppet/confine/any.rb +26 -0
  211. data/lib/puppet/confine/exists.rb +19 -0
  212. data/lib/puppet/confine/false.rb +19 -0
  213. data/lib/puppet/confine/feature.rb +17 -0
  214. data/lib/puppet/confine/true.rb +20 -0
  215. data/lib/puppet/confine/variable.rb +59 -0
  216. data/lib/puppet/confine_collection.rb +50 -0
  217. data/lib/puppet/confiner.rb +46 -0
  218. data/lib/puppet/context.rb +55 -0
  219. data/lib/puppet/context/trusted_information.rb +56 -0
  220. data/lib/puppet/daemon.rb +182 -0
  221. data/lib/puppet/data_binding.rb +12 -0
  222. data/lib/puppet/defaults.rb +1875 -0
  223. data/lib/puppet/dsl.rb +7 -0
  224. data/lib/puppet/dsl/resource_api.rb +120 -0
  225. data/lib/puppet/dsl/resource_type_api.rb +34 -0
  226. data/lib/puppet/environments.rb +187 -0
  227. data/lib/puppet/error.rb +62 -0
  228. data/lib/puppet/external/dot.rb +326 -0
  229. data/lib/puppet/external/nagios.rb +46 -0
  230. data/lib/puppet/external/nagios/base.rb +472 -0
  231. data/lib/puppet/external/nagios/grammar.ry +246 -0
  232. data/lib/puppet/external/nagios/makefile +9 -0
  233. data/lib/puppet/external/nagios/parser.rb +391 -0
  234. data/lib/puppet/external/pson/common.rb +385 -0
  235. data/lib/puppet/external/pson/pure.rb +15 -0
  236. data/lib/puppet/external/pson/pure/generator.rb +401 -0
  237. data/lib/puppet/external/pson/pure/parser.rb +318 -0
  238. data/lib/puppet/external/pson/version.rb +8 -0
  239. data/lib/puppet/face.rb +12 -0
  240. data/lib/puppet/face/ca.rb +247 -0
  241. data/lib/puppet/face/catalog.rb +130 -0
  242. data/lib/puppet/face/catalog/select.rb +49 -0
  243. data/lib/puppet/face/certificate.rb +160 -0
  244. data/lib/puppet/face/certificate_request.rb +53 -0
  245. data/lib/puppet/face/certificate_revocation_list.rb +58 -0
  246. data/lib/puppet/face/config.rb +106 -0
  247. data/lib/puppet/face/facts.rb +81 -0
  248. data/lib/puppet/face/file.rb +47 -0
  249. data/lib/puppet/face/file/download.rb +54 -0
  250. data/lib/puppet/face/file/store.rb +21 -0
  251. data/lib/puppet/face/help.rb +194 -0
  252. data/lib/puppet/face/help/action.erb +86 -0
  253. data/lib/puppet/face/help/face.erb +111 -0
  254. data/lib/puppet/face/help/global.erb +16 -0
  255. data/lib/puppet/face/help/man.erb +152 -0
  256. data/lib/puppet/face/instrumentation_data.rb +29 -0
  257. data/lib/puppet/face/instrumentation_listener.rb +97 -0
  258. data/lib/puppet/face/instrumentation_probe.rb +78 -0
  259. data/lib/puppet/face/key.rb +15 -0
  260. data/lib/puppet/face/man.rb +99 -0
  261. data/lib/puppet/face/module.rb +19 -0
  262. data/lib/puppet/face/module/build.rb +63 -0
  263. data/lib/puppet/face/module/changes.rb +41 -0
  264. data/lib/puppet/face/module/generate.rb +41 -0
  265. data/lib/puppet/face/module/install.rb +143 -0
  266. data/lib/puppet/face/module/list.rb +274 -0
  267. data/lib/puppet/face/module/search.rb +94 -0
  268. data/lib/puppet/face/module/uninstall.rb +71 -0
  269. data/lib/puppet/face/module/upgrade.rb +77 -0
  270. data/lib/puppet/face/node.rb +43 -0
  271. data/lib/puppet/face/node/clean.rb +159 -0
  272. data/lib/puppet/face/parser.rb +67 -0
  273. data/lib/puppet/face/plugin.rb +61 -0
  274. data/lib/puppet/face/report.rb +54 -0
  275. data/lib/puppet/face/resource.rb +53 -0
  276. data/lib/puppet/face/resource_type.rb +81 -0
  277. data/lib/puppet/face/secret_agent.rb +54 -0
  278. data/lib/puppet/face/status.rb +53 -0
  279. data/lib/puppet/feature/base.rb +88 -0
  280. data/lib/puppet/feature/eventlog.rb +5 -0
  281. data/lib/puppet/feature/external_facts.rb +5 -0
  282. data/lib/puppet/feature/libuser.rb +8 -0
  283. data/lib/puppet/feature/msgpack.rb +3 -0
  284. data/lib/puppet/feature/pson.rb +4 -0
  285. data/lib/puppet/feature/rack.rb +19 -0
  286. data/lib/puppet/feature/rails.rb +47 -0
  287. data/lib/puppet/feature/rdoc1.rb +16 -0
  288. data/lib/puppet/feature/rubygems.rb +7 -0
  289. data/lib/puppet/feature/selinux.rb +3 -0
  290. data/lib/puppet/feature/ssh.rb +3 -0
  291. data/lib/puppet/feature/stomp.rb +5 -0
  292. data/lib/puppet/feature/zlib.rb +5 -0
  293. data/lib/puppet/file_bucket.rb +4 -0
  294. data/lib/puppet/file_bucket/dipper.rb +109 -0
  295. data/lib/puppet/file_bucket/file.rb +92 -0
  296. data/lib/puppet/file_collection.rb +19 -0
  297. data/lib/puppet/file_collection/lookup.rb +10 -0
  298. data/lib/puppet/file_serving.rb +3 -0
  299. data/lib/puppet/file_serving/base.rb +95 -0
  300. data/lib/puppet/file_serving/configuration.rb +109 -0
  301. data/lib/puppet/file_serving/configuration/parser.rb +121 -0
  302. data/lib/puppet/file_serving/content.rb +45 -0
  303. data/lib/puppet/file_serving/fileset.rb +172 -0
  304. data/lib/puppet/file_serving/metadata.rb +199 -0
  305. data/lib/puppet/file_serving/mount.rb +39 -0
  306. data/lib/puppet/file_serving/mount/file.rb +121 -0
  307. data/lib/puppet/file_serving/mount/modules.rb +24 -0
  308. data/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
  309. data/lib/puppet/file_serving/mount/plugins.rb +35 -0
  310. data/lib/puppet/file_serving/terminus_helper.rb +21 -0
  311. data/lib/puppet/file_serving/terminus_selector.rb +30 -0
  312. data/lib/puppet/file_system.rb +366 -0
  313. data/lib/puppet/file_system/file18.rb +5 -0
  314. data/lib/puppet/file_system/file19.rb +5 -0
  315. data/lib/puppet/file_system/file19windows.rb +108 -0
  316. data/lib/puppet/file_system/file_impl.rb +145 -0
  317. data/lib/puppet/file_system/memory_file.rb +45 -0
  318. data/lib/puppet/file_system/memory_impl.rb +64 -0
  319. data/lib/puppet/file_system/path_pattern.rb +97 -0
  320. data/lib/puppet/file_system/tempfile.rb +20 -0
  321. data/lib/puppet/forge.rb +106 -0
  322. data/lib/puppet/forge/cache.rb +55 -0
  323. data/lib/puppet/forge/errors.rb +103 -0
  324. data/lib/puppet/forge/repository.rb +135 -0
  325. data/lib/puppet/graph.rb +11 -0
  326. data/lib/puppet/graph/key.rb +26 -0
  327. data/lib/puppet/graph/prioritizer.rb +29 -0
  328. data/lib/puppet/graph/random_prioritizer.rb +16 -0
  329. data/lib/puppet/graph/rb_tree_map.rb +388 -0
  330. data/lib/puppet/graph/relationship_graph.rb +246 -0
  331. data/lib/puppet/graph/sequential_prioritizer.rb +31 -0
  332. data/lib/puppet/graph/simple_graph.rb +566 -0
  333. data/lib/puppet/graph/title_hash_prioritizer.rb +16 -0
  334. data/lib/puppet/indirector.rb +61 -0
  335. data/lib/puppet/indirector/active_record.rb +29 -0
  336. data/lib/puppet/indirector/catalog/active_record.rb +39 -0
  337. data/lib/puppet/indirector/catalog/compiler.rb +175 -0
  338. data/lib/puppet/indirector/catalog/json.rb +6 -0
  339. data/lib/puppet/indirector/catalog/msgpack.rb +6 -0
  340. data/lib/puppet/indirector/catalog/queue.rb +9 -0
  341. data/lib/puppet/indirector/catalog/rest.rb +6 -0
  342. data/lib/puppet/indirector/catalog/static_compiler.rb +214 -0
  343. data/lib/puppet/indirector/catalog/store_configs.rb +8 -0
  344. data/lib/puppet/indirector/catalog/yaml.rb +22 -0
  345. data/lib/puppet/indirector/certificate/ca.rb +9 -0
  346. data/lib/puppet/indirector/certificate/disabled_ca.rb +22 -0
  347. data/lib/puppet/indirector/certificate/file.rb +9 -0
  348. data/lib/puppet/indirector/certificate/rest.rb +16 -0
  349. data/lib/puppet/indirector/certificate_request/ca.rb +22 -0
  350. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
  351. data/lib/puppet/indirector/certificate_request/file.rb +8 -0
  352. data/lib/puppet/indirector/certificate_request/memory.rb +6 -0
  353. data/lib/puppet/indirector/certificate_request/rest.rb +10 -0
  354. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
  355. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
  356. data/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
  357. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +10 -0
  358. data/lib/puppet/indirector/certificate_status.rb +4 -0
  359. data/lib/puppet/indirector/certificate_status/file.rb +91 -0
  360. data/lib/puppet/indirector/certificate_status/rest.rb +11 -0
  361. data/lib/puppet/indirector/code.rb +6 -0
  362. data/lib/puppet/indirector/couch.rb +78 -0
  363. data/lib/puppet/indirector/data_binding/hiera.rb +50 -0
  364. data/lib/puppet/indirector/data_binding/none.rb +5 -0
  365. data/lib/puppet/indirector/direct_file_server.rb +19 -0
  366. data/lib/puppet/indirector/envelope.rb +11 -0
  367. data/lib/puppet/indirector/errors.rb +5 -0
  368. data/lib/puppet/indirector/exec.rb +38 -0
  369. data/lib/puppet/indirector/face.rb +139 -0
  370. data/lib/puppet/indirector/facts/active_record.rb +44 -0
  371. data/lib/puppet/indirector/facts/couch.rb +34 -0
  372. data/lib/puppet/indirector/facts/facter.rb +91 -0
  373. data/lib/puppet/indirector/facts/inventory_active_record.rb +110 -0
  374. data/lib/puppet/indirector/facts/inventory_service.rb +20 -0
  375. data/lib/puppet/indirector/facts/memory.rb +9 -0
  376. data/lib/puppet/indirector/facts/network_device.rb +24 -0
  377. data/lib/puppet/indirector/facts/rest.rb +8 -0
  378. data/lib/puppet/indirector/facts/store_configs.rb +8 -0
  379. data/lib/puppet/indirector/facts/yaml.rb +82 -0
  380. data/lib/puppet/indirector/file_bucket_file/file.rb +138 -0
  381. data/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
  382. data/lib/puppet/indirector/file_bucket_file/selector.rb +53 -0
  383. data/lib/puppet/indirector/file_content.rb +5 -0
  384. data/lib/puppet/indirector/file_content/file.rb +7 -0
  385. data/lib/puppet/indirector/file_content/file_server.rb +7 -0
  386. data/lib/puppet/indirector/file_content/rest.rb +9 -0
  387. data/lib/puppet/indirector/file_content/selector.rb +30 -0
  388. data/lib/puppet/indirector/file_metadata.rb +5 -0
  389. data/lib/puppet/indirector/file_metadata/file.rb +22 -0
  390. data/lib/puppet/indirector/file_metadata/file_server.rb +7 -0
  391. data/lib/puppet/indirector/file_metadata/rest.rb +9 -0
  392. data/lib/puppet/indirector/file_metadata/selector.rb +30 -0
  393. data/lib/puppet/indirector/file_server.rb +65 -0
  394. data/lib/puppet/indirector/indirection.rb +336 -0
  395. data/lib/puppet/indirector/instrumentation_data.rb +3 -0
  396. data/lib/puppet/indirector/instrumentation_data/local.rb +22 -0
  397. data/lib/puppet/indirector/instrumentation_data/rest.rb +8 -0
  398. data/lib/puppet/indirector/instrumentation_listener.rb +3 -0
  399. data/lib/puppet/indirector/instrumentation_listener/local.rb +26 -0
  400. data/lib/puppet/indirector/instrumentation_listener/rest.rb +8 -0
  401. data/lib/puppet/indirector/instrumentation_probe.rb +3 -0
  402. data/lib/puppet/indirector/instrumentation_probe/local.rb +27 -0
  403. data/lib/puppet/indirector/instrumentation_probe/rest.rb +8 -0
  404. data/lib/puppet/indirector/json.rb +76 -0
  405. data/lib/puppet/indirector/key/ca.rb +16 -0
  406. data/lib/puppet/indirector/key/disabled_ca.rb +22 -0
  407. data/lib/puppet/indirector/key/file.rb +49 -0
  408. data/lib/puppet/indirector/key/memory.rb +6 -0
  409. data/lib/puppet/indirector/ldap.rb +79 -0
  410. data/lib/puppet/indirector/memory.rb +34 -0
  411. data/lib/puppet/indirector/msgpack.rb +82 -0
  412. data/lib/puppet/indirector/node/active_record.rb +22 -0
  413. data/lib/puppet/indirector/node/exec.rb +69 -0
  414. data/lib/puppet/indirector/node/ldap.rb +257 -0
  415. data/lib/puppet/indirector/node/memory.rb +10 -0
  416. data/lib/puppet/indirector/node/msgpack.rb +7 -0
  417. data/lib/puppet/indirector/node/plain.rb +20 -0
  418. data/lib/puppet/indirector/node/rest.rb +7 -0
  419. data/lib/puppet/indirector/node/store_configs.rb +8 -0
  420. data/lib/puppet/indirector/node/write_only_yaml.rb +32 -0
  421. data/lib/puppet/indirector/node/yaml.rb +22 -0
  422. data/lib/puppet/indirector/none.rb +9 -0
  423. data/lib/puppet/indirector/plain.rb +9 -0
  424. data/lib/puppet/indirector/queue.rb +80 -0
  425. data/lib/puppet/indirector/report/msgpack.rb +11 -0
  426. data/lib/puppet/indirector/report/processor.rb +59 -0
  427. data/lib/puppet/indirector/report/rest.rb +15 -0
  428. data/lib/puppet/indirector/report/yaml.rb +11 -0
  429. data/lib/puppet/indirector/request.rb +312 -0
  430. data/lib/puppet/indirector/resource/active_record.rb +104 -0
  431. data/lib/puppet/indirector/resource/ral.rb +64 -0
  432. data/lib/puppet/indirector/resource/rest.rb +17 -0
  433. data/lib/puppet/indirector/resource/store_configs.rb +13 -0
  434. data/lib/puppet/indirector/resource/validator.rb +8 -0
  435. data/lib/puppet/indirector/resource_type.rb +5 -0
  436. data/lib/puppet/indirector/resource_type/parser.rb +101 -0
  437. data/lib/puppet/indirector/resource_type/rest.rb +7 -0
  438. data/lib/puppet/indirector/rest.rb +246 -0
  439. data/lib/puppet/indirector/run/local.rb +15 -0
  440. data/lib/puppet/indirector/run/rest.rb +12 -0
  441. data/lib/puppet/indirector/ssl_file.rb +180 -0
  442. data/lib/puppet/indirector/status.rb +3 -0
  443. data/lib/puppet/indirector/status/local.rb +12 -0
  444. data/lib/puppet/indirector/status/rest.rb +9 -0
  445. data/lib/puppet/indirector/store_configs.rb +30 -0
  446. data/lib/puppet/indirector/terminus.rb +169 -0
  447. data/lib/puppet/indirector/yaml.rb +63 -0
  448. data/lib/puppet/interface.rb +235 -0
  449. data/lib/puppet/interface/action.rb +374 -0
  450. data/lib/puppet/interface/action_builder.rb +149 -0
  451. data/lib/puppet/interface/action_manager.rb +101 -0
  452. data/lib/puppet/interface/documentation.rb +342 -0
  453. data/lib/puppet/interface/face_collection.rb +125 -0
  454. data/lib/puppet/interface/option.rb +150 -0
  455. data/lib/puppet/interface/option_builder.rb +93 -0
  456. data/lib/puppet/interface/option_manager.rb +99 -0
  457. data/lib/puppet/metatype/manager.rb +184 -0
  458. data/lib/puppet/module.rb +338 -0
  459. data/lib/puppet/module_tool.rb +143 -0
  460. data/lib/puppet/module_tool/applications.rb +15 -0
  461. data/lib/puppet/module_tool/applications/application.rb +89 -0
  462. data/lib/puppet/module_tool/applications/builder.rb +79 -0
  463. data/lib/puppet/module_tool/applications/checksummer.rb +56 -0
  464. data/lib/puppet/module_tool/applications/generator.rb +142 -0
  465. data/lib/puppet/module_tool/applications/installer.rb +192 -0
  466. data/lib/puppet/module_tool/applications/searcher.rb +28 -0
  467. data/lib/puppet/module_tool/applications/uninstaller.rb +110 -0
  468. data/lib/puppet/module_tool/applications/unpacker.rb +60 -0
  469. data/lib/puppet/module_tool/applications/upgrader.rb +113 -0
  470. data/lib/puppet/module_tool/checksums.rb +52 -0
  471. data/lib/puppet/module_tool/contents_description.rb +84 -0
  472. data/lib/puppet/module_tool/dependency.rb +29 -0
  473. data/lib/puppet/module_tool/errors.rb +11 -0
  474. data/lib/puppet/module_tool/errors/base.rb +15 -0
  475. data/lib/puppet/module_tool/errors/installer.rb +127 -0
  476. data/lib/puppet/module_tool/errors/shared.rb +115 -0
  477. data/lib/puppet/module_tool/errors/uninstaller.rb +45 -0
  478. data/lib/puppet/module_tool/errors/upgrader.rb +72 -0
  479. data/lib/puppet/module_tool/install_directory.rb +44 -0
  480. data/lib/puppet/module_tool/metadata.rb +155 -0
  481. data/lib/puppet/module_tool/modulefile.rb +78 -0
  482. data/lib/puppet/module_tool/shared_behaviors.rb +168 -0
  483. data/lib/puppet/module_tool/skeleton.rb +37 -0
  484. data/lib/puppet/module_tool/skeleton/templates/generator/Modulefile.erb +11 -0
  485. data/lib/puppet/module_tool/skeleton/templates/generator/README.erb +16 -0
  486. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +41 -0
  487. data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +17 -0
  488. data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +12 -0
  489. data/lib/puppet/module_tool/tar.rb +21 -0
  490. data/lib/puppet/module_tool/tar/gnu.rb +16 -0
  491. data/lib/puppet/module_tool/tar/mini.rb +41 -0
  492. data/lib/puppet/module_tool/tar/solaris.rb +5 -0
  493. data/lib/puppet/network.rb +3 -0
  494. data/lib/puppet/network/auth_config_parser.rb +84 -0
  495. data/lib/puppet/network/authconfig.rb +76 -0
  496. data/lib/puppet/network/authentication.rb +35 -0
  497. data/lib/puppet/network/authorization.rb +34 -0
  498. data/lib/puppet/network/authstore.rb +282 -0
  499. data/lib/puppet/network/client_request.rb +29 -0
  500. data/lib/puppet/network/format.rb +110 -0
  501. data/lib/puppet/network/format_handler.rb +105 -0
  502. data/lib/puppet/network/format_support.rb +124 -0
  503. data/lib/puppet/network/formats.rb +216 -0
  504. data/lib/puppet/network/http.rb +15 -0
  505. data/lib/puppet/network/http/api.rb +2 -0
  506. data/lib/puppet/network/http/api/v1.rb +218 -0
  507. data/lib/puppet/network/http/api/v2.rb +32 -0
  508. data/lib/puppet/network/http/api/v2/authorization.rb +13 -0
  509. data/lib/puppet/network/http/api/v2/environments.rb +21 -0
  510. data/lib/puppet/network/http/compression.rb +114 -0
  511. data/lib/puppet/network/http/connection.rb +254 -0
  512. data/lib/puppet/network/http/error.rb +69 -0
  513. data/lib/puppet/network/http/handler.rb +180 -0
  514. data/lib/puppet/network/http/issues.rb +9 -0
  515. data/lib/puppet/network/http/memory_response.rb +13 -0
  516. data/lib/puppet/network/http/rack.rb +33 -0
  517. data/lib/puppet/network/http/rack/rest.rb +136 -0
  518. data/lib/puppet/network/http/request.rb +56 -0
  519. data/lib/puppet/network/http/response.rb +11 -0
  520. data/lib/puppet/network/http/route.rb +91 -0
  521. data/lib/puppet/network/http/webrick.rb +119 -0
  522. data/lib/puppet/network/http/webrick/rest.rb +95 -0
  523. data/lib/puppet/network/http_pool.rb +53 -0
  524. data/lib/puppet/network/resolver.rb +86 -0
  525. data/lib/puppet/network/rest_controller.rb +2 -0
  526. data/lib/puppet/network/rights.rb +219 -0
  527. data/lib/puppet/network/server.rb +39 -0
  528. data/lib/puppet/node.rb +171 -0
  529. data/lib/puppet/node/environment.rb +492 -0
  530. data/lib/puppet/node/facts.rb +155 -0
  531. data/lib/puppet/parameter.rb +585 -0
  532. data/lib/puppet/parameter/boolean.rb +15 -0
  533. data/lib/puppet/parameter/package_options.rb +31 -0
  534. data/lib/puppet/parameter/path.rb +57 -0
  535. data/lib/puppet/parameter/value.rb +93 -0
  536. data/lib/puppet/parameter/value_collection.rb +211 -0
  537. data/lib/puppet/parser.rb +7 -0
  538. data/lib/puppet/parser/ast.rb +130 -0
  539. data/lib/puppet/parser/ast/arithmetic_operator.rb +91 -0
  540. data/lib/puppet/parser/ast/astarray.rb +50 -0
  541. data/lib/puppet/parser/ast/asthash.rb +37 -0
  542. data/lib/puppet/parser/ast/block_expression.rb +40 -0
  543. data/lib/puppet/parser/ast/boolean_operator.rb +46 -0
  544. data/lib/puppet/parser/ast/branch.rb +22 -0
  545. data/lib/puppet/parser/ast/caseopt.rb +52 -0
  546. data/lib/puppet/parser/ast/casestatement.rb +41 -0
  547. data/lib/puppet/parser/ast/collection.rb +49 -0
  548. data/lib/puppet/parser/ast/collexpr.rb +109 -0
  549. data/lib/puppet/parser/ast/comparison_operator.rb +38 -0
  550. data/lib/puppet/parser/ast/definition.rb +17 -0
  551. data/lib/puppet/parser/ast/else.rb +22 -0
  552. data/lib/puppet/parser/ast/function.rb +59 -0
  553. data/lib/puppet/parser/ast/hostclass.rb +29 -0
  554. data/lib/puppet/parser/ast/ifstatement.rb +34 -0
  555. data/lib/puppet/parser/ast/in_operator.rb +24 -0
  556. data/lib/puppet/parser/ast/lambda.rb +135 -0
  557. data/lib/puppet/parser/ast/leaf.rb +232 -0
  558. data/lib/puppet/parser/ast/match_operator.rb +28 -0
  559. data/lib/puppet/parser/ast/method_call.rb +77 -0
  560. data/lib/puppet/parser/ast/minus.rb +23 -0
  561. data/lib/puppet/parser/ast/node.rb +20 -0
  562. data/lib/puppet/parser/ast/nop.rb +11 -0
  563. data/lib/puppet/parser/ast/not.rb +19 -0
  564. data/lib/puppet/parser/ast/pops_bridge.rb +168 -0
  565. data/lib/puppet/parser/ast/relationship.rb +47 -0
  566. data/lib/puppet/parser/ast/resource.rb +67 -0
  567. data/lib/puppet/parser/ast/resource_defaults.rb +24 -0
  568. data/lib/puppet/parser/ast/resource_instance.rb +9 -0
  569. data/lib/puppet/parser/ast/resource_override.rb +62 -0
  570. data/lib/puppet/parser/ast/resource_reference.rb +28 -0
  571. data/lib/puppet/parser/ast/resourceparam.rb +27 -0
  572. data/lib/puppet/parser/ast/selector.rb +50 -0
  573. data/lib/puppet/parser/ast/tag.rb +24 -0
  574. data/lib/puppet/parser/ast/top_level_construct.rb +4 -0
  575. data/lib/puppet/parser/ast/vardef.rb +38 -0
  576. data/lib/puppet/parser/code_merger.rb +13 -0
  577. data/lib/puppet/parser/collector.rb +177 -0
  578. data/lib/puppet/parser/compiler.rb +555 -0
  579. data/lib/puppet/parser/e4_parser_adapter.rb +81 -0
  580. data/lib/puppet/parser/e_parser_adapter.rb +119 -0
  581. data/lib/puppet/parser/files.rb +94 -0
  582. data/lib/puppet/parser/functions.rb +249 -0
  583. data/lib/puppet/parser/functions/collect.rb +15 -0
  584. data/lib/puppet/parser/functions/contain.rb +26 -0
  585. data/lib/puppet/parser/functions/create_resources.rb +78 -0
  586. data/lib/puppet/parser/functions/defined.rb +73 -0
  587. data/lib/puppet/parser/functions/each.rb +109 -0
  588. data/lib/puppet/parser/functions/epp.rb +41 -0
  589. data/lib/puppet/parser/functions/extlookup.rb +153 -0
  590. data/lib/puppet/parser/functions/fail.rb +4 -0
  591. data/lib/puppet/parser/functions/file.rb +23 -0
  592. data/lib/puppet/parser/functions/filter.rb +100 -0
  593. data/lib/puppet/parser/functions/fqdn_rand.rb +21 -0
  594. data/lib/puppet/parser/functions/generate.rb +37 -0
  595. data/lib/puppet/parser/functions/hiera.rb +26 -0
  596. data/lib/puppet/parser/functions/hiera_array.rb +27 -0
  597. data/lib/puppet/parser/functions/hiera_hash.rb +29 -0
  598. data/lib/puppet/parser/functions/hiera_include.rb +44 -0
  599. data/lib/puppet/parser/functions/include.rb +47 -0
  600. data/lib/puppet/parser/functions/inline_epp.rb +79 -0
  601. data/lib/puppet/parser/functions/inline_template.rb +21 -0
  602. data/lib/puppet/parser/functions/lookup.rb +144 -0
  603. data/lib/puppet/parser/functions/map.rb +96 -0
  604. data/lib/puppet/parser/functions/md5.rb +5 -0
  605. data/lib/puppet/parser/functions/realize.rb +14 -0
  606. data/lib/puppet/parser/functions/reduce.rb +100 -0
  607. data/lib/puppet/parser/functions/regsubst.rb +116 -0
  608. data/lib/puppet/parser/functions/require.rb +53 -0
  609. data/lib/puppet/parser/functions/search.rb +7 -0
  610. data/lib/puppet/parser/functions/select.rb +15 -0
  611. data/lib/puppet/parser/functions/sha1.rb +5 -0
  612. data/lib/puppet/parser/functions/shellquote.rb +61 -0
  613. data/lib/puppet/parser/functions/slice.rb +116 -0
  614. data/lib/puppet/parser/functions/split.rb +28 -0
  615. data/lib/puppet/parser/functions/sprintf.rb +36 -0
  616. data/lib/puppet/parser/functions/tag.rb +6 -0
  617. data/lib/puppet/parser/functions/tagged.rb +18 -0
  618. data/lib/puppet/parser/functions/template.rb +23 -0
  619. data/lib/puppet/parser/functions/versioncmp.rb +30 -0
  620. data/lib/puppet/parser/grammar.ra +806 -0
  621. data/lib/puppet/parser/lexer.rb +608 -0
  622. data/lib/puppet/parser/makefile +8 -0
  623. data/lib/puppet/parser/methods.rb +69 -0
  624. data/lib/puppet/parser/parser.rb +2559 -0
  625. data/lib/puppet/parser/parser_factory.rb +88 -0
  626. data/lib/puppet/parser/parser_support.rb +195 -0
  627. data/lib/puppet/parser/relationship.rb +62 -0
  628. data/lib/puppet/parser/resource.rb +267 -0
  629. data/lib/puppet/parser/resource/param.rb +25 -0
  630. data/lib/puppet/parser/scope.rb +833 -0
  631. data/lib/puppet/parser/templatewrapper.rb +127 -0
  632. data/lib/puppet/parser/type_loader.rb +152 -0
  633. data/lib/puppet/parser/yaml_trimmer.rb +7 -0
  634. data/lib/puppet/pops.rb +99 -0
  635. data/lib/puppet/pops/adaptable.rb +190 -0
  636. data/lib/puppet/pops/adapters.rb +101 -0
  637. data/lib/puppet/pops/binder/binder.rb +393 -0
  638. data/lib/puppet/pops/binder/binder_issues.rb +122 -0
  639. data/lib/puppet/pops/binder/bindings_checker.rb +197 -0
  640. data/lib/puppet/pops/binder/bindings_composer.rb +175 -0
  641. data/lib/puppet/pops/binder/bindings_factory.rb +805 -0
  642. data/lib/puppet/pops/binder/bindings_label_provider.rb +43 -0
  643. data/lib/puppet/pops/binder/bindings_loader.rb +88 -0
  644. data/lib/puppet/pops/binder/bindings_model.rb +201 -0
  645. data/lib/puppet/pops/binder/bindings_model_dumper.rb +187 -0
  646. data/lib/puppet/pops/binder/bindings_validator_factory.rb +28 -0
  647. data/lib/puppet/pops/binder/config/binder_config.rb +107 -0
  648. data/lib/puppet/pops/binder/config/binder_config_checker.rb +142 -0
  649. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +32 -0
  650. data/lib/puppet/pops/binder/config/issues.rb +86 -0
  651. data/lib/puppet/pops/binder/injector.rb +767 -0
  652. data/lib/puppet/pops/binder/injector_entry.rb +57 -0
  653. data/lib/puppet/pops/binder/key_factory.rb +67 -0
  654. data/lib/puppet/pops/binder/lookup.rb +191 -0
  655. data/lib/puppet/pops/binder/producers.rb +829 -0
  656. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +34 -0
  657. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +84 -0
  658. data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +53 -0
  659. data/lib/puppet/pops/binder/system_bindings.rb +60 -0
  660. data/lib/puppet/pops/containment.rb +104 -0
  661. data/lib/puppet/pops/evaluator/access_operator.rb +548 -0
  662. data/lib/puppet/pops/evaluator/closure.rb +57 -0
  663. data/lib/puppet/pops/evaluator/compare_operator.rb +168 -0
  664. data/lib/puppet/pops/evaluator/epp_evaluator.rb +87 -0
  665. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1069 -0
  666. data/lib/puppet/pops/evaluator/external_syntax_support.rb +49 -0
  667. data/lib/puppet/pops/evaluator/relationship_operator.rb +156 -0
  668. data/lib/puppet/pops/evaluator/runtime3_support.rb +489 -0
  669. data/lib/puppet/pops/issue_reporter.rb +79 -0
  670. data/lib/puppet/pops/issues.rb +461 -0
  671. data/lib/puppet/pops/label_provider.rb +76 -0
  672. data/lib/puppet/pops/model/ast_transformer.rb +663 -0
  673. data/lib/puppet/pops/model/ast_tree_dumper.rb +386 -0
  674. data/lib/puppet/pops/model/factory.rb +970 -0
  675. data/lib/puppet/pops/model/model.rb +606 -0
  676. data/lib/puppet/pops/model/model_label_provider.rb +104 -0
  677. data/lib/puppet/pops/model/model_tree_dumper.rb +377 -0
  678. data/lib/puppet/pops/model/tree_dumper.rb +59 -0
  679. data/lib/puppet/pops/parser/code_merger.rb +17 -0
  680. data/lib/puppet/pops/parser/egrammar.ra +752 -0
  681. data/lib/puppet/pops/parser/eparser.rb +2579 -0
  682. data/lib/puppet/pops/parser/epp_parser.rb +51 -0
  683. data/lib/puppet/pops/parser/epp_support.rb +247 -0
  684. data/lib/puppet/pops/parser/evaluating_parser.rb +200 -0
  685. data/lib/puppet/pops/parser/heredoc_support.rb +139 -0
  686. data/lib/puppet/pops/parser/interpolation_support.rb +227 -0
  687. data/lib/puppet/pops/parser/lexer.rb +753 -0
  688. data/lib/puppet/pops/parser/lexer2.rb +684 -0
  689. data/lib/puppet/pops/parser/lexer_support.rb +107 -0
  690. data/lib/puppet/pops/parser/locatable.rb +23 -0
  691. data/lib/puppet/pops/parser/locator.rb +291 -0
  692. data/lib/puppet/pops/parser/makefile +6 -0
  693. data/lib/puppet/pops/parser/parser_support.rb +231 -0
  694. data/lib/puppet/pops/parser/slurp_support.rb +95 -0
  695. data/lib/puppet/pops/patterns.rb +44 -0
  696. data/lib/puppet/pops/types/class_loader.rb +118 -0
  697. data/lib/puppet/pops/types/enumeration.rb +34 -0
  698. data/lib/puppet/pops/types/type_calculator.rb +1482 -0
  699. data/lib/puppet/pops/types/type_factory.rb +335 -0
  700. data/lib/puppet/pops/types/type_parser.rb +460 -0
  701. data/lib/puppet/pops/types/types.rb +422 -0
  702. data/lib/puppet/pops/utils.rb +120 -0
  703. data/lib/puppet/pops/validation.rb +432 -0
  704. data/lib/puppet/pops/validation/checker3_1.rb +558 -0
  705. data/lib/puppet/pops/validation/checker4_0.rb +514 -0
  706. data/lib/puppet/pops/validation/validator_factory_3_1.rb +31 -0
  707. data/lib/puppet/pops/validation/validator_factory_4_0.rb +31 -0
  708. data/lib/puppet/pops/visitable.rb +6 -0
  709. data/lib/puppet/pops/visitor.rb +192 -0
  710. data/lib/puppet/property.rb +617 -0
  711. data/lib/puppet/property/boolean.rb +7 -0
  712. data/lib/puppet/property/ensure.rb +105 -0
  713. data/lib/puppet/property/keyvalue.rb +95 -0
  714. data/lib/puppet/property/list.rb +78 -0
  715. data/lib/puppet/property/ordered_list.rb +29 -0
  716. data/lib/puppet/provider.rb +651 -0
  717. data/lib/puppet/provider/aixobject.rb +392 -0
  718. data/lib/puppet/provider/augeas/augeas.rb +509 -0
  719. data/lib/puppet/provider/cisco.rb +9 -0
  720. data/lib/puppet/provider/command.rb +25 -0
  721. data/lib/puppet/provider/computer/computer.rb +20 -0
  722. data/lib/puppet/provider/confine.rb +6 -0
  723. data/lib/puppet/provider/cron/crontab.rb +249 -0
  724. data/lib/puppet/provider/exec.rb +91 -0
  725. data/lib/puppet/provider/exec/posix.rb +48 -0
  726. data/lib/puppet/provider/exec/shell.rb +25 -0
  727. data/lib/puppet/provider/exec/windows.rb +55 -0
  728. data/lib/puppet/provider/file/posix.rb +136 -0
  729. data/lib/puppet/provider/file/windows.rb +105 -0
  730. data/lib/puppet/provider/group/aix.rb +141 -0
  731. data/lib/puppet/provider/group/directoryservice.rb +12 -0
  732. data/lib/puppet/provider/group/groupadd.rb +85 -0
  733. data/lib/puppet/provider/group/ldap.rb +45 -0
  734. data/lib/puppet/provider/group/pw.rb +48 -0
  735. data/lib/puppet/provider/group/windows_adsi.rb +86 -0
  736. data/lib/puppet/provider/host/parsed.rb +44 -0
  737. data/lib/puppet/provider/interface/cisco.rb +27 -0
  738. data/lib/puppet/provider/ldap.rb +137 -0
  739. data/lib/puppet/provider/macauthorization/macauthorization.rb +309 -0
  740. data/lib/puppet/provider/mailalias/aliases.rb +39 -0
  741. data/lib/puppet/provider/maillist/mailman.rb +108 -0
  742. data/lib/puppet/provider/mcx/mcxcontent.rb +172 -0
  743. data/lib/puppet/provider/mount.rb +58 -0
  744. data/lib/puppet/provider/mount/parsed.rb +123 -0
  745. data/lib/puppet/provider/naginator.rb +63 -0
  746. data/lib/puppet/provider/nameservice.rb +292 -0
  747. data/lib/puppet/provider/nameservice/directoryservice.rb +589 -0
  748. data/lib/puppet/provider/nameservice/objectadd.rb +33 -0
  749. data/lib/puppet/provider/nameservice/pw.rb +21 -0
  750. data/lib/puppet/provider/network_device.rb +68 -0
  751. data/lib/puppet/provider/package.rb +28 -0
  752. data/lib/puppet/provider/package/aix.rb +152 -0
  753. data/lib/puppet/provider/package/appdmg.rb +106 -0
  754. data/lib/puppet/provider/package/apple.rb +47 -0
  755. data/lib/puppet/provider/package/apt.rb +107 -0
  756. data/lib/puppet/provider/package/aptitude.rb +29 -0
  757. data/lib/puppet/provider/package/aptrpm.rb +83 -0
  758. data/lib/puppet/provider/package/blastwave.rb +111 -0
  759. data/lib/puppet/provider/package/dpkg.rb +165 -0
  760. data/lib/puppet/provider/package/fink.rb +79 -0
  761. data/lib/puppet/provider/package/freebsd.rb +47 -0
  762. data/lib/puppet/provider/package/gem.rb +125 -0
  763. data/lib/puppet/provider/package/hpux.rb +44 -0
  764. data/lib/puppet/provider/package/macports.rb +107 -0
  765. data/lib/puppet/provider/package/msi.rb +140 -0
  766. data/lib/puppet/provider/package/nim.rb +280 -0
  767. data/lib/puppet/provider/package/openbsd.rb +175 -0
  768. data/lib/puppet/provider/package/opkg.rb +76 -0
  769. data/lib/puppet/provider/package/pacman.rb +209 -0
  770. data/lib/puppet/provider/package/pip.rb +119 -0
  771. data/lib/puppet/provider/package/pkg.rb +190 -0
  772. data/lib/puppet/provider/package/pkgdmg.rb +149 -0
  773. data/lib/puppet/provider/package/pkgin.rb +87 -0
  774. data/lib/puppet/provider/package/pkgutil.rb +186 -0
  775. data/lib/puppet/provider/package/portage.rb +149 -0
  776. data/lib/puppet/provider/package/ports.rb +94 -0
  777. data/lib/puppet/provider/package/portupgrade.rb +241 -0
  778. data/lib/puppet/provider/package/rpm.rb +205 -0
  779. data/lib/puppet/provider/package/rug.rb +52 -0
  780. data/lib/puppet/provider/package/sun.rb +128 -0
  781. data/lib/puppet/provider/package/sunfreeware.rb +9 -0
  782. data/lib/puppet/provider/package/up2date.rb +40 -0
  783. data/lib/puppet/provider/package/urpmi.rb +55 -0
  784. data/lib/puppet/provider/package/windows.rb +123 -0
  785. data/lib/puppet/provider/package/windows/exe_package.rb +70 -0
  786. data/lib/puppet/provider/package/windows/msi_package.rb +62 -0
  787. data/lib/puppet/provider/package/windows/package.rb +80 -0
  788. data/lib/puppet/provider/package/yum.rb +110 -0
  789. data/lib/puppet/provider/package/yumhelper.py +129 -0
  790. data/lib/puppet/provider/package/zypper.rb +103 -0
  791. data/lib/puppet/provider/parsedfile.rb +443 -0
  792. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +565 -0
  793. data/lib/puppet/provider/selboolean/getsetsebool.rb +47 -0
  794. data/lib/puppet/provider/selmodule/semodule.rb +134 -0
  795. data/lib/puppet/provider/service/base.rb +106 -0
  796. data/lib/puppet/provider/service/bsd.rb +51 -0
  797. data/lib/puppet/provider/service/daemontools.rb +194 -0
  798. data/lib/puppet/provider/service/debian.rb +64 -0
  799. data/lib/puppet/provider/service/freebsd.rb +143 -0
  800. data/lib/puppet/provider/service/gentoo.rb +45 -0
  801. data/lib/puppet/provider/service/init.rb +161 -0
  802. data/lib/puppet/provider/service/launchd.rb +356 -0
  803. data/lib/puppet/provider/service/openbsd.rb +23 -0
  804. data/lib/puppet/provider/service/openrc.rb +71 -0
  805. data/lib/puppet/provider/service/openwrt.rb +36 -0
  806. data/lib/puppet/provider/service/redhat.rb +64 -0
  807. data/lib/puppet/provider/service/runit.rb +111 -0
  808. data/lib/puppet/provider/service/service.rb +42 -0
  809. data/lib/puppet/provider/service/smf.rb +116 -0
  810. data/lib/puppet/provider/service/src.rb +120 -0
  811. data/lib/puppet/provider/service/systemd.rb +65 -0
  812. data/lib/puppet/provider/service/upstart.rb +355 -0
  813. data/lib/puppet/provider/service/windows.rb +106 -0
  814. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +89 -0
  815. data/lib/puppet/provider/sshkey/parsed.rb +35 -0
  816. data/lib/puppet/provider/user/aix.rb +369 -0
  817. data/lib/puppet/provider/user/directoryservice.rb +671 -0
  818. data/lib/puppet/provider/user/hpux.rb +66 -0
  819. data/lib/puppet/provider/user/ldap.rb +128 -0
  820. data/lib/puppet/provider/user/pw.rb +97 -0
  821. data/lib/puppet/provider/user/user_role_add.rb +209 -0
  822. data/lib/puppet/provider/user/useradd.rb +231 -0
  823. data/lib/puppet/provider/user/windows_adsi.rb +99 -0
  824. data/lib/puppet/provider/vlan/cisco.rb +28 -0
  825. data/lib/puppet/provider/yumrepo/inifile.rb +187 -0
  826. data/lib/puppet/provider/zfs/zfs.rb +83 -0
  827. data/lib/puppet/provider/zone/solaris.rb +361 -0
  828. data/lib/puppet/provider/zpool/zpool.rb +120 -0
  829. data/lib/puppet/rails.rb +139 -0
  830. data/lib/puppet/rails/benchmark.rb +63 -0
  831. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +13 -0
  832. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +13 -0
  833. data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
  834. data/lib/puppet/rails/database/004_add_inventory_service_tables.rb +36 -0
  835. data/lib/puppet/rails/database/schema.rb +136 -0
  836. data/lib/puppet/rails/fact_name.rb +7 -0
  837. data/lib/puppet/rails/fact_value.rb +10 -0
  838. data/lib/puppet/rails/host.rb +258 -0
  839. data/lib/puppet/rails/inventory_fact.rb +5 -0
  840. data/lib/puppet/rails/inventory_node.rb +43 -0
  841. data/lib/puppet/rails/param_name.rb +25 -0
  842. data/lib/puppet/rails/param_value.rb +74 -0
  843. data/lib/puppet/rails/puppet_tag.rb +10 -0
  844. data/lib/puppet/rails/resource.rb +235 -0
  845. data/lib/puppet/rails/resource_tag.rb +26 -0
  846. data/lib/puppet/rails/source_file.rb +8 -0
  847. data/lib/puppet/reference/configuration.rb +73 -0
  848. data/lib/puppet/reference/function.rb +17 -0
  849. data/lib/puppet/reference/indirection.rb +71 -0
  850. data/lib/puppet/reference/metaparameter.rb +42 -0
  851. data/lib/puppet/reference/providers.rb +119 -0
  852. data/lib/puppet/reference/report.rb +23 -0
  853. data/lib/puppet/reference/type.rb +116 -0
  854. data/lib/puppet/relationship.rb +103 -0
  855. data/lib/puppet/reports.rb +89 -0
  856. data/lib/puppet/reports/http.rb +31 -0
  857. data/lib/puppet/reports/log.rb +14 -0
  858. data/lib/puppet/reports/rrdgraph.rb +128 -0
  859. data/lib/puppet/reports/store.rb +73 -0
  860. data/lib/puppet/reports/tagmail.rb +179 -0
  861. data/lib/puppet/resource.rb +542 -0
  862. data/lib/puppet/resource/catalog.rb +543 -0
  863. data/lib/puppet/resource/status.rb +155 -0
  864. data/lib/puppet/resource/type.rb +386 -0
  865. data/lib/puppet/resource/type_collection.rb +230 -0
  866. data/lib/puppet/resource/type_collection_helper.rb +7 -0
  867. data/lib/puppet/run.rb +109 -0
  868. data/lib/puppet/scheduler.rb +16 -0
  869. data/lib/puppet/scheduler/job.rb +53 -0
  870. data/lib/puppet/scheduler/scheduler.rb +44 -0
  871. data/lib/puppet/scheduler/splay_job.rb +32 -0
  872. data/lib/puppet/scheduler/timer.rb +13 -0
  873. data/lib/puppet/settings.rb +1312 -0
  874. data/lib/puppet/settings/autosign_setting.rb +22 -0
  875. data/lib/puppet/settings/base_setting.rb +168 -0
  876. data/lib/puppet/settings/boolean_setting.rb +32 -0
  877. data/lib/puppet/settings/config_file.rb +134 -0
  878. data/lib/puppet/settings/directory_setting.rb +12 -0
  879. data/lib/puppet/settings/duration_setting.rb +32 -0
  880. data/lib/puppet/settings/enum_setting.rb +16 -0
  881. data/lib/puppet/settings/errors.rb +11 -0
  882. data/lib/puppet/settings/file_setting.rb +226 -0
  883. data/lib/puppet/settings/ini_file.rb +171 -0
  884. data/lib/puppet/settings/path_setting.rb +8 -0
  885. data/lib/puppet/settings/priority_setting.rb +42 -0
  886. data/lib/puppet/settings/string_setting.rb +9 -0
  887. data/lib/puppet/settings/terminus_setting.rb +14 -0
  888. data/lib/puppet/settings/value_translator.rb +15 -0
  889. data/lib/puppet/ssl.rb +12 -0
  890. data/lib/puppet/ssl/base.rb +140 -0
  891. data/lib/puppet/ssl/certificate.rb +65 -0
  892. data/lib/puppet/ssl/certificate_authority.rb +509 -0
  893. data/lib/puppet/ssl/certificate_authority/autosign_command.rb +44 -0
  894. data/lib/puppet/ssl/certificate_authority/interface.rb +178 -0
  895. data/lib/puppet/ssl/certificate_factory.rb +219 -0
  896. data/lib/puppet/ssl/certificate_request.rb +299 -0
  897. data/lib/puppet/ssl/certificate_request_attributes.rb +37 -0
  898. data/lib/puppet/ssl/certificate_revocation_list.rb +110 -0
  899. data/lib/puppet/ssl/certificate_signer.rb +22 -0
  900. data/lib/puppet/ssl/configuration.rb +64 -0
  901. data/lib/puppet/ssl/digest.rb +20 -0
  902. data/lib/puppet/ssl/host.rb +371 -0
  903. data/lib/puppet/ssl/inventory.rb +50 -0
  904. data/lib/puppet/ssl/key.rb +59 -0
  905. data/lib/puppet/ssl/oids.rb +78 -0
  906. data/lib/puppet/ssl/validator.rb +60 -0
  907. data/lib/puppet/ssl/validator/default_validator.rb +153 -0
  908. data/lib/puppet/ssl/validator/no_validator.rb +17 -0
  909. data/lib/puppet/status.rb +45 -0
  910. data/lib/puppet/test/test_helper.rb +216 -0
  911. data/lib/puppet/transaction.rb +340 -0
  912. data/lib/puppet/transaction/additional_resource_generator.rb +126 -0
  913. data/lib/puppet/transaction/event.rb +107 -0
  914. data/lib/puppet/transaction/event_manager.rb +122 -0
  915. data/lib/puppet/transaction/report.rb +383 -0
  916. data/lib/puppet/transaction/resource_harness.rb +238 -0
  917. data/lib/puppet/type.rb +2430 -0
  918. data/lib/puppet/type/augeas.rb +189 -0
  919. data/lib/puppet/type/component.rb +77 -0
  920. data/lib/puppet/type/computer.rb +66 -0
  921. data/lib/puppet/type/cron.rb +474 -0
  922. data/lib/puppet/type/exec.rb +564 -0
  923. data/lib/puppet/type/file.rb +891 -0
  924. data/lib/puppet/type/file/checksum.rb +33 -0
  925. data/lib/puppet/type/file/content.rb +239 -0
  926. data/lib/puppet/type/file/ctime.rb +20 -0
  927. data/lib/puppet/type/file/ensure.rb +189 -0
  928. data/lib/puppet/type/file/group.rb +41 -0
  929. data/lib/puppet/type/file/mode.rb +159 -0
  930. data/lib/puppet/type/file/mtime.rb +18 -0
  931. data/lib/puppet/type/file/owner.rb +44 -0
  932. data/lib/puppet/type/file/selcontext.rb +124 -0
  933. data/lib/puppet/type/file/source.rb +256 -0
  934. data/lib/puppet/type/file/target.rb +87 -0
  935. data/lib/puppet/type/file/type.rb +19 -0
  936. data/lib/puppet/type/filebucket.rb +122 -0
  937. data/lib/puppet/type/group.rb +188 -0
  938. data/lib/puppet/type/host.rb +86 -0
  939. data/lib/puppet/type/interface.rb +116 -0
  940. data/lib/puppet/type/k5login.rb +88 -0
  941. data/lib/puppet/type/macauthorization.rb +167 -0
  942. data/lib/puppet/type/mailalias.rb +48 -0
  943. data/lib/puppet/type/maillist.rb +62 -0
  944. data/lib/puppet/type/mcx.rb +98 -0
  945. data/lib/puppet/type/mount.rb +288 -0
  946. data/lib/puppet/type/nagios_command.rb +3 -0
  947. data/lib/puppet/type/nagios_contact.rb +3 -0
  948. data/lib/puppet/type/nagios_contactgroup.rb +3 -0
  949. data/lib/puppet/type/nagios_host.rb +3 -0
  950. data/lib/puppet/type/nagios_hostdependency.rb +3 -0
  951. data/lib/puppet/type/nagios_hostescalation.rb +3 -0
  952. data/lib/puppet/type/nagios_hostextinfo.rb +3 -0
  953. data/lib/puppet/type/nagios_hostgroup.rb +3 -0
  954. data/lib/puppet/type/nagios_service.rb +3 -0
  955. data/lib/puppet/type/nagios_servicedependency.rb +3 -0
  956. data/lib/puppet/type/nagios_serviceescalation.rb +3 -0
  957. data/lib/puppet/type/nagios_serviceextinfo.rb +3 -0
  958. data/lib/puppet/type/nagios_servicegroup.rb +3 -0
  959. data/lib/puppet/type/nagios_timeperiod.rb +3 -0
  960. data/lib/puppet/type/notify.rb +44 -0
  961. data/lib/puppet/type/package.rb +460 -0
  962. data/lib/puppet/type/resources.rb +161 -0
  963. data/lib/puppet/type/router.rb +17 -0
  964. data/lib/puppet/type/schedule.rb +469 -0
  965. data/lib/puppet/type/scheduled_task.rb +170 -0
  966. data/lib/puppet/type/selboolean.rb +26 -0
  967. data/lib/puppet/type/selmodule.rb +59 -0
  968. data/lib/puppet/type/service.rb +224 -0
  969. data/lib/puppet/type/ssh_authorized_key.rb +115 -0
  970. data/lib/puppet/type/sshkey.rb +73 -0
  971. data/lib/puppet/type/stage.rb +27 -0
  972. data/lib/puppet/type/tidy.rb +324 -0
  973. data/lib/puppet/type/user.rb +572 -0
  974. data/lib/puppet/type/vlan.rb +26 -0
  975. data/lib/puppet/type/whit.rb +34 -0
  976. data/lib/puppet/type/yumrepo.rb +270 -0
  977. data/lib/puppet/type/zfs.rb +150 -0
  978. data/lib/puppet/type/zone.rb +385 -0
  979. data/lib/puppet/type/zpool.rb +91 -0
  980. data/lib/puppet/util.rb +545 -0
  981. data/lib/puppet/util/adsi.rb +368 -0
  982. data/lib/puppet/util/autoload.rb +227 -0
  983. data/lib/puppet/util/backups.rb +86 -0
  984. data/lib/puppet/util/cacher.rb +74 -0
  985. data/lib/puppet/util/checksums.rb +143 -0
  986. data/lib/puppet/util/classgen.rb +236 -0
  987. data/lib/puppet/util/colors.rb +175 -0
  988. data/lib/puppet/util/command_line.rb +182 -0
  989. data/lib/puppet/util/command_line/puppet_option_parser.rb +87 -0
  990. data/lib/puppet/util/command_line/trollop.rb +824 -0
  991. data/lib/puppet/util/constant_inflector.rb +24 -0
  992. data/lib/puppet/util/diff.rb +77 -0
  993. data/lib/puppet/util/docs.rb +128 -0
  994. data/lib/puppet/util/errors.rb +106 -0
  995. data/lib/puppet/util/execution.rb +313 -0
  996. data/lib/puppet/util/execution_stub.rb +26 -0
  997. data/lib/puppet/util/feature.rb +83 -0
  998. data/lib/puppet/util/file_watcher.rb +28 -0
  999. data/lib/puppet/util/fileparsing.rb +376 -0
  1000. data/lib/puppet/util/filetype.rb +299 -0
  1001. data/lib/puppet/util/http_proxy.rb +38 -0
  1002. data/lib/puppet/util/inifile.rb +218 -0
  1003. data/lib/puppet/util/inline_docs.rb +26 -0
  1004. data/lib/puppet/util/instance_loader.rb +81 -0
  1005. data/lib/puppet/util/instrumentation.rb +152 -0
  1006. data/lib/puppet/util/instrumentation/data.rb +46 -0
  1007. data/lib/puppet/util/instrumentation/indirection_probe.rb +41 -0
  1008. data/lib/puppet/util/instrumentation/instrumentable.rb +136 -0
  1009. data/lib/puppet/util/instrumentation/listener.rb +72 -0
  1010. data/lib/puppet/util/instrumentation/listeners/log.rb +23 -0
  1011. data/lib/puppet/util/instrumentation/listeners/performance.rb +24 -0
  1012. data/lib/puppet/util/json_lockfile.rb +44 -0
  1013. data/lib/puppet/util/ldap.rb +2 -0
  1014. data/lib/puppet/util/ldap/connection.rb +71 -0
  1015. data/lib/puppet/util/ldap/generator.rb +42 -0
  1016. data/lib/puppet/util/ldap/manager.rb +278 -0
  1017. data/lib/puppet/util/libuser.conf +15 -0
  1018. data/lib/puppet/util/libuser.rb +12 -0
  1019. data/lib/puppet/util/limits.rb +12 -0
  1020. data/lib/puppet/util/lockfile.rb +66 -0
  1021. data/lib/puppet/util/log.rb +343 -0
  1022. data/lib/puppet/util/log/destination.rb +49 -0
  1023. data/lib/puppet/util/log/destinations.rb +228 -0
  1024. data/lib/puppet/util/log/rate_limited_logger.rb +40 -0
  1025. data/lib/puppet/util/logging.rb +143 -0
  1026. data/lib/puppet/util/metaid.rb +21 -0
  1027. data/lib/puppet/util/methodhelper.rb +32 -0
  1028. data/lib/puppet/util/metric.rb +210 -0
  1029. data/lib/puppet/util/monkey_patches.rb +225 -0
  1030. data/lib/puppet/util/monkey_patches/lines.rb +13 -0
  1031. data/lib/puppet/util/nagios_maker.rb +85 -0
  1032. data/lib/puppet/util/network_device.rb +17 -0
  1033. data/lib/puppet/util/network_device/base.rb +27 -0
  1034. data/lib/puppet/util/network_device/cisco.rb +4 -0
  1035. data/lib/puppet/util/network_device/cisco/device.rb +267 -0
  1036. data/lib/puppet/util/network_device/cisco/facts.rb +72 -0
  1037. data/lib/puppet/util/network_device/cisco/interface.rb +82 -0
  1038. data/lib/puppet/util/network_device/config.rb +93 -0
  1039. data/lib/puppet/util/network_device/ipcalc.rb +68 -0
  1040. data/lib/puppet/util/network_device/transport.rb +5 -0
  1041. data/lib/puppet/util/network_device/transport/base.rb +26 -0
  1042. data/lib/puppet/util/network_device/transport/ssh.rb +122 -0
  1043. data/lib/puppet/util/network_device/transport/telnet.rb +44 -0
  1044. data/lib/puppet/util/package.rb +31 -0
  1045. data/lib/puppet/util/pidlock.rb +56 -0
  1046. data/lib/puppet/util/platform.rb +22 -0
  1047. data/lib/puppet/util/plugins.rb +82 -0
  1048. data/lib/puppet/util/posix.rb +147 -0
  1049. data/lib/puppet/util/profiler.rb +45 -0
  1050. data/lib/puppet/util/profiler/logging.rb +47 -0
  1051. data/lib/puppet/util/profiler/none.rb +8 -0
  1052. data/lib/puppet/util/profiler/object_counts.rb +17 -0
  1053. data/lib/puppet/util/profiler/wall_clock.rb +34 -0
  1054. data/lib/puppet/util/provider_features.rb +184 -0
  1055. data/lib/puppet/util/pson.rb +13 -0
  1056. data/lib/puppet/util/queue.rb +96 -0
  1057. data/lib/puppet/util/queue/stomp.rb +60 -0
  1058. data/lib/puppet/util/rails/cache_accumulator.rb +65 -0
  1059. data/lib/puppet/util/rails/collection_merger.rb +17 -0
  1060. data/lib/puppet/util/rails/reference_serializer.rb +32 -0
  1061. data/lib/puppet/util/rdoc.rb +89 -0
  1062. data/lib/puppet/util/rdoc/code_objects.rb +334 -0
  1063. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +910 -0
  1064. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1085 -0
  1065. data/lib/puppet/util/rdoc/parser.rb +22 -0
  1066. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +477 -0
  1067. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc1.rb +19 -0
  1068. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
  1069. data/lib/puppet/util/reference.rb +124 -0
  1070. data/lib/puppet/util/resource_template.rb +61 -0
  1071. data/lib/puppet/util/retryaction.rb +47 -0
  1072. data/lib/puppet/util/rubygems.rb +65 -0
  1073. data/lib/puppet/util/run_mode.rb +82 -0
  1074. data/lib/puppet/util/selinux.rb +222 -0
  1075. data/lib/puppet/util/ssl.rb +53 -0
  1076. data/lib/puppet/util/storage.rb +89 -0
  1077. data/lib/puppet/util/suidmanager.rb +198 -0
  1078. data/lib/puppet/util/symbolic_file_mode.rb +144 -0
  1079. data/lib/puppet/util/tag_set.rb +41 -0
  1080. data/lib/puppet/util/tagging.rb +55 -0
  1081. data/lib/puppet/util/terminal.rb +16 -0
  1082. data/lib/puppet/util/user_attr.rb +21 -0
  1083. data/lib/puppet/util/warnings.rb +32 -0
  1084. data/lib/puppet/util/watched_file.rb +37 -0
  1085. data/lib/puppet/util/watcher.rb +17 -0
  1086. data/lib/puppet/util/watcher/change_watcher.rb +33 -0
  1087. data/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
  1088. data/lib/puppet/util/watcher/timer.rb +19 -0
  1089. data/lib/puppet/util/windows.rb +17 -0
  1090. data/lib/puppet/util/windows/access_control_entry.rb +84 -0
  1091. data/lib/puppet/util/windows/access_control_list.rb +113 -0
  1092. data/lib/puppet/util/windows/error.rb +16 -0
  1093. data/lib/puppet/util/windows/file.rb +279 -0
  1094. data/lib/puppet/util/windows/process.rb +238 -0
  1095. data/lib/puppet/util/windows/registry.rb +70 -0
  1096. data/lib/puppet/util/windows/root_certs.rb +101 -0
  1097. data/lib/puppet/util/windows/security.rb +649 -0
  1098. data/lib/puppet/util/windows/security_descriptor.rb +62 -0
  1099. data/lib/puppet/util/windows/sid.rb +118 -0
  1100. data/lib/puppet/util/windows/string.rb +14 -0
  1101. data/lib/puppet/util/windows/user.rb +108 -0
  1102. data/lib/puppet/util/yaml.rb +24 -0
  1103. data/lib/puppet/util/zaml.rb +419 -0
  1104. data/lib/puppet/vendor.rb +55 -0
  1105. data/lib/puppet/vendor/load_safe_yaml.rb +1 -0
  1106. data/lib/puppet/vendor/require_vendored.rb +5 -0
  1107. data/lib/puppet/vendor/safe_yaml/CHANGES.md +104 -0
  1108. data/lib/puppet/vendor/safe_yaml/Gemfile +11 -0
  1109. data/lib/puppet/vendor/safe_yaml/LICENSE.txt +22 -0
  1110. data/lib/puppet/vendor/safe_yaml/README.md +179 -0
  1111. data/lib/puppet/vendor/safe_yaml/Rakefile +6 -0
  1112. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml.rb +253 -0
  1113. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/deep.rb +34 -0
  1114. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/date.rb +27 -0
  1115. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/hexadecimal.rb +12 -0
  1116. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/parse/sexagesimal.rb +26 -0
  1117. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_handler.rb +92 -0
  1118. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/psych_resolver.rb +52 -0
  1119. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/resolver.rb +94 -0
  1120. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/safe_to_ruby_visitor.rb +17 -0
  1121. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_hack.rb +36 -0
  1122. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_node_monkeypatch.rb +43 -0
  1123. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/syck_resolver.rb +38 -0
  1124. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform.rb +41 -0
  1125. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_boolean.rb +21 -0
  1126. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_date.rb +11 -0
  1127. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_float.rb +33 -0
  1128. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_integer.rb +25 -0
  1129. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_nil.rb +18 -0
  1130. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/to_symbol.rb +13 -0
  1131. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/transform/transformation_map.rb +47 -0
  1132. data/lib/puppet/vendor/safe_yaml/lib/safe_yaml/version.rb +3 -0
  1133. data/lib/puppet/vendor/safe_yaml/run_specs_all_ruby_versions.sh +21 -0
  1134. data/lib/puppet/vendor/safe_yaml/safe_yaml.gemspec +18 -0
  1135. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.2.yaml +2 -0
  1136. data/lib/puppet/vendor/safe_yaml/spec/exploit.1.9.3.yaml +2 -0
  1137. data/lib/puppet/vendor/safe_yaml/spec/psych_resolver_spec.rb +10 -0
  1138. data/lib/puppet/vendor/safe_yaml/spec/resolver_specs.rb +250 -0
  1139. data/lib/puppet/vendor/safe_yaml/spec/safe_yaml_spec.rb +702 -0
  1140. data/lib/puppet/vendor/safe_yaml/spec/spec_helper.rb +18 -0
  1141. data/lib/puppet/vendor/safe_yaml/spec/support/exploitable_back_door.rb +29 -0
  1142. data/lib/puppet/vendor/safe_yaml/spec/syck_resolver_spec.rb +10 -0
  1143. data/lib/puppet/vendor/safe_yaml/spec/transform/base64_spec.rb +11 -0
  1144. data/lib/puppet/vendor/safe_yaml/spec/transform/to_date_spec.rb +34 -0
  1145. data/lib/puppet/vendor/safe_yaml/spec/transform/to_float_spec.rb +42 -0
  1146. data/lib/puppet/vendor/safe_yaml/spec/transform/to_integer_spec.rb +59 -0
  1147. data/lib/puppet/vendor/safe_yaml/spec/transform/to_symbol_spec.rb +49 -0
  1148. data/lib/puppet/vendor/safe_yaml_patches.rb +9 -0
  1149. data/lib/puppet/version.rb +89 -0
  1150. data/lib/puppetx.rb +89 -0
  1151. data/lib/puppetx/puppet/bindings_scheme_handler.rb +130 -0
  1152. data/lib/puppetx/puppet/syntax_checker.rb +91 -0
  1153. data/lib/puppetx/puppetlabs/syntax_checkers/json.rb +37 -0
  1154. data/lib/semver.rb +124 -0
  1155. data/man/man5/puppet.conf.5 +1581 -0
  1156. data/man/man8/extlookup2hiera.8 +23 -0
  1157. data/man/man8/puppet-agent.8 +157 -0
  1158. data/man/man8/puppet-apply.8 +80 -0
  1159. data/man/man8/puppet-ca.8 +170 -0
  1160. data/man/man8/puppet-catalog.8 +292 -0
  1161. data/man/man8/puppet-cert.8 +97 -0
  1162. data/man/man8/puppet-certificate.8 +238 -0
  1163. data/man/man8/puppet-certificate_request.8 +168 -0
  1164. data/man/man8/puppet-certificate_revocation_list.8 +165 -0
  1165. data/man/man8/puppet-config.8 +76 -0
  1166. data/man/man8/puppet-describe.8 +51 -0
  1167. data/man/man8/puppet-device.8 +86 -0
  1168. data/man/man8/puppet-doc.8 +119 -0
  1169. data/man/man8/puppet-facts.8 +223 -0
  1170. data/man/man8/puppet-file.8 +215 -0
  1171. data/man/man8/puppet-filebucket.8 +81 -0
  1172. data/man/man8/puppet-help.8 +64 -0
  1173. data/man/man8/puppet-inspect.8 +36 -0
  1174. data/man/man8/puppet-instrumentation_data.8 +141 -0
  1175. data/man/man8/puppet-instrumentation_listener.8 +218 -0
  1176. data/man/man8/puppet-instrumentation_probe.8 +203 -0
  1177. data/man/man8/puppet-key.8 +129 -0
  1178. data/man/man8/puppet-kick.8 +131 -0
  1179. data/man/man8/puppet-man.8 +70 -0
  1180. data/man/man8/puppet-master.8 +78 -0
  1181. data/man/man8/puppet-module.8 +422 -0
  1182. data/man/man8/puppet-node.8 +211 -0
  1183. data/man/man8/puppet-parser.8 +73 -0
  1184. data/man/man8/puppet-plugin.8 +73 -0
  1185. data/man/man8/puppet-queue.8 +55 -0
  1186. data/man/man8/puppet-report.8 +186 -0
  1187. data/man/man8/puppet-resource.8 +84 -0
  1188. data/man/man8/puppet-resource_type.8 +214 -0
  1189. data/man/man8/puppet-secret_agent.8 +70 -0
  1190. data/man/man8/puppet-status.8 +150 -0
  1191. data/man/man8/puppet.8 +10 -0
  1192. data/spec/fixtures/faulty_face/puppet/face/syntax.rb +8 -0
  1193. data/spec/fixtures/hiera.yaml +9 -0
  1194. data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +2 -0
  1195. data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +6 -0
  1196. data/spec/fixtures/integration/node/environment/sitedir/03_empty.pp +0 -0
  1197. data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +2 -0
  1198. data/spec/fixtures/integration/provider/cron/crontab/create_normal_entry +19 -0
  1199. data/spec/fixtures/integration/provider/cron/crontab/create_special_entry +18 -0
  1200. data/spec/fixtures/integration/provider/cron/crontab/crontab_user1 +15 -0
  1201. data/spec/fixtures/integration/provider/cron/crontab/crontab_user2 +4 -0
  1202. data/spec/fixtures/integration/provider/cron/crontab/modify_entry +13 -0
  1203. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input1 +15 -0
  1204. data/spec/fixtures/integration/provider/cron/crontab/moved_cronjob_input2 +6 -0
  1205. data/spec/fixtures/integration/provider/cron/crontab/purged +8 -0
  1206. data/spec/fixtures/integration/provider/cron/crontab/remove_named_resource +12 -0
  1207. data/spec/fixtures/integration/provider/cron/crontab/remove_unnamed_resource +14 -0
  1208. data/spec/fixtures/integration/provider/cron/crontab/unspecialized +15 -0
  1209. data/spec/fixtures/integration/provider/mailalias/aliases/test1 +28 -0
  1210. data/spec/fixtures/manifests/site.pp +0 -0
  1211. data/spec/fixtures/releases/jamtur01-apache/Modulefile +2 -0
  1212. data/spec/fixtures/releases/jamtur01-apache/files/httpd +24 -0
  1213. data/spec/fixtures/releases/jamtur01-apache/files/test.vhost +18 -0
  1214. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +21 -0
  1215. data/spec/fixtures/releases/jamtur01-apache/lib/puppet/type/a2mod.rb +12 -0
  1216. data/spec/fixtures/releases/jamtur01-apache/manifests/dev.pp +5 -0
  1217. data/spec/fixtures/releases/jamtur01-apache/manifests/init.pp +34 -0
  1218. data/spec/fixtures/releases/jamtur01-apache/manifests/params.pp +17 -0
  1219. data/spec/fixtures/releases/jamtur01-apache/manifests/php.pp +5 -0
  1220. data/spec/fixtures/releases/jamtur01-apache/manifests/ssl.pp +15 -0
  1221. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +15 -0
  1222. data/spec/fixtures/releases/jamtur01-apache/metadata.json +1 -0
  1223. data/spec/fixtures/releases/jamtur01-apache/templates/vhost-default.conf.erb +20 -0
  1224. data/spec/fixtures/releases/jamtur01-apache/tests/apache.pp +1 -0
  1225. data/spec/fixtures/releases/jamtur01-apache/tests/dev.pp +1 -0
  1226. data/spec/fixtures/releases/jamtur01-apache/tests/init.pp +1 -0
  1227. data/spec/fixtures/releases/jamtur01-apache/tests/php.pp +1 -0
  1228. data/spec/fixtures/releases/jamtur01-apache/tests/ssl.pp +1 -0
  1229. data/spec/fixtures/releases/jamtur01-apache/tests/vhost.pp +2 -0
  1230. data/spec/fixtures/unit/indirector/data_binding/hiera/global.yaml +10 -0
  1231. data/spec/fixtures/unit/indirector/data_binding/hiera/invalid.yaml +1 -0
  1232. data/spec/fixtures/unit/module/trailing-comma.json +24 -0
  1233. data/spec/fixtures/unit/parser/lexer/aliastest.pp +16 -0
  1234. data/spec/fixtures/unit/parser/lexer/append.pp +11 -0
  1235. data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +14 -0
  1236. data/spec/fixtures/unit/parser/lexer/arithmetic_expression.pp +8 -0
  1237. data/spec/fixtures/unit/parser/lexer/arraytrailingcomma.pp +3 -0
  1238. data/spec/fixtures/unit/parser/lexer/casestatement.pp +65 -0
  1239. data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +15 -0
  1240. data/spec/fixtures/unit/parser/lexer/classincludes.pp +17 -0
  1241. data/spec/fixtures/unit/parser/lexer/classpathtest.pp +11 -0
  1242. data/spec/fixtures/unit/parser/lexer/collection.pp +10 -0
  1243. data/spec/fixtures/unit/parser/lexer/collection_override.pp +8 -0
  1244. data/spec/fixtures/unit/parser/lexer/collection_within_virtual_definitions.pp +20 -0
  1245. data/spec/fixtures/unit/parser/lexer/componentmetaparams.pp +11 -0
  1246. data/spec/fixtures/unit/parser/lexer/componentrequire.pp +8 -0
  1247. data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +23 -0
  1248. data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +17 -0
  1249. data/spec/fixtures/unit/parser/lexer/emptyclass.pp +9 -0
  1250. data/spec/fixtures/unit/parser/lexer/emptyexec.pp +3 -0
  1251. data/spec/fixtures/unit/parser/lexer/emptyifelse.pp +9 -0
  1252. data/spec/fixtures/unit/parser/lexer/falsevalues.pp +3 -0
  1253. data/spec/fixtures/unit/parser/lexer/filecreate.pp +11 -0
  1254. data/spec/fixtures/unit/parser/lexer/fqdefinition.pp +5 -0
  1255. data/spec/fixtures/unit/parser/lexer/fqparents.pp +11 -0
  1256. data/spec/fixtures/unit/parser/lexer/funccomma.pp +5 -0
  1257. data/spec/fixtures/unit/parser/lexer/hash.pp +33 -0
  1258. data/spec/fixtures/unit/parser/lexer/ifexpression.pp +12 -0
  1259. data/spec/fixtures/unit/parser/lexer/implicititeration.pp +15 -0
  1260. data/spec/fixtures/unit/parser/lexer/multilinecomments.pp +10 -0
  1261. data/spec/fixtures/unit/parser/lexer/multipleclass.pp +9 -0
  1262. data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +7 -0
  1263. data/spec/fixtures/unit/parser/lexer/multisubs.pp +13 -0
  1264. data/spec/fixtures/unit/parser/lexer/namevartest.pp +9 -0
  1265. data/spec/fixtures/unit/parser/lexer/scopetest.pp +13 -0
  1266. data/spec/fixtures/unit/parser/lexer/selectorvalues.pp +49 -0
  1267. data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +5 -0
  1268. data/spec/fixtures/unit/parser/lexer/simpleselector.pp +38 -0
  1269. data/spec/fixtures/unit/parser/lexer/singleary.pp +19 -0
  1270. data/spec/fixtures/unit/parser/lexer/singlequote.pp +11 -0
  1271. data/spec/fixtures/unit/parser/lexer/singleselector.pp +22 -0
  1272. data/spec/fixtures/unit/parser/lexer/subclass_name_duplication.pp +11 -0
  1273. data/spec/fixtures/unit/parser/lexer/tag.pp +9 -0
  1274. data/spec/fixtures/unit/parser/lexer/tagged.pp +35 -0
  1275. data/spec/fixtures/unit/parser/lexer/virtualresources.pp +14 -0
  1276. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +10 -0
  1277. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +10 -0
  1278. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +20 -0
  1279. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppetx/awesome2/echo_scheme_handler.rb +18 -0
  1280. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +5 -0
  1281. data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +6 -0
  1282. data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +9 -0
  1283. data/spec/fixtures/unit/pops/parser/lexer/aliastest.pp +16 -0
  1284. data/spec/fixtures/unit/pops/parser/lexer/append.pp +11 -0
  1285. data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +14 -0
  1286. data/spec/fixtures/unit/pops/parser/lexer/arithmetic_expression.pp +8 -0
  1287. data/spec/fixtures/unit/pops/parser/lexer/arraytrailingcomma.pp +3 -0
  1288. data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +65 -0
  1289. data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +15 -0
  1290. data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +17 -0
  1291. data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +11 -0
  1292. data/spec/fixtures/unit/pops/parser/lexer/collection.pp +10 -0
  1293. data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +8 -0
  1294. data/spec/fixtures/unit/pops/parser/lexer/collection_within_virtual_definitions.pp +20 -0
  1295. data/spec/fixtures/unit/pops/parser/lexer/componentmetaparams.pp +11 -0
  1296. data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +8 -0
  1297. data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +23 -0
  1298. data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +17 -0
  1299. data/spec/fixtures/unit/pops/parser/lexer/emptyclass.pp +9 -0
  1300. data/spec/fixtures/unit/pops/parser/lexer/emptyexec.pp +3 -0
  1301. data/spec/fixtures/unit/pops/parser/lexer/emptyifelse.pp +9 -0
  1302. data/spec/fixtures/unit/pops/parser/lexer/falsevalues.pp +3 -0
  1303. data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +11 -0
  1304. data/spec/fixtures/unit/pops/parser/lexer/fqdefinition.pp +5 -0
  1305. data/spec/fixtures/unit/pops/parser/lexer/fqparents.pp +11 -0
  1306. data/spec/fixtures/unit/pops/parser/lexer/funccomma.pp +5 -0
  1307. data/spec/fixtures/unit/pops/parser/lexer/hash.pp +33 -0
  1308. data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +12 -0
  1309. data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +15 -0
  1310. data/spec/fixtures/unit/pops/parser/lexer/multilinecomments.pp +10 -0
  1311. data/spec/fixtures/unit/pops/parser/lexer/multipleclass.pp +9 -0
  1312. data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +7 -0
  1313. data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +13 -0
  1314. data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +9 -0
  1315. data/spec/fixtures/unit/pops/parser/lexer/scopetest.pp +13 -0
  1316. data/spec/fixtures/unit/pops/parser/lexer/selectorvalues.pp +49 -0
  1317. data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +5 -0
  1318. data/spec/fixtures/unit/pops/parser/lexer/simpleselector.pp +38 -0
  1319. data/spec/fixtures/unit/pops/parser/lexer/singleary.pp +19 -0
  1320. data/spec/fixtures/unit/pops/parser/lexer/singlequote.pp +11 -0
  1321. data/spec/fixtures/unit/pops/parser/lexer/singleselector.pp +22 -0
  1322. data/spec/fixtures/unit/pops/parser/lexer/subclass_name_duplication.pp +11 -0
  1323. data/spec/fixtures/unit/pops/parser/lexer/tag.pp +9 -0
  1324. data/spec/fixtures/unit/pops/parser/lexer/tagged.pp +35 -0
  1325. data/spec/fixtures/unit/pops/parser/lexer/virtualresources.pp +14 -0
  1326. data/spec/fixtures/unit/provider/augeas/augeas/augeas/lenses/test.aug +13 -0
  1327. data/spec/fixtures/unit/provider/augeas/augeas/etc/fstab +10 -0
  1328. data/spec/fixtures/unit/provider/augeas/augeas/etc/hosts +6 -0
  1329. data/spec/fixtures/unit/provider/augeas/augeas/etc/test +3 -0
  1330. data/spec/fixtures/unit/provider/augeas/augeas/test.aug +13 -0
  1331. data/spec/fixtures/unit/provider/cron/crontab/single_line.yaml +272 -0
  1332. data/spec/fixtures/unit/provider/cron/crontab/vixie_header.txt +3 -0
  1333. data/spec/fixtures/unit/provider/cron/parsed/managed +6 -0
  1334. data/spec/fixtures/unit/provider/cron/parsed/simple +9 -0
  1335. data/spec/fixtures/unit/provider/host/parsed/valid_hosts +19 -0
  1336. data/spec/fixtures/unit/provider/mount/mount-output.aix.txt +7 -0
  1337. data/spec/fixtures/unit/provider/mount/parsed/aix.filesystems +144 -0
  1338. data/spec/fixtures/unit/provider/mount/parsed/aix.mount +7 -0
  1339. data/spec/fixtures/unit/provider/mount/parsed/darwin.mount +6 -0
  1340. data/spec/fixtures/unit/provider/mount/parsed/freebsd.fstab +8 -0
  1341. data/spec/fixtures/unit/provider/mount/parsed/freebsd.mount +3 -0
  1342. data/spec/fixtures/unit/provider/mount/parsed/hpux.mount +17 -0
  1343. data/spec/fixtures/unit/provider/mount/parsed/linux.fstab +11 -0
  1344. data/spec/fixtures/unit/provider/mount/parsed/linux.mount +5 -0
  1345. data/spec/fixtures/unit/provider/mount/parsed/netbsd.fstab +9 -0
  1346. data/spec/fixtures/unit/provider/mount/parsed/netbsd.mount +8 -0
  1347. data/spec/fixtures/unit/provider/mount/parsed/openbsd.fstab +4 -0
  1348. data/spec/fixtures/unit/provider/mount/parsed/openbsd.mount +4 -0
  1349. data/spec/fixtures/unit/provider/mount/parsed/solaris.fstab +11 -0
  1350. data/spec/fixtures/unit/provider/mount/parsed/solaris.mount +6 -0
  1351. data/spec/fixtures/unit/provider/package/gem/line-with-1.8.5-warning +14 -0
  1352. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.detail +19 -0
  1353. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.list +10 -0
  1354. data/spec/fixtures/unit/provider/package/openbsd/pkginfo.query +1 -0
  1355. data/spec/fixtures/unit/provider/package/openbsd/pkginfo_flavors.list +2 -0
  1356. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris10 +1 -0
  1357. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.installed +1 -0
  1358. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.ifo.known +1 -0
  1359. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.installed +1 -0
  1360. data/spec/fixtures/unit/provider/package/pkg/dummy_solaris11.known +1 -0
  1361. data/spec/fixtures/unit/provider/package/pkg/incomplete +1 -0
  1362. data/spec/fixtures/unit/provider/package/pkg/publisher +2 -0
  1363. data/spec/fixtures/unit/provider/package/pkg/simple +2 -0
  1364. data/spec/fixtures/unit/provider/package/pkg/solaris11 +2 -0
  1365. data/spec/fixtures/unit/provider/package/pkg/unknown_status +12 -0
  1366. data/spec/fixtures/unit/provider/package/sun/dummy.server +12 -0
  1367. data/spec/fixtures/unit/provider/package/sun/simple +24 -0
  1368. data/spec/fixtures/unit/provider/package/zypper/zypper-list-updates-SLES11sp1.out +369 -0
  1369. data/spec/fixtures/unit/provider/parsedfile/simple.txt +4 -0
  1370. data/spec/fixtures/unit/provider/service/gentoo/rc_update_show +30 -0
  1371. data/spec/fixtures/unit/provider/service/openrc/rcservice_list +8 -0
  1372. data/spec/fixtures/unit/provider/service/openrc/rcstatus +43 -0
  1373. data/spec/fixtures/unit/provider/service/smf/svcs.out +3 -0
  1374. data/spec/fixtures/unit/provider/service/systemd/list_units_services +17 -0
  1375. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys +7 -0
  1376. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys1 +3 -0
  1377. data/spec/fixtures/unit/provider/ssh_authorized_key/parsed/authorized_keys2 +1 -0
  1378. data/spec/fixtures/unit/provider/sshkey/parsed/sample +21 -0
  1379. data/spec/fixtures/unit/provider/zfs/zfs/zfs-list.out +2 -0
  1380. data/spec/fixtures/unit/provider/zpool/zpool/zpool-list.out +2 -0
  1381. data/spec/fixtures/unit/reports/tagmail/tagmail_email.conf +2 -0
  1382. data/spec/fixtures/unit/reports/tagmail/tagmail_failers.conf +3 -0
  1383. data/spec/fixtures/unit/reports/tagmail/tagmail_passers.conf +30 -0
  1384. data/spec/fixtures/unit/util/filetype/aixtab_output +44 -0
  1385. data/spec/fixtures/unit/util/filetype/suntab_output +9 -0
  1386. data/spec/fixtures/unit/util/monkey_patches/x509.pem +32 -0
  1387. data/spec/fixtures/unit/util/rdoc/basic.pp +16 -0
  1388. data/spec/fixtures/yaml/report0.25.x.yaml +64 -0
  1389. data/spec/fixtures/yaml/report2.6.x.yaml +190 -0
  1390. data/spec/fixtures/yaml/test.local.yaml +16 -0
  1391. data/spec/integration/agent/logging_spec.rb +178 -0
  1392. data/spec/integration/application/apply_spec.rb +108 -0
  1393. data/spec/integration/application/doc_spec.rb +56 -0
  1394. data/spec/integration/configurer_spec.rb +81 -0
  1395. data/spec/integration/data_binding.rb +100 -0
  1396. data/spec/integration/defaults_spec.rb +315 -0
  1397. data/spec/integration/directory_environments_spec.rb +50 -0
  1398. data/spec/integration/faces/ca_spec.rb +354 -0
  1399. data/spec/integration/faces/documentation_spec.rb +62 -0
  1400. data/spec/integration/file_bucket/file_spec.rb +44 -0
  1401. data/spec/integration/file_serving/content_spec.rb +8 -0
  1402. data/spec/integration/file_serving/fileset_spec.rb +13 -0
  1403. data/spec/integration/file_serving/metadata_spec.rb +9 -0
  1404. data/spec/integration/file_serving/terminus_helper_spec.rb +21 -0
  1405. data/spec/integration/indirector/catalog/compiler_spec.rb +67 -0
  1406. data/spec/integration/indirector/catalog/queue_spec.rb +57 -0
  1407. data/spec/integration/indirector/direct_file_server_spec.rb +67 -0
  1408. data/spec/integration/indirector/facts/facter_spec.rb +22 -0
  1409. data/spec/integration/indirector/file_content/file_server_spec.rb +89 -0
  1410. data/spec/integration/indirector/file_metadata/file_server_spec.rb +14 -0
  1411. data/spec/integration/indirector/node/ldap_spec.rb +14 -0
  1412. data/spec/integration/network/authconfig_spec.rb +257 -0
  1413. data/spec/integration/network/formats_spec.rb +91 -0
  1414. data/spec/integration/node/environment_spec.rb +109 -0
  1415. data/spec/integration/node/facts_spec.rb +41 -0
  1416. data/spec/integration/node_spec.rb +82 -0
  1417. data/spec/integration/parser/catalog_spec.rb +125 -0
  1418. data/spec/integration/parser/collector_spec.rb +117 -0
  1419. data/spec/integration/parser/compiler_spec.rb +513 -0
  1420. data/spec/integration/parser/functions/require_spec.rb +43 -0
  1421. data/spec/integration/parser/future_compiler_spec.rb +416 -0
  1422. data/spec/integration/parser/parser_spec.rb +207 -0
  1423. data/spec/integration/parser/ruby_manifest_spec.rb +128 -0
  1424. data/spec/integration/parser/scope_spec.rb +757 -0
  1425. data/spec/integration/parser/undef_param_spec.rb +87 -0
  1426. data/spec/integration/provider/cron/crontab_spec.rb +217 -0
  1427. data/spec/integration/provider/mailalias/aliases_spec.rb +10 -0
  1428. data/spec/integration/provider/mount_spec.rb +169 -0
  1429. data/spec/integration/provider/package_spec.rb +44 -0
  1430. data/spec/integration/provider/service/init_spec.rb +46 -0
  1431. data/spec/integration/provider/service/systemd_spec.rb +20 -0
  1432. data/spec/integration/provider/ssh_authorized_key_spec.rb +219 -0
  1433. data/spec/integration/reference/providers_spec.rb +16 -0
  1434. data/spec/integration/reports_spec.rb +14 -0
  1435. data/spec/integration/resource/catalog_spec.rb +54 -0
  1436. data/spec/integration/resource/type_collection_spec.rb +94 -0
  1437. data/spec/integration/ssl/autosign_spec.rb +130 -0
  1438. data/spec/integration/ssl/certificate_authority_spec.rb +137 -0
  1439. data/spec/integration/ssl/certificate_request_spec.rb +54 -0
  1440. data/spec/integration/ssl/certificate_revocation_list_spec.rb +37 -0
  1441. data/spec/integration/ssl/host_spec.rb +84 -0
  1442. data/spec/integration/transaction/report_spec.rb +24 -0
  1443. data/spec/integration/transaction_spec.rb +346 -0
  1444. data/spec/integration/type/exec_spec.rb +77 -0
  1445. data/spec/integration/type/file_spec.rb +1375 -0
  1446. data/spec/integration/type/nagios_spec.rb +80 -0
  1447. data/spec/integration/type/package_spec.rb +28 -0
  1448. data/spec/integration/type/tidy_spec.rb +31 -0
  1449. data/spec/integration/type_spec.rb +32 -0
  1450. data/spec/integration/util/autoload_spec.rb +107 -0
  1451. data/spec/integration/util/execution_spec.rb +17 -0
  1452. data/spec/integration/util/feature_spec.rb +53 -0
  1453. data/spec/integration/util/rdoc/parser_spec.rb +261 -0
  1454. data/spec/integration/util/settings_spec.rb +89 -0
  1455. data/spec/integration/util/windows/process_spec.rb +22 -0
  1456. data/spec/integration/util/windows/security_spec.rb +846 -0
  1457. data/spec/integration/util/windows/user_spec.rb +59 -0
  1458. data/spec/integration/util_spec.rb +111 -0
  1459. data/spec/lib/matchers/containment_matchers.rb +52 -0
  1460. data/spec/lib/matchers/include.rb +27 -0
  1461. data/spec/lib/matchers/include_in_order.rb +21 -0
  1462. data/spec/lib/matchers/include_in_order_spec.rb +30 -0
  1463. data/spec/lib/matchers/include_spec.rb +32 -0
  1464. data/spec/lib/matchers/json.rb +167 -0
  1465. data/spec/lib/matchers/match_tokens2.rb +74 -0
  1466. data/spec/lib/matchers/relationship_graph_matchers.rb +48 -0
  1467. data/spec/lib/matchers/resource.rb +35 -0
  1468. data/spec/lib/puppet/face/1.0.0/huzzah.rb +8 -0
  1469. data/spec/lib/puppet/face/basetest.rb +51 -0
  1470. data/spec/lib/puppet/face/huzzah.rb +8 -0
  1471. data/spec/lib/puppet/face/huzzah/obsolete.rb +6 -0
  1472. data/spec/lib/puppet/face/version_matching.rb +12 -0
  1473. data/spec/lib/puppet/indirector/indirector_testing/json.rb +6 -0
  1474. data/spec/lib/puppet/indirector/indirector_testing/memory.rb +7 -0
  1475. data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +6 -0
  1476. data/spec/lib/puppet/indirector_testing.rb +37 -0
  1477. data/spec/lib/puppet_spec/compiler.rb +36 -0
  1478. data/spec/lib/puppet_spec/database.rb +29 -0
  1479. data/spec/lib/puppet_spec/files.rb +60 -0
  1480. data/spec/lib/puppet_spec/fixtures.rb +28 -0
  1481. data/spec/lib/puppet_spec/matchers.rb +120 -0
  1482. data/spec/lib/puppet_spec/modules.rb +26 -0
  1483. data/spec/lib/puppet_spec/pops.rb +16 -0
  1484. data/spec/lib/puppet_spec/scope.rb +14 -0
  1485. data/spec/lib/puppet_spec/settings.rb +15 -0
  1486. data/spec/lib/puppet_spec/verbose.rb +9 -0
  1487. data/spec/monkey_patches/alias_should_to_must.rb +21 -0
  1488. data/spec/shared_behaviours/all_parsedfile_providers.rb +21 -0
  1489. data/spec/shared_behaviours/an_indirector_face.rb +6 -0
  1490. data/spec/shared_behaviours/documentation_on_faces.rb +263 -0
  1491. data/spec/shared_behaviours/file_server_terminus.rb +41 -0
  1492. data/spec/shared_behaviours/file_serving.rb +75 -0
  1493. data/spec/shared_behaviours/file_serving_model.rb +72 -0
  1494. data/spec/shared_behaviours/memory_terminus.rb +28 -0
  1495. data/spec/shared_behaviours/path_parameters.rb +160 -0
  1496. data/spec/shared_behaviours/store_configs_terminus.rb +21 -0
  1497. data/spec/shared_behaviours/things_that_declare_options.rb +262 -0
  1498. data/spec/shared_contexts/platform.rb +52 -0
  1499. data/spec/spec_helper.rb +193 -0
  1500. data/spec/unit/agent/disabler_spec.rb +64 -0
  1501. data/spec/unit/agent/locker_spec.rb +100 -0
  1502. data/spec/unit/agent_spec.rb +327 -0
  1503. data/spec/unit/application/agent_spec.rb +656 -0
  1504. data/spec/unit/application/apply_spec.rb +455 -0
  1505. data/spec/unit/application/cert_spec.rb +220 -0
  1506. data/spec/unit/application/certificate_spec.rb +22 -0
  1507. data/spec/unit/application/config_spec.rb +9 -0
  1508. data/spec/unit/application/describe_spec.rb +79 -0
  1509. data/spec/unit/application/device_spec.rb +415 -0
  1510. data/spec/unit/application/doc_spec.rb +333 -0
  1511. data/spec/unit/application/face_base_spec.rb +408 -0
  1512. data/spec/unit/application/facts_spec.rb +32 -0
  1513. data/spec/unit/application/filebucket_spec.rb +207 -0
  1514. data/spec/unit/application/indirection_base_spec.rb +44 -0
  1515. data/spec/unit/application/inspect_spec.rb +285 -0
  1516. data/spec/unit/application/kick_spec.rb +296 -0
  1517. data/spec/unit/application/master_spec.rb +355 -0
  1518. data/spec/unit/application/queue_spec.rb +168 -0
  1519. data/spec/unit/application/resource_spec.rb +214 -0
  1520. data/spec/unit/application/secret_agent_spec.rb +34 -0
  1521. data/spec/unit/application_spec.rb +645 -0
  1522. data/spec/unit/configurer/downloader_spec.rb +210 -0
  1523. data/spec/unit/configurer/fact_handler_spec.rb +89 -0
  1524. data/spec/unit/configurer/plugin_handler_spec.rb +42 -0
  1525. data/spec/unit/configurer_spec.rb +655 -0
  1526. data/spec/unit/confine/exists_spec.rb +80 -0
  1527. data/spec/unit/confine/false_spec.rb +52 -0
  1528. data/spec/unit/confine/feature_spec.rb +57 -0
  1529. data/spec/unit/confine/true_spec.rb +52 -0
  1530. data/spec/unit/confine/variable_spec.rb +106 -0
  1531. data/spec/unit/confine_collection_spec.rb +133 -0
  1532. data/spec/unit/confine_spec.rb +77 -0
  1533. data/spec/unit/confiner_spec.rb +62 -0
  1534. data/spec/unit/context/trusted_information_spec.rb +124 -0
  1535. data/spec/unit/context_spec.rb +74 -0
  1536. data/spec/unit/daemon_spec.rb +255 -0
  1537. data/spec/unit/data_binding_spec.rb +11 -0
  1538. data/spec/unit/defaults_spec.rb +44 -0
  1539. data/spec/unit/dsl/resource_api_spec.rb +180 -0
  1540. data/spec/unit/dsl/resource_type_api_spec.rb +53 -0
  1541. data/spec/unit/environments_spec.rb +126 -0
  1542. data/spec/unit/face/catalog_spec.rb +7 -0
  1543. data/spec/unit/face/certificate_request_spec.rb +7 -0
  1544. data/spec/unit/face/certificate_revocation_list_spec.rb +7 -0
  1545. data/spec/unit/face/certificate_spec.rb +223 -0
  1546. data/spec/unit/face/config_spec.rb +46 -0
  1547. data/spec/unit/face/facts_spec.rb +23 -0
  1548. data/spec/unit/face/file_spec.rb +12 -0
  1549. data/spec/unit/face/help_spec.rb +144 -0
  1550. data/spec/unit/face/instrumentation_data_spec.rb +7 -0
  1551. data/spec/unit/face/instrumentation_listener_spec.rb +38 -0
  1552. data/spec/unit/face/instrumentation_probe_spec.rb +21 -0
  1553. data/spec/unit/face/key_spec.rb +7 -0
  1554. data/spec/unit/face/module/build_spec.rb +69 -0
  1555. data/spec/unit/face/module/install_spec.rb +113 -0
  1556. data/spec/unit/face/module/list_spec.rb +195 -0
  1557. data/spec/unit/face/module/search_spec.rb +201 -0
  1558. data/spec/unit/face/module/uninstall_spec.rb +70 -0
  1559. data/spec/unit/face/module/upgrade_spec.rb +26 -0
  1560. data/spec/unit/face/module_spec.rb +3 -0
  1561. data/spec/unit/face/node_spec.rb +272 -0
  1562. data/spec/unit/face/parser_spec.rb +70 -0
  1563. data/spec/unit/face/plugin_spec.rb +10 -0
  1564. data/spec/unit/face/report_spec.rb +7 -0
  1565. data/spec/unit/face/resource_spec.rb +7 -0
  1566. data/spec/unit/face/resource_type_spec.rb +7 -0
  1567. data/spec/unit/face/secret_agent_spec.rb +27 -0
  1568. data/spec/unit/face_spec.rb +1 -0
  1569. data/spec/unit/file_bucket/dipper_spec.rb +170 -0
  1570. data/spec/unit/file_bucket/file_spec.rb +128 -0
  1571. data/spec/unit/file_serving/base_spec.rb +168 -0
  1572. data/spec/unit/file_serving/configuration/parser_spec.rb +186 -0
  1573. data/spec/unit/file_serving/configuration_spec.rb +231 -0
  1574. data/spec/unit/file_serving/content_spec.rb +112 -0
  1575. data/spec/unit/file_serving/fileset_spec.rb +354 -0
  1576. data/spec/unit/file_serving/metadata_spec.rb +432 -0
  1577. data/spec/unit/file_serving/mount/file_spec.rb +189 -0
  1578. data/spec/unit/file_serving/mount/modules_spec.rb +70 -0
  1579. data/spec/unit/file_serving/mount/pluginfacts_spec.rb +73 -0
  1580. data/spec/unit/file_serving/mount/plugins_spec.rb +73 -0
  1581. data/spec/unit/file_serving/mount_spec.rb +31 -0
  1582. data/spec/unit/file_serving/terminus_helper_spec.rb +94 -0
  1583. data/spec/unit/file_serving/terminus_selector_spec.rb +58 -0
  1584. data/spec/unit/file_system/path_pattern_spec.rb +138 -0
  1585. data/spec/unit/file_system/tempfile_spec.rb +48 -0
  1586. data/spec/unit/file_system_spec.rb +508 -0
  1587. data/spec/unit/forge/errors_spec.rb +82 -0
  1588. data/spec/unit/forge/repository_spec.rb +121 -0
  1589. data/spec/unit/forge_spec.rb +60 -0
  1590. data/spec/unit/graph/key_spec.rb +41 -0
  1591. data/spec/unit/graph/rb_tree_map_spec.rb +572 -0
  1592. data/spec/unit/graph/relationship_graph_spec.rb +387 -0
  1593. data/spec/unit/graph/sequential_prioritizer_spec.rb +32 -0
  1594. data/spec/unit/graph/simple_graph.rb +721 -0
  1595. data/spec/unit/graph/title_hash_prioritizer_spec.rb +49 -0
  1596. data/spec/unit/hiera/backend/puppet_backend_spec.rb +148 -0
  1597. data/spec/unit/hiera/scope_spec.rb +89 -0
  1598. data/spec/unit/hiera_puppet_spec.rb +118 -0
  1599. data/spec/unit/indirector/active_record_spec.rb +75 -0
  1600. data/spec/unit/indirector/catalog/active_record_spec.rb +107 -0
  1601. data/spec/unit/indirector/catalog/compiler_spec.rb +253 -0
  1602. data/spec/unit/indirector/catalog/json_spec.rb +12 -0
  1603. data/spec/unit/indirector/catalog/msgpack_spec.rb +12 -0
  1604. data/spec/unit/indirector/catalog/queue_spec.rb +19 -0
  1605. data/spec/unit/indirector/catalog/rest_spec.rb +10 -0
  1606. data/spec/unit/indirector/catalog/static_compiler_spec.rb +225 -0
  1607. data/spec/unit/indirector/catalog/store_configs_spec.rb +17 -0
  1608. data/spec/unit/indirector/catalog/yaml_spec.rb +24 -0
  1609. data/spec/unit/indirector/certificate/ca_spec.rb +23 -0
  1610. data/spec/unit/indirector/certificate/disabled_ca_spec.rb +33 -0
  1611. data/spec/unit/indirector/certificate/file_spec.rb +23 -0
  1612. data/spec/unit/indirector/certificate/rest_spec.rb +63 -0
  1613. data/spec/unit/indirector/certificate_request/ca_spec.rb +57 -0
  1614. data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +33 -0
  1615. data/spec/unit/indirector/certificate_request/file_spec.rb +15 -0
  1616. data/spec/unit/indirector/certificate_request/rest_spec.rb +26 -0
  1617. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +16 -0
  1618. data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +33 -0
  1619. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +17 -0
  1620. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +26 -0
  1621. data/spec/unit/indirector/certificate_status/file_spec.rb +191 -0
  1622. data/spec/unit/indirector/certificate_status/rest_spec.rb +18 -0
  1623. data/spec/unit/indirector/code_spec.rb +31 -0
  1624. data/spec/unit/indirector/data_binding/hiera_spec.rb +114 -0
  1625. data/spec/unit/indirector/data_binding/none_spec.rb +28 -0
  1626. data/spec/unit/indirector/direct_file_server_spec.rb +80 -0
  1627. data/spec/unit/indirector/envelope_spec.rb +33 -0
  1628. data/spec/unit/indirector/exec_spec.rb +58 -0
  1629. data/spec/unit/indirector/face_spec.rb +70 -0
  1630. data/spec/unit/indirector/facts/active_record_spec.rb +113 -0
  1631. data/spec/unit/indirector/facts/couch_spec.rb +102 -0
  1632. data/spec/unit/indirector/facts/facter_spec.rb +197 -0
  1633. data/spec/unit/indirector/facts/inventory_active_record_spec.rb +175 -0
  1634. data/spec/unit/indirector/facts/inventory_service_spec.rb +21 -0
  1635. data/spec/unit/indirector/facts/network_device_spec.rb +88 -0
  1636. data/spec/unit/indirector/facts/rest_spec.rb +10 -0
  1637. data/spec/unit/indirector/facts/store_configs_spec.rb +17 -0
  1638. data/spec/unit/indirector/facts/yaml_spec.rb +239 -0
  1639. data/spec/unit/indirector/file_bucket_file/file_spec.rb +285 -0
  1640. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +10 -0
  1641. data/spec/unit/indirector/file_bucket_file/selector_spec.rb +29 -0
  1642. data/spec/unit/indirector/file_content/file_server_spec.rb +14 -0
  1643. data/spec/unit/indirector/file_content/file_spec.rb +14 -0
  1644. data/spec/unit/indirector/file_content/rest_spec.rb +14 -0
  1645. data/spec/unit/indirector/file_content/selector_spec.rb +10 -0
  1646. data/spec/unit/indirector/file_metadata/file_server_spec.rb +14 -0
  1647. data/spec/unit/indirector/file_metadata/file_spec.rb +50 -0
  1648. data/spec/unit/indirector/file_metadata/rest_spec.rb +13 -0
  1649. data/spec/unit/indirector/file_metadata/selector_spec.rb +11 -0
  1650. data/spec/unit/indirector/file_server_spec.rb +263 -0
  1651. data/spec/unit/indirector/indirection_spec.rb +875 -0
  1652. data/spec/unit/indirector/instrumentation_data/local_spec.rb +52 -0
  1653. data/spec/unit/indirector/instrumentation_data/rest_spec.rb +11 -0
  1654. data/spec/unit/indirector/instrumentation_listener/local_spec.rb +65 -0
  1655. data/spec/unit/indirector/instrumentation_listener/rest_spec.rb +11 -0
  1656. data/spec/unit/indirector/instrumentation_probe/local_spec.rb +65 -0
  1657. data/spec/unit/indirector/instrumentation_probe/rest_spec.rb +11 -0
  1658. data/spec/unit/indirector/json_spec.rb +193 -0
  1659. data/spec/unit/indirector/key/ca_spec.rb +23 -0
  1660. data/spec/unit/indirector/key/disabled_ca_spec.rb +33 -0
  1661. data/spec/unit/indirector/key/file_spec.rb +97 -0
  1662. data/spec/unit/indirector/ldap_spec.rb +137 -0
  1663. data/spec/unit/indirector/memory_spec.rb +27 -0
  1664. data/spec/unit/indirector/msgpack_spec.rb +191 -0
  1665. data/spec/unit/indirector/node/active_record_spec.rb +48 -0
  1666. data/spec/unit/indirector/node/exec_spec.rb +76 -0
  1667. data/spec/unit/indirector/node/ldap_spec.rb +441 -0
  1668. data/spec/unit/indirector/node/memory_spec.rb +18 -0
  1669. data/spec/unit/indirector/node/msgpack_spec.rb +24 -0
  1670. data/spec/unit/indirector/node/plain_spec.rb +26 -0
  1671. data/spec/unit/indirector/node/rest_spec.rb +12 -0
  1672. data/spec/unit/indirector/node/store_configs_spec.rb +17 -0
  1673. data/spec/unit/indirector/node/yaml_spec.rb +24 -0
  1674. data/spec/unit/indirector/none_spec.rb +33 -0
  1675. data/spec/unit/indirector/plain_spec.rb +27 -0
  1676. data/spec/unit/indirector/queue_spec.rb +115 -0
  1677. data/spec/unit/indirector/report/msgpack_spec.rb +28 -0
  1678. data/spec/unit/indirector/report/processor_spec.rb +100 -0
  1679. data/spec/unit/indirector/report/rest_spec.rb +67 -0
  1680. data/spec/unit/indirector/report/yaml_spec.rb +28 -0
  1681. data/spec/unit/indirector/request_spec.rb +605 -0
  1682. data/spec/unit/indirector/resource/active_record_spec.rb +166 -0
  1683. data/spec/unit/indirector/resource/ral_spec.rb +142 -0
  1684. data/spec/unit/indirector/resource/rest_spec.rb +10 -0
  1685. data/spec/unit/indirector/resource/store_configs_spec.rb +23 -0
  1686. data/spec/unit/indirector/resource_type/parser_spec.rb +249 -0
  1687. data/spec/unit/indirector/resource_type/rest_spec.rb +14 -0
  1688. data/spec/unit/indirector/rest_spec.rb +537 -0
  1689. data/spec/unit/indirector/run/local_spec.rb +21 -0
  1690. data/spec/unit/indirector/run/rest_spec.rb +10 -0
  1691. data/spec/unit/indirector/ssl_file_spec.rb +328 -0
  1692. data/spec/unit/indirector/status/local_spec.rb +11 -0
  1693. data/spec/unit/indirector/status/rest_spec.rb +10 -0
  1694. data/spec/unit/indirector/store_configs_spec.rb +8 -0
  1695. data/spec/unit/indirector/terminus_spec.rb +264 -0
  1696. data/spec/unit/indirector/yaml_spec.rb +166 -0
  1697. data/spec/unit/indirector_spec.rb +150 -0
  1698. data/spec/unit/interface/action_builder_spec.rb +217 -0
  1699. data/spec/unit/interface/action_manager_spec.rb +280 -0
  1700. data/spec/unit/interface/action_spec.rb +650 -0
  1701. data/spec/unit/interface/documentation_spec.rb +33 -0
  1702. data/spec/unit/interface/face_collection_spec.rb +200 -0
  1703. data/spec/unit/interface/option_builder_spec.rb +86 -0
  1704. data/spec/unit/interface/option_spec.rb +156 -0
  1705. data/spec/unit/interface_spec.rb +271 -0
  1706. data/spec/unit/man_spec.rb +32 -0
  1707. data/spec/unit/module_spec.rb +710 -0
  1708. data/spec/unit/module_tool/application_spec.rb +25 -0
  1709. data/spec/unit/module_tool/applications/builder_spec.rb +38 -0
  1710. data/spec/unit/module_tool/applications/checksummer_spec.rb +134 -0
  1711. data/spec/unit/module_tool/applications/installer_spec.rb +331 -0
  1712. data/spec/unit/module_tool/applications/searcher_spec.rb +38 -0
  1713. data/spec/unit/module_tool/applications/uninstaller_spec.rb +207 -0
  1714. data/spec/unit/module_tool/applications/unpacker_spec.rb +34 -0
  1715. data/spec/unit/module_tool/applications/upgrader_spec.rb +34 -0
  1716. data/spec/unit/module_tool/install_directory_spec.rb +70 -0
  1717. data/spec/unit/module_tool/metadata_spec.rb +24 -0
  1718. data/spec/unit/module_tool/tar/gnu_spec.rb +22 -0
  1719. data/spec/unit/module_tool/tar/mini_spec.rb +59 -0
  1720. data/spec/unit/module_tool/tar/solaris_spec.rb +22 -0
  1721. data/spec/unit/module_tool/tar_spec.rb +45 -0
  1722. data/spec/unit/module_tool_spec.rb +204 -0
  1723. data/spec/unit/network/auth_config_parser_spec.rb +101 -0
  1724. data/spec/unit/network/authconfig_spec.rb +109 -0
  1725. data/spec/unit/network/authentication_spec.rb +100 -0
  1726. data/spec/unit/network/authorization_spec.rb +34 -0
  1727. data/spec/unit/network/authstore_spec.rb +424 -0
  1728. data/spec/unit/network/format_handler_spec.rb +94 -0
  1729. data/spec/unit/network/format_spec.rb +197 -0
  1730. data/spec/unit/network/format_support_spec.rb +199 -0
  1731. data/spec/unit/network/formats_spec.rb +422 -0
  1732. data/spec/unit/network/http/api/v1_spec.rb +519 -0
  1733. data/spec/unit/network/http/api/v2/authorization_spec.rb +57 -0
  1734. data/spec/unit/network/http/api/v2/environments_spec.rb +42 -0
  1735. data/spec/unit/network/http/api/v2_spec.rb +14 -0
  1736. data/spec/unit/network/http/compression_spec.rb +196 -0
  1737. data/spec/unit/network/http/connection_spec.rb +271 -0
  1738. data/spec/unit/network/http/error_spec.rb +30 -0
  1739. data/spec/unit/network/http/handler_spec.rb +222 -0
  1740. data/spec/unit/network/http/rack/rest_spec.rb +316 -0
  1741. data/spec/unit/network/http/rack_spec.rb +43 -0
  1742. data/spec/unit/network/http/route_spec.rb +75 -0
  1743. data/spec/unit/network/http/webrick/rest_spec.rb +231 -0
  1744. data/spec/unit/network/http/webrick_spec.rb +271 -0
  1745. data/spec/unit/network/http_pool_spec.rb +74 -0
  1746. data/spec/unit/network/resolver_spec.rb +207 -0
  1747. data/spec/unit/network/rights_spec.rb +438 -0
  1748. data/spec/unit/network/server_spec.rb +95 -0
  1749. data/spec/unit/node/environment_spec.rb +466 -0
  1750. data/spec/unit/node/facts_spec.rb +175 -0
  1751. data/spec/unit/node_spec.rb +323 -0
  1752. data/spec/unit/other/selinux_spec.rb +99 -0
  1753. data/spec/unit/parameter/boolean_spec.rb +35 -0
  1754. data/spec/unit/parameter/package_options_spec.rb +44 -0
  1755. data/spec/unit/parameter/path_spec.rb +24 -0
  1756. data/spec/unit/parameter/value_collection_spec.rb +166 -0
  1757. data/spec/unit/parameter/value_spec.rb +87 -0
  1758. data/spec/unit/parameter_spec.rb +193 -0
  1759. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +160 -0
  1760. data/spec/unit/parser/ast/astarray_spec.rb +56 -0
  1761. data/spec/unit/parser/ast/asthash_spec.rb +98 -0
  1762. data/spec/unit/parser/ast/block_expression_spec.rb +67 -0
  1763. data/spec/unit/parser/ast/boolean_operator_spec.rb +54 -0
  1764. data/spec/unit/parser/ast/casestatement_spec.rb +168 -0
  1765. data/spec/unit/parser/ast/collection_spec.rb +70 -0
  1766. data/spec/unit/parser/ast/collexpr_spec.rb +120 -0
  1767. data/spec/unit/parser/ast/comparison_operator_spec.rb +118 -0
  1768. data/spec/unit/parser/ast/definition_spec.rb +21 -0
  1769. data/spec/unit/parser/ast/function_spec.rb +92 -0
  1770. data/spec/unit/parser/ast/hostclass_spec.rb +72 -0
  1771. data/spec/unit/parser/ast/ifstatement_spec.rb +77 -0
  1772. data/spec/unit/parser/ast/in_operator_spec.rb +61 -0
  1773. data/spec/unit/parser/ast/leaf_spec.rb +511 -0
  1774. data/spec/unit/parser/ast/match_operator_spec.rb +51 -0
  1775. data/spec/unit/parser/ast/minus_spec.rb +37 -0
  1776. data/spec/unit/parser/ast/node_spec.rb +30 -0
  1777. data/spec/unit/parser/ast/nop_spec.rb +19 -0
  1778. data/spec/unit/parser/ast/not_spec.rb +31 -0
  1779. data/spec/unit/parser/ast/relationship_spec.rb +87 -0
  1780. data/spec/unit/parser/ast/resource_defaults_spec.rb +21 -0
  1781. data/spec/unit/parser/ast/resource_override_spec.rb +50 -0
  1782. data/spec/unit/parser/ast/resource_reference_spec.rb +56 -0
  1783. data/spec/unit/parser/ast/resource_spec.rb +183 -0
  1784. data/spec/unit/parser/ast/resourceparam_spec.rb +51 -0
  1785. data/spec/unit/parser/ast/selector_spec.rb +88 -0
  1786. data/spec/unit/parser/ast/vardef_spec.rb +68 -0
  1787. data/spec/unit/parser/ast_spec.rb +76 -0
  1788. data/spec/unit/parser/collector_spec.rb +438 -0
  1789. data/spec/unit/parser/compiler_spec.rb +903 -0
  1790. data/spec/unit/parser/eparser_adapter_spec.rb +407 -0
  1791. data/spec/unit/parser/files_spec.rb +149 -0
  1792. data/spec/unit/parser/functions/contain_spec.rb +185 -0
  1793. data/spec/unit/parser/functions/create_resources_spec.rb +206 -0
  1794. data/spec/unit/parser/functions/defined_spec.rb +114 -0
  1795. data/spec/unit/parser/functions/epp_spec.rb +88 -0
  1796. data/spec/unit/parser/functions/extlookup_spec.rb +102 -0
  1797. data/spec/unit/parser/functions/fail_spec.rb +28 -0
  1798. data/spec/unit/parser/functions/file_spec.rb +55 -0
  1799. data/spec/unit/parser/functions/fqdn_rand_spec.rb +46 -0
  1800. data/spec/unit/parser/functions/generate_spec.rb +132 -0
  1801. data/spec/unit/parser/functions/hiera_array_spec.rb +26 -0
  1802. data/spec/unit/parser/functions/hiera_hash_spec.rb +22 -0
  1803. data/spec/unit/parser/functions/hiera_include_spec.rb +39 -0
  1804. data/spec/unit/parser/functions/hiera_spec.rb +22 -0
  1805. data/spec/unit/parser/functions/include_spec.rb +51 -0
  1806. data/spec/unit/parser/functions/inline_epp_spec.rb +82 -0
  1807. data/spec/unit/parser/functions/inline_template_spec.rb +34 -0
  1808. data/spec/unit/parser/functions/lookup_spec.rb +146 -0
  1809. data/spec/unit/parser/functions/realize_spec.rb +53 -0
  1810. data/spec/unit/parser/functions/regsubst_spec.rb +196 -0
  1811. data/spec/unit/parser/functions/require_spec.rb +61 -0
  1812. data/spec/unit/parser/functions/search_spec.rb +23 -0
  1813. data/spec/unit/parser/functions/shellquote_spec.rb +67 -0
  1814. data/spec/unit/parser/functions/split_spec.rb +53 -0
  1815. data/spec/unit/parser/functions/sprintf_spec.rb +51 -0
  1816. data/spec/unit/parser/functions/tag_spec.rb +28 -0
  1817. data/spec/unit/parser/functions/template_spec.rb +89 -0
  1818. data/spec/unit/parser/functions/versioncmp_spec.rb +33 -0
  1819. data/spec/unit/parser/functions_spec.rb +135 -0
  1820. data/spec/unit/parser/lexer_spec.rb +868 -0
  1821. data/spec/unit/parser/methods/each_spec.rb +91 -0
  1822. data/spec/unit/parser/methods/filter_spec.rb +135 -0
  1823. data/spec/unit/parser/methods/map_spec.rb +184 -0
  1824. data/spec/unit/parser/methods/reduce_spec.rb +78 -0
  1825. data/spec/unit/parser/methods/shared.rb +45 -0
  1826. data/spec/unit/parser/methods/slice_spec.rb +135 -0
  1827. data/spec/unit/parser/parser_spec.rb +535 -0
  1828. data/spec/unit/parser/relationship_spec.rb +93 -0
  1829. data/spec/unit/parser/resource/param_spec.rb +44 -0
  1830. data/spec/unit/parser/resource_spec.rb +586 -0
  1831. data/spec/unit/parser/scope_spec.rb +661 -0
  1832. data/spec/unit/parser/templatewrapper_spec.rb +118 -0
  1833. data/spec/unit/parser/type_loader_spec.rb +225 -0
  1834. data/spec/unit/pops/adaptable_spec.rb +141 -0
  1835. data/spec/unit/pops/benchmark_spec.rb +142 -0
  1836. data/spec/unit/pops/binder/binder_spec.rb +43 -0
  1837. data/spec/unit/pops/binder/bindings_checker_spec.rb +155 -0
  1838. data/spec/unit/pops/binder/bindings_composer_spec.rb +64 -0
  1839. data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +18 -0
  1840. data/spec/unit/pops/binder/config/binder_config_spec.rb +35 -0
  1841. data/spec/unit/pops/binder/injector_spec.rb +784 -0
  1842. data/spec/unit/pops/containment_spec.rb +26 -0
  1843. data/spec/unit/pops/evaluator/access_ops_spec.rb +376 -0
  1844. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +77 -0
  1845. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +103 -0
  1846. data/spec/unit/pops/evaluator/collections_ops_spec.rb +111 -0
  1847. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +256 -0
  1848. data/spec/unit/pops/evaluator/conditionals_spec.rb +190 -0
  1849. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1045 -0
  1850. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +75 -0
  1851. data/spec/unit/pops/evaluator/logical_ops_spec.rb +90 -0
  1852. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +44 -0
  1853. data/spec/unit/pops/evaluator/variables_spec.rb +194 -0
  1854. data/spec/unit/pops/factory_rspec_helper.rb +77 -0
  1855. data/spec/unit/pops/factory_spec.rb +306 -0
  1856. data/spec/unit/pops/issues_spec.rb +26 -0
  1857. data/spec/unit/pops/label_provider_spec.rb +42 -0
  1858. data/spec/unit/pops/model/ast_transformer_spec.rb +76 -0
  1859. data/spec/unit/pops/model/model_spec.rb +37 -0
  1860. data/spec/unit/pops/parser/epp_parser_spec.rb +86 -0
  1861. data/spec/unit/pops/parser/evaluating_parser_spec.rb +90 -0
  1862. data/spec/unit/pops/parser/lexer2_spec.rb +428 -0
  1863. data/spec/unit/pops/parser/lexer_spec.rb +840 -0
  1864. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +273 -0
  1865. data/spec/unit/pops/parser/parse_calls_spec.rb +101 -0
  1866. data/spec/unit/pops/parser/parse_conditionals_spec.rb +150 -0
  1867. data/spec/unit/pops/parser/parse_containers_spec.rb +206 -0
  1868. data/spec/unit/pops/parser/parse_heredoc_spec.rb +73 -0
  1869. data/spec/unit/pops/parser/parse_resource_spec.rb +242 -0
  1870. data/spec/unit/pops/parser/parser_rspec_helper.rb +11 -0
  1871. data/spec/unit/pops/parser/parser_spec.rb +17 -0
  1872. data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +23 -0
  1873. data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +243 -0
  1874. data/spec/unit/pops/transformer/transform_calls_spec.rb +115 -0
  1875. data/spec/unit/pops/transformer/transform_conditionals_spec.rb +123 -0
  1876. data/spec/unit/pops/transformer/transform_containers_spec.rb +190 -0
  1877. data/spec/unit/pops/transformer/transform_resource_spec.rb +185 -0
  1878. data/spec/unit/pops/transformer/transformer_rspec_helper.rb +27 -0
  1879. data/spec/unit/pops/types/enumeration_spec.rb +50 -0
  1880. data/spec/unit/pops/types/type_calculator_spec.rb +1459 -0
  1881. data/spec/unit/pops/types/type_factory_spec.rb +169 -0
  1882. data/spec/unit/pops/types/type_parser_spec.rb +197 -0
  1883. data/spec/unit/pops/validator/validator_spec.rb +68 -0
  1884. data/spec/unit/pops/visitor_spec.rb +94 -0
  1885. data/spec/unit/property/boolean_spec.rb +24 -0
  1886. data/spec/unit/property/ensure_spec.rb +12 -0
  1887. data/spec/unit/property/keyvalue_spec.rb +170 -0
  1888. data/spec/unit/property/list_spec.rb +165 -0
  1889. data/spec/unit/property/ordered_list_spec.rb +63 -0
  1890. data/spec/unit/property_spec.rb +541 -0
  1891. data/spec/unit/provider/README.markdown +4 -0
  1892. data/spec/unit/provider/aixobject_spec.rb +101 -0
  1893. data/spec/unit/provider/augeas/augeas_spec.rb +897 -0
  1894. data/spec/unit/provider/cisco_spec.rb +15 -0
  1895. data/spec/unit/provider/command_spec.rb +62 -0
  1896. data/spec/unit/provider/cron/crontab_spec.rb +206 -0
  1897. data/spec/unit/provider/cron/parsed_spec.rb +321 -0
  1898. data/spec/unit/provider/exec/posix_spec.rb +211 -0
  1899. data/spec/unit/provider/exec/shell_spec.rb +53 -0
  1900. data/spec/unit/provider/exec/windows_spec.rb +107 -0
  1901. data/spec/unit/provider/exec_spec.rb +35 -0
  1902. data/spec/unit/provider/file/posix_spec.rb +232 -0
  1903. data/spec/unit/provider/file/windows_spec.rb +154 -0
  1904. data/spec/unit/provider/group/groupadd_spec.rb +76 -0
  1905. data/spec/unit/provider/group/ldap_spec.rb +101 -0
  1906. data/spec/unit/provider/group/pw_spec.rb +81 -0
  1907. data/spec/unit/provider/group/windows_adsi_spec.rb +168 -0
  1908. data/spec/unit/provider/host/parsed_spec.rb +197 -0
  1909. data/spec/unit/provider/interface/cisco_spec.rb +57 -0
  1910. data/spec/unit/provider/ldap_spec.rb +244 -0
  1911. data/spec/unit/provider/macauthorization_spec.rb +152 -0
  1912. data/spec/unit/provider/mcx/mcxcontent_spec.rb +192 -0
  1913. data/spec/unit/provider/mount/parsed_spec.rb +283 -0
  1914. data/spec/unit/provider/mount_spec.rb +165 -0
  1915. data/spec/unit/provider/naginator_spec.rb +65 -0
  1916. data/spec/unit/provider/nameservice/directoryservice_spec.rb +189 -0
  1917. data/spec/unit/provider/nameservice_spec.rb +304 -0
  1918. data/spec/unit/provider/network_device_spec.rb +152 -0
  1919. data/spec/unit/provider/package/aix_spec.rb +107 -0
  1920. data/spec/unit/provider/package/appdmg_spec.rb +42 -0
  1921. data/spec/unit/provider/package/apt_spec.rb +146 -0
  1922. data/spec/unit/provider/package/aptitude_spec.rb +45 -0
  1923. data/spec/unit/provider/package/aptrpm_spec.rb +45 -0
  1924. data/spec/unit/provider/package/dpkg_spec.rb +281 -0
  1925. data/spec/unit/provider/package/freebsd_spec.rb +54 -0
  1926. data/spec/unit/provider/package/gem_spec.rb +162 -0
  1927. data/spec/unit/provider/package/hpux_spec.rb +51 -0
  1928. data/spec/unit/provider/package/macports_spec.rb +140 -0
  1929. data/spec/unit/provider/package/msi_spec.rb +229 -0
  1930. data/spec/unit/provider/package/nim_spec.rb +250 -0
  1931. data/spec/unit/provider/package/openbsd_spec.rb +312 -0
  1932. data/spec/unit/provider/package/opkg_spec.rb +180 -0
  1933. data/spec/unit/provider/package/pacman_spec.rb +295 -0
  1934. data/spec/unit/provider/package/pip_spec.rb +247 -0
  1935. data/spec/unit/provider/package/pkg_spec.rb +255 -0
  1936. data/spec/unit/provider/package/pkgdmg_spec.rb +144 -0
  1937. data/spec/unit/provider/package/pkgin_spec.rb +178 -0
  1938. data/spec/unit/provider/package/pkgutil_spec.rb +235 -0
  1939. data/spec/unit/provider/package/portage_spec.rb +65 -0
  1940. data/spec/unit/provider/package/rpm_spec.rb +367 -0
  1941. data/spec/unit/provider/package/sun_spec.rb +114 -0
  1942. data/spec/unit/provider/package/up2date_spec.rb +24 -0
  1943. data/spec/unit/provider/package/urpmi.rb +80 -0
  1944. data/spec/unit/provider/package/windows/exe_package_spec.rb +99 -0
  1945. data/spec/unit/provider/package/windows/msi_package_spec.rb +115 -0
  1946. data/spec/unit/provider/package/windows/package_spec.rb +126 -0
  1947. data/spec/unit/provider/package/windows_spec.rb +251 -0
  1948. data/spec/unit/provider/package/yum_spec.rb +195 -0
  1949. data/spec/unit/provider/package/zypper_spec.rb +141 -0
  1950. data/spec/unit/provider/parsedfile_spec.rb +228 -0
  1951. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +1574 -0
  1952. data/spec/unit/provider/selboolean_spec.rb +36 -0
  1953. data/spec/unit/provider/selmodule-example.pp +0 -0
  1954. data/spec/unit/provider/selmodule_spec.rb +73 -0
  1955. data/spec/unit/provider/service/base_spec.rb +77 -0
  1956. data/spec/unit/provider/service/daemontools_spec.rb +171 -0
  1957. data/spec/unit/provider/service/debian_spec.rb +116 -0
  1958. data/spec/unit/provider/service/freebsd_spec.rb +75 -0
  1959. data/spec/unit/provider/service/gentoo_spec.rb +241 -0
  1960. data/spec/unit/provider/service/init_spec.rb +212 -0
  1961. data/spec/unit/provider/service/launchd_spec.rb +290 -0
  1962. data/spec/unit/provider/service/openbsd_spec.rb +125 -0
  1963. data/spec/unit/provider/service/openrc_spec.rb +225 -0
  1964. data/spec/unit/provider/service/openwrt_spec.rb +109 -0
  1965. data/spec/unit/provider/service/redhat_spec.rb +148 -0
  1966. data/spec/unit/provider/service/runit_spec.rb +145 -0
  1967. data/spec/unit/provider/service/smf_spec.rb +153 -0
  1968. data/spec/unit/provider/service/src_spec.rb +173 -0
  1969. data/spec/unit/provider/service/systemd_spec.rb +162 -0
  1970. data/spec/unit/provider/service/upstart_spec.rb +522 -0
  1971. data/spec/unit/provider/service/windows_spec.rb +183 -0
  1972. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +255 -0
  1973. data/spec/unit/provider/sshkey/parsed_spec.rb +71 -0
  1974. data/spec/unit/provider/user/aix_spec.rb +162 -0
  1975. data/spec/unit/provider/user/directoryservice_spec.rb +1063 -0
  1976. data/spec/unit/provider/user/hpux_spec.rb +52 -0
  1977. data/spec/unit/provider/user/ldap_spec.rb +289 -0
  1978. data/spec/unit/provider/user/pw_spec.rb +214 -0
  1979. data/spec/unit/provider/user/user_role_add_spec.rb +335 -0
  1980. data/spec/unit/provider/user/useradd_spec.rb +430 -0
  1981. data/spec/unit/provider/user/windows_adsi_spec.rb +173 -0
  1982. data/spec/unit/provider/vlan/cisco_spec.rb +55 -0
  1983. data/spec/unit/provider/yumrepo/inifile_spec.rb +105 -0
  1984. data/spec/unit/provider/zfs/zfs_spec.rb +106 -0
  1985. data/spec/unit/provider/zone/solaris_spec.rb +195 -0
  1986. data/spec/unit/provider/zpool/zpool_spec.rb +214 -0
  1987. data/spec/unit/provider_spec.rb +714 -0
  1988. data/spec/unit/puppet_spec.rb +41 -0
  1989. data/spec/unit/rails/host_spec.rb +162 -0
  1990. data/spec/unit/rails/param_value_spec.rb +46 -0
  1991. data/spec/unit/rails/resource_spec.rb +115 -0
  1992. data/spec/unit/rails_spec.rb +244 -0
  1993. data/spec/unit/relationship_spec.rb +228 -0
  1994. data/spec/unit/reports/http_spec.rb +100 -0
  1995. data/spec/unit/reports/rrdgraph_spec.rb +29 -0
  1996. data/spec/unit/reports/store_spec.rb +76 -0
  1997. data/spec/unit/reports/tagmail_spec.rb +218 -0
  1998. data/spec/unit/reports_spec.rb +60 -0
  1999. data/spec/unit/resource/catalog_spec.rb +973 -0
  2000. data/spec/unit/resource/status_spec.rb +220 -0
  2001. data/spec/unit/resource/type_collection_helper_spec.rb +24 -0
  2002. data/spec/unit/resource/type_collection_spec.rb +417 -0
  2003. data/spec/unit/resource/type_spec.rb +777 -0
  2004. data/spec/unit/resource_spec.rb +979 -0
  2005. data/spec/unit/run_spec.rb +175 -0
  2006. data/spec/unit/scheduler/job_spec.rb +79 -0
  2007. data/spec/unit/scheduler/scheduler_spec.rb +116 -0
  2008. data/spec/unit/scheduler/splay_job_spec.rb +35 -0
  2009. data/spec/unit/semver_spec.rb +303 -0
  2010. data/spec/unit/settings/autosign_setting_spec.rb +103 -0
  2011. data/spec/unit/settings/config_file_spec.rb +153 -0
  2012. data/spec/unit/settings/directory_setting_spec.rb +32 -0
  2013. data/spec/unit/settings/duration_setting_spec.rb +45 -0
  2014. data/spec/unit/settings/enum_setting_spec.rb +27 -0
  2015. data/spec/unit/settings/file_setting_spec.rb +297 -0
  2016. data/spec/unit/settings/ini_file_spec.rb +184 -0
  2017. data/spec/unit/settings/path_setting_spec.rb +30 -0
  2018. data/spec/unit/settings/priority_setting_spec.rb +66 -0
  2019. data/spec/unit/settings/string_setting_spec.rb +75 -0
  2020. data/spec/unit/settings/terminus_setting_spec.rb +28 -0
  2021. data/spec/unit/settings/value_translator_spec.rb +77 -0
  2022. data/spec/unit/settings_spec.rb +1735 -0
  2023. data/spec/unit/ssl/base_spec.rb +85 -0
  2024. data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +30 -0
  2025. data/spec/unit/ssl/certificate_authority/interface_spec.rb +366 -0
  2026. data/spec/unit/ssl/certificate_authority_spec.rb +1105 -0
  2027. data/spec/unit/ssl/certificate_factory_spec.rb +168 -0
  2028. data/spec/unit/ssl/certificate_request_attributes_spec.rb +61 -0
  2029. data/spec/unit/ssl/certificate_request_spec.rb +369 -0
  2030. data/spec/unit/ssl/certificate_revocation_list_spec.rb +196 -0
  2031. data/spec/unit/ssl/certificate_spec.rb +193 -0
  2032. data/spec/unit/ssl/configuration_spec.rb +134 -0
  2033. data/spec/unit/ssl/digest_spec.rb +35 -0
  2034. data/spec/unit/ssl/host_spec.rb +940 -0
  2035. data/spec/unit/ssl/inventory_spec.rb +137 -0
  2036. data/spec/unit/ssl/key_spec.rb +191 -0
  2037. data/spec/unit/ssl/oids_spec.rb +48 -0
  2038. data/spec/unit/ssl/validator_spec.rb +354 -0
  2039. data/spec/unit/status_spec.rb +51 -0
  2040. data/spec/unit/transaction/additional_resource_generator_spec.rb +411 -0
  2041. data/spec/unit/transaction/event_manager_spec.rb +310 -0
  2042. data/spec/unit/transaction/event_spec.rb +192 -0
  2043. data/spec/unit/transaction/report_spec.rb +497 -0
  2044. data/spec/unit/transaction/resource_harness_spec.rb +478 -0
  2045. data/spec/unit/transaction_spec.rb +671 -0
  2046. data/spec/unit/type/README.markdown +4 -0
  2047. data/spec/unit/type/augeas_spec.rb +119 -0
  2048. data/spec/unit/type/component_spec.rb +53 -0
  2049. data/spec/unit/type/computer_spec.rb +80 -0
  2050. data/spec/unit/type/cron_spec.rb +544 -0
  2051. data/spec/unit/type/exec_spec.rb +763 -0
  2052. data/spec/unit/type/file/checksum_spec.rb +73 -0
  2053. data/spec/unit/type/file/content_spec.rb +463 -0
  2054. data/spec/unit/type/file/ctime_spec.rb +34 -0
  2055. data/spec/unit/type/file/ensure_spec.rb +123 -0
  2056. data/spec/unit/type/file/group_spec.rb +60 -0
  2057. data/spec/unit/type/file/mode_spec.rb +195 -0
  2058. data/spec/unit/type/file/mtime_spec.rb +34 -0
  2059. data/spec/unit/type/file/owner_spec.rb +58 -0
  2060. data/spec/unit/type/file/selinux_spec.rb +89 -0
  2061. data/spec/unit/type/file/source_spec.rb +555 -0
  2062. data/spec/unit/type/file/type_spec.rb +19 -0
  2063. data/spec/unit/type/file_spec.rb +1502 -0
  2064. data/spec/unit/type/filebucket_spec.rb +103 -0
  2065. data/spec/unit/type/group_spec.rb +84 -0
  2066. data/spec/unit/type/host_spec.rb +665 -0
  2067. data/spec/unit/type/interface_spec.rb +97 -0
  2068. data/spec/unit/type/k5login_spec.rb +115 -0
  2069. data/spec/unit/type/macauthorization_spec.rb +110 -0
  2070. data/spec/unit/type/mailalias_spec.rb +21 -0
  2071. data/spec/unit/type/maillist_spec.rb +41 -0
  2072. data/spec/unit/type/mcx_spec.rb +79 -0
  2073. data/spec/unit/type/mount_spec.rb +592 -0
  2074. data/spec/unit/type/nagios_spec.rb +284 -0
  2075. data/spec/unit/type/noop_metaparam_spec.rb +38 -0
  2076. data/spec/unit/type/package/package_settings_spec.rb +135 -0
  2077. data/spec/unit/type/package_spec.rb +304 -0
  2078. data/spec/unit/type/resources_spec.rb +284 -0
  2079. data/spec/unit/type/schedule_spec.rb +607 -0
  2080. data/spec/unit/type/scheduled_task_spec.rb +103 -0
  2081. data/spec/unit/type/selboolean_spec.rb +44 -0
  2082. data/spec/unit/type/selmodule_spec.rb +17 -0
  2083. data/spec/unit/type/service_spec.rb +261 -0
  2084. data/spec/unit/type/ssh_authorized_key_spec.rb +258 -0
  2085. data/spec/unit/type/sshkey_spec.rb +77 -0
  2086. data/spec/unit/type/stage_spec.rb +8 -0
  2087. data/spec/unit/type/tidy_spec.rb +433 -0
  2088. data/spec/unit/type/user_spec.rb +419 -0
  2089. data/spec/unit/type/vlan_spec.rb +44 -0
  2090. data/spec/unit/type/whit_spec.rb +10 -0
  2091. data/spec/unit/type/yumrepo_spec.rb +78 -0
  2092. data/spec/unit/type/zfs_spec.rb +46 -0
  2093. data/spec/unit/type/zone_spec.rb +129 -0
  2094. data/spec/unit/type/zpool_spec.rb +109 -0
  2095. data/spec/unit/type_spec.rb +1094 -0
  2096. data/spec/unit/util/adsi_spec.rb +437 -0
  2097. data/spec/unit/util/autoload_spec.rb +256 -0
  2098. data/spec/unit/util/backups_spec.rb +134 -0
  2099. data/spec/unit/util/cache_accumulator_spec.rb +74 -0
  2100. data/spec/unit/util/cacher_spec.rb +107 -0
  2101. data/spec/unit/util/checksums_spec.rb +173 -0
  2102. data/spec/unit/util/colors_spec.rb +83 -0
  2103. data/spec/unit/util/command_line_spec.rb +188 -0
  2104. data/spec/unit/util/command_line_utils/puppet_option_parser_spec.rb +129 -0
  2105. data/spec/unit/util/constant_inflector_spec.rb +56 -0
  2106. data/spec/unit/util/diff_spec.rb +31 -0
  2107. data/spec/unit/util/docs_spec.rb +100 -0
  2108. data/spec/unit/util/errors_spec.rb +37 -0
  2109. data/spec/unit/util/execution_spec.rb +637 -0
  2110. data/spec/unit/util/execution_stub_spec.rb +39 -0
  2111. data/spec/unit/util/feature_spec.rb +92 -0
  2112. data/spec/unit/util/filetype_spec.rb +211 -0
  2113. data/spec/unit/util/http_proxy_spec.rb +83 -0
  2114. data/spec/unit/util/inline_docs_spec.rb +31 -0
  2115. data/spec/unit/util/instrumentation/data_spec.rb +46 -0
  2116. data/spec/unit/util/instrumentation/indirection_probe_spec.rb +21 -0
  2117. data/spec/unit/util/instrumentation/instrumentable_spec.rb +186 -0
  2118. data/spec/unit/util/instrumentation/listener_spec.rb +101 -0
  2119. data/spec/unit/util/instrumentation/listeners/log_spec.rb +34 -0
  2120. data/spec/unit/util/instrumentation/listeners/performance_spec.rb +36 -0
  2121. data/spec/unit/util/instrumentation_spec.rb +181 -0
  2122. data/spec/unit/util/json_lockfile_spec.rb +50 -0
  2123. data/spec/unit/util/ldap/connection_spec.rb +161 -0
  2124. data/spec/unit/util/ldap/generator_spec.rb +50 -0
  2125. data/spec/unit/util/ldap/manager_spec.rb +641 -0
  2126. data/spec/unit/util/lockfile_spec.rb +118 -0
  2127. data/spec/unit/util/log/destinations_spec.rb +183 -0
  2128. data/spec/unit/util/log/rate_limited_logger_spec.rb +51 -0
  2129. data/spec/unit/util/log_spec.rb +378 -0
  2130. data/spec/unit/util/logging_spec.rb +151 -0
  2131. data/spec/unit/util/metric_spec.rb +98 -0
  2132. data/spec/unit/util/monkey_patches/lines_spec.rb +83 -0
  2133. data/spec/unit/util/monkey_patches_spec.rb +328 -0
  2134. data/spec/unit/util/nagios_maker_spec.rb +122 -0
  2135. data/spec/unit/util/network_device/cisco/device_spec.rb +445 -0
  2136. data/spec/unit/util/network_device/cisco/facts_spec.rb +64 -0
  2137. data/spec/unit/util/network_device/cisco/interface_spec.rb +88 -0
  2138. data/spec/unit/util/network_device/config_spec.rb +86 -0
  2139. data/spec/unit/util/network_device/ipcalc_spec.rb +62 -0
  2140. data/spec/unit/util/network_device/transport/base_spec.rb +41 -0
  2141. data/spec/unit/util/network_device/transport/ssh_spec.rb +218 -0
  2142. data/spec/unit/util/network_device/transport/telnet_spec.rb +84 -0
  2143. data/spec/unit/util/network_device_spec.rb +50 -0
  2144. data/spec/unit/util/package_spec.rb +20 -0
  2145. data/spec/unit/util/pidlock_spec.rb +182 -0
  2146. data/spec/unit/util/posix_spec.rb +251 -0
  2147. data/spec/unit/util/profiler/logging_spec.rb +81 -0
  2148. data/spec/unit/util/profiler/none_spec.rb +12 -0
  2149. data/spec/unit/util/profiler/object_counts_spec.rb +14 -0
  2150. data/spec/unit/util/profiler/wall_clock_spec.rb +13 -0
  2151. data/spec/unit/util/pson_spec.rb +71 -0
  2152. data/spec/unit/util/queue/stomp_spec.rb +137 -0
  2153. data/spec/unit/util/queue_spec.rb +95 -0
  2154. data/spec/unit/util/rdoc/parser_spec.rb +599 -0
  2155. data/spec/unit/util/rdoc_spec.rb +141 -0
  2156. data/spec/unit/util/reference_serializer_spec.rb +51 -0
  2157. data/spec/unit/util/reference_spec.rb +39 -0
  2158. data/spec/unit/util/resource_template_spec.rb +57 -0
  2159. data/spec/unit/util/retryaction_spec.rb +62 -0
  2160. data/spec/unit/util/rubygems_spec.rb +68 -0
  2161. data/spec/unit/util/run_mode_spec.rb +145 -0
  2162. data/spec/unit/util/selinux_spec.rb +289 -0
  2163. data/spec/unit/util/ssl_spec.rb +92 -0
  2164. data/spec/unit/util/storage_spec.rb +210 -0
  2165. data/spec/unit/util/suidmanager_spec.rb +297 -0
  2166. data/spec/unit/util/symbolic_file_mode_spec.rb +182 -0
  2167. data/spec/unit/util/tag_set_spec.rb +46 -0
  2168. data/spec/unit/util/tagging_spec.rb +131 -0
  2169. data/spec/unit/util/terminal_spec.rb +42 -0
  2170. data/spec/unit/util/user_attr_spec.rb +46 -0
  2171. data/spec/unit/util/warnings_spec.rb +38 -0
  2172. data/spec/unit/util/watched_file_spec.rb +52 -0
  2173. data/spec/unit/util/watcher/periodic_watcher_spec.rb +52 -0
  2174. data/spec/unit/util/watcher_spec.rb +56 -0
  2175. data/spec/unit/util/windows/access_control_entry_spec.rb +67 -0
  2176. data/spec/unit/util/windows/access_control_list_spec.rb +133 -0
  2177. data/spec/unit/util/windows/registry_spec.rb +140 -0
  2178. data/spec/unit/util/windows/root_certs_spec.rb +17 -0
  2179. data/spec/unit/util/windows/security_descriptor_spec.rb +117 -0
  2180. data/spec/unit/util/windows/sid_spec.rb +169 -0
  2181. data/spec/unit/util/windows/string_spec.rb +54 -0
  2182. data/spec/unit/util/yaml_spec.rb +55 -0
  2183. data/spec/unit/util/zaml_spec.rb +304 -0
  2184. data/spec/unit/util_spec.rb +577 -0
  2185. data/spec/unit/version_spec.rb +42 -0
  2186. data/spec/watchr.rb +142 -0
  2187. data/tasks/benchmark.rake +109 -0
  2188. data/tasks/ci.rake +29 -0
  2189. data/tasks/manpages.rake +84 -0
  2190. data/tasks/parallel.rake +408 -0
  2191. data/tasks/parser.rake +5 -0
  2192. data/tasks/yard.rake +59 -0
  2193. metadata +3515 -0
@@ -0,0 +1,432 @@
1
+ # A module with base functionality for validation of a model.
2
+ #
3
+ # * **Factory** - an abstract factory implementation that makes it easier to create a new validation factory.
4
+ # * **SeverityProducer** - produces a severity (:error, :warning, :ignore) for a given Issue
5
+ # * **DiagnosticProducer** - produces a Diagnostic which binds an Issue to an occurrence of that issue
6
+ # * **Acceptor** - the receiver/sink/collector of computed diagnostics
7
+ # * **DiagnosticFormatter** - produces human readable output for a Diagnostic
8
+ #
9
+ module Puppet::Pops::Validation
10
+
11
+ # This class is an abstract base implementation of a _model validation factory_ that creates a validator instance
12
+ # and associates it with a fully configured DiagnosticProducer.
13
+ #
14
+ # A _validator_ is responsible for validating a model. There may be different versions of validation available
15
+ # for one and the same model; e.g. different semantics for different puppet versions, or different types of
16
+ # validation configuration depending on the context/type of validation that should be performed (static, vs. runtime, etc.).
17
+ #
18
+ # This class is abstract and must be subclassed. The subclass must implement the methods
19
+ # {#label_provider} and {#checker}. It is also expected that the sublcass will override
20
+ # the severity_producer and configure the issues that should be reported as errors (i.e. if they should be ignored, produce
21
+ # a warning, or a deprecation warning).
22
+ #
23
+ # @abstract Subclass must implement {#checker}, and {#label_provider}
24
+ # @api public
25
+ #
26
+ class Factory
27
+
28
+ # Produces a validator with the given acceptor as the recipient of produced diagnostics.
29
+ # The acceptor is where detected issues are received (and typically collected).
30
+ #
31
+ # @param acceptor [Acceptor] the acceptor is the receiver of all detected issues
32
+ # @return [#validate] a validator responding to `validate(model)`
33
+ #
34
+ # @api public
35
+ #
36
+ def validator(acceptor)
37
+ checker(diagnostic_producer(acceptor))
38
+ end
39
+
40
+ # Produces the diagnostics producer to use given an acceptor of issues.
41
+ #
42
+ # @param acceptor [Acceptor] the acceptor is the receiver of all detected issues
43
+ # @return [DiagnosticProducer] a detector of issues
44
+ #
45
+ # @api public
46
+ #
47
+ def diagnostic_producer(acceptor)
48
+ Puppet::Pops::Validation::DiagnosticProducer.new(acceptor, severity_producer(), label_provider())
49
+ end
50
+
51
+ # Produces the SeverityProducer to use
52
+ # Subclasses should implement and add specific overrides
53
+ #
54
+ # @return [SeverityProducer] a severity producer producing error, warning or ignore per issue
55
+ #
56
+ # @api public
57
+ #
58
+ def severity_producer
59
+ Puppet::Pops::Validation::SeverityProducer.new
60
+ end
61
+
62
+ # Produces the checker to use.
63
+ #
64
+ # @abstract
65
+ #
66
+ # @api public
67
+ #
68
+ def checker(diagnostic_producer)
69
+ raise NoMethodError, "checker"
70
+ end
71
+
72
+ # Produces the label provider to use.
73
+ #
74
+ # @abstract
75
+ #
76
+ # @api public
77
+ #
78
+ def label_provider
79
+ raise NoMethodError, "label_provider"
80
+ end
81
+ end
82
+
83
+ # Decides on the severity of a given issue.
84
+ # The produced severity is one of `:error`, `:warning`, or `:ignore`.
85
+ # By default, a severity of `:error` is produced for all issues. To configure the severity
86
+ # of an issue call `#severity=(issue, level)`.
87
+ #
88
+ # @return [Symbol] a symbol representing the severity `:error`, `:warning`, or `:ignore`
89
+ #
90
+ # @api public
91
+ #
92
+ class SeverityProducer
93
+ @@severity_hash = {:ignore => true, :warning => true, :error => true, :deprecation => true }
94
+
95
+ # Creates a new instance where all issues are diagnosed as :error unless overridden.
96
+ # @api public
97
+ #
98
+ def initialize
99
+ # If diagnose is not set, the default is returned by the block
100
+ @severities = Hash.new :error
101
+ end
102
+
103
+ # Returns the severity of the given issue.
104
+ # @return [Symbol] severity level :error, :warning, or :ignore
105
+ # @api public
106
+ #
107
+ def severity(issue)
108
+ assert_issue(issue)
109
+ @severities[issue]
110
+ end
111
+
112
+ # @see {#severity}
113
+ # @api public
114
+ #
115
+ def [] issue
116
+ severity issue
117
+ end
118
+
119
+ # Override a default severity with the given severity level.
120
+ #
121
+ # @param issue [Puppet::Pops::Issues::Issue] the issue for which to set severity
122
+ # @param level [Symbol] the severity level (:error, :warning, or :ignore).
123
+ # @api public
124
+ #
125
+ def []=(issue, level)
126
+ raise Puppet::DevError.new("Attempt to set validation severity for something that is not an Issue. (Got #{issue.class})") unless issue.is_a? Puppet::Pops::Issues::Issue
127
+ raise Puppet::DevError.new("Illegal severity level: #{option}") unless @@severity_hash[level]
128
+ raise Puppet::DevError.new("Attempt to demote the hard issue '#{issue.issue_code}' to #{level}") unless issue.demotable? || level == :error
129
+ @severities[issue] = level
130
+ end
131
+
132
+ # Returns `true` if the issue should be reported or not.
133
+ # @return [Boolean] this implementation returns true for errors and warnings
134
+ #
135
+ # @api public
136
+ #
137
+ def should_report? issue
138
+ diagnose = @severities[issue]
139
+ diagnose == :error || diagnose == :warning || diagnose == :deprecation
140
+ end
141
+
142
+ # Checks if the given issue is valid.
143
+ # @api private
144
+ #
145
+ def assert_issue issue
146
+ raise Puppet::DevError.new("Attempt to get validation severity for something that is not an Issue. (Got #{issue.class})") unless issue.is_a? Puppet::Pops::Issues::Issue
147
+ end
148
+
149
+ # Checks if the given severity level is valid.
150
+ # @api private
151
+ #
152
+ def assert_severity level
153
+ raise Puppet::DevError.new("Illegal severity level: #{option}") unless @@severity_hash[level]
154
+ end
155
+ end
156
+
157
+ # A producer of diagnostics.
158
+ # An producer of diagnostics is given each issue occurrence as they are found by a diagnostician/validator. It then produces
159
+ # a Diagnostic, which it passes on to a configured Acceptor.
160
+ #
161
+ # This class exists to aid a diagnostician/validator which will typically first check if a particular issue
162
+ # will be accepted at all (before checking for an occurrence of the issue; i.e. to perform check avoidance for expensive checks).
163
+ # A validator passes an instance of Issue, the semantic object (the "culprit"), a hash with arguments, and an optional
164
+ # exception. The semantic object is used to determine the location of the occurrence of the issue (file/line), and it
165
+ # sets keys in the given argument hash that may be used in the formatting of the issue message.
166
+ #
167
+ class DiagnosticProducer
168
+
169
+ # A producer of severity for a given issue
170
+ # @return [SeverityProducer]
171
+ #
172
+ attr_reader :severity_producer
173
+
174
+ # A producer of labels for objects involved in the issue
175
+ # @return [LabelProvider]
176
+ #
177
+ attr_reader :label_provider
178
+ # Initializes this producer.
179
+ #
180
+ # @param acceptor [Acceptor] a sink/collector of diagnostic results
181
+ # @param severity_producer [SeverityProducer] the severity producer to use to determine severity of a given issue
182
+ # @param label_provider [LabelProvider] a provider of model element type to human readable label
183
+ #
184
+ def initialize(acceptor, severity_producer, label_provider)
185
+ @acceptor = acceptor
186
+ @severity_producer = severity_producer
187
+ @label_provider = label_provider
188
+ end
189
+
190
+ def accept(issue, semantic, arguments={}, except=nil)
191
+ return unless will_accept? issue
192
+
193
+ # Set label provider unless caller provided a special label provider
194
+ arguments[:label] ||= @label_provider
195
+ arguments[:semantic] ||= semantic
196
+
197
+ # A detail message is always provided, but is blank by default.
198
+ # TODO: this support is questionable, it requires knowledge that :detail is special
199
+ arguments[:detail] ||= ''
200
+
201
+ source_pos = Puppet::Pops::Utils.find_closest_positioned(semantic)
202
+ file = source_pos ? source_pos.locator.file : nil
203
+
204
+ severity = @severity_producer.severity(issue)
205
+ @acceptor.accept(Diagnostic.new(severity, issue, file, source_pos, arguments, except))
206
+ end
207
+
208
+ def will_accept? issue
209
+ @severity_producer.should_report? issue
210
+ end
211
+ end
212
+
213
+ class Diagnostic
214
+ attr_reader :severity
215
+ attr_reader :issue
216
+ attr_reader :arguments
217
+ attr_reader :exception
218
+ attr_reader :file
219
+ attr_reader :source_pos
220
+ def initialize severity, issue, file, source_pos, arguments={}, exception=nil
221
+ @severity = severity
222
+ @issue = issue
223
+ @file = file
224
+ @source_pos = source_pos
225
+ @arguments = arguments
226
+ # TODO: Currently unused, the intention is to provide more information (stack backtrace, etc.) when
227
+ # debugging or similar - this to catch internal problems reported as higher level issues.
228
+ @exception = exception
229
+ end
230
+ end
231
+
232
+ # Formats a diagnostic for output.
233
+ # Produces a diagnostic output typical for a compiler (suitable for interpretation by tools)
234
+ # The format is:
235
+ # `file:line:pos: Message`, where pos, line and file are included if available.
236
+ #
237
+ class DiagnosticFormatter
238
+ def format diagnostic
239
+ "#{loc(diagnostic)} #{format_severity(diagnostic)}#{format_message(diagnostic)}"
240
+ end
241
+
242
+ def format_message diagnostic
243
+ diagnostic.issue.format(diagnostic.arguments)
244
+ end
245
+
246
+ # This produces "Deprecation notice: " prefix if the diagnostic has :deprecation severity, otherwise "".
247
+ # The idea is that all other diagnostics are emitted with the methods Puppet.err (or an exception), and
248
+ # Puppet.warning.
249
+ # @note Note that it is not a good idea to use Puppet.deprecation_warning as it is for internal deprecation.
250
+ #
251
+ def format_severity diagnostic
252
+ diagnostic.severity == :deprecation ? "Deprecation notice: " : ""
253
+ end
254
+
255
+ def format_location diagnostic
256
+ file = diagnostic.file
257
+ file = (file.is_a?(String) && file.empty?) ? nil : file
258
+ line = pos = nil
259
+ if diagnostic.source_pos
260
+ line = diagnostic.source_pos.line
261
+ pos = diagnostic.source_pos.pos
262
+ end
263
+ if file && line && pos
264
+ "#{file}:#{line}:#{pos}:"
265
+ elsif file && line
266
+ "#{file}:#{line}:"
267
+ elsif file
268
+ "#{file}:"
269
+ else
270
+ ""
271
+ end
272
+ end
273
+ end
274
+
275
+ # Produces a diagnostic output in the "puppet style", where the location is appended with an "at ..." if the
276
+ # location is known.
277
+ #
278
+ class DiagnosticFormatterPuppetStyle < DiagnosticFormatter
279
+ def format diagnostic
280
+ if (location = format_location diagnostic) != ""
281
+ "#{format_severity(diagnostic)}#{format_message(diagnostic)}#{location}"
282
+ else
283
+ format_message(diagnostic)
284
+ end
285
+ end
286
+
287
+ # The somewhat (machine) unusable format in current use by puppet.
288
+ # have to be used here for backwards compatibility.
289
+ def format_location diagnostic
290
+ file = diagnostic.file
291
+ file = (file.is_a?(String) && file.empty?) ? nil : file
292
+ line = pos = nil
293
+ if diagnostic.source_pos
294
+ line = diagnostic.source_pos.line
295
+ pos = diagnostic.source_pos.pos
296
+ end
297
+
298
+ if file && line && pos
299
+ " at #{file}:#{line}:#{pos}"
300
+ elsif file and line
301
+ " at #{file}:#{line}"
302
+ elsif line && pos
303
+ " at line #{line}:#{pos}"
304
+ elsif line
305
+ " at line #{line}"
306
+ elsif file
307
+ " in #{file}"
308
+ else
309
+ ""
310
+ end
311
+ end
312
+ end
313
+
314
+ # An acceptor of diagnostics.
315
+ # An acceptor of diagnostics is given each issue as they are found by a diagnostician/validator. An
316
+ # acceptor can collect all found issues, or decide to collect a few and then report, or give up as the first issue
317
+ # if found.
318
+ # This default implementation collects all diagnostics in the order they are produced, and can then
319
+ # answer questions about what was diagnosed.
320
+ #
321
+ class Acceptor
322
+
323
+ # All diagnostic in the order they were issued
324
+ attr_reader :diagnostics
325
+
326
+ # The number of :warning severity issues + number of :deprecation severity issues
327
+ attr_reader :warning_count
328
+
329
+ # The number of :error severity issues
330
+ attr_reader :error_count
331
+ # Initializes this diagnostics acceptor.
332
+ # By default, the acceptor is configured with a default severity producer.
333
+ # @param severity_producer [SeverityProducer] the severity producer to use to determine severity of an issue
334
+ #
335
+ # TODO add semantic_label_provider
336
+ #
337
+ def initialize()
338
+ @diagnostics = []
339
+ @error_count = 0
340
+ @warning_count = 0
341
+ end
342
+
343
+ # Returns true when errors have been diagnosed.
344
+ def errors?
345
+ @error_count > 0
346
+ end
347
+
348
+ # Returns true when warnings have been diagnosed.
349
+ def warnings?
350
+ @warning_count > 0
351
+ end
352
+
353
+ # Returns true when errors and/or warnings have been diagnosed.
354
+ def errors_or_warnings?
355
+ errors? || warnings?
356
+ end
357
+
358
+ # Returns the diagnosed errors in the order thwy were reported.
359
+ def errors
360
+ @diagnostics.select {|d| d.severity == :error }
361
+ end
362
+
363
+ # Returns the diagnosed warnings in the order thwy were reported.
364
+ # (This includes :warning and :deprecation severity)
365
+ def warnings
366
+ @diagnostics.select {|d| d.severity == :warning || d.severity == :deprecation }
367
+ end
368
+
369
+ def errors_and_warnings
370
+ @diagnostics.select {|d| d.severity != :ignore }
371
+ end
372
+
373
+ # Returns the ignored diagnostics in the order thwy were reported (if reported at all)
374
+ def ignored
375
+ @diagnostics.select {|d| d.severity == :ignore }
376
+ end
377
+
378
+ # Add a diagnostic, or all diagnostics from another acceptor to the set of diagnostics
379
+ # @param diagnostic [Puppet::Pops::Validation::Diagnostic, Puppet::Pops::Validation::Acceptor] diagnostic(s) that should be accepted
380
+ def accept(diagnostic)
381
+ if diagnostic.is_a?(Acceptor)
382
+ diagnostic.diagnostics.each {|d| self.send(d.severity, d)}
383
+ else
384
+ self.send(diagnostic.severity, diagnostic)
385
+ end
386
+ end
387
+
388
+ # Prunes the contain diagnostics by removing those for which the given block returns true.
389
+ # The internal statistics is updated as a consequence of removing.
390
+ # @return [Array<Puppet::Pops::Validation::Diagnostic, nil] the removed set of diagnostics or nil if nothing was removed
391
+ #
392
+ def prune(&block)
393
+ removed = []
394
+ @diagnostics.delete_if do |d|
395
+ if should_remove = yield(d)
396
+ removed << d
397
+ end
398
+ should_remove
399
+ end
400
+ removed.each do |d|
401
+ case d.severity
402
+ when :error
403
+ @error_count -= 1
404
+ when :warning
405
+ @warning_count -= 1
406
+ # there is not ignore_count
407
+ end
408
+ end
409
+ removed.empty? ? nil : removed
410
+ end
411
+
412
+ private
413
+
414
+ def ignore diagnostic
415
+ @diagnostics << diagnostic
416
+ end
417
+
418
+ def error diagnostic
419
+ @diagnostics << diagnostic
420
+ @error_count += 1
421
+ end
422
+
423
+ def warning diagnostic
424
+ @diagnostics << diagnostic
425
+ @warning_count += 1
426
+ end
427
+
428
+ def deprecation diagnostic
429
+ warning diagnostic
430
+ end
431
+ end
432
+ end
@@ -0,0 +1,558 @@
1
+ # A Validator validates a model.
2
+ #
3
+ # Validation is performed on each model element in isolation. Each method should validate the model element's state
4
+ # but not validate its referenced/contained elements except to check their validity in their respective role.
5
+ # The intent is to drive the validation with a tree iterator that visits all elements in a model.
6
+ #
7
+ #
8
+ # TODO: Add validation of multiplicities - this is a general validation that can be checked for all
9
+ # Model objects via their metamodel. (I.e an extra call to multiplicity check in polymorph check).
10
+ # This is however mostly valuable when validating model to model transformations, and is therefore T.B.D
11
+ #
12
+ class Puppet::Pops::Validation::Checker3_1
13
+ Issues = Puppet::Pops::Issues
14
+ Model = Puppet::Pops::Model
15
+
16
+ attr_reader :acceptor
17
+ # Initializes the validator with a diagnostics producer. This object must respond to
18
+ # `:will_accept?` and `:accept`.
19
+ #
20
+ def initialize(diagnostics_producer)
21
+ @@check_visitor ||= Puppet::Pops::Visitor.new(nil, "check", 0, 0)
22
+ @@rvalue_visitor ||= Puppet::Pops::Visitor.new(nil, "rvalue", 0, 0)
23
+ @@hostname_visitor ||= Puppet::Pops::Visitor.new(nil, "hostname", 1, 2)
24
+ @@assignment_visitor ||= Puppet::Pops::Visitor.new(nil, "assign", 0, 1)
25
+ @@query_visitor ||= Puppet::Pops::Visitor.new(nil, "query", 0, 0)
26
+ @@top_visitor ||= Puppet::Pops::Visitor.new(nil, "top", 1, 1)
27
+ @@relation_visitor ||= Puppet::Pops::Visitor.new(nil, "relation", 1, 1)
28
+
29
+ @acceptor = diagnostics_producer
30
+ end
31
+
32
+ # Validates the entire model by visiting each model element and calling `check`.
33
+ # The result is collected (or acted on immediately) by the configured diagnostic provider/acceptor
34
+ # given when creating this Checker.
35
+ #
36
+ def validate(model)
37
+ # tree iterate the model, and call check for each element
38
+ check(model)
39
+ model.eAllContents.each {|m| check(m) }
40
+ end
41
+
42
+ # Performs regular validity check
43
+ def check(o)
44
+ @@check_visitor.visit_this_0(self, o)
45
+ end
46
+
47
+ # Performs check if this is a vaid hostname expression
48
+ # @param single_feature_name [String, nil] the name of a single valued hostname feature of the value's container. e.g. 'parent'
49
+ def hostname(o, semantic, single_feature_name = nil)
50
+ @@hostname_visitor.visit_this_2(self, o, semantic, single_feature_name)
51
+ end
52
+
53
+ # Performs check if this is valid as a query
54
+ def query(o)
55
+ @@query_visitor.visit_this_0(self, o)
56
+ end
57
+
58
+ # Performs check if this is valid as a relationship side
59
+ def relation(o, container)
60
+ @@relation_visitor.visit_this_1(self, o, container)
61
+ end
62
+
63
+ # Performs check if this is valid as a rvalue
64
+ def rvalue(o)
65
+ @@rvalue_visitor.visit_this_0(self, o)
66
+ end
67
+
68
+ # Performs check if this is valid as a container of a definition (class, define, node)
69
+ def top(o, definition)
70
+ @@top_visitor.visit_this_1(self, o, definition)
71
+ end
72
+
73
+ # Checks the LHS of an assignment (is it assignable?).
74
+ # If args[0] is true, assignment via index is checked.
75
+ #
76
+ def assign(o, via_index = false)
77
+ @@assignment_visitor.visit_this_1(self, o, via_index)
78
+ end
79
+
80
+ #---ASSIGNMENT CHECKS
81
+
82
+ def assign_VariableExpression(o, via_index)
83
+ varname_string = varname_to_s(o.expr)
84
+ if varname_string =~ /^[0-9]+$/
85
+ acceptor.accept(Issues::ILLEGAL_NUMERIC_ASSIGNMENT, o, :varname => varname_string)
86
+ end
87
+ # Can not assign to something in another namespace (i.e. a '::' in the name is not legal)
88
+ if acceptor.will_accept? Issues::CROSS_SCOPE_ASSIGNMENT
89
+ if varname_string =~ /::/
90
+ acceptor.accept(Issues::CROSS_SCOPE_ASSIGNMENT, o, :name => varname_string)
91
+ end
92
+ end
93
+ # TODO: Could scan for reassignment of the same variable if done earlier in the same container
94
+ # Or if assigning to a parameter (more work).
95
+ # TODO: Investigate if there are invalid cases for += assignment
96
+ end
97
+
98
+ def assign_AccessExpression(o, via_index)
99
+ # Are indexed assignments allowed at all ? $x[x] = '...'
100
+ if acceptor.will_accept? Issues::ILLEGAL_INDEXED_ASSIGNMENT
101
+ acceptor.accept(Issues::ILLEGAL_INDEXED_ASSIGNMENT, o)
102
+ else
103
+ # Then the left expression must be assignable-via-index
104
+ assign(o.left_expr, true)
105
+ end
106
+ end
107
+
108
+ def assign_Object(o, via_index)
109
+ # Can not assign to anything else (differentiate if this is via index or not)
110
+ # i.e. 10 = 'hello' vs. 10['x'] = 'hello' (the root is reported as being in error in both cases)
111
+ #
112
+ acceptor.accept(via_index ? Issues::ILLEGAL_ASSIGNMENT_VIA_INDEX : Issues::ILLEGAL_ASSIGNMENT, o)
113
+ end
114
+
115
+ #---CHECKS
116
+
117
+ def check_Object(o)
118
+ end
119
+
120
+ def check_Factory(o)
121
+ check(o.current)
122
+ end
123
+
124
+ def check_AccessExpression(o)
125
+ # Check multiplicity of keys
126
+ case o.left_expr
127
+ when Model::QualifiedName
128
+ # allows many keys, but the name should really be a QualifiedReference
129
+ acceptor.accept(Issues::DEPRECATED_NAME_AS_TYPE, o, :name => o.left_expr.value)
130
+ when Model::QualifiedReference
131
+ # ok, allows many - this is a resource reference
132
+
133
+ else
134
+ # i.e. for any other expression that may produce an array or hash
135
+ if o.keys.size > 1
136
+ acceptor.accept(Issues::UNSUPPORTED_RANGE, o, :count => o.keys.size)
137
+ end
138
+ if o.keys.size < 1
139
+ acceptor.accept(Issues::MISSING_INDEX, o)
140
+ end
141
+ end
142
+ end
143
+
144
+ def check_AssignmentExpression(o)
145
+ acceptor.accept(Issues::UNSUPPORTED_OPERATOR, o, {:operator => o.operator}) unless [:'=', :'+='].include? o.operator
146
+ assign(o.left_expr)
147
+ rvalue(o.right_expr)
148
+ end
149
+
150
+ # Checks that operation with :+> is contained in a ResourceOverride or Collector.
151
+ #
152
+ # Parent of an AttributeOperation can be one of:
153
+ # * CollectExpression
154
+ # * ResourceOverride
155
+ # * ResourceBody (ILLEGAL this is a regular resource expression)
156
+ # * ResourceDefaults (ILLEGAL)
157
+ #
158
+ def check_AttributeOperation(o)
159
+ if o.operator == :'+>'
160
+ # Append operator use is constrained
161
+ parent = o.eContainer
162
+ unless parent.is_a?(Model::CollectExpression) || parent.is_a?(Model::ResourceOverrideExpression)
163
+ acceptor.accept(Issues::ILLEGAL_ATTRIBUTE_APPEND, o, {:name=>o.attribute_name, :parent=>parent})
164
+ end
165
+ end
166
+ rvalue(o.value_expr)
167
+ end
168
+
169
+ def check_BinaryExpression(o)
170
+ rvalue(o.left_expr)
171
+ rvalue(o.right_expr)
172
+ end
173
+
174
+ def check_CallNamedFunctionExpression(o)
175
+ unless o.functor_expr.is_a? Model::QualifiedName
176
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o.functor_expr, :feature => 'function name', :container => o)
177
+ end
178
+ end
179
+
180
+ def check_MethodCallExpression(o)
181
+ unless o.functor_expr.is_a? Model::QualifiedName
182
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o.functor_expr, :feature => 'function name', :container => o)
183
+ end
184
+ end
185
+
186
+ def check_CaseExpression(o)
187
+ # There should only be one LiteralDefault case option value
188
+ # TODO: Implement this check
189
+ end
190
+
191
+ def check_CollectExpression(o)
192
+ unless o.type_expr.is_a? Model::QualifiedReference
193
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o.type_expr, :feature=> 'type name', :container => o)
194
+ end
195
+
196
+ # If a collect expression tries to collect exported resources and storeconfigs is not on
197
+ # then it will not work... This was checked in the parser previously. This is a runtime checking
198
+ # thing as opposed to a language thing.
199
+ if acceptor.will_accept?(Issues::RT_NO_STORECONFIGS) && o.query.is_a?(Model::ExportedQuery)
200
+ acceptor.accept(Issues::RT_NO_STORECONFIGS, o)
201
+ end
202
+ end
203
+
204
+ # Only used for function names, grammar should not be able to produce something faulty, but
205
+ # check anyway if model is created programatically (it will fail in transformation to AST for sure).
206
+ def check_NamedAccessExpression(o)
207
+ name = o.right_expr
208
+ unless name.is_a? Model::QualifiedName
209
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, name, :feature=> 'function name', :container => o.eContainer)
210
+ end
211
+ end
212
+
213
+ # for 'class' and 'define'
214
+ def check_NamedDefinition(o)
215
+ top(o.eContainer, o)
216
+ if (acceptor.will_accept? Issues::NAME_WITH_HYPHEN) && o.name.include?('-')
217
+ acceptor.accept(Issues::NAME_WITH_HYPHEN, o, {:name => o.name})
218
+ end
219
+ end
220
+
221
+ def check_ImportExpression(o)
222
+ o.files.each do |f|
223
+ unless f.is_a? Model::LiteralString
224
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, f, :feature => 'file name', :container => o)
225
+ end
226
+ end
227
+ end
228
+
229
+ def check_InstanceReference(o)
230
+ # TODO: Original warning is :
231
+ # Puppet.warning addcontext("Deprecation notice: Resource references should now be capitalized")
232
+ # This model element is not used in the egrammar.
233
+ # Either implement checks or deprecate the use of InstanceReference (the same is acheived by
234
+ # transformation of AccessExpression when used where an Instance/Resource reference is allowed.
235
+ #
236
+ end
237
+
238
+ # Restrictions on hash key are because of the strange key comparisons/and merge rules in the AST evaluation
239
+ # (Even the allowed ones are handled in a strange way).
240
+ #
241
+ def transform_KeyedEntry(o)
242
+ case o.key
243
+ when Model::QualifiedName
244
+ when Model::LiteralString
245
+ when Model::LiteralNumber
246
+ when Model::ConcatenatedString
247
+ else
248
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o.key, :feature => 'hash key', :container => o.eContainer)
249
+ end
250
+ end
251
+
252
+ # A Lambda is a Definition, but it may appear in other scopes that top scope (Which check_Definition asserts).
253
+ #
254
+ def check_LambdaExpression(o)
255
+ end
256
+
257
+ def check_NodeDefinition(o)
258
+ # Check that hostnames are valid hostnames (or regular expressons)
259
+ hostname(o.host_matches, o)
260
+ hostname(o.parent, o, 'parent') unless o.parent.nil?
261
+ top(o.eContainer, o)
262
+ end
263
+
264
+ # No checking takes place - all expressions using a QualifiedName need to check. This because the
265
+ # rules are slightly different depending on the container (A variable allows a numeric start, but not
266
+ # other names). This means that (if the lexer/parser so chooses) a QualifiedName
267
+ # can be anything when it represents a Bare Word and evaluates to a String.
268
+ #
269
+ def check_QualifiedName(o)
270
+ end
271
+
272
+ # Checks that the value is a valid UpperCaseWord (a CLASSREF), and optionally if it contains a hypen.
273
+ # DOH: QualifiedReferences are created with LOWER CASE NAMES at parse time
274
+ def check_QualifiedReference(o)
275
+ # Is this a valid qualified name?
276
+ if o.value !~ Puppet::Pops::Patterns::CLASSREF
277
+ acceptor.accept(Issues::ILLEGAL_CLASSREF, o, {:name=>o.value})
278
+ elsif (acceptor.will_accept? Issues::NAME_WITH_HYPHEN) && o.value.include?('-')
279
+ acceptor.accept(Issues::NAME_WITH_HYPHEN, o, {:name => o.value})
280
+ end
281
+ end
282
+
283
+ def check_QueryExpression(o)
284
+ query(o.expr) if o.expr # is optional
285
+ end
286
+
287
+ def relation_Object(o, rel_expr)
288
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o, {:feature => o.eContainingFeature, :container => rel_expr})
289
+ end
290
+
291
+ def relation_AccessExpression(o, rel_expr); end
292
+
293
+ def relation_CollectExpression(o, rel_expr); end
294
+
295
+ def relation_VariableExpression(o, rel_expr); end
296
+
297
+ def relation_LiteralString(o, rel_expr); end
298
+
299
+ def relation_ConcatenatedStringExpression(o, rel_expr); end
300
+
301
+ def relation_SelectorExpression(o, rel_expr); end
302
+
303
+ def relation_CaseExpression(o, rel_expr); end
304
+
305
+ def relation_ResourceExpression(o, rel_expr); end
306
+
307
+ def relation_RelationshipExpression(o, rel_expr); end
308
+
309
+ def check_Parameter(o)
310
+ if o.name =~ /^[0-9]+$/
311
+ acceptor.accept(Issues::ILLEGAL_NUMERIC_PARAMETER, o, :name => o.name)
312
+ end
313
+ end
314
+
315
+ #relationship_side: resource
316
+ # | resourceref
317
+ # | collection
318
+ # | variable
319
+ # | quotedtext
320
+ # | selector
321
+ # | casestatement
322
+ # | hasharrayaccesses
323
+
324
+ def check_RelationshipExpression(o)
325
+ relation(o.left_expr, o)
326
+ relation(o.right_expr, o)
327
+ end
328
+
329
+ def check_ResourceExpression(o)
330
+ # A resource expression must have a lower case NAME as its type e.g. 'file { ... }'
331
+ unless o.type_name.is_a? Model::QualifiedName
332
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o.type_name, :feature => 'resource type', :container => o)
333
+ end
334
+
335
+ # This is a runtime check - the model is valid, but will have runtime issues when evaluated
336
+ # and storeconfigs is not set.
337
+ if acceptor.will_accept?(Issues::RT_NO_STORECONFIGS) && o.exported
338
+ acceptor.accept(Issues::RT_NO_STORECONFIGS_EXPORT, o)
339
+ end
340
+ end
341
+
342
+ def check_ResourceDefaultsExpression(o)
343
+ if o.form && o.form != :regular
344
+ acceptor.accept(Issues::NOT_VIRTUALIZEABLE, o)
345
+ end
346
+ end
347
+
348
+ # Transformation of SelectorExpression is limited to certain types of expressions.
349
+ # This is probably due to constraints in the old grammar rather than any real concerns.
350
+ def select_SelectorExpression(o)
351
+ case o.left_expr
352
+ when Model::CallNamedFunctionExpression
353
+ when Model::AccessExpression
354
+ when Model::VariableExpression
355
+ when Model::ConcatenatedString
356
+ else
357
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o.left_expr, :feature => 'left operand', :container => o)
358
+ end
359
+ end
360
+
361
+ def check_UnaryExpression(o)
362
+ rvalue(o.expr)
363
+ end
364
+
365
+ def check_UnlessExpression(o)
366
+ # TODO: Unless may not have an elsif
367
+ # TODO: 3.x unless may not have an else
368
+ end
369
+
370
+ def check_VariableExpression(o)
371
+ # The expression must be a qualified name
372
+ if !o.expr.is_a? Model::QualifiedName
373
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o, :feature => 'name', :container => o)
374
+ else
375
+ # Note, that if it later becomes illegal with hyphen in any name, this special check
376
+ # can be skipped in favor of the check in QualifiedName, which is now not done if contained in
377
+ # a VariableExpression
378
+ name = o.expr.value
379
+ if (acceptor.will_accept? Issues::VAR_WITH_HYPHEN) && name.include?('-')
380
+ acceptor.accept(Issues::VAR_WITH_HYPHEN, o, {:name => name})
381
+ end
382
+ end
383
+ end
384
+
385
+ #--- HOSTNAME CHECKS
386
+
387
+ # Transforms Array of host matching expressions into a (Ruby) array of AST::HostName
388
+ def hostname_Array(o, semantic, single_feature_name)
389
+ if single_feature_name
390
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o, {:feature=>single_feature_name, :container=>semantic})
391
+ end
392
+ o.each {|x| hostname(x, semantic, false) }
393
+ end
394
+
395
+ def hostname_String(o, semantic, single_feature_name)
396
+ # The 3.x checker only checks for illegal characters - if matching /[^-\w.]/ the name is invalid,
397
+ # but this allows pathological names like "a..b......c", "----"
398
+ # TODO: Investigate if more illegal hostnames should be flagged.
399
+ #
400
+ if o =~ Puppet::Pops::Patterns::ILLEGAL_HOSTNAME_CHARS
401
+ acceptor.accept(Issues::ILLEGAL_HOSTNAME_CHARS, semantic, :hostname => o)
402
+ end
403
+ end
404
+
405
+ def hostname_LiteralValue(o, semantic, single_feature_name)
406
+ hostname_String(o.value.to_s, o, single_feature_name)
407
+ end
408
+
409
+ def hostname_ConcatenatedString(o, semantic, single_feature_name)
410
+ # Puppet 3.1. only accepts a concatenated string without interpolated expressions
411
+ if the_expr = o.segments.index {|s| s.is_a?(Model::TextExpression) }
412
+ acceptor.accept(Issues::ILLEGAL_HOSTNAME_INTERPOLATION, o.segments[the_expr].expr)
413
+ elsif o.segments.size() != 1
414
+ # corner case, bad model, concatenation of several plain strings
415
+ acceptor.accept(Issues::ILLEGAL_HOSTNAME_INTERPOLATION, o)
416
+ else
417
+ # corner case, may be ok, but lexer may have replaced with plain string, this is
418
+ # here if it does not
419
+ hostname_String(o.segments[0], o.segments[0], false)
420
+ end
421
+ end
422
+
423
+ def hostname_QualifiedName(o, semantic, single_feature_name)
424
+ hostname_String(o.value.to_s, o, single_feature_name)
425
+ end
426
+
427
+ def hostname_QualifiedReference(o, semantic, single_feature_name)
428
+ hostname_String(o.value.to_s, o, single_feature_name)
429
+ end
430
+
431
+ def hostname_LiteralNumber(o, semantic, single_feature_name)
432
+ # always ok
433
+ end
434
+
435
+ def hostname_LiteralDefault(o, semantic, single_feature_name)
436
+ # always ok
437
+ end
438
+
439
+ def hostname_LiteralRegularExpression(o, semantic, single_feature_name)
440
+ # always ok
441
+ end
442
+
443
+ def hostname_Object(o, semantic, single_feature_name)
444
+ acceptor.accept(Issues::ILLEGAL_EXPRESSION, o, {:feature=> single_feature_name || 'hostname', :container=>semantic})
445
+ end
446
+
447
+ #---QUERY CHECKS
448
+
449
+ # Anything not explicitly allowed is flagged as error.
450
+ def query_Object(o)
451
+ acceptor.accept(Issues::ILLEGAL_QUERY_EXPRESSION, o)
452
+ end
453
+
454
+ # Puppet AST only allows == and !=
455
+ #
456
+ def query_ComparisonExpression(o)
457
+ acceptor.accept(Issues::ILLEGAL_QUERY_EXPRESSION, o) unless [:'==', :'!='].include? o.operator
458
+ end
459
+
460
+ # Allows AND, OR, and checks if left/right are allowed in query.
461
+ def query_BooleanExpression(o)
462
+ query o.left_expr
463
+ query o.right_expr
464
+ end
465
+
466
+ def query_ParenthesizedExpression(o)
467
+ query(o.expr)
468
+ end
469
+
470
+ def query_VariableExpression(o); end
471
+
472
+ def query_QualifiedName(o); end
473
+
474
+ def query_LiteralNumber(o); end
475
+
476
+ def query_LiteralString(o); end
477
+
478
+ def query_LiteralBoolean(o); end
479
+
480
+ #---RVALUE CHECKS
481
+
482
+ # By default, all expressions are reported as being rvalues
483
+ # Implement specific rvalue checks for those that are not.
484
+ #
485
+ def rvalue_Expression(o); end
486
+
487
+ def rvalue_ImportExpression(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
488
+
489
+ def rvalue_BlockExpression(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
490
+
491
+ def rvalue_CaseExpression(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
492
+
493
+ def rvalue_IfExpression(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
494
+
495
+ def rvalue_UnlessExpression(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
496
+
497
+ def rvalue_ResourceExpression(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
498
+
499
+ def rvalue_ResourceDefaultsExpression(o); acceptor.accept(Issues::NOT_RVALUE, o) ; end
500
+
501
+ def rvalue_ResourceOverrideExpression(o); acceptor.accept(Issues::NOT_RVALUE, o) ; end
502
+
503
+ def rvalue_CollectExpression(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
504
+
505
+ def rvalue_Definition(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
506
+
507
+ def rvalue_NodeDefinition(o) ; acceptor.accept(Issues::NOT_RVALUE, o) ; end
508
+
509
+ def rvalue_UnaryExpression(o) ; rvalue o.expr ; end
510
+
511
+ #---TOP CHECK
512
+
513
+ def top_NilClass(o, definition)
514
+ # ok, reached the top, no more parents
515
+ end
516
+
517
+ def top_Object(o, definition)
518
+ # fail, reached a container that is not top level
519
+ acceptor.accept(Issues::NOT_TOP_LEVEL, definition)
520
+ end
521
+
522
+ def top_BlockExpression(o, definition)
523
+ # ok, if this is a block representing the body of a class, or is top level
524
+ top o.eContainer, definition
525
+ end
526
+
527
+ def top_HostClassDefinition(o, definition)
528
+ # ok, stop scanning parents
529
+ end
530
+
531
+ def top_Program(o, definition)
532
+ # ok
533
+ end
534
+
535
+ # A LambdaExpression is a BlockExpression, and this method is needed to prevent the polymorph method for BlockExpression
536
+ # to accept a lambda.
537
+ # A lambda can not iteratively create classes, nodes or defines as the lambda does not have a closure.
538
+ #
539
+ def top_LambdaExpression(o, definition)
540
+ # fail, stop scanning parents
541
+ acceptor.accept(Issues::NOT_TOP_LEVEL, definition)
542
+ end
543
+
544
+ #--- NON POLYMORPH, NON CHECKING CODE
545
+
546
+ # Produces string part of something named, or nil if not a QualifiedName or QualifiedReference
547
+ #
548
+ def varname_to_s(o)
549
+ case o
550
+ when Model::QualifiedName
551
+ o.value
552
+ when Model::QualifiedReference
553
+ o.value
554
+ else
555
+ nil
556
+ end
557
+ end
558
+ end