1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
module Fog
module Parsers
module AWS
module Elasticache
require 'fog/aws/parsers/elasticache/base'
class EngineDefaultsParser < Base
def reset
super
reset_engine_defaults
end
def reset_engine_defaults
@engine_defaults = {
'CacheNodeTypeSpecificParameters' => [],
'Parameters' => [],
}
end
def start_element(name, attrs = [])
case name
when 'CacheNodeTypeSpecificParameter', 'Parameter'
@parameter = {}
when 'CacheNodeTypeSpecificValues'
@parameter[name] = []
when 'CacheNodeTypeSpecificValue'
@node_specific_value = {}
else
super
end
end
def end_element(name)
case name
when 'CacheParameterGroupFamily'
@engine_defaults[name] = value
when 'CacheNodeTypeSpecificParameter', 'Parameter'
if not @parameter.empty?
@engine_defaults["#{name}s"] << @parameter
end
when 'AllowedValues', 'DataType', 'Description', 'IsModifiable',
'MinimumEngineVersion', 'ParameterName', 'ParameterValue', 'Source'
@parameter[name] = value
when 'CacheNodeType', 'Value'
@node_specific_value[name] = value
when 'CacheNodeTypeSpecificValue'
if not @node_specific_value.empty?
@parameter["#{name}s"] << @node_specific_value
end
else
super
end
end
end
end
end
end
end
|