[Swift-commit] r7943 - trunk/resources

hategan at ci.uchicago.edu hategan at ci.uchicago.edu
Fri Jul 4 01:11:00 CDT 2014


Author: hategan
Date: 2014-07-04 01:10:58 -0500 (Fri, 04 Jul 2014)
New Revision: 7943

Modified:
   trunk/resources/swift-sites-2.0.xsd
Log:
updated swift sites schema with the new sites spec

Modified: trunk/resources/swift-sites-2.0.xsd
===================================================================
--- trunk/resources/swift-sites-2.0.xsd	2014-07-04 06:10:06 UTC (rev 7942)
+++ trunk/resources/swift-sites-2.0.xsd	2014-07-04 06:10:58 UTC (rev 7943)
@@ -5,27 +5,6 @@
 	targetNamespace="http://www.ci.uchicago.edu/swift/SwiftSites" 
 	elementFormDefault="qualified" 
 	attributeFormDefault="unqualified" version="1.5">
-	<xs:simpleType name="ProfileNamespace">
-		<xs:annotation>
-			<xs:documentation>defines the legal namespaces of execution profiles.</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="xs:NMTOKEN">
-			<xs:enumeration value="vds"/>
-			<xs:enumeration value="swift"/>
-			<xs:enumeration value="env"/>
-			<xs:enumeration value="hints"/>
-			<xs:enumeration value="globus"/>
-			<xs:enumeration value="karajan"/>
-		</xs:restriction>
-	</xs:simpleType>
-	<xs:attributeGroup name="GlobusVersionInfo">
-		<xs:annotation>
-			<xs:documentation>A set of attributes to define a Globus version.</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="major" type="xs:positiveInteger" use="required"/>
-		<xs:attribute name="minor" type="xs:nonNegativeInteger" use="required"/>
-		<xs:attribute name="patch" type="xs:nonNegati
 veInteger" use="optional"/>
-	</xs:attributeGroup>
 	<xs:simpleType name="OSType">
 		<xs:restriction base="xs:NMTOKEN">
 			<xs:enumeration value="INTEL32::LINUX"/>
@@ -49,60 +28,29 @@
 					</xs:annotation>
 					<xs:complexType>
 						<xs:sequence maxOccurs="unbounded">
-							<xs:element ref="profile" minOccurs="0" maxOccurs="unbounded"/>
-							<xs:element ref="env" minOccurs="0" maxOccurs="unbounded"/>
+							<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
 							<xs:element ref="workdirectory" minOccurs="0" maxOccurs="1"/>
 							<xs:element ref="scratch" minOccurs="0" maxOccurs="1"/>
 							<xs:element ref="execution" minOccurs="0" maxOccurs="1"/>
 							<xs:element ref="filesystem" minOccurs="0" maxOccurs="1"/>
-							<xs:element ref="application" minOccurs="0" maxOccurs="unbounded"/>
+							<xs:element ref="apps" minOccurs="0" maxOccurs="1"/>
 						</xs:sequence>
 						<xs:attribute name="name" type="xs:string" use="required"/>
 						<xs:attribute name="sysinfo" type="OSType" use="optional" default="INTEL32::LINUX"/>
 					</xs:complexType>
 				</xs:element>
+				<xs:element ref="app" minOccurs="0" maxOccurs="unbounde
 d"/>
 			</xs:sequence>
 		</xs:complexType>
 	</xs:element>
-	<xs:element name="config">
+	<xs:element name="property">
 		<xs:annotation>
-			<xs:documentation>root element aggregating all sites information there is.</xs:documentation>
+			<xs:documentation>A name value pair representing a custom property</xs:documentation>
 		</xs:annotation>
 		<xs:complexType>
-			<xs:sequence maxOccurs="unbounded">
-				<xs:element name="pool" minOccurs="0" maxOccurs="unbounded">
-					<xs:annotation>
-						<xs:documentation>Describes a single site.</xs:documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:sequence maxOccurs="unbounded">
-							<xs:element ref="profile" minOccurs="0" maxOccurs="unbounded"/>
-							<xs:element ref="env" minOccurs="0" maxOccurs="unbounded"/>
-							<xs:element ref="workdirectory" minOccurs="0" maxOccurs="1"/>
-							<xs:element ref="scratch" minOccurs="0" maxOccurs="1"/>
-							<xs:element ref="execution" minOccurs="0" maxOccurs="
 1"/>
-							<xs:element ref="filesystem" minOccurs="0" maxOccurs="1"/>
-							<xs:element ref="gridftp" minOccurs="0" maxOccurs="1"/>
-							<xs:element ref="jobmanager" minOccurs="0" maxOccurs="1"/>
-						</xs:sequence>
-						<xs:attribute name="handle" type="xs:ID" use="required"/>
-						<xs:attribute name="sysinfo" type="xs:string" use="optional" default="INTEL32::LINUX"/>
-						
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="version" type="xs:decimal" use="optional" default="1.0"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="profile">
-		<xs:annotation>
-			<xs:documentation>Administrative profile defaults associated with a pool.</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
 			<xs:simpleContent>
 				<xs:extension base="xs:string">
-					<xs:attribute name="namespace" type="ProfileNamespace" use="required"/>
-					<xs:attribute name="key" type="xs:string" use="required"/>
+					<xs:attribute name="
 name" type="xs:string" use="required"/>
 				</xs:extension>
 			</xs:simpleContent>
 		</xs:complexType>
@@ -123,7 +71,7 @@
 	
 	<xs:element name="scratch">
 		<xs:annotation>
-			<xs:documentation>TODO</xs:documentation>
+			<xs:documentation>A scratch directory. If specified, applications will run in this directory on compute nodes</xs:documentation>
 		</xs:annotation>
 	</xs:element>
 	
@@ -132,6 +80,9 @@
 			<xs:documentation>Describes the mechanism used to submit jobs to the pool</xs:documentation>
 		</xs:annotation>
 		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
 			<xs:attribute name="provider" type="xs:string" use="required"/>
 			<xs:attribute name="jobManager" type="xs:string" use="optional"/>
 			<xs:attribute name="jobmanager" type="xs:string" use="optional"/>
@@ -144,97 +95,48 @@
 			<xs:documentation>Describes the mechanism used to interact with the filesystem on the given pool</xs:documentation>
 		</xs:annotation>
 		<xs:complexType>
+			<xs:sequence>
+				<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
 			<xs:attribute name="provider" type="xs:string" use="required"/>
 			<xs:attribute name="url" type="xs:string" use="optional" default="localhost"/>
 		</xs:complexType>
 	</xs:element>
 	
-	<xs:element name="gridftp">
+	<xs:element name="env">
 		<xs:annotation>
-			<xs:documentation>Each pool may have multiple gridftp servers.</xs:documentation>
+			<xs:documentation>Allows specifying an environment variable that all applications on this site will see</xs:documentation>
 		</xs:annotation>
 		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="bandwidth" minOccurs="0" maxOccurs="unbounded">
-					<xs:annotation>
-						<xs:documentation>Stores the bandwidth informaion related to each gridftp server.</xs:
 documentation>
-					</xs:annotation>
-					<xs:complexType>
-						<xs:attribute name="dest-subnet" type="xs:string" use="required"/>
-						<xs:attribute name="avg-bandwidth" type="xs:float" use="required"/>
-						<xs:attribute name="max-bandwidth" type="xs:float" use="required"/>
-						<xs:attribute name="min-bandwidth" type="xs:float" use="required"/>
-						<xs:attribute name="avg-bandwidth-range1" type="xs:float" use="optional"/>
-						<xs:attribute name="avg-bandwidth-range2" type="xs:float" use="optional"/>
-						<xs:attribute name="avg-bandwidth-range3" type="xs:float" use="optional"/>
-						<xs:attribute name="avg-bandwidth-range4" type="xs:float" use="optional"/>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:attribute name="url" type="xs:anyURI" use="required">
-				<xs:annotation>
-					<xs:documentation>The URL (actually, it may be more a URI, but hey, so what) is the access URL to the gridftp server. Each pool may have multiple grid
 ftp servers, or run multiple versions of Globus on different ports.</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="storage" type="xs:string" use="optional" default="/">
-				<xs:annotation>
-					<xs:documentation>This element is the storage mount point prefix. Of course, this may get turned over into other things, augmented by user and system requirements etc. I believe that default works quite well for default Globus setups. </xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attributeGroup ref="GlobusVersionInfo"/>
-			<xs:attribute name="total-size" type="xs:decimal" use="optional"/>
-			<xs:attribute name="free-size" type="xs:decimal" use="optional"/>
+			<xs:simpleContent>
+				<xs:extension base="xs:string">
+					<xs:attribute name="name" type="xs:string" use="required"/>
+				</xs:extension>
+			</xs:simpleContent>
 		</xs:complexType>
 	</xs:element>
-	<xs:element name="jobmanager">
+	
+	<xs:element name="apps
 ">
 		<xs:annotation>
-			<xs:documentation>Each pool supports various (usually two) jobmanagers.</xs:documentation>
+			<xs:documentation>Specifies the set of applications defined on a site</xs:documentation>
 		</xs:annotation>
 		<xs:complexType>
-			<xs:attribute name="universe" type="xs:token" use="required">
-				<xs:annotation>
-					<xs:documentation>The universe name is actually the primary key for the jobmanager identification.</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attribute name="url" type="xs:string" use="required">
-				<xs:annotation>
-					<xs:documentation>The contact string is the secondary key for any job manager.</xs:documentation>
-				</xs:annotation>
-			</xs:attribute>
-			<xs:attributeGroup ref="GlobusVersionInfo">
-				<xs:annotation>
-					<xs:documentation>Any pool may have multiple versions of Globus installed, and these versions may have multiple jobmanagers listening on different ports.</xs:documentation>
-				</xs
 :annotation>
-			</xs:attributeGroup>
-			<xs:attribute name="free-mem" type="xs:string" use="optional"/>
-			<xs:attribute name="total-mem" type="xs:string" use="optional"/>
-			<xs:attribute name="max-count" type="xs:string" use="optional"/>
-			<xs:attribute name="max-cpu-time" type="xs:string" use="optional"/>
-			<xs:attribute name="running-jobs" type="xs:nonNegativeInteger" use="optional"/>
-			<xs:attribute name="jobs-in-queue" type="xs:nonNegativeInteger" use="optional"/>
-			<xs:attribute name="idle-nodes" type="xs:nonNegativeInteger" use="optional"/>
-			<xs:attribute name="total-nodes" type="xs:nonNegativeInteger" use="optional"/>
-			<xs:attribute name="os" type="xs:string" use="optional"/>
-			<xs:attribute name="arch" type="xs:string" use="optional"/>
-			<xs:attribute name="type" type="xs:string" use="optional"/>
-			<xs:attribute name="subnet" type="xs:string" use="optional"/>
+			<xs:sequence maxOccurs="unbounded">
+				<xs:element ref="property" minOccurs="
 0" maxOccurs="unbounded"/>
+				<xs:element ref="env" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element ref="app" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
 		</xs:complexType>
 	</xs:element>
-	<xs:element name="env">
+	
+	<xs:element name="app">
 		<xs:annotation>
-			<xs:documentation>Allows specifying an environment variable that all applications on this site will see</xs:documentation>
-		</xs:annotation>
-		<xs:complexType>
-			<xs:attribute name="key" type="xs:string" use="required"/>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="application">
-		<xs:annotation>
 			<xs:documentation>Specifies the details of an application installed on a site</xs:documentation>
 		</xs:annotation>
 		<xs:complexType>
 			<xs:sequence maxOccurs="unbounded">
-				<xs:element ref="profile" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element ref="env" minOccurs="0" maxOccurs="unbounded"
 />
 			</xs:sequence>
 			<xs:attribute name="name" type="xs:string" use="required"/>
 			<xs:attribute name="executable" type="xs:string" use="required"/>



More information about the Swift-commit mailing list