import sys

import subprocess

from .base import Base
from .docker_installer import Docker_installer

class Stoper(Base):

    def preload(self):
        with Docker_installer() as run:
            pass

    def postload(self):
        print (f'\n\nПроизвожу остановку сервисов.\n\n############\n#### ВНИМАНИЕ: НЕ ОСТАНАВЛИВАЙТЕ ПРОЦЕСС\n############\n\n');

        command = [f'{sys.path[0]}/runtime/docker-plugins/docker-compose', '-f', f'{sys.path[0]}/template.yaml', 'down']
        return_code, stdout, stderr = self.subprocess(command, fd_stderr=sys.stdout)
        if return_code != 0:
            self.logger.error(f'При попытке запуска команды ({command}) произошли ошибки')
            for err in stderr: self.logger.error(err) if 'error' in err.lower() else self.logger.info(err)
            self.msgbox(f'При остановке сервисов произошли ошибки.')
        else:
            for err in stderr: self.logger.debug(err)
            self.logger.info('Docker Compose Plugin завершился без ошибок.')
            self.msgbox(f'Сервисы продуктов Р7-офис остановлены.');

#        output = subprocess.Popen(['docker', 'compose', '-f', f'{sys.path[0]}/template.yaml', 'down', '--remove-orphans'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.read();
#        self.form.msgbox(output);
#        self.form.run("infobox", output, extra_args=["--scrolltext"]).returncode
