diff --git a/.deploy/deploy-dev.yaml b/.deploy/deploy-dev.yaml index b7893f6..ede714e 100644 --- a/.deploy/deploy-dev.yaml +++ b/.deploy/deploy-dev.yaml @@ -266,52 +266,6 @@ services: parallelism: 1 order: start-first - docker_cleaner: - image: mathwave/sprint-repo:sprint - networks: - - net - command: ./manage.py docker_cleaner - environment: - DB_HOST: "postgres" - FS_HOST: "storage" - RABBIT_HOST: "rabbitmq" - REDIS_HOST: "redis" - DB_PASSWORD: $DB_PASSWORD - DEBUG: $DEBUG - TELEGRAM_TOKEN: $TELEGRAM_TOKEN - volumes: - - /var/run/docker.sock:/var/run/docker.sock - deploy: - mode: global - restart_policy: - condition: any - update_config: - parallelism: 1 - order: start-first - - redis_worker: - image: mathwave/sprint-repo:sprint - networks: - - net - command: ./manage.py redis_worker - environment: - DB_HOST: "postgres" - FS_HOST: "storage" - RABBIT_HOST: "rabbitmq" - REDIS_HOST: "redis" - DB_PASSWORD: $DB_PASSWORD - DEBUG: $DEBUG - TELEGRAM_TOKEN: $TELEGRAM_TOKEN - volumes: - - /var/run/docker.sock:/var/run/docker.sock - deploy: - mode: replicated - restart_policy: - condition: any - update_config: - parallelism: 1 - order: start-first - file_generator: image: mathwave/sprint-repo:sprint networks: diff --git a/.deploy/deploy-prod.yaml b/.deploy/deploy-prod.yaml index ffca88a..618ab34 100644 --- a/.deploy/deploy-prod.yaml +++ b/.deploy/deploy-prod.yaml @@ -270,52 +270,6 @@ services: parallelism: 1 order: start-first - docker_cleaner: - image: mathwave/sprint-repo:sprint - networks: - - net - command: ./manage.py docker_cleaner - environment: - DB_HOST: "postgres" - FS_HOST: "storage" - RABBIT_HOST: "rabbitmq" - REDIS_HOST: "redis" - DB_PASSWORD: $DB_PASSWORD - DEBUG: $DEBUG - TELEGRAM_TOKEN: $TELEGRAM_TOKEN - volumes: - - /var/run/docker.sock:/var/run/docker.sock - deploy: - mode: global - restart_policy: - condition: any - update_config: - parallelism: 1 - order: start-first - - redis_worker: - image: mathwave/sprint-repo:sprint - networks: - - net - command: ./manage.py redis_worker - environment: - DB_HOST: "postgres" - FS_HOST: "storage" - RABBIT_HOST: "rabbitmq" - REDIS_HOST: "redis" - DB_PASSWORD: $DB_PASSWORD - DEBUG: $DEBUG - TELEGRAM_TOKEN: $TELEGRAM_TOKEN - volumes: - - /var/run/docker.sock:/var/run/docker.sock - deploy: - mode: replicated - restart_policy: - condition: any - update_config: - parallelism: 1 - order: start-first - file_generator: image: mathwave/sprint-repo:sprint networks: diff --git a/SprintLib/testers/DistantTester.py b/SprintLib/testers/DistantTester.py index 0659384..876a77a 100644 --- a/SprintLib/testers/DistantTester.py +++ b/SprintLib/testers/DistantTester.py @@ -27,15 +27,5 @@ class DistantTester(BaseTester): def notify(self): self.request("notify") - def cleanup(self): - self.save_solution() - self.call(f"docker rm --force solution_{self.solution.id}") - self.call(f"docker rm --force solution_{self.solution.id}_checker") - for file in self.solution.task.dockerfiles: - add_name = file.filename[11:] - self.call(f"docker rm --force solution_container_{self.solution.id}_{add_name}") - self.call(f"docker image rm solution_image_{self.solution.id}_{add_name}") - self.call(f"docker network rm solution_network_{self.solution.id}") - def save_progress(self): self.request("save_progress") diff --git a/daemons/management/commands/docker_cleaner.py b/daemons/management/commands/docker_cleaner.py deleted file mode 100644 index cb06e93..0000000 --- a/daemons/management/commands/docker_cleaner.py +++ /dev/null @@ -1,40 +0,0 @@ -from subprocess import call - -from SprintLib.redis import lock, get_redis -from SprintLib.utils import LoopWorker - - -class Command(LoopWorker): - help = "starts docker cleaner" - - @lock("docker") - def go(self): - containers, images, networks = list(), list(), list() - with get_redis() as r: - while r.llen("containers") != 0: - value = r.rpop("containers").decode("utf-8") - return_code = call(f"docker rm --force {value}", shell=True) - if return_code != 0: - containers.append(value) - while r.llen("images") != 0: - value = r.rpop("images").decode("utf-8") - return_code = call(f"docker image rm --force {value}", shell=True) - if return_code != 0: - images.append(value) - while r.llen("networks") != 0: - value = r.rpop("networks").decode("utf-8") - return_code = call(f"docker network rm {value}", shell=True) - if return_code != 0: - networks.append(value) - if containers: - r.lpush("containers", *containers) - if images: - r.lpush("images", *images) - if networks: - r.lpush("networks", *networks) - - def handle(self, *args, **options): - call('docker image rm $(docker images -q mathwave/sprint-repo)', shell=True) - print("Old images removed") - super().handle(*args, **options) - diff --git a/daemons/management/commands/redis_worker.py b/daemons/management/commands/redis_worker.py deleted file mode 100644 index 3b0359f..0000000 --- a/daemons/management/commands/redis_worker.py +++ /dev/null @@ -1,29 +0,0 @@ -from SprintLib.queue import MessagingSupport -from SprintLib.redis import lock, get_redis - - -class Command(MessagingSupport): - help = "Starts redis worker" - queue_name = "redis" - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.handlers = { - "docker": self.docker_handler - } - - @lock("docker") - def docker_handler(self, payload): - key = payload["key"] - value = payload["value"] - with get_redis() as r: - r.lpush(key, value) - - def process(self, payload: dict): - action = payload.get("action") - if action is None: - raise ValueError("No action field in message") - handler = self.handlers.get(action) - if handler is None: - raise ValueError(f"No handler for action: {action}") - handler(payload)