module TFW::AwsSgWorkaround
This module is a workaround the issue that when using json some fields that are optional become required github.com/hashicorp/terraform/issues/23347
Public Instance Methods
fill_fields(obj)
click to toggle source
# File lib/tfw/aws_sg_workaround.rb, line 30 def fill_fields(obj) obj['description'] = '' unless obj.key? 'description' obj['security_groups'] = [] unless obj.key? 'security_groups' obj['self'] = false unless obj.key? 'self' obj['ipv6_cidr_blocks'] = [] unless obj.key? 'ipv6_cidr_blocks' obj['prefix_list_ids'] = [] unless obj.key? 'prefix_list_ids' end
fix(stack_json)
click to toggle source
# File lib/tfw/aws_sg_workaround.rb, line 9 def fix(stack_json) stack = JSON.parse stack_json return stack.to_json unless stack.key? 'resource' r = stack['resource'] return stack.to_json unless r.key? 'aws_security_group' asg = r['aws_security_group'] asg.each do |_, sg| replace_and_fill sg, 'egress' if sg.key? 'egress' replace_and_fill sg, 'ingress' if sg.key? 'ingress' end stack.to_json end
replace_and_fill(obj, key)
click to toggle source
# File lib/tfw/aws_sg_workaround.rb, line 24 def replace_and_fill(obj, key) backup = obj[key] fill_fields(backup) obj[key] = [backup] end