From 63024d91258969c6d785c364de33a2240878c941 Mon Sep 17 00:00:00 2001
From: Julien Vey <julien.vey@numergy.com>
Date: Tue, 6 May 2014 15:10:07 +0200
Subject: [PATCH] Add an option in lib/swift to increase max_header_size

With the increasing number of entries in the service_catalog header,
some projects will have a header bigger than 8192 and Swift cannot
handle headers of this size. Solum is the first one to have this issue

As a temporary hack to fix Solum's gate, we are increasing
the value of the max_header_size parameter in our "lib" script.

This patch makes this settings global to all projects using devstack,
so that in a near future, if a project has a service_catalog header
bigger than 8192, it doesn't have the same problems we had.

Closes bug 1316585

Change-Id: I5c15f8f9531839353c3d99e46d920688058ec33c
---
 lib/swift | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/swift b/lib/swift
index 6db779a58f..1e24c2cbb8 100644
--- a/lib/swift
+++ b/lib/swift
@@ -103,6 +103,10 @@ SWIFT_REPLICAS_SEQ=$(seq ${SWIFT_REPLICAS})
 # trace through the logs when looking for its use.
 SWIFT_LOG_TOKEN_LENGTH=${SWIFT_LOG_TOKEN_LENGTH:-12}
 
+# Set ``SWIFT_MAX_HEADER_SIZE`` to configure the maximun length of headers in
+# Swift API
+SWIFT_MAX_HEADER_SIZE=${SWIFT_MAX_HEADER_SIZE:-16384}
+
 # Set ``OBJECT_PORT_BASE``, ``CONTAINER_PORT_BASE``, ``ACCOUNT_PORT_BASE``
 # Port bases used in port number calclution for the service "nodes"
 # The specified port number will be used, the additinal ports calculated by
@@ -404,6 +408,7 @@ EOF
 
     cp ${SWIFT_DIR}/etc/swift.conf-sample ${SWIFT_CONF_DIR}/swift.conf
     iniset ${SWIFT_CONF_DIR}/swift.conf swift-hash swift_hash_path_suffix ${SWIFT_HASH}
+    iniset ${SWIFT_CONF_DIR}/swift.conf swift-constraints max_header_size ${SWIFT_MAX_HEADER_SIZE}
 
     for node_number in ${SWIFT_REPLICAS_SEQ}; do
         swift_node_config=${SWIFT_CONF_DIR}/object-server/${node_number}.conf