Table of Contents
Формат описания грид-заданий на языке JSON
Атрибуты описания заданий
Описание задания не может иметь атрибутов, отличных от перечисленных ниже:
- version, число - версия используемой схемы описания задания. Версия данной схемы 2.
- description, строка, опциональный параметр - описание задания в произвольной форме, для понимания человеком.
- default_storage_base, строка, опциональный параметр - относительные пути, встречающиеся во вложенных описаниях используют данный URI в качестве базы.
- tasks, список объектов, не менее 1 элемента - задачи, из которых состоит задание. Каждый элемент списка является объектом со следующими свойствами:
- id, строка, разрешается использовать только символы [a-zA-Z0-9_] - идентификатор задачи. Используется при обращении к задачам задания, а так же при указании связей задач.
- description, строка, опциональный параметр - описание задачи в произвольной форме, для понимания человеком.
- definition, объект, опциональный параметр - описание задачи (см. Формат описания грид-задач на языке JSON). Если данный параметр отсутствует, это может означать, что описание задачи будет загружено на сервер отдельно (например, из внешнего файла).
- children, список строк, опциональный параметр - список идентификаторов задач (id), дочерних для данной задачи.
- filename, строка, опциональный параметр - имя файла, содержащего описание задачи. При наличии одновременно атрибутов filename и definition, предпочтение отдается описанию задачи из файла, указанного в данном отрибуте.
- meta, объект, опциональный - данный атрибут предназначен для хранения любых пользовательских параметров экземпляра задачи, и может иметь любое содержимое.
- requirements, список объектов, опциональный параметр - объект требований к ресурсам (согласно схеме описания требований к ресурсам).
JSON Schema для описания заданий
JSON Schema описания заданий:
{ "description": "Задание", "type": "object", "properties": { "created": { "type": "string", "format": "date-time" }, "modified": { "type": "string", "format": "date-time", "optional": true }, "expires": { "type": "string", "format": "date-time", "description": "Дата, когда данная задача будет удалена с сервера." }, "server_time": { "type": "string", "format": "date-time", "description": "Текущие дата и время на сервере" }, "server_policy_uri": { "type": "string", "format": "uri", "description": "URI ресурса с описанием политики работы сервера" }, "owner": { "type": "string", "description": "DN пользователя, создавшего задание", "maxLength": 256 }, "vo": { "type": "string", "description": "Виртуальная организация задания", "maxLength": 64 }, "state": { "type": "array", "description": "Состояние задания, со всей историей его изменений", "items": { "type": "object", "description": "Запись о состоянии задания.", "properties": { "s": { "type": "string", "description": "состояние", "enum": [ "new", "pending", "running", "paused", "finished", "aborted"] }, "ts": { "type": "string", "format": "date-time", "description": "время, когда наступило данное состояние" } }, "additionalProperties": true } }, "operation": { "type": "array", "description": "операции, которые должны быть выполнены с данным заданием", "items": { "type": "object", "description": "Операция с заданием", "properties": { "op": { "type": "string", "description": "операция", "enum": [ "start", "pause", "abort" ] }, "id": { "type": "string", "description": "id операции", "maxLength": 36 }, "created": { "type": "string", "format": "date-time", "description": "время, когда была запрошена данная операция" }, "completed": { "type": "string", "format": "date-time", "description": "время, когда была выполнена данная операция", "optional": true, "requires": "success" }, "success": { "type": "boolean", "description": "было ли выполнение операции успешным", "optional": true, "requires": "completed" }, "result": { "type": "object", "description": "результат завершения операции", "optional": true, "requires": "completed" } }, "additionalProperties": true } }, "definition": { "type": "string", "description": "описание задания на языке описания заданий", "format": "application/octet-stream" }, "tasks": { "type": "array", "description": "список URI задач задания", "items": { "type": "string", "format": "uri" } } }, "additionalProperties": false }