from app import db
from flask import current_app
from time import sleep
from .corpus_utils import CheckCorporaMixin
from .job_utils import CheckJobsMixin
import docker


class Daemon(CheckCorporaMixin, CheckJobsMixin):
    def __init__(self):
        self.docker = docker.from_env()
        self.docker.login(
            username=current_app.config['NOPAQUE_DOCKER_REGISTRY_USERNAME'],
            password=current_app.config['NOPAQUE_DOCKER_REGISTRY_PASSWORD'],
            registry=current_app.config['NOPAQUE_DOCKER_REGISTRY']
        )

    def run(self):
        while True:
            try:
                self.check_corpora()
                self.check_jobs()
                db.session.commit()
            except:
                pass
            sleep(1.5)