Пример #1
0
def load(info):
    registerAccessFlag(constants.ACCESS_FLAG_EXECUTE_TASK, name='Execute analyses', admin=True)
    TokenScope.describeScope(
        constants.TOKEN_SCOPE_EXECUTE_TASK, name='Execute tasks', description='Execute item tasks.')
    TokenScope.describeScope(
        constants.TOKEN_SCOPE_AUTO_CREATE_CLI, 'Item task auto-creation',
        'Create new CLIs via automatic introspection.', admin=True)

    ModelImporter.model('item').ensureIndex(['meta.isItemTask', {'sparse': True}])
    ModelImporter.model('item').exposeFields(level=AccessType.READ, fields='createdByJob')
    ModelImporter.model('job', 'jobs').exposeFields(level=AccessType.READ, fields={
        'itemTaskId', 'itemTaskBindings'})

    events.bind('jobs.job.update', info['name'], _onJobSave)
    events.bind('data.process', info['name'], _onUpload)

    info['apiRoot'].item_task = ItemTask()

    info['apiRoot'].item.route('POST', (':id', 'item_task_slicer_cli_description'),
                               runSlicerCliTasksDescriptionForItem)
    info['apiRoot'].item.route('PUT', (':id', 'item_task_slicer_cli_xml'),
                               configureItemTaskFromSlicerCliXml)
    info['apiRoot'].item.route('POST', (':id', 'item_task_json_description'),
                               runJsonTasksDescriptionForItem)
    info['apiRoot'].item.route('PUT', (':id', 'item_task_json_specs'),
                               configureItemTaskFromJson)

    info['apiRoot'].folder.route('POST', (':id', 'item_task_slicer_cli_description'),
                                 runSlicerCliTasksDescriptionForFolder)
    info['apiRoot'].folder.route('POST', (':id', 'item_task_slicer_cli_xml'),
                                 createItemTasksFromSlicerCliXml)
    info['apiRoot'].folder.route('POST', (':id', 'item_task_json_description'),
                                 runJsonTasksDescriptionForFolder)
    info['apiRoot'].folder.route('POST', (':id', 'item_task_json_specs'),
                                 createItemTasksFromJson)
Пример #2
0
def load(info):
    registerAccessFlag(constants.ACCESS_FLAG_EXECUTE_TASK,
                       name='Execute analyses',
                       admin=True)
    TokenScope.describeScope(constants.TOKEN_SCOPE_EXECUTE_TASK,
                             name='Execute tasks',
                             description='Execute item tasks.')
    TokenScope.describeScope(constants.TOKEN_SCOPE_AUTO_CREATE_CLI,
                             'Item task auto-creation',
                             'Create new CLIs via automatic introspection.',
                             admin=True)

    ModelImporter.model('item').ensureIndex(
        ['meta.isItemTask', {
            'sparse': True
        }])
    ModelImporter.model('item').exposeFields(level=AccessType.READ,
                                             fields='createdByJob')
    ModelImporter.model('job', 'jobs').exposeFields(
        level=AccessType.READ, fields={'itemTaskId', 'itemTaskBindings'})

    events.bind('jobs.job.update', info['name'], _onJobSave)
    events.bind('data.process', info['name'], _onUpload)

    info['apiRoot'].item_task = ItemTask()
Пример #3
0
    def __init__(self):
        self.resourceName = 'smqtk'
        self.route('GET', ('settings',), self.settings)
        self.route('POST', ('process_images',), self.processImages)

        TokenScope.describeScope(SMQTK_SETTING_READ, 'Read SMQTK settings',
                                 'Allow clients to look up the SMQTK settings, including private '
                                 'fields such as database credentials.')
Пример #4
0
    def __init__(self):
        self.resourceName = 'smqtk'
        self.route('GET', ('settings', ), self.settings)
        self.route('POST', ('process_images', ), self.processImages)

        TokenScope.describeScope(
            SMQTK_SETTING_READ, 'Read SMQTK settings',
            'Allow clients to look up the SMQTK settings, including private '
            'fields such as database credentials.')
Пример #5
0
def load(info):
    registerAccessFlag(constants.ACCESS_FLAG_EXECUTE_TASK,
                       name='Execute analyses',
                       admin=True)
    TokenScope.describeScope(constants.TOKEN_SCOPE_EXECUTE_TASK,
                             name='Execute tasks',
                             description='Execute item tasks.')
    TokenScope.describeScope(constants.TOKEN_SCOPE_AUTO_CREATE_CLI,
                             'Item task auto-creation',
                             'Create new CLIs via automatic introspection.',
                             admin=True)

    ModelImporter.model('item').ensureIndex(
        ['meta.isItemTask', {
            'sparse': True
        }])
    ModelImporter.model('item').exposeFields(level=AccessType.READ,
                                             fields='createdByJob')
    ModelImporter.model('job', 'jobs').exposeFields(
        level=AccessType.READ, fields={'itemTaskId', 'itemTaskBindings'})

    events.bind('jobs.job.update', info['name'], _onJobSave)
    events.bind('data.process', info['name'], _onUpload)

    info['apiRoot'].item_task = ItemTask()

    info['apiRoot'].item.route('POST',
                               (':id', 'item_task_slicer_cli_description'),
                               runSlicerCliTasksDescriptionForItem)
    info['apiRoot'].item.route('PUT', (':id', 'item_task_slicer_cli_xml'),
                               configureItemTaskFromSlicerCliXml)
    info['apiRoot'].item.route('POST', (':id', 'item_task_json_description'),
                               runJsonTasksDescriptionForItem)
    info['apiRoot'].item.route('PUT', (':id', 'item_task_json_specs'),
                               configureItemTaskFromJson)

    info['apiRoot'].folder.route('POST',
                                 (':id', 'item_task_slicer_cli_description'),
                                 runSlicerCliTasksDescriptionForFolder)
    info['apiRoot'].folder.route('POST', (':id', 'item_task_slicer_cli_xml'),
                                 createItemTasksFromSlicerCliXml)
    info['apiRoot'].folder.route('POST', (':id', 'item_task_json_description'),
                                 runJsonTasksDescriptionForFolder)
    info['apiRoot'].folder.route('POST', (':id', 'item_task_json_specs'),
                                 createItemTasksFromJson)
Пример #6
0
from girder_worker.docker.tasks import docker_run
from girder_worker.docker.transforms import VolumePath
from girder_worker.docker.transforms.girder import (
    GirderFolderIdToVolume, GirderUploadVolumePathToFolder,
    GirderFileIdToVolume, ProgressPipe)
from PIL import Image

CLEANUP_TOKEN_SCOPE = 'stroke_ct.cleanup'
DATE_FMT = '%A %B %-d, %Y'
DAYS_UNTIL_EMAIL = 7
DAYS_UNTIL_DELETION = 14
DELETE_SUBJECT = 'Warning: your timelapse data will be deleted soon!'

TokenScope.describeScope(
    CLEANUP_TOKEN_SCOPE,
    'Delete expired timelapse data',
    description='Delete expired timelapses and send emails for pending ones.',
    admin=True)

# [[x1, y2], [x2, y2]] in pixel coordinates
_MASK_RECT_SCHEMA = {
    'type': 'array',
    'maxItems': 2,
    'minItems': 2,
    'items': {
        'type': 'array',
        'maxItems': 2,
        'minItems': 2,
        'items': {
            'type': 'integer',
            'minimum': 0