X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=qcg%2Fservice.py;h=c69eee04013ac310ff15904871124ff0abd9a24d;hb=f7057f1d6b31506eba169cd9db44f74a34a91f69;hp=15d939c9a95906b15f155101e5f4909c75fbfdf6;hpb=a48622a1086a47a1abc26dcd3d1d05a384eb1e8f;p=qcg-portal.git diff --git a/qcg/service.py b/qcg/service.py index 15d939c..c69eee0 100644 --- a/qcg/service.py +++ b/qcg/service.py @@ -1,19 +1,14 @@ import logging -import os import time from django.db import transaction from django.utils.functional import SimpleLazyObject from django.utils.timezone import now from pyqcg import QCG -from pyqcg.description import JobDescription from pyqcg.service import Registry from pyqcg.utils import Credential, TimePeriod, JobStatus, TaskStatus -from filex.ftp import FTPOperation -from qcg.constants import QCG_DATA_URL from qcg.models import User, Job, Task, Allocation, NodeInfo -from qcg.utils import random_id, chunks logger = logging.getLogger(__name__) @@ -137,46 +132,6 @@ def update_job(job, proxy): elapsed, job.job_id, elapsed_job, job.tasks.count(), elapsed_tasks, elapsed_py) -def make_job_desc(params, proxy): - QCG.start() - desc = JobDescription(Credential(proxy)) - - direct_map = ('env_variables', 'executable', 'arguments', 'note', 'grant', 'hosts', 'properties', 'queue', 'procs', - 'wall_time', 'memory', 'memory_per_slot', 'modules', 'input', 'stage_in', 'native', 'notify', - 'preprocess', 'postprocess', 'persistent') - - for name in direct_map: - if params[name]: - setattr(desc, name, params[name]) - - if params['application']: - desc.set_application(*params['application']) - desc.stage_in += [params['master_file']] - desc.arguments.insert(0, os.path.basename(params['master_file'])) - if params['script']: - ftp = FTPOperation(proxy) - - ftp.mkdir(QCG_DATA_URL, parents=True) - url = os.path.join(QCG_DATA_URL, 'script.{}.sh'.format(random_id())) - ftp.put(url) - - for chunk in chunks(params['script'], 4096): - ftp.stream.put(chunk) - ftp.stream.put(None) - - ftp.wait() - desc.executable = url - if params['nodes']: - desc.set_nodes(*params['nodes']) - if params['reservation']: - desc.set_reservation(params['reservation']) - if params['watch_output']: - desc.set_watch_output(params['watch_output'], params['watch_output_pattern']) - # TODO monitoring - - return desc - - def cancel(obj, proxy): ts = time.time() QCG.start()