Add support for calculating resource requirements for cloudforamtion container definitions
Cloudformation user capitalized resource names, while boto does not Undo whitespace changes
This commit is contained in:
parent
1f46543ae2
commit
9b281f63f6
@ -502,12 +502,27 @@ class EC2ContainerServiceBackend(BaseBackend):
|
|||||||
def _calculate_task_resource_requirements(task_definition):
|
def _calculate_task_resource_requirements(task_definition):
|
||||||
resource_requirements = {"CPU": 0, "MEMORY": 0, "PORTS": [], "PORTS_UDP": []}
|
resource_requirements = {"CPU": 0, "MEMORY": 0, "PORTS": [], "PORTS_UDP": []}
|
||||||
for container_definition in task_definition.container_definitions:
|
for container_definition in task_definition.container_definitions:
|
||||||
resource_requirements["CPU"] += container_definition.get('cpu', 0)
|
# cloudformation uses capitalized properties, while boto uses all lower case
|
||||||
resource_requirements["MEMORY"] += container_definition.get(
|
|
||||||
"memory", container_definition.get('memoryReservation'))
|
# CPU is optional
|
||||||
for port_mapping in container_definition.get("portMappings", []):
|
resource_requirements["CPU"] += container_definition.get('cpu',
|
||||||
|
container_definition.get('Cpu', 0))
|
||||||
|
|
||||||
|
# either memory or memory reservation must be provided
|
||||||
|
if 'Memory' in container_definition or 'MemoryReservation' in container_definition:
|
||||||
|
resource_requirements["MEMORY"] += container_definition.get(
|
||||||
|
"Memory", container_definition.get('MemoryReservation'))
|
||||||
|
else:
|
||||||
|
resource_requirements["MEMORY"] += container_definition.get(
|
||||||
|
"memory", container_definition.get('memoryReservation'))
|
||||||
|
|
||||||
|
port_mapping_key = 'PortMappings' if 'PortMappings' in container_definition else 'portMappings'
|
||||||
|
for port_mapping in container_definition.get(port_mapping_key, []):
|
||||||
if 'hostPort' in port_mapping:
|
if 'hostPort' in port_mapping:
|
||||||
resource_requirements["PORTS"].append(port_mapping.get('hostPort'))
|
resource_requirements["PORTS"].append(port_mapping.get('hostPort'))
|
||||||
|
elif 'HostPort' in port_mapping:
|
||||||
|
resource_requirements["PORTS"].append(port_mapping.get('HostPort'))
|
||||||
|
|
||||||
return resource_requirements
|
return resource_requirements
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
Loading…
Reference in New Issue
Block a user