pass job object instead of id.

This commit is contained in:
Patrick Jentsch 2019-08-12 19:34:41 +02:00
parent a5687a3f1b
commit 1fa9cbc586

View File

@ -1,5 +1,3 @@
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import docker
import json
import os
@ -13,14 +11,13 @@ class Swarm:
self.docker = docker.from_env()
def init_app(self, app):
engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
self.Session = sessionmaker(bind=engine)
pass
'''
' Swarm mode is intendet to run containers which serve a non terminating
' service like a webserver. For processing an occuring job it is necessary
' to use a one-shot container, which stops after the wrapped job process is
' completly executed. In order to run these one-shot containers in Swarm
' to use an one-shot container, which stops after the wrapped job process
' is completly executed. In order to run these one-shot containers in Swarm
' mode, the following run method is implemented analog to the presented
' implementation in Alex Ellis' blog post "One-shot containers on Docker
' Swarm"¹.
@ -28,13 +25,10 @@ class Swarm:
' ¹ https://blog.alexellis.io/containers-on-swarm/
'''
def run(self, job_id):
def run(self, job):
'''
Input is a job id.
Input is a job.
'''
from .models import Job
session = self.Session()
job = session.query(Job).filter_by(id=job_id).first()
# Prepare argument values needed for the service creation.
service_args = json.loads(job.service_args)
_command = (job.service