Module: References
- Defined in:
- lib/cfn-model/model/references.rb
Overview
this is a placeholder for anything related to resolving references
not sure if we are going to be able to have a useful generic set of code for references yet… in the meantime pile things up here and hope a pattern becomes clear
Class Method Summary collapse
- .is_security_group_id_external(group_id) ⇒ Object
- .resolve_resource_id(reference, attr = nil) ⇒ Object
- .resolve_security_group_id(group_id) ⇒ Object
- .resolve_value(cfn_model, value) ⇒ Object
Class Method Details
.is_security_group_id_external(group_id) ⇒ Object
48 49 50 |
# File 'lib/cfn-model/model/references.rb', line 48 def self.is_security_group_id_external(group_id) resolve_security_group_id(group_id).nil? end |
.resolve_resource_id(reference, attr = nil) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/cfn-model/model/references.rb', line 32 def self.resolve_resource_id(reference, attr = nil) return nil if reference.is_a? String # an imported value can only yield a literal to an external resource vs. referencing something local if !reference['Ref'].nil? reference['Ref'] elsif !reference['Fn::GetAtt'].nil? logical_resource_id_from_get_att reference['Fn::GetAtt'], attr else # anything else will be string manipulation functions # which again leads us back to a string which must be an external resource known out of band # so don't/can't link it up return nil end end |
.resolve_security_group_id(group_id) ⇒ Object
52 53 54 |
# File 'lib/cfn-model/model/references.rb', line 52 def self.resolve_security_group_id(group_id) resolve_resource_id group_id, 'GroupId' end |
.resolve_value(cfn_model, value) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/cfn-model/model/references.rb', line 10 def self.resolve_value(cfn_model, value) if value.is_a? Hash if value.has_key?('Ref') ref_id = value['Ref'] if ref_id.is_a? String if cfn_model.parameters.has_key?(ref_id) return value if cfn_model.parameters[ref_id].synthesized_value.nil? return cfn_model.parameters[ref_id].synthesized_value else return value end else return value end else return value end else return value end end |