def job_start(self, params):
        queue = QueueCache.get(params['destination'], params['queue'],
                               params.get('setup_runtime') or None,
                               params.get('need_runtime') or None)

        # First, check if job already exists
        try:
            with ServerLogger.hide_output():
                queue.status(params['job_id'])
        except (tej.JobNotFound, tej.QueueDoesntExist):
            pass
        else:
            return params

        # Alright, submit a new job
        directory = self.interpreter.filePool.create_directory(
                prefix='vt_tmp_shelljob_').name
        # We use io.open() here because we could be writing scripts on Windows
        # before uploading them to a POSIX server
        source = urllib.unquote(self.get_input('source'))
        if isinstance(source, bytes):
            kwargs = {'mode': 'wb'}
        else:
            kwargs = {'mode': 'w', 'newline': '\n'}
        with io.open(os.path.join(directory, 'start.sh'),
                     **kwargs) as fp:
            fp.write(source)

        queue.submit(params['job_id'], directory)

        return params
Creates a temporary job with the given source, upload and submit it.
dataset/ETHPy150Open VisTrails/VisTrails/vistrails/packages/tej/init.py/SubmitShellJob.job_start