{% extends "base.html" %} {% block title %}Dataset {{ dataset_num }} - IceProd{% end %} {% block description %}{{ dataset["description"] }}{% end %} {% block sidebar %}

Submit New Dataset

Submit Dataset like Current

{% end %} {% block page_title %}Dataset {{ dataset_num }} Details{% end %} {% block body %}
View Config Edit Config

Settings

{% for k in dataset %} {% end %}
{{ k }} {% if (k == "priority") %} {% else %}{{ dataset[k] }}{% end %}
{% if (current_user) %}
{% end %}

Jobs

{% for s in jobs %}
{{ s }}
{{ jobs[s] }}
{% end %}

Tasks

{% for s in tasks %}
{{ s }}
{{ tasks[s] }}
{% end %}

Task Status by Task Name

{% if task_info %} {% for key in list(task_info.values())[0] %} {% end %} {% for t in task_info %} {% for value in task_info[t].values() %} {% end %} {% end %}
{{ key.capitalize() }}
{{ value }}
{% end %}

Completion Statistics

{% for t in task_stats %} {% if 'avg_hrs' in task_stats[t] and task_stats[t]['avg_hrs'] is not None and 'stddev_hrs' in task_stats[t] and task_stats[t]['stddev_hrs'] is not None %} {% end %} {% end %}
Name Avg/stddev (hours) Max/min (hours) Eff
{{ t }} {{ '{:0.2f}'.format(task_stats[t]['avg_hrs']) }} / {{ '{:0.2f}'.format(task_stats[t]['stddev_hrs']) }} {{ '{:0.2f}'.format(task_stats[t]['max_hrs']) }} / {{ '{:0.2f}'.format(task_stats[t]['min_hrs']) }} {{ '{:d}'.format(int(task_stats[t]['efficiency']*100)) }}%
{% end %} {% block body_scripts %} {% if (current_user) %} {% module SecureScript(content=f""" var rest_api = '{ rest_api }'; const passkey = '{ passkey }'; const dataset_id = '{ dataset_id }'; """) %} {% module SecureScript(content=""" async function dataset_priority() { try { const val = parseFloat($("#dataset_priority").val()); const url = '/datasets/' + dataset_id + '/priority'; const ret = await fetch_json('PUT', url, {'priority': val}, passkey); if ('error' in ret) { message_alert('error - '+ret['error']); return false; } } catch(err) { message_alert('error - '+err); return false; } return true; } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function service_worker(action) { try { const url = '/actions/dataset_status'; const args = { dataset_id: dataset_id, action: action, }; const ret = await fetch_json('POST', url, args, passkey); if ('error' in ret) { message_alert('error - '+ret['error']); return false; } const id = ret['result']; while (true) { await sleep(1000); const url = '/actions/dataset_status/'+id; const ret = await fetch_json('GET', url, null, passkey); if (ret['status'] == 'error') { if ('error_message' in ret) { message_alert('error - '+ret['error_message']); } else { message_alert('error - '+action+' failed'); } return false; } else if (ret['status'] == 'complete') { message('complete'); break; } else if ('payload' in ret && 'progress' in ret['payload']) { message('progress - '+ret['payload']['progress']+'%') } } } catch(err) { message_alert('error - '+err); return false; } reload(); return true; } async function dataset_reset() { return await service_worker('reset') } async function dataset_hard_reset() { return await service_worker('hard_reset') } async function dataset_suspend() { return await service_worker('suspend') } async function dataset_truncate() { try { const url = '/datasets/' + dataset_id + '/dataset_actions/truncate'; const ret = await fetch_json('POST', url, {}, passkey); if ('error' in ret) { message_alert('error - '+ret['error']); return false; } } catch(err) { message_alert('error - '+err); return false; } reload(); return true; } async function dataset_delete_logs(dataset_id, passkey) { message("Deleting logs... 0% complete"); try { const url = '/datasets/' + dataset_id + '/logs'; for await (const ret of fetch_json('DELETE', url, {}, passkey)) {; if ('error' in ret) { message_alert('error - '+ret['error']); return false; } else if ('percent_complete' in ret) { message('Deleting logs... ' + ret['percent_complete'].toFixed(2) + '% complete'); } if ('status' in ret && ret['status'] == 'complete') { break; } } } catch(err) { message_alert('error - '+err); return false; } message_close(); return true; } """) %} {% end %} {% end %}