mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 04:12:45 +00:00 
			
		
		
		
	pass job object instead of id.
This commit is contained in:
		
							
								
								
									
										16
									
								
								app/swarm.py
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								app/swarm.py
									
									
									
									
									
								
							@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user