1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
fog--fog-aws/lib/fog/aws/parsers/ecs/task.rb
2015-06-05 21:39:54 -03:00

77 lines
2.4 KiB
Ruby

module Fog
module Parsers
module AWS
module ECS
require 'fog/aws/parsers/ecs/base'
class Task < Fog::Parsers::AWS::ECS::Base
def start_element(name, attrs = [])
super
if @contexts.include?(name)
@context.push(name)
end
end
def end_element(name)
super
case name
when 'containerOverrides'
@task['overrides'] ||= {}
@task['overrides'][name] = @container_overrides
@context.pop
when 'task'
@response[@result][name] = @task
when *@contexts
@context.pop
when 'member'
case @context.last
when 'tasks'
@response[@result]['tasks'] << @task
@task = {}
when 'containers'
@task['containers'] ||= []
@task['containers'] << @container
@container = {}
when 'networkBindings'
@container['networkBindings'] ||= []
@container['networkBindings'] << @net_binding
@net_binding = {}
when 'failures'
@response[@result]['failures'] << @failure
@failure = {}
end
when 'clusterArn', 'desiredStatus', 'startedBy', 'containerInstanceArn', 'taskDefinitionArn'
@task[name] = value
when 'taskArn', 'lastStatus'
case @context.last
when 'tasks'
@task[name] = value
when 'containers'
@container[name] = value
end
when 'containerArn'
@container[name] = value
when 'exitCode'
@container[name] = value.to_i
when 'name'
case @context.last
when 'containers'
@container[name] = value
when 'containerOverrides'
@container_overrides << value
end
when 'networkBindings'
@container[name] = @net_bindings
when 'bindIP'
@net_binding[name] = value
when 'hostPort', 'containerPort'
@net_binding[name] = value.to_i
when 'arn', 'reason'
@failure[name] = value
end
end
end
end
end
end
end