Sha256: 447109acfe43c5d5f5579e51ab5079ddf6700d664a297f3752822ad247d41bb1
Contents?: true
Size: 1.86 KB
Versions: 1
Compression:
Stored size: 1.86 KB
Contents
# frozen_string_literal: true module Hako module Schedulers class EcsDefinitionComparator def initialize(expected_container) @expected_container = expected_container end CONTAINER_KEYS = %i[image cpu memory links docker_labels].freeze PORT_MAPPING_KEYS = %i[container_port host_port protocol].freeze ENVIRONMENT_KEYS = %i[name value].freeze MOUNT_POINT_KEYS = %i[source_volume container_path read_only].freeze def different?(actual_container) unless actual_container return true end if different_members?(@expected_container, actual_container, CONTAINER_KEYS) return true end if @expected_container[:port_mappings].size != actual_container.port_mappings.size return true end @expected_container[:port_mappings].zip(actual_container.port_mappings) do |e, a| if different_members?(e, a, PORT_MAPPING_KEYS) return true end end if @expected_container[:environment].size != actual_container.environment.size return true end @expected_container[:environment].zip(actual_container.environment) do |e, a| if different_members?(e, a, ENVIRONMENT_KEYS) return true end end if @expected_container[:mount_points].size != actual_container.mount_points.size return true end @expected_container[:mount_points].zip(actual_container.mount_points) do |e, a| if different_members?(e, a, MOUNT_POINT_KEYS) return true end end false end private def different_members?(expected, actual, keys) keys.each do |key| if actual.public_send(key) != expected[key] return true end end false end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hako-0.11.1 | lib/hako/schedulers/ecs_definition_comparator.rb |