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,91 @@
1
+ module Puppet
2
+ class Property
3
+
4
+ class VDev < Property
5
+
6
+ def flatten_and_sort(array)
7
+ array = [array] unless array.is_a? Array
8
+ array.collect { |a| a.split(' ') }.flatten.sort
9
+ end
10
+
11
+ def insync?(is)
12
+ return @should == [:absent] if is == :absent
13
+
14
+ flatten_and_sort(is) == flatten_and_sort(@should)
15
+ end
16
+ end
17
+
18
+ class MultiVDev < VDev
19
+ def insync?(is)
20
+ return @should == [:absent] if is == :absent
21
+
22
+ return false unless is.length == @should.length
23
+
24
+ is.each_with_index { |list, i| return false unless flatten_and_sort(list) == flatten_and_sort(@should[i]) }
25
+
26
+ #if we made it this far we are in sync
27
+ true
28
+ end
29
+ end
30
+ end
31
+
32
+ Type.newtype(:zpool) do
33
+ @doc = "Manage zpools. Create and delete zpools. The provider WILL NOT SYNC, only report differences.
34
+
35
+ Supports vdevs with mirrors, raidz, logs and spares."
36
+
37
+ ensurable
38
+
39
+ newproperty(:disk, :array_matching => :all, :parent => Puppet::Property::VDev) do
40
+ desc "The disk(s) for this pool. Can be an array or a space separated string."
41
+ end
42
+
43
+ newproperty(:mirror, :array_matching => :all, :parent => Puppet::Property::MultiVDev) do
44
+ desc "List of all the devices to mirror for this pool. Each mirror should be a
45
+ space separated string:
46
+
47
+ mirror => [\"disk1 disk2\", \"disk3 disk4\"],
48
+
49
+ "
50
+
51
+ validate do |value|
52
+ raise ArgumentError, _("mirror names must be provided as string separated, not a comma-separated list") if value.include?(",")
53
+ end
54
+ end
55
+
56
+ newproperty(:raidz, :array_matching => :all, :parent => Puppet::Property::MultiVDev) do
57
+ desc "List of all the devices to raid for this pool. Should be an array of
58
+ space separated strings:
59
+
60
+ raidz => [\"disk1 disk2\", \"disk3 disk4\"],
61
+
62
+ "
63
+
64
+ validate do |value|
65
+ raise ArgumentError, _("raid names must be provided as string separated, not a comma-separated list") if value.include?(",")
66
+ end
67
+ end
68
+
69
+ newproperty(:spare, :array_matching => :all, :parent => Puppet::Property::VDev) do
70
+ desc "Spare disk(s) for this pool."
71
+ end
72
+
73
+ newproperty(:log, :array_matching => :all, :parent => Puppet::Property::VDev) do
74
+ desc "Log disks for this pool. This type does not currently support mirroring of log disks."
75
+ end
76
+
77
+ newparam(:pool) do
78
+ desc "The name for this pool."
79
+ isnamevar
80
+ end
81
+
82
+ newparam(:raid_parity) do
83
+ desc "Determines parity when using the `raidz` parameter."
84
+ end
85
+
86
+ validate do
87
+ has_should = [:disk, :mirror, :raidz].select { |prop| self.should(prop) }
88
+ self.fail _("You cannot specify %{multiple_props} on this type (only one)") % { multiple_props: has_should.join(" and ") } if has_should.length > 1
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,705 @@
1
+ # A module to collect utility functions.
2
+
3
+ require 'English'
4
+ require 'puppet/error'
5
+ require 'puppet/util/execution_stub'
6
+ require 'uri'
7
+ require 'pathname'
8
+ require 'ostruct'
9
+ require 'puppet/util/platform'
10
+ require 'puppet/util/symbolic_file_mode'
11
+ require 'puppet/file_system/uniquefile'
12
+ require 'securerandom'
13
+ require 'puppet/util/character_encoding'
14
+
15
+ module Puppet
16
+ module Util
17
+ require 'puppet/util/monkey_patches'
18
+ require 'benchmark'
19
+
20
+ # These are all for backward compatibility -- these are methods that used
21
+ # to be in Puppet::Util but have been moved into external modules.
22
+ require 'puppet/util/posix'
23
+ extend Puppet::Util::POSIX
24
+
25
+ # Can't use Puppet.features.microsoft_windows? as it may be mocked out in a test. This can cause test recurring test failures
26
+ require 'puppet/util/windows/process' if Puppet::Util::Platform.windows?
27
+
28
+ extend Puppet::Util::SymbolicFileMode
29
+
30
+ def default_env
31
+ Puppet.features.microsoft_windows? ?
32
+ :windows :
33
+ :posix
34
+ end
35
+ module_function :default_env
36
+
37
+ # @param name [String] The name of the environment variable to retrieve
38
+ # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
39
+ # @return [String] Value of the specified environment variable. nil if it does not exist
40
+ # @api private
41
+ def get_env(name, mode = default_env)
42
+ if mode == :windows
43
+ Puppet::Util::Windows::Process.get_environment_strings.each do |key, value |
44
+ if name.casecmp(key) == 0 then
45
+ return value
46
+ end
47
+ end
48
+ return nil
49
+ else
50
+ ENV[name]
51
+ end
52
+ end
53
+ module_function :get_env
54
+
55
+ # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
56
+ # @return [Hash] A hashtable of all environment variables
57
+ # @api private
58
+ def get_environment(mode = default_env)
59
+ case mode
60
+ when :posix
61
+ ENV.to_hash
62
+ when :windows
63
+ Puppet::Util::Windows::Process.get_environment_strings
64
+ else
65
+ raise _("Unable to retrieve the environment for mode %{mode}") % { mode: mode }
66
+ end
67
+ end
68
+ module_function :get_environment
69
+
70
+ # Removes all environment variables
71
+ # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
72
+ # @api private
73
+ def clear_environment(mode = default_env)
74
+ case mode
75
+ when :posix
76
+ ENV.clear
77
+ when :windows
78
+ Puppet::Util::Windows::Process.get_environment_strings.each do |key, _|
79
+ Puppet::Util::Windows::Process.set_environment_variable(key, nil)
80
+ end
81
+ else
82
+ raise _("Unable to clear the environment for mode %{mode}") % { mode: mode }
83
+ end
84
+ end
85
+ module_function :clear_environment
86
+
87
+ # @param name [String] The name of the environment variable to set
88
+ # @param value [String] The value to set the variable to. nil deletes the environment variable
89
+ # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
90
+ # @api private
91
+ def set_env(name, value = nil, mode = default_env)
92
+ case mode
93
+ when :posix
94
+ ENV[name] = value
95
+ when :windows
96
+ Puppet::Util::Windows::Process.set_environment_variable(name,value)
97
+ else
98
+ raise _("Unable to set the environment variable %{name} for mode %{mode}") % { name: name, mode: mode }
99
+ end
100
+ end
101
+ module_function :set_env
102
+
103
+ # @param name [Hash] Environment variables to merge into the existing environment. nil values will remove the variable
104
+ # @param mode [Symbol] Which operating system mode to use e.g. :posix or :windows. Use nil to autodetect
105
+ # @api private
106
+ def merge_environment(env_hash, mode = default_env)
107
+ case mode
108
+ when :posix
109
+ env_hash.each { |name, val| ENV[name.to_s] = val }
110
+ when :windows
111
+ env_hash.each do |name, val|
112
+ Puppet::Util::Windows::Process.set_environment_variable(name.to_s, val)
113
+ end
114
+ else
115
+ raise _("Unable to merge given values into the current environment for mode %{mode}") % { mode: mode }
116
+ end
117
+ end
118
+ module_function :merge_environment
119
+
120
+ # Run some code with a specific environment. Resets the environment back to
121
+ # what it was at the end of the code.
122
+ # Windows can store Unicode chars in the environment as keys or values, but
123
+ # Ruby's ENV tries to roundtrip them through the local codepage, which can
124
+ # cause encoding problems - underlying helpers use Windows APIs on Windows
125
+ # see https://bugs.ruby-lang.org/issues/8822
126
+ def withenv(hash, mode = :posix)
127
+ saved = get_environment(mode)
128
+ merge_environment(hash, mode)
129
+ yield
130
+ ensure
131
+ if saved
132
+ clear_environment(mode)
133
+ merge_environment(saved, mode)
134
+ end
135
+ end
136
+ module_function :withenv
137
+
138
+ # Execute a given chunk of code with a new umask.
139
+ def self.withumask(mask)
140
+ cur = File.umask(mask)
141
+
142
+ begin
143
+ yield
144
+ ensure
145
+ File.umask(cur)
146
+ end
147
+ end
148
+
149
+
150
+ # Change the process to a different user
151
+ def self.chuser
152
+ if group = Puppet[:group]
153
+ begin
154
+ Puppet::Util::SUIDManager.change_group(group, true)
155
+ rescue => detail
156
+ Puppet.warning _("could not change to group %{group}: %{detail}") % { group: group.inspect, detail: detail }
157
+ $stderr.puts _("could not change to group %{group}") % { group: group.inspect }
158
+
159
+ # Don't exit on failed group changes, since it's
160
+ # not fatal
161
+ #exit(74)
162
+ end
163
+ end
164
+
165
+ if user = Puppet[:user]
166
+ begin
167
+ Puppet::Util::SUIDManager.change_user(user, true)
168
+ rescue => detail
169
+ $stderr.puts _("Could not change to user %{user}: %{detail}") % { user: user, detail: detail }
170
+ exit(74)
171
+ end
172
+ end
173
+ end
174
+
175
+ # Create instance methods for each of the log levels. This allows
176
+ # the messages to be a little richer. Most classes will be calling this
177
+ # method.
178
+ def self.logmethods(klass, useself = true)
179
+ Puppet::Util::Log.eachlevel { |level|
180
+ klass.send(:define_method, level, proc { |args|
181
+ args = args.join(" ") if args.is_a?(Array)
182
+ if useself
183
+
184
+ Puppet::Util::Log.create(
185
+ :level => level,
186
+ :source => self,
187
+ :message => args
188
+ )
189
+ else
190
+
191
+ Puppet::Util::Log.create(
192
+ :level => level,
193
+ :message => args
194
+ )
195
+ end
196
+ })
197
+ }
198
+ end
199
+
200
+ def benchmark(*args)
201
+ msg = args.pop
202
+ level = args.pop
203
+ object = nil
204
+
205
+ if args.empty?
206
+ if respond_to?(level)
207
+ object = self
208
+ else
209
+ object = Puppet
210
+ end
211
+ else
212
+ object = args.pop
213
+ end
214
+
215
+ raise Puppet::DevError, "Failed to provide level to :benchmark" unless level
216
+
217
+ unless level == :none or object.respond_to? level
218
+ raise Puppet::DevError, "Benchmarked object does not respond to #{level}"
219
+ end
220
+
221
+ # Only benchmark if our log level is high enough
222
+ if level != :none and Puppet::Util::Log.sendlevel?(level)
223
+ seconds = Benchmark.realtime {
224
+ yield
225
+ }
226
+ #TRANSLATORS forms the end of a string indicating how long a
227
+ # given operation took
228
+ object.send(level, msg + (_(" in %0.2f seconds") % seconds))
229
+ return seconds
230
+ else
231
+ yield
232
+ end
233
+ end
234
+ module_function :benchmark
235
+
236
+ # Resolve a path for an executable to the absolute path. This tries to behave
237
+ # in the same manner as the unix `which` command and uses the `PATH`
238
+ # environment variable.
239
+ #
240
+ # @api public
241
+ # @param bin [String] the name of the executable to find.
242
+ # @return [String] the absolute path to the found executable.
243
+ def which(bin)
244
+ if absolute_path?(bin)
245
+ return bin if FileTest.file? bin and FileTest.executable? bin
246
+ else
247
+ exts = Puppet::Util.get_env('PATHEXT')
248
+ exts = exts ? exts.split(File::PATH_SEPARATOR) : %w[.COM .EXE .BAT .CMD]
249
+ Puppet::Util.get_env('PATH').split(File::PATH_SEPARATOR).each do |dir|
250
+ begin
251
+ dest = File.expand_path(File.join(dir, bin))
252
+ rescue ArgumentError => e
253
+ # if the user's PATH contains a literal tilde (~) character and HOME is not set, we may get
254
+ # an ArgumentError here. Let's check to see if that is the case; if not, re-raise whatever error
255
+ # was thrown.
256
+ if e.to_s =~ /HOME/ and (Puppet::Util.get_env('HOME').nil? || Puppet::Util.get_env('HOME') == "")
257
+ # if we get here they have a tilde in their PATH. We'll issue a single warning about this and then
258
+ # ignore this path element and carry on with our lives.
259
+ #TRANSLATORS PATH and HOME are environment variables and should not be translated
260
+ Puppet::Util::Warnings.warnonce(_("PATH contains a ~ character, and HOME is not set; ignoring PATH element '%{dir}'.") % { dir: dir })
261
+ elsif e.to_s =~ /doesn't exist|can't find user/
262
+ # ...otherwise, we just skip the non-existent entry, and do nothing.
263
+ #TRANSLATORS PATH is an environment variable and should not be translated
264
+ Puppet::Util::Warnings.warnonce(_("Couldn't expand PATH containing a ~ character; ignoring PATH element '%{dir}'.") % { dir: dir })
265
+ else
266
+ raise
267
+ end
268
+ else
269
+ if Puppet.features.microsoft_windows? && File.extname(dest).empty?
270
+ exts.each do |ext|
271
+ destext = File.expand_path(dest + ext)
272
+ return destext if FileTest.file? destext and FileTest.executable? destext
273
+ end
274
+ end
275
+ return dest if FileTest.file? dest and FileTest.executable? dest
276
+ end
277
+ end
278
+ end
279
+ nil
280
+ end
281
+ module_function :which
282
+
283
+ # Determine in a platform-specific way whether a path is absolute. This
284
+ # defaults to the local platform if none is specified.
285
+ #
286
+ # Escape once for the string literal, and once for the regex.
287
+ slash = '[\\\\/]'
288
+ label = '[^\\\\/]+'
289
+ AbsolutePathWindows = %r!^(?:(?:[A-Z]:#{slash})|(?:#{slash}#{slash}#{label}#{slash}#{label})|(?:#{slash}#{slash}\?#{slash}#{label}))!io
290
+ AbsolutePathPosix = %r!^/!
291
+ def absolute_path?(path, platform=nil)
292
+ # Ruby only sets File::ALT_SEPARATOR on Windows and the Ruby standard
293
+ # library uses that to test what platform it's on. Normally in Puppet we
294
+ # would use Puppet.features.microsoft_windows?, but this method needs to
295
+ # be called during the initialization of features so it can't depend on
296
+ # that.
297
+ platform ||= Puppet::Util::Platform.windows? ? :windows : :posix
298
+ regex = case platform
299
+ when :windows
300
+ AbsolutePathWindows
301
+ when :posix
302
+ AbsolutePathPosix
303
+ else
304
+ raise Puppet::DevError, "unknown platform #{platform} in absolute_path"
305
+ end
306
+
307
+ !! (path =~ regex)
308
+ end
309
+ module_function :absolute_path?
310
+
311
+ # Convert a path to a file URI
312
+ def path_to_uri(path)
313
+ return unless path
314
+
315
+ params = { :scheme => 'file' }
316
+
317
+ if Puppet.features.microsoft_windows?
318
+ path = path.gsub(/\\/, '/')
319
+
320
+ if unc = /^\/\/([^\/]+)(\/.+)/.match(path)
321
+ params[:host] = unc[1]
322
+ path = unc[2]
323
+ elsif path =~ /^[a-z]:\//i
324
+ path = '/' + path
325
+ end
326
+ end
327
+
328
+ # have to split *after* any relevant escaping
329
+ params[:path], params[:query] = uri_encode(path).split('?')
330
+ search_for_fragment = params[:query] ? :query : :path
331
+ if params[search_for_fragment].include?('#')
332
+ params[search_for_fragment], _, params[:fragment] = params[search_for_fragment].rpartition('#')
333
+ end
334
+
335
+ begin
336
+ URI::Generic.build(params)
337
+ rescue => detail
338
+ raise Puppet::Error, _("Failed to convert '%{path}' to URI: %{detail}") % { path: path, detail: detail }, detail.backtrace
339
+ end
340
+ end
341
+ module_function :path_to_uri
342
+
343
+ # Get the path component of a URI
344
+ def uri_to_path(uri)
345
+ return unless uri.is_a?(URI)
346
+
347
+ # CGI.unescape doesn't handle space rules properly in uri paths
348
+ # URI.unescape does, but returns strings in their original encoding
349
+ path = URI.unescape(uri.path.encode(Encoding::UTF_8))
350
+
351
+ if Puppet.features.microsoft_windows? and uri.scheme == 'file'
352
+ if uri.host
353
+ path = "//#{uri.host}" + path # UNC
354
+ else
355
+ path.sub!(/^\//, '')
356
+ end
357
+ end
358
+
359
+ path
360
+ end
361
+ module_function :uri_to_path
362
+
363
+ private
364
+
365
+ RFC_3986_URI_REGEX = /^(?<scheme>([^:\/?#]+):)?(?<authority>\/\/([^\/?#]*))?(?<path>[^?#]*)(\?(?<query>[^#]*))?(#(?<fragment>.*))?$/
366
+
367
+ public
368
+
369
+ # Percent-encodes a URI query parameter per RFC3986 - https://tools.ietf.org/html/rfc3986
370
+ #
371
+ # The output will correctly round-trip through URI.unescape
372
+ #
373
+ # @param [String query_string] A URI query parameter that may contain reserved
374
+ # characters that must be percent encoded for the key or value to be
375
+ # properly decoded as part of a larger query string:
376
+ #
377
+ # query
378
+ # encodes as : query
379
+ #
380
+ # query_with_special=chars like&and * and# plus+this
381
+ # encodes as:
382
+ # query_with_special%3Dchars%20like%26and%20%2A%20and%23%20plus%2Bthis
383
+ #
384
+ # Note: Also usable by fragments, but not suitable for paths
385
+ #
386
+ # @return [String] a new string containing an encoded query string per the
387
+ # rules of RFC3986.
388
+ #
389
+ # In particular,
390
+ # query will encode + as %2B and space as %20
391
+ def uri_query_encode(query_string)
392
+ return nil if query_string.nil?
393
+
394
+ # query can encode space to %20 OR +
395
+ # + MUST be encoded as %2B
396
+ # in RFC3968 both query and fragment are defined as:
397
+ # = *( pchar / "/" / "?" )
398
+ # CGI.escape turns space into + which is the most backward compatible
399
+ # however it doesn't roundtrip through URI.unescape which prefers %20
400
+ CGI.escape(query_string).gsub('+', '%20')
401
+ end
402
+ module_function :uri_query_encode
403
+
404
+ # Percent-encodes a URI string per RFC3986 - https://tools.ietf.org/html/rfc3986
405
+ #
406
+ # Properly handles escaping rules for paths, query strings and fragments
407
+ # independently
408
+ #
409
+ # The output is safe to pass to URI.parse or URI::Generic.build and will
410
+ # correctly round-trip through URI.unescape
411
+ #
412
+ # @param [String path] A URI string that may be in the form of:
413
+ #
414
+ # http://foo.com/bar?query
415
+ # file://tmp/foo bar
416
+ # //foo.com/bar?query
417
+ # /bar?query
418
+ # bar?query
419
+ # bar
420
+ # .
421
+ # C:\Windows\Temp
422
+ #
423
+ # Note that with no specified scheme, authority or query parameter delimiter
424
+ # ? that a naked string will be treated as a path.
425
+ #
426
+ # Note that if query parameters need to contain data such as & or =
427
+ # that this method should not be used, as there is no way to differentiate
428
+ # query parameter data from query delimiters when multiple parameters
429
+ # are specified
430
+ #
431
+ # @param [Hash{Symbol=>String} opts] Options to alter encoding
432
+ # @option opts [Array<Symbol>] :allow_fragment defaults to false. When false
433
+ # will treat # as part of a path or query and not a fragment delimiter
434
+ #
435
+ # @return [String] a new string containing appropriate portions of the URI
436
+ # encoded per the rules of RFC3986.
437
+ # In particular,
438
+ # path will not encode +, but will encode space as %20
439
+ # query will encode + as %2B and space as %20
440
+ # fragment behaves like query
441
+ def uri_encode(path, opts = { :allow_fragment => false })
442
+ raise ArgumentError.new('path may not be nil') if path.nil?
443
+
444
+ # ensure string starts as UTF-8 for the sake of Ruby 1.9.3
445
+ encoded = ''.encode!(Encoding::UTF_8)
446
+
447
+ # parse uri into named matches, then reassemble properly encoded
448
+ parts = path.match(RFC_3986_URI_REGEX)
449
+
450
+ encoded += parts[:scheme] unless parts[:scheme].nil?
451
+ encoded += parts[:authority] unless parts[:authority].nil?
452
+
453
+ # path requires space to be encoded as %20 (NEVER +)
454
+ # + should be left unencoded
455
+ # URI::parse and URI::Generic.build don't like paths encoded with CGI.escape
456
+ # URI.escape does not change / to %2F and : to %3A like CGI.escape
457
+ encoded += URI.escape(parts[:path]) unless parts[:path].nil?
458
+
459
+ # each query parameter
460
+ if !parts[:query].nil?
461
+ query_string = parts[:query].split('&').map do |pair|
462
+ # can optionally be separated by an =
463
+ pair.split('=').map do |v|
464
+ uri_query_encode(v)
465
+ end.join('=')
466
+ end.join('&')
467
+ encoded += '?' + query_string
468
+ end
469
+
470
+ encoded += ((opts[:allow_fragment] ? '#' : '%23') + uri_query_encode(parts[:fragment])) unless parts[:fragment].nil?
471
+
472
+ encoded
473
+ end
474
+ module_function :uri_encode
475
+
476
+ def safe_posix_fork(stdin=$stdin, stdout=$stdout, stderr=$stderr, &block)
477
+ child_pid = Kernel.fork do
478
+ $stdin.reopen(stdin)
479
+ $stdout.reopen(stdout)
480
+ $stderr.reopen(stderr)
481
+
482
+ begin
483
+ Dir.foreach('/proc/self/fd') do |f|
484
+ if f != '.' && f != '..' && f.to_i >= 3
485
+ IO::new(f.to_i).close rescue nil
486
+ end
487
+ end
488
+ rescue Errno::ENOENT # /proc/self/fd not found
489
+ 3.upto(256){|fd| IO::new(fd).close rescue nil}
490
+ end
491
+
492
+ block.call if block
493
+ end
494
+ child_pid
495
+ end
496
+ module_function :safe_posix_fork
497
+
498
+ def symbolizehash(hash)
499
+ newhash = {}
500
+ hash.each do |name, val|
501
+ name = name.intern if name.respond_to? :intern
502
+ newhash[name] = val
503
+ end
504
+ newhash
505
+ end
506
+ module_function :symbolizehash
507
+
508
+ # Just benchmark, with no logging.
509
+ def thinmark
510
+ seconds = Benchmark.realtime {
511
+ yield
512
+ }
513
+
514
+ seconds
515
+ end
516
+
517
+ module_function :thinmark
518
+
519
+ # utility method to get the current call stack and format it to a human-readable string (which some IDEs/editors
520
+ # will recognize as links to the line numbers in the trace)
521
+ def self.pretty_backtrace(backtrace = caller(1))
522
+ backtrace.collect do |line|
523
+ _, path, rest = /^(.*):(\d+.*)$/.match(line).to_a
524
+ # If the path doesn't exist - like in one test, and like could happen in
525
+ # the world - we should just tolerate it and carry on. --daniel 2012-09-05
526
+ # Also, if we don't match, just include the whole line.
527
+ if path
528
+ path = Pathname(path).realpath rescue path
529
+ "#{path}:#{rest}"
530
+ else
531
+ line
532
+ end
533
+ end.join("\n")
534
+ end
535
+
536
+ # Replace a file, securely. This takes a block, and passes it the file
537
+ # handle of a file open for writing. Write the replacement content inside
538
+ # the block and it will safely replace the target file.
539
+ #
540
+ # This method will make no changes to the target file until the content is
541
+ # successfully written and the block returns without raising an error.
542
+ #
543
+ # As far as possible the state of the existing file, such as mode, is
544
+ # preserved. This works hard to avoid loss of any metadata, but will result
545
+ # in an inode change for the file.
546
+ #
547
+ # Arguments: `filename`, `default_mode`
548
+ #
549
+ # The filename is the file we are going to replace.
550
+ #
551
+ # The default_mode is the mode to use when the target file doesn't already
552
+ # exist; if the file is present we copy the existing mode/owner/group values
553
+ # across. The default_mode can be expressed as an octal integer, a numeric string (ie '0664')
554
+ # or a symbolic file mode.
555
+
556
+ DEFAULT_POSIX_MODE = 0644
557
+ DEFAULT_WINDOWS_MODE = nil
558
+
559
+ def replace_file(file, default_mode, &block)
560
+ raise Puppet::DevError, "replace_file requires a block" unless block_given?
561
+
562
+ if default_mode
563
+ unless valid_symbolic_mode?(default_mode)
564
+ raise Puppet::DevError, "replace_file default_mode: #{default_mode} is invalid"
565
+ end
566
+
567
+ mode = symbolic_mode_to_int(normalize_symbolic_mode(default_mode))
568
+ else
569
+ if Puppet.features.microsoft_windows?
570
+ mode = DEFAULT_WINDOWS_MODE
571
+ else
572
+ mode = DEFAULT_POSIX_MODE
573
+ end
574
+ end
575
+
576
+ begin
577
+ file = Puppet::FileSystem.pathname(file)
578
+ # encoding for Uniquefile is not important here because the caller writes to it as it sees fit
579
+ tempfile = Puppet::FileSystem::Uniquefile.new(Puppet::FileSystem.basename_string(file), Puppet::FileSystem.dir_string(file))
580
+
581
+ # Set properties of the temporary file before we write the content, because
582
+ # Tempfile doesn't promise to be safe from reading by other people, just
583
+ # that it avoids races around creating the file.
584
+ #
585
+ # Our Windows emulation is pretty limited, and so we have to carefully
586
+ # and specifically handle the platform, which has all sorts of magic.
587
+ # So, unlike Unix, we don't pre-prep security; we use the default "quite
588
+ # secure" tempfile permissions instead. Magic happens later.
589
+ if !Puppet.features.microsoft_windows?
590
+ # Grab the current file mode, and fall back to the defaults.
591
+ effective_mode =
592
+ if Puppet::FileSystem.exist?(file)
593
+ stat = Puppet::FileSystem.lstat(file)
594
+ tempfile.chown(stat.uid, stat.gid)
595
+ stat.mode
596
+ else
597
+ mode
598
+ end
599
+
600
+ if effective_mode
601
+ # We only care about the bottom four slots, which make the real mode,
602
+ # and not the rest of the platform stat call fluff and stuff.
603
+ tempfile.chmod(effective_mode & 07777)
604
+ end
605
+ end
606
+
607
+ # OK, now allow the caller to write the content of the file.
608
+ yield tempfile
609
+
610
+ # Now, make sure the data (which includes the mode) is safe on disk.
611
+ tempfile.flush
612
+ begin
613
+ tempfile.fsync
614
+ rescue NotImplementedError
615
+ # fsync may not be implemented by Ruby on all platforms, but
616
+ # there is absolutely no recovery path if we detect that. So, we just
617
+ # ignore the return code.
618
+ #
619
+ # However, don't be fooled: that is accepting that we are running in
620
+ # an unsafe fashion. If you are porting to a new platform don't stub
621
+ # that out.
622
+ end
623
+
624
+ tempfile.close
625
+
626
+ if Puppet.features.microsoft_windows?
627
+ # Windows ReplaceFile needs a file to exist, so touch handles this
628
+ if !Puppet::FileSystem.exist?(file)
629
+ Puppet::FileSystem.touch(file)
630
+ if mode
631
+ Puppet::Util::Windows::Security.set_mode(mode, Puppet::FileSystem.path_string(file))
632
+ end
633
+ end
634
+ # Yes, the arguments are reversed compared to the rename in the rest
635
+ # of the world.
636
+ Puppet::Util::Windows::File.replace_file(FileSystem.path_string(file), tempfile.path)
637
+
638
+ else
639
+ File.rename(tempfile.path, Puppet::FileSystem.path_string(file))
640
+ end
641
+ ensure
642
+ # in case an error occurred before we renamed the temp file, make sure it
643
+ # gets deleted
644
+ if tempfile
645
+ tempfile.close!
646
+ end
647
+ end
648
+
649
+
650
+ # Ideally, we would now fsync the directory as well, but Ruby doesn't
651
+ # have support for that, and it doesn't matter /that/ much...
652
+
653
+ # Return something true, and possibly useful.
654
+ file
655
+ end
656
+ module_function :replace_file
657
+
658
+ # Executes a block of code, wrapped with some special exception handling. Causes the ruby interpreter to
659
+ # exit if the block throws an exception.
660
+ #
661
+ # @api public
662
+ # @param [String] message a message to log if the block fails
663
+ # @param [Integer] code the exit code that the ruby interpreter should return if the block fails
664
+ # @yield
665
+ def exit_on_fail(message, code = 1)
666
+ yield
667
+ # First, we need to check and see if we are catching a SystemExit error. These will be raised
668
+ # when we daemonize/fork, and they do not necessarily indicate a failure case.
669
+ rescue SystemExit => err
670
+ raise err
671
+
672
+ # Now we need to catch *any* other kind of exception, because we may be calling third-party
673
+ # code (e.g. webrick), and we have no idea what they might throw.
674
+ rescue Exception => err
675
+ ## NOTE: when debugging spec failures, these two lines can be very useful
676
+ #puts err.inspect
677
+ #puts Puppet::Util.pretty_backtrace(err.backtrace)
678
+ Puppet.log_exception(err, "#{message}: #{err}")
679
+ Puppet::Util::Log.force_flushqueue()
680
+ exit(code)
681
+ end
682
+ module_function :exit_on_fail
683
+
684
+ def deterministic_rand(seed,max)
685
+ deterministic_rand_int(seed, max).to_s
686
+ end
687
+ module_function :deterministic_rand
688
+
689
+ def deterministic_rand_int(seed,max)
690
+ Random.new(seed).rand(max)
691
+ end
692
+ module_function :deterministic_rand_int
693
+ end
694
+ end
695
+
696
+
697
+ require 'puppet/util/errors'
698
+ require 'puppet/util/methodhelper'
699
+ require 'puppet/util/metaid'
700
+ require 'puppet/util/classgen'
701
+ require 'puppet/util/docs'
702
+ require 'puppet/util/execution'
703
+ require 'puppet/util/logging'
704
+ require 'puppet/util/package'
705
+ require 'puppet/util/warnings'