From 42fb4335d21f1bbdd00acd0cf1bcbad3867b68f6 Mon Sep 17 00:00:00 2001 From: liorchen Date: Wed, 24 May 2017 18:25:46 +0300 Subject: [PATCH 1/3] Added memory reservation for ecs --- container_transform/compose.py | 6 ++++++ container_transform/ecs.py | 6 ++++++ container_transform/schema.py | 29 ++++++++++++++++++++++++++++- container_transform/transformer.py | 9 +++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) diff --git a/container_transform/compose.py b/container_transform/compose.py index a16b28e..1fef3bf 100644 --- a/container_transform/compose.py +++ b/container_transform/compose.py @@ -354,3 +354,9 @@ def ingest_privileged(self, privileged): def emit_privileged(self, privileged): return privileged + + def emit_memory_reserve(self, memory_reserve): + return self.emit_memory(memory_reserve) + + def ingest_memory_reserve(self, memory_reserve): + return self.ingest_memory(memory_reserve) diff --git a/container_transform/ecs.py b/container_transform/ecs.py index 72a8768..3ea29ec 100644 --- a/container_transform/ecs.py +++ b/container_transform/ecs.py @@ -293,3 +293,9 @@ def emit_logging(self, logging): data['logDriver'] = data.get('driver') del data['driver'] return logging + + def emit_memory_reserve(self, memory_reserve): + return self.emit_memory(memory_reserve) + + def ingest_memory_reserve(self, memory_reserve): + return self.ingest_memory(memory_reserve) diff --git a/container_transform/schema.py b/container_transform/schema.py index e7bf7de..b5f703a 100644 --- a/container_transform/schema.py +++ b/container_transform/schema.py @@ -113,7 +113,7 @@ class OutputTransformationTypes(Enum): 'memory': { TransformationTypes.ECS.value: { 'name': 'memory', - 'required': True + 'required': False }, TransformationTypes.COMPOSE.value: { 'name': 'mem_limit', @@ -731,6 +731,33 @@ class OutputTransformationTypes(Enum): 'required': False, }, }, + 'memory_reserve': { + TransformationTypes.ECS.value: { + 'name': "memoryReservation", + 'required': False + }, + TransformationTypes.COMPOSE.value: { + 'name': "mem_reservation", + 'required': False, + }, + TransformationTypes.SYSTEMD.value: { + 'name': None, + 'required': False, + }, + TransformationTypes.MARATHON.value: { + 'name': 'fetch', + 'required': False, + }, + TransformationTypes.CHRONOS.value: { + 'name': 'uris', + 'required': False, + }, + TransformationTypes.KUBERNETES.value: { + 'name': None, + 'required': False, + }, + }, + # TODO create an entry for forcePullImage # TODO create an entry for healthChecks # TODO create an entry for replicas/instances diff --git a/container_transform/transformer.py b/container_transform/transformer.py index 28c8a19..979716a 100644 --- a/container_transform/transformer.py +++ b/container_transform/transformer.py @@ -8,6 +8,7 @@ 'name': str, 'cpu': int, # out of 1024 'memory': int, # in bytes + 'mem_reservation': int, # in bytes 'links': list, # This is universal across formats 'logging': { # See compose options @@ -271,3 +272,11 @@ def ingest_volumes(self, volumes): @abstractmethod def emit_volumes(self, volumes): raise NotImplementedError + + @abstractmethod + def emit_memory_reserve(self, memory_reserve): + raise NotImplementedError + + @abstractmethod + def ingest_memory_reserve(self, memory_reserve): + raise NotImplementedError From 0f7b9652c8f7605293e78af15da587a09d61f696 Mon Sep 17 00:00:00 2001 From: liorchen Date: Thu, 25 May 2017 08:19:42 +0300 Subject: [PATCH 2/3] removed abstract method decorator --- container_transform/transformer.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/container_transform/transformer.py b/container_transform/transformer.py index 979716a..128323a 100644 --- a/container_transform/transformer.py +++ b/container_transform/transformer.py @@ -217,6 +217,12 @@ def ingest_fetch(self, fetch): def emit_fetch(self, fetch): return fetch + def emit_memory_reserve(self, memory_reserve): + raise memory_reserve + + def ingest_memory_reserve(self, memory_reserve): + raise memory_reserve + @abstractmethod def ingest_port_mappings(self, port_mappings): raise NotImplementedError @@ -273,10 +279,3 @@ def ingest_volumes(self, volumes): def emit_volumes(self, volumes): raise NotImplementedError - @abstractmethod - def emit_memory_reserve(self, memory_reserve): - raise NotImplementedError - - @abstractmethod - def ingest_memory_reserve(self, memory_reserve): - raise NotImplementedError From c75e5f8dd246deb1a646da1fa26c500d3c87b9d2 Mon Sep 17 00:00:00 2001 From: liorchen Date: Thu, 25 May 2017 08:25:42 +0300 Subject: [PATCH 3/3] return instead of raise :) --- container_transform/transformer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/container_transform/transformer.py b/container_transform/transformer.py index 128323a..dea66f3 100644 --- a/container_transform/transformer.py +++ b/container_transform/transformer.py @@ -218,10 +218,10 @@ def emit_fetch(self, fetch): return fetch def emit_memory_reserve(self, memory_reserve): - raise memory_reserve + return memory_reserve def ingest_memory_reserve(self, memory_reserve): - raise memory_reserve + return memory_reserve @abstractmethod def ingest_port_mappings(self, port_mappings):