Commit 1d8a37d1 authored by Robert Ricci's avatar Robert Ricci

Add CM URL (optional) to RSpec

Need to figure out some way that all these auxiliary xsd files don't
need to change every time we update one of the base files...
parent 366c271b
......@@ -26,19 +26,27 @@ include "../../assign/top.rnc" {
# that we can later get updates that include only this attribute (and a
# UUID) Just binary for now - probably will include more things, such
# as a number of "free slots", later
element avaiable { xsd:boolean }? }
element avaiable { xsd:boolean }?,
# Optionally, include the URL for this component's CM
CMURLSpec?
LinkSpec &=
# Semantic change - the 'name' of a (physical) link is now
# solely for human-readability. It's the UUID, which we add here,
# that is the "true" identifier.
attribute uuid { text },
attribute name { text }?
# TODO: Might add a URL for the CM for a link in the future
InterfaceSpec &=
# Semantic change - the 'name' in an interface is solely for human
# readability. It's the UUID that is used to uniquely identify a
# node.
attribute node_uuid { text },
attribute node_name { text }?
}
## How to contact a component manager. In the future, could include information
## about the version of the interface it supports, or something like that...
CMURLSpec = element component_manager_URL { xsd:anyURI }
RSpec = element rspec {
# TODO: Include something about who generated this rspec?
......
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:top="http://emulab.net/resources/top/0.2">
<xs:import namespace="http://emulab.net/resources/top/0.2" schemaLocation="top.xsd"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="top.xsd"/>
<!--
EMULAB-COPYRIGHT
......@@ -17,6 +17,7 @@
<xs:group name="NodeSpec">
<xs:sequence>
<xs:element minOccurs="0" ref="avaiable"/>
<xs:element minOccurs="0" ref="component_manager_URL"/>
</xs:sequence>
</xs:group>
<xs:element name="avaiable" type="xs:boolean"/>
......@@ -34,12 +35,19 @@
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="LinkSpec">
<xs:attribute name="uuid" use="required"/>
<xs:attribute name="name"/>
</xs:attributeGroup>
<!-- TODO: Might add a URL for the CM for a link in the future -->
<xs:attributeGroup name="InterfaceSpec">
<xs:attribute name="node_uuid" use="required"/>
<xs:attribute name="node_name"/>
</xs:attributeGroup>
<xs:element name="component_manager_URL" type="xs:anyURI"/>
<xs:element name="rspec">
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="NodeSpec"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="top:link"/>
</xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="NodeSpec"/>
<xs:attribute name="generated" use="required" type="xs:dateTime"/>
<xs:attribute name="valid_until" use="required" type="xs:dateTime"/>
<xs:attribute name="uuid"/>
......
......@@ -14,7 +14,6 @@
by others.)
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.protogeni.net/resources/rspec/0.1" xmlns:rspec="http://www.protogeni.net/resources/rspec/0.1" xmlns:top="http://emulab.net/resources/top/0.2">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.protogeni.net/resources/rspec/0.1" xmlns:rspec="http://www.protogeni.net/resources/rspec/0.1">
<xs:include schemaLocation="protogeni-rspec-common.xsd"/>
<xs:import namespace="http://emulab.net/resources/top/0.2" schemaLocation="top.xsd"/>
</xs:schema>
......@@ -18,9 +18,8 @@
document, each with a reference to the credential it signs.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.protogeni.net/resources/credential/0.1" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1" xmlns:top="http://emulab.net/resources/top/0.2">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.protogeni.net/resources/credential/0.1" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1">
<xs:include schemaLocation="protogeni-rspec-common.xsd"/>
<xs:import namespace="http://emulab.net/resources/top/0.2" schemaLocation="top.xsd"/>
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="sig.xsd"/>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<xs:complexType name="anyelementbody" mixed="true">
......
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.protogeni.net/resources/credential/0.1" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1" xmlns:top="http://emulab.net/resources/top/0.2">
<xs:import namespace="http://emulab.net/resources/top/0.2" schemaLocation="top.xsd"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.protogeni.net/resources/credential/0.1" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1">
<xs:include schemaLocation="top.xsd"/>
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="sig.xsd"/>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<!--
......@@ -19,6 +19,7 @@
<xs:group name="NodeSpec">
<xs:sequence>
<xs:element minOccurs="0" ref="credential:avaiable"/>
<xs:element minOccurs="0" ref="credential:component_manager_URL"/>
</xs:sequence>
</xs:group>
<xs:element name="avaiable" type="xs:boolean"/>
......@@ -36,12 +37,19 @@
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="LinkSpec">
<xs:attribute name="uuid" use="required"/>
<xs:attribute name="name"/>
</xs:attributeGroup>
<!-- TODO: Might add a URL for the CM for a link in the future -->
<xs:attributeGroup name="InterfaceSpec">
<xs:attribute name="node_uuid" use="required"/>
<xs:attribute name="node_name"/>
</xs:attributeGroup>
<xs:element name="component_manager_URL" type="xs:anyURI"/>
<xs:element name="rspec">
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="credential:NodeSpec"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="top:link"/>
</xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="credential:NodeSpec"/>
<xs:attribute name="generated" use="required" type="xs:dateTime"/>
<xs:attribute name="valid_until" use="required" type="xs:dateTime"/>
<xs:attribute name="uuid"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2000/09/xmldsig#" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1" xmlns:top="http://emulab.net/resources/top/0.2">
<xs:import namespace="http://emulab.net/resources/top/0.2" schemaLocation="top.xsd"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2000/09/xmldsig#" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1">
<xs:import namespace="http://www.protogeni.net/resources/credential/0.1" schemaLocation="credential.xsd"/>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<xs:element name="Signature" type="credential:anyelementbody"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
EMULAB-COPYRIGHT
Copyright (c) 2005-2007 University of Utah and the Flux Group.
All rights reserved.
-->
<!--
Definition of common data structures used for representing topologies -
shared between vtop (virtual topology) and ptop (physical topology)
formats.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://emulab.net/resources/top/0.2" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1" xmlns:top="http://emulab.net/resources/top/0.2">
<xs:import namespace="http://www.protogeni.net/resources/credential/0.1" schemaLocation="credential.xsd"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.protogeni.net/resources/credential/0.1" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="sig.xsd"/>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<!--
EMULAB-COPYRIGHT
Copyright (c) 2005-2007 University of Utah and the Flux Group.
All rights reserved.
-->
<!--
Definition of common data structures used for representing topologies -
shared between vtop (virtual topology) and ptop (physical topology)
formats.
-->
<xs:element name="node_type">
<xs:complexType>
<xs:sequence>
......@@ -26,10 +25,10 @@
</xs:annotation>
</xs:element>
<xs:choice>
<xs:element ref="top:type_slots"/>
<xs:element ref="top:unlimited"/>
<xs:element ref="credential:type_slots"/>
<xs:element ref="credential:unlimited"/>
</xs:choice>
<xs:element minOccurs="0" ref="top:static"/>
<xs:element minOccurs="0" ref="credential:static"/>
</xs:sequence>
</xs:complexType>
</xs:element>
......@@ -51,7 +50,7 @@
<xs:documentation>A node can (by default) have one or more types</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="top:node_type"/>
<xs:element maxOccurs="unbounded" ref="credential:node_type"/>
</xs:sequence>
</xs:group>
<xs:element name="link_type">
......@@ -61,78 +60,19 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="link">
<xs:complexType>
<xs:sequence>
<xs:element ref="top:source_interface"/>
<xs:element ref="top:destination_interface"/>
<xs:element ref="top:bandwidth"/>
<xs:element ref="top:latency"/>
<xs:element ref="top:packet_loss"/>
<xs:group ref="top:LinkSpec.LinkType"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="top:property">
<xs:annotation>
<xs:documentation>Properties of this link</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="name" use="required">
<xs:annotation>
<xs:documentation>Name of the link - must be unique in the top</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="source_interface" type="top:InterfaceSpec"/>
<xs:element name="destination_interface" type="top:InterfaceSpec">
<xs:annotation>
<xs:documentation>Second interface for this link</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="bandwidth">
<xs:simpleType>
<xs:restriction base="xs:float">
<xs:minExclusive value="0.0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="latency">
<xs:annotation>
<xs:documentation>Latency of the link in ms</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:float">
<xs:minInclusive value="0.0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="packet_loss">
<xs:simpleType>
<xs:restriction base="xs:float">
<xs:minInclusive value="0.0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:attributeGroup name="LinkSpec">
<xs:annotation>
<xs:documentation>Links in the topology - zero or more</xs:documentation>
</xs:annotation>
<xs:attribute name="uuid" use="required"/>
<xs:attribute name="name"/>
</xs:attributeGroup>
<xs:group name="LinkSpec.LinkType">
<xs:annotation>
<xs:documentation>A link can (by default) have zero or more types</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="top:link_type"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="credential:link_type"/>
</xs:sequence>
</xs:group>
<xs:element name="fd">
<xs:complexType>
<xs:sequence>
<xs:element ref="top:fd_name"/>
<xs:element ref="top:fd_weight"/>
<xs:element ref="credential:fd_name"/>
<xs:element ref="credential:fd_weight"/>
<xs:element minOccurs="0" name="violatable">
<xs:complexType/>
</xs:element>
......@@ -141,7 +81,7 @@
<xs:documentation>Type information expressed in features and desires</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="top:global"/>
<xs:element ref="credential:global"/>
<xs:element name="operator">
<xs:simpleType>
<xs:restriction base="xs:token">
......@@ -152,7 +92,7 @@
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element ref="top:local"/>
<xs:element ref="credential:local"/>
<xs:element name="operator">
<xs:simpleType>
<xs:restriction base="xs:token">
......@@ -183,10 +123,10 @@
</xs:element>
<xs:group name="NodeFlagSpec">
<xs:sequence>
<xs:element ref="top:trivial_bandwidth"/>
<xs:element minOccurs="0" ref="top:subnode_of"/>
<xs:element minOccurs="0" ref="top:unique"/>
<xs:element minOccurs="0" ref="top:disallow_trivial_mix"/>
<xs:element ref="credential:trivial_bandwidth"/>
<xs:element minOccurs="0" ref="credential:subnode_of"/>
<xs:element minOccurs="0" ref="credential:unique"/>
<xs:element minOccurs="0" ref="credential:disallow_trivial_mix"/>
</xs:sequence>
</xs:group>
<xs:element name="trivial_bandwidth" type="xs:integer"/>
......@@ -197,44 +137,12 @@
<xs:element name="disallow_trivial_mix">
<xs:complexType/>
</xs:element>
<xs:complexType name="InterfaceSpec">
<xs:annotation>
<xs:documentation>Interfaces</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="top:interface"/>
</xs:sequence>
<xs:attribute name="node_uuid" use="required"/>
<xs:attribute name="node_name"/>
</xs:complexType>
<xs:element name="interface">
<xs:complexType>
<xs:sequence>
<xs:element ref="top:node_name"/>
<xs:element name="interface" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the interface itself</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="top:property">
<xs:annotation>
<xs:documentation>Properties of the interface</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="node_name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the node, which must match one of the nodes in this topology</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="property">
<xs:complexType>
<xs:sequence>
<xs:element ref="top:property_name"/>
<xs:element ref="top:property_value"/>
<xs:element ref="top:property_penalty"/>
<xs:element ref="credential:property_name"/>
<xs:element ref="credential:property_value"/>
<xs:element ref="credential:property_penalty"/>
<xs:element minOccurs="0" name="violatable">
<xs:annotation>
<xs:documentation>If this flag is present, not having the property is considered a violation</xs:documentation>
......@@ -243,7 +151,7 @@
</xs:element>
<xs:choice minOccurs="0">
<xs:sequence>
<xs:element ref="top:global"/>
<xs:element ref="credential:global"/>
<xs:element name="operator">
<xs:simpleType>
<xs:restriction base="xs:token">
......@@ -254,7 +162,7 @@
</xs:element>
</xs:sequence>
<xs:sequence>
<xs:element ref="top:local"/>
<xs:element ref="credential:local"/>
<xs:element name="operator">
<xs:simpleType>
<xs:restriction base="xs:token">
......
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1" xmlns:top="http://emulab.net/resources/top/0.2">
<xs:import namespace="http://emulab.net/resources/top/0.2" schemaLocation="top.xsd"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:sig="http://www.w3.org/2000/09/xmldsig#" xmlns:credential="http://www.protogeni.net/resources/credential/0.1">
<xs:import namespace="http://www.protogeni.net/resources/credential/0.1" schemaLocation="credential.xsd"/>
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="sig.xsd"/>
<xs:attribute name="id" type="xs:ID">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment