[ovs-dev] [PATCH 1/2] vswitchd: Add OVS version to database, give system info its own columns.

Ben Pfaff blp at nicira.com
Wed Dec 22 20:51:29 UTC 2010


Until now, nothing in the database has reported the Open vSwitch version
number.  This commit adds that.

In addition, this commits moves the system type and version from
external-ids to individual columns, because we decided that these were
important enough not to relegate them to a grab-bag field.
---
 vswitchd/vswitch.ovsschema       |   11 ++++++++-
 vswitchd/vswitch.xml             |   43 ++++++++++++++++++++++++++++++++-----
 xenserver/etc_init.d_openvswitch |    6 +++-
 3 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/vswitchd/vswitch.ovsschema b/vswitchd/vswitch.ovsschema
index 52573e5..04b691a 100644
--- a/vswitchd/vswitch.ovsschema
+++ b/vswitchd/vswitch.ovsschema
@@ -30,7 +30,16 @@
                   "min": 0, "max": "unlimited"}},
        "statistics": {
          "type": {"key": "string", "value": "string", "min": 0, "max": "unlimited"},
-         "ephemeral": true}},
+         "ephemeral": true},
+       "ovs_version": {
+         "type": {"key": {"type": "string"},
+                  "min": 0, "max": 1}},
+       "system_type": {
+         "type": {"key": {"type": "string"},
+                  "min": 0, "max": 1}},
+       "system_version": {
+         "type": {"key": {"type": "string"},
+                  "min": 0, "max": 1}}},
      "maxRows": 1},
    "Capability": {
      "columns": {
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index 7b7a1ac..ececa18 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -28,12 +28,6 @@
         choose key names that are likely to be unique.  The currently
         defined common key-value pairs are:
         <dl>
-          <dt><code>system-type</code></dt>
-          <dd>An identifier for the switch type, such as
-            <code>XenServer</code> or <code>KVM</code>.</dd>
-          <dt><code>system-version</code></dt>
-          <dd>The version of the switch software, such as
-            <code>5.6.0</code> on XenServer.</dd>
           <dt><code>system-id</code></dt>
           <dd>A unique identifier for the Open vSwitch's physical host.
             The form of the identifier depends on the type of the host.
@@ -201,6 +195,43 @@
       </column>
     </group>
 
+    <group title="Version Reporting">
+      <p>
+	These columns report the types and versions of the hardware and
+	software running Open vSwitch.  We recommend in general that software
+	should test whether specific features are supported instead of relying
+	on version number checks.  These values are primarily intended for
+	reporting to human administrators.
+      </p>
+
+	The Open vSwitch version number, e.g. <code>1.1.0pre2</code>.  The Open
+	vSwitch build number, if any, is not included.
+      </column>
+
+      <column name="system_type">
+        <p>
+	  An identifier for the type of system on top of which Open vSwitch
+	  runs, e.g. <code>XenServer</code> or <code>KVM</code>.
+	</p>
+	<p>
+	  System integrators are responsible for choosing and setting an
+	  appropriate value for this column.
+	</p>
+      </column>
+
+      <column name="system_version">
+        <p>
+	  The version of the system identified by <ref column="system_type"/>,
+	  e.g. <code>5.6.0</code> on XenServer 5.6.0.
+	</p>
+	<p>
+	  System integrators are responsible for choosing and setting an
+	  appropriate value for this column.
+	</p>
+      </column>
+	
+    </group>
+
     <group title="Database Configuration">
       <p>
         These columns primarily configure the Open vSwitch database
diff --git a/xenserver/etc_init.d_openvswitch b/xenserver/etc_init.d_openvswitch
index 5f18196..0a2fc78 100755
--- a/xenserver/etc_init.d_openvswitch
+++ b/xenserver/etc_init.d_openvswitch
@@ -298,10 +298,12 @@ EOF
 
 function set_system_ids {
     if [ -f /etc/xensource-inventory ]; then
+        OVS_VERSION=`ovs-vswitchd --version | sed 's/.*) //;1q'`
         action "Configuring Open vSwitch system IDs" true
         $vsctl --no-wait --timeout=5 set Open_vSwitch . \
-            external-ids:system-type="$PRODUCT_BRAND" \
-            external-ids:system-version="$PRODUCT_VERSION-$BUILD_NUMBER" \
+            ovs-version="$OVS_VERSION" \
+            system-type="$PRODUCT_BRAND" \
+            system-version="$PRODUCT_VERSION-$BUILD_NUMBER" \
             external-ids:system-id="$INSTALLATION_UUID" \
             external-ids:xs-system-uuid="$INSTALLATION_UUID"
     else
-- 
1.7.1





More information about the dev mailing list