prima-twig 1.2.1 → 1.2.2

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
  SHA256:
3
- metadata.gz: 6c85bc796545f4a0f38fa6be4380dec88e6c2fb771e8fe39d5044c57e9c0a6ee
4
- data.tar.gz: 4eef557dba95dc99c88f3f07951bb6219aa2fe63eb928c12e9c6a743954400e6
3
+ metadata.gz: 375cff1dcb6c293a35af2cbed16c3d2868c8e02df37fc6dd9daaa3cc86b9bf9b
4
+ data.tar.gz: e7fd3d93fc6a856eb504290ba8c1498121b0c900ba35be697033a3fcde833aae
5
5
  SHA512:
6
- metadata.gz: 4d2472dfc0c866aab6563b9cca251fd606256dc05c55bd450abbd65e5db86371327626bbb8001b06a3e15f50355f6d9a26fb1760513bc3a04698c043b9cbf572
7
- data.tar.gz: 4e86ab32ba1df95732055f29da69469fdd2c71d197233c5db726e18780910141206e9eb6ab5d94d2db621b3be8199d0bf22bc69bc8fdc24c26204eef6a0f1c19
6
+ metadata.gz: 06a6dd7bf5686f6bc466728dfd0916987e9b0c537133ea521d6faaeae57e5409208785428f03e6a34a7e6654cb93be7a648c91960f014d011293025e5682793b
7
+ data.tar.gz: '009485acbc7e40d0fc4d1a0c03c9f730ee5f0704ea15b48f228f926a1af82d5b772021d706c54b29424e509cd52904c6457e9b3cdfe670764760135cc5eb4194'
@@ -30,7 +30,7 @@ class TwigUpdateAmi
30
30
  update_instance_name(ami_id, ami_name, ami_description, ami_template)
31
31
  output 'running packer update (this could take some time)'.light_green
32
32
  new_ami_id = update_packer(ami_template, env)
33
- # new_ami_id = 'ami-026890988d91ee8c6'
33
+ # new_ami_id = 'ami-0d8488b68731e8756'
34
34
  Dir.chdir '..'
35
35
  stop_if(new_ami_id.to_s.empty?, 'Failed to generate AMI!'.red)
36
36
  output "new ami id: #{new_ami_id}"
@@ -51,32 +51,19 @@ class TwigUpdateAmi
51
51
  output "skipping stack #{stack} because is a qa"
52
52
  next
53
53
  else
54
- stack_tags = tags_to_hashes(get_stack_tags(stack))
55
- stack_tags['TemplateVersion'] = stack_tags['TemplateVersion'].to_i + 1
56
-
54
+ stack_parameters = get_stack_parameters(stack)
55
+ stack_parameters = update_stack_parameters(stack_parameters, "AMIID", new_ami_id)
57
56
  if stack.include?('batch')
58
- stack_parameters = update_stack_parameters(get_stack_parameters(stack),
59
- [
60
- { parameter_key: 'AMIID', parameter_value: new_ami_id },
61
- { parameter_key: 'TemplateVersion', parameter_value: stack_tags['TemplateVersion'].to_s }
62
- ]
63
- )
64
57
  if stack.include?('offsite-backups')
65
58
  stack_template = File.read("./cloudformation/stacks/batch/compute-environment-offsite-backups.yml")
66
59
  else
67
60
  stack_template = File.read("./cloudformation/stacks/batch/compute-environment.yml")
68
61
  end
69
62
  else
70
- stack_parameters = update_stack_parameters(get_stack_parameters(stack),
71
- [
72
- { parameter_key: 'AMIID', parameter_value: new_ami_id },
73
- { parameter_key: 'DesiredCapacity', parameter_value: get_desired_capacity(stack).to_s },
74
- { parameter_key: 'TemplateVersion', parameter_value: stack_tags['TemplateVersion'].to_s }
75
- ]
76
- )
63
+ stack_parameters = update_stack_parameters(stack_parameters, "DesiredCapacity", get_desired_capacity(stack).to_s)
77
64
  stack_template = File.read("./cloudformation/stacks/asg/#{stack.to_s.split("/")[1]}.yml")
78
65
  end
79
- update_stack(stack, stack_template, stack_parameters, hashes_to_tags(stack_tags))
66
+ update_stack(stack, stack_template, stack_parameters)
80
67
  end
81
68
  end
82
69
 
@@ -120,10 +107,11 @@ class TwigUpdateAmi
120
107
  old_values.uniq
121
108
  end
122
109
 
123
- def update_stack_parameters(stack_parameters, new_parameters)
124
- new_parameters.each do |new_param|
125
- stack_parameters.reject{ |k| k["parameter_key"] == new_param["parameter_key"] }
126
- stack_parameters.push(new_param)
110
+ def update_stack_parameters(stack_parameters, key, value)
111
+ stack_parameters.each do |param|
112
+ if param.parameter_key == key
113
+ param.parameter_value = value
114
+ end
127
115
  end
128
116
  stack_parameters
129
117
  end
@@ -143,7 +131,7 @@ class TwigUpdateAmi
143
131
  def get_desired_capacity(stack_name)
144
132
  stack_outputs = get_stack_outputs(stack_name)
145
133
  stack_outputs.each do |out|
146
- if out.export_name.include?('EC2Fleet') or out.export_name.include?('AutoScalingGroup')
134
+ if out.export_name.include?('EC2Fleet') or out.export_name.include?('AutoScalingGroup') or out.export_name.include?('NodeGroup')
147
135
  return get_autoscaling_capacity(out.output_value)
148
136
  end
149
137
  end
@@ -474,21 +474,4 @@ module PrimaAwsClient
474
474
  resp = ec2_client.describe_spot_fleet_requests(spot_fleet_request_ids: [fleet_arn])
475
475
  resp.spot_fleet_request_configs[0].spot_fleet_request_config.target_capacity
476
476
  end
477
-
478
- def hashes_to_tags(hashes)
479
- tags = []
480
- hkeys = hashes.keys
481
- hkeys.each do |hkey|
482
- tags.insert(0, { key: hkey, value: hashes[hkey].to_s })
483
- end
484
- tags
485
- end
486
-
487
- def tags_to_hashes(tags)
488
- hash = Hash.new
489
- tags.each do |tags_obj|
490
- hash[tags_obj.key] = tags_obj.value
491
- end
492
- hash
493
- end
494
477
  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: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matteo Giachino