mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
83 lines
2.6 KiB
Ruby
83 lines
2.6 KiB
Ruby
|
module Fog
|
||
|
module Parsers
|
||
|
module AWS
|
||
|
module ECS
|
||
|
require 'fog/aws/parsers/ecs/base'
|
||
|
|
||
|
class Service < 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 *@contexts
|
||
|
@context.pop
|
||
|
when 'member'
|
||
|
case @context.last
|
||
|
when 'services'
|
||
|
@response[@result]['services'] << @service
|
||
|
@service = {}
|
||
|
when 'loadBalancers'
|
||
|
@service['loadBalancers'] ||= []
|
||
|
@service['loadBalancers'] << @load_balancer
|
||
|
@load_balancer = {}
|
||
|
when 'events'
|
||
|
@service['events'] ||= []
|
||
|
@service['events'] << @event
|
||
|
@event = {}
|
||
|
when 'deployments'
|
||
|
@service['deployments'] ||= []
|
||
|
@service['deployments'] << @deployment
|
||
|
@deployment = {}
|
||
|
end
|
||
|
when 'clusterArn', 'roleArn', 'serviceArn', 'serviceName'
|
||
|
@service[name] = value
|
||
|
when 'taskDefinition', 'status'
|
||
|
case @context.last
|
||
|
when 'service', 'services'
|
||
|
@service[name] = value
|
||
|
when 'deployments'
|
||
|
@deployment[name] = value
|
||
|
end
|
||
|
when 'desiredCount', 'pendingCount', 'runningCount'
|
||
|
case @context.last
|
||
|
when 'service', 'services'
|
||
|
@service[name] = value.to_i
|
||
|
when 'deployments'
|
||
|
@deployment[name] = value.to_i
|
||
|
end
|
||
|
when 'loadBalancerName', 'containerName'
|
||
|
@load_balancer[name] = value
|
||
|
when 'containerPort'
|
||
|
@load_balancer[name] = value.to_i
|
||
|
when 'createdAt'
|
||
|
case @context.last
|
||
|
when 'events'
|
||
|
@event[name] = Time.parse(value)
|
||
|
when 'deployments'
|
||
|
@deployment[name] = Time.parse(value)
|
||
|
end
|
||
|
when 'id'
|
||
|
case @context.last
|
||
|
when 'events'
|
||
|
@event[name] = value
|
||
|
when 'deployments'
|
||
|
@deployment[name] = value
|
||
|
end
|
||
|
when 'message'
|
||
|
@event[name] = value
|
||
|
when 'updatedAt'
|
||
|
@deployment[name] = Time.parse(value)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|