[Ovirt-devel] [PATCH node] BZ479378: Provide the user an option to mount the logging partition during the initial configuration of the logging configurations
Bryan Kearney
bkearney at redhat.com
Thu Jan 15 19:55:56 UTC 2009
This is built off of Alan's patch stream, and replaces the earlier logging patch which was sent.
---
scripts/ovirt-config-logging | 196 +++++++++++++++++++++++-------------------
scripts/ovirt-functions | 31 +++++++
2 files changed, 139 insertions(+), 88 deletions(-)
diff --git a/scripts/ovirt-config-logging b/scripts/ovirt-config-logging
index f1daf29..97551b0 100755
--- a/scripts/ovirt-config-logging
+++ b/scripts/ovirt-config-logging
@@ -7,6 +7,25 @@
RSYSLOG_FILE="/etc/rsyslog.conf"
+function enable_local_logging {
+ if grep -q "/dev/mapper/HostVG-Logging " /proc/mounts; then
+ return 0
+ else
+ while true; do
+ printf "\n"
+ read -p "Would you like to enable logging to the local disk? (Y/N)? "
+ r=$(echo $REPLY|tr '[[:lower:]]' '[[:upper:]]')
+ if [ "$r" == "Y" ]; then
+ mount_logging
+ return
+ elif [ "$r" == "N" ]; then
+ printf "\nNot mounting the local disk. All logs will be lost\n"
+ return
+ fi
+ done
+ fi
+}
+
# Creates the rsyslog file based on the following inputs
# $1 ipaddress of remote syslog server
# $2 port of remote syslog server
@@ -71,96 +90,96 @@ function is_numeric {
function prompt_user {
while true ; do
- max_log_size="10"
- syslog_server_ip=""
- syslog_server_port=""
-
- while true; do
- printf "\n"
- read -p "What is the max size, in kilobytes, for local log files (def. ${max_log_size}k)? "
-
- if [ -n "$REPLY" ]; then
- r=$REPLY
- if [[ $r =~ ^[0-9]+$ ]] && [[ $r -gt 0 ]]; then
- max_log_size=$r
- printf "\nMaximum logging size will be ${max_log_size}k.\n"
- break
- else
- printf "\nInvalid input.\n"
- fi
- else
- printf "\nLeaving log size as ${max_log_size}k.\n"
- break
- fi
- done
-
- printf "\n"
- read -p "What is the IP address for the syslog server, hit Enter to skip? "
- if [ -n "$REPLY" ]; then
- syslog_server_ip=$REPLY
- while true; do
- read -p "Please enter the remote logging port used: "
- r=$REPLY
- if [ -n "$r" ]; then
- if [[ $r =~ ^[0-9]+$ ]] && [[ $r -gt 0 ]]; then
- syslog_server_port=$REPLY
- break
- else
- printf "Invalid port.\n"
- fi
- fi
- done
-
- printf "\n"
- while true; do
- read -p "Remote logging uses [t]cp or [u]dp? "
- r=$(echo $REPLY|tr '[[:lower:]]' '[[:upper:]]')
- if [ "$r" == "T" ]; then syslog_server_protocol="tcp"; break; fi
- if [ "$r" == "U" ]; then syslog_server_protocol="udp"; break; fi
- # else
- printf "Invalid input.\n"
- done
- else
- printf "\nDisabling remote logging.\n"
- fi
-
- printf "\n"
- printf "\nLogging will be configured as follows:"
- printf "\n======================================"
- printf "\n Max Logfile Size: $max_log_size"
- if [ -n "$syslog_server_ip" ]; then
- printf "\n Remote Server: $syslog_server_ip"
- printf "\n Remote Port: $syslog_server_port"
- printf "\n Logging Protocol: $syslog_server_protocol"
- fi
- printf "\n"
- printf "\n"
- while true; do
- read -p "Is this correct (Y/N/A)? "
- r=$(echo $REPLY|tr '[[:lower:]]' '[[:upper:]]')
- if [ "$r" == "Y" ]; then
- printf "\nSaving configuration.\n"
- if [[ -n "$syslog_server_ip" ]] &&
- [[ -n "$syslog_server_port" ]] &&
- [[ -n "$syslog_server_protocol" ]]; then
- ovirt_rsyslog $syslog_server_ip \
- $syslog_server_port \
- $syslog_server_protocol
- fi
- sed -i -e "s/^size=.*/size=${max_log_size}k/" \
- /etc/logrotate.d/ovirt-logrotate.conf
- return
- elif [ "$r" == "N" ]; then
- printf "\nRestarting logging configuration.\n"
- break
- elif [ "$r" == "A" ]; then
- printf "\nAborting logging configuration.\n"
- return
- fi
- done
+ max_log_size="10"
+ syslog_server_ip=""
+ syslog_server_port=""
+
+ while true; do
+ printf "\n"
+ read -p "What is the max size, in kilobytes, for local log files (def. ${max_log_size}k)? "
+
+ if [ -n "$REPLY" ]; then
+ r=$REPLY
+ if [[ $r =~ ^[0-9]+$ ]] && [[ $r -gt 0 ]]; then
+ max_log_size=$r
+ printf "\nMaximum logging size will be ${max_log_size}k.\n"
+ break
+ else
+ printf "\nInvalid input.\n"
+ fi
+ else
+ printf "\nLeaving log size as ${max_log_size}k.\n"
+ break
+ fi
+ done
+
+ printf "\n"
+ read -p "What is the IP address for the syslog server, hit Enter to skip? "
+ if [ -n "$REPLY" ]; then
+ syslog_server_ip=$REPLY
+ while true; do
+ read -p "Please enter the remote logging port used: "
+ r=$REPLY
+ if [ -n "$r" ]; then
+ if [[ $r =~ ^[0-9]+$ ]] && [[ $r -gt 0 ]]; then
+ syslog_server_port=$REPLY
+ break
+ else
+ printf "Invalid port.\n"
+ fi
+ fi
+ done
+
+ printf "\n"
+ while true; do
+ read -p "Remote logging uses [t]cp or [u]dp? "
+ r=$(echo $REPLY|tr '[[:lower:]]' '[[:upper:]]')
+ if [ "$r" == "T" ]; then syslog_server_protocol="tcp"; break; fi
+ if [ "$r" == "U" ]; then syslog_server_protocol="udp"; break; fi
+ # else
+ printf "Invalid input.\n"
+ done
+ else
+ printf "\nDisabling remote logging.\n"
+ fi
+
+ printf "\n"
+ printf "\nLogging will be configured as follows:"
+ printf "\n======================================"
+ printf "\n Max Logfile Size: $max_log_size"
+ if [ -n "$syslog_server_ip" ]; then
+ printf "\n Remote Server: $syslog_server_ip"
+ printf "\n Remote Port: $syslog_server_port"
+ printf "\n Logging Protocol: $syslog_server_protocol"
+ fi
+ printf "\n"
+ printf "\n"
+ while true; do
+ read -p "Is this correct (Y/N/A)? "
+ r=$(echo $REPLY|tr '[[:lower:]]' '[[:upper:]]')
+ if [ "$r" == "Y" ]; then
+ printf "\nSaving configuration.\n"
+ if [[ -n "$syslog_server_ip" ]] &&
+ [[ -n "$syslog_server_port" ]] &&
+ [[ -n "$syslog_server_protocol" ]]; then
+ ovirt_rsyslog $syslog_server_ip \
+ $syslog_server_port \
+ $syslog_server_protocol
+ fi
+ sed -i -e "s/^size=.*/size=${max_log_size}k/" \
+ /etc/logrotate.d/ovirt-logrotate.conf
+ return
+ elif [ "$r" == "N" ]; then
+ printf "\nRestarting logging configuration.\n"
+ break
+ elif [ "$r" == "A" ]; then
+ printf "\nAborting logging configuration.\n"
+ return
+ fi
+ done
done
}
-
+
# AUTO for auto-install
if [ "$1" = "AUTO" ]; then
if [ -z "$OVIRT_SYSLOG_SERVER" -o -z "$OVIRT_SYSLOG_PORT" ]; then
@@ -178,6 +197,7 @@ if [ "$1" = "AUTO" ]; then
fi
else
prompt_user
+ enable_local_logging
fi
exit 0
diff --git a/scripts/ovirt-functions b/scripts/ovirt-functions
index 26dc556..ec4cf89 100644
--- a/scripts/ovirt-functions
+++ b/scripts/ovirt-functions
@@ -193,6 +193,37 @@ mount_config() {
fi
}
+# mount logging partition
+mount_logging() {
+ if grep -q "/dev/mapper/HostVG-Logging " /proc/mounts; then
+ return 0
+ fi
+
+ if [ -e /dev/HostVG/Logging ] ; then
+
+ # backup the logs
+ if [ -e /var/logs-backup ]; then
+ rm -rf /var/logs-backup
+ fi
+ cp -R /var/log /var/logs-backup
+
+ mount /dev/HostVG/Logging /var/log
+ if [ -e /var/log/initialboot ]; then
+ rm -rf /var/log/initialboot
+ fi
+
+ mkdir /var/log/initialboot
+ cp -R /var/logs-backup/* /var/log/initialboot
+ rm -rf /var/logs-backup
+ return 0
+ else
+ # /var/log is not available
+ printf "\nThe logging partion has not been created. Please create it at the main menu.\n"
+ return 1
+ fi
+}
+
+
# augtool wrapper
# workaround for bind-mounted files
# see https://fedorahosted.org/augeas/ticket/32
--
1.6.0.6
More information about the ovirt-devel
mailing list