Merge "Add info.sh"
diff --git a/files/swift/proxy-server.conf b/files/swift/proxy-server.conf
index 5752d74..da6b1fa 100644
--- a/files/swift/proxy-server.conf
+++ b/files/swift/proxy-server.conf
@@ -1,8 +1,11 @@
 [DEFAULT]
 bind_port = 8080
 user = %USER%
-log_facility = LOG_LOCAL1
 swift_dir = %SWIFT_CONFIG_LOCATION%
+workers = 1
+log_name = swift
+log_facility = LOG_LOCAL1
+log_level = DEBUG
 
 [pipeline:main]
 pipeline = healthcheck cache %AUTH_SERVER% proxy-server
diff --git a/files/swift/rsyslog.conf b/files/swift/rsyslog.conf
new file mode 100644
index 0000000..011c893
--- /dev/null
+++ b/files/swift/rsyslog.conf
@@ -0,0 +1,26 @@
+# Uncomment the following to have a log containing all logs together
+#local1,local2,local3,local4,local5.*   %SWIFT_LOGDIR%/all.log
+
+# Uncomment the following to have hourly proxy logs for stats processing
+#$template HourlyProxyLog,"%SWIFT_LOGDIR%/hourly/%$YEAR%%$MONTH%%$DAY%%$HOUR%"
+#local1.*;local1.!notice ?HourlyProxyLog
+
+local1.*;local1.!notice %SWIFT_LOGDIR%/proxy.log
+local1.notice           %SWIFT_LOGDIR%/proxy.error
+local1.*                ~
+
+local2.*;local2.!notice %SWIFT_LOGDIR%/storage1.log
+local2.notice           %SWIFT_LOGDIR%/storage1.error
+local2.*                ~
+
+local3.*;local3.!notice %SWIFT_LOGDIR%/storage2.log
+local3.notice           %SWIFT_LOGDIR%/storage2.error
+local3.*                ~
+
+local4.*;local4.!notice %SWIFT_LOGDIR%/storage3.log
+local4.notice           %SWIFT_LOGDIR%/storage3.error
+local4.*                ~
+
+local5.*;local5.!notice %SWIFT_LOGDIR%/storage4.log
+local5.notice           %SWIFT_LOGDIR%/storage4.error
+local5.*                ~
diff --git a/stack.sh b/stack.sh
index 9f9bed9..420fc25 100755
--- a/stack.sh
+++ b/stack.sh
@@ -709,7 +709,7 @@
     # Initialize the horizon database (it stores sessions and notices shown to
     # users).  The user system is external (keystone).
     cd $HORIZON_DIR/openstack-dashboard
-    dashboard/manage.py syncdb
+    python manage.py syncdb
 
     # create an empty directory that apache uses as docroot
     sudo mkdir -p $HORIZON_DIR/.blackhole
@@ -843,10 +843,10 @@
     clean_iptables
 
     # Destroy old instances
-    instances=`virsh list | grep $INSTANCE_NAME_PREFIX | cut -d " " -f3`
+    instances=`virsh list --all | grep $INSTANCE_NAME_PREFIX | sed "s/.*\($INSTANCE_NAME_PREFIX[0-9a-fA-F]*\).*/\1/g"`
     if [ ! $instances = "" ]; then
-        echo $instances | xargs -n1 virsh destroy
-        echo $instances | xargs -n1 virsh undefine
+        echo $instances | xargs -n1 virsh destroy || true
+        echo $instances | xargs -n1 virsh undefine || true
     fi
 
     # Clean out the instances directory.
@@ -868,9 +868,10 @@
 
     USER_GROUP=$(id -g)
     sudo mkdir -p ${SWIFT_DATA_LOCATION}/drives
-    sudo chown -R $USER:${USER_GROUP} ${SWIFT_DATA_LOCATION}/drives
+    sudo chown -R $USER:${USER_GROUP} ${SWIFT_DATA_LOCATION}
 
     # We then create a loopback disk and format it to XFS.
+    # TODO: Reset disks on new pass.
     if [[ ! -e ${SWIFT_DATA_LOCATION}/drives/images/swift.img ]]; then
         mkdir -p  ${SWIFT_DATA_LOCATION}/drives/images
         sudo touch  ${SWIFT_DATA_LOCATION}/drives/images/swift.img
@@ -964,6 +965,17 @@
    generate_swift_configuration container 6011 2
    generate_swift_configuration account 6012 2
 
+
+   # We have some specific configuration for swift for rsyslog. See
+   # the file /etc/rsyslog.d/10-swift.conf for more info.
+   swift_log_dir=${SWIFT_DATA_LOCATION}/logs
+   rm -rf ${swift_log_dir}
+   mkdir -p ${swift_log_dir}/hourly
+   sudo chown -R syslog:adm ${swift_log_dir}
+   sed "s,%SWIFT_LOGDIR%,${swift_log_dir}," $FILES/swift/rsyslog.conf | sudo \
+       tee /etc/rsyslog.d/10-swift.conf
+   sudo restart rsyslog
+   
    # We create two helper scripts :
    #
    # - swift-remakerings
@@ -1162,11 +1174,9 @@
     if [ "$SYSLOG" != "False" ]; then
         sed -i -e '/^handlers=devel$/s/=devel/=production/' \
             $KEYSTONE_DIR/etc/logging.cnf
-        sed -i -e "
-            /^log_file/s/log_file/\#log_file/; \
-            /^log_config/d;/^\[DEFAULT\]/a\
-            log_config=$KEYSTONE_DIR/etc/logging.cnf" \
+        sed -i -e "/^log_file/s/log_file/\#log_file/" \
             $KEYSTONE_DIR/etc/keystone.conf
+        KEYSTONE_LOG_CONFIG="--log-config $KEYSTONE_DIR/etc/logging.cnf"
     fi
 fi
 
@@ -1219,7 +1229,7 @@
 
 # launch the keystone and wait for it to answer before continuing
 if [[ "$ENABLED_SERVICES" =~ "key" ]]; then
-    screen_it key "cd $KEYSTONE_DIR && $KEYSTONE_DIR/bin/keystone --config-file $KEYSTONE_CONF -d"
+    screen_it key "cd $KEYSTONE_DIR && $KEYSTONE_DIR/bin/keystone --config-file $KEYSTONE_CONF $KEYSTONE_LOG_CONFIG -d"
     echo "Waiting for keystone to start..."
     if ! timeout $SERVICE_TIMEOUT sh -c "while ! wget -q -O- http://127.0.0.1:5000; do sleep 1; done"; then
       echo "keystone did not start"