Return-Path: X-Original-To: apmail-airavata-commits-archive@www.apache.org Delivered-To: apmail-airavata-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6FDD9106DA for ; Sun, 21 Jul 2013 20:33:29 +0000 (UTC) Received: (qmail 69064 invoked by uid 500); 21 Jul 2013 20:33:29 -0000 Delivered-To: apmail-airavata-commits-archive@airavata.apache.org Received: (qmail 69028 invoked by uid 500); 21 Jul 2013 20:33:28 -0000 Mailing-List: contact commits-help@airavata.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@airavata.apache.org Delivered-To: mailing list commits@airavata.apache.org Received: (qmail 69021 invoked by uid 99); 21 Jul 2013 20:33:28 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 21 Jul 2013 20:33:28 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 21 Jul 2013 20:33:24 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 0567223889DA; Sun, 21 Jul 2013 20:33:03 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1505469 - /airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json Date: Sun, 21 Jul 2013 20:33:02 -0000 To: commits@airavata.apache.org From: smarru@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130721203303.0567223889DA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: smarru Date: Sun Jul 21 20:33:02 2013 New Revision: 1505469 URL: http://svn.apache.org/r1505469 Log: committing Shameera's patch Added: airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json Added: airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json URL: http://svn.apache.org/viewvc/airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json?rev=1505469&view=auto ============================================================================== --- airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json (added) +++ airavata/sandbox/gsoc2013/js/model/workflow_execution_context.json Sun Jul 21 20:33:02 2013 @@ -0,0 +1,336 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Workflow Execution Context", + "description":"JSON schema for Workflow Execution Context", + "type": "object", + "id": "http://airavata.apache.org/schemas/wec/2012/05#", + "required": ["context-header"], + "properties": { + "context-header": { + "type": "object", + "required": ["soa-service-eprs" , "workflow-monitoring-context"], + "description": "Element that contains Airavata specific context information sent as a SOAP header in a SOAP message.", + "properties": { + "user-identifier": { + "$ref": "#/definitions/user-identifier" + + }, + "soa-service-eprs": { + "$ref": "#/definitions/soa-service-eprs" + }, + "workflow-monitoring-context": { + "$ref": "#/definitions/workflow-monitoring-context" + }, + "workflow-scheduling-context": { + "$ref": "#/definitions/workflow-scheduling-context" + }, + "workflow-output-data-handling": { + "$ref": "#/definitions/workflow-output-data-handling" + }, + "security-context": { + "$ref": "#/definitions/security-context" + } + } + } + }, + "definitions": { + "user-identifier": { + "type": "string", + "description": "User that the workflow is executed on behalf of, user id is used to catalog data and for monitoring purposes" + }, + "soa-service-eprs": { + "type": "object", + "required": ["gfac-url" , "registry-url"], + "description": "Element that contains persistent service end points within the system.", + "properties": { + "gfac-url": { + "type": "string", // any URI + "description": "Location of GFac factory service to use." + }, + "registry-url": { + "type": "string", // any URI + "description": "Location of Registry service to use." + }, + "resource-scheduler-url": { + "type": "string", + "description": "Resource Scheduler to use. (optional)" + }, + "hostDescriptor": { + "type": "string", + "description": "Which Host Descriptor to be picked. (optional)" + } + } + }, + "workflow-monitoring-context": { + "type": "object", + "required": ["experiment-id", "workflow-instance-id", "workflow-template-id", "workflow-node-id", "workflow-time-step", "service-instance-id", "service-replica-id", "event-publish-epr", "error-publish-epr", "msg-box-epr"], + "description": "Workflow context for execution of a instance used to relate the specific activity in the context of workflow and used for monitoring and illustarting the workflow progress.", + "properties": { + "experiment-id": { + "type": "string", + "description": "Experiment ID (REQUIRED in context), Defines the context of the workflow." + }, + "workflow-instance-id": { + "type": "string", + "description": "URI that identifies workflow instance that originated the message." + }, + "workflow-template-id": { + "type": "string", + "description": "URI that identifies workflow template that was used to create the workflow instance." + }, + "workflow-node-id": { + "type": "string", + "description": "String that identifies uniqueley a node in workflow graph that originated that message." + }, + "workflow-time-step": { + "type": "integer", + "description": "Increasing integer representing time in the workflow execution when the message originated." + }, + "service-instance-id": { + "type": "string", + "description": "URI that identifies service instance that originated that message." + }, + "service-replica-id": { + "type": "string", + "description": "URI that identifies the replica of service instance that originated that message, primarly used by Fault Tolerance service to overprovision." + }, + "event-publish-epr": { + "type": "string", + "description": "EPR for WS-Eventing sink where to send event. (optional) NOTE: currently any XML is accepted as there are many versions of WS-Addressing." + }, + "notification-topic": { + "type": "string", + "description": "A Unique String to set as the topic for events sent on an experiment. The topic may be embedded with the event-publish-epr. An experiment id being unique may be chosen as topic." + }, + "error-publish-epr": { + "type": "string", + "description": "EPR for WS-Eventing sink where to send errors (optional) NOTE: designed good for debugging and system level warnings, errors, etc" + }, + "msg-box-epr": { + "type": "string", + "description": "EPR for WS-Eventing sink where to send errors (optional) NOTE: designed good for debugging and system level warnings, errors, etc" + } + } + }, + "workflow-scheduling-context": { + "type": "object", + "required": ["application-scheduling-context"], + "description": "Element that contains service specific resource scheduling information sent inside workflow context. The purpose of this context is to schedule individual activities on a different resource.", + "properties": { + "application-scheduling-context": { + "type": "array", + "items": { + "$ref": "#/definitions/application-scheduling-context" + }, + "minItems": 1 + }, + "nameValuePairType": { + "type": "array", + "items": { + "$ref": "#/definitions/nameValuePairType" + } + } + + } + }, + "workflow-output-data-handling": { + "type": "object", + "description": "Element that contains application specific resource scheduling information sent inside workflow context. The purpose of this context is to handle individual activities with different needs like intermediate data need not be persisted.", + "required": ["application-output-data-handling"], + "properties": { + "application-output-data-handling": { + "type": "array", + "items": { + "$ref": "#/definitions/application-output-data-handling" + }, + "minItems": 1 + } + } + }, + "security-context": { + "type": "object", + "required": ["grid-proxy", "grid-myproxy-repository" , "ssh-authentication", "credential-management-service"], + "description": "Security context for execution of the workflow", + "properties": { + "grid-proxy": { + "type": "string", // base64Binary + "description": "Security context for Grid Security Infrastructure X509 Proxy with trusted chain." + }, + "grid-myproxy-repository": { + "type": "object", + "description": "Security context for Grid Security MyProxy Service", + "required": ["myproxy-server", "username", "password", "life-time-inhours"], + "properties": { + "myproxy-server": { + "type": "string", + "description": "schema for an fstab entry" + }, + "username": { + "type": "string", + "description": "MyProxy User Name." + }, + "password": { + "type": "string", + "description": "MyProxy Password." + }, + "life-time-inhours": { + "type": "integer", + "description": "MyProxy Proxy Life time." + } + } + }, + "ssh-authentication": { + "type": "object", + "required": ["access-key-id", "secret-access-key"], + "description": "Security context for execution of the workflow on SSH accessed resources.", + "properties": { + "access-key-id": { + "type": "string", + "description": "Amazon Web Services Public Access Key ID used to contact the AWS API's." + }, + "secret-access-key": { + "type": "string", + "description": "Amazon Web Services AWS Private Secret Access Key." + } + } + }, + "credential-management-service": { + "type": "object", + "required": ["token_id", "portal-user" ], + "description": "Security context for execution of the workflow", + "properties": { + "token_id": { + "type": "string", + "description": "Token id used in credential-store. Represents the community user." + }, + "portal-user": { + "type": "string", + "description": "The portal user id who is invoking the workflow." + } + } + }, + "amazon-webservices": { + "type": "object", + "required": ["access-key-id","secret-access-key", "ami-id", "instance-id", "instance-type", "username"], + "description": "Security context for execution of the workflow", + "properties": { + "access-key-id": { + "type": "string", + "description": "Amazon Web Services Public Access Key ID used to contact the AWS API's." + }, + "secret-access-key": { + "type": "string", + "description": "Amazon Web Services AWS Private Secret Access Key." + }, + "ami-id": { + "type": "string", + "description": "Amazon Web Services AWS Amazon Machine Image (AMI) ID" + }, + "instance-id": { + "type": "string", + "description": "Amazon Web Services AWS Instance ID." + }, + "instance-type": { + "type": "string", + "description": "Amazon Web Services AWS Instance Type." + }, + "username": { + "type": "string", + "description": "Amazon Web Services AWS Username." + } + } + } + } + }, + "application-scheduling-context": { + "type": "object", + "required": ["@workflow-node-id", "@job-manager" , "@queue-name"], + "description": "Element text contains host name for the resource.", + "properties": { + "@workflow-node-id": { + "type": "string", + "description": "This is workflow node ID that is mapped to a resource." + }, + "@service-id": { + "type": "string", // any URI + "description": "This is service ID." + }, + "@host-name": { + "type": "string", // any URI + "description": "head node of the resource" + }, + "@wsgram-preferred": { + "type": "boolean", + "description": "If true then wsgram will be used, false pre-wsgram will be used." + }, + "@gatekeeper-epr": { + "type": "string", // any URI + "description": "GRAM EPR of the resource" + }, + "@job-manager": { + "type": "string", + "description": "LRM job manager on the resource, ex: PBS, LSF." + }, + "@cpu-count": { + "type": "integer", + "description": "number of CPU's allocated on the compute cluster" + }, + "@node-count": { + "type": "integer", + "description": "number of nodes allocated on the compute cluster" + }, + "@queue-name": { + "type": "string", + "description": "Job queue name if any." + }, + "@max-wall-time": { + "type": "integer", + "description": "number of CPU's allocated on the compute cluster" + } + } + }, + "nameValuePair": { + "type": "object", + "required": ["@name" , "@value"], + "description": "Name-Value pair", + "properties": { + "@workflow-node-id": { + "type": "string" + }, + "@name": { + "type": "string" + }, + "@value": { + "type": "string" + }, + "@description": { + "type": "string" + } + } + }, + "application-output-data-handling": { + "type": "object", + "required": ["node-id", "data-registry-url", "output-data-directory", "data-persistance"], + "description": "schema for an fstab entry", + "properties": { + "node-id": { + "type": "string", + "description": " If the workflow outputs are to be staged to a pre-specified location, then the output data staging directory should be provided." + }, + "data-registry-url": { + "type": "string", // any URI + "description": "If a seperate Data Registry is used for catlogging data, the associated location of the Data registry" + }, + "output-data-directory": { + "type": "string", // any URI + "description": "If the workflow outputs are to be staged to a pre-specified location, then the output data staging directory should be provided." + }, + "data-persistance": { + "type": "boolean", + "description": "If the intermediate workflow outputs are to be discarded after execution, this flag should be set to false. By defualt this flag should be true assuming all data will be persisted." + } + } + } + + } +}