prima-twig 1.2.1 → 1.2.2

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
  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