Class: Hako::Schedulers::EcsDefinitionComparator
- Inherits:
-
Object
- Object
- Hako::Schedulers::EcsDefinitionComparator
- Defined in:
- lib/hako/schedulers/ecs_definition_comparator.rb
Instance Method Summary collapse
- #capabilities_schema ⇒ Object private
- #definition_schema ⇒ Object private
- #depends_on_schema ⇒ Object private
- #device_schema ⇒ Object private
- #devices_schema ⇒ Object private
- #different?(actual_container) ⇒ Boolean
- #environment_schema ⇒ Object private
- #extra_host_schema ⇒ Object private
- #extra_hosts_schema ⇒ Object private
- #health_check_schema ⇒ Object private
-
#initialize(expected_container) ⇒ EcsDefinitionComparator
constructor
A new instance of EcsDefinitionComparator.
- #linux_parameters_schema ⇒ Object private
- #log_configuration_schema ⇒ Object private
- #mount_point_schema ⇒ Object private
- #port_mapping_schema ⇒ Object private
- #repository_credentials_schema ⇒ Object private
- #secrets_schema ⇒ Object private
- #system_control_schema ⇒ Object private
- #system_controls_schema ⇒ Object private
- #tmpfs_schema ⇒ Object private
- #ulimit_schema ⇒ Object private
- #ulimits_schema ⇒ Object private
- #volumes_from_schema ⇒ Object private
Constructor Details
#initialize(expected_container) ⇒ EcsDefinitionComparator
Returns a new instance of EcsDefinitionComparator.
9 10 11 12 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 9 def initialize(expected_container) @expected_container = expected_container @schema = definition_schema end |
Instance Method Details
#capabilities_schema ⇒ Object (private)
122 123 124 125 126 127 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 122 def capabilities_schema Schema::Structure.new.tap do |struct| struct.member(:add, Schema::UnorderedArray.new(Schema::String.new)) struct.member(:drop, Schema::UnorderedArray.new(Schema::String.new)) end end |
#definition_schema ⇒ Object (private)
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 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 22 def definition_schema Schema::Structure.new.tap do |struct| struct.member(:image, Schema::String.new) struct.member(:cpu, Schema::Integer.new) struct.member(:memory, Schema::Nullable.new(Schema::Integer.new)) struct.member(:memory_reservation, Schema::Nullable.new(Schema::Integer.new)) struct.member(:links, Schema::UnorderedArray.new(Schema::String.new)) struct.member(:essential, Schema::Boolean.new) struct.member(:port_mappings, Schema::UnorderedArray.new(port_mapping_schema)) struct.member(:environment, Schema::UnorderedArray.new(environment_schema)) struct.member(:secrets, Schema::Nullable.new(Schema::UnorderedArray.new(secrets_schema))) struct.member(:docker_labels, Schema::Table.new(Schema::String.new, Schema::String.new)) struct.member(:mount_points, Schema::UnorderedArray.new(mount_point_schema)) struct.member(:entry_point, Schema::Nullable.new(Schema::OrderedArray.new(Schema::String.new))) struct.member(:command, Schema::Nullable.new(Schema::OrderedArray.new(Schema::String.new))) struct.member(:depends_on, Schema::Nullable.new(Schema::UnorderedArray.new(depends_on_schema))) struct.member(:volumes_from, Schema::UnorderedArray.new(volumes_from_schema)) struct.member(:user, Schema::Nullable.new(Schema::String.new)) struct.member(:privileged, Schema::Boolean.new) struct.member(:log_configuration, Schema::Nullable.new(log_configuration_schema)) struct.member(:health_check, Schema::Nullable.new(health_check_schema)) struct.member(:ulimits, Schema::Nullable.new(ulimits_schema)) struct.member(:extra_hosts, Schema::Nullable.new(extra_hosts_schema)) struct.member(:linux_parameters, Schema::Nullable.new(linux_parameters_schema)) struct.member(:readonly_root_filesystem, Schema::Nullable.new(Schema::Boolean.new)) struct.member(:docker_security_options, Schema::Nullable.new(Schema::UnorderedArray.new(Schema::String.new))) struct.member(:system_controls, Schema::Nullable.new(system_controls_schema)) struct.member(:repository_credentials, Schema::Nullable.new(repository_credentials_schema)) end end |
#depends_on_schema ⇒ Object (private)
169 170 171 172 173 174 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 169 def depends_on_schema Schema::Structure.new.tap do |struct| struct.member(:container_name, Schema::String.new) struct.member(:condition, Schema::String.new) end end |
#device_schema ⇒ Object (private)
133 134 135 136 137 138 139 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 133 def device_schema Schema::Structure.new.tap do |struct| struct.member(:host_path, Schema::String.new) struct.member(:container_path, Schema::Nullable.new(Schema::String.new)) struct.member(:permissions, Schema::UnorderedArray.new(Schema::String.new)) end end |
#devices_schema ⇒ Object (private)
129 130 131 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 129 def devices_schema Schema::UnorderedArray.new(device_schema) end |
#different?(actual_container) ⇒ Boolean
16 17 18 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 16 def different?(actual_container) !@schema.same?(actual_container.to_h, @expected_container) end |
#environment_schema ⇒ Object (private)
61 62 63 64 65 66 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 61 def environment_schema Schema::Structure.new.tap do |struct| struct.member(:name, Schema::String.new) struct.member(:value, Schema::String.new) end end |
#extra_host_schema ⇒ Object (private)
155 156 157 158 159 160 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 155 def extra_host_schema Schema::Structure.new.tap do |struct| struct.member(:hostname, Schema::String.new) struct.member(:ip_address, Schema::String.new) end end |
#extra_hosts_schema ⇒ Object (private)
151 152 153 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 151 def extra_hosts_schema Schema::UnorderedArray.new(extra_host_schema) end |
#health_check_schema ⇒ Object (private)
90 91 92 93 94 95 96 97 98 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 90 def health_check_schema Schema::Structure.new.tap do |struct| struct.member(:command, Schema::OrderedArray.new(Schema::String.new)) struct.member(:interval, Schema::Integer.new) struct.member(:timeout, Schema::Integer.new) struct.member(:retries, Schema::Integer.new) struct.member(:start_period, Schema::Integer.new) end end |
#linux_parameters_schema ⇒ Object (private)
112 113 114 115 116 117 118 119 120 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 112 def linux_parameters_schema Schema::Structure.new.tap do |struct| struct.member(:capabilities, Schema::Nullable.new(capabilities_schema)) struct.member(:devices, Schema::Nullable.new(devices_schema)) struct.member(:init_process_enabled, Schema::Nullable.new(Schema::Boolean.new)) struct.member(:shared_memory_size, Schema::Nullable.new(Schema::Integer.new)) struct.member(:tmpfs, Schema::Nullable.new(tmpfs_schema)) end end |
#log_configuration_schema ⇒ Object (private)
83 84 85 86 87 88 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 83 def log_configuration_schema Schema::Structure.new.tap do |struct| struct.member(:log_driver, Schema::String.new) struct.member(:options, Schema::Table.new(Schema::String.new, Schema::String.new)) end end |
#mount_point_schema ⇒ Object (private)
68 69 70 71 72 73 74 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 68 def mount_point_schema Schema::Structure.new.tap do |struct| struct.member(:source_volume, Schema::String.new) struct.member(:container_path, Schema::String.new) struct.member(:read_only, Schema::Boolean.new) end end |
#port_mapping_schema ⇒ Object (private)
53 54 55 56 57 58 59 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 53 def port_mapping_schema Schema::Structure.new.tap do |struct| struct.member(:container_port, Schema::Integer.new) struct.member(:host_port, Schema::Integer.new) struct.member(:protocol, Schema::String.new) end end |
#repository_credentials_schema ⇒ Object (private)
187 188 189 190 191 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 187 def repository_credentials_schema Schema::Structure.new.tap do |struct| struct.member(:credentials_parameter, Schema::String.new) end end |
#secrets_schema ⇒ Object (private)
162 163 164 165 166 167 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 162 def secrets_schema Schema::Structure.new.tap do |struct| struct.member(:name, Schema::String.new) struct.member(:value_from, Schema::String.new) end end |
#system_control_schema ⇒ Object (private)
180 181 182 183 184 185 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 180 def system_control_schema Schema::Structure.new.tap do |struct| struct.member(:namespace, Schema::String.new) struct.member(:value, Schema::String.new) end end |
#system_controls_schema ⇒ Object (private)
176 177 178 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 176 def system_controls_schema Schema::UnorderedArray.new(system_control_schema) end |
#tmpfs_schema ⇒ Object (private)
141 142 143 144 145 146 147 148 149 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 141 def tmpfs_schema Schema::UnorderedArray.new( Schema::Structure.new.tap do |struct| struct.member(:container_path, Schema::String.new) struct.member(:mount_options, Schema::UnorderedArray.new(Schema::String.new)) struct.member(:size, Schema::Integer.new) end ) end |
#ulimit_schema ⇒ Object (private)
104 105 106 107 108 109 110 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 104 def ulimit_schema Schema::Structure.new.tap do |struct| struct.member(:name, Schema::String.new) struct.member(:hard_limit, Schema::Integer.new) struct.member(:soft_limit, Schema::Integer.new) end end |
#ulimits_schema ⇒ Object (private)
100 101 102 |
# File 'lib/hako/schedulers/ecs_definition_comparator.rb', line 100 def ulimits_schema Schema::UnorderedArray.new(ulimit_schema) end |