prima-twig 0.31.55 → 0.31.56

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: a59d935465a804a7f44c9593c96b787dd51d6c6e
4
- data.tar.gz: ba4ac81c3196eb2e35f4e76f235d1064b44780d3
3
+ metadata.gz: '0880a7f1e6f2543a179ad98b5bfbd05cec9bd42f'
4
+ data.tar.gz: 16ebf28302e7c32f5cd845154f6d44a69acd85c8
5
5
  SHA512:
6
- metadata.gz: a3c6dfadfdbbaaabbd8c94f58aecc0781cbd6c061f578476c77c3d7498cfc29631614a1bd72582a6e1b65f13f53f3a81f619217cee757ccc3f585d5bae6db02e
7
- data.tar.gz: ac704f344302a91e104d777866dd5e534ccbb57fc3b16d8a1755d78774913e977cb48c53a736a017b0598ef9f2fe056c56d795962dcbc1d49bb434827f745198
6
+ metadata.gz: 2f7eb4f286a25d22110de1648b0cd8bd6832816417ba8ddc1b4b99ad005cea4cdc592c84f670757c6673c4b08c17b2164f3b5b2e3e6c250240d3d78f84d7b01b
7
+ data.tar.gz: 531be4ca7ab4d09094e645f6431eb995ce27d4c04c0dd64dbda540315613cf8f640604f4433a74f631890de7c409ad39fad4d8760eb3325db8972ba35f5dc816
data/bin/twig-feature CHANGED
@@ -1127,6 +1127,10 @@ class Release
1127
1127
  projects_text.concat "
1128
1128
  > Crash url: https://#{crash_hostname}" if deploy_crash?
1129
1129
  projects_text.concat "
1130
+ > RabbitMQ url: http://#{ec2_ip_address(asg_stack_name)}:15672"
1131
+ > Supervisor url: http://#{ec2_ip_address(asg_stack_name)}:9001"
1132
+ > Elasticsearch url: http://#{ec2_ip_address(asg_stack_name)}:9200"
1133
+ > Elasticsearch 2 url: http://#{ec2_ip_address(asg_stack_name)}:9201"
1130
1134
  > SSH connection: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no githubUsername@#{ec2_ip_address(asg_stack_name)}\n"
1131
1135
  output projects_text.cyan
1132
1136
  output "Deploy effettuato, everything is awesome!\n".green
data/bin/twig-update-ami CHANGED
@@ -51,9 +51,18 @@ class TwigUpdateAmi
51
51
  copy_yml_files_to_s3(stack['yaml_filename'], stack['s3_key'])
52
52
  output 'updating stack on cloudformation'
53
53
  if stack['stack_name'] and stack_exists?(stack['stack_name'])
54
- update_stack_url(stack['stack_name'], stack['template_url'], get_stack_parameters(stack['stack_name']))
54
+ stack_parameters = get_stack_parameters(stack['stack_name'])
55
+ stack_parameters.each do |param|
56
+ if param.parameter_key.eql?('DesiredCapacity')
57
+ desired_capacity = get_desired_capacity(stack['stack_name'])
58
+ desired_capacity.nil? ? break : param.parameter_value.sub!(/[0-9]+/, desired_capacity.to_s)
59
+ break
60
+ end
61
+ end
62
+ update_stack_url(stack['stack_name'], stack['template_url'], stack_parameters)
55
63
  end
56
64
  end
65
+
57
66
  unless ami['batch_compute_environments'].nil? or only_staging
58
67
  ami['batch_compute_environments'].each do |ce|
59
68
  update_batch_compute_environment(ce, new_ami_id)
@@ -83,6 +92,18 @@ class TwigUpdateAmi
83
92
  end
84
93
  end
85
94
 
95
+ def get_desired_capacity(stack_name)
96
+ stack_outputs = get_stack_outputs(stack_name)
97
+ stack_outputs.each do |out|
98
+ if out.export_name.include?('ECSAutoScalingGroup')
99
+ return get_autoscaling_capacity(out.output_value)
100
+ elsif out.export_name.include?('SpotFleet')
101
+ return get_spotfleet_capacity(out.output_value)
102
+ end
103
+ end
104
+ return nil
105
+ end
106
+
86
107
  def update_packer(json_filename)
87
108
  execute_command "packer build -var datadog_apikey=`biscuit get -f ../configs/secrets/common.yml common_production_apikey_datadog` -machine-readable ./#{json_filename} | tee build.log"
88
109
  `grep 'artifact,0,id' build.log | cut -d, -f6 | cut -d: -f2`.sub(/\n/, '')
@@ -10,6 +10,14 @@ module PrimaAwsClient
10
10
  @cf ||= Aws::CloudFormation::Client.new
11
11
  end
12
12
 
13
+ def asg_client
14
+ @asg ||= Aws::AutoScaling::Client.new
15
+ end
16
+
17
+ def appscaling_client
18
+ @appscaling ||= Aws::ApplicationAutoScaling::Client.new
19
+ end
20
+
13
21
  def stack_list
14
22
  stacks = []
15
23
  next_token = ''
@@ -107,6 +115,11 @@ module PrimaAwsClient
107
115
  resp.stacks[0].parameters
108
116
  end
109
117
 
118
+ def get_stack_outputs(name)
119
+ resp = cf_client.describe_stacks(stack_name: name)
120
+ resp.stacks[0].outputs
121
+ end
122
+
110
123
  def get_stack_template(name)
111
124
  resp = cf_client.get_template(stack_name: name)
112
125
  resp.template_body
@@ -154,4 +167,14 @@ module PrimaAwsClient
154
167
  end
155
168
  stacks
156
169
  end
170
+
171
+ def get_autoscaling_capacity(asg_name)
172
+ resp = asg_client.describe_auto_scaling_groups(auto_scaling_group_names: [asg_name])
173
+ resp.auto_scaling_groups[0].desired_capacity
174
+ end
175
+
176
+ def get_spotfleet_capacity(fleet_arn)
177
+ resp = appscaling_client.describe_scalable_targets(service_namespace: 'ec2', resource_ids: ["spot-fleet-request/#{fleet_arn}"])
178
+ resp.scalable_targets[0].min_capacity
179
+ end
157
180
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prima-twig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.55
4
+ version: 0.31.56
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matteo Giachino
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2018-02-22 00:00:00.000000000 Z
16
+ date: 2018-03-08 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: aws-sdk