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
|
module Fog
module Parsers
module AWS
module ECS
require 'fog/aws/parsers/ecs/base'
class DescribeClusters < Fog::Parsers::AWS::ECS::Base
def reset
super
@result = 'DescribeClustersResult'
@response[@result] = {}
@contexts = %w(failures clusters)
@context = []
@clusters = []
@failures = []
@cluster = {}
@failure = {}
end
def start_element(name, attrs = [])
super
if @contexts.include?(name)
@context.push(name)
end
end
def end_element(name)
super
case name
when 'clusterName', 'clusterArn', 'status'
@cluster[name] = value
when 'arn', 'reason'
@failure[name] = value
when 'member'
case @context.last
when 'clusters'
@clusters << @cluster unless @cluster.empty?
@cluster = {}
when 'failures'
@failures << @failure unless @failure.empty?
@failure = {}
end
when 'clusters'
@response[@result][name] = @clusters
@context.pop
when 'failures'
@response[@result][name] = @failures
@context.pop
end
end
end
end
end
end
end
|