puppet-parse 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. data/.travis.yml +0 -5
  2. data/README.md +1 -3
  3. data/lib/puppet-parse/version.rb +1 -1
  4. data/lib/puppet-parse.rb +2 -2
  5. data/lib/vendor/puppet/agent/locker.rb +46 -0
  6. data/lib/vendor/puppet/agent.rb +99 -0
  7. data/lib/vendor/puppet/application/agent.rb +489 -0
  8. data/lib/vendor/puppet/application/apply.rb +266 -0
  9. data/lib/vendor/puppet/application/ca.rb +5 -0
  10. data/lib/vendor/puppet/application/catalog.rb +4 -0
  11. data/lib/vendor/puppet/application/cert.rb +240 -0
  12. data/lib/vendor/puppet/application/certificate.rb +13 -0
  13. data/lib/vendor/puppet/application/certificate_request.rb +4 -0
  14. data/lib/vendor/puppet/application/certificate_revocation_list.rb +4 -0
  15. data/lib/vendor/puppet/application/config.rb +4 -0
  16. data/lib/vendor/puppet/application/describe.rb +256 -0
  17. data/lib/vendor/puppet/application/device.rb +242 -0
  18. data/lib/vendor/puppet/application/doc.rb +275 -0
  19. data/lib/vendor/puppet/application/face_base.rb +264 -0
  20. data/lib/vendor/puppet/application/facts.rb +4 -0
  21. data/lib/vendor/puppet/application/file.rb +4 -0
  22. data/lib/vendor/puppet/application/filebucket.rb +191 -0
  23. data/lib/vendor/puppet/application/help.rb +4 -0
  24. data/lib/vendor/puppet/application/indirection_base.rb +4 -0
  25. data/lib/vendor/puppet/application/inspect.rb +191 -0
  26. data/lib/vendor/puppet/application/instrumentation_data.rb +4 -0
  27. data/lib/vendor/puppet/application/instrumentation_listener.rb +4 -0
  28. data/lib/vendor/puppet/application/instrumentation_probe.rb +4 -0
  29. data/lib/vendor/puppet/application/key.rb +4 -0
  30. data/lib/vendor/puppet/application/kick.rb +351 -0
  31. data/lib/vendor/puppet/application/man.rb +4 -0
  32. data/lib/vendor/puppet/application/master.rb +263 -0
  33. data/lib/vendor/puppet/application/module.rb +11 -0
  34. data/lib/vendor/puppet/application/node.rb +4 -0
  35. data/lib/vendor/puppet/application/parser.rb +5 -0
  36. data/lib/vendor/puppet/application/plugin.rb +3 -0
  37. data/lib/vendor/puppet/application/queue.rb +161 -0
  38. data/lib/vendor/puppet/application/report.rb +4 -0
  39. data/lib/vendor/puppet/application/resource.rb +237 -0
  40. data/lib/vendor/puppet/application/resource_type.rb +4 -0
  41. data/lib/vendor/puppet/application/secret_agent.rb +6 -0
  42. data/lib/vendor/puppet/application/status.rb +4 -0
  43. data/lib/vendor/puppet/application.rb +421 -0
  44. data/lib/vendor/puppet/configurer/downloader.rb +86 -0
  45. data/lib/vendor/puppet/configurer/fact_handler.rb +56 -0
  46. data/lib/vendor/puppet/configurer/plugin_handler.rb +37 -0
  47. data/lib/vendor/puppet/configurer.rb +249 -0
  48. data/lib/vendor/puppet/daemon.rb +200 -0
  49. data/lib/vendor/puppet/defaults.rb +970 -0
  50. data/lib/vendor/puppet/dsl/resource_api.rb +120 -0
  51. data/lib/vendor/puppet/dsl/resource_type_api.rb +34 -0
  52. data/lib/vendor/puppet/dsl.rb +7 -0
  53. data/lib/vendor/puppet/error.rb +43 -0
  54. data/lib/vendor/puppet/external/base64.rb +19 -0
  55. data/lib/vendor/puppet/external/dot.rb +326 -0
  56. data/lib/vendor/puppet/external/lock.rb +63 -0
  57. data/lib/vendor/puppet/external/nagios/base.rb +472 -0
  58. data/lib/vendor/puppet/external/nagios/grammar.ry +185 -0
  59. data/lib/vendor/puppet/external/nagios/makefile +9 -0
  60. data/lib/vendor/puppet/external/nagios/parser.rb +775 -0
  61. data/lib/vendor/puppet/external/nagios.rb +48 -0
  62. data/lib/vendor/puppet/external/pson/common.rb +370 -0
  63. data/lib/vendor/puppet/external/pson/pure/generator.rb +401 -0
  64. data/lib/vendor/puppet/external/pson/pure/parser.rb +264 -0
  65. data/lib/vendor/puppet/external/pson/pure.rb +77 -0
  66. data/lib/vendor/puppet/external/pson/version.rb +8 -0
  67. data/lib/vendor/puppet/face/ca.rb +242 -0
  68. data/lib/vendor/puppet/face/catalog/select.rb +49 -0
  69. data/lib/vendor/puppet/face/catalog.rb +131 -0
  70. data/lib/vendor/puppet/face/certificate.rb +148 -0
  71. data/lib/vendor/puppet/face/certificate_request.rb +53 -0
  72. data/lib/vendor/puppet/face/certificate_revocation_list.rb +58 -0
  73. data/lib/vendor/puppet/face/config.rb +45 -0
  74. data/lib/vendor/puppet/face/facts.rb +81 -0
  75. data/lib/vendor/puppet/face/file/download.rb +54 -0
  76. data/lib/vendor/puppet/face/file/store.rb +21 -0
  77. data/lib/vendor/puppet/face/file.rb +47 -0
  78. data/lib/vendor/puppet/face/help/action.erb +53 -0
  79. data/lib/vendor/puppet/face/help/face.erb +79 -0
  80. data/lib/vendor/puppet/face/help/global.erb +19 -0
  81. data/lib/vendor/puppet/face/help/man.erb +136 -0
  82. data/lib/vendor/puppet/face/help.rb +131 -0
  83. data/lib/vendor/puppet/face/instrumentation_data.rb +28 -0
  84. data/lib/vendor/puppet/face/instrumentation_listener.rb +96 -0
  85. data/lib/vendor/puppet/face/instrumentation_probe.rb +77 -0
  86. data/lib/vendor/puppet/face/key.rb +15 -0
  87. data/lib/vendor/puppet/face/man.rb +93 -0
  88. data/lib/vendor/puppet/face/module/build.rb +37 -0
  89. data/lib/vendor/puppet/face/module/changes.rb +38 -0
  90. data/lib/vendor/puppet/face/module/generate.rb +42 -0
  91. data/lib/vendor/puppet/face/module/install.rb +174 -0
  92. data/lib/vendor/puppet/face/module/list.rb +285 -0
  93. data/lib/vendor/puppet/face/module/search.rb +88 -0
  94. data/lib/vendor/puppet/face/module/uninstall.rb +86 -0
  95. data/lib/vendor/puppet/face/module/upgrade.rb +84 -0
  96. data/lib/vendor/puppet/face/module.rb +17 -0
  97. data/lib/vendor/puppet/face/node/clean.rb +156 -0
  98. data/lib/vendor/puppet/face/node.rb +43 -0
  99. data/lib/vendor/puppet/face/parser.rb +51 -0
  100. data/lib/vendor/puppet/face/plugin.rb +55 -0
  101. data/lib/vendor/puppet/face/report.rb +56 -0
  102. data/lib/vendor/puppet/face/resource.rb +53 -0
  103. data/lib/vendor/puppet/face/resource_type.rb +81 -0
  104. data/lib/vendor/puppet/face/secret_agent.rb +54 -0
  105. data/lib/vendor/puppet/face/status.rb +53 -0
  106. data/lib/vendor/puppet/face.rb +12 -0
  107. data/lib/vendor/puppet/feature/base.rb +67 -0
  108. data/lib/vendor/puppet/feature/eventlog.rb +6 -0
  109. data/lib/vendor/puppet/feature/pson.rb +6 -0
  110. data/lib/vendor/puppet/feature/rack.rb +24 -0
  111. data/lib/vendor/puppet/feature/rails.rb +30 -0
  112. data/lib/vendor/puppet/feature/rubygems.rb +3 -0
  113. data/lib/vendor/puppet/feature/selinux.rb +3 -0
  114. data/lib/vendor/puppet/feature/ssh.rb +4 -0
  115. data/lib/vendor/puppet/feature/stomp.rb +6 -0
  116. data/lib/vendor/puppet/feature/zlib.rb +6 -0
  117. data/lib/vendor/puppet/file_bucket/dipper.rb +107 -0
  118. data/lib/vendor/puppet/file_bucket/file.rb +55 -0
  119. data/lib/vendor/puppet/file_bucket.rb +4 -0
  120. data/lib/vendor/puppet/file_collection/lookup.rb +10 -0
  121. data/lib/vendor/puppet/file_collection.rb +19 -0
  122. data/lib/vendor/puppet/file_serving/base.rb +88 -0
  123. data/lib/vendor/puppet/file_serving/configuration/parser.rb +115 -0
  124. data/lib/vendor/puppet/file_serving/configuration.rb +122 -0
  125. data/lib/vendor/puppet/file_serving/content.rb +45 -0
  126. data/lib/vendor/puppet/file_serving/fileset.rb +173 -0
  127. data/lib/vendor/puppet/file_serving/metadata.rb +155 -0
  128. data/lib/vendor/puppet/file_serving/mount/file.rb +121 -0
  129. data/lib/vendor/puppet/file_serving/mount/modules.rb +24 -0
  130. data/lib/vendor/puppet/file_serving/mount/plugins.rb +26 -0
  131. data/lib/vendor/puppet/file_serving/mount.rb +39 -0
  132. data/lib/vendor/puppet/file_serving/terminus_helper.rb +21 -0
  133. data/lib/vendor/puppet/file_serving/terminus_selector.rb +28 -0
  134. data/lib/vendor/puppet/file_serving.rb +3 -0
  135. data/lib/vendor/puppet/forge/cache.rb +55 -0
  136. data/lib/vendor/puppet/forge/repository.rb +102 -0
  137. data/lib/vendor/puppet/forge.rb +98 -0
  138. data/lib/vendor/puppet/indirector/active_record.rb +28 -0
  139. data/lib/vendor/puppet/indirector/catalog/active_record.rb +41 -0
  140. data/lib/vendor/puppet/indirector/catalog/compiler.rb +153 -0
  141. data/lib/vendor/puppet/indirector/catalog/queue.rb +5 -0
  142. data/lib/vendor/puppet/indirector/catalog/rest.rb +6 -0
  143. data/lib/vendor/puppet/indirector/catalog/static_compiler.rb +136 -0
  144. data/lib/vendor/puppet/indirector/catalog/store_configs.rb +5 -0
  145. data/lib/vendor/puppet/indirector/catalog/yaml.rb +22 -0
  146. data/lib/vendor/puppet/indirector/certificate/ca.rb +9 -0
  147. data/lib/vendor/puppet/indirector/certificate/disabled_ca.rb +22 -0
  148. data/lib/vendor/puppet/indirector/certificate/file.rb +9 -0
  149. data/lib/vendor/puppet/indirector/certificate/rest.rb +15 -0
  150. data/lib/vendor/puppet/indirector/certificate_request/ca.rb +22 -0
  151. data/lib/vendor/puppet/indirector/certificate_request/disabled_ca.rb +22 -0
  152. data/lib/vendor/puppet/indirector/certificate_request/file.rb +8 -0
  153. data/lib/vendor/puppet/indirector/certificate_request/rest.rb +9 -0
  154. data/lib/vendor/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
  155. data/lib/vendor/puppet/indirector/certificate_revocation_list/disabled_ca.rb +22 -0
  156. data/lib/vendor/puppet/indirector/certificate_revocation_list/file.rb +8 -0
  157. data/lib/vendor/puppet/indirector/certificate_revocation_list/rest.rb +9 -0
  158. data/lib/vendor/puppet/indirector/certificate_status/file.rb +82 -0
  159. data/lib/vendor/puppet/indirector/certificate_status/rest.rb +10 -0
  160. data/lib/vendor/puppet/indirector/certificate_status.rb +4 -0
  161. data/lib/vendor/puppet/indirector/code.rb +6 -0
  162. data/lib/vendor/puppet/indirector/couch.rb +78 -0
  163. data/lib/vendor/puppet/indirector/direct_file_server.rb +19 -0
  164. data/lib/vendor/puppet/indirector/envelope.rb +11 -0
  165. data/lib/vendor/puppet/indirector/exec.rb +48 -0
  166. data/lib/vendor/puppet/indirector/face.rb +137 -0
  167. data/lib/vendor/puppet/indirector/facts/active_record.rb +36 -0
  168. data/lib/vendor/puppet/indirector/facts/couch.rb +31 -0
  169. data/lib/vendor/puppet/indirector/facts/facter.rb +96 -0
  170. data/lib/vendor/puppet/indirector/facts/inventory_active_record.rb +100 -0
  171. data/lib/vendor/puppet/indirector/facts/inventory_service.rb +20 -0
  172. data/lib/vendor/puppet/indirector/facts/memory.rb +9 -0
  173. data/lib/vendor/puppet/indirector/facts/network_device.rb +25 -0
  174. data/lib/vendor/puppet/indirector/facts/rest.rb +8 -0
  175. data/lib/vendor/puppet/indirector/facts/store_configs.rb +5 -0
  176. data/lib/vendor/puppet/indirector/facts/yaml.rb +82 -0
  177. data/lib/vendor/puppet/indirector/file_bucket_file/file.rb +136 -0
  178. data/lib/vendor/puppet/indirector/file_bucket_file/rest.rb +8 -0
  179. data/lib/vendor/puppet/indirector/file_bucket_file/selector.rb +49 -0
  180. data/lib/vendor/puppet/indirector/file_content/file.rb +7 -0
  181. data/lib/vendor/puppet/indirector/file_content/file_server.rb +7 -0
  182. data/lib/vendor/puppet/indirector/file_content/rest.rb +7 -0
  183. data/lib/vendor/puppet/indirector/file_content/selector.rb +30 -0
  184. data/lib/vendor/puppet/indirector/file_content.rb +5 -0
  185. data/lib/vendor/puppet/indirector/file_metadata/file.rb +22 -0
  186. data/lib/vendor/puppet/indirector/file_metadata/file_server.rb +7 -0
  187. data/lib/vendor/puppet/indirector/file_metadata/rest.rb +7 -0
  188. data/lib/vendor/puppet/indirector/file_metadata/selector.rb +30 -0
  189. data/lib/vendor/puppet/indirector/file_metadata.rb +5 -0
  190. data/lib/vendor/puppet/indirector/file_server.rb +65 -0
  191. data/lib/vendor/puppet/indirector/indirection.rb +323 -0
  192. data/lib/vendor/puppet/indirector/instrumentation_data/local.rb +19 -0
  193. data/lib/vendor/puppet/indirector/instrumentation_data/rest.rb +5 -0
  194. data/lib/vendor/puppet/indirector/instrumentation_data.rb +3 -0
  195. data/lib/vendor/puppet/indirector/instrumentation_listener/local.rb +23 -0
  196. data/lib/vendor/puppet/indirector/instrumentation_listener/rest.rb +5 -0
  197. data/lib/vendor/puppet/indirector/instrumentation_listener.rb +3 -0
  198. data/lib/vendor/puppet/indirector/instrumentation_probe/local.rb +24 -0
  199. data/lib/vendor/puppet/indirector/instrumentation_probe/rest.rb +5 -0
  200. data/lib/vendor/puppet/indirector/instrumentation_probe.rb +3 -0
  201. data/lib/vendor/puppet/indirector/inventory/yaml.rb +81 -0
  202. data/lib/vendor/puppet/indirector/key/ca.rb +12 -0
  203. data/lib/vendor/puppet/indirector/key/disabled_ca.rb +22 -0
  204. data/lib/vendor/puppet/indirector/key/file.rb +42 -0
  205. data/lib/vendor/puppet/indirector/ldap.rb +78 -0
  206. data/lib/vendor/puppet/indirector/memory.rb +21 -0
  207. data/lib/vendor/puppet/indirector/node/active_record.rb +13 -0
  208. data/lib/vendor/puppet/indirector/node/exec.rb +60 -0
  209. data/lib/vendor/puppet/indirector/node/ldap.rb +256 -0
  210. data/lib/vendor/puppet/indirector/node/memory.rb +10 -0
  211. data/lib/vendor/puppet/indirector/node/plain.rb +19 -0
  212. data/lib/vendor/puppet/indirector/node/rest.rb +7 -0
  213. data/lib/vendor/puppet/indirector/node/store_configs.rb +5 -0
  214. data/lib/vendor/puppet/indirector/node/yaml.rb +7 -0
  215. data/lib/vendor/puppet/indirector/plain.rb +9 -0
  216. data/lib/vendor/puppet/indirector/queue.rb +81 -0
  217. data/lib/vendor/puppet/indirector/report/processor.rb +61 -0
  218. data/lib/vendor/puppet/indirector/report/rest.rb +7 -0
  219. data/lib/vendor/puppet/indirector/report/yaml.rb +11 -0
  220. data/lib/vendor/puppet/indirector/request.rb +204 -0
  221. data/lib/vendor/puppet/indirector/resource/active_record.rb +93 -0
  222. data/lib/vendor/puppet/indirector/resource/ral.rb +53 -0
  223. data/lib/vendor/puppet/indirector/resource/rest.rb +5 -0
  224. data/lib/vendor/puppet/indirector/resource/store_configs.rb +3 -0
  225. data/lib/vendor/puppet/indirector/resource_type/parser.rb +43 -0
  226. data/lib/vendor/puppet/indirector/resource_type/rest.rb +7 -0
  227. data/lib/vendor/puppet/indirector/resource_type.rb +5 -0
  228. data/lib/vendor/puppet/indirector/rest.rb +166 -0
  229. data/lib/vendor/puppet/indirector/run/local.rb +8 -0
  230. data/lib/vendor/puppet/indirector/run/rest.rb +6 -0
  231. data/lib/vendor/puppet/indirector/ssl_file.rb +178 -0
  232. data/lib/vendor/puppet/indirector/status/local.rb +7 -0
  233. data/lib/vendor/puppet/indirector/status/rest.rb +5 -0
  234. data/lib/vendor/puppet/indirector/status.rb +3 -0
  235. data/lib/vendor/puppet/indirector/store_configs.rb +30 -0
  236. data/lib/vendor/puppet/indirector/terminus.rb +145 -0
  237. data/lib/vendor/puppet/indirector/yaml.rb +75 -0
  238. data/lib/vendor/puppet/indirector.rb +57 -0
  239. data/lib/vendor/puppet/interface/action.rb +322 -0
  240. data/lib/vendor/puppet/interface/action_builder.rb +74 -0
  241. data/lib/vendor/puppet/interface/action_manager.rb +74 -0
  242. data/lib/vendor/puppet/interface/documentation.rb +230 -0
  243. data/lib/vendor/puppet/interface/face_collection.rb +128 -0
  244. data/lib/vendor/puppet/interface/option.rb +127 -0
  245. data/lib/vendor/puppet/interface/option_builder.rb +67 -0
  246. data/lib/vendor/puppet/interface/option_manager.rb +68 -0
  247. data/lib/vendor/puppet/interface.rb +161 -0
  248. data/lib/vendor/puppet/metatype/manager.rb +141 -0
  249. data/lib/vendor/puppet/module.rb +314 -0
  250. data/lib/vendor/puppet/module_tool/applications/application.rb +82 -0
  251. data/lib/vendor/puppet/module_tool/applications/builder.rb +91 -0
  252. data/lib/vendor/puppet/module_tool/applications/checksummer.rb +56 -0
  253. data/lib/vendor/puppet/module_tool/applications/generator.rb +141 -0
  254. data/lib/vendor/puppet/module_tool/applications/installer.rb +183 -0
  255. data/lib/vendor/puppet/module_tool/applications/searcher.rb +15 -0
  256. data/lib/vendor/puppet/module_tool/applications/uninstaller.rb +107 -0
  257. data/lib/vendor/puppet/module_tool/applications/unpacker.rb +67 -0
  258. data/lib/vendor/puppet/module_tool/applications/upgrader.rb +109 -0
  259. data/lib/vendor/puppet/module_tool/applications.rb +15 -0
  260. data/lib/vendor/puppet/module_tool/checksums.rb +52 -0
  261. data/lib/vendor/puppet/module_tool/contents_description.rb +82 -0
  262. data/lib/vendor/puppet/module_tool/dependency.rb +24 -0
  263. data/lib/vendor/puppet/module_tool/errors/base.rb +15 -0
  264. data/lib/vendor/puppet/module_tool/errors/installer.rb +90 -0
  265. data/lib/vendor/puppet/module_tool/errors/shared.rb +115 -0
  266. data/lib/vendor/puppet/module_tool/errors/uninstaller.rb +45 -0
  267. data/lib/vendor/puppet/module_tool/errors/upgrader.rb +72 -0
  268. data/lib/vendor/puppet/module_tool/errors.rb +9 -0
  269. data/lib/vendor/puppet/module_tool/metadata.rb +141 -0
  270. data/lib/vendor/puppet/module_tool/modulefile.rb +75 -0
  271. data/lib/vendor/puppet/module_tool/shared_behaviors.rb +161 -0
  272. data/lib/vendor/puppet/module_tool/skeleton/templates/generator/Modulefile.erb +11 -0
  273. data/lib/vendor/puppet/module_tool/skeleton/templates/generator/README.erb +16 -0
  274. data/lib/vendor/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +41 -0
  275. data/lib/vendor/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +17 -0
  276. data/lib/vendor/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +11 -0
  277. data/lib/vendor/puppet/module_tool/skeleton.rb +34 -0
  278. data/lib/vendor/puppet/module_tool.rb +99 -0
  279. data/lib/vendor/puppet/network/authconfig.rb +174 -0
  280. data/lib/vendor/puppet/network/authorization.rb +76 -0
  281. data/lib/vendor/puppet/network/authstore.rb +267 -0
  282. data/lib/vendor/puppet/network/client_request.rb +29 -0
  283. data/lib/vendor/puppet/network/format.rb +111 -0
  284. data/lib/vendor/puppet/network/format_handler.rb +181 -0
  285. data/lib/vendor/puppet/network/formats.rb +171 -0
  286. data/lib/vendor/puppet/network/handler/ca.rb +61 -0
  287. data/lib/vendor/puppet/network/handler/filebucket.rb +53 -0
  288. data/lib/vendor/puppet/network/handler/fileserver.rb +732 -0
  289. data/lib/vendor/puppet/network/handler/master.rb +87 -0
  290. data/lib/vendor/puppet/network/handler/report.rb +82 -0
  291. data/lib/vendor/puppet/network/handler/runner.rb +33 -0
  292. data/lib/vendor/puppet/network/handler/status.rb +18 -0
  293. data/lib/vendor/puppet/network/handler.rb +50 -0
  294. data/lib/vendor/puppet/network/http/api/v1.rb +83 -0
  295. data/lib/vendor/puppet/network/http/api.rb +4 -0
  296. data/lib/vendor/puppet/network/http/compression.rb +114 -0
  297. data/lib/vendor/puppet/network/http/handler.rb +247 -0
  298. data/lib/vendor/puppet/network/http/mongrel/rest.rb +99 -0
  299. data/lib/vendor/puppet/network/http/mongrel.rb +55 -0
  300. data/lib/vendor/puppet/network/http/rack/httphandler.rb +16 -0
  301. data/lib/vendor/puppet/network/http/rack/rest.rb +100 -0
  302. data/lib/vendor/puppet/network/http/rack/xmlrpc.rb +65 -0
  303. data/lib/vendor/puppet/network/http/rack.rb +65 -0
  304. data/lib/vendor/puppet/network/http/webrick/rest.rb +81 -0
  305. data/lib/vendor/puppet/network/http/webrick.rb +141 -0
  306. data/lib/vendor/puppet/network/http.rb +15 -0
  307. data/lib/vendor/puppet/network/http_pool.rb +57 -0
  308. data/lib/vendor/puppet/network/http_server/mongrel.rb +129 -0
  309. data/lib/vendor/puppet/network/http_server.rb +3 -0
  310. data/lib/vendor/puppet/network/rest_authconfig.rb +102 -0
  311. data/lib/vendor/puppet/network/rest_authorization.rb +23 -0
  312. data/lib/vendor/puppet/network/rest_controller.rb +2 -0
  313. data/lib/vendor/puppet/network/rights.rb +275 -0
  314. data/lib/vendor/puppet/network/server.rb +164 -0
  315. data/lib/vendor/puppet/network/xmlrpc/processor.rb +86 -0
  316. data/lib/vendor/puppet/network/xmlrpc/server.rb +19 -0
  317. data/lib/vendor/puppet/network/xmlrpc/webrick_servlet.rb +114 -0
  318. data/lib/vendor/puppet/network.rb +3 -0
  319. data/lib/vendor/puppet/node/environment.rb +216 -0
  320. data/lib/vendor/puppet/node/facts.rb +99 -0
  321. data/lib/vendor/puppet/node/inventory.rb +7 -0
  322. data/lib/vendor/puppet/node.rb +120 -0
  323. data/lib/vendor/puppet/parameter/path.rb +34 -0
  324. data/lib/vendor/puppet/parameter/value.rb +69 -0
  325. data/lib/vendor/puppet/parameter/value_collection.rb +143 -0
  326. data/lib/vendor/puppet/parameter.rb +316 -0
  327. data/lib/vendor/puppet/parser/ast/arithmetic_operator.rb +39 -0
  328. data/lib/vendor/puppet/parser/ast/astarray.rb +50 -0
  329. data/lib/vendor/puppet/parser/ast/asthash.rb +37 -0
  330. data/lib/vendor/puppet/parser/ast/boolean_operator.rb +46 -0
  331. data/lib/vendor/puppet/parser/ast/branch.rb +37 -0
  332. data/lib/vendor/puppet/parser/ast/caseopt.rb +52 -0
  333. data/lib/vendor/puppet/parser/ast/casestatement.rb +44 -0
  334. data/lib/vendor/puppet/parser/ast/collection.rb +49 -0
  335. data/lib/vendor/puppet/parser/ast/collexpr.rb +57 -0
  336. data/lib/vendor/puppet/parser/ast/comparison_operator.rb +38 -0
  337. data/lib/vendor/puppet/parser/ast/definition.rb +17 -0
  338. data/lib/vendor/puppet/parser/ast/else.rb +22 -0
  339. data/lib/vendor/puppet/parser/ast/function.rb +50 -0
  340. data/lib/vendor/puppet/parser/ast/hostclass.rb +29 -0
  341. data/lib/vendor/puppet/parser/ast/ifstatement.rb +34 -0
  342. data/lib/vendor/puppet/parser/ast/in_operator.rb +24 -0
  343. data/lib/vendor/puppet/parser/ast/leaf.rb +221 -0
  344. data/lib/vendor/puppet/parser/ast/match_operator.rb +28 -0
  345. data/lib/vendor/puppet/parser/ast/minus.rb +23 -0
  346. data/lib/vendor/puppet/parser/ast/node.rb +20 -0
  347. data/lib/vendor/puppet/parser/ast/nop.rb +11 -0
  348. data/lib/vendor/puppet/parser/ast/not.rb +19 -0
  349. data/lib/vendor/puppet/parser/ast/relationship.rb +47 -0
  350. data/lib/vendor/puppet/parser/ast/resource.rb +74 -0
  351. data/lib/vendor/puppet/parser/ast/resource_defaults.rb +24 -0
  352. data/lib/vendor/puppet/parser/ast/resource_instance.rb +9 -0
  353. data/lib/vendor/puppet/parser/ast/resource_override.rb +67 -0
  354. data/lib/vendor/puppet/parser/ast/resource_reference.rb +28 -0
  355. data/lib/vendor/puppet/parser/ast/resourceparam.rb +29 -0
  356. data/lib/vendor/puppet/parser/ast/selector.rb +44 -0
  357. data/lib/vendor/puppet/parser/ast/tag.rb +24 -0
  358. data/lib/vendor/puppet/parser/ast/top_level_construct.rb +4 -0
  359. data/lib/vendor/puppet/parser/ast/vardef.rb +33 -0
  360. data/lib/vendor/puppet/parser/ast.rb +139 -0
  361. data/lib/vendor/puppet/parser/collector.rb +176 -0
  362. data/lib/vendor/puppet/parser/compiler.rb +476 -0
  363. data/lib/vendor/puppet/parser/files.rb +88 -0
  364. data/lib/vendor/puppet/parser/functions/create_resources.rb +75 -0
  365. data/lib/vendor/puppet/parser/functions/defined.rb +49 -0
  366. data/lib/vendor/puppet/parser/functions/extlookup.rb +152 -0
  367. data/lib/vendor/puppet/parser/functions/fail.rb +4 -0
  368. data/lib/vendor/puppet/parser/functions/file.rb +23 -0
  369. data/lib/vendor/puppet/parser/functions/fqdn_rand.rb +13 -0
  370. data/lib/vendor/puppet/parser/functions/generate.rb +37 -0
  371. data/lib/vendor/puppet/parser/functions/include.rb +24 -0
  372. data/lib/vendor/puppet/parser/functions/inline_template.rb +21 -0
  373. data/lib/vendor/puppet/parser/functions/md5.rb +5 -0
  374. data/lib/vendor/puppet/parser/functions/realize.rb +14 -0
  375. data/lib/vendor/puppet/parser/functions/regsubst.rb +119 -0
  376. data/lib/vendor/puppet/parser/functions/require.rb +57 -0
  377. data/lib/vendor/puppet/parser/functions/search.rb +7 -0
  378. data/lib/vendor/puppet/parser/functions/sha1.rb +5 -0
  379. data/lib/vendor/puppet/parser/functions/shellquote.rb +61 -0
  380. data/lib/vendor/puppet/parser/functions/split.rb +29 -0
  381. data/lib/vendor/puppet/parser/functions/sprintf.rb +39 -0
  382. data/lib/vendor/puppet/parser/functions/tag.rb +6 -0
  383. data/lib/vendor/puppet/parser/functions/tagged.rb +18 -0
  384. data/lib/vendor/puppet/parser/functions/template.rb +23 -0
  385. data/lib/vendor/puppet/parser/functions/versioncmp.rb +37 -0
  386. data/lib/vendor/puppet/parser/functions.rb +165 -0
  387. data/lib/vendor/puppet/parser/grammar.ra +771 -0
  388. data/lib/vendor/puppet/parser/lexer.rb +617 -0
  389. data/lib/vendor/puppet/parser/makefile +8 -0
  390. data/lib/vendor/puppet/parser/parser.rb +2421 -0
  391. data/lib/vendor/puppet/parser/parser_support.rb +211 -0
  392. data/lib/vendor/puppet/parser/relationship.rb +62 -0
  393. data/lib/vendor/puppet/parser/resource/param.rb +25 -0
  394. data/lib/vendor/puppet/parser/resource.rb +341 -0
  395. data/lib/vendor/puppet/parser/scope.rb +497 -0
  396. data/lib/vendor/puppet/parser/templatewrapper.rb +115 -0
  397. data/lib/vendor/puppet/parser/type_loader.rb +172 -0
  398. data/lib/vendor/puppet/parser/yaml_trimmer.rb +9 -0
  399. data/lib/vendor/puppet/parser.rb +4 -0
  400. data/lib/vendor/puppet/property/ensure.rb +92 -0
  401. data/lib/vendor/puppet/property/keyvalue.rb +86 -0
  402. data/lib/vendor/puppet/property/list.rb +75 -0
  403. data/lib/vendor/puppet/property/ordered_list.rb +22 -0
  404. data/lib/vendor/puppet/property.rb +373 -0
  405. data/lib/vendor/puppet/provider/aixobject.rb +393 -0
  406. data/lib/vendor/puppet/provider/augeas/augeas.rb +418 -0
  407. data/lib/vendor/puppet/provider/cisco.rb +9 -0
  408. data/lib/vendor/puppet/provider/computer/computer.rb +20 -0
  409. data/lib/vendor/puppet/provider/confine/exists.rb +19 -0
  410. data/lib/vendor/puppet/provider/confine/false.rb +19 -0
  411. data/lib/vendor/puppet/provider/confine/feature.rb +17 -0
  412. data/lib/vendor/puppet/provider/confine/true.rb +20 -0
  413. data/lib/vendor/puppet/provider/confine/variable.rb +59 -0
  414. data/lib/vendor/puppet/provider/confine.rb +80 -0
  415. data/lib/vendor/puppet/provider/confine_collection.rb +50 -0
  416. data/lib/vendor/puppet/provider/confiner.rb +16 -0
  417. data/lib/vendor/puppet/provider/cron/crontab.rb +200 -0
  418. data/lib/vendor/puppet/provider/exec/posix.rb +39 -0
  419. data/lib/vendor/puppet/provider/exec/shell.rb +25 -0
  420. data/lib/vendor/puppet/provider/exec/windows.rb +56 -0
  421. data/lib/vendor/puppet/provider/exec.rb +84 -0
  422. data/lib/vendor/puppet/provider/file/posix.rb +135 -0
  423. data/lib/vendor/puppet/provider/file/windows.rb +88 -0
  424. data/lib/vendor/puppet/provider/group/aix.rb +141 -0
  425. data/lib/vendor/puppet/provider/group/directoryservice.rb +12 -0
  426. data/lib/vendor/puppet/provider/group/groupadd.rb +29 -0
  427. data/lib/vendor/puppet/provider/group/ldap.rb +45 -0
  428. data/lib/vendor/puppet/provider/group/pw.rb +48 -0
  429. data/lib/vendor/puppet/provider/group/windows_adsi.rb +54 -0
  430. data/lib/vendor/puppet/provider/host/parsed.rb +44 -0
  431. data/lib/vendor/puppet/provider/interface/base.rb +0 -0
  432. data/lib/vendor/puppet/provider/interface/cisco.rb +27 -0
  433. data/lib/vendor/puppet/provider/ldap.rb +137 -0
  434. data/lib/vendor/puppet/provider/macauthorization/macauthorization.rb +313 -0
  435. data/lib/vendor/puppet/provider/mailalias/aliases.rb +44 -0
  436. data/lib/vendor/puppet/provider/maillist/mailman.rb +108 -0
  437. data/lib/vendor/puppet/provider/mcx/mcxcontent.rb +166 -0
  438. data/lib/vendor/puppet/provider/mount/parsed.rb +124 -0
  439. data/lib/vendor/puppet/provider/mount.rb +46 -0
  440. data/lib/vendor/puppet/provider/naginator.rb +63 -0
  441. data/lib/vendor/puppet/provider/nameservice/directoryservice.rb +652 -0
  442. data/lib/vendor/puppet/provider/nameservice/objectadd.rb +33 -0
  443. data/lib/vendor/puppet/provider/nameservice/pw.rb +21 -0
  444. data/lib/vendor/puppet/provider/nameservice.rb +276 -0
  445. data/lib/vendor/puppet/provider/network_device.rb +68 -0
  446. data/lib/vendor/puppet/provider/package/aix.rb +128 -0
  447. data/lib/vendor/puppet/provider/package/appdmg.rb +109 -0
  448. data/lib/vendor/puppet/provider/package/apple.rb +47 -0
  449. data/lib/vendor/puppet/provider/package/apt.rb +111 -0
  450. data/lib/vendor/puppet/provider/package/aptitude.rb +29 -0
  451. data/lib/vendor/puppet/provider/package/aptrpm.rb +83 -0
  452. data/lib/vendor/puppet/provider/package/blastwave.rb +111 -0
  453. data/lib/vendor/puppet/provider/package/dpkg.rb +155 -0
  454. data/lib/vendor/puppet/provider/package/fink.rb +81 -0
  455. data/lib/vendor/puppet/provider/package/freebsd.rb +49 -0
  456. data/lib/vendor/puppet/provider/package/gem.rb +127 -0
  457. data/lib/vendor/puppet/provider/package/hpux.rb +44 -0
  458. data/lib/vendor/puppet/provider/package/macports.rb +105 -0
  459. data/lib/vendor/puppet/provider/package/msi.rb +141 -0
  460. data/lib/vendor/puppet/provider/package/nim.rb +35 -0
  461. data/lib/vendor/puppet/provider/package/openbsd.rb +112 -0
  462. data/lib/vendor/puppet/provider/package/pacman.rb +94 -0
  463. data/lib/vendor/puppet/provider/package/pip.rb +111 -0
  464. data/lib/vendor/puppet/provider/package/pkg.rb +112 -0
  465. data/lib/vendor/puppet/provider/package/pkgdmg.rb +123 -0
  466. data/lib/vendor/puppet/provider/package/pkgutil.rb +174 -0
  467. data/lib/vendor/puppet/provider/package/portage.rb +124 -0
  468. data/lib/vendor/puppet/provider/package/ports.rb +94 -0
  469. data/lib/vendor/puppet/provider/package/portupgrade.rb +241 -0
  470. data/lib/vendor/puppet/provider/package/rpm.rb +132 -0
  471. data/lib/vendor/puppet/provider/package/rug.rb +52 -0
  472. data/lib/vendor/puppet/provider/package/sun.rb +154 -0
  473. data/lib/vendor/puppet/provider/package/sunfreeware.rb +9 -0
  474. data/lib/vendor/puppet/provider/package/up2date.rb +41 -0
  475. data/lib/vendor/puppet/provider/package/urpmi.rb +59 -0
  476. data/lib/vendor/puppet/provider/package/yum.rb +106 -0
  477. data/lib/vendor/puppet/provider/package/yumhelper.py +129 -0
  478. data/lib/vendor/puppet/provider/package/zypper.rb +84 -0
  479. data/lib/vendor/puppet/provider/package.rb +28 -0
  480. data/lib/vendor/puppet/provider/parsedfile.rb +374 -0
  481. data/lib/vendor/puppet/provider/port/parsed.rb +173 -0
  482. data/lib/vendor/puppet/provider/scheduled_task/win32_taskscheduler.rb +565 -0
  483. data/lib/vendor/puppet/provider/selboolean/getsetsebool.rb +47 -0
  484. data/lib/vendor/puppet/provider/selmodule/semodule.rb +134 -0
  485. data/lib/vendor/puppet/provider/service/base.rb +105 -0
  486. data/lib/vendor/puppet/provider/service/bsd.rb +49 -0
  487. data/lib/vendor/puppet/provider/service/daemontools.rb +194 -0
  488. data/lib/vendor/puppet/provider/service/debian.rb +68 -0
  489. data/lib/vendor/puppet/provider/service/freebsd.rb +139 -0
  490. data/lib/vendor/puppet/provider/service/gentoo.rb +54 -0
  491. data/lib/vendor/puppet/provider/service/init.rb +140 -0
  492. data/lib/vendor/puppet/provider/service/launchd.rb +303 -0
  493. data/lib/vendor/puppet/provider/service/openrc.rb +69 -0
  494. data/lib/vendor/puppet/provider/service/redhat.rb +76 -0
  495. data/lib/vendor/puppet/provider/service/runit.rb +103 -0
  496. data/lib/vendor/puppet/provider/service/service.rb +43 -0
  497. data/lib/vendor/puppet/provider/service/smf.rb +104 -0
  498. data/lib/vendor/puppet/provider/service/src.rb +86 -0
  499. data/lib/vendor/puppet/provider/service/systemd.rb +64 -0
  500. data/lib/vendor/puppet/provider/service/upstart.rb +347 -0
  501. data/lib/vendor/puppet/provider/service/windows.rb +106 -0
  502. data/lib/vendor/puppet/provider/ssh_authorized_key/parsed.rb +88 -0
  503. data/lib/vendor/puppet/provider/sshkey/parsed.rb +37 -0
  504. data/lib/vendor/puppet/provider/user/aix.rb +357 -0
  505. data/lib/vendor/puppet/provider/user/directoryservice.rb +86 -0
  506. data/lib/vendor/puppet/provider/user/hpux.rb +31 -0
  507. data/lib/vendor/puppet/provider/user/ldap.rb +129 -0
  508. data/lib/vendor/puppet/provider/user/pw.rb +101 -0
  509. data/lib/vendor/puppet/provider/user/user_role_add.rb +207 -0
  510. data/lib/vendor/puppet/provider/user/useradd.rb +127 -0
  511. data/lib/vendor/puppet/provider/user/windows_adsi.rb +99 -0
  512. data/lib/vendor/puppet/provider/vlan/cisco.rb +28 -0
  513. data/lib/vendor/puppet/provider/zfs/solaris.rb +45 -0
  514. data/lib/vendor/puppet/provider/zone/solaris.rb +260 -0
  515. data/lib/vendor/puppet/provider/zpool/solaris.rb +116 -0
  516. data/lib/vendor/puppet/provider.rb +290 -0
  517. data/lib/vendor/puppet/rails/benchmark.rb +63 -0
  518. data/lib/vendor/puppet/rails/database/001_add_created_at_to_all_tables.rb +13 -0
  519. data/lib/vendor/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +13 -0
  520. data/lib/vendor/puppet/rails/database/003_add_environment_to_host.rb +9 -0
  521. data/lib/vendor/puppet/rails/database/004_add_inventory_service_tables.rb +36 -0
  522. data/lib/vendor/puppet/rails/database/schema.rb +131 -0
  523. data/lib/vendor/puppet/rails/fact_name.rb +6 -0
  524. data/lib/vendor/puppet/rails/fact_value.rb +8 -0
  525. data/lib/vendor/puppet/rails/host.rb +258 -0
  526. data/lib/vendor/puppet/rails/inventory_fact.rb +5 -0
  527. data/lib/vendor/puppet/rails/inventory_node.rb +43 -0
  528. data/lib/vendor/puppet/rails/param_name.rb +25 -0
  529. data/lib/vendor/puppet/rails/param_value.rb +74 -0
  530. data/lib/vendor/puppet/rails/puppet_tag.rb +10 -0
  531. data/lib/vendor/puppet/rails/resource.rb +231 -0
  532. data/lib/vendor/puppet/rails/resource_tag.rb +26 -0
  533. data/lib/vendor/puppet/rails/source_file.rb +8 -0
  534. data/lib/vendor/puppet/rails.rb +132 -0
  535. data/lib/vendor/puppet/rb_tree_map.rb +388 -0
  536. data/lib/vendor/puppet/reference/configuration.rb +69 -0
  537. data/lib/vendor/puppet/reference/function.rb +17 -0
  538. data/lib/vendor/puppet/reference/indirection.rb +32 -0
  539. data/lib/vendor/puppet/reference/metaparameter.rb +43 -0
  540. data/lib/vendor/puppet/reference/network.rb +39 -0
  541. data/lib/vendor/puppet/reference/providers.rb +119 -0
  542. data/lib/vendor/puppet/reference/report.rb +23 -0
  543. data/lib/vendor/puppet/reference/type.rb +116 -0
  544. data/lib/vendor/puppet/relationship.rb +95 -0
  545. data/lib/vendor/puppet/reports/http.rb +25 -0
  546. data/lib/vendor/puppet/reports/log.rb +14 -0
  547. data/lib/vendor/puppet/reports/rrdgraph.rb +128 -0
  548. data/lib/vendor/puppet/reports/store.rb +74 -0
  549. data/lib/vendor/puppet/reports/tagmail.rb +179 -0
  550. data/lib/vendor/puppet/reports.rb +49 -0
  551. data/lib/vendor/puppet/resource/catalog.rb +661 -0
  552. data/lib/vendor/puppet/resource/status.rb +79 -0
  553. data/lib/vendor/puppet/resource/type.rb +344 -0
  554. data/lib/vendor/puppet/resource/type_collection.rb +215 -0
  555. data/lib/vendor/puppet/resource/type_collection_helper.rb +7 -0
  556. data/lib/vendor/puppet/resource.rb +467 -0
  557. data/lib/vendor/puppet/run.rb +77 -0
  558. data/lib/vendor/puppet/simple_graph.rb +550 -0
  559. data/lib/vendor/puppet/ssl/base.rb +86 -0
  560. data/lib/vendor/puppet/ssl/certificate.rb +40 -0
  561. data/lib/vendor/puppet/ssl/certificate_authority/interface.rb +182 -0
  562. data/lib/vendor/puppet/ssl/certificate_authority.rb +374 -0
  563. data/lib/vendor/puppet/ssl/certificate_factory.rb +166 -0
  564. data/lib/vendor/puppet/ssl/certificate_request.rb +149 -0
  565. data/lib/vendor/puppet/ssl/certificate_revocation_list.rb +84 -0
  566. data/lib/vendor/puppet/ssl/host.rb +365 -0
  567. data/lib/vendor/puppet/ssl/inventory.rb +54 -0
  568. data/lib/vendor/puppet/ssl/key.rb +56 -0
  569. data/lib/vendor/puppet/ssl.rb +8 -0
  570. data/lib/vendor/puppet/status.rb +28 -0
  571. data/lib/vendor/puppet/test/test_helper.rb +141 -0
  572. data/lib/vendor/puppet/transaction/event.rb +66 -0
  573. data/lib/vendor/puppet/transaction/event_manager.rb +115 -0
  574. data/lib/vendor/puppet/transaction/report.rb +200 -0
  575. data/lib/vendor/puppet/transaction/resource_harness.rb +178 -0
  576. data/lib/vendor/puppet/transaction.rb +493 -0
  577. data/lib/vendor/puppet/transportable.rb +248 -0
  578. data/lib/vendor/puppet/type/augeas.rb +218 -0
  579. data/lib/vendor/puppet/type/component.rb +85 -0
  580. data/lib/vendor/puppet/type/computer.rb +66 -0
  581. data/lib/vendor/puppet/type/cron.rb +421 -0
  582. data/lib/vendor/puppet/type/exec.rb +520 -0
  583. data/lib/vendor/puppet/type/file/checksum.rb +33 -0
  584. data/lib/vendor/puppet/type/file/content.rb +230 -0
  585. data/lib/vendor/puppet/type/file/ctime.rb +18 -0
  586. data/lib/vendor/puppet/type/file/ensure.rb +172 -0
  587. data/lib/vendor/puppet/type/file/group.rb +41 -0
  588. data/lib/vendor/puppet/type/file/mode.rb +148 -0
  589. data/lib/vendor/puppet/type/file/mtime.rb +17 -0
  590. data/lib/vendor/puppet/type/file/owner.rb +44 -0
  591. data/lib/vendor/puppet/type/file/selcontext.rb +123 -0
  592. data/lib/vendor/puppet/type/file/source.rb +195 -0
  593. data/lib/vendor/puppet/type/file/target.rb +87 -0
  594. data/lib/vendor/puppet/type/file/type.rb +19 -0
  595. data/lib/vendor/puppet/type/file.rb +829 -0
  596. data/lib/vendor/puppet/type/filebucket.rb +114 -0
  597. data/lib/vendor/puppet/type/group.rb +149 -0
  598. data/lib/vendor/puppet/type/host.rb +87 -0
  599. data/lib/vendor/puppet/type/interface.rb +112 -0
  600. data/lib/vendor/puppet/type/k5login.rb +88 -0
  601. data/lib/vendor/puppet/type/macauthorization.rb +167 -0
  602. data/lib/vendor/puppet/type/mailalias.rb +48 -0
  603. data/lib/vendor/puppet/type/maillist.rb +62 -0
  604. data/lib/vendor/puppet/type/mcx.rb +99 -0
  605. data/lib/vendor/puppet/type/mount.rb +241 -0
  606. data/lib/vendor/puppet/type/nagios_command.rb +3 -0
  607. data/lib/vendor/puppet/type/nagios_contact.rb +3 -0
  608. data/lib/vendor/puppet/type/nagios_contactgroup.rb +3 -0
  609. data/lib/vendor/puppet/type/nagios_host.rb +3 -0
  610. data/lib/vendor/puppet/type/nagios_hostdependency.rb +3 -0
  611. data/lib/vendor/puppet/type/nagios_hostescalation.rb +3 -0
  612. data/lib/vendor/puppet/type/nagios_hostextinfo.rb +3 -0
  613. data/lib/vendor/puppet/type/nagios_hostgroup.rb +3 -0
  614. data/lib/vendor/puppet/type/nagios_service.rb +3 -0
  615. data/lib/vendor/puppet/type/nagios_servicedependency.rb +3 -0
  616. data/lib/vendor/puppet/type/nagios_serviceescalation.rb +3 -0
  617. data/lib/vendor/puppet/type/nagios_serviceextinfo.rb +3 -0
  618. data/lib/vendor/puppet/type/nagios_servicegroup.rb +3 -0
  619. data/lib/vendor/puppet/type/nagios_timeperiod.rb +3 -0
  620. data/lib/vendor/puppet/type/notify.rb +44 -0
  621. data/lib/vendor/puppet/type/package.rb +357 -0
  622. data/lib/vendor/puppet/type/port.rb +119 -0
  623. data/lib/vendor/puppet/type/resources.rb +131 -0
  624. data/lib/vendor/puppet/type/router.rb +17 -0
  625. data/lib/vendor/puppet/type/schedule.rb +360 -0
  626. data/lib/vendor/puppet/type/scheduled_task.rb +166 -0
  627. data/lib/vendor/puppet/type/selboolean.rb +26 -0
  628. data/lib/vendor/puppet/type/selmodule.rb +59 -0
  629. data/lib/vendor/puppet/type/service.rb +221 -0
  630. data/lib/vendor/puppet/type/ssh_authorized_key.rb +112 -0
  631. data/lib/vendor/puppet/type/sshkey.rb +72 -0
  632. data/lib/vendor/puppet/type/stage.rb +19 -0
  633. data/lib/vendor/puppet/type/tidy.rb +333 -0
  634. data/lib/vendor/puppet/type/user.rb +524 -0
  635. data/lib/vendor/puppet/type/vlan.rb +26 -0
  636. data/lib/vendor/puppet/type/whit.rb +34 -0
  637. data/lib/vendor/puppet/type/yumrepo.rb +361 -0
  638. data/lib/vendor/puppet/type/zfs.rb +146 -0
  639. data/lib/vendor/puppet/type/zone.rb +492 -0
  640. data/lib/vendor/puppet/type/zpool.rb +91 -0
  641. data/lib/vendor/puppet/type.rb +1979 -0
  642. data/lib/vendor/puppet/util/adsi.rb +296 -0
  643. data/lib/vendor/puppet/util/autoload/file_cache.rb +92 -0
  644. data/lib/vendor/puppet/util/autoload.rb +158 -0
  645. data/lib/vendor/puppet/util/backups.rb +87 -0
  646. data/lib/vendor/puppet/util/cacher.rb +80 -0
  647. data/lib/vendor/puppet/util/checksums.rb +143 -0
  648. data/lib/vendor/puppet/util/classgen.rb +209 -0
  649. data/lib/vendor/puppet/util/colors.rb +128 -0
  650. data/lib/vendor/puppet/util/command_line.rb +185 -0
  651. data/lib/vendor/puppet/util/constant_inflector.rb +15 -0
  652. data/lib/vendor/puppet/util/diff.rb +77 -0
  653. data/lib/vendor/puppet/util/docs.rb +123 -0
  654. data/lib/vendor/puppet/util/errors.rb +63 -0
  655. data/lib/vendor/puppet/util/execution.rb +20 -0
  656. data/lib/vendor/puppet/util/execution_stub.rb +26 -0
  657. data/lib/vendor/puppet/util/feature.rb +83 -0
  658. data/lib/vendor/puppet/util/file_locking.rb +47 -0
  659. data/lib/vendor/puppet/util/fileparsing.rb +373 -0
  660. data/lib/vendor/puppet/util/filetype.rb +296 -0
  661. data/lib/vendor/puppet/util/graph.rb +27 -0
  662. data/lib/vendor/puppet/util/inifile.rb +203 -0
  663. data/lib/vendor/puppet/util/inline_docs.rb +26 -0
  664. data/lib/vendor/puppet/util/instance_loader.rb +81 -0
  665. data/lib/vendor/puppet/util/instrumentation/data.rb +34 -0
  666. data/lib/vendor/puppet/util/instrumentation/indirection_probe.rb +29 -0
  667. data/lib/vendor/puppet/util/instrumentation/instrumentable.rb +143 -0
  668. data/lib/vendor/puppet/util/instrumentation/listener.rb +60 -0
  669. data/lib/vendor/puppet/util/instrumentation/listeners/log.rb +29 -0
  670. data/lib/vendor/puppet/util/instrumentation/listeners/performance.rb +30 -0
  671. data/lib/vendor/puppet/util/instrumentation.rb +171 -0
  672. data/lib/vendor/puppet/util/ldap/connection.rb +74 -0
  673. data/lib/vendor/puppet/util/ldap/generator.rb +42 -0
  674. data/lib/vendor/puppet/util/ldap/manager.rb +279 -0
  675. data/lib/vendor/puppet/util/ldap.rb +2 -0
  676. data/lib/vendor/puppet/util/loadedfile.rb +61 -0
  677. data/lib/vendor/puppet/util/log/destination.rb +49 -0
  678. data/lib/vendor/puppet/util/log/destinations.rb +268 -0
  679. data/lib/vendor/puppet/util/log.rb +275 -0
  680. data/lib/vendor/puppet/util/log_paths.rb +22 -0
  681. data/lib/vendor/puppet/util/logging.rb +51 -0
  682. data/lib/vendor/puppet/util/metaid.rb +21 -0
  683. data/lib/vendor/puppet/util/methodhelper.rb +32 -0
  684. data/lib/vendor/puppet/util/metric.rb +186 -0
  685. data/lib/vendor/puppet/util/monkey_patches.rb +243 -0
  686. data/lib/vendor/puppet/util/nagios_maker.rb +60 -0
  687. data/lib/vendor/puppet/util/network_device/base.rb +27 -0
  688. data/lib/vendor/puppet/util/network_device/cisco/device.rb +257 -0
  689. data/lib/vendor/puppet/util/network_device/cisco/facts.rb +72 -0
  690. data/lib/vendor/puppet/util/network_device/cisco/interface.rb +82 -0
  691. data/lib/vendor/puppet/util/network_device/cisco.rb +4 -0
  692. data/lib/vendor/puppet/util/network_device/config.rb +92 -0
  693. data/lib/vendor/puppet/util/network_device/ipcalc.rb +68 -0
  694. data/lib/vendor/puppet/util/network_device/transport/base.rb +26 -0
  695. data/lib/vendor/puppet/util/network_device/transport/ssh.rb +121 -0
  696. data/lib/vendor/puppet/util/network_device/transport/telnet.rb +42 -0
  697. data/lib/vendor/puppet/util/network_device/transport.rb +3 -0
  698. data/lib/vendor/puppet/util/network_device.rb +17 -0
  699. data/lib/vendor/puppet/util/package.rb +31 -0
  700. data/lib/vendor/puppet/util/pidlock.rb +117 -0
  701. data/lib/vendor/puppet/util/platform.rb +22 -0
  702. data/lib/vendor/puppet/util/plugins.rb +82 -0
  703. data/lib/vendor/puppet/util/posix.rb +137 -0
  704. data/lib/vendor/puppet/util/provider_features.rb +168 -0
  705. data/lib/vendor/puppet/util/pson.rb +13 -0
  706. data/lib/vendor/puppet/util/queue/stomp.rb +60 -0
  707. data/lib/vendor/puppet/util/queue.rb +96 -0
  708. data/lib/vendor/puppet/util/rails/cache_accumulator.rb +65 -0
  709. data/lib/vendor/puppet/util/rails/collection_merger.rb +17 -0
  710. data/lib/vendor/puppet/util/rails/reference_serializer.rb +32 -0
  711. data/lib/vendor/puppet/util/rdoc.rb +87 -0
  712. data/lib/vendor/puppet/util/reference.rb +124 -0
  713. data/lib/vendor/puppet/util/resource_template.rb +61 -0
  714. data/lib/vendor/puppet/util/retryaction.rb +48 -0
  715. data/lib/vendor/puppet/util/run_mode.rb +82 -0
  716. data/lib/vendor/puppet/util/selinux.rb +211 -0
  717. data/lib/vendor/puppet/util/settings/boolean_setting.rb +30 -0
  718. data/lib/vendor/puppet/util/settings/file_setting.rb +135 -0
  719. data/lib/vendor/puppet/util/settings/setting.rb +94 -0
  720. data/lib/vendor/puppet/util/settings.rb +926 -0
  721. data/lib/vendor/puppet/util/storage.rb +96 -0
  722. data/lib/vendor/puppet/util/subclass_loader.rb +82 -0
  723. data/lib/vendor/puppet/util/suidmanager.rb +173 -0
  724. data/lib/vendor/puppet/util/symbolic_file_mode.rb +140 -0
  725. data/lib/vendor/puppet/util/tagging.rb +78 -0
  726. data/lib/vendor/puppet/util/terminal.rb +16 -0
  727. data/lib/vendor/puppet/util/user_attr.rb +21 -0
  728. data/lib/vendor/puppet/util/warnings.rb +29 -0
  729. data/lib/vendor/puppet/util/windows/error.rb +16 -0
  730. data/lib/vendor/puppet/util/windows/file.rb +27 -0
  731. data/lib/vendor/puppet/util/windows/process.rb +33 -0
  732. data/lib/vendor/puppet/util/windows/security.rb +622 -0
  733. data/lib/vendor/puppet/util/windows/sid.rb +96 -0
  734. data/lib/vendor/puppet/util/windows/user.rb +106 -0
  735. data/lib/vendor/puppet/util/windows.rb +8 -0
  736. data/lib/vendor/puppet/util/zaml.rb +407 -0
  737. data/lib/vendor/puppet/util.rb +646 -0
  738. data/lib/vendor/puppet/version.rb +18 -0
  739. data/lib/vendor/puppet.rb +125 -0
  740. data/lib/vendor/semver.rb +124 -0
  741. data/puppet-parse.gemspec +2 -8
  742. metadata +812 -94
@@ -0,0 +1,357 @@
1
+ #
2
+ # User Puppet provider for AIX. It uses standard commands to manage users:
3
+ # mkuser, rmuser, lsuser, chuser
4
+ #
5
+ # Notes:
6
+ # - AIX users can have expiry date defined with minute granularity,
7
+ # but puppet does not allow it. There is a ticket open for that (#5431)
8
+ # - AIX maximum password age is in WEEKs, not days
9
+ #
10
+ # See http://projects.puppetlabs.com/projects/puppet/wiki/Development_Provider_Development
11
+ # for more information
12
+ #
13
+ # Author:: Hector Rivas Gandara <keymon@gmail.com>
14
+ #
15
+ require 'puppet/provider/aixobject'
16
+ require 'tempfile'
17
+ require 'date'
18
+
19
+ Puppet::Type.type(:user).provide :aix, :parent => Puppet::Provider::AixObject do
20
+ desc "User management for AIX."
21
+
22
+ # This will the the default provider for this platform
23
+ defaultfor :operatingsystem => :aix
24
+ confine :operatingsystem => :aix
25
+
26
+ # Commands that manage the element
27
+ commands :list => "/usr/sbin/lsuser"
28
+ commands :add => "/usr/bin/mkuser"
29
+ commands :delete => "/usr/sbin/rmuser"
30
+ commands :modify => "/usr/bin/chuser"
31
+
32
+ commands :lsgroup => "/usr/sbin/lsgroup"
33
+ commands :chpasswd => "/bin/chpasswd"
34
+
35
+ # Provider features
36
+ has_features :manages_aix_lam
37
+ has_features :manages_homedir, :manages_passwords
38
+ has_features :manages_expiry, :manages_password_age
39
+
40
+ # Attribute verification (TODO)
41
+ #verify :gid, "GID must be an string or int of a valid group" do |value|
42
+ # value.is_a? String || value.is_a? Integer
43
+ #end
44
+ #
45
+ #verify :groups, "Groups must be comma-separated" do |value|
46
+ # value !~ /\s/
47
+ #end
48
+
49
+ # User attributes to ignore from AIX output.
50
+ def self.attribute_ignore
51
+ []
52
+ end
53
+
54
+ # AIX attributes to properties mapping.
55
+ #
56
+ # Valid attributes to be managed by this provider.
57
+ # It is a list with of hash
58
+ # :aix_attr AIX command attribute name
59
+ # :puppet_prop Puppet propertie name
60
+ # :to Method to adapt puppet property to aix command value. Optional.
61
+ # :from Method to adapt aix command value to puppet property. Optional
62
+ self.attribute_mapping = [
63
+ #:name => :name,
64
+ {:aix_attr => :pgrp, :puppet_prop => :gid,
65
+ :to => :gid_to_attr, :from => :gid_from_attr},
66
+ {:aix_attr => :id, :puppet_prop => :uid},
67
+ {:aix_attr => :groups, :puppet_prop => :groups},
68
+ {:aix_attr => :home, :puppet_prop => :home},
69
+ {:aix_attr => :shell, :puppet_prop => :shell},
70
+ {:aix_attr => :expires, :puppet_prop => :expiry,
71
+ :to => :expiry_to_attr, :from => :expiry_from_attr},
72
+ {:aix_attr => :maxage, :puppet_prop => :password_max_age},
73
+ {:aix_attr => :minage, :puppet_prop => :password_min_age},
74
+ {:aix_attr => :attributes, :puppet_prop => :attributes},
75
+ ]
76
+
77
+ #--------------
78
+ # Command definition
79
+
80
+ # Return the IA module arguments based on the resource param ia_load_module
81
+ def get_ia_module_args
82
+ if @resource[:ia_load_module]
83
+ ["-R", @resource[:ia_load_module].to_s]
84
+ else
85
+ []
86
+ end
87
+ end
88
+
89
+ # List groups and Ids
90
+ def lsgroupscmd(value=@resource[:name])
91
+ [command(:lsgroup)] +
92
+ self.get_ia_module_args +
93
+ ["-a", "id", value]
94
+ end
95
+
96
+ def lscmd(value=@resource[:name])
97
+ [self.class.command(:list)] + self.get_ia_module_args + [ value]
98
+ end
99
+
100
+ def lsallcmd()
101
+ lscmd("ALL")
102
+ end
103
+
104
+ def addcmd(extra_attrs = [])
105
+ # Here we use the @resource.to_hash to get the list of provided parameters
106
+ # Puppet does not call to self.<parameter>= method if it does not exists.
107
+ #
108
+ # It gets an extra list of arguments to add to the user.
109
+ [self.class.command(:add)] + self.get_ia_module_args +
110
+ self.hash2args(@resource.to_hash) +
111
+ extra_attrs + [@resource[:name]]
112
+ end
113
+
114
+ # Get modify command. Set translate=false if no mapping must be used.
115
+ # Needed for special properties like "attributes"
116
+ def modifycmd(hash = property_hash)
117
+ args = self.hash2args(hash)
118
+ return nil if args.empty?
119
+
120
+ [self.class.command(:modify)] + self.get_ia_module_args +
121
+ args + [@resource[:name]]
122
+ end
123
+
124
+ def deletecmd
125
+ [self.class.command(:delete)] + self.get_ia_module_args + [@resource[:name]]
126
+ end
127
+
128
+ #--------------
129
+ # We overwrite the create function to change the password after creation.
130
+ def create
131
+ super
132
+ # Reset the password if needed
133
+ self.password = @resource[:password] if @resource[:password]
134
+ end
135
+
136
+
137
+ def get_arguments(key, value, mapping, objectinfo)
138
+ # In the case of attributes, return a list of key=vlaue
139
+ if key == :attributes
140
+ raise Puppet::Error, "Attributes must be a list of pairs key=value on #{@resource.class.name}[#{@resource.name}]" \
141
+ unless value and value.is_a? Hash
142
+ return value.select { |k,v| true }.map { |pair| pair.join("=") }
143
+ end
144
+
145
+ super(key, value, mapping, objectinfo)
146
+ end
147
+
148
+ # Get the groupname from its id
149
+ def self.groupname_by_id(gid)
150
+ groupname=nil
151
+ execute(lsgroupscmd("ALL")).each_line { |entry|
152
+ attrs = self.parse_attr_list(entry, nil)
153
+ if attrs and attrs.include? :id and gid == attrs[:id].to_i
154
+ groupname = entry.split(" ")[0]
155
+ end
156
+ }
157
+ groupname
158
+ end
159
+
160
+ # Get the groupname from its id
161
+ def groupid_by_name(groupname)
162
+ attrs = self.parse_attr_list(execute(lsgroupscmd(groupname)).split("\n")[0], nil)
163
+ attrs ? attrs[:id].to_i : nil
164
+ end
165
+
166
+ # Check that a group exists and is valid
167
+ def verify_group(value)
168
+ if value.is_a? Integer or value.is_a? Fixnum
169
+ groupname = self.groupname_by_id(value)
170
+ raise ArgumentError, "AIX group must be a valid existing group" unless groupname
171
+ else
172
+ raise ArgumentError, "AIX group must be a valid existing group" unless groupid_by_name(value)
173
+ groupname = value
174
+ end
175
+ groupname
176
+ end
177
+
178
+ # The user's primary group. Can be specified numerically or by name.
179
+ def gid_to_attr(value)
180
+ verify_group(value)
181
+ end
182
+
183
+ # Get the group gid from its name
184
+ def gid_from_attr(value)
185
+ groupid_by_name(value)
186
+ end
187
+
188
+ # The expiry date for this user. Must be provided in
189
+ # a zero padded YYYY-MM-DD HH:MM format
190
+ def expiry_to_attr(value)
191
+ # For chuser the expires parameter is a 10-character string in the MMDDhhmmyy format
192
+ # that is,"%m%d%H%M%y"
193
+ newdate = '0'
194
+ if value.is_a? String and value!="0000-00-00"
195
+ d = DateTime.parse(value, "%Y-%m-%d %H:%M")
196
+ newdate = d.strftime("%m%d%H%M%y")
197
+ end
198
+ newdate
199
+ end
200
+
201
+ def expiry_from_attr(value)
202
+ if value =~ /(..)(..)(..)(..)(..)/
203
+ #d= DateTime.parse("20#{$5}-#{$1}-#{$2} #{$3}:#{$4}")
204
+ #expiry_date = d.strftime("%Y-%m-%d %H:%M")
205
+ #expiry_date = d.strftime("%Y-%m-%d")
206
+ expiry_date = "20#{$5}-#{$1}-#{$2}"
207
+ else
208
+ Puppet.warn("Could not convert AIX expires date '#{value}' on #{@resource.class.name}[#{@resource.name}]") \
209
+ unless value == '0'
210
+ expiry_date = :absent
211
+ end
212
+ expiry_date
213
+ end
214
+
215
+ #--------------------------------
216
+ # Getter and Setter
217
+ # When the provider is initialized, create getter/setter methods for each
218
+ # property our resource type supports.
219
+ # If setter or getter already defined it will not be overwritten
220
+
221
+ #- **password**
222
+ # The user's password, in whatever encrypted format the local machine
223
+ # requires. Be sure to enclose any value that includes a dollar sign ($)
224
+ # in single quotes ('). Requires features manages_passwords.
225
+ #
226
+ # Retrieve the password parsing directly the /etc/security/passwd
227
+ def password
228
+ password = :absent
229
+ user = @resource[:name]
230
+ f = File.open("/etc/security/passwd", 'r')
231
+ # Skip to the user
232
+ f.each_line { |l| break if l =~ /^#{user}:\s*$/ }
233
+ if ! f.eof?
234
+ f.each_line { |l|
235
+ # If there is a new user stanza, stop
236
+ break if l =~ /^\S*:\s*$/
237
+ # If the password= entry is found, return it
238
+ if l =~ /^\s*password\s*=\s*(.*)$/
239
+ password = $1; break;
240
+ end
241
+ }
242
+ end
243
+ f.close()
244
+ return password
245
+ end
246
+
247
+ def password=(value)
248
+ user = @resource[:name]
249
+
250
+ # Puppet execute does not support strings as input, only files.
251
+ tmpfile = Tempfile.new('puppet_#{user}_pw')
252
+ tmpfile << "#{user}:#{value}\n"
253
+ tmpfile.close()
254
+
255
+ # Options '-e', '-c', use encrypted password and clear flags
256
+ # Must receive "user:enc_password" as input
257
+ # command, arguments = {:failonfail => true, :combine => true}
258
+ # Fix for bugs #11200 and #10915
259
+ cmd = [self.class.command(:chpasswd), get_ia_module_args, '-e', '-c', user].flatten
260
+ begin
261
+ output = execute(cmd, {:failonfail => false, :combine => true, :stdinfile => tmpfile.path })
262
+ # chpasswd can return 1, even on success (at least on AIX 6.1); empty output indicates success
263
+ if output != ""
264
+ raise Puppet::ExecutionFailure, "chpasswd said #{output}"
265
+ end
266
+ rescue Puppet::ExecutionFailure => detail
267
+ raise Puppet::Error, "Could not set #{param} on #{@resource.class.name}[#{@resource.name}]: #{detail}"
268
+ ensure
269
+ tmpfile.delete()
270
+ end
271
+ end
272
+
273
+ def filter_attributes(hash)
274
+ # Return only not managed attributtes.
275
+ hash.select {
276
+ |k,v| !self.class.attribute_mapping_from.include?(k) and
277
+ !self.class.attribute_ignore.include?(k)
278
+ }.inject({}) {
279
+ |hash, array| hash[array[0]] = array[1]; hash
280
+ }
281
+ end
282
+
283
+ def attributes
284
+ filter_attributes(getosinfo(refresh = false))
285
+ end
286
+
287
+ def attributes=(attr_hash)
288
+ #self.class.validate(param, value)
289
+ param = :attributes
290
+ cmd = modifycmd({param => filter_attributes(attr_hash)})
291
+ if cmd
292
+ begin
293
+ execute(cmd)
294
+ rescue Puppet::ExecutionFailure => detail
295
+ raise Puppet::Error, "Could not set #{param} on #{@resource.class.name}[#{@resource.name}]: #{detail}"
296
+ end
297
+ end
298
+ end
299
+
300
+ #- **comment**
301
+ # A description of the user. Generally is a user's full name.
302
+ #def comment=(value)
303
+ #end
304
+ #
305
+ #def comment
306
+ #end
307
+ # UNSUPPORTED
308
+ #- **profile_membership**
309
+ # Whether specified roles should be treated as the only roles
310
+ # of which the user is a member or whether they should merely
311
+ # be treated as the minimum membership list. Valid values are
312
+ # `inclusive`, `minimum`.
313
+ # UNSUPPORTED
314
+ #- **profiles**
315
+ # The profiles the user has. Multiple profiles should be
316
+ # specified as an array. Requires features manages_solaris_rbac.
317
+ # UNSUPPORTED
318
+ #- **project**
319
+ # The name of the project associated with a user Requires features
320
+ # manages_solaris_rbac.
321
+ # UNSUPPORTED
322
+ #- **role_membership**
323
+ # Whether specified roles should be treated as the only roles
324
+ # of which the user is a member or whether they should merely
325
+ # be treated as the minimum membership list. Valid values are
326
+ # `inclusive`, `minimum`.
327
+ # UNSUPPORTED
328
+ #- **roles**
329
+ # The roles the user has. Multiple roles should be
330
+ # specified as an array. Requires features manages_solaris_rbac.
331
+ # UNSUPPORTED
332
+ #- **key_membership**
333
+ # Whether specified key value pairs should be treated as the only
334
+ # attributes
335
+ # of the user or whether they should merely
336
+ # be treated as the minimum list. Valid values are `inclusive`,
337
+ # `minimum`.
338
+ # UNSUPPORTED
339
+ #- **keys**
340
+ # Specify user attributes in an array of keyvalue pairs Requires features
341
+ # manages_solaris_rbac.
342
+ # UNSUPPORTED
343
+ #- **allowdupe**
344
+ # Whether to allow duplicate UIDs. Valid values are `true`, `false`.
345
+ # UNSUPPORTED
346
+ #- **auths**
347
+ # The auths the user has. Multiple auths should be
348
+ # specified as an array. Requires features manages_solaris_rbac.
349
+ # UNSUPPORTED
350
+ #- **auth_membership**
351
+ # Whether specified auths should be treated as the only auths
352
+ # of which the user is a member or whether they should merely
353
+ # be treated as the minimum membership list. Valid values are
354
+ # `inclusive`, `minimum`.
355
+ # UNSUPPORTED
356
+
357
+ end
@@ -0,0 +1,86 @@
1
+ require 'puppet/provider/nameservice/directoryservice'
2
+
3
+ Puppet::Type.type(:user).provide :directoryservice, :parent => Puppet::Provider::NameService::DirectoryService do
4
+ desc "User management using DirectoryService on OS X."
5
+
6
+ commands :dscl => "/usr/bin/dscl"
7
+ confine :operatingsystem => :darwin
8
+ defaultfor :operatingsystem => :darwin
9
+
10
+ # JJM: DirectoryService can manage passwords.
11
+ # This needs to be a special option to dscl though (-passwd)
12
+ has_feature :manages_passwords
13
+
14
+ # JJM: comment matches up with the /etc/passwd concept of an user
15
+ options :comment, :key => "realname"
16
+ options :password, :key => "passwd"
17
+
18
+ autogen_defaults :home => "/var/empty", :shell => "/usr/bin/false"
19
+
20
+ verify :gid, "GID must be an integer" do |value|
21
+ value.is_a? Integer
22
+ end
23
+
24
+ verify :uid, "UID must be an integer" do |value|
25
+ value.is_a? Integer
26
+ end
27
+
28
+ def autogen_comment
29
+ @resource[:name].capitalize
30
+ end
31
+
32
+ # The list of all groups the user is a member of.
33
+ # JJM: FIXME: Override this method...
34
+ def groups
35
+ groups = []
36
+ groups.join(",")
37
+ end
38
+
39
+ # This is really lame. We have to iterate over each
40
+ # of the groups and add us to them.
41
+ def groups=(groups)
42
+ # case groups
43
+ # when Fixnum
44
+ # groups = [groups.to_s]
45
+ # when String
46
+ # groups = groups.split(/\s*,\s*/)
47
+ # else
48
+ # raise Puppet::DevError, "got invalid groups value #{groups.class} of type #{groups}"
49
+ # end
50
+ # # Get just the groups we need to modify
51
+ # diff = groups - (@is || [])
52
+ #
53
+ # data = {}
54
+ # open("| #{command(:nireport)} / /groups name users") do |file|
55
+ # file.each do |line|
56
+ # name, members = line.split(/\s+/)
57
+ #
58
+ # if members.nil? or members =~ /NoValue/
59
+ # data[name] = []
60
+ # else
61
+ # # Add each diff group's current members
62
+ # data[name] = members.split(/,/)
63
+ # end
64
+ # end
65
+ # end
66
+ #
67
+ # user = @resource[:name]
68
+ # data.each do |name, members|
69
+ # if members.include? user and groups.include? name
70
+ # # I'm in the group and should be
71
+ # next
72
+ # elsif members.include? user
73
+ # # I'm in the group and shouldn't be
74
+ # setuserlist(name, members - [user])
75
+ # elsif groups.include? name
76
+ # # I'm not in the group and should be
77
+ # setuserlist(name, members + [user])
78
+ # else
79
+ # # I'm not in the group and shouldn't be
80
+ # next
81
+ # end
82
+ # end
83
+ end
84
+
85
+
86
+ end
@@ -0,0 +1,31 @@
1
+ Puppet::Type.type(:user).provide :hpuxuseradd, :parent => :useradd do
2
+ desc "User management for HP-UX. This provider uses the undocumented `-F`
3
+ switch to HP-UX's special `usermod` binary to work around the fact that
4
+ its standard `usermod` cannot make changes while the user is logged in."
5
+
6
+ defaultfor :operatingsystem => "hp-ux"
7
+ confine :operatingsystem => "hp-ux"
8
+
9
+ commands :modify => "/usr/sam/lbin/usermod.sam", :delete => "/usr/sam/lbin/userdel.sam", :add => "/usr/sbin/useradd"
10
+ options :comment, :method => :gecos
11
+ options :groups, :flag => "-G"
12
+ options :home, :flag => "-d", :method => :dir
13
+
14
+ verify :gid, "GID must be an integer" do |value|
15
+ value.is_a? Integer
16
+ end
17
+
18
+ verify :groups, "Groups must be comma-separated" do |value|
19
+ value !~ /\s/
20
+ end
21
+
22
+ has_features :manages_homedir, :allows_duplicates
23
+
24
+ def deletecmd
25
+ super.insert(1,"-F")
26
+ end
27
+
28
+ def modifycmd(param,value)
29
+ super.insert(1,"-F")
30
+ end
31
+ end
@@ -0,0 +1,129 @@
1
+ require 'puppet/provider/ldap'
2
+
3
+ Puppet::Type.type(:user).provide :ldap, :parent => Puppet::Provider::Ldap do
4
+ desc "User management via LDAP.
5
+
6
+ This provider requires that you have valid values for all of the
7
+ LDAP-related settings in `puppet.conf`, including `ldapbase`. You will
8
+ almost definitely need settings for `ldapuser` and `ldappassword` in order
9
+ for your clients to write to LDAP.
10
+
11
+ Note that this provider will automatically generate a UID for you if
12
+ you do not specify one, but it is a potentially expensive operation,
13
+ as it iterates across all existing users to pick the appropriate next one."
14
+
15
+ confine :feature => :ldap, :false => (Puppet[:ldapuser] == "")
16
+
17
+ has_feature :manages_passwords
18
+
19
+ manages(:posixAccount, :person).at("ou=People").named_by(:uid).and.maps :name => :uid,
20
+ :password => :userPassword,
21
+ :comment => :cn,
22
+ :uid => :uidNumber,
23
+ :gid => :gidNumber,
24
+ :home => :homeDirectory,
25
+ :shell => :loginShell
26
+
27
+ # Use the last field of a space-separated array as
28
+ # the sn. LDAP requires a surname, for some stupid reason.
29
+ manager.generates(:sn).from(:cn).with do |cn|
30
+ x = 1
31
+ cn[0].split(/\s+/)[-1]
32
+ end
33
+
34
+ # Find the next uid after the current largest uid.
35
+ provider = self
36
+ manager.generates(:uidNumber).with do
37
+ largest = 500
38
+ if existing = provider.manager.search
39
+ existing.each do |hash|
40
+ next unless value = hash[:uid]
41
+ num = value[0].to_i
42
+ largest = num if num > largest
43
+ end
44
+ end
45
+ largest + 1
46
+ end
47
+
48
+ # Convert our gid to a group name, if necessary.
49
+ def gid=(value)
50
+ value = group2id(value) unless [Fixnum, Bignum].include?(value.class)
51
+
52
+ @property_hash[:gid] = value
53
+ end
54
+
55
+ # Find all groups this user is a member of in ldap.
56
+ def groups
57
+ # We want to cache the current result, so we know if we
58
+ # have to remove old values.
59
+ unless @property_hash[:groups]
60
+ unless result = group_manager.search("memberUid=#{name}")
61
+ return @property_hash[:groups] = :absent
62
+ end
63
+
64
+ return @property_hash[:groups] = result.collect { |r| r[:name] }.sort.join(",")
65
+ end
66
+ @property_hash[:groups]
67
+ end
68
+
69
+ # Manage the list of groups this user is a member of.
70
+ def groups=(values)
71
+ should = values.split(",")
72
+
73
+ if groups == :absent
74
+ is = []
75
+ else
76
+ is = groups.split(",")
77
+ end
78
+
79
+ modes = {}
80
+ [is, should].flatten.uniq.each do |group|
81
+ # Skip it when they're in both
82
+ next if is.include?(group) and should.include?(group)
83
+
84
+ # We're adding a group.
85
+ modes[group] = :add and next unless is.include?(group)
86
+
87
+ # We're removing a group.
88
+ modes[group] = :remove and next unless should.include?(group)
89
+ end
90
+
91
+ modes.each do |group, form|
92
+ self.fail "Could not find ldap group #{group}" unless ldap_group = group_manager.find(group)
93
+
94
+ current = ldap_group[:members]
95
+
96
+ if form == :add
97
+ if current.is_a?(Array) and ! current.empty?
98
+ new = current + [name]
99
+ else
100
+ new = [name]
101
+ end
102
+ else
103
+ new = current - [name]
104
+ new = :absent if new.empty?
105
+ end
106
+
107
+ group_manager.update(group, {:ensure => :present, :members => current}, {:ensure => :present, :members => new})
108
+ end
109
+ end
110
+
111
+ # Convert a gropu name to an id.
112
+ def group2id(group)
113
+ Puppet::Type.type(:group).provider(:ldap).name2id(group)
114
+ end
115
+
116
+ private
117
+
118
+ def group_manager
119
+ Puppet::Type.type(:group).provider(:ldap).manager
120
+ end
121
+
122
+ def group_properties(values)
123
+ if values.empty? or values == :absent
124
+ {:ensure => :present}
125
+ else
126
+ {:ensure => :present, :members => values}
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,101 @@
1
+ require 'puppet/provider/nameservice/pw'
2
+ require 'open3'
3
+
4
+ Puppet::Type.type(:user).provide :pw, :parent => Puppet::Provider::NameService::PW do
5
+ desc "User management via `pw` on FreeBSD."
6
+
7
+ commands :pw => "pw"
8
+ has_features :manages_homedir, :allows_duplicates, :manages_passwords, :manages_expiry
9
+
10
+ defaultfor :operatingsystem => :freebsd
11
+
12
+ options :home, :flag => "-d", :method => :dir
13
+ options :comment, :method => :gecos
14
+ options :groups, :flag => "-G"
15
+ options :expiry, :method => :expire
16
+
17
+ verify :gid, "GID must be an integer" do |value|
18
+ value.is_a? Integer
19
+ end
20
+
21
+ verify :groups, "Groups must be comma-separated" do |value|
22
+ value !~ /\s/
23
+ end
24
+
25
+ def addcmd
26
+ cmd = [command(:pw), "useradd", @resource[:name]]
27
+ @resource.class.validproperties.each do |property|
28
+ next if property == :ensure or property == :password
29
+ # the value needs to be quoted, mostly because -c might
30
+ # have spaces in it
31
+ if value = @resource.should(property) and value != ""
32
+ if property == :expiry
33
+ # FreeBSD uses DD-MM-YYYY rather than YYYY-MM-DD
34
+ value = value.split("-").reverse.join("-")
35
+ end
36
+ cmd << flag(property) << value
37
+ end
38
+ end
39
+
40
+ cmd << "-o" if @resource.allowdupe?
41
+
42
+ cmd << "-m" if @resource.managehome?
43
+
44
+ cmd
45
+ end
46
+
47
+ def modifycmd(param, value)
48
+ if param == :expiry
49
+ # FreeBSD uses DD-MM-YYYY rather than YYYY-MM-DD
50
+ value = value.split("-").reverse.join("-")
51
+ end
52
+ cmd = super(param, value)
53
+ cmd << "-m" if @resource.managehome?
54
+ cmd
55
+ end
56
+
57
+ def deletecmd
58
+ cmd = super
59
+ cmd << "-r" if @resource.managehome?
60
+ cmd
61
+ end
62
+
63
+ def create
64
+ super
65
+
66
+ # Set the password after create if given
67
+ self.password = @resource[:password] if @resource[:password]
68
+ end
69
+
70
+ # use pw to update password hash
71
+ def password=(cryptopw)
72
+ Puppet.debug "change password for user '#{@resource[:name]}' method called with hash '#{cryptopw}'"
73
+ stdin, stdout, stderr = Open3.popen3("pw user mod #{@resource[:name]} -H 0")
74
+ stdin.puts(cryptopw)
75
+ stdin.close
76
+ Puppet.debug "finished password for user '#{@resource[:name]}' method called with hash '#{cryptopw}'"
77
+ end
78
+
79
+ # get password from /etc/master.passwd
80
+ def password
81
+ Puppet.debug "checking password for user '#{@resource[:name]}' method called"
82
+ current_passline = `getent passwd #{@resource[:name]}`
83
+ current_password = current_passline.chomp.split(':')[1] if current_passline
84
+ Puppet.debug "finished password for user '#{@resource[:name]}' method called : '#{current_password}'"
85
+ current_password
86
+ end
87
+
88
+ # Get expiry from system and convert to Puppet-style date
89
+ def expiry
90
+ expiry = self.get(:expiry)
91
+ expiry = :absent if expiry == 0
92
+
93
+ if expiry != :absent
94
+ t = Time.at(expiry)
95
+ expiry = "%4d-%02d-%02d" % [t.year, t.month, t.mday]
96
+ end
97
+
98
+ expiry
99
+ end
100
+ end
101
+