[ovs-dev] [PATCH] xenserver: Install /etc/sysconfig/vswitch by default.

Ben Pfaff blp at nicira.com
Thu Sep 3 21:43:06 UTC 2009


Until now, the vswitch RPM has installed /etc/sysconfig/vswitch.example
and made the system administrator copy it to /etc/sysconfig/vswitch if he
desires.  This is slightly inconvenient, since it is slightly easier for
the admin if he can just edit /etc/sysconfig/vswitch directly.  This commit
changes to the latter behavior.

Bug #1810.
---
 xenserver/README                                   |    9 ++++---
 xenserver/automake.mk                              |    2 +-
 ...ple => root_vswitch_scripts_sysconfig.template} |    0
 xenserver/vswitch-xen.spec                         |   21 +++++++++++++++++--
 4 files changed, 24 insertions(+), 8 deletions(-)
 rename xenserver/{etc_sysconfig_vswitch.example => root_vswitch_scripts_sysconfig.template} (100%)

diff --git a/xenserver/README b/xenserver/README
index b940e3f..276cd6c 100644
--- a/xenserver/README
+++ b/xenserver/README
@@ -30,10 +30,6 @@ files are:
         vswitch-related shell functions for the administrator's
         convenience.
 
-    etc_sysconfig_vswitch.example
-
-        Example configuration options for vswitch.
-
     etc_xapi.d_plugins_vswitch-cfg-update
 
         xapi plugin script to update the cache of configuration items
@@ -54,6 +50,11 @@ files are:
         needed by the controller.  This is called by the "vif" script,
         which is run when virtual interfaces are added and removed.
 
+    root_vswitch_scripts_sysconfig.template
+
+        Template for vswitch's /etc/sysconfig/vswitch configuration
+        file.
+
     usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
 
         xsconsole plugin to configure the pool-wide configuration keys
diff --git a/xenserver/automake.mk b/xenserver/automake.mk
index ceebb9d..deb79bc 100644
--- a/xenserver/automake.mk
+++ b/xenserver/automake.mk
@@ -11,10 +11,10 @@ EXTRA_DIST += \
 	xenserver/etc_init.d_vswitch-xapi-update \
 	xenserver/etc_logrotate.d_vswitch \
 	xenserver/etc_profile.d_vswitch.sh \
-	xenserver/etc_sysconfig_vswitch.example \
 	xenserver/etc_xapi.d_plugins_vswitch-cfg-update \
 	xenserver/etc_xensource_scripts_vif \
 	xenserver/opt_xensource_libexec_interface-reconfigure \
+	xenserver/root_vswitch_scripts_sysconfig.template \
 	xenserver/root_vswitch_scripts_dump-vif-details \
 	xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
 	xenserver/usr_sbin_brctl \
diff --git a/xenserver/etc_sysconfig_vswitch.example b/xenserver/root_vswitch_scripts_sysconfig.template
similarity index 100%
rename from xenserver/etc_sysconfig_vswitch.example
rename to xenserver/root_vswitch_scripts_sysconfig.template
diff --git a/xenserver/vswitch-xen.spec b/xenserver/vswitch-xen.spec
index fda211a..a9c3402 100644
--- a/xenserver/vswitch-xen.spec
+++ b/xenserver/vswitch-xen.spec
@@ -51,8 +51,6 @@ install -m 755 xenserver/etc_init.d_vswitch \
 install -m 755 xenserver/etc_init.d_vswitch-xapi-update \
          $RPM_BUILD_ROOT/etc/init.d/vswitch-xapi-update
 install -d -m 755 $RPM_BUILD_ROOT/etc/sysconfig
-install -m 755 xenserver/etc_sysconfig_vswitch.example \
-         $RPM_BUILD_ROOT/etc/sysconfig/vswitch.example
 install -d -m 755 $RPM_BUILD_ROOT/etc/logrotate.d
 install -m 755 xenserver/etc_logrotate.d_vswitch \
          $RPM_BUILD_ROOT/etc/logrotate.d/vswitch
@@ -73,6 +71,8 @@ install -m 755 xenserver/usr_sbin_xen-bugtool \
              $RPM_BUILD_ROOT%{_prefix}/scripts/xen-bugtool
 install -m 755 xenserver/usr_sbin_brctl \
              $RPM_BUILD_ROOT%{_prefix}/scripts/brctl
+install -m 755 xenserver/root_vswitch_scripts_sysconfig.template \
+         $RPM_BUILD_ROOT/root/vswitch/scripts/sysconfig.template
 install -m 644 \
         xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
                $RPM_BUILD_ROOT%{_prefix}/scripts/XSFeatureVSwitch.py
@@ -207,6 +207,21 @@ fi
 # Ensure ovs-vswitchd.conf exists
 touch /etc/ovs-vswitchd.conf
 
+# Create default or update existing /etc/sysconfig/vswitch.
+SYSCONFIG=/etc/sysconfig/vswitch
+TEMPLATE=/root/vswitch/scripts/sysconfig.template
+if [ ! -e $SYSCONFIG ]; then
+    cp $TEMPLATE $SYSCONFIG
+else
+    for var in $(awk -F'[ :]' '/^# [_A-Z0-9]+:/{print $2}' $TEMPLATE)
+    do
+        if ! grep $var $SYSCONFIG >/dev/null 2>&1; then
+            echo >> $SYSCONFIG
+            sed -n "/$var:/,/$var=/p" $TEMPLATE >> $SYSCONFIG
+        fi
+    done
+fi
+
 # Replace XenServer files by our versions.
 mkdir -p %{_prefix}/xs-original \
     || printf "Could not create script backup directory.\n"
@@ -307,7 +322,6 @@ fi
 /etc/init.d/vswitch
 /etc/init.d/vswitch-xapi-update
 /etc/xapi.d/plugins/vswitch-cfg-update
-/etc/sysconfig/vswitch.example
 /etc/logrotate.d/vswitch
 /etc/profile.d/vswitch.sh
 /root/vswitch/kernel_modules/brcompat_mod.ko
@@ -319,6 +333,7 @@ fi
 /root/vswitch/scripts/xen-bugtool
 /root/vswitch/scripts/XSFeatureVSwitch.py
 /root/vswitch/scripts/brctl
+/root/vswitch/scripts/sysconfig.template
 # Following two files are generated automatically by rpm.  We don't
 # really need them and they won't be used on the XenServer, but there
 # isn't an obvious place to get rid of them since they are generated
-- 
1.6.3.3





More information about the dev mailing list