prima-twig 0.39.21 → 0.39.22

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.
Files changed (4) hide show
  1. checksums.yaml +5 -5
  2. data/bin/twig-feature +15 -12
  3. data/bin/twig-update-ami +45 -48
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 10da4b461ac5211077e083f78d1541ac9059c76d
4
- data.tar.gz: a65e8f184c49aae54c8d58179c7fec3e11557d0d
2
+ SHA256:
3
+ metadata.gz: 9d79cb6c8547f4f27a6f6e170d3656cee4d7f6f11ebb7b2ee05e67d89099723f
4
+ data.tar.gz: 0f36d2b236d7505a38139b567493f8312d20b28dfd0ed5d0fbe9231e08a2847e
5
5
  SHA512:
6
- metadata.gz: 32d19206bb2c346affcd1d1a423c7ab6aa237b6712e9fb2b6f07108636a676c7b7dd22f22106edcb1ac58d67dc9a143bb60e290824f0055730da98a197078616
7
- data.tar.gz: 30976d6fb6ceac81f16c7b70d013fc7e512b88fc6838da25585b1b3aed96667565226d88fd1d49423f48b9e61ab9a379ec4062d4ae3e3646b5d4599d4df884d6
6
+ metadata.gz: ea59ec0200d64481f69071412c06b7a9a1dd1574924512e2772588bc41d53c460a5a29713d82d5aa57f11ed2fe04ae8f4b2217729c1eac631f272c5125918564
7
+ data.tar.gz: 39eed3b688c3cb5c38bd55786378ebaa5a90650bcd97115bdaa518898889db34c8b1df2ce9a82e5022f8e1b0c22f0a0d70798893cb5678664c0cd12092d5e2fb
data/bin/twig-feature CHANGED
@@ -598,9 +598,9 @@ class Release
598
598
  output "Stack ancora attivi: #{stacks_to_delete.length.to_s}. Attendo altri 10 secondi per eliminare il cluster ECS"
599
599
  end
600
600
 
601
- delete_stack(cluster_stack_name)
602
- delete_stack(@base_stack_name_alb + env_hash[3..8])
603
- delete_stack(@base_stack_name_alb_ws + env_hash[3..8])
601
+ delete_stack(cluster_stack_name) if stack_exists?(cluster_stack_name)
602
+ delete_stack(@base_stack_name_alb + env_hash[3..8]) if stack_exists?(@base_stack_name_alb + env_hash[3..8])
603
+ delete_stack(@base_stack_name_alb_ws + env_hash[3..8]) if stack_exists?(@base_stack_name_alb_ws + env_hash[3..8])
604
604
  `git checkout master && git push origin --delete ${DRONE_BRANCH}`
605
605
  output "Finito!".green
606
606
 
@@ -1932,7 +1932,7 @@ class Release
1932
1932
  if minimal
1933
1933
  [
1934
1934
  'docker-compose build web',
1935
- "docker-compose run -w $PWD -u root -e WS_ENDPOINT=#{ws_endpoint} -e GRAPHQL_ENDPOINT=#{frontend_endpoint} -e MIX_ENV=staging -e HOSTNAME_PATTERN=https://#{crash_qa_host} web \
1935
+ "docker-compose run -w $PWD -u root -e WS_ENDPOINT=#{ws_endpoint} -e GRAPHQL_ENDPOINT=#{frontend_endpoint} -e MIX_ENV=staging -e ENV_HASH=#{deploy_id} -e HOSTNAME_PATTERN=https://#{crash_qa_host} web \
1936
1936
  '-c' 'sed -i \"s/crash-staging.prima.it/#{crash_qa_host}/g\" config/staging.exs && \
1937
1937
  mix local.hex --force && mix hex.info && \
1938
1938
  mix deps.get && \
@@ -1979,7 +1979,7 @@ class Release
1979
1979
  [
1980
1980
  'mv docker-compose-ci.yml docker-compose.yml',
1981
1981
  'docker-compose build web',
1982
- "docker-compose run -w $PWD -e WS_ENDPOINT=#{ws_endpoint} -e GRAPHQL_ENDPOINT=#{frontend_endpoint} -e MIX_ENV=qa web \
1982
+ "docker-compose run -w $PWD -e WS_ENDPOINT=#{ws_endpoint} -e GRAPHQL_ENDPOINT=#{frontend_endpoint} -e ENV_HASH=#{deploy_id} -e MIX_ENV=qa web \
1983
1983
  '-c' 'sed -i \"s/web-qa-host/#{web_qa_host}/g\" config/qa.exs && \
1984
1984
  sed -i \"s/crash-qa-host/#{crash_qa_host}/g\" config/qa.exs && \
1985
1985
  mix local.hex --force && mix hex.info && \
@@ -2634,17 +2634,20 @@ class Release
2634
2634
  end
2635
2635
 
2636
2636
  def import_redis_crash(qa_ip_address)
2637
- output "Importo dump di Redis da staging\n".yellow
2637
+ output "Importo chiavi di Redis da staging\n".yellow
2638
2638
 
2639
+ prefixes = ['CODICI', 'fun_with_flags']
2639
2640
  redis_qa = Redis.new(:url => "redis://#{qa_ip_address}:6379/10")
2640
-
2641
- return unless redis_qa.keys('CODICI').empty?
2642
-
2643
2641
  redis_staging = Redis.new(:url => 'redis://staging.cache-1.prima.it:6379/10')
2644
2642
 
2645
- dump_staging = redis_staging.dump 'CODICI'
2646
-
2647
- redis_qa.restore 'CODICI', 0, dump_staging
2643
+ prefixes.each do |prefix|
2644
+ redis_staging.keys("#{prefix}*").each do |key|
2645
+ next unless redis_qa.keys(key).empty?
2646
+ output "Importo #{key} dal Redis di staging\n".yellow
2647
+ dump_staging = redis_staging.dump key
2648
+ redis_qa.restore key, 0, dump_staging
2649
+ end
2650
+ end
2648
2651
  end
2649
2652
 
2650
2653
  def import_dbs(ip_address)
data/bin/twig-update-ami CHANGED
@@ -15,67 +15,61 @@ class TwigUpdateAmi
15
15
  exec "gem update prima-twig && twig update-ami #{ARGV.join ' '}" unless `gem outdated`.lines.grep(/^prima-twig \(.*\)/).empty?
16
16
  @s3 = Aws::S3::Client.new
17
17
  @s3_bucket = 'prima-deploy'
18
- @instances = JSON.parse File.read('../twig-binaries/cloudformation.json')
18
+ @instances_production = JSON.parse File.read('../twig-binaries/cloudformation_prod.json')
19
+ @instances_staging = JSON.parse File.read('../twig-binaries/cloudformation_staging.json')
19
20
  end
20
21
 
21
22
  def execute!(args)
22
23
  if args[3] == 'staging'
23
- update_amis args[0], args[1], args[2], true
24
+ update_amis args[0], args[1], args[2], [@instances_staging]
24
25
  else
25
- update_amis args[0], args[1], args[2], false
26
+ update_amis args[0], args[1], args[2], [@instances_production] #[@instances_staging, @instances_production]
26
27
  end
27
28
  end
28
29
 
29
30
  private
30
31
 
31
- def update_amis(ami_id, ami_name, ami_description, only_staging)
32
- @instances['amis'].each do |ami|
33
- if only_staging and ami['json'] != 'ecs-allinone.json'
34
- output "skipping #{ami['json']} because only_staging enabled".yellow
35
- next
36
- end
37
- output 'updating instance definition'.light_green
38
- Dir.chdir 'ami'
39
- update_instance_name(ami_id, ami_name, ami_description, ami['json'])
40
- output 'running packer update (this could take some time)'.light_green
41
- new_ami_id = update_packer ami['json']
42
- Dir.chdir '..'
43
- output 'new ami id: ' + new_ami_id
44
- stop_if new_ami_id.to_s.empty?, 'Failed to generate AMI!'
45
- ami['stacks'].each do |stack|
46
- if only_staging and not stack['stack_name'].include?('staging')
47
- output "skipping #{stack['stack_name']} because only_staging enabled".yellow
48
- next
49
- end
50
- output 'updating ' + stack['yaml_filename'] + ' and copying onto s3'
51
- update_yml_files(new_ami_id, stack['yaml_filename'])
52
- copy_yml_files_to_s3(stack['yaml_filename'], stack['s3_key'])
53
- output 'updating stack on cloudformation'
54
- if stack['stack_name'] and stack_exists?(stack['stack_name'])
55
- stack_parameters = get_stack_parameters(stack['stack_name'])
56
- stack_parameters.each do |param|
57
- if param.parameter_key.eql?('DesiredCapacity')
58
- desired_capacity = get_desired_capacity(stack['stack_name'])
59
- desired_capacity.nil? ? break : param.parameter_value.sub!(/[0-9]+/, desired_capacity.to_s)
60
- break
32
+ def update_amis(ami_id, ami_name, ami_description, instances)
33
+ instances.each do |instance_class|
34
+ instance_class['amis'].each do |ami|
35
+ output 'updating instance definition'.light_green
36
+ Dir.chdir 'ami'
37
+ update_instance_name(ami_id, ami_name, ami_description, ami['json'])
38
+ output 'running packer update (this could take some time)'.light_green
39
+ new_ami_id = update_packer ami['json']
40
+ Dir.chdir '..'
41
+ output 'new ami id: ' + new_ami_id
42
+ stop_if new_ami_id.to_s.empty?, 'Failed to generate AMI!'
43
+ ami['stacks'].each do |stack|
44
+ output 'updating ' + stack['yaml_filename'] + ' and copying onto s3'
45
+ update_yml_files(new_ami_id, stack['yaml_filename'])
46
+ copy_yml_files_to_s3(stack['yaml_filename'], stack['s3_key'])
47
+ output 'updating stack on cloudformation'
48
+ if stack['stack_name'] and stack_exists?(stack['stack_name'])
49
+ stack_parameters = get_stack_parameters(stack['stack_name'])
50
+ stack_parameters.each do |param|
51
+ if param.parameter_key.eql?('DesiredCapacity')
52
+ desired_capacity = get_desired_capacity(stack['stack_name'])
53
+ desired_capacity.nil? ? break : param.parameter_value.sub!(/[0-9]+/, desired_capacity.to_s)
54
+ break
55
+ end
61
56
  end
57
+ update_stack_url(stack['stack_name'], stack['template_url'], stack_parameters)
58
+ else
59
+ output "skipping #{stack['yaml_filename']} because is not active on cloudformation"
62
60
  end
63
- update_stack_url(stack['stack_name'], stack['template_url'], stack_parameters)
64
61
  end
65
- end
66
62
 
67
- unless ami['batch_compute_environments'].nil? or only_staging
68
- ami['batch_compute_environments'].each do |ce|
69
- update_batch_compute_environment(ce, new_ami_id)
70
- end
71
- end
72
- ami['stacks'].each do |stack|
73
- if only_staging and not stack['stack_name'].include?('allinone-staging')
74
- output "skipping #{stack['stack_name']} because only_staging enabled".yellow
75
- next
63
+ unless ami['batch_compute_environments'].nil?
64
+ ami['batch_compute_environments'].each do |ce|
65
+ update_batch_compute_environment(ce, new_ami_id)
66
+ end
76
67
  end
77
- if stack['stack_name'] and stack_exists?(stack['stack_name'])
78
- wait_for_stack_ready(stack['stack_name'], ['CREATE_FAILED', 'ROLLBACK_IN_PROGRESS', 'ROLLBACK_FAILED', 'DELETE_IN_PROGRESS', 'DELETE_FAILED', 'DELETE_COMPLETE', 'UPDATE_ROLLBACK_FAILED', 'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS', 'UPDATE_ROLLBACK_COMPLETE', 'ROLLBACK_COMPLETE'])
68
+
69
+ ami['stacks'].each do |stack|
70
+ if stack['stack_name'] and stack_exists?(stack['stack_name'])
71
+ wait_for_stack_ready(stack['stack_name'], ['CREATE_FAILED', 'ROLLBACK_IN_PROGRESS', 'ROLLBACK_FAILED', 'DELETE_IN_PROGRESS', 'DELETE_FAILED', 'DELETE_COMPLETE', 'UPDATE_ROLLBACK_FAILED', 'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS', 'UPDATE_ROLLBACK_COMPLETE', 'ROLLBACK_COMPLETE'])
72
+ end
79
73
  end
80
74
  end
81
75
  end
@@ -112,9 +106,7 @@ class TwigUpdateAmi
112
106
 
113
107
  def update_yml_files(ami_id, yaml_filename)
114
108
  file_content = File.read yaml_filename
115
-
116
109
  file_content.sub!(/ami-[0-9a-z]{8,17}/, ami_id)
117
-
118
110
  File.open yaml_filename, 'w' do |f|
119
111
  f.write file_content
120
112
  end
@@ -179,6 +171,11 @@ class TwigUpdateAmi
179
171
  wait_for_stack_ready(stack['stack_name'], ['CREATE_FAILED', 'ROLLBACK_IN_PROGRESS', 'ROLLBACK_FAILED', 'DELETE_IN_PROGRESS', 'DELETE_FAILED', 'DELETE_COMPLETE', 'UPDATE_ROLLBACK_FAILED', 'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS', 'UPDATE_ROLLBACK_COMPLETE', 'ROLLBACK_COMPLETE'])
180
172
 
181
173
  output "retrieving the list of stacks that are currently using the stack #{stack['stack_name']}"
174
+ if stack['stack_name'].include?('staging')
175
+ job_stacks = list_import_stacks old_ce_name + '-staging'
176
+ else
177
+ job_stacks = list_import_stacks old_ce_name + '-production'
178
+ end
182
179
  job_stacks = list_import_stacks old_ce_name + '-production'
183
180
  job_stacks.each do |job_stack_name|
184
181
  output "updating the stack #{job_stack_name} to use to the new compute environment"
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.39.21
4
+ version: 0.39.22
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-08-31 00:00:00.000000000 Z
16
+ date: 2018-09-05 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: aws-sdk
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  requirements: []
216
216
  rubyforge_project:
217
- rubygems_version: 2.6.11
217
+ rubygems_version: 2.7.7
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: The Prima twig toolbelt