http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/UGETemplate.xslt ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/UGETemplate.xslt b/modules/gfac/gfac-impl/src/main/resources/UGETemplate.xslt new file mode 100644 index 0000000..5b57265 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/UGETemplate.xslt @@ -0,0 +1,74 @@ +<!--Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file + distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under + the Apache License, Version 2.0 (theà "License"); you may not use this file except in compliance with the License. You may + obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to + in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + ANY ~ KIND, either express or implied. See the License for the specific language governing permissions and limitations under + the License. --> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://airavata.apache.org/gsi/ssh/2012/12"> +<xsl:output method="text" /> +<xsl:template match="/ns:JobDescriptor"> +#! /bin/bash +# Grid Engine batch job script built by Apache Airavata +# <xsl:choose> + <xsl:when test="ns:shellName"> +#$ -S <xsl:value-of select="ns:shellName"/> + </xsl:when></xsl:choose> +#$ -V + <xsl:choose> + <xsl:when test="ns:queueName"> +#$ -q <xsl:value-of select="ns:queueName"/> + </xsl:when> + </xsl:choose> +#$ -m beas <xsl:choose> +<xsl:when test="ns:acountString"> +#$ -A <xsl:value-of select="ns:acountString"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:maxWallTime"> +#$ -l h_rt=<xsl:value-of select="ns:maxWallTime"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:jobName"> +#$ -N <xsl:value-of select="ns:jobName"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:standardOutFile"> +#$ -o <xsl:value-of select="ns:standardOutFile"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="ns:standardOutFile"> +#$ -e <xsl:value-of select="ns:standardErrorFile"/> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="(ns:nodes) and (ns:processesPerNode)"> +#$ -pe <xsl:value-of select="ns:processesPerNode"/>way <xsl:value-of select="12 * ns:nodes"/> +<xsl:text>
</xsl:text> + </xsl:when> + </xsl:choose> +<xsl:for-each select="ns:exports/ns:name"> +<xsl:value-of select="."/>=<xsl:value-of select="./@value"/><xsl:text>
</xsl:text> +export<xsl:text> </xsl:text><xsl:value-of select="."/> +<xsl:text>
</xsl:text> +</xsl:for-each> +<xsl:for-each select="ns:preJobCommands/ns:command"> + <xsl:value-of select="."/><xsl:text> </xsl:text> + </xsl:for-each> +cd <xsl:text> </xsl:text><xsl:value-of select="ns:workingDirectory"/><xsl:text>
</xsl:text> + <xsl:choose><xsl:when test="ns:jobSubmitterCommand"> +<xsl:value-of select="ns:jobSubmitterCommand"/><xsl:text> </xsl:text></xsl:when></xsl:choose><xsl:value-of select="ns:executablePath"/><xsl:text> </xsl:text> +<xsl:for-each select="ns:inputs/ns:input"> + <xsl:value-of select="."/><xsl:text> </xsl:text> + </xsl:for-each> +<xsl:for-each select="ns:postJobCommands/ns:command"> + <xsl:value-of select="."/><xsl:text> </xsl:text> +</xsl:for-each> + +</xsl:template> + +</xsl:stylesheet> \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/errors.properties ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/errors.properties b/modules/gfac/gfac-impl/src/main/resources/errors.properties new file mode 100644 index 0000000..88c41b8 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/errors.properties @@ -0,0 +1,197 @@ +# +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Directly copied from jglobus. Not a good way to manager error properties. +1 = Parameter not supported +2 = The RSL length is greater than the maximum allowed +3 = No resources available +4 = Bad directory specified +5 = The executable does not exist +6 = Insufficient funds +7 = Authentication with the remote server failed +8 = Job cancelled by user +9 = Job cancelled by system + +10 = Data transfer to the server failed +11 = The stdin file does not exist +12 = The connection to the server failed (check host and port) +13 = The provided RSL 'maxtime' value is invalid (not an integer or must be greater than 0) +14 = The provided RSL 'count' value is invalid (not an integer or must be greater than 0) +15 = The job manager received an invalid RSL +16 = Could not connect to job manager +17 = The job failed when the job manager attempted to run it +18 = Paradyn error +19 = The provided RSL 'jobtype' value is invalid + +20 = The provided RSL 'myjob' value is invalid +21 = The job manager failed to locate an internal script argument file +22 = The job manager failed to create an internal script argument file +23 = The job manager detected an invalid job state +24 = The job manager detected an invalid script response +25 = The job manager detected an invalid job state +26 = The provided RSL 'jobtype' value is not supported by this job manager +27 = Unimplemented +28 = The job manager failed to create an internal script submission file +29 = The job manager cannot find the user proxy + +30 = The job manager failed to open the user proxy +31 = The job manager failed to cancel the job as requested +32 = System memory allocation failed +33 = The interprocess job communication initialization failed +34 = The interprocess job communication setup failed +35 = The provided RSL 'host count' value is invalid +36 = One of the provided RSL parameters is unsupported +37 = The provided RSL 'queue' parameter is invalid +38 = The provided RSL 'project' parameter is invalid +39 = The provided RSL string includes variables that could not be identified + +40 = The provided RSL 'environment' parameter is invalid +41 = The provided RSL 'dryrun' parameter is invalid +42 = The provided RSL is invalid (an empty string) +43 = The job manager failed to stage the executable +44 = The job manager failed to stage the stdin file +45 = The requested job manager type is invalid +46 = The provided RSL 'arguments' parameter is invalid +47 = The gatekeeper failed to run the job manager +48 = The provided RSL could not be properly parsed +49 = There is a version mismatch between GRAM components + +50 = The provided RSL 'arguments' parameter is invalid +51 = The provided RSL 'count' parameter is invalid +52 = The provided RSL 'directory' parameter is invalid +53 = The provided RSL 'dryrun' parameter is invalid +54 = The provided RSL 'environment' parameter is invalid +55 = The provided RSL 'executable' parameter is invalid +56 = The provided RSL 'host_count' parameter is invalid +57 = The provided RSL 'jobtype' parameter is invalid +58 = The provided RSL 'maxtime' parameter is invalid +59 = The provided RSL 'myjob' parameter is invalid + +60 = The provided RSL 'paradyn' parameter is invalid +61 = The provided RSL 'project' parameter is invalid +62 = The provided RSL 'queue' parameter is invalid +63 = The provided RSL 'stderr' parameter is invalid +64 = The provided RSL 'stdin' parameter is invalid +65 = The provided RSL 'stdout' parameter is invalid +66 = The job manager failed to locate an internal script +67 = The job manager failed on the system call pipe() +68 = The job manager failed on the system call fcntl() +69 = The job manager failed to create the temporary stdout filename + +70 = The job manager failed to create the temporary stderr filename +71 = The job manager failed on the system call fork() +72 = The executable file permissions do not allow execution +73 = The job manager failed to open stdout +74 = The job manager failed to open stderr +75 = The cache file could not be opened in order to relocate the user proxy +76 = Cannot access cache files in ~/.globus/.gass_cache, check permissions, quota, and disk space +77 = The job manager failed to insert the contact in the client contact list +78 = The contact was not found in the job manager's client contact list +79 = Connecting to the job manager failed. Possible reasons: job terminated, invalid job contact, network problems, ... + +80 = The syntax of the job contact is invalid +81 = The executable parameter in the RSL is undefined +82 = The job manager service is misconfigured. condor arch undefined +83 = The job manager service is misconfigured. condor os undefined +84 = The provided RSL 'min_memory' parameter is invalid +85 = The provided RSL 'max_memory' parameter is invalid +86 = The RSL 'min_memory' value is not zero or greater +87 = The RSL 'max_memory' value is not zero or greater +88 = The creation of a HTTP message failed +89 = Parsing incoming HTTP message failed + +90 = The packing of information into a HTTP message failed +91 = An incoming HTTP message did not contain the expected information +92 = The job manager does not support the service that the client requested +93 = The gatekeeper failed to find the requested service +94 = The jobmanager does not accept any new requests (shutting down) +95 = The client failed to close the listener associated with the callback URL +96 = The gatekeeper contact cannot be parsed +97 = The job manager could not find the 'poe' command +98 = The job manager could not find the 'mpirun' command +99 = The provided RSL 'start_time' parameter is invalid" +100 = The provided RSL 'reservation_handle' parameter is invalid + +101 = The provided RSL 'max_wall_time' parameter is invalid +102 = The RSL 'max_wall_time' value is not zero or greater +103 = The provided RSL 'max_cpu_time' parameter is invalid +104 = The RSL 'max_cpu_time' value is not zero or greater +105 = The job manager is misconfigured, a scheduler script is missing +106 = The job manager is misconfigured, a scheduler script has invalid permissions +107 = The job manager failed to signal the job +108 = The job manager did not recognize/support the signal type +109 = The job manager failed to get the job id from the local scheduler + +110 = The job manager is waiting for a commit signal +111 = The job manager timed out while waiting for a commit signal +112 = The provided RSL 'save_state' parameter is invalid +113 = The provided RSL 'restart' parameter is invalid +114 = The provided RSL 'two_phase' parameter is invalid +115 = The RSL 'two_phase' value is not zero or greater +116 = The provided RSL 'stdout_position' parameter is invalid +117 = The RSL 'stdout_position' value is not zero or greater +118 = The provided RSL 'stderr_position' parameter is invalid +119 = The RSL 'stderr_position' value is not zero or greater + +120 = The job manager restart attempt failed +121 = The job state file doesn't exist +122 = Could not read the job state file +123 = Could not write the job state file +124 = The old job manager is still alive +125 = The job manager state file TTL expired +126 = It is unknown if the job was submitted +127 = The provided RSL 'remote_io_url' parameter is invalid +128 = Could not write the remote io url file +129 = The standard output/error size is different + +130 = The job manager was sent a stop signal (job is still running) +131 = The user proxy expired (job is still running) +132 = The job was not submitted by original jobmanager +133 = The job manager is not waiting for that commit signal +134 = The provided RSL scheduler specific parameter is invalid +135 = The job manager could not stage in a file +136 = The scratch directory could not be created +137 = The provided 'gass_cache' parameter is invalid +138 = The RSL contains attributes which are not valid for job submission +139 = The RSL contains attributes which are not valid for stdio update + +140 = The RSL contains attributes which are not valid for job restart +141 = The provided RSL 'file_stage_in' parameter is invalid +142 = The provided RSL 'file_stage_in_shared' parameter is invalid +143 = The provided RSL 'file_stage_out' parameter is invalid +144 = The provided RSL 'gass_cache' parameter is invalid +145 = The provided RSL 'file_cleanup' parameter is invalid +146 = The provided RSL 'scratch_dir' parameter is invalid +147 = The provided scheduler-specific RSL parameter is invalid +148 = A required RSL attribute was not defined in the RSL spec +149 = The gass_cache attribute points to an invalid cache directory + +150 = The provided RSL 'save_state' parameter has an invalid value +151 = The job manager could not open the RSL attribute validation file +152 = The job manager could not read the RSL attribute validation file +153 = The provided RSL 'proxy_timeout' is invalid +154 = The RSL 'proxy_timeout' value is not greater than zero +155 = The job manager could not stage out a file +156 = The job contact string does not match any which the job manager is handling +157 = Proxy delegation failed +158 = The job manager could not lock the state lock file + +1000 = Failed to start up callback handler +1003 = Job contact not set http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/AccessPolicy.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/AccessPolicy.json b/modules/gfac/gfac-impl/src/main/resources/schema/AccessPolicy.json new file mode 100644 index 0000000..8f6cfe1 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/AccessPolicy.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AccessPolicy.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}], + "properties": { + "EndpointID": { + "type": "string", + "description": "The ID of the Endpoint this AccessPolicy is for" + } + }, + "required": ["EndpointID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Activity.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Activity.json b/modules/gfac/gfac-impl/src/main/resources/schema/Activity.json new file mode 100644 index 0000000..8bd2495 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Activity.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "UserDomainID": { + "type": "string", + "description": "An ID" + }, + "EndpointID": { + "type": "string", + "description": "The ID of the Endpoint managing Activity" + }, + "ShareID": { + "type": "string", + "description": "The ID of the Share servicing this Activity" + }, + "ResourceID": { + "type": "string", + "description": "The ID of the Resource executing this Activity" + }, + "ActivityID": { + "type": "array", + "description": "The IDs of other Activities related to this one", + "items": { + "type": "string" + } + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/AdminDomain.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/AdminDomain.json b/modules/gfac/gfac-impl/src/main/resources/schema/AdminDomain.json new file mode 100644 index 0000000..8ed4606 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/AdminDomain.json @@ -0,0 +1,51 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AdminDomain.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json"}], + "properties": { + "Distributed": { + "type": "boolean", + "description": "true if the services managed by the AdminDomain are geographically distributed" + }, + "Owner": { + "type": "array", + "description": "Identification of persons or legal entities that own the resources in this AdminDomain", + "items": { + "type": "string" + } + }, + "ServiceID": { + "type": "array", + "description": "IDs of Services in this AdminDomain", + "items": { + "type": "string" + } + }, + "ChildDomainID": { + "type": "array", + "description": "IDs of AdminDomains aggregated by this AdminDomain", + "items": { + "type": "string" + } + }, + "ParentDomainID": { + "type": "string", + "description": "The ID of the AdminDomain that this AdminDomain participates in" + }, + "ComputingServiceID": { + "type": "array", + "description": "IDs of ComputingServices in this AdminDomain", + "items": { + "type": "string" + } + }, + "StorageServiceID": { + "type": "array", + "description": "IDs of StorageServices in this AdminDomain", + "items": { + "type": "string" + } + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/ApplicationEnvironment.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/ApplicationEnvironment.json b/modules/gfac/gfac-impl/src/main/resources/schema/ApplicationEnvironment.json new file mode 100644 index 0000000..89c78e0 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/ApplicationEnvironment.json @@ -0,0 +1,86 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationEnvironment.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "AppName": { + "type": "string", + "description": "The name of the application" + }, + "AppVersion": { + "type": "string", + "description": "The version of the application" + }, + "State": { + "type": "string", + "description": "The current installation state of the application - AppEnvState_t" + }, + "RemovalDate": { + "type": "string", + "description": "The date/time after which the application may be removed - DateTime_t" + }, + "License": { + "type": "string", + "description": "The license under which the application is usable - License_t" + }, + "Description": { + "type": "string", + "description": "A human-readable description of the application" + }, + "BestBenchmark": { + "type": "array", + "description": "The type(s) of the benchmarks which best describe the sensitivity of this application to the performance of the ExecutionEnvironment - Benchmark_t", + "items": { + "type": "string" + } + }, + "ParallelSupport": { + "type": "string", + "description": "The type of supported parallel execution - ParallelSupport_t" + }, + "MaxSlots": { + "type": "integer", + "description": "The maximum number of concurrent slots that may be used to run the application" + }, + "MaxJobs": { + "type": "integer", + "description": "The maximum number of concurrent jobs that can run the application" + }, + "MaxUserSeats": { + "type": "integer", + "description": "The maximum number of concurrent users that can run the application" + }, + "FreeSlots": { + "type": "integer", + "description": "The maximum number slots currently available to run the application" + }, + "FreeJobs": { + "type": "integer", + "description": "The maximum number of additional jobs that can run the application" + }, + "FreeUserSeats": { + "type": "integer", + "description": "The maximum number of additional users that can run the application" + }, + "ExecutionEnvironmentID": { + "type": "array", + "description": "ID(s) of ExecutionEnvironments where this ApplicationEnvironment can be used", + "items": { + "type": "string" + } + }, + "ComputingManagerID": { + "type": "string", + "description": "ID of the ComputingManager this ApplicationEnvironment is associated with" + }, + "ApplicationHandleID": { + "type": "array", + "description": "ID(s) of the ApplicationHandles that can be used to refer to this environment", + "items": { + "type": "string" + } + } + }, + "required": ["AppName","ComputingManagerID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/ApplicationHandle.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/ApplicationHandle.json b/modules/gfac/gfac-impl/src/main/resources/schema/ApplicationHandle.json new file mode 100644 index 0000000..e7972e9 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/ApplicationHandle.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationHandle.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Type": { + "type": "string", + "description": "The type of method used to set up an ApplicationEnvironment - ApplicationHandle_t (open enumeration)" + }, + "Value": { + "type": "string", + "description": "How to set up the ApplicationEnvironment in the context of the Type" + }, + "ApplicationEnvironmentID": { + "type": "string", + "description": "The ID of the ApplicationEnvironment this ApplicationHandle refers to" + } + }, + "required": ["Type","Value","ApplicationEnvironmentID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Benchmark.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Benchmark.json b/modules/gfac/gfac-impl/src/main/resources/schema/Benchmark.json new file mode 100644 index 0000000..2b64261 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Benchmark.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Benchmark.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Type": { + "type": "string", + "description": "The type of the benchmark - Benchmark_t (open enumeration)" + }, + "Value": { + "type": "number", + "description": "The value of the benchmark" + }, + "ComputingManagerID": { + "type": "string", + "description": "The ID of the ComputingManager this benchmark is for" + } + }, + "required": ["Type","Value"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/ComputingActivity.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/ComputingActivity.json b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingActivity.json new file mode 100644 index 0000000..5fcae72 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingActivity.json @@ -0,0 +1,165 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingActivity.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json"}], + "properties": { + "Type": { + "type": "string", + "description": "closed enumeration ComputingActivityType_t", + "enum": ["collectionelement","parallelelement","single","workflownode"] + }, + "IDFromEndpoint": { + "type": "string", + "description": "The ID assigned by the ComputingEndpoint" + }, + "LocalIDFromManager": { + "type": "string", + "description": "The local ID assigned by the ComputingManager" + }, + "State": { + "type": "array", + "description": "open enumeration ComputingActivityState_t", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "RestartState": { + "type": "array", + "description": "open enumeration ComputingActivityState_t", + "items": { + "type": "string" + } + }, + "ExitCode": { + "type": "integer", + "description": "The exit code as returned by the main executable code or script of the job" + }, + "ComputingManagerExitCode": { + "type": "string", + "description": "The exit code provided by the ComputingManager" + }, + "Error": { + "type": "array", + "description": "The error messages as provided by the software components involved in the management of the job", + "items": { + "type": "string" + } + }, + "WaitingPosition": { + "type": "integer", + "description": "The position of the job in the queue, if the job is waiting" + }, + "Owner": { + "type": "string", + "description": "The Grid identity of the job's owner" + }, + "LocalOwner": { + "type": "string", + "description": "The local user name of the job's owner" + }, + "RequestedTotalWallTime": { + "type": "integer", + "description": "The total wall clock time requested by the job" + }, + "RequestedTotalCPUTime": { + "type": "integer", + "description": "The total CPU time requested by the job" + }, + "RequestedSlots": { + "type": "integer", + "description": "The number of slots requested for the job" + }, + "RequestedApplicationEnvironment": { + "type": "array", + "description": "The AppName and Version of the requested ApplicationEnvironments", + "items": { + "type": "string" + } + }, + "StdIn": { + "type": "string", + "description": "The name of the file used for standard input" + }, + "StdOut": { + "type": "string", + "description": "The name of the file used for standard output" + }, + "StdErr": { + "type": "string", + "description": "The name of the file used for standard error" + }, + "LogDir": { + "type": "string", + "description": "The name of the directory which contains job logs" + }, + "ExecutionNode": { + "type": "array", + "description": "Hostnames associated with the ExecutionEnvironments running the job", + "items": { + "type": "string" + } + }, + "Queue": { + "type": "string", + "description": "The name of the ComputingManager queue that held the job before execution" + }, + "UsedTotalWallTime": { + "type": "integer", + "description": "The total wall clock time consumed by the job so far (slots*seconds)" + }, + "UsedTotalCpuTime": { + "type": "integer", + "description": "The total CPU time consumed by the job so far (seconds)" + }, + "UsedMainMemory": { + "type": "integer", + "description": "The physical RAM currently used by the job (MB)" + }, + "SubmissionTime": { + "type": "string", + "description": "The time when the job was submitted to the ComputingEndpoint (DateTime_t)" + }, + "ComputingManagerSubmissionTime": { + "type": "string", + "description": "The time when the job was submitted to the ComputingManager (DateTime_t)" + }, + "StartTime": { + "type": "string", + "description": "The time when the ComputingManager started the job (DateTime_t)" + }, + "EndTime": { + "type": "string", + "description": "The time when the job ended in the Grid layer (DateTime_t)" + }, + "ComputingManagerEndTime": { + "type": "string", + "description": "The time when the job ended according to the ComputingManager (DateTime_t)" + }, + "WorkingAreaEraseTime": { + "type": "string", + "description": "The time when working area will be removed from storage (DateTime_t)" + }, + "ProxyExpirationTime": { + "type": "string", + "description": "The expiration time of the Grid proxy associated with the job (DateTime_t)" + }, + "SubmissionHost": { + "type": "string", + "description": "The name of the host from which the job was submitted" + }, + "SubmissionClientName": { + "type": "string", + "description": "The name of the software client used to submit the job" + }, + "OtherMessages": { + "type": "array", + "description": "Optional messages provided by either the Grid layer or the ComputingManager", + "items": { + "type": "string" + } + } + }, + "required": ["State","Owner"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/ComputingEndpoint.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/ComputingEndpoint.json b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingEndpoint.json new file mode 100644 index 0000000..f94f889 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingEndpoint.json @@ -0,0 +1,44 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingEndpoint.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}], + "properties": { + "Staging": { + "type": "string", + "description": "Supported file staging functionality - Staging_t", + "enum": ["none","stagingin","staginginout","stagingout"] + }, + "JobDescription": { + "type": "array", + "description": "Supported job description languages - JobDescription_t (open Enumeration)", + "items": { + "type": "string" + } + }, + "TotalJobs": { + "type": "integer", + "description": "The total number of Grid jobs known to the system" + }, + "RunningJobs": { + "type": "integer", + "description": "The number of Grid jobs which are running in an ExecutionEnvironment" + }, + "WaitingJobs": { + "type": "integer", + "description": "The number of Grid jobs which are waiting to start executing" + }, + "StagingJobs": { + "type": "integer", + "description": "The number of Grid jobs staging files before or after execution" + }, + "SuspendedJobs": { + "type": "integer", + "description": "The number of Grid jobs that started to execute, but are now suspended" + }, + "PreLRMSWaitingJobs": { + "type": "integer", + "description": "The number of Grid jobs managed by the Grid software, but not yet passed to the LRMS" + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/ComputingManager.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/ComputingManager.json b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingManager.json new file mode 100644 index 0000000..aecb114 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingManager.json @@ -0,0 +1,117 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingManager.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}], + "properties": { + "Reservation": { + "type": "boolean", + "description": "Whether advance reservation is supported (no value implies undefined in ExtendedBoolean_t)" + }, + "BulkSubmission": { + "type": "boolean", + "description": "Whether multiple jobs can be submitted at once (no value implies undefined in ExtendedBoolean_t)" + }, + "TotalPhysicalCPUs": { + "type": "integer", + "description": "The total number of physical CPUs managed by this ComputingManager" + }, + "TotalLogicalCPUs": { + "type": "integer", + "description": "The total number of logical CPUs managed by this ComputingManager" + }, + "TotalSlots": { + "type": "integer", + "description": "The total number of slots managed by this ComputingManager" + }, + "SlotsUsedByLocalJobs": { + "type": "integer", + "description": "The number of slots currently used by jobs submitted via a non-Grid interface" + }, + "SlotsUsedByGridJobs": { + "type": "integer", + "description": "The number of slots currently used by jobs submitted via a non-Grid interface" + }, + "Homogeneous": { + "type": "boolean", + "description": "Whether this ComputingManager manages only one type of ExecutionEnvironment" + }, + "NetworkInfo": { + "type": "array", + "description": "The types of internal network connections between ExecutionEnvironments (NetworkInfo_t)", + "items": { + "type": "string" + } + }, + "LocalCPUDistribution": { + "type": "boolean", + "description": "Classification of the managed ExecutionEnvironments aggregated by the number of logical CPUs" + }, + "WorkingAreaShared": { + "type": "boolean", + "description": "True if the working area is shared across different ExecutionEnvironments" + }, + "WorkingAreaGuaranteed": { + "type": "boolean", + "description": "True if the job is guaranteed all of WorkingAreaTotal" + }, + "WorkingAreaTotal": { + "type": "integer", + "description": "Total size of the working area available to single slot jobs (GB)" + }, + "WorkingAreaFree": { + "type": "integer", + "description": "The amount of free space in the working area (GB)" + }, + "WorkingAreaLifeTime": { + "type": "integer", + "description": "The minimum guaranteed lifetime of files created in the working area (seconds)" + }, + "WorkingAreaMultiSlotTotal": { + "type": "integer", + "description": "The total size of the working area across all ExecutionEnvironments (GB)" + }, + "WorkingAreaMultiSlotFree": { + "type": "integer", + "description": "The available space in the working area across all ExecutionEnvironments (GB)" + }, + "WorkingAreaMultiSlotLifeTime": { + "type": "integer", + "description": "The minimum guaranteed lifetime of files created in the working area (seconds)" + }, + "CacheTotal": { + "type": "integer", + "description": "If local caching of input files is supported, the total size of the area they may be stored in" + }, + "CacheFree": { + "type": "integer", + "description": "If local caching of input files is supported, the available size of the area they may be stored in" + }, + "TmpDir": { + "type": "string", + "description": "The absolute path of a temporary directory local to an ExecutionEnvironment" + }, + "ScratchDir": { + "type": "string", + "description": "The absolute path of a shared directory available for application data" + }, + "ApplicationDir": { + "type": "string", + "description": "The absolute path of a directory available for installation of persistent application software" + }, + "ApplicationEnvironmentID": { + "type": "array", + "description": "ID(s) of ApplicationEnvironments provided by this ComputingManager", + "items": { + "type": "string" + } + }, + "BenchmarkID": { + "type": "array", + "description": "ID(s) of Benchmarks associated with this ComputingManager", + "items": { + "type": "string" + } + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/ComputingService.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/ComputingService.json b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingService.json new file mode 100644 index 0000000..9cfde1b --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingService.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingService.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}], + "properties": { + "TotalJobs": { + "type": "integer", + "description": "The total number of Grid jobs known to the system" + }, + "RunningJobs": { + "type": "integer", + "description": "The number of Grid jobs which are running in an ExecutionEnvironment" + }, + "WaitingJobs": { + "type": "integer", + "description": "The number of Grid jobs which are waiting to start executing" + }, + "StagingJobs": { + "type": "integer", + "description": "The number of Grid jobs staging files before or after execution" + }, + "SuspendedJobs": { + "type": "integer", + "description": "The number of Grid jobs that started to execute, but are now suspended" + }, + "PreLRMSWaitingJobs": { + "type": "integer", + "description": "The number of Grid jobs managed by the Grid software, but not yet passed to the LRMS" + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/ComputingShare.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/ComputingShare.json b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingShare.json new file mode 100644 index 0000000..340c83e --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/ComputingShare.json @@ -0,0 +1,182 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingShare.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}], + "properties": { + "MappingQueue": { + "type": "string", + "description": "The name of the queue in the LRMS where jobs in this share are submitted" + }, + "MaxWallTime": { + "type": "integer", + "description": "The maximum wall clock time that a single-slot job can run (seconds)" + }, + "MaxMultiSlotWallTime": { + "type": "integer", + "description": "The maximum wall clock time that a multi-slot job can run (seconds)" + }, + "DefaultWallTime": { + "type": "integer", + "description": "The default wall clock per slot assumed by the LRMS if a maximum time is not specified (seconds)" + }, + "MaxCPUTime": { + "type": "integer", + "description": "The maximum pre-slot CPU time that a job can request (seconds)" + }, + "MaxTotalCPUTime": { + "type": "integer", + "description": "The maximum amount of CPU time that a job can request across all slots assigned to it (seconds)" + }, + "MinCPUTime": { + "type": "integer", + "description": "The minimum pre-slot CPU time that a job can request (seconds)" + }, + "DefaultCPUTime": { + "type": "integer", + "description": "The default CPU time limit assumed by the LRMS if a maximum time is not specified (seconds)" + }, + "MaxTotalJobs": { + "type": "integer", + "description": "The maximum number of jobs that can be in this Share" + }, + "MaxRunningJobs": { + "type": "integer", + "description": "The maximum number of jobs that can be running in this Share" + }, + "MaxWaitingJobs": { + "type": "integer", + "description": "The maximum number of jobs that can be waiting in this Share" + }, + "MaxPreLRMSWaitingJobs": { + "type": "integer", + "description": "The maximum number of jobs that can be waiting in the Grid layer for this Share" + }, + "MaxUserRunningJobs": { + "type": "integer", + "description": "The maximum number of jobs that can be running in this Share per user" + }, + "MaxSlotsPerJob": { + "type": "integer", + "description": "The maximum number of slots that can be allocated to a single job in this Share" + }, + "MaxStageInStreams": { + "type": "integer", + "description": "The maximum number of streams available to stage files in" + }, + "MaxStageOutStreams": { + "type": "integer", + "description": "The maximum number of streams available to stage files out" + }, + "ScheduingPolicy": { + "type": "string", + "description": "The scheduling policy used by the share - SchedulingPolicy_t (open enumeration)" + }, + "MaxMainMemory": { + "type": "integer", + "description": "The maximum amount of physical RAM that a job can use (MB)" + }, + "GuaranteedMainMemory": { + "type": "integer", + "description": "The amount of physical RAM that a job will have available (MB)" + }, + "MaxVirtualMemory": { + "type": "integer", + "description": "The maximum amount memory (RAM+swap) that a job can use (MB)" + }, + "GuaranteedVirtualMemory": { + "type": "integer", + "description": "The amount of memory (RAM+swap) that a job will have available (MB)" + }, + "MaxDiskSpace": { + "type": "integer", + "description": "The maximum disk space that a job can use in the working area (GB)" + }, + "DefaultStorageServiceID": { + "type": "string", + "description": "The ID of the default StorageService used to store files" + }, + "Preemption": { + "type": "boolean", + "description": "Whether jobs can be preempted and resumed (no value implies undefined in ExtendedBoolean_t)" + }, + "ServingState": { + "type": "string", + "description": "How the Share is currently serving jobs", + "enum": ["closed","draining","production","queueing"] + }, + "TotalJobs": { + "type": "integer", + "description": "The total number of jobs in any state" + }, + "RunningJobs": { + "type": "integer", + "description": "The number of running jobs submitted through Grid or non-Grid interfaces" + }, + "LocalRunningJobs": { + "type": "integer", + "description": "The number of running jobs submitted using non-Grid interfaces" + }, + "WaitingJobs": { + "type": "integer", + "description": "The number of waiting jobs submitted through Grid or non-Grid interfaces" + }, + "LocalWaitingJobs": { + "type": "integer", + "description": "The number of waiting jobs submitted using non-Grid interfaces" + }, + "SuspendedJobs": { + "type": "integer", + "description": "The number of suspended jobs submitted through Grid or non-Grid interfaces" + }, + "LocalSuspendedJobs": { + "type": "integer", + "description": "The number of suspended jobs submitted using non-Grid interfaces" + }, + "StagingJobs": { + "type": "integer", + "description": "The number of jobs staging files before or after execution" + }, + "PreLRMSWaitingJobs": { + "type": "integer", + "description": "The number of Grid jobs which have not yet been passed to the LRMS" + }, + "EstimatedAverageWaitingTime": { + "type": "integer", + "description": "An estimate of the average time a job will wait before it starts to execute (seconds)" + }, + "EstimatedWorstWaitingTime": { + "type": "integer", + "description": "An estimate of the worst-case time a job will wait before it starts to execute (seconds)" + }, + "FreeSlots": { + "type": "integer", + "description": "The number of slots which are currently available for use" + }, + "FreeSlotsWithDuration": { + "type": "string", + "description": "The number of slots which are currently available for use and how long they are available" + }, + "UsedSlots": { + "type": "integer", + "description": "The number of slots currently in use" + }, + "RequestedSlots": { + "type": "integer", + "description": "The number of slots needd to execute all waiting and staging jobs" + }, + "ReservationPolicy": { + "type": "string", + "description": "The policy used for advance reservation - ReservationPolicy_t", + "enum": ["mandatory","none","optional"] + }, + "Tag": { + "type": "array", + "description": "UserDomain-defined tags for this Share", + "items": { + "type": "string" + } + } + }, + "required": ["ServingState"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Contact.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Contact.json b/modules/gfac/gfac-impl/src/main/resources/schema/Contact.json new file mode 100644 index 0000000..436b262 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Contact.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Contact.json", + "description": "A GLUE 2 Contact", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Detail": { + "type": "string", + "description": "A URI embedding the contact information" + }, + "Type": { + "type": "string", + "description": "closed enumeration ContactType_t", + "enum": ["general","security","sysadmin","usersupport"] + }, + "ServiceID": { + "type": "array", + "description": "The IDs of Services associated with this Contact", + "items": { + "type": "string" + } + }, + "DomainID": { + "type": "array", + "description": "The IDs of Domains associated with this Contact", + "items": { + "type": "string" + } + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/DataStore.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/DataStore.json b/modules/gfac/gfac-impl/src/main/resources/schema/DataStore.json new file mode 100644 index 0000000..8f15447 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/DataStore.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/DataStore.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}], + "properties": { + "Type": { + "type": "string", + "description": "The type of storage medium - DataStoreType_t (disk,optical,tape,...)" + }, + "Latency": { + "type": "string", + "description": "The latency category under normal operating conditions - AccessLatency_t", + "enum": ["nearline","offline","online"] + }, + "TotalSize": { + "type": "integer", + "description": "The total amount of storage (GB)" + }, + "FreeSize": { + "type": "integer", + "description": "The amount of available storage (GB)" + }, + "UsedSize": { + "type": "integer", + "description": "The amount of used storage (GB)" + } + }, + "required": ["Type","Latency"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Domain.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Domain.json b/modules/gfac/gfac-impl/src/main/resources/schema/Domain.json new file mode 100644 index 0000000..5bd996b --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Domain.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Description": { + "type": "string", + "description": "A description of the Domain" + }, + "WWW": { + "type": "array", + "description": "URLs of web pages with more information about the Domain", + "items": { + "type": "string" + } + }, + "ContactID": { + "type": "array", + "description": "IDs of Contacts for this Domain", + "items": { + "type": "string" + } + }, + "LocationID": { + "type": "string", + "description": "The ID of the primary Location for this Domain" + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Endpoint.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Endpoint.json b/modules/gfac/gfac-impl/src/main/resources/schema/Endpoint.json new file mode 100644 index 0000000..b75b02a --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Endpoint.json @@ -0,0 +1,147 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "URL": { + "type": "string", + "description": "Network location of the endpoint" + }, + "Capability": { + "type": "array", + "description": "Capability_t (open enumeration)", + "items": { + "type": "string" + } + }, + "Technology": { + "type": "string", + "description": "EndpointTechnology_t" + }, + "InterfaceName": { + "type": "string", + "description": "InterfaceName_t" + }, + "InterfaceVersion": { + "type": "string", + "description": "The version of the primary interface protocol (free format)" + }, + "InterfaceExtension": { + "type": "array", + "description": "URIs identifying supported extensions to the interface protocol", + "items": { + "type": "string" + } + }, + "WSDL": { + "type": "array", + "description": "URLs of WSDL document(s) describing the interface", + "items": { + "type": "string" + } + }, + "SupportedProfile": { + "type": "array", + "description": "URI(s) identifying supported profiles for the Endpoint", + "items": { + "type": "string" + } + }, + "Semantics": { + "type": "array", + "description": "URL(s) of documents providing human-readable descriptions of the semantics of the Endpoint", + "items": { + "type": "string" + } + }, + "Implementor": { + "type": "string", + "description": "The name of the main organization implementing the Endpoint" + }, + "ImplementationName": { + "type": "string", + "description": "The name of the implementation of the Endpoint" + }, + "ImplementationVersion": { + "type": "string", + "description": "The version of the implementation of the Endpoint" + }, + "QualityLevel": { + "type": "string", + "description": "QualityLevel_t", + "enum": ["development","pre-production","production","testing"] + }, + "HealthState": { + "type": "string", + "description": "The operational status of the Endpoint", + "enum": ["critical","ok","other","unknown","warning"] + }, + "HealthStateInfo": { + "type": "string", + "description": "A human-readable explanation of the HealthState of this Endpoint" + }, + "ServingState": { + "type": "string", + "description": "If the endpoint is accepting and serving requests", + "enum": ["closed","draining","production","queueing"] + }, + "StartTime": { + "type": "string", + "description": "The start time of the Service associated with this Endpoint (DateTime_t)" + }, + "IssuerCA": { + "type": "string", + "description": "The DN of the CA issuing the certificate presented by this Endpoint" + }, + "TrustedCA": { + "type": "array", + "description": "DN(s) of CAs trusted by this Endpoint", + "items": { + "type": "string" + } + }, + "DowntimeAnnounce": { + "type": "string", + "description": "When the next scheduled downtime was announced (DateTime_t)" + }, + "DowntimeStart": { + "type": "string", + "description": "When the next scheduled downtime will start (DateTime_t)" + }, + "DowntimeEnd": { + "type": "string", + "description": "When the next scheduled downtime will end (DateTime_t)" + }, + "DowntimeInfo": { + "type": "string", + "description": "Human-readable of the next scheduled downtime" + }, + "ServiceID": { + "type": "string", + "description": "The ID of the Service associated with this Endpoint" + }, + "ShareID": { + "type": "array", + "description": "The IDs of the Shares accessible from this Endpoint", + "items": { + "type": "string" + } + }, + "AccessPolicyID": { + "type": "array", + "description": "IDs of AccessPolicies associated with this Endpoint", + "items": { + "type": "string" + } + }, + "ActivityID": { + "type": "array", + "description": "IDs of Activities being managed through this Endpoint", + "items": { + "type": "string" + } + } + }, + "required": ["InterfaceName","QualityLevel","HealthState","ServingState","ServiceID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Entity.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Entity.json b/modules/gfac/gfac-impl/src/main/resources/schema/Entity.json new file mode 100644 index 0000000..5d1ae46 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Entity.json @@ -0,0 +1,35 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json", + "type": "object", + "properties": { + "CreationTime": { + "type": "string", + "description": "The creation time of this entity in the format: CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]" + }, + "Validity": { + "type": "integer", + "description": "The number of seconds after CreationTime that this entity should be considered relevant" + }, + "ID": { + "type": "string", + "description": "A globally unique identifier for this entity" + }, + "Name": { + "type": "string", + "description": "A human-readable name" + }, + "OtherInfo": { + "type": "array", + "description": "Placeholder for information that does not fit in any other attribute", + "items": { + "type": "string" + } + }, + "Extension": { + "type": "object", + "description": "Key/value pairs enabling the association of extra information not captured by the model" + } + }, + "required": ["ID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/ExecutionEnvironment.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/ExecutionEnvironment.json b/modules/gfac/gfac-impl/src/main/resources/schema/ExecutionEnvironment.json new file mode 100644 index 0000000..77bf876 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/ExecutionEnvironment.json @@ -0,0 +1,115 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ExecutionEnvironment.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}], + "properties": { + "Platform": { + "type": "string", + "description": "The platform architecture - Platform_t (open enumeration)" + }, + "VirtualMachine": { + "type": "boolean", + "description": "True if the ExecutionEnvironment is a virtual machine" + }, + "TotalInstances": { + "type": "integer", + "description": "The total number of ExecutionEnvironment instances" + }, + "UsedInstances": { + "type": "integer", + "description": "The number of ExecutionEnvironment instances in use" + }, + "UnavailableInstances": { + "type": "integer", + "description": "The number of ExecutionEnvironment instances that are unavailable" + }, + "PhysicalCPUs": { + "type": "integer", + "description": "The number of physical CPUs in one ExecutionEnvironment instance" + }, + "LogicalCPUs": { + "type": "integer", + "description": "The number of logical CPUs in one ExecutionEnvironment instance" + }, + "CPUMultiplicity": { + "type": "string", + "description": "Information about the CPUs and cores in an execution environment", + "enum": ["multicpu-multicore","multicpu-singlecore","singlecpu-multicore","singlecpu-singlecore"] + }, + "CPUVendor": { + "type": "string", + "description": "The name of the manufacturer of the CPU" + }, + "CPUModel": { + "type": "string", + "description": "The model of the CPU, as defined by the vendor" + }, + "CPUVersion": { + "type": "string", + "description": "The specific version name of the CPU, as defined by the vendor" + }, + "CPUClockSpeed": { + "type": "integer", + "description": "The clock speed of the CPU (MHz)" + }, + "CPUTimeScalingFactor": { + "type": "float", + "description": "The factor used by the ComputingManager to scale the CPU time limit" + }, + "WallTimeScalingFactor": { + "type": "float", + "description": "The factor used by the ComputingManager to scale the wallclock time limit" + }, + "MainMemorySize": { + "type": "integer", + "description": "The total amount of physical RAM in one ExecutionEnvironment instance (MB)" + }, + "VirtualMemorySize": { + "type": "integer", + "description": "The total amount of virtual memory (RAM+swap) in one ExecutionEnvironment instance (MB)" + }, + "OSFamily": { + "type": "string", + "description": "The general family of the operating system - OSFamily_t (open enumeration)" + }, + "OSName": { + "type": "string", + "description": "The specific name of the operating system - OSName_t (open enumeration)" + }, + "OSVersion": { + "type": "string", + "description": "The version of the operating system, as defined by the vendor" + }, + "ConnectivityIn": { + "type": "boolean", + "description": "True if direct inbound network connectiity is available to a running job" + }, + "ConnectivityOut": { + "type": "boolean", + "description": "True if direct outbound network connectiity is available to a running job" + }, + "NetworkInfo": { + "type": "array", + "description": "The types of internal network connections between ExecutionEnvironments - NetworkInfo_t (open enumeration)", + "items": { + "type": "string" + } + }, + "ApplicationEnvironmentID": { + "type": "array", + "description": "ID(s) of ApplicationEnvironments available in this ExecutionEnvironment", + "items": { + "type": "string" + } + }, + "BenchmarkID": { + "type": "array", + "description": "ID(s) of Benchmarks associated with this ExecutionEnvironment", + "items": { + "type": "string" + } + } + }, + "required": ["Platform","MainMemorySize","OSFamily","ConnectivityIn","ConnectivityOut"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Glue2.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Glue2.json b/modules/gfac/gfac-impl/src/main/resources/schema/Glue2.json new file mode 100644 index 0000000..bb80505 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Glue2.json @@ -0,0 +1,246 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Glue2.json", + "description": "A GLUE 2 document", + "type": "object", + "properties": { + "Entity": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}] + } + }, + "Location": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Location.json"}] + } + }, + "Contact": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Contact.json"}] + } + }, + "Domain": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json"}] + } + }, + "AdminDomain": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AdminDomain.json"}] + } + }, + "UserDomain": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/UserDomain.json"}] + } + }, + "Service": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}] + } + }, + "Endpoint": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}] + } + }, + "Share": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}] + } + }, + "Manager": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Manager.json"}] + } + }, + "Resource": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}] + } + }, + "Activity": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json"}] + } + }, + "Policy": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}] + } + }, + "AccessPolicy": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AccessPolicy.json"}] + } + }, + "MappingPolicy": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/MappingPolicy.json"}] + } + }, + "ComputingService": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingService.json"}] + } + }, + "ComputingEndpoint": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingEndpoint.json"}] + } + }, + "ComputingShare": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingShare.json"}] + } + }, + "ComputingManager": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingManager.json"}] + } + }, + "Benchmark": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Benchmark.json"}] + } + }, + "ExecutionEnvironment": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ExecutionEnvironment.json"}] + } + }, + "ApplicationEnvironment": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationEnvironment.json"}] + } + }, + "ApplicationHandle": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationHandle.json"}] + } + }, + "ComputingActivity": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingActivity.json"}] + } + }, + "ToStorageService": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToStorageService.json"}] + } + }, + "StorageService": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageService.json"}] + } + }, + "StorageServiceCapacity": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageServiceCapacity.json"}] + } + }, + "StorageAccessProtocol": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageAccessProtocol.json"}] + } + }, + "StorageEndpoint": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageEndpoint.json"}] + } + }, + "StorageShare": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShare.json"}] + } + }, + "StorageShareCapacity": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShareCapacity.json"}] + } + }, + "StorageManager": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageManager.json"}] + } + }, + "DataStore": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/DataStore.json"}] + } + }, + "ToComputingService": { + "type": "array", + "items": { + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToComputingService.json"}] + } + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Location.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Location.json b/modules/gfac/gfac-impl/src/main/resources/schema/Location.json new file mode 100644 index 0000000..8491cc0 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Location.json @@ -0,0 +1,47 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Location.json", + "description": "A GLUE 2 Location", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Address": { + "type": "string", + "description": "A free format street address" + }, + "Place": { + "type": "string", + "description": "Name of town/city" + }, + "Country": { + "type": "string", + "description": "Name of country" + }, + "PostalCode": { + "type": "string", + "description": "Postal code" + }, + "Latitude": { + "type": "number", + "description": "Position north (positive) or south (negative) of the equator in degrees" + }, + "Longitude": { + "type": "number", + "description": "Position east (positive) or west (negative) of the primary meridian in degrees" + }, + "ServiceID": { + "type": "array", + "description": "The IDs of Services at this location", + "items": { + "type": "string" + } + }, + "DomainID": { + "type": "array", + "description": "The IDs of Domains at this location", + "items": { + "type": "string" + } + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Manager.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Manager.json b/modules/gfac/gfac-impl/src/main/resources/schema/Manager.json new file mode 100644 index 0000000..d1df50a --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Manager.json @@ -0,0 +1,28 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Manager.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "ProductName": { + "type": "string", + "description": "The name of the software product which implements the Manager" + }, + "ProductVersion": { + "type": "string", + "description": "The version of the software product which implements the Manager" + }, + "ServiceID": { + "type": "string", + "description": "The ID of the Service this Share participates in" + }, + "ResourceID": { + "type": "array", + "description": "ID(s) of Resources associated with this Share", + "items": { + "type": "string" + } + } + }, + "required": ["ProductName","ServiceID","ResourceID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/MappingPolicy.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/MappingPolicy.json b/modules/gfac/gfac-impl/src/main/resources/schema/MappingPolicy.json new file mode 100644 index 0000000..268844d --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/MappingPolicy.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/MappingPolicy.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}], + "properties": { + "ShareID": { + "type": "string", + "description": "The ID of the Share this MappingPolicy is for" + } + }, + "required": ["ShareID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Policy.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Policy.json b/modules/gfac/gfac-impl/src/main/resources/schema/Policy.json new file mode 100644 index 0000000..f936699 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Policy.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Scheme": { + "type": "string", + "description": "PolicyScheme_t (open enumeration)" + }, + "Rule": { + "type": "array", + "description": "Policy rules", + "items": { + "type": "string" + } + }, + "UserDomainID": { + "type": "array", + "description": "The ID(s) of the UserDomains this Policy applies to", + "items": { + "type": "string" + } + } + }, + "required": ["Scheme","Rule","UserDomainID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Resource.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Resource.json b/modules/gfac/gfac-impl/src/main/resources/schema/Resource.json new file mode 100644 index 0000000..88d08ad --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Resource.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "ManagerID": { + "type": "string", + "description": "The ID of the Manager for this Resource" + }, + "ShareID": { + "type": "array", + "description": "The ID(s) of the Shares this Resource is part of", + "items": { + "type": "string" + } + }, + "ActivityID": { + "type": "array", + "description": "The ID(s) of Activities consuming from this Share", + "items": { + "type": "string" + } + } + }, + "required": ["ManagerID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Service.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Service.json b/modules/gfac/gfac-impl/src/main/resources/schema/Service.json new file mode 100644 index 0000000..4662407 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Service.json @@ -0,0 +1,75 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Capability": { + "type": "array", + "description": "Capability_t (open enumeration)", + "items": { + "type": "string" + } + }, + "Type": { + "type": "string", + "description": "ServiceType_t (open enumeration)" + }, + "QualityLevel": { + "type": "string", + "description": "QualityLevel_t", + "enum": ["development","pre-production","production","testing"] + }, + "StatusInfo": { + "type": "array", + "description": "URLs of web pages providing additional information", + "items": { + "type": "string" + } + }, + "Complexity": { + "type": "string", + "description": "A human-readable description of the number of endpoint types, shares, and resources" + }, + "EndpointID": { + "type": "array", + "description": "The IDs of Endpoints for this Service", + "items": { + "type": "string" + } + }, + "ShareID": { + "type": "array", + "description": "The IDs of the Shares offered by this Service", + "items": { + "type": "string" + } + }, + "ManagerID": { + "type": "array", + "description": "The IDs of the Managers of this Service", + "items": { + "type": "string" + } + }, + "ContactID": { + "type": "array", + "description": "The IDs of Contacts for this Service", + "items": { + "type": "string" + } + }, + "LocationID": { + "type": "string", + "description": "The ID of the primary Location of this Service" + }, + "ServiceID": { + "type": "array", + "description": "The IDs of Services related to this Service", + "items": { + "type": "string" + } + } + }, + "required": ["Type","QualityLevel"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/Share.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/Share.json b/modules/gfac/gfac-impl/src/main/resources/schema/Share.json new file mode 100644 index 0000000..258fc1b --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/Share.json @@ -0,0 +1,45 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Description": { + "type": "string", + "description": "A human-readable description of the Share" + }, + "EndpointID": { + "type": "array", + "description": "The ID(s) of the Endpoints that can be used to access this Share", + "items": { + "type": "string" + } + }, + "ResourceID": { + "type": "array", + "description": "The ID(s) of the Resources associated with this Share", + "items": { + "type": "string" + } + }, + "ServiceID": { + "type": "string", + "description": "The ID of the Service this Share participates in" + }, + "ActivityID": { + "type": "array", + "description": "The ID(s) of Activities consuming from this Share", + "items": { + "type": "string" + } + }, + "MappingPolicyID": { + "type": "array", + "description": "ID(s) of MappingPolicies associated with this Share", + "items": { + "type": "string" + } + } + }, + "required": ["ServiceID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/StorageAccessProtocol.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/StorageAccessProtocol.json b/modules/gfac/gfac-impl/src/main/resources/schema/StorageAccessProtocol.json new file mode 100644 index 0000000..05a830b --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/StorageAccessProtocol.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageAccessProtocol.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Type": { + "type": "string", + "description": "The type of the protocol - StorageAccessProtocol_t" + }, + "Version": { + "type": "string", + "description": "The version of the protocol supported" + }, + "MaxStreams": { + "type": "integer", + "description": "The maximum number of parallel network streams which can be usef for a single transfer" + }, + "StorageServiceID": { + "type": "string", + "description": "The ID of the StorageService this protocol is available for" + }, + "ToComputingServiceID": { + "type": "array", + "description": "The ID(s) ToComputingService objects that describe connectivity to ComputingServices", + "items": { + "type": "string" + } + } + }, + "required": ["Type","Version","StorageServiceID"] +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/StorageEndpoint.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/StorageEndpoint.json b/modules/gfac/gfac-impl/src/main/resources/schema/StorageEndpoint.json new file mode 100644 index 0000000..38b27c4 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/StorageEndpoint.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageEndpoint.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}], + "properties": { + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/StorageManager.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/StorageManager.json b/modules/gfac/gfac-impl/src/main/resources/schema/StorageManager.json new file mode 100644 index 0000000..f3984f6 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/StorageManager.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageManager.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}], + "properties": { + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/StorageService.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/StorageService.json b/modules/gfac/gfac-impl/src/main/resources/schema/StorageService.json new file mode 100644 index 0000000..a03d111 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/StorageService.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageService.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}], + "properties": { + "StorageAccessProtocolID": { + "type": "array", + "description": "The ID(s) of the StorageAccessProtocols supported by this service", + "items": { + "type": "string" + } + }, + "StorageServiceCapacityID": { + "type": "array", + "description": "The ID(s) of the StorageServiceCapacities for this Service", + "items": { + "type": "string" + } + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/StorageServiceCapacity.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/StorageServiceCapacity.json b/modules/gfac/gfac-impl/src/main/resources/schema/StorageServiceCapacity.json new file mode 100644 index 0000000..a25c204 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/StorageServiceCapacity.json @@ -0,0 +1,33 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageServiceCapacity.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}], + "properties": { + "Type": { + "type": "string", + "description": "The type of storage capacity - StorageCapacity_t" + }, + "TotalSize": { + "type": "integer", + "description": "The total amount of storage of this type (GB)" + }, + "FreeSize": { + "type": "integer", + "description": "The amount of currently available storage of this type (GB)" + }, + "UsedSize": { + "type": "integer", + "description": "The amount storage of this type in use (GB)" + }, + "ReservedSize": { + "type": "integer", + "description": "The amount storage of this type which is not in use, but has been reserved for use in use (GB)" + }, + "StorageServiceID": { + "type": "string", + "description": "The ID of the StorageService this capacity describes" + } + }, + "required": ["Type","StorageServiceID"] +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/modules/gfac/gfac-impl/src/main/resources/schema/StorageShare.json ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-impl/src/main/resources/schema/StorageShare.json b/modules/gfac/gfac-impl/src/main/resources/schema/StorageShare.json new file mode 100644 index 0000000..9703118 --- /dev/null +++ b/modules/gfac/gfac-impl/src/main/resources/schema/StorageShare.json @@ -0,0 +1,65 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShare.json", + "type": "object", + "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}], + "properties": { + "ServingState": { + "type": "string", + "description": "How the Share is currently serving jobs", + "enum": ["closed","draining","production","queueing"] + }, + "Path": { + "type": "string", + "description": "A default namespace where files are logically placed when they are stored in this Share" + }, + "AccessMode": { + "type": "array", + "description": "The type of access allowed for this share - AccessMode_t (undefined)", + "items": { + "type": "string" + } + }, + "SharingID": { + "type": "string", + "description": "A local identifier common to the set of StorageShares which use the same underling extents" + }, + "AccessLatency": { + "type": "string", + "description": "The maximum latency category under normal operating conditions", + "enum": ["nearline","offline","online"] + }, + "RetentionPolicy": { + "type": "string", + "description": "The quality of data retention - RetentionPolicy_t" + }, + "ExpirationMode": { + "type": "array", + "description": "Supported file lifetime modes", + "items": { + "type": "string", + "enum": ["neverexpire","releasewhenexpired","warnwhenexpired"] + } + }, + "DefaultLifeTime": { + "type": "integer", + "description": "The default lifetime assigned to a new file" + }, + "MaximumLifeTime": { + "type": "integer", + "description": "The maximum lifetime that can be requested for a file" + }, + "Tag": { + "type": "string", + "description": "An identifier defined by a UserDomain" + }, + "StorageShareCapacityID": { + "type": "array", + "description": "ID of the StorageShareCapacities associated with this share", + "items": { + "type": "string" + } + } + }, + "required": ["ServingState","SharingID","AccessLatency"] +}
