xenserver: Install /etc/sysconfig/vswitch by default.
authorBen Pfaff <blp@nicira.com>
Thu, 3 Sep 2009 21:28:44 +0000 (14:28 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 3 Sep 2009 21:28:44 +0000 (14:28 -0700)
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
xenserver/automake.mk
xenserver/root_vswitch_scripts_sysconfig.template [moved from xenserver/etc_sysconfig_vswitch.example with 100% similarity]
xenserver/vswitch-xen.spec

index b940e3f..276cd6c 100644 (file)
@@ -30,10 +30,6 @@ files are:
         vswitch-related shell functions for the administrator's
         convenience.
 
         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
     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.
 
         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
     usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py
 
         xsconsole plugin to configure the pool-wide configuration keys
index ceebb9d..deb79bc 100644 (file)
@@ -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_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/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 \
        xenserver/root_vswitch_scripts_dump-vif-details \
        xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
        xenserver/usr_sbin_brctl \
index fda211a..a9c3402 100644 (file)
@@ -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_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
 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
              $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
 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
 
 # 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"
 # 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/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
 /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/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
 # 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