Proposed Eucalyptus RSpec
authorAndy Bavier <acb@cs.princeton.edu>
Fri, 29 Jan 2010 16:50:05 +0000 (16:50 +0000)
committerAndy Bavier <acb@cs.princeton.edu>
Fri, 29 Jan 2010 16:50:05 +0000 (16:50 +0000)
sfa/managers/eucalyptus/eucalyptus.rnc [new file with mode: 0644]
sfa/managers/eucalyptus/eucalyptus.xml [new file with mode: 0644]

diff --git a/sfa/managers/eucalyptus/eucalyptus.rnc b/sfa/managers/eucalyptus/eucalyptus.rnc
new file mode 100644 (file)
index 0000000..ca06454
--- /dev/null
@@ -0,0 +1,78 @@
+start = RSpec
+RSpec = element RSpec {
+   attribute type { xsd:NMTOKEN },
+   cloud
+}
+cloud = element cloud {
+   attribute id { xsd:NMTOKEN },
+   user-info?,
+   ipv4,
+   keypairs,
+   images,
+   cluster+
+}
+user-info = element user-info {
+   credential
+}
+keypairs = element keypairs { keypair+ }
+images = element images { image+ }
+image = element image {
+   attribute id { xsd:ID },
+   type,
+   arch,
+   state,
+   location
+}
+cluster = element cluster {
+   attribute id { xsd:ID },
+   ipv4,
+   vm-types
+}
+vm-types = element vm-types { vm-type+ }
+vm-type = element vm-type {
+   attribute name { xsd:ID },
+   free-slots,
+   max-instances,
+   cores,
+   memory,
+   disk-space,
+   request?
+}
+request = element request {
+   instances,
+   kernel-image,
+   ramdisk,
+   disk-image,
+   keypair
+}
+credential = element credential { text }
+ipv4 = element ipv4 { text }
+keypair = element keypair { text }
+type = element type { text }
+arch = element arch { text }
+state = element state { text }
+location = element location { text }
+free-slots = element free-slots { text }
+max-instances = element max-instances { text }
+cores = element cores { text }
+memory = element memory {
+   attribute unit { xsd:NMTOKEN },
+   text
+}
+disk-space = element disk-space {
+   attribute unit { xsd:NMTOKEN },
+   text
+}
+instances = element instances { text }
+kernel-image = element kernel-image {
+   attribute id { xsd:IDREF },
+   empty
+}
+ramdisk = element ramdisk {
+   attribute id { xsd:IDREF }?,
+   empty
+}
+disk-image = element disk-image {
+   attribute id { xsd:IDREF },
+   empty
+}
diff --git a/sfa/managers/eucalyptus/eucalyptus.xml b/sfa/managers/eucalyptus/eucalyptus.xml
new file mode 100644 (file)
index 0000000..88023b5
--- /dev/null
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<RSpec type="eucalyptus">
+  <cloud id="Emulab-Cloud">
+    <!-- This element added by the user -->
+    <user-info>
+      <credential>foobarbaz</credential>
+    </user-info>
+    <ipv4>155.98.39.85</ipv4>
+    <keypairs>
+      <keypair>cortex</keypair>
+      <keypair>mykey</keypair>
+    </keypairs>
+    <images>
+      <image id="emi-88760F45">
+        <type>machine</type>
+        <arch>x86_64</arch>
+        <state>available</state>
+        <location>images/ttylinux.img.manifest.xml</location>
+      </image>
+      <image id="eki-F26610C6">
+        <type>kernel</type>
+        <arch>x86_64</arch>
+        <state>available</state>
+        <location>images/vmlinuz-2.6.16.33-xen.manifest.xml</location>
+      </image>
+    </images>
+    <cluster id="pcluster">
+      <ipv4>10.1.1.2</ipv4>
+      <vm-types>
+        <vm-type name="m1.small">
+          <free-slots>2</free-slots>
+          <max-instances>2</max-instances>
+          <cores>1</cores>
+          <memory unit="MB">128</memory>
+          <disk-space unit="GB">2</disk-space>
+          <!-- A request for an instance of this type, added by the user -->
+          <request>
+            <instances>1</instances>
+            <kernel-image id="eki-F26610C6"/>
+            <ramdisk/>
+            <disk-image id="emi-88760F45"/>
+            <keypair>cortex</keypair>
+          </request>
+        </vm-type>
+        <vm-type name="c1.medium">
+          <free-slots>1</free-slots>
+          <max-instances>2</max-instances>
+          <cores>1</cores>
+          <memory unit="MB">256</memory>
+          <disk-space unit="GB">5</disk-space>
+        </vm-type>
+        <vm-type name="m1.large">
+          <free-slots>0</free-slots>
+          <max-instances>1</max-instances>
+          <cores>2</cores>
+          <memory unit="MB">512</memory>
+          <disk-space unit="GB">10</disk-space>
+        </vm-type>
+        <vm-type name="m1.xlarge">
+          <free-slots>0</free-slots>
+          <max-instances>1</max-instances>
+          <cores>2</cores>
+          <memory unit="MB">1024</memory>
+          <disk-space unit="GB">20</disk-space>
+        </vm-type>
+        <vm-type name="c1.xlarge">
+          <free-slots>0</free-slots>
+          <max-instances>0</max-instances>
+          <cores>4</cores>
+          <memory unit="MB">2048</memory>
+          <disk-space unit="GB">20</disk-space>
+        </vm-type>
+      </vm-types>
+    </cluster>
+  </cloud>
+</RSpec>