mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
Merge pull request #190 from evertrue/evertrue/eherot/cache_cluster_security_group_parser
Cache cluster security group parser
This commit is contained in:
commit
feb8aa3785
3 changed files with 32 additions and 5 deletions
|
@ -18,7 +18,8 @@ module Fog
|
||||||
attribute :parameter_group, :aliases => 'CacheParameterGroup'
|
attribute :parameter_group, :aliases => 'CacheParameterGroup'
|
||||||
attribute :pending_values, :aliases => 'PendingModifiedValues'
|
attribute :pending_values, :aliases => 'PendingModifiedValues'
|
||||||
attribute :create_time, :aliases => 'CacheClusterCreateTime', :type => :timestamp
|
attribute :create_time, :aliases => 'CacheClusterCreateTime', :type => :timestamp
|
||||||
attribute :security_groups, :aliases => 'CacheSecurityGroups', :type => :array
|
attribute :cache_security_groups, :aliases => 'CacheSecurityGroups', :type => :array
|
||||||
|
attribute :security_groups, :aliases => 'SecurityGroups', :type => :array
|
||||||
attribute :notification_config, :aliases => 'NotificationConfiguration'
|
attribute :notification_config, :aliases => 'NotificationConfiguration'
|
||||||
attribute :cache_subnet_group_name, :aliases => 'CacheSubnetGroupName'
|
attribute :cache_subnet_group_name, :aliases => 'CacheSubnetGroupName'
|
||||||
attribute :vpc_security_groups, :aliases => 'VpcSecurityGroups', :type => :array
|
attribute :vpc_security_groups, :aliases => 'VpcSecurityGroups', :type => :array
|
||||||
|
|
|
@ -15,17 +15,26 @@ module Fog
|
||||||
'CacheSecurityGroups' => [],
|
'CacheSecurityGroups' => [],
|
||||||
'CacheNodes' => [],
|
'CacheNodes' => [],
|
||||||
'CacheParameterGroup' => {},
|
'CacheParameterGroup' => {},
|
||||||
'ConfigurationEndpoint' => {}
|
'ConfigurationEndpoint' => {},
|
||||||
|
'SecurityGroups' => []
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def start_element(name, attrs = [])
|
def start_element(name, attrs = [])
|
||||||
super
|
super
|
||||||
case name
|
case name
|
||||||
when 'CacheSecurityGroup'; then @security_group = {}
|
when 'CacheSecurityGroup'; then @cache_security_group = {}
|
||||||
when 'CacheNode'; then @cache_node = {}
|
when 'CacheNode'; then @cache_node = {}
|
||||||
when 'PendingModifiedValues'; then @pending_values = {}
|
when 'PendingModifiedValues'; then @pending_values = {}
|
||||||
when 'ConfigurationEndpoint'; then @configuration_endpoint = {}
|
when 'ConfigurationEndpoint'; then @configuration_endpoint = {}
|
||||||
|
when 'SecurityGroups'
|
||||||
|
@in_security_groups = true
|
||||||
|
@security_group_members = []
|
||||||
|
when 'member'
|
||||||
|
if @in_security_groups
|
||||||
|
@in_security_group_member = true
|
||||||
|
@security_group_member = {}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -50,11 +59,17 @@ module Fog
|
||||||
when 'CacheClusterCreateTime'
|
when 'CacheClusterCreateTime'
|
||||||
@cache_cluster[name] = DateTime.parse(value)
|
@cache_cluster[name] = DateTime.parse(value)
|
||||||
when 'CacheSecurityGroup'
|
when 'CacheSecurityGroup'
|
||||||
@cache_cluster["#{name}s"] << @security_group unless @security_group.empty?
|
@cache_cluster["#{name}s"] << @cache_security_group unless @cache_security_group.empty?
|
||||||
when 'ConfigurationEndpoint'
|
when 'ConfigurationEndpoint'
|
||||||
@cache_cluster['ConfigurationEndpoint'] = @configuration_endpoint
|
@cache_cluster['ConfigurationEndpoint'] = @configuration_endpoint
|
||||||
when 'CacheSecurityGroupName', 'Status', 'CacheSubnetGroupName'
|
when 'CacheSecurityGroupName', 'CacheSubnetGroupName'
|
||||||
@cache_cluster[name] = value
|
@cache_cluster[name] = value
|
||||||
|
when 'Status'
|
||||||
|
if @in_security_group_member
|
||||||
|
@security_group_member[name] = value
|
||||||
|
else
|
||||||
|
@cache_cluster[name] = value
|
||||||
|
end
|
||||||
when 'CacheNode'
|
when 'CacheNode'
|
||||||
@cache_cluster["#{name}s"] << @cache_node unless @cache_node.empty?
|
@cache_cluster["#{name}s"] << @cache_node unless @cache_node.empty?
|
||||||
@cache_node = nil
|
@cache_node = nil
|
||||||
|
@ -78,6 +93,16 @@ module Fog
|
||||||
end
|
end
|
||||||
when 'CacheNodeIdsToReboots', 'CacheParameterGroupName', 'ParameterApplyStatus'
|
when 'CacheNodeIdsToReboots', 'CacheParameterGroupName', 'ParameterApplyStatus'
|
||||||
@cache_cluster['CacheParameterGroup'][name] = value
|
@cache_cluster['CacheParameterGroup'][name] = value
|
||||||
|
when 'SecurityGroups'
|
||||||
|
@in_security_groups = false
|
||||||
|
@cache_cluster['SecurityGroups'] = @security_group_members
|
||||||
|
when 'SecurityGroupId'
|
||||||
|
@security_group_member[name] = value if @in_security_group_member
|
||||||
|
when 'member'
|
||||||
|
if @in_security_groups
|
||||||
|
@in_security_group_member = false
|
||||||
|
@security_group_members << @security_group_member
|
||||||
|
end
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|
|
@ -72,6 +72,7 @@ module Fog
|
||||||
'CacheClusterStatus' => 'available',
|
'CacheClusterStatus' => 'available',
|
||||||
'CacheNodes' => create_cache_nodes(id.strip, options[:num_nodes]),
|
'CacheNodes' => create_cache_nodes(id.strip, options[:num_nodes]),
|
||||||
'CacheSecurityGroups' => [],
|
'CacheSecurityGroups' => [],
|
||||||
|
'SecurityGroups' => [],
|
||||||
'CacheParameterGroup' => { 'CacheParameterGroupName' =>
|
'CacheParameterGroup' => { 'CacheParameterGroupName' =>
|
||||||
options[:parameter_group_name] || 'default.memcached1.4' },
|
options[:parameter_group_name] || 'default.memcached1.4' },
|
||||||
'CacheSubnetGroupName' => options[:cache_subnet_group_name],
|
'CacheSubnetGroupName' => options[:cache_subnet_group_name],
|
||||||
|
|
Loading…
Reference in a new issue