48 lines
914 B
Ruby
48 lines
914 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module Kubernetes
|
|
class Pod
|
|
PENDING = 'Pending'
|
|
RUNNING = 'Running'
|
|
SUCCEEDED = 'Succeeded'
|
|
FAILED = 'Failed'
|
|
UNKNOWN = 'Unknown'
|
|
PHASES = [PENDING, RUNNING, SUCCEEDED, FAILED, UNKNOWN].freeze
|
|
|
|
STABLE_TRACK_VALUE = 'stable'
|
|
|
|
def initialize(attributes = {})
|
|
@attributes = attributes
|
|
end
|
|
|
|
def track
|
|
attributes.dig('metadata', 'labels', 'track') || STABLE_TRACK_VALUE
|
|
end
|
|
|
|
def name
|
|
metadata['name'] || metadata['generateName']
|
|
end
|
|
|
|
def stable?
|
|
track == STABLE_TRACK_VALUE
|
|
end
|
|
|
|
def status
|
|
attributes.dig('status', 'phase')
|
|
end
|
|
|
|
def order
|
|
stable? ? 1 : 0
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :attributes
|
|
|
|
def metadata
|
|
attributes.fetch('metadata', {})
|
|
end
|
|
end
|
|
end
|
|
end
|