# OPTION 1: 1 to 1 conversion from XML4 xsd format --------- YAML --------- - handle: local arch: x86_64 os: LINUX directories: - type: shared-scratch path: /tmp/workflows/scratch file-servers: - operation: all url: file:///tmp/workflows/scratch - type: local-storage path: /tmp/workflows/outputs file-servers: - operation: all url: file:///tmp/workflows/outputs - handle: condor_pool arch: x86_64 os: LINUX grids: - type: gt5 contact: smarty.isi.edu/jobmanager-pbs scheduler: PBS jobtype: auxillary - type: gt5 contact: smarty.isi/edu/jobmanager-pbs scheduler: PBS jobtype: compute directories: - type: shared-scratch path: /lustre file-servers: - operation: all url: gsiftp://smarty.isi.edu/lustre replica-catalogs: - type: LRC url: rlsn://smarty.isi.edu - handle: staging_site arch: x86_64 os: LINUX directories: - type: shared-scratch path: /data file-servers: - operation: put url: scp://obelix.isi.edu/data - operation: get url: http://obelix.isi.edu/data --------- SCHEMA --------- { "definitions": { "profile": { "description": "A profiles structured as [, , ]", "type": "array", "items": [ { "type": "string", "enum": ["env", "condor", "globus", "dagman", "pegasus", "hints"] }, { "type": "string", "pattern": "^[a-zA-Z_][a-zA-Z0-9_]*$" }, { "type": "string"} ], "minItems": 3, "maxItems": 3 }, "profiles": { "type": "array", "items": { "$ref": "#/definitions/profile" } }, "file-server": { "type": "object", "properties": { "url": { "type": "string" }, "operation": { "type": "string", "enum": ["all", "put", "get"] }, "profiles": { "$ref": "#/definitions/profiles" } }, "required": ["url"] }, "directory": { "type": "object", "properties": { "type": { "type": "string", "enum": ["shared-scratch", "shared-storage", "local-scratch", "local-storage"] }, "path": { "type": "string" }, "free-size": { "type": "string" }, "total-size": { "type": "string" }, "file-servers": { "type": "array", "items": { "$ref": "#/definitions/file-server" }, "minItems": 1 } }, "required": ["type", "file-servers"] }, "grid": { "type": "object", "properties": { "type": { "type": "string", "enum": ["gt2", "gt4", "gt5", "condor", "cream", "batch", "pbs", "lsf", "sge", "nordugrid", "unicore", "ec2", "deltacloud"] }, "contact": { "type": "string" }, "scheduler": { "type": "string", "enum": ["Fork", "PBS", "LSF", "Condor", "SGE", "unknown"] }, "jobtype": { "type": "string", "enum": ["compute", "auxillary", "transfer", "register", "cleanup"] }, "free-mem": { "type": "string" }, "total-mem": { "type": "string" }, "max-count": { "type": "string" }, "max-cpu-time": { "type": "string" }, "running-jobs": { "type": "number", "minimum": 0 }, "jobs-in-queue": { "type": "number", "minimum": 0 }, "idle-nodes": { "type": "number", "minimum": 0 }, "total-nodes": { "type": "number", "minimum": 0 }, "sys-info": { "$ref": "#/definitions/sys-info" } }, "required": ["type", "contact", "scheduler"] }, "replica-catalog": { "type": "object", "properties": { "type": { "type": "string" }, "url": { "type": "string" }, "aliases": { "type": "array", "items": { "type": "string" } }, "connections": { "type": "array", "items": { "type": "string" } } }, "required": ["type", "url"] } }, "type": "array", "items": { "type": "object", "properties": { "handle": { "type": "string" }, "arch": { "type": "string", "default": "x86_64", "enum": ["x86", "x86_64", "ppc", "ppc_64", "ia64", "sparcv7", "sparcv9"] }, "os": { "type": "string", "default": "LINUX", "enum": ["LINUX", "SUNOS", "MACOSX", "AIX", "WINDOWS"] }, "osrelease": { "type": "string" }, "osversion": { "type": "string" }, "glibc": { "type": "string" }, "directories": { "type": "array", "items": { "$ref": "#/definitions/directory" } }, "grids": { "type": "array", "items": { "$ref": "#/definitions/grid" } }, "profiles": { "$ref": "#/definitions/profiles" }, "replica-catalogs": { "type": "array", "items": { "$ref": "#/definitions/replica-catalog" } } }, "required": ["handle"] }, "minItems": 1 }