itamae-mitsurin 0.4 → 0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (235) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +2 -1
  4. data/Rakefile +17 -15
  5. data/bin/itamae +2 -3
  6. data/bin/manaita +5 -0
  7. data/itamae-mitsurin.gemspec +4 -4
  8. data/lib/itamae-mitsurin.rb +17 -0
  9. data/lib/{itamae → itamae-mitsurin}/backend.rb +13 -13
  10. data/lib/{itamae → itamae-mitsurin}/cli.rb +5 -5
  11. data/lib/{itamae → itamae-mitsurin}/definition.rb +2 -2
  12. data/lib/itamae-mitsurin/ext.rb +1 -0
  13. data/lib/{itamae → itamae-mitsurin}/ext/specinfra.rb +0 -0
  14. data/lib/{itamae → itamae-mitsurin}/handler.rb +3 -3
  15. data/lib/{itamae → itamae-mitsurin}/handler/base.rb +1 -1
  16. data/lib/{itamae → itamae-mitsurin}/handler/debug.rb +2 -2
  17. data/lib/{itamae → itamae-mitsurin}/handler/fluentd.rb +2 -2
  18. data/lib/{itamae → itamae-mitsurin}/handler/json.rb +1 -1
  19. data/lib/{itamae → itamae-mitsurin}/handler_proxy.rb +1 -1
  20. data/lib/{itamae → itamae-mitsurin}/logger.rb +5 -5
  21. data/lib/itamae-mitsurin/mitsurin.rb +14 -0
  22. data/lib/{itamae → itamae-mitsurin}/mitsurin/cli.rb +5 -5
  23. data/lib/{itamae → itamae-mitsurin}/mitsurin/creators.rb +3 -3
  24. data/lib/itamae-mitsurin/mitsurin/creators/cookbook.rb +24 -0
  25. data/lib/itamae-mitsurin/mitsurin/creators/project.rb +24 -0
  26. data/lib/{itamae → itamae-mitsurin}/mitsurin/creators/templates/project/.rspec +0 -0
  27. data/lib/{itamae → itamae-mitsurin}/mitsurin/creators/templates/project/Gemfile +0 -1
  28. data/lib/itamae-mitsurin/mitsurin/creators/templates/project/Rakefile +2 -0
  29. data/lib/{itamae/generators/templates/cookbook/files → itamae-mitsurin/mitsurin/creators/templates/project/environments}/.keep +0 -0
  30. data/lib/{itamae → itamae-mitsurin}/mitsurin/creators/templates/project/environments/sample.json +0 -0
  31. data/lib/{itamae/generators/templates/cookbook/templates → itamae-mitsurin/mitsurin/creators/templates/project/keys}/.keep +0 -0
  32. data/lib/{itamae/generators/templates/project/cookbooks → itamae-mitsurin/mitsurin/creators/templates/project/nodes}/.keep +0 -0
  33. data/lib/itamae-mitsurin/mitsurin/creators/templates/project/nodes/sample01.json +10 -0
  34. data/lib/{itamae/generators → itamae-mitsurin/mitsurin/creators}/templates/project/roles/.keep +0 -0
  35. data/lib/{itamae/generators/templates/role/files → itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/attributes}/.keep +0 -0
  36. data/lib/itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/recipes/default.rb +1 -0
  37. data/lib/{itamae/generators/templates/role/templates → itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/recipes/directories}/.keep +0 -0
  38. data/lib/{itamae/mitsurin/creators/templates/project/environments → itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/recipes/files}/.keep +0 -0
  39. data/lib/{itamae/mitsurin/creators/templates/project/keys → itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/recipes/templates}/.keep +0 -0
  40. data/lib/{itamae → itamae-mitsurin}/mitsurin/creators/templates/project/site-cookbooks/_base/_base/spec/default_spec.rb +0 -0
  41. data/lib/{itamae → itamae-mitsurin}/mitsurin/creators/templates/project/spec/spec_helper.rb +0 -0
  42. data/lib/{itamae/mitsurin/creators/templates/project/nodes → itamae-mitsurin/mitsurin/creators/templates/project/tmp-nodes}/.keep +0 -0
  43. data/lib/{itamae/mitsurin/creators/templates/project/roles → itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/attributes}/.keep +0 -0
  44. data/lib/{itamae/generators/templates/cookbook → itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/recipes}/default.rb +0 -0
  45. data/lib/{itamae/mitsurin/creators/templates/project/site-cookbooks/_base/_base/attributes → itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/recipes/directories}/.keep +0 -0
  46. data/lib/{itamae/mitsurin/creators/templates/project/site-cookbooks/_base/_base → itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/recipes}/files/.keep +0 -0
  47. data/lib/{itamae/mitsurin/creators/templates/project/site-cookbooks/_base/_base → itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/recipes}/templates/.keep +0 -0
  48. data/lib/{itamae/generators/templates/role/default.rb → itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/spec/default_spec.rb} +0 -0
  49. data/lib/itamae-mitsurin/mitsurin/itamae_task.rb +197 -0
  50. data/lib/itamae-mitsurin/mitsurin/itamae_with_git_task.rb +213 -0
  51. data/lib/itamae-mitsurin/mitsurin/serverspec_task.rb +123 -0
  52. data/lib/{itamae → itamae-mitsurin}/node.rb +3 -3
  53. data/lib/{itamae → itamae-mitsurin}/notification.rb +3 -3
  54. data/lib/{itamae → itamae-mitsurin}/recipe.rb +6 -6
  55. data/lib/{itamae → itamae-mitsurin}/recipe_children.rb +2 -2
  56. data/lib/{itamae → itamae-mitsurin}/resource.rb +23 -23
  57. data/lib/{itamae → itamae-mitsurin}/resource/aws_ebs_volume.rb +3 -3
  58. data/lib/{itamae → itamae-mitsurin}/resource/base.rb +23 -23
  59. data/lib/{itamae → itamae-mitsurin}/resource/directory.rb +2 -2
  60. data/lib/{itamae → itamae-mitsurin}/resource/execute.rb +2 -2
  61. data/lib/itamae-mitsurin/resource/file.rb +180 -0
  62. data/lib/{itamae → itamae-mitsurin}/resource/gem_package.rb +2 -2
  63. data/lib/{itamae → itamae-mitsurin}/resource/git.rb +2 -2
  64. data/lib/{itamae → itamae-mitsurin}/resource/group.rb +2 -2
  65. data/lib/{itamae → itamae-mitsurin}/resource/http_request.rb +3 -3
  66. data/lib/{itamae → itamae-mitsurin}/resource/link.rb +2 -2
  67. data/lib/{itamae → itamae-mitsurin}/resource/local_ruby_block.rb +2 -2
  68. data/lib/{itamae → itamae-mitsurin}/resource/package.rb +2 -2
  69. data/lib/{itamae → itamae-mitsurin}/resource/remote_directory.rb +5 -5
  70. data/lib/{itamae → itamae-mitsurin}/resource/remote_file.rb +3 -3
  71. data/lib/{itamae → itamae-mitsurin}/resource/service.rb +2 -2
  72. data/lib/{itamae → itamae-mitsurin}/resource/template.rb +2 -2
  73. data/lib/{itamae → itamae-mitsurin}/resource/user.rb +2 -2
  74. data/lib/{itamae → itamae-mitsurin}/runner.rb +8 -8
  75. data/lib/{itamae/mitsurin → itamae-mitsurin}/version.rb +1 -3
  76. data/lib/itamae-mitsurin/version.txt +1 -0
  77. data/test/test_itamae-mitsurin.rb +18 -0
  78. data/test/test_itamae-mitsurin/ext/test_specinfra.rb +39 -0
  79. data/test/test_itamae-mitsurin/handler/test_base.rb +40 -0
  80. data/test/test_itamae-mitsurin/handler/test_debug.rb +10 -0
  81. data/test/test_itamae-mitsurin/handler/test_fluentd.rb +44 -0
  82. data/test/test_itamae-mitsurin/handler/test_json.rb +22 -0
  83. data/test/test_itamae-mitsurin/mitsurin/creators/templates/project/.rspec +2 -0
  84. data/test/test_itamae-mitsurin/mitsurin/creators/templates/project/Gemfile +3 -0
  85. data/{lib/itamae → test/test_itamae-mitsurin}/mitsurin/creators/templates/project/Rakefile +0 -0
  86. data/{lib/itamae/mitsurin/creators/templates/project/tmp-nodes → test/test_itamae-mitsurin/mitsurin/creators/templates/project/environments}/.keep +0 -0
  87. data/test/test_itamae-mitsurin/mitsurin/creators/templates/project/environments/sample.json +7 -0
  88. data/{lib/itamae/mitsurin/creators/templates/site-cookbooks/attributes → test/test_itamae-mitsurin/mitsurin/creators/templates/project/keys}/.keep +0 -0
  89. data/{lib/itamae/mitsurin/creators/templates/site-cookbooks/files → test/test_itamae-mitsurin/mitsurin/creators/templates/project/nodes}/.keep +0 -0
  90. data/{lib/itamae → test/test_itamae-mitsurin}/mitsurin/creators/templates/project/nodes/sample01.json +0 -0
  91. data/{lib/itamae/mitsurin/creators/templates/site-cookbooks/spec → test/test_itamae-mitsurin/mitsurin/creators/templates/project/roles}/.keep +0 -0
  92. data/{lib/itamae/mitsurin/creators/templates/site-cookbooks/templates → test/test_itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/attributes}/.keep +0 -0
  93. data/{lib/itamae/mitsurin/creators/templates/site-cookbooks/recipes/default.rb → test/test_itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/files/.keep} +0 -0
  94. data/{lib/itamae → test/test_itamae-mitsurin}/mitsurin/creators/templates/project/site-cookbooks/_base/_base/recipes/default.rb +0 -0
  95. data/test/test_itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/spec/default_spec.rb +1 -0
  96. data/test/test_itamae-mitsurin/mitsurin/creators/templates/project/site-cookbooks/_base/_base/templates/.keep +0 -0
  97. data/test/test_itamae-mitsurin/mitsurin/creators/templates/project/spec/spec_helper.rb +33 -0
  98. data/test/test_itamae-mitsurin/mitsurin/creators/templates/project/tmp-nodes/.keep +0 -0
  99. data/test/test_itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/attributes/.keep +0 -0
  100. data/test/test_itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/files/.keep +0 -0
  101. data/test/test_itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/recipes/default.rb +0 -0
  102. data/test/test_itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/spec/.keep +0 -0
  103. data/test/test_itamae-mitsurin/mitsurin/creators/templates/site-cookbooks/templates/.keep +0 -0
  104. data/{lib/itamae/mitsurin/creators/cookbook.rb → test/test_itamae-mitsurin/mitsurin/creators/test_cookbook.rb} +0 -0
  105. data/{lib/itamae/mitsurin/creators/project.rb → test/test_itamae-mitsurin/mitsurin/creators/test_project.rb} +0 -0
  106. data/test/test_itamae-mitsurin/mitsurin/test_cli.rb +56 -0
  107. data/test/test_itamae-mitsurin/mitsurin/test_creators.rb +19 -0
  108. data/{lib/itamae/mitsurin/itamae_task.rb → test/test_itamae-mitsurin/mitsurin/test_itamae_task.rb} +0 -1
  109. data/{lib/itamae/mitsurin/itamae_with_git_task.rb → test/test_itamae-mitsurin/mitsurin/test_itamae_with_git_task.rb} +0 -1
  110. data/{lib/itamae/mitsurin/serverspec_task.rb → test/test_itamae-mitsurin/mitsurin/test_serverspec_task.rb} +1 -1
  111. data/test/test_itamae-mitsurin/resource/test_aws_ebs_volume.rb +84 -0
  112. data/test/test_itamae-mitsurin/resource/test_base.rb +374 -0
  113. data/test/test_itamae-mitsurin/resource/test_directory.rb +63 -0
  114. data/test/test_itamae-mitsurin/resource/test_execute.rb +26 -0
  115. data/{lib/itamae/resource/file.rb → test/test_itamae-mitsurin/resource/test_file.rb} +6 -6
  116. data/test/test_itamae-mitsurin/resource/test_gem_package.rb +81 -0
  117. data/test/test_itamae-mitsurin/resource/test_git.rb +94 -0
  118. data/test/test_itamae-mitsurin/resource/test_group.rb +42 -0
  119. data/test/test_itamae-mitsurin/resource/test_http_request.rb +71 -0
  120. data/test/test_itamae-mitsurin/resource/test_link.rb +33 -0
  121. data/test/test_itamae-mitsurin/resource/test_local_ruby_block.rb +15 -0
  122. data/test/test_itamae-mitsurin/resource/test_package.rb +44 -0
  123. data/test/test_itamae-mitsurin/resource/test_remote_directory.rb +84 -0
  124. data/test/test_itamae-mitsurin/resource/test_remote_file.rb +54 -0
  125. data/test/test_itamae-mitsurin/resource/test_service.rb +69 -0
  126. data/test/test_itamae-mitsurin/resource/test_template.rb +53 -0
  127. data/test/test_itamae-mitsurin/resource/test_user.rb +93 -0
  128. data/test/test_itamae-mitsurin/test_backend.rb +297 -0
  129. data/test/test_itamae-mitsurin/test_cli.rb +88 -0
  130. data/test/test_itamae-mitsurin/test_definition.rb +40 -0
  131. data/test/test_itamae-mitsurin/test_ext.rb +1 -0
  132. data/test/test_itamae-mitsurin/test_handler.rb +21 -0
  133. data/test/test_itamae-mitsurin/test_handler_proxy.rb +38 -0
  134. data/test/test_itamae-mitsurin/test_logger.rb +124 -0
  135. data/test/test_itamae-mitsurin/test_mitsurin.rb +14 -0
  136. data/test/test_itamae-mitsurin/test_node.rb +74 -0
  137. data/test/test_itamae-mitsurin/test_notification.rb +46 -0
  138. data/test/test_itamae-mitsurin/test_recipe.rb +171 -0
  139. data/test/test_itamae-mitsurin/test_recipe_children.rb +86 -0
  140. data/test/test_itamae-mitsurin/test_resource.rb +73 -0
  141. data/test/test_itamae-mitsurin/test_runner.rb +124 -0
  142. data/test/test_itamae-mitsurin/test_version.rb +3 -0
  143. data/{lib/itamae/mitsurin → test/test_itamae-mitsurin}/version.txt +0 -0
  144. data/test_project/.rspec +2 -0
  145. data/test_project/Gemfile +4 -0
  146. data/test_project/Rakefile +3 -0
  147. data/test_project/environments/.keep +0 -0
  148. data/test_project/keys/.keep +0 -0
  149. data/test_project/nodes/.keep +0 -0
  150. data/test_project/nodes/test.json +9 -0
  151. data/test_project/roles/.keep +0 -0
  152. data/test_project/roles/test.json +14 -0
  153. data/test_project/site-cookbooks/_base/_base/attributes/.keep +0 -0
  154. data/test_project/site-cookbooks/_base/_base/files/.keep +0 -0
  155. data/test_project/site-cookbooks/_base/_base/recipes/default.rb +1 -0
  156. data/test_project/site-cookbooks/_base/_base/spec/default_spec.rb +1 -0
  157. data/test_project/site-cookbooks/_base/_base/templates/.keep +0 -0
  158. data/test_project/site-cookbooks/a_test/directory/attributes/.keep +0 -0
  159. data/test_project/site-cookbooks/a_test/directory/files/.keep +0 -0
  160. data/test_project/site-cookbooks/a_test/directory/recipes/default.rb +8 -0
  161. data/test_project/site-cookbooks/a_test/directory/spec/.keep +0 -0
  162. data/test_project/site-cookbooks/a_test/directory/spec/default_spec.rb +4 -0
  163. data/test_project/site-cookbooks/a_test/directory/templates/.keep +0 -0
  164. data/test_project/site-cookbooks/a_test/package/attributes/.keep +0 -0
  165. data/test_project/site-cookbooks/a_test/package/files/.keep +0 -0
  166. data/test_project/site-cookbooks/a_test/package/recipes/default.rb +2 -0
  167. data/test_project/site-cookbooks/a_test/package/spec/.keep +0 -0
  168. data/test_project/site-cookbooks/a_test/package/spec/default_spec.rb +4 -0
  169. data/test_project/site-cookbooks/a_test/package/templates/.keep +0 -0
  170. data/test_project/site-cookbooks/a_test/service/attributes/.keep +0 -0
  171. data/test_project/site-cookbooks/a_test/service/files/.keep +0 -0
  172. data/test_project/site-cookbooks/a_test/service/recipes/default.rb +5 -0
  173. data/test_project/site-cookbooks/a_test/service/spec/.keep +0 -0
  174. data/test_project/site-cookbooks/a_test/service/spec/default_spec.rb +6 -0
  175. data/test_project/site-cookbooks/a_test/service/templates/.keep +0 -0
  176. data/test_project/site-cookbooks/b_test/git/attributes/.keep +0 -0
  177. data/test_project/site-cookbooks/b_test/git/files/.keep +0 -0
  178. data/test_project/site-cookbooks/b_test/git/recipes/default.rb +5 -0
  179. data/test_project/site-cookbooks/b_test/git/spec/.keep +0 -0
  180. data/test_project/site-cookbooks/b_test/git/spec/default_spec.rb +5 -0
  181. data/test_project/site-cookbooks/b_test/git/templates/.keep +0 -0
  182. data/test_project/site-cookbooks/b_test/link/attributes/.keep +0 -0
  183. data/test_project/site-cookbooks/b_test/link/files/.keep +0 -0
  184. data/test_project/site-cookbooks/b_test/link/recipes/default.rb +5 -0
  185. data/test_project/site-cookbooks/b_test/link/spec/.keep +0 -0
  186. data/test_project/site-cookbooks/b_test/link/spec/default_spec.rb +5 -0
  187. data/test_project/site-cookbooks/b_test/link/templates/.keep +0 -0
  188. data/test_project/site-cookbooks/b_test/remote_file/attributes/.keep +0 -0
  189. data/test_project/site-cookbooks/b_test/remote_file/files/.keep +0 -0
  190. data/test_project/site-cookbooks/b_test/remote_file/files/remote_file.sh +1 -0
  191. data/test_project/site-cookbooks/b_test/remote_file/recipes/default.rb +9 -0
  192. data/test_project/site-cookbooks/b_test/remote_file/spec/.keep +0 -0
  193. data/test_project/site-cookbooks/b_test/remote_file/spec/default_spec.rb +7 -0
  194. data/test_project/site-cookbooks/b_test/remote_file/templates/.keep +0 -0
  195. data/test_project/site-cookbooks/b_test/template/attributes/.keep +0 -0
  196. data/test_project/site-cookbooks/b_test/template/files/.keep +0 -0
  197. data/test_project/site-cookbooks/b_test/template/recipes/default.rb +5 -0
  198. data/test_project/site-cookbooks/b_test/template/spec/.keep +0 -0
  199. data/test_project/site-cookbooks/b_test/template/spec/default_spec.rb +7 -0
  200. data/test_project/site-cookbooks/b_test/template/templates/.keep +0 -0
  201. data/test_project/site-cookbooks/b_test/template/templates/template.erb +2 -0
  202. data/test_project/site-cookbooks/c_test/execute/attributes/.keep +0 -0
  203. data/test_project/site-cookbooks/c_test/execute/files/.keep +0 -0
  204. data/test_project/site-cookbooks/c_test/execute/recipes/default.rb +6 -0
  205. data/test_project/site-cookbooks/c_test/execute/spec/.keep +0 -0
  206. data/test_project/site-cookbooks/c_test/execute/spec/default_spec.rb +6 -0
  207. data/test_project/site-cookbooks/c_test/execute/templates/.keep +0 -0
  208. data/test_project/site-cookbooks/c_test/remote_directory/attributes/.keep +0 -0
  209. data/test_project/site-cookbooks/c_test/remote_directory/files/.keep +0 -0
  210. data/test_project/site-cookbooks/c_test/remote_directory/recipes/default.rb +10 -0
  211. data/test_project/site-cookbooks/c_test/remote_directory/spec/.keep +0 -0
  212. data/test_project/site-cookbooks/c_test/remote_directory/spec/default_spec.rb +20 -0
  213. data/test_project/site-cookbooks/c_test/remote_directory/templates/.keep +0 -0
  214. data/test_project/site-cookbooks/c_test/remote_directory/templates/remote_dir/a.txt +0 -0
  215. data/test_project/site-cookbooks/c_test/remote_directory/templates/remote_dir/b.txt +0 -0
  216. data/test_project/site-cookbooks/c_test/remote_directory/templates/remote_dir/c.txt +0 -0
  217. data/test_project/site-cookbooks/d_spec/air/attributes/.keep +0 -0
  218. data/test_project/site-cookbooks/d_spec/air/files/.keep +0 -0
  219. data/test_project/site-cookbooks/d_spec/air/recipes/default.rb +0 -0
  220. data/test_project/site-cookbooks/d_spec/air/spec/.keep +0 -0
  221. data/test_project/site-cookbooks/d_spec/air/spec/default_spec.rb +0 -0
  222. data/test_project/site-cookbooks/d_spec/air/templates/.keep +0 -0
  223. data/test_project/spec/spec_helper.rb +33 -0
  224. data/test_project/tmp-nodes/.keep +0 -0
  225. data/test_project/tmp-nodes/test.json +12 -0
  226. metadata +337 -138
  227. data/bin/itamae-mitsurin +0 -5
  228. data/lib/itamae.rb +0 -18
  229. data/lib/itamae/ext.rb +0 -1
  230. data/lib/itamae/generators.rb +0 -20
  231. data/lib/itamae/generators/cookbook.rb +0 -22
  232. data/lib/itamae/generators/project.rb +0 -22
  233. data/lib/itamae/generators/role.rb +0 -22
  234. data/lib/itamae/generators/templates/project/Gemfile +0 -4
  235. data/lib/itamae/mitsurin.rb +0 -14
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class GemPackage < Base
6
6
  define_attribute :action, default: :install
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class Git < Base
6
6
  DEPLOY_BRANCH = "deploy"
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class Group < Base
6
6
  define_attribute :action, default: :create
@@ -1,8 +1,8 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
  require 'uri'
3
3
  require 'net/https'
4
4
 
5
- module Itamae
5
+ module ItamaeMitsurin
6
6
  module Resource
7
7
  class HttpRequest < File
8
8
  RedirectLimitExceeded = Class.new(StandardError)
@@ -33,7 +33,7 @@ module Itamae
33
33
  if redirects_followed < attributes.redirect_limit
34
34
  uri = URI.parse(response["location"])
35
35
  redirects_followed += 1
36
- Itamae.logger.debug "Following redirect #{redirects_followed}/#{attributes.redirect_limit}"
36
+ ItamaeMitsurin.logger.debug "Following redirect #{redirects_followed}/#{attributes.redirect_limit}"
37
37
  else
38
38
  raise RedirectLimitExceeded
39
39
  end
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class Link < Base
6
6
  define_attribute :action, default: :create
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class LocalRubyBlock < Base
6
6
  define_attribute :action, default: :run
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class Package < Base
6
6
  define_attribute :action, default: :install
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class RemoteDirectory < Base
6
6
  define_attribute :action, default: :create
@@ -44,11 +44,11 @@ module Itamae
44
44
  diff = run_command(["diff", "-u", attributes.path, @temppath], error: false)
45
45
  if diff.exit_status == 0
46
46
  # no change
47
- Itamae.logger.debug "directory content will not change"
47
+ ItamaeMitsurin.logger.debug "directory content will not change"
48
48
  else
49
- Itamae.logger.info "diff:"
49
+ ItamaeMitsurin.logger.info "diff:"
50
50
  diff.stdout.each_line do |line|
51
- Itamae.logger.info "#{line.strip}"
51
+ ItamaeMitsurin.logger.info "#{line.strip}"
52
52
  end
53
53
  end
54
54
  end
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class RemoteFile < File
6
6
  SourceNotFoundError = Class.new(StandardError)
@@ -27,7 +27,7 @@ module Itamae
27
27
  source_file_exts.each do |ext|
28
28
  path = ::File.join(@recipe.dir, source_file_dir, "#{dirs[i..-1].join("/")}#{ext}")
29
29
  if ::File.exist?(path)
30
- Itamae.logger.debug "#{path} is used as a source file."
30
+ ItamaeMitsurin.logger.debug "#{path} is used as a source file."
31
31
  return path
32
32
  else
33
33
  searched_paths << path
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class Service < Base
6
6
  define_attribute :action, default: :nothing
@@ -1,8 +1,8 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
  require 'erb'
3
3
  require 'tempfile'
4
4
 
5
- module Itamae
5
+ module ItamaeMitsurin
6
6
  module Resource
7
7
  class Template < RemoteFile
8
8
  define_attribute :variables, type: Hash, default: {}
@@ -1,6 +1,6 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
 
3
- module Itamae
3
+ module ItamaeMitsurin
4
4
  module Resource
5
5
  class User < Base
6
6
  define_attribute :action, default: :create
@@ -1,12 +1,12 @@
1
- require 'itamae'
1
+ require 'itamae-mitsurin'
2
2
  require 'json'
3
3
  require 'yaml'
4
4
 
5
- module Itamae
5
+ module ItamaeMitsurin
6
6
  class Runner
7
7
  class << self
8
8
  def run(recipe_files, backend_type, options)
9
- Itamae.logger.info "Starting Itamae..."
9
+ ItamaeMitsurin.logger.info "Starting Itamae..."
10
10
 
11
11
  backend = Backend.create(backend_type, options)
12
12
  runner = self.new(backend, options)
@@ -68,7 +68,7 @@ module Itamae
68
68
  end
69
69
 
70
70
  def save_dependency_graph(path)
71
- Itamae.logger.info "Writing recipe dependency graph to #{path}..."
71
+ ItamaeMitsurin.logger.info "Writing recipe dependency graph to #{path}..."
72
72
  open(path, 'w') do |f|
73
73
  f.write(children.dependency_in_dot)
74
74
  end
@@ -87,23 +87,23 @@ module Itamae
87
87
  if @options[:ohai]
88
88
  unless @backend.run_command("which ohai", error: false).exit_status == 0
89
89
  # install Ohai
90
- Itamae.logger.info "Installing Chef package... (to use Ohai)"
90
+ ItamaeMitsurin.logger.info "Installing Chef package... (to use Ohai)"
91
91
  @backend.run_command("curl -L https://www.opscode.com/chef/install.sh | bash")
92
92
  end
93
93
 
94
- Itamae.logger.info "Loading node data via ohai..."
94
+ ItamaeMitsurin.logger.info "Loading node data via ohai..."
95
95
  hash.merge!(JSON.parse(@backend.run_command("ohai").stdout))
96
96
  end
97
97
 
98
98
  if @options[:node_json]
99
99
  path = File.expand_path(@options[:node_json])
100
- Itamae.logger.info "Loading node data from #{path}..."
100
+ ItamaeMitsurin.logger.info "Loading node data from #{path}..."
101
101
  hash.merge!(JSON.load(open(path)))
102
102
  end
103
103
 
104
104
  if @options[:node_yaml]
105
105
  path = File.expand_path(@options[:node_yaml])
106
- Itamae.logger.info "Loading node data from #{path}..."
106
+ ItamaeMitsurin.logger.info "Loading node data from #{path}..."
107
107
  hash.merge!(YAML.load(open(path)) || {})
108
108
  end
109
109
 
@@ -1,5 +1,3 @@
1
- module Itamae
2
- module Mitsurin
1
+ module ItamaeMitsurin
3
2
  VERSION = File.read(File.expand_path("../version.txt", __FILE__)).strip
4
- end
5
3
  end
@@ -0,0 +1 @@
1
+ 0.7
@@ -0,0 +1,18 @@
1
+ require 'test/unit'
2
+ require "itamae-mitsurin/runner"
3
+ require "itamae-mitsurin/cli"
4
+ require "itamae-mitsurin/recipe"
5
+ require "itamae-mitsurin/resource"
6
+ require "itamae-mitsurin/handler"
7
+ require "itamae-mitsurin/handler_proxy"
8
+ require "itamae-mitsurin/recipe_children"
9
+ require "itamae-mitsurin/logger"
10
+ require "itamae-mitsurin/node"
11
+ require "itamae-mitsurin/backend"
12
+ require "itamae-mitsurin/notification"
13
+ require "itamae-mitsurin/definition"
14
+ require "itamae-mitsurin/ext"
15
+
16
+ module TestItamaeMitsurin
17
+ # Your code goes here...
18
+ end
@@ -0,0 +1,39 @@
1
+ # TODO: Send patches to Specinfra
2
+
3
+ module Specinfra
4
+ module Backend
5
+ class Base
6
+ def receive_file(from, to = nil)
7
+ raise NotImplementedError
8
+ end
9
+ end
10
+
11
+ class Exec < Base
12
+ def receive_file(from, to = nil)
13
+ if to
14
+ FileUtils.cp(from, to)
15
+ else
16
+ ::File.read(from)
17
+ end
18
+ end
19
+ end
20
+
21
+ class Ssh < Exec
22
+ def receive_file(from, to = nil)
23
+ scp_download!(from, to)
24
+ end
25
+
26
+ private
27
+
28
+ def scp_download!(from, to, opt={})
29
+ if get_config(:scp).nil?
30
+ set_config(:scp, create_scp)
31
+ end
32
+
33
+ scp = get_config(:scp)
34
+ scp.download!(from, to, opt)
35
+ end
36
+ end
37
+ end
38
+ end
39
+
@@ -0,0 +1,40 @@
1
+ require 'socket'
2
+
3
+ module ItamaeMitsurin
4
+ module Handler
5
+ class Base
6
+ attr_reader :recipes, :resources, :actions
7
+
8
+ def initialize(options)
9
+ @options = options
10
+
11
+ @recipes = []
12
+ @resources = []
13
+ @actions = []
14
+ end
15
+
16
+ def event(type, payload = {})
17
+ case type
18
+ when :recipe_started
19
+ @recipes << payload
20
+ when :recipe_completed, :recipe_failed
21
+ @recipes.pop
22
+ when :resource_started
23
+ @resources << payload
24
+ when :resource_completed, :resource_failed
25
+ @resources.pop
26
+ when :action_started
27
+ @actions << payload
28
+ when :action_completed, :action_failed
29
+ @actions.pop
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def hostname
36
+ @hostname ||= @options['hostname'] || Socket.gethostname
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,10 @@
1
+ module ItamaeMitsurin
2
+ module Handler
3
+ class Debug < Base
4
+ def event(type, payload = {})
5
+ super
6
+ ItamaeMitsurin.logger.info("EVENT:#{type} #{payload}")
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,44 @@
1
+ module ItamaeMitsurin
2
+ module Handler
3
+ class Fluentd < Base
4
+ attr_accessor :fluent_logger # for test
5
+
6
+ def initialize(*)
7
+ super
8
+ load_fluent_logger
9
+ end
10
+
11
+ def event(type, payload = {})
12
+ super
13
+
14
+ unless @fluent_logger.post(type, payload.merge(hostname: hostname))
15
+ ItamaeMitsurin.logger.warn "Sending logs to Fluentd failed: #{@fluent_logger.last_error}"
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def load_fluent_logger
22
+ begin
23
+ require 'fluent-logger'
24
+ rescue LoadError
25
+ raise "Loading fluent-logger gem failed. Please install 'fluent-logger' gem to use fluentd handler."
26
+ end
27
+
28
+ @fluent_logger = Fluent::Logger::FluentLogger.new(tag_prefix, host: fluentd_host, port: fluentd_port)
29
+ end
30
+
31
+ def tag_prefix
32
+ @options['tag_prefix'] || 'itamae_server'
33
+ end
34
+
35
+ def fluentd_host
36
+ @options['host'] || 'localhost'
37
+ end
38
+
39
+ def fluentd_port
40
+ (@options['port'] || 24224).to_i
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,22 @@
1
+ module ItamaeMitsurin
2
+ module Handler
3
+ class Json < Base
4
+ def initialize(*)
5
+ super
6
+ require 'time'
7
+ open_file
8
+ end
9
+
10
+ def event(type, payload = {})
11
+ super
12
+ @f.puts({'time' => Time.now.iso8601, 'event' => type, 'payload' => payload}.to_json)
13
+ end
14
+
15
+ private
16
+
17
+ def open_file
18
+ @f = open(@options.fetch('path'), 'a')
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'itamae-mitsurin'
@@ -0,0 +1,7 @@
1
+ {
2
+ "environments": {
3
+ "ssh_port": "22",
4
+ "ssh_user": "ec2-user",
5
+ "ssh_key": "keipair.pem"
6
+ }
7
+ }