[Libosinfo] [PATCH v3 06/60] data: sanitize Xen device ID URIs and add missing devs

Daniel P. Berrange berrange at redhat.com
Mon Oct 12 17:10:27 UTC 2015


The Xen devices have a formal device ID value, which is used
in Xen bus. We should record that in the <product-id> field
and add a corresponding <product> string. Change the device
ID URIs so that they are of the format

  http://xen.org/xen/$PRODUCT-ID

Finally add various devices that were missing.

Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
---
 data/devices/xen.xml.in          | 61 +++++++++++++++++++++++++++++++++++-----
 data/hypervisors/rhel-xen.xml.in |  2 +-
 data/hypervisors/xen.xml.in      |  8 +++---
 data/schemas/libosinfo.rng       | 11 +++++++-
 4 files changed, 69 insertions(+), 13 deletions(-)

diff --git a/data/devices/xen.xml.in b/data/devices/xen.xml.in
index 8065fec..d484ac1 100644
--- a/data/devices/xen.xml.in
+++ b/data/devices/xen.xml.in
@@ -1,28 +1,75 @@
 <!-- Xen 3.x / 4.x paravirt devices -->
 <libosinfo version="0.0.1">
 
-  <device id="http://xen.org/devices/block">
+  <device id="http://xen.org/xen/vbd">
     <class>block</class>
     <bus-type>xen</bus-type>
-    <name>xen-block</name>
+    <product>Virtual Block Device</product>
+    <product-id>vbd</product-id>
+    <name>xen-vbd</name>
   </device>
 
-  <device id="http://xen.org/devices/net">
+  <device id="http://xen.org/xen/vscsi">
+    <class>block</class>
+    <bus-type>xen</bus-type>
+    <product>Virtual SCSI</product>
+    <product-id>vscsi</product-id>
+    <name>xen-vscsi</name>
+  </device>
+
+  <device id="http://xen.org/xen/vif">
     <class>net</class>
     <bus-type>xen</bus-type>
-    <name>xen-net</name>
+    <product>Virtual Interface</product>
+    <product-id>vif</product-id>
+    <name>xen-vif</name>
   </device>
 
-  <device id="http://xen.org/devices/console">
+  <device id="http://xen.org/xen/console">
     <class>console</class>
     <bus-type>xen</bus-type>
+    <product>Virtual Console</product>
+    <product-id>console</product-id>
     <name>xen-console</name>
   </device>
 
-  <device id="http://xen.org/devices/framebuffer">
+  <device id="http://xen.org/xen/vfb">
     <class>video</class>
     <bus-type>xen</bus-type>
-    <name>xen-pvfb</name>
+    <product>Virtual FrameBuffer</product>
+    <product-id>vfb</product-id>
+    <name>xen-vfb</name>
+  </device>
+
+  <device id="http://xen.org/xen/vtpm">
+    <bus-type>xen</bus-type>
+    <product>Virtual TPM</product>
+    <product-id>vtpm</product-id>
+    <name>xen-vtpm</name>
+  </device>
+
+  <device id="http://xen.org/xen/vkbd">
+    <class>input</class>
+    <bus-type>xen</bus-type>
+    <product>Virtual Keyboard</product>
+    <product-id>vkbd</product-id>
+    <name>xen-vkbd</name>
+  </device>
+
+  <device id="http://xen.org/xen/vkbd">
+    <class>input</class>
+    <bus-type>xen</bus-type>
+    <product>Virtual Keyboard</product>
+    <product-id>vkbd</product-id>
+    <name>xen-vkbd</name>
+  </device>
+
+  <device id="http://xen.org/xen/pci">
+    <class>input</class>
+    <bus-type>xen</bus-type>
+    <product>Virtual PCI</product>
+    <product-id>pci</product-id>
+    <name>xen-pci</name>
   </device>
 
 </libosinfo>
diff --git a/data/hypervisors/rhel-xen.xml.in b/data/hypervisors/rhel-xen.xml.in
index 5237482..a14103f 100644
--- a/data/hypervisors/rhel-xen.xml.in
+++ b/data/hypervisors/rhel-xen.xml.in
@@ -9,7 +9,7 @@
     <derives-from id="http://xen.org/xen/3.0.3"/>
 
     <devices>
-      <device id="http://xen.org/devices/framebuffer"/>
+      <device id="http://xen.org/xen/vfb"/>
     </devices>
   </platform>
 
diff --git a/data/hypervisors/xen.xml.in b/data/hypervisors/xen.xml.in
index 8a88b7a..8528266 100644
--- a/data/hypervisors/xen.xml.in
+++ b/data/hypervisors/xen.xml.in
@@ -8,9 +8,9 @@
     <version>3.0.2</version>
 
     <devices>
-      <device id="http://xen.org/devices/block"/>
-      <device id="http://xen.org/devices/net"/>
-      <device id="http://xen.org/devices/console"/>
+      <device id="http://xen.org/xen/vbd"/>
+      <device id="http://xen.org/xen/vif"/>
+      <device id="http://xen.org/xen/console"/>
     </devices>
   </platform>
 
@@ -31,7 +31,7 @@
     <upgrades id="http://xen.org/xen/3.0.3"/>
 
     <devices>
-      <device id="http://xen.org/devices/framebuffer"/>
+      <device id="http://xen.org/xen/vfb"/>
     </devices>
   </platform>
 
diff --git a/data/schemas/libosinfo.rng b/data/schemas/libosinfo.rng
index b36eef0..f957abc 100644
--- a/data/schemas/libosinfo.rng
+++ b/data/schemas/libosinfo.rng
@@ -108,7 +108,10 @@
         </optional>
         <optional>
           <element name='product-id'>
-            <ref name='hexid'/>
+            <choice>
+              <ref name='hexid'/>
+              <ref name='alpha'/>
+            </choice>
           </element>
         </optional>
         <optional>
@@ -748,6 +751,12 @@
     </data>
   </define>
 
+  <define name='alpha'>
+    <data type="string">
+      <param name="pattern">[a-zA-Z]+</param>
+    </data>
+  </define>
+
   <define name='bool'>
     <choice>
       <data type='string'>
-- 
2.4.3




More information about the Libosinfo mailing list