Merge pull request #157 from cloudbuilders/swift-config-location
change swift config location to SWIFT_DIR/config
diff --git a/files/swift/account-server.conf b/files/swift/account-server.conf
index 920d45c..db0f097 100644
--- a/files/swift/account-server.conf
+++ b/files/swift/account-server.conf
@@ -4,6 +4,7 @@
bind_port = %BIND_PORT%
user = %USER%
log_facility = LOG_LOCAL%LOG_FACILITY%
+swift_dir = %SWIFT_CONFIG_LOCATION%
[pipeline:main]
pipeline = account-server
diff --git a/files/swift/container-server.conf b/files/swift/container-server.conf
index 8d59bf2..bdc3e3a 100644
--- a/files/swift/container-server.conf
+++ b/files/swift/container-server.conf
@@ -4,6 +4,7 @@
bind_port = %BIND_PORT%
user = %USER%
log_facility = LOG_LOCAL%LOG_FACILITY%
+swift_dir = %SWIFT_CONFIG_LOCATION%
[pipeline:main]
pipeline = container-server
diff --git a/files/swift/object-server.conf b/files/swift/object-server.conf
index 1b72e70..06fbffe 100644
--- a/files/swift/object-server.conf
+++ b/files/swift/object-server.conf
@@ -4,6 +4,7 @@
bind_port = %BIND_PORT%
user = %USER%
log_facility = LOG_LOCAL%LOG_FACILITY%
+swift_dir = %SWIFT_CONFIG_LOCATION%
[pipeline:main]
pipeline = object-server
diff --git a/files/swift/proxy-server.conf b/files/swift/proxy-server.conf
index 6b7dd52..fe7e39b 100644
--- a/files/swift/proxy-server.conf
+++ b/files/swift/proxy-server.conf
@@ -2,6 +2,7 @@
bind_port = 8080
user = %USER%
log_facility = LOG_LOCAL1
+swift_dir = %SWIFT_CONFIG_LOCATION%
[pipeline:main]
pipeline = healthcheck cache %AUTH_SERVER% proxy-server
diff --git a/files/swift/rsyncd.conf b/files/swift/rsyncd.conf
index 568f240..66215c7 100644
--- a/files/swift/rsyncd.conf
+++ b/files/swift/rsyncd.conf
@@ -6,74 +6,74 @@
[account6012]
max connections = 25
-path = %SWIFT_LOCATION%/1/node/
+path = %SWIFT_DATA_LOCATION%/1/node/
read only = false
lock file = /var/lock/account6012.lock
[account6022]
max connections = 25
-path = %SWIFT_LOCATION%/2/node/
+path = %SWIFT_DATA_LOCATION%/2/node/
read only = false
lock file = /var/lock/account6022.lock
[account6032]
max connections = 25
-path = %SWIFT_LOCATION%/3/node/
+path = %SWIFT_DATA_LOCATION%/3/node/
read only = false
lock file = /var/lock/account6032.lock
[account6042]
max connections = 25
-path = %SWIFT_LOCATION%/4/node/
+path = %SWIFT_DATA_LOCATION%/4/node/
read only = false
lock file = /var/lock/account6042.lock
[container6011]
max connections = 25
-path = %SWIFT_LOCATION%/1/node/
+path = %SWIFT_DATA_LOCATION%/1/node/
read only = false
lock file = /var/lock/container6011.lock
[container6021]
max connections = 25
-path = %SWIFT_LOCATION%/2/node/
+path = %SWIFT_DATA_LOCATION%/2/node/
read only = false
lock file = /var/lock/container6021.lock
[container6031]
max connections = 25
-path = %SWIFT_LOCATION%/3/node/
+path = %SWIFT_DATA_LOCATION%/3/node/
read only = false
lock file = /var/lock/container6031.lock
[container6041]
max connections = 25
-path = %SWIFT_LOCATION%/4/node/
+path = %SWIFT_DATA_LOCATION%/4/node/
read only = false
lock file = /var/lock/container6041.lock
[object6010]
max connections = 25
-path = %SWIFT_LOCATION%/1/node/
+path = %SWIFT_DATA_LOCATION%/1/node/
read only = false
lock file = /var/lock/object6010.lock
[object6020]
max connections = 25
-path = %SWIFT_LOCATION%/2/node/
+path = %SWIFT_DATA_LOCATION%/2/node/
read only = false
lock file = /var/lock/object6020.lock
[object6030]
max connections = 25
-path = %SWIFT_LOCATION%/3/node/
+path = %SWIFT_DATA_LOCATION%/3/node/
read only = false
lock file = /var/lock/object6030.lock
[object6040]
max connections = 25
-path = %SWIFT_LOCATION%/4/node/
+path = %SWIFT_DATA_LOCATION%/4/node/
read only = false
lock file = /var/lock/object6040.lock
diff --git a/files/swift/swift-remakerings b/files/swift/swift-remakerings
index 9343783..c65353c 100755
--- a/files/swift/swift-remakerings
+++ b/files/swift/swift-remakerings
@@ -1,6 +1,6 @@
#!/bin/bash
-cd /etc/swift
+cd %SWIFT_CONFIG_LOCATION%
rm -f *.builder *.ring.gz backups/*.builder backups/*.ring.gz
diff --git a/stack.sh b/stack.sh
index d1e35c0..976872a 100755
--- a/stack.sh
+++ b/stack.sh
@@ -293,9 +293,13 @@
# TODO: add logging to different location.
# By default the location of swift drives and objects is located inside
-# the swift source directory. SWIFT_LOCATION variable allow you to redefine
+# the swift source directory. SWIFT_DATA_LOCATION variable allow you to redefine
# this.
-SWIFT_LOCATION=${SWIFT_LOCATION:-${SWIFT_DIR}/data}
+SWIFT_DATA_LOCATION=${SWIFT_DATA_LOCATION:-${SWIFT_DIR}/data}
+
+# We are going to have the configuration files inside the source
+# directory, change SWIFT_CONFIG_LOCATION if you want to adjust that.
+SWIFT_CONFIG_LOCATION=${SWIFT_CONFIG_LOCATION:-${SWIFT_DIR}/config}
# devstack will create a loop-back disk formatted as XFS to store the
# swift data. By default the disk size is 1 gigabyte. The variable
@@ -644,47 +648,54 @@
# changing the permissions so we can run it as our user.
USER_GROUP=$(id -g)
- sudo mkdir -p ${SWIFT_LOCATION}/drives
- sudo chown -R $USER:${USER_GROUP} ${SWIFT_LOCATION}/drives
+ sudo mkdir -p ${SWIFT_DATA_LOCATION}/drives
+ sudo chown -R $USER:${USER_GROUP} ${SWIFT_DATA_LOCATION}/drives
# We then create a loopback disk and format it to XFS.
- if [[ ! -e ${SWIFT_LOCATION}/drives/images/swift.img ]];then
- mkdir -p ${SWIFT_LOCATION}/drives/images
- sudo touch ${SWIFT_LOCATION}/drives/images/swift.img
- sudo chown $USER: ${SWIFT_LOCATION}/drives/images/swift.img
+ 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
+ sudo chown $USER: ${SWIFT_DATA_LOCATION}/drives/images/swift.img
- dd if=/dev/zero of=${SWIFT_LOCATION}/drives/images/swift.img \
+ dd if=/dev/zero of=${SWIFT_DATA_LOCATION}/drives/images/swift.img \
bs=1024 count=0 seek=${SWIFT_LOOPBACK_DISK_SIZE}
- mkfs.xfs -f -i size=1024 ${SWIFT_LOCATION}/drives/images/swift.img
+ mkfs.xfs -f -i size=1024 ${SWIFT_DATA_LOCATION}/drives/images/swift.img
fi
# After the drive being created we mount the disk with a few mount
# options to make it most efficient as possible for swift.
- mkdir -p ${SWIFT_LOCATION}/drives/sdb1
- if ! egrep -q ${SWIFT_LOCATION}/drives/sdb1 /proc/mounts;then
+ mkdir -p ${SWIFT_DATA_LOCATION}/drives/sdb1
+ if ! egrep -q ${SWIFT_DATA_LOCATION}/drives/sdb1 /proc/mounts;then
sudo mount -t xfs -o loop,noatime,nodiratime,nobarrier,logbufs=8 \
- ${SWIFT_LOCATION}/drives/images/swift.img ${SWIFT_LOCATION}/drives/sdb1
+ ${SWIFT_DATA_LOCATION}/drives/images/swift.img ${SWIFT_DATA_LOCATION}/drives/sdb1
fi
# We then create link to that mounted location so swift would know
# where to go.
- for x in {1..4}; do sudo ln -sf ${SWIFT_LOCATION}/drives/sdb1/$x ${SWIFT_LOCATION}/$x; done
+ for x in {1..4}; do sudo ln -sf ${SWIFT_DATA_LOCATION}/drives/sdb1/$x ${SWIFT_DATA_LOCATION}/$x; done
# We now have to emulate a few different servers into one we
# create all the directories needed for swift
tmpd=""
- for d in ${SWIFT_LOCATION}/drives/sdb1/{1..4} /etc/swift /etc/swift/{object,container,account}-server \
- ${SWIFT_LOCATION}/{1..4}/node/sdb1 /var/run/swift ;do
+ for d in ${SWIFT_DATA_LOCATION}/drives/sdb1/{1..4} \
+ ${SWIFT_CONFIG_LOCATION}/{object,container,account}-server \
+ ${SWIFT_DATA_LOCATION}/{1..4}/node/sdb1 /var/run/swift ;do
[[ -d $d ]] && continue
sudo install -o ${USER} -g $USER_GROUP -d $d
done
- sudo chown -R $USER: ${SWIFT_LOCATION}/{1..4}/node
+ # We do want to make sure this is all owned by our user.
+ sudo chown -R $USER: ${SWIFT_DATA_LOCATION}/{1..4}/node
+ sudo chown -R $USER: ${SWIFT_CONFIG_LOCATION}
+ # swift-init has a bug using /etc/swift until bug #885595 is fixed
+ # we have to create a link
+ sudo ln -s ${SWIFT_CONFIG_LOCATION} /etc/swift
+
# Swift use rsync to syncronize between all the different
# partitions (which make more sense when you have a multi-node
# setup) we configure it with our version of rsync.
- sed -e "s/%GROUP%/${USER_GROUP}/;s/%USER%/$USER/;s,%SWIFT_LOCATION%,$SWIFT_LOCATION," $FILES/swift/rsyncd.conf | sudo tee /etc/rsyncd.conf
+ sed -e "s/%GROUP%/${USER_GROUP}/;s/%USER%/$USER/;s,%SWIFT_DATA_LOCATION%,$SWIFT_DATA_LOCATION," $FILES/swift/rsyncd.conf | sudo tee /etc/rsyncd.conf
sudo sed -i '/^RSYNC_ENABLE=false/ { s/false/true/ }' /etc/default/rsync
# By default Swift will be installed with the tempauth middleware
@@ -703,10 +714,10 @@
# We do the install of the proxy-server and swift configuration
# replacing a few directives to match our configuration.
- sed "s/%USER%/$USER/;s/%SERVICE_TOKEN%/${SERVICE_TOKEN}/;s/%AUTH_SERVER%/${swift_auth_server}/" \
- $FILES/swift/proxy-server.conf|sudo tee /etc/swift/proxy-server.conf
+ sed "s,%SWIFT_CONFIG_LOCATION%,${SWIFT_CONFIG_LOCATION},;s/%USER%/$USER/;s/%SERVICE_TOKEN%/${SERVICE_TOKEN}/;s/%AUTH_SERVER%/${swift_auth_server}/" \
+ $FILES/swift/proxy-server.conf|sudo tee ${SWIFT_CONFIG_LOCATION}/proxy-server.conf
- sed -e "s/%SWIFT_HASH%/$SWIFT_HASH/" $FILES/swift/swift.conf > /etc/swift/swift.conf
+ sed -e "s/%SWIFT_HASH%/$SWIFT_HASH/" $FILES/swift/swift.conf > ${SWIFT_CONFIG_LOCATION}/swift.conf
# We need to generate a object/account/proxy configuration
# emulating 4 nodes on different ports we have a little function
@@ -718,9 +729,9 @@
local node_number
for node_number in {1..4};do
- node_path=${SWIFT_LOCATION}/${node_number}
- sed -e "s,%USER%,$USER,;s,%NODE_PATH%,${node_path},;s,%BIND_PORT%,${bind_port},;s,%LOG_FACILITY%,${log_facility}," \
- $FILES/swift/${server_type}-server.conf > /etc/swift/${server_type}-server/${node_number}.conf
+ node_path=${SWIFT_DATA_LOCATION}/${node_number}
+ sed -e "s,%SWIFT_CONFIG_LOCATION%,${SWIFT_CONFIG_LOCATION},;s,%USER%,$USER,;s,%NODE_PATH%,${node_path},;s,%BIND_PORT%,${bind_port},;s,%LOG_FACILITY%,${log_facility}," \
+ $FILES/swift/${server_type}-server.conf > ${SWIFT_CONFIG_LOCATION}/${server_type}-server/${node_number}.conf
bind_port=$(( ${bind_port} + 10 ))
log_facility=$(( ${log_facility} + 1 ))
done
@@ -736,7 +747,7 @@
# - swift-startmain
# Restart your full cluster.
#
- sed -e "s/%SWIFT_PARTITION_POWER_SIZE%/$SWIFT_PARTITION_POWER_SIZE/" $FILES/swift/swift-remakerings | \
+ sed -e "s,%SWIFT_CONFIG_LOCATION%,${SWIFT_CONFIG_LOCATION},;s/%SWIFT_PARTITION_POWER_SIZE%/$SWIFT_PARTITION_POWER_SIZE/" $FILES/swift/swift-remakerings | \
sudo tee /usr/local/bin/swift-remakerings
sudo install -m755 $FILES/swift/swift-startmain /usr/local/bin/
sudo chmod +x /usr/local/bin/swift-*