PlanetLab schema in RelaxNG standard syntax
authorAndy Bavier <acb@cs.princeton.edu>
Fri, 5 Feb 2010 20:29:38 +0000 (20:29 +0000)
committerAndy Bavier <acb@cs.princeton.edu>
Fri, 5 Feb 2010 20:29:38 +0000 (20:29 +0000)
sfa/managers/pl/pl.rng [new file with mode: 0644]

diff --git a/sfa/managers/pl/pl.rng b/sfa/managers/pl/pl.rng
new file mode 100644 (file)
index 0000000..525db3e
--- /dev/null
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <start>
+    <ref name="RSpec"/>
+  </start>
+  <define name="RSpec">
+    <element name="RSpec">
+      <attribute name="type">
+        <data type="NMTOKEN"/>
+      </attribute>
+      <choice>
+        <ref name="network"/>
+        <ref name="request"/>
+      </choice>
+    </element>
+  </define>
+  <define name="network">
+    <element name="network">
+      <attribute name="name">
+        <data type="NMTOKEN"/>
+      </attribute>
+      <optional>
+        <attribute name="slice">
+          <data type="NMTOKEN"/>
+        </attribute>
+      </optional>
+      <optional>
+        <ref name="sliver_defaults"/>
+      </optional>
+      <oneOrMore>
+        <ref name="site"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="sliver_defaults">
+    <element name="sliver_defaults">
+      <ref name="sliver_elements"/>
+    </element>
+  </define>
+  <define name="site">
+    <element name="site">
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+      <element name="name">
+        <text/>
+      </element>
+      <zeroOrMore>
+        <ref name="node"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="node">
+    <element name="node">
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+      <element name="hostname">
+        <text/>
+      </element>
+      <optional>
+        <element name="bw_limit">
+          <attribute name="units">
+            <data type="NMTOKEN"/>
+          </attribute>
+          <text/>
+        </element>
+      </optional>
+      <zeroOrMore>
+        <ref name="sliver"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="request">
+    <element name="request">
+      <oneOrMore>
+        <ref name="sliver"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="sliver">
+    <element name="sliver">
+      <optional>
+        <attribute name="nodeid">
+          <data type="ID"/>
+        </attribute>
+      </optional>
+      <ref name="sliver_elements"/>
+    </element>
+  </define>
+  <define name="sliver_elements">
+    <interleave>
+      <optional>
+        <element name="capabilities">
+          <text/>
+        </element>
+      </optional>
+      <zeroOrMore>
+        <element name="codemux">
+          <text/>
+        </element>
+      </zeroOrMore>
+      <optional>
+        <element name="cpu_pct">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="cpu_share">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="delegations">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="disk_max">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="initscript">
+          <text/>
+        </element>
+      </optional>
+      <zeroOrMore>
+        <element name="ip_addresses">
+          <text/>
+        </element>
+      </zeroOrMore>
+      <optional>
+        <element name="net_i2_max_kbyte">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_i2_max_rate">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_i2_min_rate">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_i2_share">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_i2_thresh_kbyte">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_max_kbyte">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_max_rate">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_min_rate">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_share">
+          <text/>
+        </element>
+      </optional>
+      <optional>
+        <element name="net_thresh_kbyte">
+          <text/>
+        </element>
+      </optional>
+      <zeroOrMore>
+        <element name="vsys">
+          <text/>
+        </element>
+      </zeroOrMore>
+      <optional>
+        <element name="vsys_vnet">
+          <text/>
+        </element>
+      </optional>
+    </interleave>
+  </define>
+</grammar>