elastic_beans 1.1.0 → 1.2.0.alpha1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/elastic_beans/command/scale.rb +30 -9
- data/lib/elastic_beans/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 445b81d2f818741c42691b6e727e34da7a4646a7
|
4
|
+
data.tar.gz: ad2ed2724428345abe8caaf64a003d6724bd413e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3a88cf55be625e0d26d4db87f106712c2b3dedbb871b100016d6706a00cb4071a3a1d03b92479999c524de59aad2644fd82b66ca9567103264fd7734dfb45ed
|
7
|
+
data.tar.gz: 881cd193cb819b9592167e7e88b071abb4aeb364a7a70699e5ad03e9c0dc6edf314779d89116421362124494b9961d1c613f421e869a4fc8d25576c1718e6ebb
|
@@ -34,8 +34,25 @@ Requires AWS credentials to be set in the environment, i.e. AWS_ACCESS_KEY_ID an
|
|
34
34
|
raise EnvironmentsNotReady.new(environments: [environment])
|
35
35
|
end
|
36
36
|
|
37
|
+
config = ElasticBeans::ConfigurationTemplate.new_by_type(
|
38
|
+
environment_type,
|
39
|
+
queue: queue,
|
40
|
+
application: application,
|
41
|
+
elastic_beanstalk: elastic_beanstalk,
|
42
|
+
)
|
43
|
+
|
37
44
|
progressbar = ProgressBar.create(title: "Configuring", total: nil, output: ui.stdout)
|
45
|
+
update_configuration(config, progressbar: progressbar)
|
46
|
+
scale_environment(environment, progressbar: progressbar)
|
47
|
+
|
48
|
+
clean_up_enqueued_commands(environment: environment) if environment_type == "exec"
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
38
52
|
|
53
|
+
attr_reader :application, :minimum, :maximum, :queue, :elastic_beanstalk, :ui
|
54
|
+
|
55
|
+
def update_configuration(config, progressbar:)
|
39
56
|
Signal.trap("INT") do
|
40
57
|
puts "\nInterrupting beans"
|
41
58
|
puts "WARNING: Configuration update is partially applied, you should run this command again"
|
@@ -48,12 +65,6 @@ Requires AWS credentials to be set in the environment, i.e. AWS_ACCESS_KEY_ID an
|
|
48
65
|
end
|
49
66
|
|
50
67
|
thread = Thread.new do
|
51
|
-
config = ElasticBeans::ConfigurationTemplate.new_by_type(
|
52
|
-
environment_type,
|
53
|
-
queue: queue,
|
54
|
-
application: application,
|
55
|
-
elastic_beanstalk: elastic_beanstalk,
|
56
|
-
)
|
57
68
|
progressbar.log("Updating `#{config.name}' configuration template in #{application.name}...")
|
58
69
|
config.upsert(min_size: minimum, max_size: maximum)
|
59
70
|
end
|
@@ -65,7 +76,9 @@ Requires AWS credentials to be set in the environment, i.e. AWS_ACCESS_KEY_ID an
|
|
65
76
|
end
|
66
77
|
end
|
67
78
|
thread.join
|
79
|
+
end
|
68
80
|
|
81
|
+
def scale_environment(environment, progressbar:)
|
69
82
|
Signal.trap("INT") do
|
70
83
|
puts "\nInterrupting beans"
|
71
84
|
puts "Scaling still in progress, follow it in the AWS console"
|
@@ -92,9 +105,17 @@ Requires AWS credentials to be set in the environment, i.e. AWS_ACCESS_KEY_ID an
|
|
92
105
|
thread.join
|
93
106
|
end
|
94
107
|
|
95
|
-
|
96
|
-
|
97
|
-
|
108
|
+
def clean_up_enqueued_commands(environment:)
|
109
|
+
commands = application.enqueued_commands
|
110
|
+
instance_ids = environment.instance_ids
|
111
|
+
progressbar = ProgressBar.create(title: "Cleaning up", total: commands.size, output: ui.stdout)
|
112
|
+
commands.each do |command|
|
113
|
+
if command.instance_id && !instance_ids.include?(command.instance_id)
|
114
|
+
application.deregister_command(command)
|
115
|
+
end
|
116
|
+
progressbar.increment
|
117
|
+
end
|
118
|
+
end
|
98
119
|
end
|
99
120
|
end
|
100
121
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic_beans
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0.alpha1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Stegman
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -251,12 +251,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
251
251
|
version: '0'
|
252
252
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
253
253
|
requirements:
|
254
|
-
- - "
|
254
|
+
- - ">"
|
255
255
|
- !ruby/object:Gem::Version
|
256
|
-
version:
|
256
|
+
version: 1.3.1
|
257
257
|
requirements: []
|
258
258
|
rubyforge_project:
|
259
|
-
rubygems_version: 2.
|
259
|
+
rubygems_version: 2.6.11
|
260
260
|
signing_key:
|
261
261
|
specification_version: 4
|
262
262
|
summary: Elastic Beanstalk environment orchestration for a Rails app
|