diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-04 02:54:44 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-04 02:54:44 +0200 |
| commit | 2f22fd5e4a558ed9b2379565be88b9d1e1b9b7c5 (patch) | |
| tree | 4a66cae0cc816bf01949b3076fbb082a460d47cb /app/relay | |
| parent | 9871cd35c31e77fac9ed484f80783e3267573016 (diff) | |
instructing server to curl files into the database/s3
Diffstat (limited to 'app/relay')
| -rw-r--r-- | app/relay/remote.js | 12 | ||||
| -rw-r--r-- | app/relay/runner.js | 29 |
2 files changed, 38 insertions, 3 deletions
diff --git a/app/relay/remote.js b/app/relay/remote.js index 4da9200..252258f 100644 --- a/app/relay/remote.js +++ b/app/relay/remote.js @@ -87,7 +87,7 @@ remote.on('system', (data) => { }) break case 'list_directory': - runner.list_directory(data.payload, (files) => { + runner.list_directory(data.payload, files => { remote.emit('system_res', { type: 'list_directory', dir: data.payload, @@ -96,6 +96,16 @@ remote.on('system', (data) => { }) }) break + case 'upload_file': + runner.upload_file(data.payload, (error, stdout, stderr) => { + remote.emit('system_res', { + type: 'upload_file', + query: data.payload, + uuid: data.uuid, + stdout, + }) + }) + break case 'get_status': remote.emit('system_res', { type: 'relay_status', diff --git a/app/relay/runner.js b/app/relay/runner.js index 741ef8a..4762045 100644 --- a/app/relay/runner.js +++ b/app/relay/runner.js @@ -56,6 +56,30 @@ function clear_task(is_gpu, task){ } } +function sanitize_path(f){ + return f.replace(/^\//,'').replace(/\.\./, '') +} + +export function upload_file(task, cb) { + const module = modules[task.module] + const filepath = path.join(module.cwd, sanitize_path(task.path), sanitize_path(task.filename)) + const params = [ + '-F', 'module=' + task.module, + '-F', 'activity=' + task.activity, + '-F', 'generated=' + (String(task.generated) === 'true'), + '-F', 'processed=' + (String(task.processed) === 'true'), + '-F', "file=@" + filepath, + process.env.API_REMOTE + '/api/folder/' + task.folder_id + '/upload/', + ] + console.log(params) + execFile('curl', params, cb) + // curl \ + // -F "module=samplernn" \ + // -F "activity=train" \ + // -F "file=@woods1.jpg" \ + // localhost:7013/api/folder/1/upload/ +} + export function status () { return { cpu: serialize_task(state.current_cpu_task), @@ -143,7 +167,8 @@ export function run_script(task, cb) { cb("") } const module = modules[task.module] - const { activity, interpreter, params } = build_params(module, task) + const activity = module.activities[task.activity] + const { interpreter, params } = build_params(module, activity, task) if (! interpreter) return { type: 'error', error: "No such interpreter: " + activity.interpreter } if (! activity.isScript) return { type: 'error', error: "Not a script: " + task.module } @@ -163,7 +188,7 @@ export function run_task(task, preempt, watch){ } export function run_task_with_activity(task, module, activity, preempt, watch) { - const { interpreter, params } = build_params(module, task) + const { interpreter, params } = build_params(module, activity, task) if (! interpreter) return { type: 'error', error: "No such interpreter: " + activity.interpreter } if (interpreter.gpu && state.current_gpu_task.status !== 'IDLE') { |
