tsudura 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 454145fa9c659a5e7a32d21490baea4945325605
4
- data.tar.gz: 6dc9088693f930d1de1caeeab5e991433dd0af1e
3
+ metadata.gz: 8a0cc50d089c6684268f12056061ec7ec73c1188
4
+ data.tar.gz: cc9a3da81574fe2f66f23d4ca700db505c131610
5
5
  SHA512:
6
- metadata.gz: 67440826f71c227b3234314a647225869475e70e9d040c7aaca717e3f19df10b1468ed4dba0a7b78b4d67243d680e4ce36ee0b35caa400b6ee85d4c08deccc30
7
- data.tar.gz: 0125a58832b60877e1d11332c6db6947a37bace5ebbf9af631eabaf1a656d648653b66654ea555df58525f86cb521a49540d6cb6d83398ae187c28ba91e316b5
6
+ metadata.gz: e07c226d2633407ffe0bc50d448e565bd4af8222ed46fb7507094a440d54640d3dd789957921adf329842b4f90b231fa158800863ba7db714b9531354d2efd36
7
+ data.tar.gz: 8c90795ae969d758433ea03bc5facfd1ef5f87664ab20926327f460ec984ba81f61d24ad374e7d1ed8fdecbaad23f6f11f2fc2a8a35cdbd8f1d9b086a1893d9f
data/.travis.yml CHANGED
@@ -1,4 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.2.2
4
- script: bundle exec rspec
4
+ before_script:
5
+ - export COVERAGE=true
6
+ script:
7
+ - bundle exec rspec
data/Guardfile CHANGED
@@ -1,5 +1,4 @@
1
- ## Uncomment and set this to only include directories you want to watch
2
- # directories %w(app lib config test spec features)
1
+ directories %w(lib spec)
3
2
 
4
3
  ## Uncomment to clear the screen before every task
5
4
  # clearing :on
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://travis-ci.org/onigra/tsudura.svg)](https://travis-ci.org/onigra/tsudura)
1
+ [![Build Status](https://travis-ci.org/onigra/tsudura.svg)](https://travis-ci.org/onigra/tsudura) [![Coverage Status](https://coveralls.io/repos/onigra/tsudura/badge.svg?branch=master)](https://coveralls.io/r/onigra/tsudura?branch=master) [![Code Climate](https://codeclimate.com/github/onigra/tsudura/badges/gpa.svg)](https://codeclimate.com/github/onigra/tsudura)
2
2
 
3
3
  # WARNING
4
4
 
data/lib/tsudura.rb CHANGED
@@ -9,9 +9,10 @@ require "deep_hash_transform"
9
9
 
10
10
  require "tsudura/config_parser"
11
11
  require "tsudura/env_prefix"
12
- require "tsudura/runner_module"
13
- require "tsudura/normal_runner"
14
- require "tsudura/packer_plus_runner"
12
+ require "tsudura/runners/runner_module"
13
+ require "tsudura/runners/normal_runner"
14
+ require "tsudura/runners/packer_runner"
15
+ require "tsudura/runners/packer_plus_runner"
15
16
  require "tsudura/runner"
16
17
  require "tsudura/cli"
17
18
  require "tsudura/version"
@@ -6,11 +6,10 @@ module Tsudura::Aws
6
6
  end
7
7
 
8
8
  def launch
9
- instance_result = launch_ec2
10
- instance = instance_result[:instances].first
11
- waiting_for_launch instance
12
- ec2.create_tags(resources: [instance.instance_id], tags: [ { key: 'Name', value: "#{@config[:service]}-ami"}])
13
- @launched_instance_id = instance.instance_id
9
+ launch_result = launch_ec2
10
+ @launched_instance_id = launch_result[:instances].first.instance_id
11
+ waiting_for_launch
12
+ create_tag
14
13
  @launched_instance_id
15
14
  end
16
15
 
@@ -19,27 +18,11 @@ module Tsudura::Aws
19
18
  end
20
19
 
21
20
  private
22
-
23
- #
24
- # statusがreadyになるまで待ち
25
- #
26
- def waiting_for_launch(instance)
27
- status = nil
28
-
29
- while (status.nil? || status == 'initializing')
30
- sleep 10
31
-
32
- statuses = ec2.describe_instance_status(instance_ids: [instance.instance_id])
33
- if statuses[:instance_statuses] == []
34
- # 早過ぎると、ステータス取得すらできない
35
- next
36
- end
37
-
38
- status = statuses[:instance_statuses].first[:system_status].status
39
- puts status
40
- end
21
+
22
+ def ec2
23
+ @ec2 ||= ::Aws::EC2::Client.new(region: @config[:region])
41
24
  end
42
-
25
+
43
26
  def launch_ec2
44
27
  ec2.run_instances(
45
28
  min_count: 1,
@@ -52,8 +35,24 @@ module Tsudura::Aws
52
35
  )
53
36
  end
54
37
 
55
- def ec2
56
- @ec2 ||= ::Aws::EC2::Client.new(region: @config[:region])
38
+ def waiting_for_launch
39
+ status = nil
40
+
41
+ while (status.nil? || status == 'initializing')
42
+ sleep 10
43
+ statuses = ec2.describe_instance_status(instance_ids: [@launched_instance_id])
44
+
45
+ # 早すぎるとステータスの取得すらできない
46
+ if statuses[:instance_statuses] == []
47
+ next
48
+ end
49
+
50
+ status = statuses[:instance_statuses].first[:system_status].status
51
+ end
52
+ end
53
+
54
+ def create_tag
55
+ ec2.create_tags(resources: [@launched_instance_id], tags: [ { key: 'Name', value: "#{@config[:service]}-ami"}])
57
56
  end
58
57
  end
59
58
  end
@@ -2,9 +2,9 @@ module Tsudura
2
2
  class Runner
3
3
  def self.run(config)
4
4
  if config.has_key?(:mode)
5
- Object.const_get("Tsudura").const_get("#{config[:mode].split("_").map(&:capitalize).join}Runner").new(config).run
5
+ Object.const_get("Tsudura").const_get("Runners").const_get("#{config[:mode].split("_").map(&:capitalize).join}Runner").new(config).run
6
6
  else
7
- Tsudura::NormalRunner.new(config).run
7
+ Tsudura::Runners::NormalRunner.new(config).run
8
8
  end
9
9
  end
10
10
  end
@@ -1,6 +1,6 @@
1
- module Tsudura
1
+ module Tsudura::Runners
2
2
  class NormalRunner
3
- include Tsudura::RunnerModule
3
+ include Tsudura::Runners::RunnerModule
4
4
 
5
5
  def initialize(config)
6
6
  @config = config
@@ -1,6 +1,6 @@
1
- module Tsudura
1
+ module Tsudura::Runners
2
2
  class PackerPlusRunner
3
- include Tsudura::RunnerModule
3
+ include Tsudura::Runners::RunnerModule
4
4
 
5
5
  def initialize(config)
6
6
  @config = config
@@ -0,0 +1,17 @@
1
+ module Tsudura::Runners
2
+ class PackerRunner
3
+ include Tsudura::Runners::RunnerModule
4
+
5
+ def initialize(config)
6
+ @config = config
7
+ @timestamp = Time.now.strftime('%Y%m%d%H%M%S')
8
+ end
9
+
10
+ def run
11
+ instance_id = launch_instance
12
+ provision
13
+ puts create_ami(instance_id)
14
+ terminate_tmp_ec2_instance
15
+ end
16
+ end
17
+ end
@@ -1,29 +1,29 @@
1
- module Tsudura
1
+ module Tsudura::Runners
2
2
  module RunnerModule
3
3
 
4
4
  private
5
5
 
6
6
  def launch_instance
7
- @ec2 = Aws::LaunchInstance.new(@config)
7
+ @ec2 = Tsudura::Aws::LaunchInstance.new(@config)
8
8
  @ec2.launch
9
9
  end
10
10
 
11
11
  def provision
12
- Provisioner::Ansible.new(@config).provision!
12
+ Tsudura::Provisioner::Ansible.new(@config).provision!
13
13
  end
14
14
 
15
15
  def create_ami(instance_id)
16
- @ami = Aws::Ami.new(instance_id, @config, @timestamp)
16
+ @ami = Tsudura::Aws::Ami.new(instance_id, @config, @timestamp)
17
17
  @ami.create
18
18
  end
19
19
 
20
20
  def create_launch_config(new_image_id)
21
- @launch_config = Aws::LaunchConfig.new(new_image_id, @config, @timestamp)
21
+ @launch_config = Tsudura::Aws::LaunchConfig.new(new_image_id, @config, @timestamp)
22
22
  @launch_config.create
23
23
  end
24
24
 
25
25
  def update_auto_scaling_group
26
- Aws::AutoScale.new(@config, @timestamp).update
26
+ Tsudura::Aws::AutoScale.new(@config, @timestamp).update
27
27
  end
28
28
 
29
29
  def destroy_temp_objects
@@ -1,3 +1,3 @@
1
1
  module Tsudura
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/tsudura.gemspec CHANGED
@@ -34,6 +34,7 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency "guard-rspec"
35
35
  spec.add_development_dependency "growl"
36
36
  spec.add_development_dependency "awesome_print"
37
+ spec.add_development_dependency "coveralls"
37
38
 
38
39
  spec.add_dependency "thor"
39
40
  spec.add_dependency "aws-sdk", '~> 2'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tsudura
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - onigra
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-05 00:00:00.000000000 Z
11
+ date: 2015-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: coveralls
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: thor
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -179,11 +193,12 @@ files:
179
193
  - lib/tsudura/cli.rb
180
194
  - lib/tsudura/config_parser.rb
181
195
  - lib/tsudura/env_prefix.rb
182
- - lib/tsudura/normal_runner.rb
183
- - lib/tsudura/packer_plus_runner.rb
184
196
  - lib/tsudura/provisioner/ansible.rb
185
197
  - lib/tsudura/runner.rb
186
- - lib/tsudura/runner_module.rb
198
+ - lib/tsudura/runners/normal_runner.rb
199
+ - lib/tsudura/runners/packer_plus_runner.rb
200
+ - lib/tsudura/runners/packer_runner.rb
201
+ - lib/tsudura/runners/runner_module.rb
187
202
  - lib/tsudura/version.rb
188
203
  - tsudura.gemspec
189
204
  homepage: https://github.com/onigra/tsudura