bolt 0.0.1 → 0.5.0

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

Potentially problematic release.


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

Files changed (1291) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +33 -0
  3. data/.gitmodules +12 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +61 -0
  6. data/.travis.yml +18 -0
  7. data/Gemfile +9 -0
  8. data/INSTALL.md +70 -0
  9. data/LICENSE +201 -0
  10. data/README.md +372 -0
  11. data/Rakefile +27 -0
  12. data/Vagrantfile +13 -0
  13. data/appveyor.yml +29 -0
  14. data/bolt.gemspec +50 -0
  15. data/docs/writing_tasks_and_plans.pdf +0 -0
  16. data/exe/bolt +15 -0
  17. data/lib/bolt.rb +13 -0
  18. data/lib/bolt/cli.rb +409 -0
  19. data/lib/bolt/executor.rb +71 -0
  20. data/lib/bolt/node.rb +79 -0
  21. data/lib/bolt/node/formatter.rb +15 -0
  22. data/lib/bolt/node/orch.rb +118 -0
  23. data/lib/bolt/node/result.rb +110 -0
  24. data/lib/bolt/node/ssh.rb +145 -0
  25. data/lib/bolt/node/winrm.rb +237 -0
  26. data/lib/bolt/node_uri.rb +42 -0
  27. data/lib/bolt/result.rb +139 -0
  28. data/lib/bolt/version.rb +3 -0
  29. data/metadata.json +13 -0
  30. data/tasks/init.json +3 -0
  31. data/tasks/init.rb +44 -0
  32. data/ux/bolt-CLI-spec.md +186 -0
  33. data/vendored/facter/lib/facter.rb +261 -0
  34. data/vendored/facter/lib/facter/Cfkey.rb +42 -0
  35. data/vendored/facter/lib/facter/application.rb +206 -0
  36. data/vendored/facter/lib/facter/architecture.rb +50 -0
  37. data/vendored/facter/lib/facter/augeasversion.rb +28 -0
  38. data/vendored/facter/lib/facter/blockdevices.rb +105 -0
  39. data/vendored/facter/lib/facter/core/aggregate.rb +220 -0
  40. data/vendored/facter/lib/facter/core/directed_graph.rb +46 -0
  41. data/vendored/facter/lib/facter/core/execution.rb +123 -0
  42. data/vendored/facter/lib/facter/core/execution/base.rb +81 -0
  43. data/vendored/facter/lib/facter/core/execution/posix.rb +50 -0
  44. data/vendored/facter/lib/facter/core/execution/windows.rb +57 -0
  45. data/vendored/facter/lib/facter/core/logging.rb +197 -0
  46. data/vendored/facter/lib/facter/core/resolvable.rb +94 -0
  47. data/vendored/facter/lib/facter/core/suitable.rb +113 -0
  48. data/vendored/facter/lib/facter/dhcp_servers.rb +45 -0
  49. data/vendored/facter/lib/facter/domain.rb +99 -0
  50. data/vendored/facter/lib/facter/ec2.rb +68 -0
  51. data/vendored/facter/lib/facter/ec2/rest.rb +137 -0
  52. data/vendored/facter/lib/facter/facterversion.rb +15 -0
  53. data/vendored/facter/lib/facter/filesystems.rb +45 -0
  54. data/vendored/facter/lib/facter/fqdn.rb +24 -0
  55. data/vendored/facter/lib/facter/gce.rb +16 -0
  56. data/vendored/facter/lib/facter/gce/metadata.rb +87 -0
  57. data/vendored/facter/lib/facter/gid.rb +25 -0
  58. data/vendored/facter/lib/facter/hardwareisa.rb +20 -0
  59. data/vendored/facter/lib/facter/hardwaremodel.rb +67 -0
  60. data/vendored/facter/lib/facter/hostname.rb +31 -0
  61. data/vendored/facter/lib/facter/id.rb +21 -0
  62. data/vendored/facter/lib/facter/interfaces.rb +58 -0
  63. data/vendored/facter/lib/facter/ipaddress.rb +169 -0
  64. data/vendored/facter/lib/facter/ipaddress6.rb +82 -0
  65. data/vendored/facter/lib/facter/iphostnumber.rb +29 -0
  66. data/vendored/facter/lib/facter/kernel.rb +22 -0
  67. data/vendored/facter/lib/facter/kernelmajversion.rb +23 -0
  68. data/vendored/facter/lib/facter/kernelrelease.rb +45 -0
  69. data/vendored/facter/lib/facter/kernelversion.rb +22 -0
  70. data/vendored/facter/lib/facter/ldom.rb +51 -0
  71. data/vendored/facter/lib/facter/lsbdistcodename.rb +20 -0
  72. data/vendored/facter/lib/facter/lsbdistdescription.rb +21 -0
  73. data/vendored/facter/lib/facter/lsbdistid.rb +20 -0
  74. data/vendored/facter/lib/facter/lsbdistrelease.rb +20 -0
  75. data/vendored/facter/lib/facter/lsbmajdistrelease.rb +22 -0
  76. data/vendored/facter/lib/facter/lsbminordistrelease.rb +22 -0
  77. data/vendored/facter/lib/facter/lsbrelease.rb +20 -0
  78. data/vendored/facter/lib/facter/macaddress.rb +99 -0
  79. data/vendored/facter/lib/facter/macosx.rb +56 -0
  80. data/vendored/facter/lib/facter/manufacturer.rb +68 -0
  81. data/vendored/facter/lib/facter/memory.rb +168 -0
  82. data/vendored/facter/lib/facter/netmask.rb +43 -0
  83. data/vendored/facter/lib/facter/network.rb +20 -0
  84. data/vendored/facter/lib/facter/operatingsystem.rb +24 -0
  85. data/vendored/facter/lib/facter/operatingsystem/base.rb +61 -0
  86. data/vendored/facter/lib/facter/operatingsystem/cumuluslinux.rb +27 -0
  87. data/vendored/facter/lib/facter/operatingsystem/implementation.rb +33 -0
  88. data/vendored/facter/lib/facter/operatingsystem/linux.rb +484 -0
  89. data/vendored/facter/lib/facter/operatingsystem/osreleaselinux.rb +28 -0
  90. data/vendored/facter/lib/facter/operatingsystem/sunos.rb +54 -0
  91. data/vendored/facter/lib/facter/operatingsystem/vmkernel.rb +11 -0
  92. data/vendored/facter/lib/facter/operatingsystem/windows.rb +43 -0
  93. data/vendored/facter/lib/facter/operatingsystemmajrelease.rb +31 -0
  94. data/vendored/facter/lib/facter/operatingsystemrelease.rb +29 -0
  95. data/vendored/facter/lib/facter/os.rb +98 -0
  96. data/vendored/facter/lib/facter/osfamily.rb +18 -0
  97. data/vendored/facter/lib/facter/partitions.rb +39 -0
  98. data/vendored/facter/lib/facter/path.rb +14 -0
  99. data/vendored/facter/lib/facter/physicalprocessorcount.rb +27 -0
  100. data/vendored/facter/lib/facter/processor.rb +52 -0
  101. data/vendored/facter/lib/facter/processors.rb +66 -0
  102. data/vendored/facter/lib/facter/processors/os.rb +244 -0
  103. data/vendored/facter/lib/facter/ps.rb +31 -0
  104. data/vendored/facter/lib/facter/puppetversion.rb +20 -0
  105. data/vendored/facter/lib/facter/rackspace.rb +37 -0
  106. data/vendored/facter/lib/facter/rubyplatform.rb +12 -0
  107. data/vendored/facter/lib/facter/rubysitedir.rb +15 -0
  108. data/vendored/facter/lib/facter/rubyversion.rb +12 -0
  109. data/vendored/facter/lib/facter/selinux.rb +154 -0
  110. data/vendored/facter/lib/facter/ssh.rb +73 -0
  111. data/vendored/facter/lib/facter/system32.rb +21 -0
  112. data/vendored/facter/lib/facter/system_uptime.rb +44 -0
  113. data/vendored/facter/lib/facter/timezone.rb +14 -0
  114. data/vendored/facter/lib/facter/uniqueid.rb +4 -0
  115. data/vendored/facter/lib/facter/uptime.rb +16 -0
  116. data/vendored/facter/lib/facter/uptime_days.rb +13 -0
  117. data/vendored/facter/lib/facter/uptime_hours.rb +13 -0
  118. data/vendored/facter/lib/facter/uptime_seconds.rb +20 -0
  119. data/vendored/facter/lib/facter/util/architecture.rb +19 -0
  120. data/vendored/facter/lib/facter/util/collection.rb +161 -0
  121. data/vendored/facter/lib/facter/util/composite_loader.rb +12 -0
  122. data/vendored/facter/lib/facter/util/config.rb +88 -0
  123. data/vendored/facter/lib/facter/util/confine.rb +66 -0
  124. data/vendored/facter/lib/facter/util/dhcp_servers.rb +58 -0
  125. data/vendored/facter/lib/facter/util/directory_loader.rb +88 -0
  126. data/vendored/facter/lib/facter/util/ec2.rb +106 -0
  127. data/vendored/facter/lib/facter/util/fact.rb +204 -0
  128. data/vendored/facter/lib/facter/util/file_read.rb +37 -0
  129. data/vendored/facter/lib/facter/util/formatter.rb +39 -0
  130. data/vendored/facter/lib/facter/util/ip.rb +340 -0
  131. data/vendored/facter/lib/facter/util/ip/windows.rb +215 -0
  132. data/vendored/facter/lib/facter/util/loader.rb +155 -0
  133. data/vendored/facter/lib/facter/util/macaddress.rb +43 -0
  134. data/vendored/facter/lib/facter/util/macosx.rb +73 -0
  135. data/vendored/facter/lib/facter/util/manufacturer.rb +99 -0
  136. data/vendored/facter/lib/facter/util/memory.rb +228 -0
  137. data/vendored/facter/lib/facter/util/netmask.rb +40 -0
  138. data/vendored/facter/lib/facter/util/normalization.rb +94 -0
  139. data/vendored/facter/lib/facter/util/nothing_loader.rb +12 -0
  140. data/vendored/facter/lib/facter/util/operatingsystem.rb +21 -0
  141. data/vendored/facter/lib/facter/util/parser.rb +168 -0
  142. data/vendored/facter/lib/facter/util/partitions.rb +47 -0
  143. data/vendored/facter/lib/facter/util/partitions/linux.rb +71 -0
  144. data/vendored/facter/lib/facter/util/partitions/openbsd.rb +40 -0
  145. data/vendored/facter/lib/facter/util/plist.rb +24 -0
  146. data/vendored/facter/lib/facter/util/plist/generator.rb +228 -0
  147. data/vendored/facter/lib/facter/util/plist/parser.rb +226 -0
  148. data/vendored/facter/lib/facter/util/posix.rb +16 -0
  149. data/vendored/facter/lib/facter/util/processor.rb +289 -0
  150. data/vendored/facter/lib/facter/util/registry.rb +11 -0
  151. data/vendored/facter/lib/facter/util/resolution.rb +160 -0
  152. data/vendored/facter/lib/facter/util/solaris_zones.rb +158 -0
  153. data/vendored/facter/lib/facter/util/unix_root.rb +5 -0
  154. data/vendored/facter/lib/facter/util/uptime.rb +83 -0
  155. data/vendored/facter/lib/facter/util/values.rb +109 -0
  156. data/vendored/facter/lib/facter/util/virtual.rb +212 -0
  157. data/vendored/facter/lib/facter/util/vlans.rb +21 -0
  158. data/vendored/facter/lib/facter/util/windows.rb +10 -0
  159. data/vendored/facter/lib/facter/util/windows/api_types.rb +135 -0
  160. data/vendored/facter/lib/facter/util/windows/dir.rb +43 -0
  161. data/vendored/facter/lib/facter/util/windows/error.rb +87 -0
  162. data/vendored/facter/lib/facter/util/windows/process.rb +294 -0
  163. data/vendored/facter/lib/facter/util/windows/user.rb +186 -0
  164. data/vendored/facter/lib/facter/util/windows_root.rb +7 -0
  165. data/vendored/facter/lib/facter/util/wmi.rb +49 -0
  166. data/vendored/facter/lib/facter/util/xendomains.rb +28 -0
  167. data/vendored/facter/lib/facter/version.rb +86 -0
  168. data/vendored/facter/lib/facter/virtual.rb +328 -0
  169. data/vendored/facter/lib/facter/vlans.rb +17 -0
  170. data/vendored/facter/lib/facter/xendomains.rb +20 -0
  171. data/vendored/facter/lib/facter/zfs_version.rb +14 -0
  172. data/vendored/facter/lib/facter/zonename.rb +6 -0
  173. data/vendored/facter/lib/facter/zones.rb +18 -0
  174. data/vendored/facter/lib/facter/zpool_version.rb +10 -0
  175. data/vendored/hiera/lib/hiera.rb +119 -0
  176. data/vendored/hiera/lib/hiera/backend.rb +360 -0
  177. data/vendored/hiera/lib/hiera/backend/json_backend.rb +58 -0
  178. data/vendored/hiera/lib/hiera/backend/yaml_backend.rb +63 -0
  179. data/vendored/hiera/lib/hiera/config.rb +97 -0
  180. data/vendored/hiera/lib/hiera/console_logger.rb +13 -0
  181. data/vendored/hiera/lib/hiera/error.rb +4 -0
  182. data/vendored/hiera/lib/hiera/fallback_logger.rb +41 -0
  183. data/vendored/hiera/lib/hiera/filecache.rb +86 -0
  184. data/vendored/hiera/lib/hiera/interpolate.rb +121 -0
  185. data/vendored/hiera/lib/hiera/noop_logger.rb +8 -0
  186. data/vendored/hiera/lib/hiera/puppet_logger.rb +17 -0
  187. data/vendored/hiera/lib/hiera/recursive_guard.rb +20 -0
  188. data/vendored/hiera/lib/hiera/util.rb +65 -0
  189. data/vendored/hiera/lib/hiera/util/win32.rb +40 -0
  190. data/vendored/hiera/lib/hiera/version.rb +89 -0
  191. data/vendored/puppet/lib/hiera/puppet_function.rb +81 -0
  192. data/vendored/puppet/lib/hiera/scope.rb +61 -0
  193. data/vendored/puppet/lib/hiera_puppet.rb +79 -0
  194. data/vendored/puppet/lib/puppet.rb +311 -0
  195. data/vendored/puppet/lib/puppet/agent.rb +114 -0
  196. data/vendored/puppet/lib/puppet/agent/disabler.rb +53 -0
  197. data/vendored/puppet/lib/puppet/agent/locker.rb +52 -0
  198. data/vendored/puppet/lib/puppet/application.rb +485 -0
  199. data/vendored/puppet/lib/puppet/application/agent.rb +468 -0
  200. data/vendored/puppet/lib/puppet/application/apply.rb +358 -0
  201. data/vendored/puppet/lib/puppet/application/ca.rb +11 -0
  202. data/vendored/puppet/lib/puppet/application/catalog.rb +4 -0
  203. data/vendored/puppet/lib/puppet/application/cert.rb +334 -0
  204. data/vendored/puppet/lib/puppet/application/certificate.rb +17 -0
  205. data/vendored/puppet/lib/puppet/application/certificate_request.rb +7 -0
  206. data/vendored/puppet/lib/puppet/application/certificate_revocation_list.rb +7 -0
  207. data/vendored/puppet/lib/puppet/application/config.rb +4 -0
  208. data/vendored/puppet/lib/puppet/application/describe.rb +258 -0
  209. data/vendored/puppet/lib/puppet/application/device.rb +292 -0
  210. data/vendored/puppet/lib/puppet/application/doc.rb +230 -0
  211. data/vendored/puppet/lib/puppet/application/epp.rb +5 -0
  212. data/vendored/puppet/lib/puppet/application/face_base.rb +268 -0
  213. data/vendored/puppet/lib/puppet/application/facts.rb +4 -0
  214. data/vendored/puppet/lib/puppet/application/filebucket.rb +262 -0
  215. data/vendored/puppet/lib/puppet/application/generate.rb +5 -0
  216. data/vendored/puppet/lib/puppet/application/help.rb +4 -0
  217. data/vendored/puppet/lib/puppet/application/indirection_base.rb +4 -0
  218. data/vendored/puppet/lib/puppet/application/key.rb +4 -0
  219. data/vendored/puppet/lib/puppet/application/lookup.rb +361 -0
  220. data/vendored/puppet/lib/puppet/application/man.rb +4 -0
  221. data/vendored/puppet/lib/puppet/application/master.rb +317 -0
  222. data/vendored/puppet/lib/puppet/application/module.rb +4 -0
  223. data/vendored/puppet/lib/puppet/application/node.rb +4 -0
  224. data/vendored/puppet/lib/puppet/application/parser.rb +5 -0
  225. data/vendored/puppet/lib/puppet/application/plugin.rb +3 -0
  226. data/vendored/puppet/lib/puppet/application/report.rb +4 -0
  227. data/vendored/puppet/lib/puppet/application/resource.rb +231 -0
  228. data/vendored/puppet/lib/puppet/application/script.rb +255 -0
  229. data/vendored/puppet/lib/puppet/application/status.rb +4 -0
  230. data/vendored/puppet/lib/puppet/application_support.rb +57 -0
  231. data/vendored/puppet/lib/puppet/bindings.rb +147 -0
  232. data/vendored/puppet/lib/puppet/coercion.rb +40 -0
  233. data/vendored/puppet/lib/puppet/compilable_resource_type.rb +15 -0
  234. data/vendored/puppet/lib/puppet/configurer.rb +447 -0
  235. data/vendored/puppet/lib/puppet/configurer/downloader.rb +67 -0
  236. data/vendored/puppet/lib/puppet/configurer/downloader_factory.rb +34 -0
  237. data/vendored/puppet/lib/puppet/configurer/fact_handler.rb +46 -0
  238. data/vendored/puppet/lib/puppet/configurer/plugin_handler.rb +25 -0
  239. data/vendored/puppet/lib/puppet/confine.rb +80 -0
  240. data/vendored/puppet/lib/puppet/confine/any.rb +26 -0
  241. data/vendored/puppet/lib/puppet/confine/exists.rb +19 -0
  242. data/vendored/puppet/lib/puppet/confine/false.rb +19 -0
  243. data/vendored/puppet/lib/puppet/confine/feature.rb +17 -0
  244. data/vendored/puppet/lib/puppet/confine/true.rb +20 -0
  245. data/vendored/puppet/lib/puppet/confine/variable.rb +59 -0
  246. data/vendored/puppet/lib/puppet/confine_collection.rb +50 -0
  247. data/vendored/puppet/lib/puppet/confiner.rb +46 -0
  248. data/vendored/puppet/lib/puppet/context.rb +116 -0
  249. data/vendored/puppet/lib/puppet/context/trusted_information.rb +76 -0
  250. data/vendored/puppet/lib/puppet/daemon.rb +195 -0
  251. data/vendored/puppet/lib/puppet/data_binding.rb +14 -0
  252. data/vendored/puppet/lib/puppet/defaults.rb +1957 -0
  253. data/vendored/puppet/lib/puppet/environments.rb +509 -0
  254. data/vendored/puppet/lib/puppet/error.rb +117 -0
  255. data/vendored/puppet/lib/puppet/etc.rb +161 -0
  256. data/vendored/puppet/lib/puppet/external/dot.rb +326 -0
  257. data/vendored/puppet/lib/puppet/external/nagios.rb +46 -0
  258. data/vendored/puppet/lib/puppet/external/nagios/base.rb +472 -0
  259. data/vendored/puppet/lib/puppet/external/nagios/grammar.ry +248 -0
  260. data/vendored/puppet/lib/puppet/external/nagios/makefile +9 -0
  261. data/vendored/puppet/lib/puppet/external/nagios/parser.rb +400 -0
  262. data/vendored/puppet/lib/puppet/external/pson/common.rb +374 -0
  263. data/vendored/puppet/lib/puppet/external/pson/pure.rb +15 -0
  264. data/vendored/puppet/lib/puppet/external/pson/pure/generator.rb +395 -0
  265. data/vendored/puppet/lib/puppet/external/pson/pure/parser.rb +307 -0
  266. data/vendored/puppet/lib/puppet/external/pson/version.rb +8 -0
  267. data/vendored/puppet/lib/puppet/face.rb +12 -0
  268. data/vendored/puppet/lib/puppet/face/ca.rb +266 -0
  269. data/vendored/puppet/lib/puppet/face/catalog.rb +130 -0
  270. data/vendored/puppet/lib/puppet/face/catalog/select.rb +49 -0
  271. data/vendored/puppet/lib/puppet/face/certificate.rb +165 -0
  272. data/vendored/puppet/lib/puppet/face/certificate_request.rb +56 -0
  273. data/vendored/puppet/lib/puppet/face/certificate_revocation_list.rb +56 -0
  274. data/vendored/puppet/lib/puppet/face/config.rb +119 -0
  275. data/vendored/puppet/lib/puppet/face/epp.rb +527 -0
  276. data/vendored/puppet/lib/puppet/face/facts.rb +38 -0
  277. data/vendored/puppet/lib/puppet/face/generate.rb +64 -0
  278. data/vendored/puppet/lib/puppet/face/help.rb +205 -0
  279. data/vendored/puppet/lib/puppet/face/help/action.erb +86 -0
  280. data/vendored/puppet/lib/puppet/face/help/face.erb +114 -0
  281. data/vendored/puppet/lib/puppet/face/help/global.erb +16 -0
  282. data/vendored/puppet/lib/puppet/face/help/man.erb +152 -0
  283. data/vendored/puppet/lib/puppet/face/key.rb +16 -0
  284. data/vendored/puppet/lib/puppet/face/man.rb +101 -0
  285. data/vendored/puppet/lib/puppet/face/module.rb +19 -0
  286. data/vendored/puppet/lib/puppet/face/module/build.rb +63 -0
  287. data/vendored/puppet/lib/puppet/face/module/changes.rb +42 -0
  288. data/vendored/puppet/lib/puppet/face/module/generate.rb +251 -0
  289. data/vendored/puppet/lib/puppet/face/module/install.rb +149 -0
  290. data/vendored/puppet/lib/puppet/face/module/list.rb +279 -0
  291. data/vendored/puppet/lib/puppet/face/module/search.rb +94 -0
  292. data/vendored/puppet/lib/puppet/face/module/uninstall.rb +81 -0
  293. data/vendored/puppet/lib/puppet/face/module/upgrade.rb +90 -0
  294. data/vendored/puppet/lib/puppet/face/node.rb +42 -0
  295. data/vendored/puppet/lib/puppet/face/node/clean.rb +96 -0
  296. data/vendored/puppet/lib/puppet/face/parser.rb +161 -0
  297. data/vendored/puppet/lib/puppet/face/plugin.rb +58 -0
  298. data/vendored/puppet/lib/puppet/face/report.rb +54 -0
  299. data/vendored/puppet/lib/puppet/face/resource.rb +53 -0
  300. data/vendored/puppet/lib/puppet/face/status.rb +50 -0
  301. data/vendored/puppet/lib/puppet/feature/base.rb +95 -0
  302. data/vendored/puppet/lib/puppet/feature/bolt.rb +3 -0
  303. data/vendored/puppet/lib/puppet/feature/cfpropertylist.rb +3 -0
  304. data/vendored/puppet/lib/puppet/feature/eventlog.rb +5 -0
  305. data/vendored/puppet/lib/puppet/feature/hiera_eyaml.rb +3 -0
  306. data/vendored/puppet/lib/puppet/feature/hocon.rb +3 -0
  307. data/vendored/puppet/lib/puppet/feature/libuser.rb +8 -0
  308. data/vendored/puppet/lib/puppet/feature/msgpack.rb +3 -0
  309. data/vendored/puppet/lib/puppet/feature/pe_license.rb +4 -0
  310. data/vendored/puppet/lib/puppet/feature/rack.rb +19 -0
  311. data/vendored/puppet/lib/puppet/feature/selinux.rb +3 -0
  312. data/vendored/puppet/lib/puppet/feature/ssh.rb +3 -0
  313. data/vendored/puppet/lib/puppet/feature/telnet.rb +9 -0
  314. data/vendored/puppet/lib/puppet/feature/zlib.rb +5 -0
  315. data/vendored/puppet/lib/puppet/file_bucket.rb +4 -0
  316. data/vendored/puppet/lib/puppet/file_bucket/dipper.rb +174 -0
  317. data/vendored/puppet/lib/puppet/file_bucket/file.rb +131 -0
  318. data/vendored/puppet/lib/puppet/file_serving.rb +3 -0
  319. data/vendored/puppet/lib/puppet/file_serving/base.rb +85 -0
  320. data/vendored/puppet/lib/puppet/file_serving/configuration.rb +112 -0
  321. data/vendored/puppet/lib/puppet/file_serving/configuration/parser.rb +123 -0
  322. data/vendored/puppet/lib/puppet/file_serving/content.rb +43 -0
  323. data/vendored/puppet/lib/puppet/file_serving/fileset.rb +174 -0
  324. data/vendored/puppet/lib/puppet/file_serving/http_metadata.rb +46 -0
  325. data/vendored/puppet/lib/puppet/file_serving/metadata.rb +163 -0
  326. data/vendored/puppet/lib/puppet/file_serving/mount.rb +39 -0
  327. data/vendored/puppet/lib/puppet/file_serving/mount/file.rb +121 -0
  328. data/vendored/puppet/lib/puppet/file_serving/mount/modules.rb +24 -0
  329. data/vendored/puppet/lib/puppet/file_serving/mount/pluginfacts.rb +35 -0
  330. data/vendored/puppet/lib/puppet/file_serving/mount/plugins.rb +35 -0
  331. data/vendored/puppet/lib/puppet/file_serving/mount/tasks.rb +21 -0
  332. data/vendored/puppet/lib/puppet/file_serving/terminus_helper.rb +31 -0
  333. data/vendored/puppet/lib/puppet/file_serving/terminus_selector.rb +32 -0
  334. data/vendored/puppet/lib/puppet/file_system.rb +404 -0
  335. data/vendored/puppet/lib/puppet/file_system/file_impl.rb +154 -0
  336. data/vendored/puppet/lib/puppet/file_system/memory_file.rb +66 -0
  337. data/vendored/puppet/lib/puppet/file_system/memory_impl.rb +86 -0
  338. data/vendored/puppet/lib/puppet/file_system/path_pattern.rb +98 -0
  339. data/vendored/puppet/lib/puppet/file_system/posix.rb +46 -0
  340. data/vendored/puppet/lib/puppet/file_system/uniquefile.rb +190 -0
  341. data/vendored/puppet/lib/puppet/file_system/windows.rb +130 -0
  342. data/vendored/puppet/lib/puppet/forge.rb +229 -0
  343. data/vendored/puppet/lib/puppet/forge/cache.rb +60 -0
  344. data/vendored/puppet/lib/puppet/forge/errors.rb +112 -0
  345. data/vendored/puppet/lib/puppet/forge/repository.rb +155 -0
  346. data/vendored/puppet/lib/puppet/functions.rb +745 -0
  347. data/vendored/puppet/lib/puppet/functions/alert.rb +14 -0
  348. data/vendored/puppet/lib/puppet/functions/all.rb +104 -0
  349. data/vendored/puppet/lib/puppet/functions/annotate.rb +108 -0
  350. data/vendored/puppet/lib/puppet/functions/any.rb +109 -0
  351. data/vendored/puppet/lib/puppet/functions/assert_type.rb +93 -0
  352. data/vendored/puppet/lib/puppet/functions/binary_file.rb +19 -0
  353. data/vendored/puppet/lib/puppet/functions/break.rb +22 -0
  354. data/vendored/puppet/lib/puppet/functions/call.rb +42 -0
  355. data/vendored/puppet/lib/puppet/functions/contain.rb +39 -0
  356. data/vendored/puppet/lib/puppet/functions/crit.rb +14 -0
  357. data/vendored/puppet/lib/puppet/functions/debug.rb +14 -0
  358. data/vendored/puppet/lib/puppet/functions/defined.rb +160 -0
  359. data/vendored/puppet/lib/puppet/functions/dig.rb +23 -0
  360. data/vendored/puppet/lib/puppet/functions/each.rb +163 -0
  361. data/vendored/puppet/lib/puppet/functions/emerg.rb +14 -0
  362. data/vendored/puppet/lib/puppet/functions/epp.rb +48 -0
  363. data/vendored/puppet/lib/puppet/functions/err.rb +14 -0
  364. data/vendored/puppet/lib/puppet/functions/eyaml_lookup_key.rb +94 -0
  365. data/vendored/puppet/lib/puppet/functions/file_upload.rb +48 -0
  366. data/vendored/puppet/lib/puppet/functions/filter.rb +143 -0
  367. data/vendored/puppet/lib/puppet/functions/find_file.rb +31 -0
  368. data/vendored/puppet/lib/puppet/functions/hiera.rb +88 -0
  369. data/vendored/puppet/lib/puppet/functions/hiera_array.rb +81 -0
  370. data/vendored/puppet/lib/puppet/functions/hiera_hash.rb +92 -0
  371. data/vendored/puppet/lib/puppet/functions/hiera_include.rb +104 -0
  372. data/vendored/puppet/lib/puppet/functions/hocon_data.rb +41 -0
  373. data/vendored/puppet/lib/puppet/functions/import.rb +7 -0
  374. data/vendored/puppet/lib/puppet/functions/include.rb +27 -0
  375. data/vendored/puppet/lib/puppet/functions/info.rb +14 -0
  376. data/vendored/puppet/lib/puppet/functions/inline_epp.rb +59 -0
  377. data/vendored/puppet/lib/puppet/functions/json_data.rb +33 -0
  378. data/vendored/puppet/lib/puppet/functions/lest.rb +17 -0
  379. data/vendored/puppet/lib/puppet/functions/lookup.rb +223 -0
  380. data/vendored/puppet/lib/puppet/functions/map.rb +126 -0
  381. data/vendored/puppet/lib/puppet/functions/match.rb +120 -0
  382. data/vendored/puppet/lib/puppet/functions/new.rb +32 -0
  383. data/vendored/puppet/lib/puppet/functions/next.rb +23 -0
  384. data/vendored/puppet/lib/puppet/functions/notice.rb +14 -0
  385. data/vendored/puppet/lib/puppet/functions/reduce.rb +164 -0
  386. data/vendored/puppet/lib/puppet/functions/regsubst.rb +76 -0
  387. data/vendored/puppet/lib/puppet/functions/require.rb +43 -0
  388. data/vendored/puppet/lib/puppet/functions/return.rb +22 -0
  389. data/vendored/puppet/lib/puppet/functions/reverse_each.rb +25 -0
  390. data/vendored/puppet/lib/puppet/functions/run_command.rb +41 -0
  391. data/vendored/puppet/lib/puppet/functions/run_plan.rb +40 -0
  392. data/vendored/puppet/lib/puppet/functions/run_script.rb +50 -0
  393. data/vendored/puppet/lib/puppet/functions/run_task.rb +73 -0
  394. data/vendored/puppet/lib/puppet/functions/scanf.rb +44 -0
  395. data/vendored/puppet/lib/puppet/functions/slice.rb +111 -0
  396. data/vendored/puppet/lib/puppet/functions/split.rb +47 -0
  397. data/vendored/puppet/lib/puppet/functions/step.rb +26 -0
  398. data/vendored/puppet/lib/puppet/functions/strftime.rb +43 -0
  399. data/vendored/puppet/lib/puppet/functions/then.rb +14 -0
  400. data/vendored/puppet/lib/puppet/functions/tree_each.rb +200 -0
  401. data/vendored/puppet/lib/puppet/functions/type.rb +31 -0
  402. data/vendored/puppet/lib/puppet/functions/unique.rb +132 -0
  403. data/vendored/puppet/lib/puppet/functions/unwrap.rb +40 -0
  404. data/vendored/puppet/lib/puppet/functions/versioncmp.rb +36 -0
  405. data/vendored/puppet/lib/puppet/functions/warning.rb +14 -0
  406. data/vendored/puppet/lib/puppet/functions/with.rb +30 -0
  407. data/vendored/puppet/lib/puppet/functions/yaml_data.rb +42 -0
  408. data/vendored/puppet/lib/puppet/generate/models/type/property.rb +70 -0
  409. data/vendored/puppet/lib/puppet/generate/models/type/type.rb +62 -0
  410. data/vendored/puppet/lib/puppet/generate/templates/type/pcore.erb +42 -0
  411. data/vendored/puppet/lib/puppet/generate/type.rb +239 -0
  412. data/vendored/puppet/lib/puppet/gettext/config.rb +70 -0
  413. data/vendored/puppet/lib/puppet/gettext/stubs.rb +11 -0
  414. data/vendored/puppet/lib/puppet/graph.rb +11 -0
  415. data/vendored/puppet/lib/puppet/graph/key.rb +26 -0
  416. data/vendored/puppet/lib/puppet/graph/prioritizer.rb +29 -0
  417. data/vendored/puppet/lib/puppet/graph/random_prioritizer.rb +16 -0
  418. data/vendored/puppet/lib/puppet/graph/rb_tree_map.rb +388 -0
  419. data/vendored/puppet/lib/puppet/graph/relationship_graph.rb +277 -0
  420. data/vendored/puppet/lib/puppet/graph/sequential_prioritizer.rb +31 -0
  421. data/vendored/puppet/lib/puppet/graph/simple_graph.rb +539 -0
  422. data/vendored/puppet/lib/puppet/graph/title_hash_prioritizer.rb +16 -0
  423. data/vendored/puppet/lib/puppet/indirector.rb +61 -0
  424. data/vendored/puppet/lib/puppet/indirector/catalog/compiler.rb +384 -0
  425. data/vendored/puppet/lib/puppet/indirector/catalog/json.rb +24 -0
  426. data/vendored/puppet/lib/puppet/indirector/catalog/msgpack.rb +6 -0
  427. data/vendored/puppet/lib/puppet/indirector/catalog/rest.rb +6 -0
  428. data/vendored/puppet/lib/puppet/indirector/catalog/store_configs.rb +8 -0
  429. data/vendored/puppet/lib/puppet/indirector/catalog/yaml.rb +22 -0
  430. data/vendored/puppet/lib/puppet/indirector/certificate/ca.rb +9 -0
  431. data/vendored/puppet/lib/puppet/indirector/certificate/disabled_ca.rb +22 -0
  432. data/vendored/puppet/lib/puppet/indirector/certificate/file.rb +9 -0
  433. data/vendored/puppet/lib/puppet/indirector/certificate/rest.rb +16 -0
  434. data/vendored/puppet/lib/puppet/indirector/certificate_request/ca.rb +22 -0
  435. data/vendored/puppet/lib/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
  436. data/vendored/puppet/lib/puppet/indirector/certificate_request/file.rb +8 -0
  437. data/vendored/puppet/lib/puppet/indirector/certificate_request/memory.rb +6 -0
  438. data/vendored/puppet/lib/puppet/indirector/certificate_request/rest.rb +10 -0
  439. data/vendored/puppet/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
  440. data/vendored/puppet/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
  441. data/vendored/puppet/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
  442. data/vendored/puppet/lib/puppet/indirector/certificate_revocation_list/rest.rb +22 -0
  443. data/vendored/puppet/lib/puppet/indirector/certificate_status.rb +4 -0
  444. data/vendored/puppet/lib/puppet/indirector/certificate_status/file.rb +91 -0
  445. data/vendored/puppet/lib/puppet/indirector/certificate_status/rest.rb +11 -0
  446. data/vendored/puppet/lib/puppet/indirector/code.rb +6 -0
  447. data/vendored/puppet/lib/puppet/indirector/data_binding/hiera.rb +7 -0
  448. data/vendored/puppet/lib/puppet/indirector/data_binding/none.rb +8 -0
  449. data/vendored/puppet/lib/puppet/indirector/direct_file_server.rb +17 -0
  450. data/vendored/puppet/lib/puppet/indirector/envelope.rb +11 -0
  451. data/vendored/puppet/lib/puppet/indirector/errors.rb +5 -0
  452. data/vendored/puppet/lib/puppet/indirector/exec.rb +38 -0
  453. data/vendored/puppet/lib/puppet/indirector/face.rb +153 -0
  454. data/vendored/puppet/lib/puppet/indirector/facts/facter.rb +90 -0
  455. data/vendored/puppet/lib/puppet/indirector/facts/memory.rb +9 -0
  456. data/vendored/puppet/lib/puppet/indirector/facts/network_device.rb +27 -0
  457. data/vendored/puppet/lib/puppet/indirector/facts/store_configs.rb +11 -0
  458. data/vendored/puppet/lib/puppet/indirector/facts/yaml.rb +86 -0
  459. data/vendored/puppet/lib/puppet/indirector/file_bucket_file/file.rb +255 -0
  460. data/vendored/puppet/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
  461. data/vendored/puppet/lib/puppet/indirector/file_bucket_file/selector.rb +53 -0
  462. data/vendored/puppet/lib/puppet/indirector/file_content.rb +5 -0
  463. data/vendored/puppet/lib/puppet/indirector/file_content/file.rb +7 -0
  464. data/vendored/puppet/lib/puppet/indirector/file_content/file_server.rb +7 -0
  465. data/vendored/puppet/lib/puppet/indirector/file_content/http.rb +15 -0
  466. data/vendored/puppet/lib/puppet/indirector/file_content/rest.rb +9 -0
  467. data/vendored/puppet/lib/puppet/indirector/file_content/selector.rb +30 -0
  468. data/vendored/puppet/lib/puppet/indirector/file_metadata.rb +5 -0
  469. data/vendored/puppet/lib/puppet/indirector/file_metadata/file.rb +7 -0
  470. data/vendored/puppet/lib/puppet/indirector/file_metadata/file_server.rb +7 -0
  471. data/vendored/puppet/lib/puppet/indirector/file_metadata/http.rb +27 -0
  472. data/vendored/puppet/lib/puppet/indirector/file_metadata/rest.rb +9 -0
  473. data/vendored/puppet/lib/puppet/indirector/file_metadata/selector.rb +30 -0
  474. data/vendored/puppet/lib/puppet/indirector/file_server.rb +59 -0
  475. data/vendored/puppet/lib/puppet/indirector/generic_http.rb +16 -0
  476. data/vendored/puppet/lib/puppet/indirector/hiera.rb +94 -0
  477. data/vendored/puppet/lib/puppet/indirector/indirection.rb +336 -0
  478. data/vendored/puppet/lib/puppet/indirector/json.rb +75 -0
  479. data/vendored/puppet/lib/puppet/indirector/key/ca.rb +16 -0
  480. data/vendored/puppet/lib/puppet/indirector/key/disabled_ca.rb +22 -0
  481. data/vendored/puppet/lib/puppet/indirector/key/file.rb +50 -0
  482. data/vendored/puppet/lib/puppet/indirector/key/memory.rb +6 -0
  483. data/vendored/puppet/lib/puppet/indirector/ldap.rb +80 -0
  484. data/vendored/puppet/lib/puppet/indirector/memory.rb +34 -0
  485. data/vendored/puppet/lib/puppet/indirector/msgpack.rb +83 -0
  486. data/vendored/puppet/lib/puppet/indirector/node/exec.rb +71 -0
  487. data/vendored/puppet/lib/puppet/indirector/node/ldap.rb +259 -0
  488. data/vendored/puppet/lib/puppet/indirector/node/memory.rb +10 -0
  489. data/vendored/puppet/lib/puppet/indirector/node/msgpack.rb +7 -0
  490. data/vendored/puppet/lib/puppet/indirector/node/plain.rb +21 -0
  491. data/vendored/puppet/lib/puppet/indirector/node/rest.rb +7 -0
  492. data/vendored/puppet/lib/puppet/indirector/node/store_configs.rb +8 -0
  493. data/vendored/puppet/lib/puppet/indirector/node/write_only_yaml.rb +37 -0
  494. data/vendored/puppet/lib/puppet/indirector/node/yaml.rb +13 -0
  495. data/vendored/puppet/lib/puppet/indirector/none.rb +9 -0
  496. data/vendored/puppet/lib/puppet/indirector/plain.rb +9 -0
  497. data/vendored/puppet/lib/puppet/indirector/report/msgpack.rb +11 -0
  498. data/vendored/puppet/lib/puppet/indirector/report/processor.rb +59 -0
  499. data/vendored/puppet/lib/puppet/indirector/report/rest.rb +28 -0
  500. data/vendored/puppet/lib/puppet/indirector/report/yaml.rb +11 -0
  501. data/vendored/puppet/lib/puppet/indirector/request.rb +274 -0
  502. data/vendored/puppet/lib/puppet/indirector/resource/ral.rb +63 -0
  503. data/vendored/puppet/lib/puppet/indirector/resource/store_configs.rb +12 -0
  504. data/vendored/puppet/lib/puppet/indirector/resource/validator.rb +8 -0
  505. data/vendored/puppet/lib/puppet/indirector/rest.rb +348 -0
  506. data/vendored/puppet/lib/puppet/indirector/ssl_file.rb +201 -0
  507. data/vendored/puppet/lib/puppet/indirector/status.rb +3 -0
  508. data/vendored/puppet/lib/puppet/indirector/status/local.rb +12 -0
  509. data/vendored/puppet/lib/puppet/indirector/status/rest.rb +9 -0
  510. data/vendored/puppet/lib/puppet/indirector/store_configs.rb +30 -0
  511. data/vendored/puppet/lib/puppet/indirector/terminus.rb +169 -0
  512. data/vendored/puppet/lib/puppet/indirector/yaml.rb +63 -0
  513. data/vendored/puppet/lib/puppet/info_service.rb +17 -0
  514. data/vendored/puppet/lib/puppet/info_service/class_information_service.rb +110 -0
  515. data/vendored/puppet/lib/puppet/info_service/task_information_service.rb +32 -0
  516. data/vendored/puppet/lib/puppet/interface.rb +236 -0
  517. data/vendored/puppet/lib/puppet/interface/action.rb +374 -0
  518. data/vendored/puppet/lib/puppet/interface/action_builder.rb +149 -0
  519. data/vendored/puppet/lib/puppet/interface/action_manager.rb +97 -0
  520. data/vendored/puppet/lib/puppet/interface/documentation.rb +342 -0
  521. data/vendored/puppet/lib/puppet/interface/face_collection.rb +130 -0
  522. data/vendored/puppet/lib/puppet/interface/option.rb +150 -0
  523. data/vendored/puppet/lib/puppet/interface/option_builder.rb +91 -0
  524. data/vendored/puppet/lib/puppet/interface/option_manager.rb +99 -0
  525. data/vendored/puppet/lib/puppet/loaders.rb +26 -0
  526. data/vendored/puppet/lib/puppet/metatype/manager.rb +195 -0
  527. data/vendored/puppet/lib/puppet/module.rb +473 -0
  528. data/vendored/puppet/lib/puppet/module/task.rb +90 -0
  529. data/vendored/puppet/lib/puppet/module_tool.rb +196 -0
  530. data/vendored/puppet/lib/puppet/module_tool/applications.rb +14 -0
  531. data/vendored/puppet/lib/puppet/module_tool/applications/application.rb +90 -0
  532. data/vendored/puppet/lib/puppet/module_tool/applications/builder.rb +148 -0
  533. data/vendored/puppet/lib/puppet/module_tool/applications/checksummer.rb +62 -0
  534. data/vendored/puppet/lib/puppet/module_tool/applications/installer.rb +352 -0
  535. data/vendored/puppet/lib/puppet/module_tool/applications/searcher.rb +29 -0
  536. data/vendored/puppet/lib/puppet/module_tool/applications/uninstaller.rb +118 -0
  537. data/vendored/puppet/lib/puppet/module_tool/applications/unpacker.rb +100 -0
  538. data/vendored/puppet/lib/puppet/module_tool/applications/upgrader.rb +278 -0
  539. data/vendored/puppet/lib/puppet/module_tool/checksums.rb +49 -0
  540. data/vendored/puppet/lib/puppet/module_tool/contents_description.rb +88 -0
  541. data/vendored/puppet/lib/puppet/module_tool/dependency.rb +41 -0
  542. data/vendored/puppet/lib/puppet/module_tool/errors.rb +11 -0
  543. data/vendored/puppet/lib/puppet/module_tool/errors/base.rb +15 -0
  544. data/vendored/puppet/lib/puppet/module_tool/errors/installer.rb +95 -0
  545. data/vendored/puppet/lib/puppet/module_tool/errors/shared.rb +190 -0
  546. data/vendored/puppet/lib/puppet/module_tool/errors/uninstaller.rb +49 -0
  547. data/vendored/puppet/lib/puppet/module_tool/errors/upgrader.rb +63 -0
  548. data/vendored/puppet/lib/puppet/module_tool/install_directory.rb +45 -0
  549. data/vendored/puppet/lib/puppet/module_tool/installed_modules.rb +96 -0
  550. data/vendored/puppet/lib/puppet/module_tool/local_tarball.rb +90 -0
  551. data/vendored/puppet/lib/puppet/module_tool/metadata.rb +224 -0
  552. data/vendored/puppet/lib/puppet/module_tool/shared_behaviors.rb +180 -0
  553. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.fixtures.yml.erb +7 -0
  554. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.gitignore +18 -0
  555. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.rubocop.yml +42 -0
  556. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/.yardopts +1 -0
  557. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +18 -0
  558. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +89 -0
  559. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +32 -0
  560. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +12 -0
  561. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +48 -0
  562. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/metadata.json.erb +1 -0
  563. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +6 -0
  564. data/vendored/puppet/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +1 -0
  565. data/vendored/puppet/lib/puppet/module_tool/tar.rb +18 -0
  566. data/vendored/puppet/lib/puppet/module_tool/tar/gnu.rb +19 -0
  567. data/vendored/puppet/lib/puppet/module_tool/tar/mini.rb +53 -0
  568. data/vendored/puppet/lib/puppet/network.rb +3 -0
  569. data/vendored/puppet/lib/puppet/network/auth_config_parser.rb +85 -0
  570. data/vendored/puppet/lib/puppet/network/authconfig.rb +112 -0
  571. data/vendored/puppet/lib/puppet/network/authorization.rb +41 -0
  572. data/vendored/puppet/lib/puppet/network/authstore.rb +282 -0
  573. data/vendored/puppet/lib/puppet/network/client_request.rb +29 -0
  574. data/vendored/puppet/lib/puppet/network/format.rb +110 -0
  575. data/vendored/puppet/lib/puppet/network/format_handler.rb +108 -0
  576. data/vendored/puppet/lib/puppet/network/format_support.rb +134 -0
  577. data/vendored/puppet/lib/puppet/network/formats.rb +171 -0
  578. data/vendored/puppet/lib/puppet/network/http.rb +30 -0
  579. data/vendored/puppet/lib/puppet/network/http/api.rb +44 -0
  580. data/vendored/puppet/lib/puppet/network/http/api/ca.rb +2 -0
  581. data/vendored/puppet/lib/puppet/network/http/api/ca/v1.rb +11 -0
  582. data/vendored/puppet/lib/puppet/network/http/api/indirected_routes.rb +278 -0
  583. data/vendored/puppet/lib/puppet/network/http/api/indirection_type.rb +32 -0
  584. data/vendored/puppet/lib/puppet/network/http/api/master.rb +2 -0
  585. data/vendored/puppet/lib/puppet/network/http/api/master/v3.rb +28 -0
  586. data/vendored/puppet/lib/puppet/network/http/api/master/v3/authorization.rb +18 -0
  587. data/vendored/puppet/lib/puppet/network/http/api/master/v3/environment.rb +82 -0
  588. data/vendored/puppet/lib/puppet/network/http/api/master/v3/environments.rb +35 -0
  589. data/vendored/puppet/lib/puppet/network/http/compression.rb +120 -0
  590. data/vendored/puppet/lib/puppet/network/http/connection.rb +332 -0
  591. data/vendored/puppet/lib/puppet/network/http/error.rb +73 -0
  592. data/vendored/puppet/lib/puppet/network/http/factory.rb +47 -0
  593. data/vendored/puppet/lib/puppet/network/http/handler.rb +183 -0
  594. data/vendored/puppet/lib/puppet/network/http/issues.rb +12 -0
  595. data/vendored/puppet/lib/puppet/network/http/memory_response.rb +13 -0
  596. data/vendored/puppet/lib/puppet/network/http/nocache_pool.rb +21 -0
  597. data/vendored/puppet/lib/puppet/network/http/pool.rb +129 -0
  598. data/vendored/puppet/lib/puppet/network/http/rack.rb +33 -0
  599. data/vendored/puppet/lib/puppet/network/http/rack/rest.rb +162 -0
  600. data/vendored/puppet/lib/puppet/network/http/request.rb +70 -0
  601. data/vendored/puppet/lib/puppet/network/http/response.rb +23 -0
  602. data/vendored/puppet/lib/puppet/network/http/route.rb +100 -0
  603. data/vendored/puppet/lib/puppet/network/http/session.rb +17 -0
  604. data/vendored/puppet/lib/puppet/network/http/site.rb +39 -0
  605. data/vendored/puppet/lib/puppet/network/http/webrick.rb +125 -0
  606. data/vendored/puppet/lib/puppet/network/http/webrick/rest.rb +114 -0
  607. data/vendored/puppet/lib/puppet/network/http_pool.rb +61 -0
  608. data/vendored/puppet/lib/puppet/network/resolver.rb +86 -0
  609. data/vendored/puppet/lib/puppet/network/rest_controller.rb +2 -0
  610. data/vendored/puppet/lib/puppet/network/rights.rb +209 -0
  611. data/vendored/puppet/lib/puppet/network/server.rb +39 -0
  612. data/vendored/puppet/lib/puppet/node.rb +262 -0
  613. data/vendored/puppet/lib/puppet/node/environment.rb +572 -0
  614. data/vendored/puppet/lib/puppet/node/facts.rb +128 -0
  615. data/vendored/puppet/lib/puppet/parameter.rb +567 -0
  616. data/vendored/puppet/lib/puppet/parameter/boolean.rb +15 -0
  617. data/vendored/puppet/lib/puppet/parameter/package_options.rb +31 -0
  618. data/vendored/puppet/lib/puppet/parameter/path.rb +57 -0
  619. data/vendored/puppet/lib/puppet/parameter/value.rb +91 -0
  620. data/vendored/puppet/lib/puppet/parameter/value_collection.rb +212 -0
  621. data/vendored/puppet/lib/puppet/parser.rb +20 -0
  622. data/vendored/puppet/lib/puppet/parser/abstract_compiler.rb +36 -0
  623. data/vendored/puppet/lib/puppet/parser/ast.rb +65 -0
  624. data/vendored/puppet/lib/puppet/parser/ast/block_expression.rb +15 -0
  625. data/vendored/puppet/lib/puppet/parser/ast/branch.rb +19 -0
  626. data/vendored/puppet/lib/puppet/parser/ast/hostclass.rb +27 -0
  627. data/vendored/puppet/lib/puppet/parser/ast/leaf.rb +75 -0
  628. data/vendored/puppet/lib/puppet/parser/ast/node.rb +17 -0
  629. data/vendored/puppet/lib/puppet/parser/ast/pops_bridge.rb +273 -0
  630. data/vendored/puppet/lib/puppet/parser/ast/resource.rb +66 -0
  631. data/vendored/puppet/lib/puppet/parser/ast/resource_instance.rb +10 -0
  632. data/vendored/puppet/lib/puppet/parser/ast/resourceparam.rb +31 -0
  633. data/vendored/puppet/lib/puppet/parser/ast/top_level_construct.rb +4 -0
  634. data/vendored/puppet/lib/puppet/parser/compiler.rb +788 -0
  635. data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
  636. data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
  637. data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +57 -0
  638. data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
  639. data/vendored/puppet/lib/puppet/parser/e4_parser_adapter.rb +60 -0
  640. data/vendored/puppet/lib/puppet/parser/environment_compiler.rb +199 -0
  641. data/vendored/puppet/lib/puppet/parser/files.rb +92 -0
  642. data/vendored/puppet/lib/puppet/parser/functions.rb +278 -0
  643. data/vendored/puppet/lib/puppet/parser/functions/assert_type.rb +60 -0
  644. data/vendored/puppet/lib/puppet/parser/functions/binary_file.rb +24 -0
  645. data/vendored/puppet/lib/puppet/parser/functions/break.rb +39 -0
  646. data/vendored/puppet/lib/puppet/parser/functions/contain.rb +30 -0
  647. data/vendored/puppet/lib/puppet/parser/functions/create_resources.rb +112 -0
  648. data/vendored/puppet/lib/puppet/parser/functions/defined.rb +107 -0
  649. data/vendored/puppet/lib/puppet/parser/functions/dig.rb +38 -0
  650. data/vendored/puppet/lib/puppet/parser/functions/digest.rb +5 -0
  651. data/vendored/puppet/lib/puppet/parser/functions/each.rb +104 -0
  652. data/vendored/puppet/lib/puppet/parser/functions/epp.rb +39 -0
  653. data/vendored/puppet/lib/puppet/parser/functions/fail.rb +4 -0
  654. data/vendored/puppet/lib/puppet/parser/functions/file.rb +33 -0
  655. data/vendored/puppet/lib/puppet/parser/functions/filter.rb +78 -0
  656. data/vendored/puppet/lib/puppet/parser/functions/find_file.rb +28 -0
  657. data/vendored/puppet/lib/puppet/parser/functions/fqdn_rand.rb +21 -0
  658. data/vendored/puppet/lib/puppet/parser/functions/generate.rb +38 -0
  659. data/vendored/puppet/lib/puppet/parser/functions/hiera.rb +103 -0
  660. data/vendored/puppet/lib/puppet/parser/functions/hiera_array.rb +92 -0
  661. data/vendored/puppet/lib/puppet/parser/functions/hiera_hash.rb +102 -0
  662. data/vendored/puppet/lib/puppet/parser/functions/hiera_include.rb +102 -0
  663. data/vendored/puppet/lib/puppet/parser/functions/include.rb +34 -0
  664. data/vendored/puppet/lib/puppet/parser/functions/inline_epp.rb +51 -0
  665. data/vendored/puppet/lib/puppet/parser/functions/inline_template.rb +27 -0
  666. data/vendored/puppet/lib/puppet/parser/functions/lest.rb +49 -0
  667. data/vendored/puppet/lib/puppet/parser/functions/lookup.rb +132 -0
  668. data/vendored/puppet/lib/puppet/parser/functions/map.rb +76 -0
  669. data/vendored/puppet/lib/puppet/parser/functions/match.rb +43 -0
  670. data/vendored/puppet/lib/puppet/parser/functions/md5.rb +5 -0
  671. data/vendored/puppet/lib/puppet/parser/functions/new.rb +1006 -0
  672. data/vendored/puppet/lib/puppet/parser/functions/next.rb +38 -0
  673. data/vendored/puppet/lib/puppet/parser/functions/realize.rb +20 -0
  674. data/vendored/puppet/lib/puppet/parser/functions/reduce.rb +137 -0
  675. data/vendored/puppet/lib/puppet/parser/functions/regsubst.rb +62 -0
  676. data/vendored/puppet/lib/puppet/parser/functions/require.rb +40 -0
  677. data/vendored/puppet/lib/puppet/parser/functions/return.rb +71 -0
  678. data/vendored/puppet/lib/puppet/parser/functions/reverse_each.rb +83 -0
  679. data/vendored/puppet/lib/puppet/parser/functions/scanf.rb +38 -0
  680. data/vendored/puppet/lib/puppet/parser/functions/sha1.rb +5 -0
  681. data/vendored/puppet/lib/puppet/parser/functions/shellquote.rb +61 -0
  682. data/vendored/puppet/lib/puppet/parser/functions/slice.rb +39 -0
  683. data/vendored/puppet/lib/puppet/parser/functions/split.rb +28 -0
  684. data/vendored/puppet/lib/puppet/parser/functions/sprintf.rb +36 -0
  685. data/vendored/puppet/lib/puppet/parser/functions/step.rb +84 -0
  686. data/vendored/puppet/lib/puppet/parser/functions/strftime.rb +185 -0
  687. data/vendored/puppet/lib/puppet/parser/functions/tag.rb +12 -0
  688. data/vendored/puppet/lib/puppet/parser/functions/tagged.rb +24 -0
  689. data/vendored/puppet/lib/puppet/parser/functions/template.rb +35 -0
  690. data/vendored/puppet/lib/puppet/parser/functions/then.rb +73 -0
  691. data/vendored/puppet/lib/puppet/parser/functions/type.rb +53 -0
  692. data/vendored/puppet/lib/puppet/parser/functions/versioncmp.rb +30 -0
  693. data/vendored/puppet/lib/puppet/parser/functions/with.rb +28 -0
  694. data/vendored/puppet/lib/puppet/parser/parser_factory.rb +30 -0
  695. data/vendored/puppet/lib/puppet/parser/relationship.rb +83 -0
  696. data/vendored/puppet/lib/puppet/parser/resource.rb +418 -0
  697. data/vendored/puppet/lib/puppet/parser/resource/param.rb +22 -0
  698. data/vendored/puppet/lib/puppet/parser/scope.rb +1112 -0
  699. data/vendored/puppet/lib/puppet/parser/script_compiler.rb +117 -0
  700. data/vendored/puppet/lib/puppet/parser/templatewrapper.rb +101 -0
  701. data/vendored/puppet/lib/puppet/parser/type_loader.rb +149 -0
  702. data/vendored/puppet/lib/puppet/plugins.rb +9 -0
  703. data/vendored/puppet/lib/puppet/plugins/configuration.rb +25 -0
  704. data/vendored/puppet/lib/puppet/plugins/syntax_checkers.rb +98 -0
  705. data/vendored/puppet/lib/puppet/pops.rb +120 -0
  706. data/vendored/puppet/lib/puppet/pops/adaptable.rb +206 -0
  707. data/vendored/puppet/lib/puppet/pops/adapters.rb +138 -0
  708. data/vendored/puppet/lib/puppet/pops/evaluator/access_operator.rb +706 -0
  709. data/vendored/puppet/lib/puppet/pops/evaluator/callable_signature.rb +107 -0
  710. data/vendored/puppet/lib/puppet/pops/evaluator/closure.rb +373 -0
  711. data/vendored/puppet/lib/puppet/pops/evaluator/collector_transformer.rb +233 -0
  712. data/vendored/puppet/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +86 -0
  713. data/vendored/puppet/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +29 -0
  714. data/vendored/puppet/lib/puppet/pops/evaluator/collectors/exported_collector.rb +69 -0
  715. data/vendored/puppet/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +37 -0
  716. data/vendored/puppet/lib/puppet/pops/evaluator/compare_operator.rb +252 -0
  717. data/vendored/puppet/lib/puppet/pops/evaluator/epp_evaluator.rb +94 -0
  718. data/vendored/puppet/lib/puppet/pops/evaluator/evaluator_impl.rb +1258 -0
  719. data/vendored/puppet/lib/puppet/pops/evaluator/external_syntax_support.rb +45 -0
  720. data/vendored/puppet/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +82 -0
  721. data/vendored/puppet/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
  722. data/vendored/puppet/lib/puppet/pops/evaluator/puppet_proc.rb +69 -0
  723. data/vendored/puppet/lib/puppet/pops/evaluator/relationship_operator.rb +185 -0
  724. data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_converter.rb +200 -0
  725. data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_resource_support.rb +117 -0
  726. data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_support.rb +538 -0
  727. data/vendored/puppet/lib/puppet/pops/functions/dispatch.rb +100 -0
  728. data/vendored/puppet/lib/puppet/pops/functions/dispatcher.rb +71 -0
  729. data/vendored/puppet/lib/puppet/pops/functions/function.rb +135 -0
  730. data/vendored/puppet/lib/puppet/pops/issue_reporter.rb +115 -0
  731. data/vendored/puppet/lib/puppet/pops/issues.rb +888 -0
  732. data/vendored/puppet/lib/puppet/pops/label_provider.rb +90 -0
  733. data/vendored/puppet/lib/puppet/pops/loader/base_loader.rb +166 -0
  734. data/vendored/puppet/lib/puppet/pops/loader/dependency_loader.rb +92 -0
  735. data/vendored/puppet/lib/puppet/pops/loader/gem_support.rb +49 -0
  736. data/vendored/puppet/lib/puppet/pops/loader/loader.rb +204 -0
  737. data/vendored/puppet/lib/puppet/pops/loader/loader_paths.rb +296 -0
  738. data/vendored/puppet/lib/puppet/pops/loader/module_loaders.rb +452 -0
  739. data/vendored/puppet/lib/puppet/pops/loader/null_loader.rb +60 -0
  740. data/vendored/puppet/lib/puppet/pops/loader/predefined_loader.rb +24 -0
  741. data/vendored/puppet/lib/puppet/pops/loader/puppet_function_instantiator.rb +84 -0
  742. data/vendored/puppet/lib/puppet/pops/loader/puppet_plan_instantiator.rb +84 -0
  743. data/vendored/puppet/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +79 -0
  744. data/vendored/puppet/lib/puppet/pops/loader/ruby_function_instantiator.rb +46 -0
  745. data/vendored/puppet/lib/puppet/pops/loader/runtime3_type_loader.rb +101 -0
  746. data/vendored/puppet/lib/puppet/pops/loader/simple_environment_loader.rb +20 -0
  747. data/vendored/puppet/lib/puppet/pops/loader/static_loader.rb +164 -0
  748. data/vendored/puppet/lib/puppet/pops/loader/task_instantiator.rb +117 -0
  749. data/vendored/puppet/lib/puppet/pops/loader/type_definition_instantiator.rb +97 -0
  750. data/vendored/puppet/lib/puppet/pops/loader/typed_name.rb +54 -0
  751. data/vendored/puppet/lib/puppet/pops/loader/uri_helper.rb +22 -0
  752. data/vendored/puppet/lib/puppet/pops/loaders.rb +517 -0
  753. data/vendored/puppet/lib/puppet/pops/lookup.rb +96 -0
  754. data/vendored/puppet/lib/puppet/pops/lookup/configured_data_provider.rb +93 -0
  755. data/vendored/puppet/lib/puppet/pops/lookup/context.rb +200 -0
  756. data/vendored/puppet/lib/puppet/pops/lookup/data_adapter.rb +27 -0
  757. data/vendored/puppet/lib/puppet/pops/lookup/data_dig_function_provider.rb +145 -0
  758. data/vendored/puppet/lib/puppet/pops/lookup/data_hash_function_provider.rb +126 -0
  759. data/vendored/puppet/lib/puppet/pops/lookup/data_provider.rb +92 -0
  760. data/vendored/puppet/lib/puppet/pops/lookup/environment_data_provider.rb +35 -0
  761. data/vendored/puppet/lib/puppet/pops/lookup/explainer.rb +594 -0
  762. data/vendored/puppet/lib/puppet/pops/lookup/function_provider.rb +110 -0
  763. data/vendored/puppet/lib/puppet/pops/lookup/global_data_provider.rb +75 -0
  764. data/vendored/puppet/lib/puppet/pops/lookup/hiera_config.rb +761 -0
  765. data/vendored/puppet/lib/puppet/pops/lookup/interpolation.rb +154 -0
  766. data/vendored/puppet/lib/puppet/pops/lookup/invocation.rb +261 -0
  767. data/vendored/puppet/lib/puppet/pops/lookup/location_resolver.rb +99 -0
  768. data/vendored/puppet/lib/puppet/pops/lookup/lookup_adapter.rb +472 -0
  769. data/vendored/puppet/lib/puppet/pops/lookup/lookup_key.rb +99 -0
  770. data/vendored/puppet/lib/puppet/pops/lookup/lookup_key_function_provider.rb +92 -0
  771. data/vendored/puppet/lib/puppet/pops/lookup/module_data_provider.rb +89 -0
  772. data/vendored/puppet/lib/puppet/pops/lookup/sub_lookup.rb +92 -0
  773. data/vendored/puppet/lib/puppet/pops/merge_strategy.rb +434 -0
  774. data/vendored/puppet/lib/puppet/pops/migration/migration_checker.rb +58 -0
  775. data/vendored/puppet/lib/puppet/pops/model/ast.pp +695 -0
  776. data/vendored/puppet/lib/puppet/pops/model/ast.rb +4870 -0
  777. data/vendored/puppet/lib/puppet/pops/model/ast_transformer.rb +131 -0
  778. data/vendored/puppet/lib/puppet/pops/model/factory.rb +1145 -0
  779. data/vendored/puppet/lib/puppet/pops/model/model_label_provider.rb +132 -0
  780. data/vendored/puppet/lib/puppet/pops/model/model_tree_dumper.rb +463 -0
  781. data/vendored/puppet/lib/puppet/pops/model/tree_dumper.rb +59 -0
  782. data/vendored/puppet/lib/puppet/pops/parser/code_merger.rb +29 -0
  783. data/vendored/puppet/lib/puppet/pops/parser/egrammar.ra +937 -0
  784. data/vendored/puppet/lib/puppet/pops/parser/eparser.rb +3347 -0
  785. data/vendored/puppet/lib/puppet/pops/parser/epp_parser.rb +51 -0
  786. data/vendored/puppet/lib/puppet/pops/parser/epp_support.rb +262 -0
  787. data/vendored/puppet/lib/puppet/pops/parser/evaluating_parser.rb +165 -0
  788. data/vendored/puppet/lib/puppet/pops/parser/heredoc_support.rb +143 -0
  789. data/vendored/puppet/lib/puppet/pops/parser/interpolation_support.rb +244 -0
  790. data/vendored/puppet/lib/puppet/pops/parser/lexer2.rb +796 -0
  791. data/vendored/puppet/lib/puppet/pops/parser/lexer_support.rb +220 -0
  792. data/vendored/puppet/lib/puppet/pops/parser/locatable.rb +23 -0
  793. data/vendored/puppet/lib/puppet/pops/parser/locator.rb +344 -0
  794. data/vendored/puppet/lib/puppet/pops/parser/parser_support.rb +247 -0
  795. data/vendored/puppet/lib/puppet/pops/parser/slurp_support.rb +120 -0
  796. data/vendored/puppet/lib/puppet/pops/patterns.rb +60 -0
  797. data/vendored/puppet/lib/puppet/pops/pcore.rb +107 -0
  798. data/vendored/puppet/lib/puppet/pops/puppet_stack.rb +43 -0
  799. data/vendored/puppet/lib/puppet/pops/resource/param.rb +55 -0
  800. data/vendored/puppet/lib/puppet/pops/resource/resource_type_impl.rb +314 -0
  801. data/vendored/puppet/lib/puppet/pops/resource/resource_type_set.pcore +22 -0
  802. data/vendored/puppet/lib/puppet/pops/semantic_error.rb +29 -0
  803. data/vendored/puppet/lib/puppet/pops/serialization.rb +41 -0
  804. data/vendored/puppet/lib/puppet/pops/serialization/abstract_reader.rb +176 -0
  805. data/vendored/puppet/lib/puppet/pops/serialization/abstract_writer.rb +215 -0
  806. data/vendored/puppet/lib/puppet/pops/serialization/deserializer.rb +80 -0
  807. data/vendored/puppet/lib/puppet/pops/serialization/extension.rb +157 -0
  808. data/vendored/puppet/lib/puppet/pops/serialization/from_data_converter.rb +169 -0
  809. data/vendored/puppet/lib/puppet/pops/serialization/instance_reader.rb +19 -0
  810. data/vendored/puppet/lib/puppet/pops/serialization/instance_writer.rb +14 -0
  811. data/vendored/puppet/lib/puppet/pops/serialization/json.rb +297 -0
  812. data/vendored/puppet/lib/puppet/pops/serialization/json_path.rb +126 -0
  813. data/vendored/puppet/lib/puppet/pops/serialization/object.rb +71 -0
  814. data/vendored/puppet/lib/puppet/pops/serialization/serializer.rb +139 -0
  815. data/vendored/puppet/lib/puppet/pops/serialization/time_factory.rb +67 -0
  816. data/vendored/puppet/lib/puppet/pops/serialization/to_data_converter.rb +301 -0
  817. data/vendored/puppet/lib/puppet/pops/time/timespan.rb +718 -0
  818. data/vendored/puppet/lib/puppet/pops/time/timestamp.rb +160 -0
  819. data/vendored/puppet/lib/puppet/pops/types/annotatable.rb +36 -0
  820. data/vendored/puppet/lib/puppet/pops/types/annotation.rb +71 -0
  821. data/vendored/puppet/lib/puppet/pops/types/class_loader.rb +129 -0
  822. data/vendored/puppet/lib/puppet/pops/types/enumeration.rb +16 -0
  823. data/vendored/puppet/lib/puppet/pops/types/execution_result.rb +126 -0
  824. data/vendored/puppet/lib/puppet/pops/types/implementation_registry.rb +141 -0
  825. data/vendored/puppet/lib/puppet/pops/types/iterable.rb +330 -0
  826. data/vendored/puppet/lib/puppet/pops/types/p_binary_type.rb +226 -0
  827. data/vendored/puppet/lib/puppet/pops/types/p_error_type.rb +146 -0
  828. data/vendored/puppet/lib/puppet/pops/types/p_init_type.rb +238 -0
  829. data/vendored/puppet/lib/puppet/pops/types/p_meta_type.rb +90 -0
  830. data/vendored/puppet/lib/puppet/pops/types/p_object_type.rb +976 -0
  831. data/vendored/puppet/lib/puppet/pops/types/p_runtime_type.rb +115 -0
  832. data/vendored/puppet/lib/puppet/pops/types/p_sem_ver_range_type.rb +191 -0
  833. data/vendored/puppet/lib/puppet/pops/types/p_sem_ver_type.rb +141 -0
  834. data/vendored/puppet/lib/puppet/pops/types/p_sensitive_type.rb +73 -0
  835. data/vendored/puppet/lib/puppet/pops/types/p_timespan_type.rb +192 -0
  836. data/vendored/puppet/lib/puppet/pops/types/p_timestamp_type.rb +73 -0
  837. data/vendored/puppet/lib/puppet/pops/types/p_type_set_type.rb +361 -0
  838. data/vendored/puppet/lib/puppet/pops/types/puppet_object.rb +30 -0
  839. data/vendored/puppet/lib/puppet/pops/types/recursion_guard.rb +136 -0
  840. data/vendored/puppet/lib/puppet/pops/types/ruby_generator.rb +432 -0
  841. data/vendored/puppet/lib/puppet/pops/types/ruby_method.rb +31 -0
  842. data/vendored/puppet/lib/puppet/pops/types/string_converter.rb +1102 -0
  843. data/vendored/puppet/lib/puppet/pops/types/task.rb +116 -0
  844. data/vendored/puppet/lib/puppet/pops/types/tree_iterators.rb +250 -0
  845. data/vendored/puppet/lib/puppet/pops/types/type_acceptor.rb +25 -0
  846. data/vendored/puppet/lib/puppet/pops/types/type_asserter.rb +47 -0
  847. data/vendored/puppet/lib/puppet/pops/types/type_assertion_error.rb +27 -0
  848. data/vendored/puppet/lib/puppet/pops/types/type_calculator.rb +799 -0
  849. data/vendored/puppet/lib/puppet/pops/types/type_conversion_error.rb +15 -0
  850. data/vendored/puppet/lib/puppet/pops/types/type_factory.rb +599 -0
  851. data/vendored/puppet/lib/puppet/pops/types/type_formatter.rb +769 -0
  852. data/vendored/puppet/lib/puppet/pops/types/type_mismatch_describer.rb +1062 -0
  853. data/vendored/puppet/lib/puppet/pops/types/type_parser.rb +602 -0
  854. data/vendored/puppet/lib/puppet/pops/types/type_set_reference.rb +59 -0
  855. data/vendored/puppet/lib/puppet/pops/types/types.rb +3519 -0
  856. data/vendored/puppet/lib/puppet/pops/utils.rb +119 -0
  857. data/vendored/puppet/lib/puppet/pops/validation.rb +464 -0
  858. data/vendored/puppet/lib/puppet/pops/validation/checker4_0.rb +996 -0
  859. data/vendored/puppet/lib/puppet/pops/validation/tasks_checker.rb +60 -0
  860. data/vendored/puppet/lib/puppet/pops/validation/validator_factory_4_0.rb +43 -0
  861. data/vendored/puppet/lib/puppet/pops/visitable.rb +6 -0
  862. data/vendored/puppet/lib/puppet/pops/visitor.rb +116 -0
  863. data/vendored/puppet/lib/puppet/property.rb +600 -0
  864. data/vendored/puppet/lib/puppet/property/boolean.rb +7 -0
  865. data/vendored/puppet/lib/puppet/property/ensure.rb +105 -0
  866. data/vendored/puppet/lib/puppet/property/keyvalue.rb +95 -0
  867. data/vendored/puppet/lib/puppet/property/list.rb +69 -0
  868. data/vendored/puppet/lib/puppet/property/ordered_list.rb +29 -0
  869. data/vendored/puppet/lib/puppet/provider.rb +603 -0
  870. data/vendored/puppet/lib/puppet/provider/aixobject.rb +392 -0
  871. data/vendored/puppet/lib/puppet/provider/augeas/augeas.rb +567 -0
  872. data/vendored/puppet/lib/puppet/provider/cisco.rb +9 -0
  873. data/vendored/puppet/lib/puppet/provider/command.rb +25 -0
  874. data/vendored/puppet/lib/puppet/provider/computer/computer.rb +20 -0
  875. data/vendored/puppet/lib/puppet/provider/confine.rb +6 -0
  876. data/vendored/puppet/lib/puppet/provider/cron/crontab.rb +297 -0
  877. data/vendored/puppet/lib/puppet/provider/exec.rb +98 -0
  878. data/vendored/puppet/lib/puppet/provider/exec/posix.rb +48 -0
  879. data/vendored/puppet/lib/puppet/provider/exec/shell.rb +25 -0
  880. data/vendored/puppet/lib/puppet/provider/exec/windows.rb +55 -0
  881. data/vendored/puppet/lib/puppet/provider/file/posix.rb +136 -0
  882. data/vendored/puppet/lib/puppet/provider/file/windows.rb +104 -0
  883. data/vendored/puppet/lib/puppet/provider/group/aix.rb +141 -0
  884. data/vendored/puppet/lib/puppet/provider/group/directoryservice.rb +22 -0
  885. data/vendored/puppet/lib/puppet/provider/group/groupadd.rb +85 -0
  886. data/vendored/puppet/lib/puppet/provider/group/ldap.rb +45 -0
  887. data/vendored/puppet/lib/puppet/provider/group/pw.rb +49 -0
  888. data/vendored/puppet/lib/puppet/provider/group/windows_adsi.rb +109 -0
  889. data/vendored/puppet/lib/puppet/provider/host/parsed.rb +46 -0
  890. data/vendored/puppet/lib/puppet/provider/interface/cisco.rb +27 -0
  891. data/vendored/puppet/lib/puppet/provider/ldap.rb +137 -0
  892. data/vendored/puppet/lib/puppet/provider/macauthorization/macauthorization.rb +298 -0
  893. data/vendored/puppet/lib/puppet/provider/mailalias/aliases.rb +50 -0
  894. data/vendored/puppet/lib/puppet/provider/maillist/mailman.rb +108 -0
  895. data/vendored/puppet/lib/puppet/provider/mcx/mcxcontent.rb +173 -0
  896. data/vendored/puppet/lib/puppet/provider/mount.rb +59 -0
  897. data/vendored/puppet/lib/puppet/provider/mount/parsed.rb +282 -0
  898. data/vendored/puppet/lib/puppet/provider/naginator.rb +63 -0
  899. data/vendored/puppet/lib/puppet/provider/nameservice.rb +317 -0
  900. data/vendored/puppet/lib/puppet/provider/nameservice/directoryservice.rb +507 -0
  901. data/vendored/puppet/lib/puppet/provider/nameservice/objectadd.rb +33 -0
  902. data/vendored/puppet/lib/puppet/provider/nameservice/pw.rb +21 -0
  903. data/vendored/puppet/lib/puppet/provider/network_device.rb +72 -0
  904. data/vendored/puppet/lib/puppet/provider/package.rb +56 -0
  905. data/vendored/puppet/lib/puppet/provider/package/aix.rb +152 -0
  906. data/vendored/puppet/lib/puppet/provider/package/appdmg.rb +110 -0
  907. data/vendored/puppet/lib/puppet/provider/package/apple.rb +47 -0
  908. data/vendored/puppet/lib/puppet/provider/package/apt.rb +116 -0
  909. data/vendored/puppet/lib/puppet/provider/package/aptitude.rb +29 -0
  910. data/vendored/puppet/lib/puppet/provider/package/aptrpm.rb +83 -0
  911. data/vendored/puppet/lib/puppet/provider/package/blastwave.rb +111 -0
  912. data/vendored/puppet/lib/puppet/provider/package/dnf.rb +46 -0
  913. data/vendored/puppet/lib/puppet/provider/package/dpkg.rb +165 -0
  914. data/vendored/puppet/lib/puppet/provider/package/fink.rb +79 -0
  915. data/vendored/puppet/lib/puppet/provider/package/freebsd.rb +47 -0
  916. data/vendored/puppet/lib/puppet/provider/package/gem.rb +175 -0
  917. data/vendored/puppet/lib/puppet/provider/package/hpux.rb +44 -0
  918. data/vendored/puppet/lib/puppet/provider/package/macports.rb +107 -0
  919. data/vendored/puppet/lib/puppet/provider/package/nim.rb +283 -0
  920. data/vendored/puppet/lib/puppet/provider/package/openbsd.rb +242 -0
  921. data/vendored/puppet/lib/puppet/provider/package/opkg.rb +81 -0
  922. data/vendored/puppet/lib/puppet/provider/package/pacman.rb +267 -0
  923. data/vendored/puppet/lib/puppet/provider/package/pip.rb +188 -0
  924. data/vendored/puppet/lib/puppet/provider/package/pip3.rb +20 -0
  925. data/vendored/puppet/lib/puppet/provider/package/pkg.rb +249 -0
  926. data/vendored/puppet/lib/puppet/provider/package/pkgdmg.rb +152 -0
  927. data/vendored/puppet/lib/puppet/provider/package/pkgin.rb +87 -0
  928. data/vendored/puppet/lib/puppet/provider/package/pkgng.rb +143 -0
  929. data/vendored/puppet/lib/puppet/provider/package/pkgutil.rb +186 -0
  930. data/vendored/puppet/lib/puppet/provider/package/portage.rb +301 -0
  931. data/vendored/puppet/lib/puppet/provider/package/ports.rb +91 -0
  932. data/vendored/puppet/lib/puppet/provider/package/portupgrade.rb +239 -0
  933. data/vendored/puppet/lib/puppet/provider/package/puppet_gem.rb +17 -0
  934. data/vendored/puppet/lib/puppet/provider/package/rpm.rb +405 -0
  935. data/vendored/puppet/lib/puppet/provider/package/rug.rb +51 -0
  936. data/vendored/puppet/lib/puppet/provider/package/sun.rb +133 -0
  937. data/vendored/puppet/lib/puppet/provider/package/sunfreeware.rb +9 -0
  938. data/vendored/puppet/lib/puppet/provider/package/tdnf.rb +28 -0
  939. data/vendored/puppet/lib/puppet/provider/package/up2date.rb +40 -0
  940. data/vendored/puppet/lib/puppet/provider/package/urpmi.rb +55 -0
  941. data/vendored/puppet/lib/puppet/provider/package/windows.rb +113 -0
  942. data/vendored/puppet/lib/puppet/provider/package/windows/exe_package.rb +71 -0
  943. data/vendored/puppet/lib/puppet/provider/package/windows/msi_package.rb +62 -0
  944. data/vendored/puppet/lib/puppet/provider/package/windows/package.rb +100 -0
  945. data/vendored/puppet/lib/puppet/provider/package/yum.rb +278 -0
  946. data/vendored/puppet/lib/puppet/provider/package/zypper.rb +145 -0
  947. data/vendored/puppet/lib/puppet/provider/parsedfile.rb +459 -0
  948. data/vendored/puppet/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +590 -0
  949. data/vendored/puppet/lib/puppet/provider/selboolean/getsetsebool.rb +47 -0
  950. data/vendored/puppet/lib/puppet/provider/selmodule/semodule.rb +138 -0
  951. data/vendored/puppet/lib/puppet/provider/service/base.rb +121 -0
  952. data/vendored/puppet/lib/puppet/provider/service/bsd.rb +51 -0
  953. data/vendored/puppet/lib/puppet/provider/service/daemontools.rb +194 -0
  954. data/vendored/puppet/lib/puppet/provider/service/debian.rb +74 -0
  955. data/vendored/puppet/lib/puppet/provider/service/freebsd.rb +143 -0
  956. data/vendored/puppet/lib/puppet/provider/service/gentoo.rb +45 -0
  957. data/vendored/puppet/lib/puppet/provider/service/init.rb +193 -0
  958. data/vendored/puppet/lib/puppet/provider/service/launchd.rb +346 -0
  959. data/vendored/puppet/lib/puppet/provider/service/openbsd.rb +100 -0
  960. data/vendored/puppet/lib/puppet/provider/service/openrc.rb +71 -0
  961. data/vendored/puppet/lib/puppet/provider/service/openwrt.rb +36 -0
  962. data/vendored/puppet/lib/puppet/provider/service/rcng.rb +51 -0
  963. data/vendored/puppet/lib/puppet/provider/service/redhat.rb +71 -0
  964. data/vendored/puppet/lib/puppet/provider/service/runit.rb +111 -0
  965. data/vendored/puppet/lib/puppet/provider/service/service.rb +42 -0
  966. data/vendored/puppet/lib/puppet/provider/service/smf.rb +167 -0
  967. data/vendored/puppet/lib/puppet/provider/service/src.rb +147 -0
  968. data/vendored/puppet/lib/puppet/provider/service/systemd.rb +186 -0
  969. data/vendored/puppet/lib/puppet/provider/service/upstart.rb +359 -0
  970. data/vendored/puppet/lib/puppet/provider/service/windows.rb +106 -0
  971. data/vendored/puppet/lib/puppet/provider/ssh_authorized_key/parsed.rb +105 -0
  972. data/vendored/puppet/lib/puppet/provider/sshkey/parsed.rb +50 -0
  973. data/vendored/puppet/lib/puppet/provider/user/aix.rb +375 -0
  974. data/vendored/puppet/lib/puppet/provider/user/directoryservice.rb +632 -0
  975. data/vendored/puppet/lib/puppet/provider/user/hpux.rb +95 -0
  976. data/vendored/puppet/lib/puppet/provider/user/ldap.rb +128 -0
  977. data/vendored/puppet/lib/puppet/provider/user/openbsd.rb +75 -0
  978. data/vendored/puppet/lib/puppet/provider/user/pw.rb +98 -0
  979. data/vendored/puppet/lib/puppet/provider/user/user_role_add.rb +227 -0
  980. data/vendored/puppet/lib/puppet/provider/user/useradd.rb +231 -0
  981. data/vendored/puppet/lib/puppet/provider/user/windows_adsi.rb +148 -0
  982. data/vendored/puppet/lib/puppet/provider/vlan/cisco.rb +28 -0
  983. data/vendored/puppet/lib/puppet/provider/yumrepo/inifile.rb +304 -0
  984. data/vendored/puppet/lib/puppet/provider/zfs/zfs.rb +84 -0
  985. data/vendored/puppet/lib/puppet/provider/zone/solaris.rb +364 -0
  986. data/vendored/puppet/lib/puppet/provider/zpool/zpool.rb +125 -0
  987. data/vendored/puppet/lib/puppet/reference/configuration.rb +82 -0
  988. data/vendored/puppet/lib/puppet/reference/function.rb +17 -0
  989. data/vendored/puppet/lib/puppet/reference/indirection.rb +71 -0
  990. data/vendored/puppet/lib/puppet/reference/metaparameter.rb +35 -0
  991. data/vendored/puppet/lib/puppet/reference/providers.rb +118 -0
  992. data/vendored/puppet/lib/puppet/reference/report.rb +20 -0
  993. data/vendored/puppet/lib/puppet/reference/type.rb +114 -0
  994. data/vendored/puppet/lib/puppet/relationship.rb +88 -0
  995. data/vendored/puppet/lib/puppet/reports.rb +93 -0
  996. data/vendored/puppet/lib/puppet/reports/http.rb +37 -0
  997. data/vendored/puppet/lib/puppet/reports/log.rb +14 -0
  998. data/vendored/puppet/lib/puppet/reports/store.rb +68 -0
  999. data/vendored/puppet/lib/puppet/resource.rb +669 -0
  1000. data/vendored/puppet/lib/puppet/resource/capability_finder.rb +147 -0
  1001. data/vendored/puppet/lib/puppet/resource/catalog.rb +667 -0
  1002. data/vendored/puppet/lib/puppet/resource/status.rb +221 -0
  1003. data/vendored/puppet/lib/puppet/resource/type.rb +524 -0
  1004. data/vendored/puppet/lib/puppet/resource/type_collection.rb +263 -0
  1005. data/vendored/puppet/lib/puppet/scheduler.rb +16 -0
  1006. data/vendored/puppet/lib/puppet/scheduler/job.rb +53 -0
  1007. data/vendored/puppet/lib/puppet/scheduler/scheduler.rb +44 -0
  1008. data/vendored/puppet/lib/puppet/scheduler/splay_job.rb +32 -0
  1009. data/vendored/puppet/lib/puppet/scheduler/timer.rb +13 -0
  1010. data/vendored/puppet/lib/puppet/settings.rb +1457 -0
  1011. data/vendored/puppet/lib/puppet/settings/array_setting.rb +17 -0
  1012. data/vendored/puppet/lib/puppet/settings/autosign_setting.rb +22 -0
  1013. data/vendored/puppet/lib/puppet/settings/base_setting.rb +177 -0
  1014. data/vendored/puppet/lib/puppet/settings/boolean_setting.rb +32 -0
  1015. data/vendored/puppet/lib/puppet/settings/certificate_revocation_setting.rb +21 -0
  1016. data/vendored/puppet/lib/puppet/settings/config_file.rb +143 -0
  1017. data/vendored/puppet/lib/puppet/settings/directory_setting.rb +18 -0
  1018. data/vendored/puppet/lib/puppet/settings/duration_setting.rb +32 -0
  1019. data/vendored/puppet/lib/puppet/settings/enum_setting.rb +16 -0
  1020. data/vendored/puppet/lib/puppet/settings/environment_conf.rb +204 -0
  1021. data/vendored/puppet/lib/puppet/settings/errors.rb +11 -0
  1022. data/vendored/puppet/lib/puppet/settings/file_or_directory_setting.rb +40 -0
  1023. data/vendored/puppet/lib/puppet/settings/file_setting.rb +245 -0
  1024. data/vendored/puppet/lib/puppet/settings/ini_file.rb +200 -0
  1025. data/vendored/puppet/lib/puppet/settings/path_setting.rb +8 -0
  1026. data/vendored/puppet/lib/puppet/settings/priority_setting.rb +42 -0
  1027. data/vendored/puppet/lib/puppet/settings/server_list_setting.rb +20 -0
  1028. data/vendored/puppet/lib/puppet/settings/string_setting.rb +9 -0
  1029. data/vendored/puppet/lib/puppet/settings/symbolic_enum_setting.rb +17 -0
  1030. data/vendored/puppet/lib/puppet/settings/terminus_setting.rb +14 -0
  1031. data/vendored/puppet/lib/puppet/settings/ttl_setting.rb +46 -0
  1032. data/vendored/puppet/lib/puppet/settings/value_translator.rb +15 -0
  1033. data/vendored/puppet/lib/puppet/ssl.rb +13 -0
  1034. data/vendored/puppet/lib/puppet/ssl/base.rb +153 -0
  1035. data/vendored/puppet/lib/puppet/ssl/certificate.rb +95 -0
  1036. data/vendored/puppet/lib/puppet/ssl/certificate_authority.rb +553 -0
  1037. data/vendored/puppet/lib/puppet/ssl/certificate_authority/autosign_command.rb +45 -0
  1038. data/vendored/puppet/lib/puppet/ssl/certificate_authority/interface.rb +324 -0
  1039. data/vendored/puppet/lib/puppet/ssl/certificate_factory.rb +219 -0
  1040. data/vendored/puppet/lib/puppet/ssl/certificate_request.rb +327 -0
  1041. data/vendored/puppet/lib/puppet/ssl/certificate_request_attributes.rb +37 -0
  1042. data/vendored/puppet/lib/puppet/ssl/certificate_revocation_list.rb +111 -0
  1043. data/vendored/puppet/lib/puppet/ssl/certificate_signer.rb +27 -0
  1044. data/vendored/puppet/lib/puppet/ssl/configuration.rb +61 -0
  1045. data/vendored/puppet/lib/puppet/ssl/digest.rb +20 -0
  1046. data/vendored/puppet/lib/puppet/ssl/host.rb +400 -0
  1047. data/vendored/puppet/lib/puppet/ssl/inventory.rb +55 -0
  1048. data/vendored/puppet/lib/puppet/ssl/key.rb +63 -0
  1049. data/vendored/puppet/lib/puppet/ssl/oids.rb +187 -0
  1050. data/vendored/puppet/lib/puppet/ssl/validator.rb +60 -0
  1051. data/vendored/puppet/lib/puppet/ssl/validator/default_validator.rb +173 -0
  1052. data/vendored/puppet/lib/puppet/ssl/validator/no_validator.rb +20 -0
  1053. data/vendored/puppet/lib/puppet/status.rb +40 -0
  1054. data/vendored/puppet/lib/puppet/syntax_checkers.rb +3 -0
  1055. data/vendored/puppet/lib/puppet/syntax_checkers/base64.rb +41 -0
  1056. data/vendored/puppet/lib/puppet/syntax_checkers/json.rb +35 -0
  1057. data/vendored/puppet/lib/puppet/test/test_helper.rb +252 -0
  1058. data/vendored/puppet/lib/puppet/transaction.rb +417 -0
  1059. data/vendored/puppet/lib/puppet/transaction/additional_resource_generator.rb +220 -0
  1060. data/vendored/puppet/lib/puppet/transaction/event.rb +144 -0
  1061. data/vendored/puppet/lib/puppet/transaction/event_manager.rb +167 -0
  1062. data/vendored/puppet/lib/puppet/transaction/persistence.rb +84 -0
  1063. data/vendored/puppet/lib/puppet/transaction/report.rb +460 -0
  1064. data/vendored/puppet/lib/puppet/transaction/resource_harness.rb +318 -0
  1065. data/vendored/puppet/lib/puppet/type.rb +2664 -0
  1066. data/vendored/puppet/lib/puppet/type/augeas.rb +211 -0
  1067. data/vendored/puppet/lib/puppet/type/component.rb +88 -0
  1068. data/vendored/puppet/lib/puppet/type/computer.rb +66 -0
  1069. data/vendored/puppet/lib/puppet/type/cron.rb +475 -0
  1070. data/vendored/puppet/lib/puppet/type/exec.rb +622 -0
  1071. data/vendored/puppet/lib/puppet/type/file.rb +1039 -0
  1072. data/vendored/puppet/lib/puppet/type/file/checksum.rb +44 -0
  1073. data/vendored/puppet/lib/puppet/type/file/checksum_value.rb +53 -0
  1074. data/vendored/puppet/lib/puppet/type/file/content.rb +160 -0
  1075. data/vendored/puppet/lib/puppet/type/file/ctime.rb +20 -0
  1076. data/vendored/puppet/lib/puppet/type/file/data_sync.rb +92 -0
  1077. data/vendored/puppet/lib/puppet/type/file/ensure.rb +192 -0
  1078. data/vendored/puppet/lib/puppet/type/file/group.rb +41 -0
  1079. data/vendored/puppet/lib/puppet/type/file/mode.rb +177 -0
  1080. data/vendored/puppet/lib/puppet/type/file/mtime.rb +18 -0
  1081. data/vendored/puppet/lib/puppet/type/file/owner.rb +44 -0
  1082. data/vendored/puppet/lib/puppet/type/file/selcontext.rb +141 -0
  1083. data/vendored/puppet/lib/puppet/type/file/source.rb +356 -0
  1084. data/vendored/puppet/lib/puppet/type/file/target.rb +87 -0
  1085. data/vendored/puppet/lib/puppet/type/file/type.rb +19 -0
  1086. data/vendored/puppet/lib/puppet/type/filebucket.rb +117 -0
  1087. data/vendored/puppet/lib/puppet/type/group.rb +206 -0
  1088. data/vendored/puppet/lib/puppet/type/host.rb +95 -0
  1089. data/vendored/puppet/lib/puppet/type/interface.rb +121 -0
  1090. data/vendored/puppet/lib/puppet/type/k5login.rb +88 -0
  1091. data/vendored/puppet/lib/puppet/type/macauthorization.rb +167 -0
  1092. data/vendored/puppet/lib/puppet/type/mailalias.rb +46 -0
  1093. data/vendored/puppet/lib/puppet/type/maillist.rb +62 -0
  1094. data/vendored/puppet/lib/puppet/type/mcx.rb +98 -0
  1095. data/vendored/puppet/lib/puppet/type/mount.rb +310 -0
  1096. data/vendored/puppet/lib/puppet/type/nagios_command.rb +3 -0
  1097. data/vendored/puppet/lib/puppet/type/nagios_contact.rb +3 -0
  1098. data/vendored/puppet/lib/puppet/type/nagios_contactgroup.rb +3 -0
  1099. data/vendored/puppet/lib/puppet/type/nagios_host.rb +3 -0
  1100. data/vendored/puppet/lib/puppet/type/nagios_hostdependency.rb +3 -0
  1101. data/vendored/puppet/lib/puppet/type/nagios_hostescalation.rb +3 -0
  1102. data/vendored/puppet/lib/puppet/type/nagios_hostextinfo.rb +3 -0
  1103. data/vendored/puppet/lib/puppet/type/nagios_hostgroup.rb +3 -0
  1104. data/vendored/puppet/lib/puppet/type/nagios_service.rb +3 -0
  1105. data/vendored/puppet/lib/puppet/type/nagios_servicedependency.rb +3 -0
  1106. data/vendored/puppet/lib/puppet/type/nagios_serviceescalation.rb +3 -0
  1107. data/vendored/puppet/lib/puppet/type/nagios_serviceextinfo.rb +3 -0
  1108. data/vendored/puppet/lib/puppet/type/nagios_servicegroup.rb +3 -0
  1109. data/vendored/puppet/lib/puppet/type/nagios_timeperiod.rb +3 -0
  1110. data/vendored/puppet/lib/puppet/type/notify.rb +46 -0
  1111. data/vendored/puppet/lib/puppet/type/package.rb +571 -0
  1112. data/vendored/puppet/lib/puppet/type/resources.rb +180 -0
  1113. data/vendored/puppet/lib/puppet/type/router.rb +17 -0
  1114. data/vendored/puppet/lib/puppet/type/schedule.rb +469 -0
  1115. data/vendored/puppet/lib/puppet/type/scheduled_task.rb +183 -0
  1116. data/vendored/puppet/lib/puppet/type/selboolean.rb +26 -0
  1117. data/vendored/puppet/lib/puppet/type/selmodule.rb +59 -0
  1118. data/vendored/puppet/lib/puppet/type/service.rb +258 -0
  1119. data/vendored/puppet/lib/puppet/type/ssh_authorized_key.rb +143 -0
  1120. data/vendored/puppet/lib/puppet/type/sshkey.rb +83 -0
  1121. data/vendored/puppet/lib/puppet/type/stage.rb +27 -0
  1122. data/vendored/puppet/lib/puppet/type/tidy.rb +336 -0
  1123. data/vendored/puppet/lib/puppet/type/user.rb +770 -0
  1124. data/vendored/puppet/lib/puppet/type/vlan.rb +26 -0
  1125. data/vendored/puppet/lib/puppet/type/whit.rb +34 -0
  1126. data/vendored/puppet/lib/puppet/type/yumrepo.rb +409 -0
  1127. data/vendored/puppet/lib/puppet/type/zfs.rb +150 -0
  1128. data/vendored/puppet/lib/puppet/type/zone.rb +382 -0
  1129. data/vendored/puppet/lib/puppet/type/zpool.rb +91 -0
  1130. data/vendored/puppet/lib/puppet/util.rb +705 -0
  1131. data/vendored/puppet/lib/puppet/util/at_fork.rb +35 -0
  1132. data/vendored/puppet/lib/puppet/util/at_fork/noop.rb +18 -0
  1133. data/vendored/puppet/lib/puppet/util/at_fork/solaris.rb +158 -0
  1134. data/vendored/puppet/lib/puppet/util/autoload.rb +226 -0
  1135. data/vendored/puppet/lib/puppet/util/backups.rb +86 -0
  1136. data/vendored/puppet/lib/puppet/util/character_encoding.rb +98 -0
  1137. data/vendored/puppet/lib/puppet/util/checksums.rb +282 -0
  1138. data/vendored/puppet/lib/puppet/util/classgen.rb +228 -0
  1139. data/vendored/puppet/lib/puppet/util/colors.rb +100 -0
  1140. data/vendored/puppet/lib/puppet/util/command_line.rb +185 -0
  1141. data/vendored/puppet/lib/puppet/util/command_line/puppet_option_parser.rb +87 -0
  1142. data/vendored/puppet/lib/puppet/util/command_line/trollop.rb +824 -0
  1143. data/vendored/puppet/lib/puppet/util/constant_inflector.rb +24 -0
  1144. data/vendored/puppet/lib/puppet/util/diff.rb +79 -0
  1145. data/vendored/puppet/lib/puppet/util/docs.rb +128 -0
  1146. data/vendored/puppet/lib/puppet/util/errors.rb +108 -0
  1147. data/vendored/puppet/lib/puppet/util/execution.rb +412 -0
  1148. data/vendored/puppet/lib/puppet/util/execution_stub.rb +26 -0
  1149. data/vendored/puppet/lib/puppet/util/feature.rb +95 -0
  1150. data/vendored/puppet/lib/puppet/util/file_watcher.rb +28 -0
  1151. data/vendored/puppet/lib/puppet/util/fileparsing.rb +377 -0
  1152. data/vendored/puppet/lib/puppet/util/filetype.rb +309 -0
  1153. data/vendored/puppet/lib/puppet/util/http_proxy.rb +197 -0
  1154. data/vendored/puppet/lib/puppet/util/inifile.rb +341 -0
  1155. data/vendored/puppet/lib/puppet/util/instance_loader.rb +81 -0
  1156. data/vendored/puppet/lib/puppet/util/json_lockfile.rb +44 -0
  1157. data/vendored/puppet/lib/puppet/util/ldap.rb +2 -0
  1158. data/vendored/puppet/lib/puppet/util/ldap/connection.rb +71 -0
  1159. data/vendored/puppet/lib/puppet/util/ldap/generator.rb +42 -0
  1160. data/vendored/puppet/lib/puppet/util/ldap/manager.rb +278 -0
  1161. data/vendored/puppet/lib/puppet/util/libuser.conf +15 -0
  1162. data/vendored/puppet/lib/puppet/util/libuser.rb +12 -0
  1163. data/vendored/puppet/lib/puppet/util/limits.rb +12 -0
  1164. data/vendored/puppet/lib/puppet/util/lockfile.rb +66 -0
  1165. data/vendored/puppet/lib/puppet/util/log.rb +423 -0
  1166. data/vendored/puppet/lib/puppet/util/log/destination.rb +49 -0
  1167. data/vendored/puppet/lib/puppet/util/log/destinations.rb +249 -0
  1168. data/vendored/puppet/lib/puppet/util/logging.rb +318 -0
  1169. data/vendored/puppet/lib/puppet/util/metaid.rb +21 -0
  1170. data/vendored/puppet/lib/puppet/util/methodhelper.rb +32 -0
  1171. data/vendored/puppet/lib/puppet/util/metric.rb +64 -0
  1172. data/vendored/puppet/lib/puppet/util/monkey_patches.rb +108 -0
  1173. data/vendored/puppet/lib/puppet/util/multi_match.rb +51 -0
  1174. data/vendored/puppet/lib/puppet/util/nagios_maker.rb +85 -0
  1175. data/vendored/puppet/lib/puppet/util/network_device.rb +17 -0
  1176. data/vendored/puppet/lib/puppet/util/network_device/base.rb +23 -0
  1177. data/vendored/puppet/lib/puppet/util/network_device/cisco.rb +4 -0
  1178. data/vendored/puppet/lib/puppet/util/network_device/cisco/device.rb +285 -0
  1179. data/vendored/puppet/lib/puppet/util/network_device/cisco/facts.rb +72 -0
  1180. data/vendored/puppet/lib/puppet/util/network_device/cisco/interface.rb +94 -0
  1181. data/vendored/puppet/lib/puppet/util/network_device/config.rb +98 -0
  1182. data/vendored/puppet/lib/puppet/util/network_device/ipcalc.rb +68 -0
  1183. data/vendored/puppet/lib/puppet/util/network_device/transport.rb +5 -0
  1184. data/vendored/puppet/lib/puppet/util/network_device/transport/base.rb +26 -0
  1185. data/vendored/puppet/lib/puppet/util/network_device/transport/ssh.rb +126 -0
  1186. data/vendored/puppet/lib/puppet/util/network_device/transport/telnet.rb +47 -0
  1187. data/vendored/puppet/lib/puppet/util/package.rb +31 -0
  1188. data/vendored/puppet/lib/puppet/util/pidlock.rb +62 -0
  1189. data/vendored/puppet/lib/puppet/util/platform.rb +22 -0
  1190. data/vendored/puppet/lib/puppet/util/plist.rb +153 -0
  1191. data/vendored/puppet/lib/puppet/util/posix.rb +137 -0
  1192. data/vendored/puppet/lib/puppet/util/profiler.rb +53 -0
  1193. data/vendored/puppet/lib/puppet/util/profiler/aggregate.rb +85 -0
  1194. data/vendored/puppet/lib/puppet/util/profiler/around_profiler.rb +67 -0
  1195. data/vendored/puppet/lib/puppet/util/profiler/logging.rb +48 -0
  1196. data/vendored/puppet/lib/puppet/util/profiler/object_counts.rb +17 -0
  1197. data/vendored/puppet/lib/puppet/util/profiler/wall_clock.rb +35 -0
  1198. data/vendored/puppet/lib/puppet/util/provider_features.rb +184 -0
  1199. data/vendored/puppet/lib/puppet/util/psych_support.rb +30 -0
  1200. data/vendored/puppet/lib/puppet/util/rdoc.rb +60 -0
  1201. data/vendored/puppet/lib/puppet/util/rdoc/code_objects.rb +294 -0
  1202. data/vendored/puppet/lib/puppet/util/rdoc/generators/puppet_generator.rb +910 -0
  1203. data/vendored/puppet/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1085 -0
  1204. data/vendored/puppet/lib/puppet/util/rdoc/parser.rb +12 -0
  1205. data/vendored/puppet/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +259 -0
  1206. data/vendored/puppet/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +14 -0
  1207. data/vendored/puppet/lib/puppet/util/reference.rb +126 -0
  1208. data/vendored/puppet/lib/puppet/util/resource_template.rb +61 -0
  1209. data/vendored/puppet/lib/puppet/util/retry_action.rb +46 -0
  1210. data/vendored/puppet/lib/puppet/util/rubygems.rb +75 -0
  1211. data/vendored/puppet/lib/puppet/util/run_mode.rb +110 -0
  1212. data/vendored/puppet/lib/puppet/util/selinux.rb +264 -0
  1213. data/vendored/puppet/lib/puppet/util/skip_tags.rb +9 -0
  1214. data/vendored/puppet/lib/puppet/util/splayer.rb +18 -0
  1215. data/vendored/puppet/lib/puppet/util/ssl.rb +53 -0
  1216. data/vendored/puppet/lib/puppet/util/storage.rb +89 -0
  1217. data/vendored/puppet/lib/puppet/util/suidmanager.rb +165 -0
  1218. data/vendored/puppet/lib/puppet/util/symbolic_file_mode.rb +144 -0
  1219. data/vendored/puppet/lib/puppet/util/tag_set.rb +27 -0
  1220. data/vendored/puppet/lib/puppet/util/tagging.rb +118 -0
  1221. data/vendored/puppet/lib/puppet/util/terminal.rb +16 -0
  1222. data/vendored/puppet/lib/puppet/util/user_attr.rb +21 -0
  1223. data/vendored/puppet/lib/puppet/util/warnings.rb +33 -0
  1224. data/vendored/puppet/lib/puppet/util/watched_file.rb +37 -0
  1225. data/vendored/puppet/lib/puppet/util/watcher.rb +17 -0
  1226. data/vendored/puppet/lib/puppet/util/watcher/change_watcher.rb +33 -0
  1227. data/vendored/puppet/lib/puppet/util/watcher/periodic_watcher.rb +37 -0
  1228. data/vendored/puppet/lib/puppet/util/watcher/timer.rb +19 -0
  1229. data/vendored/puppet/lib/puppet/util/windows.rb +35 -0
  1230. data/vendored/puppet/lib/puppet/util/windows/access_control_entry.rb +84 -0
  1231. data/vendored/puppet/lib/puppet/util/windows/access_control_list.rb +113 -0
  1232. data/vendored/puppet/lib/puppet/util/windows/adsi.rb +548 -0
  1233. data/vendored/puppet/lib/puppet/util/windows/api_types.rb +282 -0
  1234. data/vendored/puppet/lib/puppet/util/windows/com.rb +224 -0
  1235. data/vendored/puppet/lib/puppet/util/windows/error.rb +83 -0
  1236. data/vendored/puppet/lib/puppet/util/windows/eventlog.rb +192 -0
  1237. data/vendored/puppet/lib/puppet/util/windows/file.rb +488 -0
  1238. data/vendored/puppet/lib/puppet/util/windows/principal.rb +191 -0
  1239. data/vendored/puppet/lib/puppet/util/windows/process.rb +497 -0
  1240. data/vendored/puppet/lib/puppet/util/windows/registry.rb +374 -0
  1241. data/vendored/puppet/lib/puppet/util/windows/root_certs.rb +108 -0
  1242. data/vendored/puppet/lib/puppet/util/windows/security.rb +857 -0
  1243. data/vendored/puppet/lib/puppet/util/windows/security_descriptor.rb +62 -0
  1244. data/vendored/puppet/lib/puppet/util/windows/sid.rb +231 -0
  1245. data/vendored/puppet/lib/puppet/util/windows/string.rb +16 -0
  1246. data/vendored/puppet/lib/puppet/util/windows/taskscheduler.rb +1276 -0
  1247. data/vendored/puppet/lib/puppet/util/windows/user.rb +309 -0
  1248. data/vendored/puppet/lib/puppet/util/yaml.rb +36 -0
  1249. data/vendored/puppet/lib/puppet/vendor.rb +57 -0
  1250. data/vendored/puppet/lib/puppet/vendor/deep_merge/CHANGELOG +45 -0
  1251. data/vendored/puppet/lib/puppet/vendor/deep_merge/Gemfile +3 -0
  1252. data/vendored/puppet/lib/puppet/vendor/deep_merge/LICENSE +21 -0
  1253. data/vendored/puppet/lib/puppet/vendor/deep_merge/PUPPET_README.md +6 -0
  1254. data/vendored/puppet/lib/puppet/vendor/deep_merge/README.md +113 -0
  1255. data/vendored/puppet/lib/puppet/vendor/deep_merge/Rakefile +19 -0
  1256. data/vendored/puppet/lib/puppet/vendor/deep_merge/deep_merge.gemspec +35 -0
  1257. data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge.rb +2 -0
  1258. data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/core.rb +210 -0
  1259. data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/deep_merge_hash.rb +28 -0
  1260. data/vendored/puppet/lib/puppet/vendor/deep_merge/lib/deep_merge/rails_compat.rb +27 -0
  1261. data/vendored/puppet/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +608 -0
  1262. data/vendored/puppet/lib/puppet/vendor/load_deep_merge.rb +1 -0
  1263. data/vendored/puppet/lib/puppet/vendor/load_pathspec.rb +1 -0
  1264. data/vendored/puppet/lib/puppet/vendor/load_semantic.rb +1 -0
  1265. data/vendored/puppet/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
  1266. data/vendored/puppet/lib/puppet/vendor/pathspec/CHANGELOG.md +2 -0
  1267. data/vendored/puppet/lib/puppet/vendor/pathspec/LICENSE +201 -0
  1268. data/vendored/puppet/lib/puppet/vendor/pathspec/PUPPET_README.md +6 -0
  1269. data/vendored/puppet/lib/puppet/vendor/pathspec/README.md +53 -0
  1270. data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec.rb +122 -0
  1271. data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +275 -0
  1272. data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +17 -0
  1273. data/vendored/puppet/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +14 -0
  1274. data/vendored/puppet/lib/puppet/vendor/require_vendored.rb +6 -0
  1275. data/vendored/puppet/lib/puppet/vendor/semantic/lib/semantic.rb +5 -0
  1276. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +7 -0
  1277. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency.rb +181 -0
  1278. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph.rb +60 -0
  1279. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/graph_node.rb +117 -0
  1280. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +58 -0
  1281. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/source.rb +25 -0
  1282. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/unsatisfiable_graph.rb +31 -0
  1283. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
  1284. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +203 -0
  1285. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +758 -0
  1286. data/vendored/puppet/lib/puppet/vendor/semantic_puppet/locales/config.yaml +21 -0
  1287. data/vendored/puppet/lib/puppet/version.rb +93 -0
  1288. data/vendored/puppet/lib/puppet_pal.rb +290 -0
  1289. data/vendored/puppet/lib/puppet_x.rb +14 -0
  1290. data/vendored/require_vendored.rb +11 -0
  1291. metadata +1501 -9
@@ -0,0 +1,7 @@
1
+ require 'puppet/coercion'
2
+
3
+ class Puppet::Property::Boolean < Puppet::Property
4
+ def unsafe_munge(value)
5
+ Puppet::Coercion.boolean(value)
6
+ end
7
+ end
@@ -0,0 +1,105 @@
1
+ require 'puppet/property'
2
+
3
+ # This property is automatically added to any {Puppet::Type} that responds
4
+ # to the methods 'exists?', 'create', and 'destroy'.
5
+ #
6
+ # Ensure defaults to having the wanted _(should)_ value `:present`.
7
+ #
8
+ # @api public
9
+ #
10
+ class Puppet::Property::Ensure < Puppet::Property
11
+ @name = :ensure
12
+
13
+ def self.defaultvalues
14
+ newvalue(:present) do
15
+ if @resource.provider and @resource.provider.respond_to?(:create)
16
+ @resource.provider.create
17
+ else
18
+ @resource.create
19
+ end
20
+ nil # return nil so the event is autogenerated
21
+ end
22
+
23
+ newvalue(:absent) do
24
+ if @resource.provider and @resource.provider.respond_to?(:destroy)
25
+ @resource.provider.destroy
26
+ else
27
+ @resource.destroy
28
+ end
29
+ nil # return nil so the event is autogenerated
30
+ end
31
+
32
+ defaultto do
33
+ if @resource.managed?
34
+ :present
35
+ else
36
+ nil
37
+ end
38
+ end
39
+
40
+ # This doc will probably get overridden
41
+ @doc ||= "The basic property that the resource should be in."
42
+ end
43
+
44
+ def self.inherited(sub)
45
+ # Add in the two properties that everyone will have.
46
+ sub.class_eval do
47
+ end
48
+ end
49
+
50
+ def change_to_s(currentvalue, newvalue)
51
+ begin
52
+ if currentvalue == :absent || currentvalue.nil?
53
+ return _("created")
54
+ elsif newvalue == :absent
55
+ return _("removed")
56
+ else
57
+ return _('%{name} changed %{is} to %{should}') % { name: name, is: is_to_s(currentvalue), should: should_to_s(newvalue) }
58
+ end
59
+ rescue Puppet::Error, Puppet::DevError
60
+ raise
61
+ rescue => detail
62
+ raise Puppet::DevError, "Could not convert change #{self.name} to string: #{detail}", detail.backtrace
63
+ end
64
+ end
65
+
66
+ # Retrieves the _is_ value for the ensure property.
67
+ # The existence of the resource is checked by first consulting the provider (if it responds to
68
+ # `:exists`), and secondly the resource. A a value of `:present` or `:absent` is returned
69
+ # depending on if the managed entity exists or not.
70
+ #
71
+ # @return [Symbol] a value of `:present` or `:absent` depending on if it exists or not
72
+ # @raise [Puppet::DevError] if neither the provider nor the resource responds to `:exists`
73
+ #
74
+ def retrieve
75
+ # XXX This is a problem -- whether the object exists or not often
76
+ # depends on the results of other properties, yet we're the first property
77
+ # to get checked, which means that those other properties do not have
78
+ # @is values set. This seems to be the source of quite a few bugs,
79
+ # although they're mostly logging bugs, not functional ones.
80
+ if prov = @resource.provider and prov.respond_to?(:exists?)
81
+ result = prov.exists?
82
+ elsif @resource.respond_to?(:exists?)
83
+ result = @resource.exists?
84
+ else
85
+ raise Puppet::DevError, "No ability to determine if #{@resource.class.name} exists"
86
+ end
87
+ if result
88
+ return :present
89
+ else
90
+ return :absent
91
+ end
92
+ end
93
+
94
+ # If they're talking about the thing at all, they generally want to
95
+ # say it should exist.
96
+ #defaultto :present
97
+ defaultto do
98
+ if @resource.managed?
99
+ :present
100
+ else
101
+ nil
102
+ end
103
+ end
104
+ end
105
+
@@ -0,0 +1,95 @@
1
+ require 'puppet/property'
2
+
3
+ module Puppet
4
+ class Property
5
+ # This subclass of {Puppet::Property} manages string key value pairs.
6
+ # In order to use this property:
7
+ #
8
+ # * the _should_ value must be an array of key-value pairs separated by the 'separator'
9
+ # * the retrieve method should return a hash with the keys as symbols
10
+ # @note **IMPORTANT**: In order for this property to work there must also be a 'membership' parameter
11
+ # The class that inherits from property should override that method with the symbol for the membership
12
+ # @todo The node with an important message is not very clear.
13
+ #
14
+ class KeyValue < Property
15
+
16
+ def hash_to_key_value_s(hash)
17
+ hash.select { |k,v| true }.map { |pair| pair.join(separator) }.join(delimiter)
18
+ end
19
+
20
+ def should_to_s(should_value)
21
+ hash_to_key_value_s(should_value)
22
+ end
23
+
24
+ def is_to_s(current_value)
25
+ hash_to_key_value_s(current_value)
26
+ end
27
+
28
+ def membership
29
+ :key_value_membership
30
+ end
31
+
32
+ def inclusive?
33
+ @resource[membership] == :inclusive
34
+ end
35
+
36
+ def hashify(key_value_array)
37
+ #turns string array into a hash
38
+ key_value_array.inject({}) do |hash, key_value|
39
+ tmp = key_value.split(separator)
40
+ hash[tmp[0].intern] = tmp[1]
41
+ hash
42
+ end
43
+ end
44
+
45
+ def process_current_hash(current)
46
+ return {} if current == :absent
47
+
48
+ #inclusive means we are managing everything so if it isn't in should, its gone
49
+ current.each_key { |key| current[key] = nil } if inclusive?
50
+ current
51
+ end
52
+
53
+ def should
54
+ return nil unless @should
55
+
56
+ members = hashify(@should)
57
+ current = process_current_hash(retrieve)
58
+
59
+ #shared keys will get overwritten by members
60
+ current.merge(members)
61
+ end
62
+
63
+ # @return [String] Returns a default separator of "="
64
+ def separator
65
+ "="
66
+ end
67
+
68
+ # @return [String] Returns a default delimiter of ";"
69
+ def delimiter
70
+ ";"
71
+ end
72
+
73
+ # Retrieves the key-hash from the provider by invoking its method named the same as this property.
74
+ # @return [Hash] the hash from the provider, or `:absent`
75
+ #
76
+ def retrieve
77
+ #ok, some 'convention' if the keyvalue property is named properties, provider should implement a properties method
78
+ if key_hash = provider.send(name) and key_hash != :absent
79
+ return key_hash
80
+ else
81
+ return :absent
82
+ end
83
+ end
84
+
85
+ # Returns true if there is no _is_ value, else returns if _is_ is equal to _should_ using == as comparison.
86
+ # @return [Boolean] whether the property is in sync or not.
87
+ #
88
+ def insync?(is)
89
+ return true unless is
90
+
91
+ (is == self.should)
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,69 @@
1
+ require 'puppet/property'
2
+
3
+ module Puppet
4
+ class Property
5
+ # This subclass of {Puppet::Property} manages an unordered list of values.
6
+ # For an ordered list see {Puppet::Property::OrderedList}.
7
+ #
8
+ class List < Property
9
+
10
+ def is_to_s(currentvalue)
11
+ currentvalue == :absent ? super(currentvalue) : currentvalue.join(delimiter)
12
+ end
13
+
14
+ def membership
15
+ :membership
16
+ end
17
+
18
+ def add_should_with_current(should, current)
19
+ should += current if current.is_a?(Array)
20
+ should.uniq
21
+ end
22
+
23
+ def inclusive?
24
+ @resource[membership] == :inclusive
25
+ end
26
+
27
+ #dearrayify was motivated because to simplify the implementation of the OrderedList property
28
+ def dearrayify(array)
29
+ array.sort.join(delimiter)
30
+ end
31
+
32
+ def should
33
+ return nil unless @should
34
+
35
+ members = @should
36
+ #inclusive means we are managing everything so if it isn't in should, its gone
37
+ members = add_should_with_current(members, retrieve) if ! inclusive?
38
+
39
+ dearrayify(members)
40
+ end
41
+
42
+ def delimiter
43
+ ","
44
+ end
45
+
46
+ def retrieve
47
+ #ok, some 'convention' if the list property is named groups, provider should implement a groups method
48
+ if provider and tmp = provider.send(name) and tmp != :absent
49
+ return tmp.split(delimiter)
50
+ else
51
+ return :absent
52
+ end
53
+ end
54
+
55
+ def prepare_is_for_comparison(is)
56
+ if is == :absent
57
+ is = []
58
+ end
59
+ dearrayify(is)
60
+ end
61
+
62
+ def insync?(is)
63
+ return true unless is
64
+
65
+ (prepare_is_for_comparison(is) == self.should)
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,29 @@
1
+ require 'puppet/property/list'
2
+
3
+ module Puppet
4
+ class Property
5
+ # This subclass of {Puppet::Property} manages an ordered list of values.
6
+ # The maintained order is the order defined by the 'current' set of values (i.e. the
7
+ # original order is not disrupted). Any additions are added after the current values
8
+ # in their given order).
9
+ #
10
+ # For an unordered list see {Puppet::Property::List}.
11
+ #
12
+ class OrderedList < List
13
+
14
+ def add_should_with_current(should, current)
15
+ if current.is_a?(Array)
16
+ #tricky trick
17
+ #Preserve all the current items in the list
18
+ #but move them to the back of the line
19
+ should = should + (current - should)
20
+ end
21
+ should
22
+ end
23
+
24
+ def dearrayify(array)
25
+ array.join(delimiter)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,603 @@
1
+ # A Provider is an implementation of the actions that manage resources (of some type) on a system.
2
+ # This class is the base class for all implementation of a Puppet Provider.
3
+ #
4
+ # Concepts:
5
+ #--
6
+ # * **Confinement** - confinement restricts providers to only be applicable under certain conditions.
7
+ # It is possible to confine a provider several different ways:
8
+ # * the included {#confine} method which provides filtering on fact, feature, existence of files, or a free form
9
+ # predicate.
10
+ # * the {commands} method that filters on the availability of given system commands.
11
+ # * **Property hash** - the important instance variable `@property_hash` contains all current state values
12
+ # for properties (it is lazily built). It is important that these values are managed appropriately in the
13
+ # methods {instances}, {prefetch}, and in methods that alters the current state (those that change the
14
+ # lifecycle (creates, destroys), or alters some value reflected backed by a property).
15
+ # * **Flush** - is a hook that is called once per resource when everything has been applied. The intent is
16
+ # that an implementation may defer modification of the current state typically done in property setters
17
+ # and instead record information that allows flush to perform the changes more efficiently.
18
+ # * **Execution Methods** - The execution methods provides access to execution of arbitrary commands.
19
+ # As a convenience execution methods are available on both the instance and the class of a provider since a
20
+ # lot of provider logic switch between these contexts fairly freely.
21
+ # * **System Entity/Resource** - this documentation uses the term "system entity" for system resources to make
22
+ # it clear if talking about a resource on the system being managed (e.g. a file in the file system)
23
+ # or about a description of such a resource (e.g. a Puppet Resource).
24
+ # * **Resource Type** - this is an instance of Type that describes a classification of instances of Resource (e.g.
25
+ # the `File` resource type describes all instances of `file` resources).
26
+ # (The term is used to contrast with "type" in general, and specifically to contrast with the implementation
27
+ # class of Resource or a specific Type).
28
+ #
29
+ # @note An instance of a Provider is associated with one resource.
30
+ #
31
+ # @note Class level methods are only called once to configure the provider (when the type is created), and not
32
+ # for each resource the provider is operating on.
33
+ # The instance methods are however called for each resource.
34
+ #
35
+ # @api public
36
+ #
37
+ class Puppet::Provider
38
+ include Puppet::Util
39
+ include Puppet::Util::Errors
40
+ include Puppet::Util::Warnings
41
+ extend Puppet::Util::Warnings
42
+
43
+ require 'puppet/confiner'
44
+ require 'puppet/provider/command'
45
+
46
+ extend Puppet::Confiner
47
+
48
+ Puppet::Util.logmethods(self, true)
49
+
50
+ class << self
51
+ # Include the util module so we have access to things like 'which'
52
+ include Puppet::Util, Puppet::Util::Docs
53
+ include Puppet::Util::Logging
54
+
55
+ # @return [String] The name of the provider
56
+ attr_accessor :name
57
+
58
+ #
59
+ # @todo Original = _"The source parameter exists so that providers using the same
60
+ # source can specify this, so reading doesn't attempt to read the
61
+ # same package multiple times."_ This seems to be a package type specific attribute. Is this really
62
+ # used?
63
+ #
64
+ # @return [???] The source is WHAT?
65
+ attr_writer :source
66
+
67
+ # @todo What is this type? A reference to a Puppet::Type ?
68
+ # @return [Puppet::Type] the resource type (that this provider is ... WHAT?)
69
+ #
70
+ attr_accessor :resource_type
71
+
72
+ # @!attribute [r] doc
73
+ # The (full) documentation for this provider class. The documentation for the provider class itself
74
+ # should be set with the DSL method {desc=}. Setting the documentation with with {doc=} has the same effect
75
+ # as setting it with {desc=} (only the class documentation part is set). In essence this means that
76
+ # there is no getter for the class documentation part (since the getter returns the full
77
+ # documentation when there are additional contributors).
78
+ #
79
+ # @return [String] Returns the full documentation for the provider.
80
+ # @see Puppet::Utils::Docs
81
+ # @comment This is puzzling ... a write only doc attribute??? The generated setter never seems to be
82
+ # used, instead the instance variable @doc is set in the `desc` method. This seems wrong. It is instead
83
+ # documented as a read only attribute (to get the full documentation). Also see doc below for
84
+ # desc.
85
+ # @!attribute [w] desc
86
+ # Sets the documentation of this provider class. (The full documentation is read via the
87
+ # {doc} attribute).
88
+ #
89
+ # @dsl type
90
+ #
91
+ attr_writer :doc
92
+ end
93
+
94
+ # @return [???] This resource is what? Is an instance of a provider attached to one particular Puppet::Resource?
95
+ #
96
+ attr_accessor :resource
97
+
98
+ # Convenience methods - see class method with the same name.
99
+ # @return (see self.execute)
100
+ def execute(*args)
101
+ Puppet::Util::Execution.execute(*args)
102
+ end
103
+
104
+ # (see Puppet::Util::Execution.execute)
105
+ def self.execute(*args)
106
+ Puppet::Util::Execution.execute(*args)
107
+ end
108
+
109
+ # Convenience methods - see class method with the same name.
110
+ # @return (see self.execpipe)
111
+ def execpipe(*args, &block)
112
+ Puppet::Util::Execution.execpipe(*args, &block)
113
+ end
114
+
115
+ # (see Puppet::Util::Execution.execpipe)
116
+ def self.execpipe(*args, &block)
117
+ Puppet::Util::Execution.execpipe(*args, &block)
118
+ end
119
+
120
+ # Convenience methods - see class method with the same name.
121
+ # @return (see self.execfail)
122
+ # @deprecated
123
+ def execfail(*args)
124
+ Puppet::Util::Execution.execfail(*args)
125
+ end
126
+
127
+ # (see Puppet::Util::Execution.execfail)
128
+ # @deprecated
129
+ def self.execfail(*args)
130
+ Puppet::Util::Execution.execfail(*args)
131
+ end
132
+
133
+ # Returns the absolute path to the executable for the command referenced by the given name.
134
+ # @raise [Puppet::DevError] if the name does not reference an existing command.
135
+ # @return [String] the absolute path to the found executable for the command
136
+ # @see which
137
+ # @api public
138
+ def self.command(name)
139
+ name = name.intern
140
+
141
+ if defined?(@commands) and command = @commands[name]
142
+ # nothing
143
+ elsif superclass.respond_to? :command and command = superclass.command(name)
144
+ # nothing
145
+ else
146
+ raise Puppet::DevError, "No command #{name} defined for provider #{self.name}"
147
+ end
148
+
149
+ which(command)
150
+ end
151
+
152
+ # Confines this provider to be suitable only on hosts where the given commands are present.
153
+ # Also see {Puppet::Confiner#confine} for other types of confinement of a provider by use of other types of
154
+ # predicates.
155
+ #
156
+ # @note It is preferred if the commands are not entered with absolute paths as this allows puppet
157
+ # to search for them using the PATH variable.
158
+ #
159
+ # @param command_specs [Hash{String => String}] Map of name to command that the provider will
160
+ # be executing on the system. Each command is specified with a name and the path of the executable.
161
+ # @return [void]
162
+ # @see optional_commands
163
+ # @api public
164
+ #
165
+ def self.commands(command_specs)
166
+ command_specs.each do |name, path|
167
+ has_command(name, path)
168
+ end
169
+ end
170
+
171
+ # Defines optional commands.
172
+ # Since Puppet 2.7.8 this is typically not needed as evaluation of provider suitability
173
+ # is lazy (when a resource is evaluated) and the absence of commands
174
+ # that will be present after other resources have been applied no longer needs to be specified as
175
+ # optional.
176
+ # @param [Hash{String => String}] hash Named commands that the provider will
177
+ # be executing on the system. Each command is specified with a name and the path of the executable.
178
+ # (@see #has_command)
179
+ # @see commands
180
+ # @api public
181
+ def self.optional_commands(hash)
182
+ hash.each do |name, target|
183
+ has_command(name, target) do
184
+ is_optional
185
+ end
186
+ end
187
+ end
188
+
189
+ # Creates a convenience method for invocation of a command.
190
+ #
191
+ # This generates a Provider method that allows easy execution of the command. The generated
192
+ # method may take arguments that will be passed through to the executable as the command line arguments
193
+ # when it is invoked.
194
+ #
195
+ # @example Use it like this:
196
+ # has_command(:echo, "/bin/echo")
197
+ # def some_method
198
+ # echo("arg 1", "arg 2")
199
+ # end
200
+ # @comment the . . . below is intentional to avoid the three dots to become an illegible ellipsis char.
201
+ # @example . . . or like this
202
+ # has_command(:echo, "/bin/echo") do
203
+ # is_optional
204
+ # environment :HOME => "/var/tmp", :PWD => "/tmp"
205
+ # end
206
+ #
207
+ # @param name [Symbol] The name of the command (will become the name of the generated method that executes the command)
208
+ # @param path [String] The path to the executable for the command
209
+ # @yield [ ] A block that configures the command (see {Puppet::Provider::Command})
210
+ # @comment a yield [ ] produces {|| ...} in the signature, do not remove the space.
211
+ # @note the name ´has_command´ looks odd in an API context, but makes more sense when seen in the internal
212
+ # DSL context where a Provider is declaratively defined.
213
+ # @api public
214
+ #
215
+ def self.has_command(name, path, &block)
216
+ name = name.intern
217
+ command = CommandDefiner.define(name, path, self, &block)
218
+
219
+ @commands[name] = command.executable
220
+
221
+ # Now define the class and instance methods.
222
+ create_class_and_instance_method(name) do |*args|
223
+ return command.execute(*args)
224
+ end
225
+ end
226
+
227
+ # Internal helper class when creating commands - undocumented.
228
+ # @api private
229
+ class CommandDefiner
230
+ private_class_method :new
231
+
232
+ def self.define(name, path, confiner, &block)
233
+ definer = new(name, path, confiner)
234
+ definer.instance_eval(&block) if block
235
+ definer.command
236
+ end
237
+
238
+ def initialize(name, path, confiner)
239
+ @name = name
240
+ @path = path
241
+ @optional = false
242
+ @confiner = confiner
243
+ @custom_environment = {}
244
+ end
245
+
246
+ def is_optional
247
+ @optional = true
248
+ end
249
+
250
+ def environment(env)
251
+ @custom_environment = @custom_environment.merge(env)
252
+ end
253
+
254
+ def command
255
+ if not @optional
256
+ @confiner.confine :exists => @path, :for_binary => true
257
+ end
258
+
259
+ Puppet::Provider::Command.new(@name, @path, Puppet::Util, Puppet::Util::Execution, { :failonfail => true, :combine => true, :custom_environment => @custom_environment })
260
+ end
261
+ end
262
+
263
+ # @return [Boolean] Return whether the given feature has been declared or not.
264
+ def self.declared_feature?(name)
265
+ defined?(@declared_features) and @declared_features.include?(name)
266
+ end
267
+
268
+ # @return [Boolean] Returns whether this implementation satisfies all of the default requirements or not.
269
+ # Returns false if there is no matching defaultfor
270
+ # @see Provider.defaultfor
271
+ #
272
+ def self.default?
273
+ default_match ? true : false
274
+ end
275
+
276
+ # Look through the array of defaultfor hashes and return the first match.
277
+ # @return [Hash<{String => Object}>] the matching hash specified by a defaultfor
278
+ # @see Provider.defaultfor
279
+ # @api private
280
+ def self.default_match
281
+ @defaults.find do |default|
282
+ default.all? do |key, values|
283
+ case key
284
+ when :feature
285
+ feature_match(values)
286
+ else
287
+ fact_match(key, values)
288
+ end
289
+ end
290
+ end
291
+ end
292
+
293
+ def self.fact_match(fact, values)
294
+ values = [values] unless values.is_a? Array
295
+ values.map! { |v| v.to_s.downcase.intern }
296
+
297
+ if fval = Facter.value(fact).to_s and fval != ""
298
+ fval = fval.to_s.downcase.intern
299
+
300
+ values.include?(fval)
301
+ else
302
+ false
303
+ end
304
+ end
305
+
306
+ def self.feature_match(value)
307
+ Puppet.features.send(value.to_s + "?")
308
+ end
309
+
310
+ # Sets a facts filter that determine which of several suitable providers should be picked by default.
311
+ # This selection only kicks in if there is more than one suitable provider.
312
+ # To filter on multiple facts the given hash may contain more than one fact name/value entry.
313
+ # The filter picks the provider if all the fact/value entries match the current set of facts. (In case
314
+ # there are still more than one provider after this filtering, the first found is picked).
315
+ # @param hash [Hash<{String => Object}>] hash of fact name to fact value.
316
+ # @return [void]
317
+ #
318
+ def self.defaultfor(hash)
319
+ @defaults << hash
320
+ end
321
+
322
+ # @return [Integer] Returns a numeric specificity for this provider based on how many requirements it has
323
+ # and number of _ancestors_. The higher the number the more specific the provider.
324
+ # The number of requirements is based on the hash size of the matching {Provider.defaultfor}.
325
+ #
326
+ # The _ancestors_ is the Ruby Module::ancestors method and the number of classes returned is used
327
+ # to boost the score. The intent is that if two providers are equal, but one is more "derived" than the other
328
+ # (i.e. includes more classes), it should win because it is more specific).
329
+ # @note Because of how this value is
330
+ # calculated there could be surprising side effects if a provider included an excessive amount of classes.
331
+ #
332
+ def self.specificity
333
+ # This strange piece of logic attempts to figure out how many parent providers there
334
+ # are to increase the score. What is will actually do is count all classes that Ruby Module::ancestors
335
+ # returns (which can be other classes than those the parent chain) - in a way, an odd measure of the
336
+ # complexity of a provider).
337
+ match = default_match
338
+ length = match ? match.length : 0
339
+ (length * 100) + ancestors.select { |a| a.is_a? Class }.length
340
+ end
341
+
342
+ # Initializes defaults and commands (i.e. clears them).
343
+ # @return [void]
344
+ def self.initvars
345
+ @defaults = []
346
+ @commands = {}
347
+ end
348
+
349
+ # Returns a list of system resources (entities) this provider may/can manage.
350
+ # This is a query mechanism that lists entities that the provider may manage on a given system. It is
351
+ # is directly used in query services, but is also the foundation for other services; prefetching, and
352
+ # purging.
353
+ #
354
+ # As an example, a package provider lists all installed packages. (In contrast, the File provider does
355
+ # not list all files on the file-system as that would make execution incredibly slow). An implementation
356
+ # of this method should be made if it is possible to quickly (with a single system call) provide all
357
+ # instances.
358
+ #
359
+ # An implementation of this method should only cache the values of properties
360
+ # if they are discovered as part of the process for finding existing resources.
361
+ # Resource properties that require additional commands (than those used to determine existence/identity)
362
+ # should be implemented in their respective getter method. (This is important from a performance perspective;
363
+ # it may be expensive to compute, as well as wasteful as all discovered resources may perhaps not be managed).
364
+ #
365
+ # An implementation may return an empty list (naturally with the effect that it is not possible to query
366
+ # for manageable entities).
367
+ #
368
+ # By implementing this method, it is possible to use the `resources´ resource type to specify purging
369
+ # of all non managed entities.
370
+ #
371
+ # @note The returned instances are instance of some subclass of Provider, not resources.
372
+ # @return [Array<Puppet::Provider>] a list of providers referencing the system entities
373
+ # @abstract this method must be implemented by a subclass and this super method should never be called as it raises an exception.
374
+ # @raise [Puppet::DevError] Error indicating that the method should have been implemented by subclass.
375
+ # @see prefetch
376
+ def self.instances
377
+ raise Puppet::DevError, "Provider #{self.name} has not defined the 'instances' class method"
378
+ end
379
+
380
+ # Creates getter- and setter- methods for each property supported by the resource type.
381
+ # Call this method to generate simple accessors for all properties supported by the
382
+ # resource type. These simple accessors lookup and sets values in the property hash.
383
+ # The generated methods may be overridden by more advanced implementations if something
384
+ # else than a straight forward getter/setter pair of methods is required.
385
+ # (i.e. define such overriding methods after this method has been called)
386
+ #
387
+ # An implementor of a provider that makes use of `prefetch` and `flush` can use this method since it uses
388
+ # the internal `@property_hash` variable to store values. An implementation would then update the system
389
+ # state on a call to `flush` based on the current values in the `@property_hash`.
390
+ #
391
+ # @return [void]
392
+ #
393
+ def self.mk_resource_methods
394
+ [resource_type.validproperties, resource_type.parameters].flatten.each do |attr|
395
+ attr = attr.intern
396
+ next if attr == :name
397
+ define_method(attr) do
398
+ if @property_hash[attr].nil?
399
+ :absent
400
+ else
401
+ @property_hash[attr]
402
+ end
403
+ end
404
+
405
+ define_method(attr.to_s + "=") do |val|
406
+ @property_hash[attr] = val
407
+ end
408
+ end
409
+ end
410
+
411
+ self.initvars
412
+
413
+ # This method is used to generate a method for a command.
414
+ # @return [void]
415
+ # @api private
416
+ #
417
+ def self.create_class_and_instance_method(name, &block)
418
+ unless singleton_class.method_defined?(name)
419
+ meta_def(name, &block)
420
+ end
421
+
422
+ unless method_defined?(name)
423
+ define_method(name) do |*args|
424
+ self.class.send(name, *args)
425
+ end
426
+ end
427
+ end
428
+ private_class_method :create_class_and_instance_method
429
+
430
+ # @return [String] Returns the data source, which is the provider name if no other source has been set.
431
+ # @todo Unclear what "the source" is used for?
432
+ def self.source
433
+ @source ||= self.name
434
+ end
435
+
436
+ # Returns true if the given attribute/parameter is supported by the provider.
437
+ # The check is made that the parameter is a valid parameter for the resource type, and then
438
+ # if all its required features (if any) are supported by the provider.
439
+ #
440
+ # @param param [Class, Puppet::Parameter] the parameter class, or a parameter instance
441
+ # @return [Boolean] Returns whether this provider supports the given parameter or not.
442
+ # @raise [Puppet::DevError] if the given parameter is not valid for the resource type
443
+ #
444
+ def self.supports_parameter?(param)
445
+ if param.is_a?(Class)
446
+ klass = param
447
+ else
448
+ unless klass = resource_type.attrclass(param)
449
+ raise Puppet::DevError, "'#{param}' is not a valid parameter for #{resource_type.name}"
450
+ end
451
+ end
452
+ return true unless features = klass.required_features
453
+
454
+ !!satisfies?(*features)
455
+ end
456
+
457
+ dochook(:defaults) do
458
+ if @defaults.length > 0
459
+ return @defaults.collect do |d|
460
+ "Default for " + d.collect do |f, v|
461
+ "`#{f}` == `#{[v].flatten.join(', ')}`"
462
+ end.sort.join(" and ") + "."
463
+ end.join(" ")
464
+ end
465
+ end
466
+
467
+ dochook(:commands) do
468
+ if @commands.length > 0
469
+ return "Required binaries: " + @commands.collect do |n, c|
470
+ "`#{c}`"
471
+ end.sort.join(", ") + "."
472
+ end
473
+ end
474
+
475
+ dochook(:features) do
476
+ if features.length > 0
477
+ return "Supported features: " + features.collect do |f|
478
+ "`#{f}`"
479
+ end.sort.join(", ") + "."
480
+ end
481
+ end
482
+
483
+ # Clears this provider instance to allow GC to clean up.
484
+ def clear
485
+ @resource = nil
486
+ end
487
+
488
+ # (see command)
489
+ def command(name)
490
+ self.class.command(name)
491
+ end
492
+
493
+ # Returns the value of a parameter value, or `:absent` if it is not defined.
494
+ # @param param [Puppet::Parameter] the parameter to obtain the value of
495
+ # @return [Object] the value of the parameter or `:absent` if not defined.
496
+ #
497
+ def get(param)
498
+ @property_hash[param.intern] || :absent
499
+ end
500
+
501
+ # Creates a new provider that is optionally initialized from a resource or a hash of properties.
502
+ # If no argument is specified, a new non specific provider is initialized. If a resource is given
503
+ # it is remembered for further operations. If a hash is used it becomes the internal `@property_hash`
504
+ # structure of the provider - this hash holds the current state property values of system entities
505
+ # as they are being discovered by querying or other operations (typically getters).
506
+ #
507
+ # @todo The use of a hash as a parameter needs a better explanation; why is this done? What is the intent?
508
+ # @param resource [Puppet::Resource, Hash] optional resource or hash
509
+ #
510
+ def initialize(resource = nil)
511
+ if resource.is_a?(Hash)
512
+ # We don't use a duplicate here, because some providers (ParsedFile, at least)
513
+ # use the hash here for later events.
514
+ @property_hash = resource
515
+ elsif resource
516
+ @resource = resource
517
+ @property_hash = {}
518
+ else
519
+ @property_hash = {}
520
+ end
521
+ end
522
+
523
+ # Returns the name of the resource this provider is operating on.
524
+ # @return [String] the name of the resource instance (e.g. the file path of a File).
525
+ # @raise [Puppet::DevError] if no resource is set, or no name defined.
526
+ #
527
+ def name
528
+ if n = @property_hash[:name]
529
+ return n
530
+ elsif self.resource
531
+ resource.name
532
+ else
533
+ raise Puppet::DevError, "No resource and no name in property hash in #{self.class.name} instance"
534
+ end
535
+ end
536
+
537
+ # Sets the given parameters values as the current values for those parameters.
538
+ # Other parameters are unchanged.
539
+ # @param [Array<Puppet::Parameter>] params the parameters with values that should be set
540
+ # @return [void]
541
+ #
542
+ def set(params)
543
+ params.each do |param, value|
544
+ @property_hash[param.intern] = value
545
+ end
546
+ end
547
+
548
+ # @return [String] Returns a human readable string with information about the resource and the provider.
549
+ def to_s
550
+ "#{@resource}(provider=#{self.class.name})"
551
+ end
552
+
553
+ # @return [String] Returns a human readable string with information about the resource and the provider.
554
+ def inspect
555
+ to_s
556
+ end
557
+
558
+ # Makes providers comparable.
559
+ include Comparable
560
+ # Compares this provider against another provider.
561
+ # Comparison is only possible with another provider (no other class).
562
+ # The ordering is based on the class name of the two providers.
563
+ #
564
+ # @return [-1,0,+1, nil] A comparison result -1, 0, +1 if this is before other, equal or after other. Returns
565
+ # nil oif not comparable to other.
566
+ # @see Comparable
567
+ def <=>(other)
568
+ # We can only have ordering against other providers.
569
+ return nil unless other.is_a? Puppet::Provider
570
+ # Otherwise, order by the providers class name.
571
+ return self.class.name <=> other.class.name
572
+ end
573
+
574
+ # @comment Document prefetch here as it does not exist anywhere else (called from transaction if implemented)
575
+ # @!method self.prefetch(resource_hash)
576
+ # @abstract A subclass may implement this - it is not implemented in the Provider class
577
+ # This method may be implemented by a provider in order to pre-fetch resource properties.
578
+ # If implemented it should set the provider instance of the managed resources to a provider with the
579
+ # fetched state (i.e. what is returned from the {instances} method).
580
+ # @param resources_hash [Hash<{String => Puppet::Resource}>] map from name to resource of resources to prefetch
581
+ # @return [void]
582
+ # @api public
583
+
584
+ # @comment Document post_resource_eval here as it does not exist anywhere else (called from transaction if implemented)
585
+ # @!method self.post_resource_eval()
586
+ # @since 3.4.0
587
+ # @api public
588
+ # @abstract A subclass may implement this - it is not implemented in the Provider class
589
+ # This method may be implemented by a provider in order to perform any
590
+ # cleanup actions needed. It will be called at the end of the transaction if
591
+ # any resources in the catalog make use of the provider, regardless of
592
+ # whether the resources are changed or not and even if resource failures occur.
593
+ # @return [void]
594
+
595
+ # @comment Document flush here as it does not exist anywhere (called from transaction if implemented)
596
+ # @!method flush()
597
+ # @abstract A subclass may implement this - it is not implemented in the Provider class
598
+ # This method may be implemented by a provider in order to flush properties that has not been individually
599
+ # applied to the managed entity's current state.
600
+ # @return [void]
601
+ # @api public
602
+ end
603
+