bebox 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (402) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +78 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +163 -0
  5. data/LICENSE +21 -0
  6. data/README.md +372 -0
  7. data/Rakefile +8 -0
  8. data/bebox.gemspec +40 -0
  9. data/bin/bebox +5 -0
  10. data/lib/bebox/cli.rb +42 -0
  11. data/lib/bebox/commands/commands_helper.rb +33 -0
  12. data/lib/bebox/commands/environment_commands.rb +46 -0
  13. data/lib/bebox/commands/general_commands.rb +24 -0
  14. data/lib/bebox/commands/node_commands.rb +68 -0
  15. data/lib/bebox/commands/prepare_commands.rb +59 -0
  16. data/lib/bebox/commands/project_commands.rb +44 -0
  17. data/lib/bebox/commands/provision_commands.rb +145 -0
  18. data/lib/bebox/environment.rb +114 -0
  19. data/lib/bebox/logger.rb +51 -0
  20. data/lib/bebox/node.rb +308 -0
  21. data/lib/bebox/profile.rb +102 -0
  22. data/lib/bebox/project.rb +259 -0
  23. data/lib/bebox/provision.rb +257 -0
  24. data/lib/bebox/role.rb +103 -0
  25. data/lib/bebox/version.rb +3 -0
  26. data/lib/bebox/wizards/environment_wizard.rb +45 -0
  27. data/lib/bebox/wizards/node_wizard.rb +163 -0
  28. data/lib/bebox/wizards/profile_wizard.rb +91 -0
  29. data/lib/bebox/wizards/project_wizard.rb +175 -0
  30. data/lib/bebox/wizards/provision_wizard.rb +80 -0
  31. data/lib/bebox/wizards/role_wizard.rb +97 -0
  32. data/lib/bebox.rb +2 -0
  33. data/lib/deb/puppet_3.6.0/augeas-lenses_0.10.0-0ubuntu4_all.deb +0 -0
  34. data/lib/deb/puppet_3.6.0/debconf-utils_1.5.42ubuntu1_all.deb +0 -0
  35. data/lib/deb/puppet_3.6.0/facter_2.0.1-1puppetlabs1_amd64.deb +0 -0
  36. data/lib/deb/puppet_3.6.0/hiera_1.3.2-1puppetlabs1_all.deb +0 -0
  37. data/lib/deb/puppet_3.6.0/libaugeas-ruby1.8_0.3.0-1.1ubuntu4_amd64.deb +0 -0
  38. data/lib/deb/puppet_3.6.0/libaugeas-ruby_0.3.0-1.1ubuntu4_all.deb +0 -0
  39. data/lib/deb/puppet_3.6.0/libaugeas0_0.10.0-0ubuntu4_amd64.deb +0 -0
  40. data/lib/deb/puppet_3.6.0/libjson-ruby_1.6.3-1_all.deb +0 -0
  41. data/lib/deb/puppet_3.6.0/libruby1.8_1.8.7.352-2ubuntu1.4_amd64.deb +0 -0
  42. data/lib/deb/puppet_3.6.0/libruby_4.8_all.deb +0 -0
  43. data/lib/deb/puppet_3.6.0/libshadow-ruby1.8_1.4.1-8build1_amd64.deb +0 -0
  44. data/lib/deb/puppet_3.6.0/puppet-common_3.6.0-1puppetlabs1_all.deb +0 -0
  45. data/lib/deb/puppet_3.6.0/puppet_3.6.0-1puppetlabs1_all.deb +0 -0
  46. data/lib/deb/puppet_3.6.0/ruby-json_1.6.3-1_amd64.deb +0 -0
  47. data/lib/deb/puppet_3.6.0/ruby-rgen_0.6.5-1puppetlabs1_all.deb +0 -0
  48. data/lib/deb/puppet_3.6.0/ruby1.8_1.8.7.352-2ubuntu1.4_amd64.deb +0 -0
  49. data/lib/deb/puppet_3.6.0/ruby_4.8_all.deb +0 -0
  50. data/lib/deb/puppet_3.6.0/virt-what_1.11-1_amd64.deb +0 -0
  51. data/lib/templates/node/Vagrantfile.erb +18 -0
  52. data/lib/templates/node/deploy_vagrant_node.erb +3 -0
  53. data/lib/templates/node/node.yml.erb +3 -0
  54. data/lib/templates/node/prepared_node.yml.erb +4 -0
  55. data/lib/templates/node/provisioned_node.yml.erb +4 -0
  56. data/lib/templates/project/Capfile.erb +2 -0
  57. data/lib/templates/project/Gemfile.erb +5 -0
  58. data/lib/templates/project/config/deploy/environment.erb +40 -0
  59. data/lib/templates/project/config/deploy/vagrant.erb +42 -0
  60. data/lib/templates/project/config/deploy.erb +120 -0
  61. data/lib/templates/project/dot_bebox.erb +4 -0
  62. data/lib/templates/project/gitignore.erb +7 -0
  63. data/lib/templates/project/ubuntu_dependencies +10 -0
  64. data/lib/templates/puppet/default_profiles/base/fundamental/ruby/Puppetfile +0 -0
  65. data/lib/templates/puppet/default_profiles/base/fundamental/ruby/manifests/init.pp +24 -0
  66. data/lib/templates/puppet/default_profiles/base/fundamental/sudo/Puppetfile +0 -0
  67. data/lib/templates/puppet/default_profiles/base/fundamental/sudo/manifests/init.pp +22 -0
  68. data/lib/templates/puppet/default_profiles/base/fundamental/users/Puppetfile +0 -0
  69. data/lib/templates/puppet/default_profiles/base/fundamental/users/manifests/init.pp +18 -0
  70. data/lib/templates/puppet/default_profiles/base/security/fail2ban/Puppetfile +2 -0
  71. data/lib/templates/puppet/default_profiles/base/security/fail2ban/manifests/init.pp +28 -0
  72. data/lib/templates/puppet/default_profiles/base/security/iptables/Puppetfile +2 -0
  73. data/lib/templates/puppet/default_profiles/base/security/iptables/manifests/init.pp +27 -0
  74. data/lib/templates/puppet/default_profiles/base/security/ssh/Puppetfile +2 -0
  75. data/lib/templates/puppet/default_profiles/base/security/ssh/manifests/init.pp +30 -0
  76. data/lib/templates/puppet/default_profiles/base/security/sysctl/Puppetfile +2 -0
  77. data/lib/templates/puppet/default_profiles/base/security/sysctl/manifests/init.pp +20 -0
  78. data/lib/templates/puppet/default_profiles/base/users/ssh/Puppetfile +2 -0
  79. data/lib/templates/puppet/default_profiles/base/users/ssh/manifests/init.pp +47 -0
  80. data/lib/templates/puppet/default_profiles/base/users/users/Puppetfile +0 -0
  81. data/lib/templates/puppet/default_profiles/base/users/users/manifests/init.pp +18 -0
  82. data/lib/templates/puppet/default_roles/fundamental/manifests/init.pp +16 -0
  83. data/lib/templates/puppet/default_roles/security/manifests/init.pp +17 -0
  84. data/lib/templates/puppet/default_roles/users/manifests/init.pp +15 -0
  85. data/lib/templates/puppet/profiles/Puppetfile.erb +24 -0
  86. data/lib/templates/puppet/profiles/manifests/init.pp.erb +17 -0
  87. data/lib/templates/puppet/roles/manifests/init.pp.erb +14 -0
  88. data/lib/templates/puppet/step-0/Puppetfile.erb +5 -0
  89. data/lib/templates/puppet/step-0/hiera/data/common.yaml.erb +26 -0
  90. data/lib/templates/puppet/step-0/hiera/data/environment.yaml.erb +26 -0
  91. data/lib/templates/puppet/step-0/hiera/data/node.yaml.erb +26 -0
  92. data/lib/templates/puppet/step-0/hiera/hiera.yaml.erb +11 -0
  93. data/lib/templates/puppet/step-0/manifests/node.erb +5 -0
  94. data/lib/templates/puppet/step-0/manifests/site.pp.erb +15 -0
  95. data/lib/templates/puppet/step-0/modules/rbenv/AUTHORS +11 -0
  96. data/lib/templates/puppet/step-0/modules/rbenv/CHANGELOG.md +70 -0
  97. data/lib/templates/puppet/step-0/modules/rbenv/Gemfile +8 -0
  98. data/lib/templates/puppet/step-0/modules/rbenv/Gemfile.lock +28 -0
  99. data/lib/templates/puppet/step-0/modules/rbenv/Modulefile +7 -0
  100. data/lib/templates/puppet/step-0/modules/rbenv/README.md +173 -0
  101. data/lib/templates/puppet/step-0/modules/rbenv/Rakefile +22 -0
  102. data/lib/templates/puppet/step-0/modules/rbenv/TODO +10 -0
  103. data/lib/templates/puppet/step-0/modules/rbenv/bin/autospec +16 -0
  104. data/lib/templates/puppet/step-0/modules/rbenv/bin/facter +16 -0
  105. data/lib/templates/puppet/step-0/modules/rbenv/bin/filebucket +16 -0
  106. data/lib/templates/puppet/step-0/modules/rbenv/bin/hiera +16 -0
  107. data/lib/templates/puppet/step-0/modules/rbenv/bin/htmldiff +16 -0
  108. data/lib/templates/puppet/step-0/modules/rbenv/bin/ldiff +16 -0
  109. data/lib/templates/puppet/step-0/modules/rbenv/bin/pi +16 -0
  110. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppet +16 -0
  111. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppet-lint +16 -0
  112. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppet-module +16 -0
  113. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetca +16 -0
  114. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetd +16 -0
  115. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetdoc +16 -0
  116. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetmasterd +16 -0
  117. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetqd +16 -0
  118. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetrun +16 -0
  119. data/lib/templates/puppet/step-0/modules/rbenv/bin/rake +16 -0
  120. data/lib/templates/puppet/step-0/modules/rbenv/bin/ralsh +16 -0
  121. data/lib/templates/puppet/step-0/modules/rbenv/bin/rspec +16 -0
  122. data/lib/templates/puppet/step-0/modules/rbenv/bin/rspec-puppet-init +16 -0
  123. data/lib/templates/puppet/step-0/modules/rbenv/lib/puppet/provider/rbenvgem/default.rb +50 -0
  124. data/lib/templates/puppet/step-0/modules/rbenv/lib/puppet/type/rbenvgem.rb +62 -0
  125. data/lib/templates/puppet/step-0/modules/rbenv/manifests/bundle.pp +36 -0
  126. data/lib/templates/puppet/step-0/modules/rbenv/manifests/client.pp +48 -0
  127. data/lib/templates/puppet/step-0/modules/rbenv/manifests/compile.pp +102 -0
  128. data/lib/templates/puppet/step-0/modules/rbenv/manifests/definition.pp +31 -0
  129. data/lib/templates/puppet/step-0/modules/rbenv/manifests/dependencies/centos.pp +25 -0
  130. data/lib/templates/puppet/step-0/modules/rbenv/manifests/dependencies/suse.pp +28 -0
  131. data/lib/templates/puppet/step-0/modules/rbenv/manifests/dependencies/ubuntu.pp +17 -0
  132. data/lib/templates/puppet/step-0/modules/rbenv/manifests/dependencies.pp +8 -0
  133. data/lib/templates/puppet/step-0/modules/rbenv/manifests/gem.pp +29 -0
  134. data/lib/templates/puppet/step-0/modules/rbenv/manifests/install.pp +55 -0
  135. data/lib/templates/puppet/step-0/modules/rbenv/manifests/plugin/rbenvvars.pp +16 -0
  136. data/lib/templates/puppet/step-0/modules/rbenv/manifests/plugin/rubybuild.pp +16 -0
  137. data/lib/templates/puppet/step-0/modules/rbenv/manifests/plugin.pp +40 -0
  138. data/lib/templates/puppet/step-0/modules/rbenv/metadata.json +109 -0
  139. data/lib/templates/puppet/step-0/modules/rbenv/templates/Gemfile.erb +5 -0
  140. data/lib/templates/puppet/step-0/modules/rbenv/templates/dot.rbenvrc.erb +8 -0
  141. data/lib/templates/puppet/step-0/modules/stdlib/CHANGELOG.md +418 -0
  142. data/lib/templates/puppet/step-0/modules/stdlib/CONTRIBUTING.md +65 -0
  143. data/lib/templates/puppet/step-0/modules/stdlib/Gemfile +33 -0
  144. data/lib/templates/puppet/step-0/modules/stdlib/Gemfile.lock +166 -0
  145. data/lib/templates/puppet/step-0/modules/stdlib/LICENSE +19 -0
  146. data/lib/templates/puppet/step-0/modules/stdlib/Modulefile +11 -0
  147. data/lib/templates/puppet/step-0/modules/stdlib/README.markdown +1304 -0
  148. data/lib/templates/puppet/step-0/modules/stdlib/README_DEVELOPER.markdown +35 -0
  149. data/lib/templates/puppet/step-0/modules/stdlib/README_SPECS.markdown +7 -0
  150. data/lib/templates/puppet/step-0/modules/stdlib/RELEASE_PROCESS.markdown +24 -0
  151. data/lib/templates/puppet/step-0/modules/stdlib/Rakefile +18 -0
  152. data/lib/templates/puppet/step-0/modules/stdlib/checksums.json +349 -0
  153. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/facter_dot_d.rb +202 -0
  154. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/pe_version.rb +53 -0
  155. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/puppet_vardir.rb +26 -0
  156. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/root_home.rb +32 -0
  157. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/util/puppet_settings.rb +21 -0
  158. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/abs.rb +36 -0
  159. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/any2array.rb +33 -0
  160. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/base64.rb +37 -0
  161. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/bool2num.rb +49 -0
  162. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/capitalize.rb +34 -0
  163. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/chomp.rb +35 -0
  164. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/chop.rb +37 -0
  165. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/concat.rb +41 -0
  166. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/count.rb +22 -0
  167. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/deep_merge.rb +44 -0
  168. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/defined_with_params.rb +35 -0
  169. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/delete.rb +46 -0
  170. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/delete_at.rb +49 -0
  171. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/delete_undef_values.rb +34 -0
  172. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/delete_values.rb +26 -0
  173. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/difference.rb +36 -0
  174. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/dirname.rb +15 -0
  175. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/downcase.rb +33 -0
  176. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/empty.rb +28 -0
  177. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/ensure_packages.rb +35 -0
  178. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb +45 -0
  179. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/flatten.rb +33 -0
  180. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/floor.rb +25 -0
  181. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/fqdn_rotate.rb +46 -0
  182. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/get_module_path.rb +17 -0
  183. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/getparam.rb +35 -0
  184. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/getvar.rb +26 -0
  185. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/grep.rb +33 -0
  186. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/has_interface_with.rb +52 -0
  187. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/has_ip_address.rb +25 -0
  188. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/has_ip_network.rb +25 -0
  189. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/has_key.rb +28 -0
  190. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/hash.rb +41 -0
  191. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/intersection.rb +34 -0
  192. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_array.rb +22 -0
  193. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_bool.rb +22 -0
  194. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_domain_name.rb +50 -0
  195. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_float.rb +30 -0
  196. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_function_available.rb +26 -0
  197. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_hash.rb +22 -0
  198. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_integer.rb +45 -0
  199. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_ip_address.rb +32 -0
  200. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_mac_address.rb +27 -0
  201. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_numeric.rb +75 -0
  202. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_string.rb +26 -0
  203. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/join.rb +41 -0
  204. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/join_keys_to_values.rb +47 -0
  205. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/keys.rb +26 -0
  206. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/loadyaml.rb +20 -0
  207. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/lstrip.rb +33 -0
  208. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/max.rb +21 -0
  209. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/member.rb +44 -0
  210. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/merge.rb +34 -0
  211. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/min.rb +21 -0
  212. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/num2bool.rb +43 -0
  213. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/parsejson.rb +24 -0
  214. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/parseyaml.rb +24 -0
  215. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/pick.rb +29 -0
  216. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/pick_default.rb +35 -0
  217. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/prefix.rb +45 -0
  218. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/range.rb +88 -0
  219. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/reject.rb +31 -0
  220. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/reverse.rb +28 -0
  221. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/rstrip.rb +32 -0
  222. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/shuffle.rb +46 -0
  223. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/size.rb +48 -0
  224. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/sort.rb +27 -0
  225. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/squeeze.rb +36 -0
  226. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/str2bool.rb +46 -0
  227. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb +32 -0
  228. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/strftime.rb +107 -0
  229. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/strip.rb +39 -0
  230. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/suffix.rb +45 -0
  231. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/swapcase.rb +39 -0
  232. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/time.rb +49 -0
  233. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/to_bytes.rb +28 -0
  234. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/type.rb +50 -0
  235. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/union.rb +34 -0
  236. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/unique.rb +51 -0
  237. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/upcase.rb +41 -0
  238. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/uriescape.rb +35 -0
  239. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_absolute_path.rb +56 -0
  240. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_array.rb +33 -0
  241. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_augeas.rb +81 -0
  242. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_bool.rb +34 -0
  243. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_cmd.rb +48 -0
  244. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_hash.rb +33 -0
  245. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_ipv4_address.rb +48 -0
  246. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_ipv6_address.rb +49 -0
  247. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_re.rb +40 -0
  248. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_slength.rb +71 -0
  249. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_string.rb +33 -0
  250. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/values.rb +39 -0
  251. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/values_at.rb +98 -0
  252. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/zip.rb +65 -0
  253. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/provider/file_line/ruby.rb +83 -0
  254. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/type/anchor.rb +46 -0
  255. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/type/file_line.rb +79 -0
  256. data/lib/templates/puppet/step-0/modules/stdlib/manifests/init.pp +20 -0
  257. data/lib/templates/puppet/step-0/modules/stdlib/manifests/stages.pp +43 -0
  258. data/lib/templates/puppet/step-0/modules/stdlib/metadata.json +111 -0
  259. data/lib/templates/puppet/step-0/modules/sudo/.fixtures.yml +5 -0
  260. data/lib/templates/puppet/step-0/modules/sudo/.gemfile +14 -0
  261. data/lib/templates/puppet/step-0/modules/sudo/.gemfile.lock +43 -0
  262. data/lib/templates/puppet/step-0/modules/sudo/.travis.yml +34 -0
  263. data/lib/templates/puppet/step-0/modules/sudo/LICENSE +13 -0
  264. data/lib/templates/puppet/step-0/modules/sudo/Modulefile +9 -0
  265. data/lib/templates/puppet/step-0/modules/sudo/README.md +171 -0
  266. data/lib/templates/puppet/step-0/modules/sudo/Rakefile +1 -0
  267. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.aix +90 -0
  268. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.archlinux +90 -0
  269. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.deb +90 -0
  270. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.freebsd +98 -0
  271. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.omnios +90 -0
  272. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.rhel5 +97 -0
  273. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.rhel6 +115 -0
  274. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.solaris +90 -0
  275. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.suse +81 -0
  276. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.ubuntu +30 -0
  277. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.wheezy +17 -0
  278. data/lib/templates/puppet/step-0/modules/sudo/lib/augeas/lenses/fixedsudoers.aug +520 -0
  279. data/lib/templates/puppet/step-0/modules/sudo/manifests/allow.pp +76 -0
  280. data/lib/templates/puppet/step-0/modules/sudo/manifests/conf.pp +105 -0
  281. data/lib/templates/puppet/step-0/modules/sudo/manifests/configs.pp +24 -0
  282. data/lib/templates/puppet/step-0/modules/sudo/manifests/init.pp +151 -0
  283. data/lib/templates/puppet/step-0/modules/sudo/manifests/package/aix.pp +46 -0
  284. data/lib/templates/puppet/step-0/modules/sudo/manifests/package/solaris.pp +60 -0
  285. data/lib/templates/puppet/step-0/modules/sudo/manifests/package.pp +61 -0
  286. data/lib/templates/puppet/step-0/modules/sudo/manifests/params.pp +127 -0
  287. data/lib/templates/puppet/step-0/modules/sudo/metadata.json +59 -0
  288. data/lib/templates/puppet/step-0/modules/sudo/templates/users_groups.erb +9 -0
  289. data/lib/templates/puppet/step-0/modules/users/manifests/init.pp +15 -0
  290. data/lib/templates/puppet/step-0/modules/users/manifests/user.pp +50 -0
  291. data/lib/templates/puppet/step-1/Puppetfile.erb +5 -0
  292. data/lib/templates/puppet/step-1/hiera/data/common.yaml.erb +11 -0
  293. data/lib/templates/puppet/step-1/hiera/data/environment.yaml.erb +11 -0
  294. data/lib/templates/puppet/step-1/hiera/data/node.yaml.erb +11 -0
  295. data/lib/templates/puppet/step-1/hiera/hiera.yaml.erb +11 -0
  296. data/lib/templates/puppet/step-1/manifests/node.erb +5 -0
  297. data/lib/templates/puppet/step-1/manifests/site.pp.erb +15 -0
  298. data/lib/templates/puppet/step-1/modules/users/manifests/init.pp +15 -0
  299. data/lib/templates/puppet/step-1/modules/users/manifests/user.pp +49 -0
  300. data/lib/templates/puppet/step-2/Puppetfile.erb +5 -0
  301. data/lib/templates/puppet/step-2/hiera/data/common.yaml.erb +1 -0
  302. data/lib/templates/puppet/step-2/hiera/data/environment.yaml.erb +1 -0
  303. data/lib/templates/puppet/step-2/hiera/data/node.yaml.erb +1 -0
  304. data/lib/templates/puppet/step-2/hiera/hiera.yaml.erb +11 -0
  305. data/lib/templates/puppet/step-2/manifests/node.erb +3 -0
  306. data/lib/templates/puppet/step-2/manifests/site.pp.erb +10 -0
  307. data/lib/templates/puppet/step-3/Puppetfile.erb +5 -0
  308. data/lib/templates/puppet/step-3/hiera/data/common.yaml.erb +99 -0
  309. data/lib/templates/puppet/step-3/hiera/data/environment.yaml.erb +99 -0
  310. data/lib/templates/puppet/step-3/hiera/data/node.yaml.erb +99 -0
  311. data/lib/templates/puppet/step-3/hiera/hiera.yaml.erb +11 -0
  312. data/lib/templates/puppet/step-3/manifests/node.erb +5 -0
  313. data/lib/templates/puppet/step-3/manifests/site.pp.erb +15 -0
  314. data/spec/environment_spec.rb +82 -0
  315. data/spec/factories/environment.rb +20 -0
  316. data/spec/factories/node.rb +22 -0
  317. data/spec/factories/profile.rb +10 -0
  318. data/spec/factories/project.rb +17 -0
  319. data/spec/factories/provision.rb +13 -0
  320. data/spec/factories/role.rb +9 -0
  321. data/spec/fixtures/Capfile.test +2 -0
  322. data/spec/fixtures/Gemfile.test +5 -0
  323. data/spec/fixtures/config/deploy/environment.test +35 -0
  324. data/spec/fixtures/config/deploy/production.test +35 -0
  325. data/spec/fixtures/config/deploy/staging.test +35 -0
  326. data/spec/fixtures/config/deploy/vagrant.test +37 -0
  327. data/spec/fixtures/config/deploy.test +120 -0
  328. data/spec/fixtures/dot_bebox.test.erb +4 -0
  329. data/spec/fixtures/dot_gitignore.test +8 -0
  330. data/spec/fixtures/node/Vagrantfile.test.erb +18 -0
  331. data/spec/fixtures/node/node_0.test.erb +3 -0
  332. data/spec/fixtures/node/prepared_node_0.test.erb +4 -0
  333. data/spec/fixtures/node/provisioned_node_0.test.erb +4 -0
  334. data/spec/fixtures/node/vagrant_deploy.test +38 -0
  335. data/spec/fixtures/puppet/hiera/data/node0.server1.test.yaml.test +4 -0
  336. data/spec/fixtures/puppet/profiles/test/profile_0/Puppetfile.test +24 -0
  337. data/spec/fixtures/puppet/profiles/test/profile_0/Puppetfile_with_modules.test +20 -0
  338. data/spec/fixtures/puppet/profiles/test/profile_0/manifests/init.pp.test +17 -0
  339. data/spec/fixtures/puppet/profiles/test/profile_0/manifests/init_with_content.pp.test +22 -0
  340. data/spec/fixtures/puppet/roles/manifests/init.pp.test +14 -0
  341. data/spec/fixtures/puppet/steps/step-0/hiera/data/common.yaml.test +26 -0
  342. data/spec/fixtures/puppet/steps/step-0/hiera/data/node0.server1.test.yaml.test +0 -0
  343. data/spec/fixtures/puppet/steps/step-0/hiera/data/pname_env.yaml.test +26 -0
  344. data/spec/fixtures/puppet/steps/step-0/hiera/data/production.yaml.test +0 -0
  345. data/spec/fixtures/puppet/steps/step-0/hiera/data/staging.yaml.test +0 -0
  346. data/spec/fixtures/puppet/steps/step-0/hiera/data/vagrant.yaml.test +0 -0
  347. data/spec/fixtures/puppet/steps/step-0/hiera/hiera.yaml.test +11 -0
  348. data/spec/fixtures/puppet/steps/step-0/manifests/site.pp.test +10 -0
  349. data/spec/fixtures/puppet/steps/step-0/manifests/site_with_node.pp.test +15 -0
  350. data/spec/fixtures/puppet/steps/step-1/hiera/data/common.yaml.test +11 -0
  351. data/spec/fixtures/puppet/steps/step-1/hiera/data/node0.server1.test.yaml.test +0 -0
  352. data/spec/fixtures/puppet/steps/step-1/hiera/data/pname_env.yaml.test +11 -0
  353. data/spec/fixtures/puppet/steps/step-1/hiera/data/production.yaml.test +0 -0
  354. data/spec/fixtures/puppet/steps/step-1/hiera/data/staging.yaml.test +0 -0
  355. data/spec/fixtures/puppet/steps/step-1/hiera/data/vagrant.yaml.test +0 -0
  356. data/spec/fixtures/puppet/steps/step-1/hiera/hiera.yaml.test +11 -0
  357. data/spec/fixtures/puppet/steps/step-1/manifests/site.pp.test +10 -0
  358. data/spec/fixtures/puppet/steps/step-1/manifests/site_with_node.pp.test +15 -0
  359. data/spec/fixtures/puppet/steps/step-2/Puppetfile.test +6 -0
  360. data/spec/fixtures/puppet/steps/step-2/hiera/data/common.yaml.test +1 -0
  361. data/spec/fixtures/puppet/steps/step-2/hiera/data/node0.server1.test.yaml.test +1 -0
  362. data/spec/fixtures/puppet/steps/step-2/hiera/data/pname_env.yaml.test +1 -0
  363. data/spec/fixtures/puppet/steps/step-2/hiera/data/production.yaml.test +1 -0
  364. data/spec/fixtures/puppet/steps/step-2/hiera/data/staging.yaml.test +1 -0
  365. data/spec/fixtures/puppet/steps/step-2/hiera/data/vagrant.yaml.test +1 -0
  366. data/spec/fixtures/puppet/steps/step-2/hiera/hiera.yaml.test +11 -0
  367. data/spec/fixtures/puppet/steps/step-2/manifests/site.pp.test +10 -0
  368. data/spec/fixtures/puppet/steps/step-2/manifests/site_with_node.pp.test +13 -0
  369. data/spec/fixtures/puppet/steps/step-2/manifests/site_with_node_role_association.pp.test +16 -0
  370. data/spec/fixtures/puppet/steps/step-2/modules/profiles/manifests/test/profile_0.pp.test +17 -0
  371. data/spec/fixtures/puppet/steps/step-2/modules/roles/manifests/role_0.pp.test +16 -0
  372. data/spec/fixtures/puppet/steps/step-3/hiera/data/common.yaml.test +99 -0
  373. data/spec/fixtures/puppet/steps/step-3/hiera/data/node0.server1.test.yaml.test +1 -0
  374. data/spec/fixtures/puppet/steps/step-3/hiera/data/pname_env.yaml.test +99 -0
  375. data/spec/fixtures/puppet/steps/step-3/hiera/data/production.yaml.test +1 -0
  376. data/spec/fixtures/puppet/steps/step-3/hiera/data/staging.yaml.test +1 -0
  377. data/spec/fixtures/puppet/steps/step-3/hiera/data/vagrant.yaml.test +1 -0
  378. data/spec/fixtures/puppet/steps/step-3/hiera/hiera.yaml.test +11 -0
  379. data/spec/fixtures/puppet/steps/step-3/manifests/site.pp.test +10 -0
  380. data/spec/fixtures/puppet/steps/step-3/manifests/site_with_node.pp.test +15 -0
  381. data/spec/fixtures/puppet/ubuntu_dependencies.test +10 -0
  382. data/spec/node0.server1.test/prepare_phase_spec.rb +53 -0
  383. data/spec/node0.server1.test/provision_step_0_spec.rb +46 -0
  384. data/spec/node0.server1.test/provision_step_1_spec.rb +41 -0
  385. data/spec/node0.server1.test/provision_step_2_spec.rb +79 -0
  386. data/spec/node0.server1.test/provision_step_3_spec.rb +76 -0
  387. data/spec/node_role_spec.rb +20 -0
  388. data/spec/node_spec.rb +71 -0
  389. data/spec/node_wizard_spec.rb +22 -0
  390. data/spec/ordered_phases_spec.rb +55 -0
  391. data/spec/pre_prepare_spec.rb +78 -0
  392. data/spec/pre_provision_steps_spec.rb +40 -0
  393. data/spec/profile_spec.rb +70 -0
  394. data/spec/project_spec.rb +195 -0
  395. data/spec/project_wizard_spec.rb +51 -0
  396. data/spec/puppet_spec_helper.rb +15 -0
  397. data/spec/role_profiles_spec.rb +40 -0
  398. data/spec/role_spec.rb +56 -0
  399. data/spec/spec_helper.rb +37 -0
  400. data/spec/support/config_specs.yaml.example +2 -0
  401. data/spec/vagrant_spec_helper.rb +15 -0
  402. metadata +625 -0
@@ -0,0 +1,35 @@
1
+ Puppet Specific Facts
2
+ =====================
3
+
4
+ Facter is meant to stand alone and apart from Puppet. However, Facter often
5
+ runs inside Puppet and all custom facts included in the stdlib module will
6
+ almost always be evaluated in the context of Puppet and Facter working
7
+ together.
8
+
9
+ Still, we don't want to write custom facts that blow up in the users face if
10
+ Puppet is not loaded in memory. This is often the case if the user runs
11
+ `facter` without also supplying the `--puppet` flag.
12
+
13
+ Ah! But Jeff, the custom fact won't be in the `$LOAD_PATH` unless the user
14
+ supplies `--facter`! You might say...
15
+
16
+ Not (always) true I say! If the user happens to have a CWD of
17
+ `<modulepath>/stdlib/lib` then the facts will automatically be evaluated and
18
+ blow up.
19
+
20
+ In any event, it's pretty easy to write a fact that has no value if Puppet is
21
+ not loaded. Simply do it like this:
22
+
23
+ Facter.add(:node_vardir) do
24
+ setcode do
25
+ # This will be nil if Puppet is not available.
26
+ Facter::Util::PuppetSettings.with_puppet do
27
+ Puppet[:vardir]
28
+ end
29
+ end
30
+ end
31
+
32
+ The `Facter::Util::PuppetSettings.with_puppet` method accepts a block and
33
+ yields to it only if the Puppet library is loaded. If the Puppet library is
34
+ not loaded, then the method silently returns `nil` which Facter interprets as
35
+ an undefined fact value. The net effect is that the fact won't be set.
@@ -0,0 +1,7 @@
1
+ NOTE
2
+ ====
3
+
4
+ This project's specs depend on puppet core, and thus they require the
5
+ `puppetlabs_spec_helper` project. For more information please see the README
6
+ in that project, which can be found here: [puppetlabs spec
7
+ helper](https://github.com/puppetlabs/puppetlabs_spec_helper)
@@ -0,0 +1,24 @@
1
+ # Contributing to this module #
2
+
3
+ * Work in a topic branch
4
+ * Submit a github pull request
5
+ * Address any comments / feeback
6
+ * Merge into master using --no-ff
7
+
8
+ # Releasing this module #
9
+
10
+ * This module adheres to http://semver.org/
11
+ * Look for API breaking changes using git diff vX.Y.Z..master
12
+ * If no API breaking changes, the minor version may be bumped.
13
+ * If there are API breaking changes, the major version must be bumped.
14
+ * If there are only small minor changes, the patch version may be bumped.
15
+ * Update the CHANGELOG
16
+ * Update the Modulefile
17
+ * Commit these changes with a message along the lines of "Update CHANGELOG and
18
+ Modulefile for release"
19
+ * Create an annotated tag with git tag -a vX.Y.Z -m 'version X.Y.Z' (NOTE the
20
+ leading v as per semver.org)
21
+ * Push the tag with git push origin --tags
22
+ * Build a new package with puppet-module or the rake build task if it exists
23
+ * Publish the new package to the forge
24
+ * Bonus points for an announcement to puppet-users.
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'puppetlabs_spec_helper/rake_tasks'
3
+ require 'puppet-lint/tasks/puppet-lint'
4
+ PuppetLint.configuration.send('disable_80chars')
5
+ PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
6
+
7
+ desc "Validate manifests, templates, and ruby files in lib."
8
+ task :validate do
9
+ Dir['manifests/**/*.pp'].each do |manifest|
10
+ sh "puppet parser validate --noop #{manifest}"
11
+ end
12
+ Dir['lib/**/*.rb'].each do |lib_file|
13
+ sh "ruby -c #{lib_file}"
14
+ end
15
+ Dir['templates/**/*.erb'].each do |template|
16
+ sh "erb -P -x -T '-' #{template} | ruby -c"
17
+ end
18
+ end
@@ -0,0 +1,349 @@
1
+ {
2
+ "CHANGELOG.md": "a3a77d93597fffb4b829b6b56e5d2f16",
3
+ "CONTRIBUTING.md": "7fcaaec4913b3d7c123510329ecc4b2d",
4
+ "Gemfile": "38895f95212fe38cf47474a05cff2ad2",
5
+ "Gemfile.lock": "381b13f5540032a5b9c731766d25c13a",
6
+ "LICENSE": "38a048b9d82e713d4e1b2573e370a756",
7
+ "Modulefile": "ee2ec9280b87e32529db8b20cf6b1a19",
8
+ "README.markdown": "21410cab41d903b5c39c55739846b6b3",
9
+ "README_DEVELOPER.markdown": "220a8b28521b5c5d2ea87c4ddb511165",
10
+ "README_SPECS.markdown": "82bb4c6abbb711f40778b162ec0070c1",
11
+ "RELEASE_PROCESS.markdown": "94b92bc99ac4106ba1a74d5c04e520f9",
12
+ "Rakefile": "dfa334598bfd087adf11533a72d71106",
13
+ "lib/facter/facter_dot_d.rb": "1f1fcf1bde3443e42a445d3573602304",
14
+ "lib/facter/pe_version.rb": "4a9353952963b011759f3e6652a10da5",
15
+ "lib/facter/puppet_vardir.rb": "c7ddc97e8a84ded3dd93baa5b9b3283d",
16
+ "lib/facter/root_home.rb": "d9c8276acdceb7340d95f60c36dcdcc5",
17
+ "lib/facter/util/puppet_settings.rb": "9f1d2593d0ae56bfca89d4b9266aeee1",
18
+ "lib/puppet/parser/functions/abs.rb": "32161bd0435fdfc2aec2fc559d2b454b",
19
+ "lib/puppet/parser/functions/any2array.rb": "a81e71d6b67a551d38770ba9a1948a75",
20
+ "lib/puppet/parser/functions/base64.rb": "ae25adf92295df67ebd9edfabc9ecdd6",
21
+ "lib/puppet/parser/functions/bool2num.rb": "8e627eee990e811e35e7e838c586bd77",
22
+ "lib/puppet/parser/functions/capitalize.rb": "14481fc8c7c83fe002066ebcf6722f17",
23
+ "lib/puppet/parser/functions/chomp.rb": "719d46923d75251f7b6b68b6e015cccc",
24
+ "lib/puppet/parser/functions/chop.rb": "4691a56e6064b792ed4575e4ad3f3d20",
25
+ "lib/puppet/parser/functions/concat.rb": "c522e67e558336e1ac26b0a3cfeeed2d",
26
+ "lib/puppet/parser/functions/count.rb": "9eb74eccd93e2b3c87fd5ea14e329eba",
27
+ "lib/puppet/parser/functions/deep_merge.rb": "d83696855578fb81b64b9e92b9c7cc7c",
28
+ "lib/puppet/parser/functions/defined_with_params.rb": "ffab4433d03f32b551f2ea024a2948fc",
29
+ "lib/puppet/parser/functions/delete.rb": "96e569dac96b8c9387e9303445d73048",
30
+ "lib/puppet/parser/functions/delete_at.rb": "6bc24b79390d463d8be95396c963381a",
31
+ "lib/puppet/parser/functions/delete_undef_values.rb": "b32d4a3925753b2eb2c318cbd7f14404",
32
+ "lib/puppet/parser/functions/delete_values.rb": "39b147f7d369bb5f809044b6341954a2",
33
+ "lib/puppet/parser/functions/difference.rb": "e31b95fbaf974cf853a510177368bfb9",
34
+ "lib/puppet/parser/functions/dirname.rb": "bef7214eb89db3eb8f7ee5fc9dca0233",
35
+ "lib/puppet/parser/functions/downcase.rb": "9204a04c2a168375a38d502db8811bbe",
36
+ "lib/puppet/parser/functions/empty.rb": "ae92905c9d94ddca30bf56b7b1dabedf",
37
+ "lib/puppet/parser/functions/ensure_packages.rb": "fbed5c0c9bf82b7746e01f15f89d184f",
38
+ "lib/puppet/parser/functions/ensure_resource.rb": "6678127386e77bbc0f09db7b5a32ab6a",
39
+ "lib/puppet/parser/functions/flatten.rb": "25777b76f9719162a8bab640e5595b7a",
40
+ "lib/puppet/parser/functions/floor.rb": "42cad4c689231a51526c55a6f0985d1f",
41
+ "lib/puppet/parser/functions/fqdn_rotate.rb": "20743a138c56fc806a35cb7b60137dbc",
42
+ "lib/puppet/parser/functions/get_module_path.rb": "d4bf50da25c0b98d26b75354fa1bcc45",
43
+ "lib/puppet/parser/functions/getparam.rb": "4dd7a0e35f4a3780dcfc9b19b4e0006e",
44
+ "lib/puppet/parser/functions/getvar.rb": "10bf744212947bc6a7bfd2c9836dbd23",
45
+ "lib/puppet/parser/functions/grep.rb": "5682995af458b05f3b53dd794c4bf896",
46
+ "lib/puppet/parser/functions/has_interface_with.rb": "8d3ebca805dc6edb88b6b7a13d404787",
47
+ "lib/puppet/parser/functions/has_ip_address.rb": "ee207f47906455a5aa49c4fb219dd325",
48
+ "lib/puppet/parser/functions/has_ip_network.rb": "b4d726c8b2a0afac81ced8a3a28aa731",
49
+ "lib/puppet/parser/functions/has_key.rb": "7cd9728c38f0b0065f832dabd62b0e7e",
50
+ "lib/puppet/parser/functions/hash.rb": "9d072527dfc7354b69292e9302906530",
51
+ "lib/puppet/parser/functions/intersection.rb": "924ac4aceec7b896952166a7ec08fdb1",
52
+ "lib/puppet/parser/functions/is_array.rb": "875ca4356cb0d7a10606fb146b4a3d11",
53
+ "lib/puppet/parser/functions/is_bool.rb": "e693b7c4b5366cff1380b6e0c7dd7b11",
54
+ "lib/puppet/parser/functions/is_domain_name.rb": "cf72726c0fec831eb703ec9deea739eb",
55
+ "lib/puppet/parser/functions/is_float.rb": "10e0d3ecf75fac15e415aee79acf70dc",
56
+ "lib/puppet/parser/functions/is_function_available.rb": "628428bbcd9313ce09783d9484330e09",
57
+ "lib/puppet/parser/functions/is_hash.rb": "8c7d9a05084dab0389d1b779c8a05b1a",
58
+ "lib/puppet/parser/functions/is_integer.rb": "c665be82686aa4729959bb42c66a7510",
59
+ "lib/puppet/parser/functions/is_ip_address.rb": "a714a736c1560e8739aaacd9030cca00",
60
+ "lib/puppet/parser/functions/is_mac_address.rb": "288bd4b38d4df42a83681f13e7eaaee0",
61
+ "lib/puppet/parser/functions/is_numeric.rb": "93ddc9d4c0834a5e5e0562d7b3cdce91",
62
+ "lib/puppet/parser/functions/is_string.rb": "2bd9a652bbb2668323eee6c57729ff64",
63
+ "lib/puppet/parser/functions/join.rb": "a285a05c015ae278608f6454aef211ea",
64
+ "lib/puppet/parser/functions/join_keys_to_values.rb": "f29da49531228f6ca5b3aa0df00a14c2",
65
+ "lib/puppet/parser/functions/keys.rb": "eb6ac815ea14fbf423580ed903ef7bad",
66
+ "lib/puppet/parser/functions/loadyaml.rb": "2b912f257aa078e376d3b3f6a86c2a00",
67
+ "lib/puppet/parser/functions/lstrip.rb": "210b103f78622e099f91cc2956b6f741",
68
+ "lib/puppet/parser/functions/max.rb": "f652fd0b46ef7d2fbdb42b141f8fdd1d",
69
+ "lib/puppet/parser/functions/member.rb": "541e67d06bc4155e79b00843a125e9bc",
70
+ "lib/puppet/parser/functions/merge.rb": "f3dcc5c83440cdda2036cce69b61a14b",
71
+ "lib/puppet/parser/functions/min.rb": "0d2a1b7e735ab251c5469e735fa3f4c6",
72
+ "lib/puppet/parser/functions/num2bool.rb": "605c12fa518c87ed2c66ae153e0686ce",
73
+ "lib/puppet/parser/functions/parsejson.rb": "e7f968c34928107b84cd0860daf50ab1",
74
+ "lib/puppet/parser/functions/parseyaml.rb": "00f10ec1e2b050e23d80c256061ebdd7",
75
+ "lib/puppet/parser/functions/pick.rb": "bf01f13bbfe2318e7f6a302ac7c4433f",
76
+ "lib/puppet/parser/functions/pick_default.rb": "ad3ea60262de408767786d37a54d45dc",
77
+ "lib/puppet/parser/functions/prefix.rb": "aebbea0290be82a4ae89ddfffbee1125",
78
+ "lib/puppet/parser/functions/range.rb": "17a05dbae8f562f882450f9e648d4e2d",
79
+ "lib/puppet/parser/functions/reject.rb": "689f6a7c961a55fe9dcd240921f4c7f9",
80
+ "lib/puppet/parser/functions/reverse.rb": "1386371c0f5301055fdf99079e862b3e",
81
+ "lib/puppet/parser/functions/rstrip.rb": "8a0d69876bdbc88a2054ba41c9c38961",
82
+ "lib/puppet/parser/functions/shuffle.rb": "6445e6b4dc62c37b184a60eeaf34414b",
83
+ "lib/puppet/parser/functions/size.rb": "8972d48c0f9e487d659bd7326b40b642",
84
+ "lib/puppet/parser/functions/sort.rb": "504b033b438461ca4f9764feeb017833",
85
+ "lib/puppet/parser/functions/squeeze.rb": "541f85b4203b55c9931d3d6ecd5c75f8",
86
+ "lib/puppet/parser/functions/str2bool.rb": "6320f1a50fd28ec027981cd1fb8ffdd0",
87
+ "lib/puppet/parser/functions/str2saltedsha512.rb": "49afad7b386be38ce53deaefef326e85",
88
+ "lib/puppet/parser/functions/strftime.rb": "e02e01a598ca5d7d6eee0ba22440304a",
89
+ "lib/puppet/parser/functions/strip.rb": "273d547c7b05c0598556464dfd12f5fd",
90
+ "lib/puppet/parser/functions/suffix.rb": "109279db4180441e75545dbd5f273298",
91
+ "lib/puppet/parser/functions/swapcase.rb": "4902f38f0b9292afec66d40fee4b02ec",
92
+ "lib/puppet/parser/functions/time.rb": "08d88d52abd1e230e3a2f82107545d48",
93
+ "lib/puppet/parser/functions/to_bytes.rb": "83f23c33adbfa42b2a9d9fc2db3daeb4",
94
+ "lib/puppet/parser/functions/type.rb": "62f914d6c90662aaae40c5539701be60",
95
+ "lib/puppet/parser/functions/union.rb": "137998fe47decf25aede20f0c0155a4c",
96
+ "lib/puppet/parser/functions/unique.rb": "217ccce6d23235af92923f50f8556963",
97
+ "lib/puppet/parser/functions/upcase.rb": "a5744a74577cfa136fca2835e75888d3",
98
+ "lib/puppet/parser/functions/uriescape.rb": "321b8d2c33a5ea48337e1293774db4e0",
99
+ "lib/puppet/parser/functions/validate_absolute_path.rb": "385137ac24a2dec6cecc4e6ea75be442",
100
+ "lib/puppet/parser/functions/validate_array.rb": "72b29289b8af1cfc3662ef9be78911b8",
101
+ "lib/puppet/parser/functions/validate_augeas.rb": "d4acca7b8a9fdada9ae39e5101902cc1",
102
+ "lib/puppet/parser/functions/validate_bool.rb": "a712634a000024398b3c6cd4ecc46463",
103
+ "lib/puppet/parser/functions/validate_cmd.rb": "78fd21cb3fc52efc3b53ba2b3301de18",
104
+ "lib/puppet/parser/functions/validate_hash.rb": "e9cfaca68751524efe16ecf2f958a9a0",
105
+ "lib/puppet/parser/functions/validate_ipv4_address.rb": "a8fb6f0ca36aa460d462c07c2af5d5a2",
106
+ "lib/puppet/parser/functions/validate_ipv6_address.rb": "4699238e4cad60e7e1428905523eaeb7",
107
+ "lib/puppet/parser/functions/validate_re.rb": "c6664b3943bc820415a43f16372dc2a9",
108
+ "lib/puppet/parser/functions/validate_slength.rb": "7e67c213509b9383707819cc612b2a29",
109
+ "lib/puppet/parser/functions/validate_string.rb": "6afcbc51f83f0714348b8d61e06ea7eb",
110
+ "lib/puppet/parser/functions/values.rb": "066a6e4170e5034edb9a80463dff2bb5",
111
+ "lib/puppet/parser/functions/values_at.rb": "094ac110ce9f7a5b16d0c80a0cf2243c",
112
+ "lib/puppet/parser/functions/zip.rb": "a80782461ed9465f0cd0c010936f1855",
113
+ "lib/puppet/provider/file_line/ruby.rb": "10d65268d2d1e75b5dae014974b79d60",
114
+ "lib/puppet/type/anchor.rb": "bbd36bb49c3b554f8602d8d3df366c0c",
115
+ "lib/puppet/type/file_line.rb": "a1eceef6bd7cbfe99892cf3ee57ef2b4",
116
+ "manifests/init.pp": "f2ba5f36e7227ed87bbb69034fc0de8b",
117
+ "manifests/stages.pp": "cc6ed1751d334b0ea278c0335c7f0b5a",
118
+ "metadata.json": "42591a032ab4a712a52a294148361090",
119
+ "spec/acceptance/abs_spec.rb": "435478ef1ba43a6cca1f7b4db14a4bcc",
120
+ "spec/acceptance/any2array_spec.rb": "78187dc3683c8ecd15774d99024de47d",
121
+ "spec/acceptance/base64_spec.rb": "1684d5dd176dd5bbd4c3c6b1e64fbcea",
122
+ "spec/acceptance/bool2num_spec.rb": "c5e3aadb08a437f181247429f4125bab",
123
+ "spec/acceptance/build_csv.rb": "f28ef587de764ade1513091c4906412c",
124
+ "spec/acceptance/capitalize_spec.rb": "e77ea2c37144a75a67969c0d0839adfd",
125
+ "spec/acceptance/chomp_spec.rb": "fb0862a6b7eeb3c290e280788e705061",
126
+ "spec/acceptance/chop_spec.rb": "0bd1065b9c16a54b86adeb4e3be041fb",
127
+ "spec/acceptance/concat_spec.rb": "3a0dae19a34bb13d406c8e0ec87d8fe5",
128
+ "spec/acceptance/count_spec.rb": "5b35e597ae1051f41431812707d4b502",
129
+ "spec/acceptance/deep_merge_spec.rb": "c335a947f1666e185e0210e661f1c78a",
130
+ "spec/acceptance/defined_with_params_spec.rb": "f27c54ade9872c63c69316f62b03c119",
131
+ "spec/acceptance/delete_at_spec.rb": "9c028b703ee0286565c9877757678f3f",
132
+ "spec/acceptance/delete_spec.rb": "31e6dfcb9cc7c16b20d47c00e6a85a1d",
133
+ "spec/acceptance/delete_undef_values_spec.rb": "6e6a66aee0c383c843b5f92ef8c8410c",
134
+ "spec/acceptance/delete_values_spec.rb": "22c9b4914d4cbc0153aa3862cb4fb50e",
135
+ "spec/acceptance/difference_spec.rb": "289f4f1788feaacb304ffd54971c7e7e",
136
+ "spec/acceptance/dirname_spec.rb": "84db53878c4400a6c684c924cff05cfc",
137
+ "spec/acceptance/downcase_spec.rb": "0f094849b94a94df491ee01186473104",
138
+ "spec/acceptance/empty_spec.rb": "35c1f43e8a3e1fe7dd4335ef86e7efcc",
139
+ "spec/acceptance/ensure_packages_spec.rb": "d4c02a9313e2b8339d9e4a2f5b200e0e",
140
+ "spec/acceptance/ensure_resource_spec.rb": "9e03216abb2431e749be76a4302931df",
141
+ "spec/acceptance/flatten_spec.rb": "83fb08cc168a105c1d5d0df66b1d9e84",
142
+ "spec/acceptance/floor_spec.rb": "d7267b2914b1da6406224abb7489ca86",
143
+ "spec/acceptance/fqdn_rotate_spec.rb": "a1fa84292395adec3c47b21c3dc79ec3",
144
+ "spec/acceptance/get_module_path_spec.rb": "6a6552ff8d6d75ce795b0139c68a7993",
145
+ "spec/acceptance/getparam_spec.rb": "b62a47524f434b903f9e155ad56959b3",
146
+ "spec/acceptance/getvar_spec.rb": "ba2f081a88be97c0e7004a6296294f23",
147
+ "spec/acceptance/grep_spec.rb": "98818b8b0557b80d6ff519f70ea7617c",
148
+ "spec/acceptance/has_interface_with_spec.rb": "467183aeada0bec74143be6cf0b89a3d",
149
+ "spec/acceptance/has_ip_address_spec.rb": "e0369b12725695c528e2d47b8ea2b4d8",
150
+ "spec/acceptance/has_ip_network_spec.rb": "ca8dd6faa6df940784a60a49bec1330d",
151
+ "spec/acceptance/has_key_spec.rb": "6509a26a0886f7d591eaa926b2f92407",
152
+ "spec/acceptance/hash_spec.rb": "1c626457ba056bdd3936e28aa5bf503e",
153
+ "spec/acceptance/intersection_spec.rb": "40f586af7f95408a5d4a2882a4aa98f1",
154
+ "spec/acceptance/is_array_spec.rb": "c2ff70ce59b90b50a5aed67abaa5399d",
155
+ "spec/acceptance/is_bool_spec.rb": "c001fdecff6b0a3c9dc78774987a0b15",
156
+ "spec/acceptance/is_domain_name_spec.rb": "63e84285c26d8717fd5d4dda01e3f432",
157
+ "spec/acceptance/is_float_spec.rb": "2f0164b4d732166aa46055a2cf7b4ea9",
158
+ "spec/acceptance/is_function_available_spec.rb": "7745eba89f8719c9ca7ebf04d5b005f7",
159
+ "spec/acceptance/is_hash_spec.rb": "cff723cd8fddac45033af5dc8406d4e4",
160
+ "spec/acceptance/is_integer_spec.rb": "c09201d17d3914bba197872897fa3413",
161
+ "spec/acceptance/is_ip_address_spec.rb": "aa14cf9abf404c3fe1e761ea957871fe",
162
+ "spec/acceptance/is_mac_address_spec.rb": "30ff4c6a63be58daa3568305617ca2a7",
163
+ "spec/acceptance/is_numeric_spec.rb": "fb9829c7a1a8d4a58836df6ff4c3386d",
164
+ "spec/acceptance/is_string_spec.rb": "df3022de123b72f0022728eb2d8ce857",
165
+ "spec/acceptance/join_keys_to_values_spec.rb": "8aa128bbaeea65aab8d92badee3ca2b5",
166
+ "spec/acceptance/join_spec.rb": "c6378ed481265152bba9871fc5501ee6",
167
+ "spec/acceptance/keys_spec.rb": "20486e3ebee53e50dc9de3b78b9d6ae6",
168
+ "spec/acceptance/loadyaml_spec.rb": "5bce9c4b90e73bccdcd4f66fc988676b",
169
+ "spec/acceptance/lstrip_spec.rb": "e29ab4039b65660ec2bd76a298adcae0",
170
+ "spec/acceptance/max_spec.rb": "209cda4b83d677743afb1a8870330618",
171
+ "spec/acceptance/member_spec.rb": "0dac8ec7c7f670fca429fc26cf8ccc14",
172
+ "spec/acceptance/merge_spec.rb": "ac61d7627c66565a3a5cbfb2f9db21eb",
173
+ "spec/acceptance/min_spec.rb": "152a7db28434a0d0378561d4f64cddcc",
174
+ "spec/acceptance/nodesets/centos-6-vcloud.yml": "bdf9ce9d3b0f0b4995666ae9d64d878d",
175
+ "spec/acceptance/nodesets/centos-64-x64-pe.yml": "ec075d95760df3d4702abea1ce0a829b",
176
+ "spec/acceptance/nodesets/centos-64-x64.yml": "092dd2c588a9f87fa1fb12997c0723ef",
177
+ "spec/acceptance/nodesets/default.yml": "3e5c36e6aa5a690229e720f4048bb8af",
178
+ "spec/acceptance/nodesets/fedora-18-x64.yml": "80e41b1ee16ea489f53164bfdae58855",
179
+ "spec/acceptance/nodesets/sles-11-x64.yml": "44e4c6c15c018333bfa9840a5e702f66",
180
+ "spec/acceptance/nodesets/ubuntu-server-10044-x64.yml": "75e86400b7889888dc0781c0ae1a1297",
181
+ "spec/acceptance/nodesets/ubuntu-server-12042-x64.yml": "d30d73e34cd50b043c7d14e305955269",
182
+ "spec/acceptance/num2bool_spec.rb": "e4a00b913b08c68a689837e9f9336cb2",
183
+ "spec/acceptance/parsejson_spec.rb": "ea3973d412ad6f72425fdfac6fbb2bb4",
184
+ "spec/acceptance/parseyaml_spec.rb": "7bbfeed73d0626f69daedfc151957967",
185
+ "spec/acceptance/pick_default_spec.rb": "1bc2562380ef6f6cded5ec90a03922be",
186
+ "spec/acceptance/pick_spec.rb": "272c54c8f9398f499768331bdb4276ee",
187
+ "spec/acceptance/prefix_spec.rb": "da620568c6771e7d492ec1ff697c531c",
188
+ "spec/acceptance/range_spec.rb": "65e5b98ceca257658604d988fbec7d03",
189
+ "spec/acceptance/reject_spec.rb": "b5185f1a6071c9bdc7aca92e6f899c3e",
190
+ "spec/acceptance/reverse_spec.rb": "7bdee543e82532e97bbf7a067140031c",
191
+ "spec/acceptance/rstrip_spec.rb": "28a64ceb7cb5ae8a93d31f49816190ab",
192
+ "spec/acceptance/shuffle_spec.rb": "8a8652e57d56f2b4946cdf4d20052b7a",
193
+ "spec/acceptance/size_spec.rb": "ae17d8a55921a0570972200c7c9327e1",
194
+ "spec/acceptance/sort_spec.rb": "d44b1b8c090f0f00a2f38515fda431ea",
195
+ "spec/acceptance/squeeze_spec.rb": "adcd65fa4e72203b97f1f14c8835c2cd",
196
+ "spec/acceptance/str2bool_spec.rb": "55ad165ceef6b9ba32bf20ca3b53b44c",
197
+ "spec/acceptance/str2saltedsha512_spec.rb": "b684c4214d06ae3d5bae055262a5ccaa",
198
+ "spec/acceptance/strftime_spec.rb": "0f4eadbd74445b35de4a42c9790fbcc1",
199
+ "spec/acceptance/strip_spec.rb": "6767da5bc735beb5362aeee6ff692c9e",
200
+ "spec/acceptance/suffix_spec.rb": "07dfc7eed48b75fcc1b93d0308243eda",
201
+ "spec/acceptance/swapcase_spec.rb": "5c3c1bc19a09fed6e01881f79b0b4ea5",
202
+ "spec/acceptance/time_spec.rb": "044b2f634a1fa6ecc735998d68a93b73",
203
+ "spec/acceptance/to_bytes_spec.rb": "f9df1f234b9409f5eaf56ef24e651c36",
204
+ "spec/acceptance/type_spec.rb": "d103a7e1607ab9cea74cdef25af610b0",
205
+ "spec/acceptance/union_spec.rb": "b6092941e0574f3c60910bebf84d2844",
206
+ "spec/acceptance/unique_spec.rb": "9b00b21cefde3b5391f50eeb9cd2493b",
207
+ "spec/acceptance/unsupported_spec.rb": "09b9265ecb05252cd5e5a18327c7ae97",
208
+ "spec/acceptance/upcase_spec.rb": "ffd1d6f9e6ec24131fb78983c53a75f9",
209
+ "spec/acceptance/uriescape_spec.rb": "13daa387714cbfc63b587aaa8dbf7fcd",
210
+ "spec/acceptance/validate_absolute_path_spec.rb": "8b9ebfae80329231d84fcab606a3eeaf",
211
+ "spec/acceptance/validate_array_spec.rb": "382641719e754622ffae562d10e38bf7",
212
+ "spec/acceptance/validate_augeas_spec.rb": "ec0a9c030e2c3494889973d74d60b2a4",
213
+ "spec/acceptance/validate_bool_spec.rb": "08bc139459204cf0a35098a5bc30ab95",
214
+ "spec/acceptance/validate_cmd_spec.rb": "d08eacac4dd5bdb50b5b0f02a6494048",
215
+ "spec/acceptance/validate_hash_spec.rb": "70ceacc18a0dee97b26ab2e50f925706",
216
+ "spec/acceptance/validate_ipv4_address_spec.rb": "dc901bbd05c3764a93cb49154cea6e4b",
217
+ "spec/acceptance/validate_ipv6_address_spec.rb": "c0872c56230ac2800cd5723eaa5bc53a",
218
+ "spec/acceptance/validate_re_spec.rb": "b289909078d6ae0d015419f518566698",
219
+ "spec/acceptance/validate_slength_spec.rb": "f0a05c1c2b895b096cb7326df4821594",
220
+ "spec/acceptance/validate_string_spec.rb": "6c9ced99fb1e263e66e25427d24f8f7b",
221
+ "spec/acceptance/values_at_spec.rb": "669b26c4d47742051472003518c3aa61",
222
+ "spec/acceptance/values_spec.rb": "714a13735aa0db3ffd3dfc4cd2c2e330",
223
+ "spec/acceptance/zip_spec.rb": "0a76aa26bd9552b8dae3294af7d233ab",
224
+ "spec/classes/anchor_spec.rb": "40600ba2845f9bd360a9504a347f12ba",
225
+ "spec/fixtures/dscacheutil/root": "e1a7622f55f3d1be258c9a5b16b474be",
226
+ "spec/fixtures/manifests/site.pp": "d41d8cd98f00b204e9800998ecf8427e",
227
+ "spec/functions/abs_spec.rb": "0a5864a29a8e9e99acc483268bd5917c",
228
+ "spec/functions/any2array_spec.rb": "167e114cfa222de971bf8be141766b6a",
229
+ "spec/functions/base64_spec.rb": "fe16d992be54dbb06d040f1b0e189571",
230
+ "spec/functions/bool2num_spec.rb": "67c3055d5d4e4c9fbcaca82038a09081",
231
+ "spec/functions/capitalize_spec.rb": "82a4209a033fc88c624f708c12e64e2a",
232
+ "spec/functions/chomp_spec.rb": "3cd8e2fe6b12efeffad94cce5b693b7c",
233
+ "spec/functions/chop_spec.rb": "4e9534d25b952b261c9f46add677c390",
234
+ "spec/functions/concat_spec.rb": "d7657b1af27a96072aae711cee041181",
235
+ "spec/functions/count_spec.rb": "db98ef89752a7112425f0aade10108e0",
236
+ "spec/functions/deep_merge_spec.rb": "7961a696e1b45167cead127f841f1c99",
237
+ "spec/functions/defined_with_params_spec.rb": "3bdfac38e3d6f06140ff2e926f4ebed2",
238
+ "spec/functions/delete_at_spec.rb": "7fd4fe7db8d213925fbc80c992673d10",
239
+ "spec/functions/delete_spec.rb": "fe66bdf9e61b9c992bc73ee54a37035c",
240
+ "spec/functions/delete_undef_values_spec.rb": "83b9c3027463f5c8a90a6d47d219acd5",
241
+ "spec/functions/delete_values_spec.rb": "ddcaa269caa95ad926b8a3ef82976da9",
242
+ "spec/functions/difference_spec.rb": "e64c1501699fef8eb1037a3ca60a05a6",
243
+ "spec/functions/dirname_spec.rb": "1d7cf70468c2cfa6dacfc75935322395",
244
+ "spec/functions/downcase_spec.rb": "b0197829512f2e92a2d2b06ce8e2226f",
245
+ "spec/functions/empty_spec.rb": "028c30267d648a172d8a81a9262c3abe",
246
+ "spec/functions/ensure_packages_spec.rb": "f1b60599078cdcb3cff1368346108264",
247
+ "spec/functions/ensure_resource_spec.rb": "7765dde3b9fc54b7dddb6597e0f7b523",
248
+ "spec/functions/flatten_spec.rb": "583c9a70f93e492cfb22ffa1811f6aa0",
249
+ "spec/functions/floor_spec.rb": "d01ef7dfe0245d7a0a73d7df13cb02e3",
250
+ "spec/functions/fqdn_rotate_spec.rb": "c67b71737bee9936f5261d41a37bad46",
251
+ "spec/functions/get_module_path_spec.rb": "b7ea196f548b1a9a745ab6671295ab27",
252
+ "spec/functions/getparam_spec.rb": "75153d949eb122aa18f0c5e2c8e861e5",
253
+ "spec/functions/getvar_spec.rb": "842bf88d47077a9ae64097b6e39c3364",
254
+ "spec/functions/grep_spec.rb": "78179537496a7150469e591a95e255d8",
255
+ "spec/functions/has_interface_with_spec.rb": "7c16d731c518b434c81b8cb2227cc916",
256
+ "spec/functions/has_ip_address_spec.rb": "f53c7baeaf024ff577447f6c28c0f3a7",
257
+ "spec/functions/has_ip_network_spec.rb": "885ea8a4c987b735d683b742bf846cb1",
258
+ "spec/functions/has_key_spec.rb": "3e4e730d98bbdfb88438b6e08e45868e",
259
+ "spec/functions/hash_spec.rb": "826337a92d8f7a189b7ac19615db0ed7",
260
+ "spec/functions/intersection_spec.rb": "1b1f1a3900a1f1e165692b056e766fba",
261
+ "spec/functions/is_array_spec.rb": "8c020af9c360abdbbf1ba887bb26babe",
262
+ "spec/functions/is_bool_spec.rb": "3219ba1500de75161bfb4f292404d1fa",
263
+ "spec/functions/is_domain_name_spec.rb": "8eed3a9eb9334bf6a473ad4e2cabc2ec",
264
+ "spec/functions/is_float_spec.rb": "171fc0e382d9856c2d8db2b70c9ec9cd",
265
+ "spec/functions/is_function_available.rb": "c8858a3c6253713cce0113a98d229b5d",
266
+ "spec/functions/is_hash_spec.rb": "408e121a5e30c4c5c4a0a383beb6e209",
267
+ "spec/functions/is_integer_spec.rb": "c848f20da5f62ac4bbaf0f6c1485c88f",
268
+ "spec/functions/is_ip_address_spec.rb": "6040a9bae4e5c853966148b634501157",
269
+ "spec/functions/is_mac_address_spec.rb": "644cd498b426ff2f9ea9cbc5d8e141d7",
270
+ "spec/functions/is_numeric_spec.rb": "65f2ad0e70d9b60c601740351eba94fd",
271
+ "spec/functions/is_string_spec.rb": "5c015d8267de852da3a12b984e077092",
272
+ "spec/functions/join_keys_to_values_spec.rb": "7c7937411b7fe4bb944c0c022d3a96b0",
273
+ "spec/functions/join_spec.rb": "c3b50c39390a86b493511be2c6722235",
274
+ "spec/functions/keys_spec.rb": "35cc2ed490dc68da6464f245dfebd617",
275
+ "spec/functions/loadyaml_spec.rb": "ce86614d8aaceec93653ecf299d3d441",
276
+ "spec/functions/lstrip_spec.rb": "1fc2c2d80b5f724a358c3cfeeaae6249",
277
+ "spec/functions/max_spec.rb": "5562bccc643443af7e4fa7c9d1e52b8b",
278
+ "spec/functions/member_spec.rb": "067c60985efc57022ca1c5508d74d77f",
279
+ "spec/functions/merge_spec.rb": "c17a7244453f2da22970acc02a6de110",
280
+ "spec/functions/min_spec.rb": "bf80bf58261117bb24392670b624a611",
281
+ "spec/functions/num2bool_spec.rb": "8cd5b46b7c8e612dfae3362e3a68a5f9",
282
+ "spec/functions/parsejson_spec.rb": "37ab84381e035c31d6a3dd9bf73a3d53",
283
+ "spec/functions/parseyaml_spec.rb": "65dfed872930ffe0d21954c15daaf498",
284
+ "spec/functions/pick_default_spec.rb": "db0a9d261b7e1b82e2786716dd924e92",
285
+ "spec/functions/pick_spec.rb": "34382f7483b6c10d38831de2169777c2",
286
+ "spec/functions/prefix_spec.rb": "7245749e27bafe1b36c1c5bae6f705c7",
287
+ "spec/functions/range_spec.rb": "c40b3c6d4031fc541c2421ff7b8c41fe",
288
+ "spec/functions/reject_spec.rb": "8e16c9f064870e958b6278261e480954",
289
+ "spec/functions/reverse_spec.rb": "48169990e59081ccbd112b6703418ce4",
290
+ "spec/functions/rstrip_spec.rb": "a408e933753c9c323a05d7079d32cbb3",
291
+ "spec/functions/shuffle_spec.rb": "2141a54d2fb3cf725b88184d639677f4",
292
+ "spec/functions/size_spec.rb": "d126b696b21a8cd754d58f78ddba6f06",
293
+ "spec/functions/sort_spec.rb": "7039cd230a94e95d9d1de2e1094acae2",
294
+ "spec/functions/squeeze_spec.rb": "df5b349c208a9a2a4d4b8e6d9324756f",
295
+ "spec/functions/str2bool_spec.rb": "e2a8a4d39680f3ed18621e26d67c6024",
296
+ "spec/functions/str2saltedsha512_spec.rb": "1de174be8835ba6fef86b590887bb2cc",
297
+ "spec/functions/strftime_spec.rb": "bf140883ecf3254277306fa5b25f0344",
298
+ "spec/functions/strip_spec.rb": "a01796bebbdabd3fad12b0662ea5966e",
299
+ "spec/functions/suffix_spec.rb": "ee875e2d09d7ffc363bf6c34d9ef322f",
300
+ "spec/functions/swapcase_spec.rb": "0660ce8807608cc8f98ad1edfa76a402",
301
+ "spec/functions/time_spec.rb": "b6d0279062779efe5153fe5cfafc5bbd",
302
+ "spec/functions/to_bytes_spec.rb": "80aaf68cf7e938e46b5278c1907af6be",
303
+ "spec/functions/type_spec.rb": "422f2c33458fe9b0cc9614d16f7573ba",
304
+ "spec/functions/union_spec.rb": "c4f72a55e186813cd3a47a83ba3e9a61",
305
+ "spec/functions/unique_spec.rb": "2df8b3b2edb9503943cb4dcb4a371867",
306
+ "spec/functions/upcase_spec.rb": "813668919bc62cdd1d349dafc19fbbb3",
307
+ "spec/functions/uriescape_spec.rb": "204e9b1566e330a0234761ac8ac7083f",
308
+ "spec/functions/validate_absolute_path_spec.rb": "5a0b98675070e511810dab9e60dc43b6",
309
+ "spec/functions/validate_array_spec.rb": "bcd231229554785c4270ca92ef99cb60",
310
+ "spec/functions/validate_augeas_spec.rb": "eee1a0c3ef3051bda525b1e17d577ab0",
311
+ "spec/functions/validate_bool_spec.rb": "7aeb6085fc9601c6bbe6c49e56d209a4",
312
+ "spec/functions/validate_cmd_spec.rb": "efc88e8e21481acd36c7f948b1f226ea",
313
+ "spec/functions/validate_hash_spec.rb": "8529c74051ceb71e6b1b97c9cecdf625",
314
+ "spec/functions/validate_ipv4_address_spec.rb": "19f2f44fbbdf7a2e69aeaa2f0f402695",
315
+ "spec/functions/validate_ipv6_address_spec.rb": "2d8617be4405bdbd84d140ba8be6c184",
316
+ "spec/functions/validate_re_spec.rb": "d8ab477f9afcb748f144588ebb3a28a3",
317
+ "spec/functions/validate_slength_spec.rb": "73273a083a26941b3f7c1e3b2e18b3e2",
318
+ "spec/functions/validate_string_spec.rb": "64a4f681084cba55775a070f7fab5e0c",
319
+ "spec/functions/values_at_spec.rb": "de45fd8abbc4c037c3c4fac2dcf186f9",
320
+ "spec/functions/values_spec.rb": "0ac9e141ed1f612d7cc224f747b2d1d9",
321
+ "spec/functions/zip_spec.rb": "06a86e4e70d2aea63812582aae1d26c4",
322
+ "spec/lib/puppet_spec/compiler.rb": "3c1f03dd8ac2f6f90d7e8f879a3ce4c0",
323
+ "spec/lib/puppet_spec/database.rb": "c74c0cf62980beea88c7749f876ccfa7",
324
+ "spec/lib/puppet_spec/files.rb": "906da85e399302cee403e10e357d3f4c",
325
+ "spec/lib/puppet_spec/fixtures.rb": "0722c5ccbfcba1fc27da1900e54b4463",
326
+ "spec/lib/puppet_spec/matchers.rb": "dd30ba6b936e8c267511d67acb087c35",
327
+ "spec/lib/puppet_spec/modules.rb": "445d2739aa8754568a14816280727d70",
328
+ "spec/lib/puppet_spec/pops.rb": "adf661defa460b7189e3750535533d34",
329
+ "spec/lib/puppet_spec/scope.rb": "01aeb89bdc2d29a2528ced26ec6402ec",
330
+ "spec/lib/puppet_spec/settings.rb": "5da4e0dad8bf6b21cc4437c73753a56d",
331
+ "spec/lib/puppet_spec/verbose.rb": "71dbccd9a45ed89d12fd1c44456a6820",
332
+ "spec/monkey_patches/alias_should_to_must.rb": "b19ee31563afb91a72f9869f9d7362ff",
333
+ "spec/monkey_patches/publicize_methods.rb": "c690e444b77c871375d321e413e28ca1",
334
+ "spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c",
335
+ "spec/spec_helper.rb": "846cc69a2d612d55d130622759aa12e0",
336
+ "spec/spec_helper_acceptance.rb": "d82b5682eac4ff46bbe5aa08c29d5e28",
337
+ "spec/unit/facter/facter_dot_d_spec.rb": "cce0748b2671b1b104332a7c757e5206",
338
+ "spec/unit/facter/pe_version_spec.rb": "ef031cca838f36f99b1dab3259df96a5",
339
+ "spec/unit/facter/root_home_spec.rb": "ecd851e2b8a4a8578960cce094cf41ee",
340
+ "spec/unit/facter/util/puppet_settings_spec.rb": "8666142d017e5804445f5596f3be76e8",
341
+ "spec/unit/puppet/provider/file_line/ruby_spec.rb": "e118a65a3eb0ccd3d1bf99d7bb010669",
342
+ "spec/unit/puppet/type/anchor_spec.rb": "3c3251acbc1085b121623f4617107fb9",
343
+ "spec/unit/puppet/type/file_line_spec.rb": "72ba1d9ad9de5df592f3ff03551983cb",
344
+ "tests/file_line.pp": "67727539aa7b7dd76f06626fe734f7f7",
345
+ "tests/has_interface_with.pp": "59c98b4af0d39fc11d1ef4c7a6dc8f7a",
346
+ "tests/has_ip_address.pp": "93ce02915f67ddfb43a049b2b84ef391",
347
+ "tests/has_ip_network.pp": "abc05686797a776ea8c054657e6f7456",
348
+ "tests/init.pp": "1d98070412c76824e66db4b7eb74d433"
349
+ }
@@ -0,0 +1,202 @@
1
+ # A Facter plugin that loads facts from /etc/facter/facts.d
2
+ # and /etc/puppetlabs/facter/facts.d.
3
+ #
4
+ # Facts can be in the form of JSON, YAML or Text files
5
+ # and any executable that returns key=value pairs.
6
+ #
7
+ # In the case of scripts you can also create a file that
8
+ # contains a cache TTL. For foo.sh store the ttl as just
9
+ # a number in foo.sh.ttl
10
+ #
11
+ # The cache is stored in /tmp/facts_cache.yaml as a mode
12
+ # 600 file and will have the end result of not calling your
13
+ # fact scripts more often than is needed
14
+
15
+ class Facter::Util::DotD
16
+ require 'yaml'
17
+
18
+ def initialize(dir="/etc/facts.d", cache_file="/tmp/facts_cache.yml")
19
+ @dir = dir
20
+ @cache_file = cache_file
21
+ @cache = nil
22
+ @types = {".txt" => :txt, ".json" => :json, ".yaml" => :yaml}
23
+ end
24
+
25
+ def entries
26
+ Dir.entries(@dir).reject{|f| f =~ /^\.|\.ttl$/}.sort.map {|f| File.join(@dir, f) }
27
+ rescue
28
+ []
29
+ end
30
+
31
+ def fact_type(file)
32
+ extension = File.extname(file)
33
+
34
+ type = @types[extension] || :unknown
35
+
36
+ type = :script if type == :unknown && File.executable?(file)
37
+
38
+ return type
39
+ end
40
+
41
+ def txt_parser(file)
42
+ File.readlines(file).each do |line|
43
+ if line =~ /^([^=]+)=(.+)$/
44
+ var = $1; val = $2
45
+
46
+ Facter.add(var) do
47
+ setcode { val }
48
+ end
49
+ end
50
+ end
51
+ rescue Exception => e
52
+ Facter.warn("Failed to handle #{file} as text facts: #{e.class}: #{e}")
53
+ end
54
+
55
+ def json_parser(file)
56
+ begin
57
+ require 'json'
58
+ rescue LoadError
59
+ retry if require 'rubygems'
60
+ raise
61
+ end
62
+
63
+ JSON.load(File.read(file)).each_pair do |f, v|
64
+ Facter.add(f) do
65
+ setcode { v }
66
+ end
67
+ end
68
+ rescue Exception => e
69
+ Facter.warn("Failed to handle #{file} as json facts: #{e.class}: #{e}")
70
+ end
71
+
72
+ def yaml_parser(file)
73
+ require 'yaml'
74
+
75
+ YAML.load_file(file).each_pair do |f, v|
76
+ Facter.add(f) do
77
+ setcode { v }
78
+ end
79
+ end
80
+ rescue Exception => e
81
+ Facter.warn("Failed to handle #{file} as yaml facts: #{e.class}: #{e}")
82
+ end
83
+
84
+ def script_parser(file)
85
+ result = cache_lookup(file)
86
+ ttl = cache_time(file)
87
+
88
+ unless result
89
+ result = Facter::Util::Resolution.exec(file)
90
+
91
+ if ttl > 0
92
+ Facter.debug("Updating cache for #{file}")
93
+ cache_store(file, result)
94
+ cache_save!
95
+ end
96
+ else
97
+ Facter.debug("Using cached data for #{file}")
98
+ end
99
+
100
+ result.split("\n").each do |line|
101
+ if line =~ /^(.+)=(.+)$/
102
+ var = $1; val = $2
103
+
104
+ Facter.add(var) do
105
+ setcode { val }
106
+ end
107
+ end
108
+ end
109
+ rescue Exception => e
110
+ Facter.warn("Failed to handle #{file} as script facts: #{e.class}: #{e}")
111
+ Facter.debug(e.backtrace.join("\n\t"))
112
+ end
113
+
114
+ def cache_save!
115
+ cache = load_cache
116
+ File.open(@cache_file, "w", 0600) {|f| f.write(YAML.dump(cache)) }
117
+ rescue
118
+ end
119
+
120
+ def cache_store(file, data)
121
+ load_cache
122
+
123
+ @cache[file] = {:data => data, :stored => Time.now.to_i}
124
+ rescue
125
+ end
126
+
127
+ def cache_lookup(file)
128
+ cache = load_cache
129
+
130
+ return nil if cache.empty?
131
+
132
+ ttl = cache_time(file)
133
+
134
+ if cache[file]
135
+ now = Time.now.to_i
136
+
137
+ return cache[file][:data] if ttl == -1
138
+ return cache[file][:data] if (now - cache[file][:stored]) <= ttl
139
+ return nil
140
+ else
141
+ return nil
142
+ end
143
+ rescue
144
+ return nil
145
+ end
146
+
147
+ def cache_time(file)
148
+ meta = file + ".ttl"
149
+
150
+ return File.read(meta).chomp.to_i
151
+ rescue
152
+ return 0
153
+ end
154
+
155
+ def load_cache
156
+ unless @cache
157
+ if File.exist?(@cache_file)
158
+ @cache = YAML.load_file(@cache_file)
159
+ else
160
+ @cache = {}
161
+ end
162
+ end
163
+
164
+ return @cache
165
+ rescue
166
+ @cache = {}
167
+ return @cache
168
+ end
169
+
170
+ def create
171
+ entries.each do |fact|
172
+ type = fact_type(fact)
173
+ parser = "#{type}_parser"
174
+
175
+ if respond_to?("#{type}_parser")
176
+ Facter.debug("Parsing #{fact} using #{parser}")
177
+
178
+ send(parser, fact)
179
+ end
180
+ end
181
+ end
182
+ end
183
+
184
+
185
+ mdata = Facter.version.match(/(\d+)\.(\d+)\.(\d+)/)
186
+ if mdata
187
+ (major, minor, patch) = mdata.captures.map { |v| v.to_i }
188
+ if major < 2
189
+ # Facter 1.7 introduced external facts support directly
190
+ unless major == 1 and minor > 6
191
+ Facter::Util::DotD.new("/etc/facter/facts.d").create
192
+ Facter::Util::DotD.new("/etc/puppetlabs/facter/facts.d").create
193
+
194
+ # Windows has a different configuration directory that defaults to a vendor
195
+ # specific sub directory of the %COMMON_APPDATA% directory.
196
+ if Dir.const_defined? 'COMMON_APPDATA' then
197
+ windows_facts_dot_d = File.join(Dir::COMMON_APPDATA, 'PuppetLabs', 'facter', 'facts.d')
198
+ Facter::Util::DotD.new(windows_facts_dot_d).create
199
+ end
200
+ end
201
+ end
202
+ end