tsudura 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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