<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[11893] CalendarServer/branches/users/cdaboo/reverse-proxy-pods</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.calendarserver.org//changeset/11893">11893</a></dd>
<dt>Author</dt> <dd>cdaboo@apple.com</dd>
<dt>Date</dt> <dd>2013-11-06 14:17:27 -0800 (Wed, 06 Nov 2013)</dd>
</dl>
<h3>Log Message</h3>
<pre>Add podding configuration. Add a new ImportConfig option to config files to allow bottom-up inclusion of other configs,
rather than the top-down approach that IncludeFiles uses.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodscalendarservertapcaldavpy">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/calendarserver/tap/caldav.py</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodsconflocalserverstestxml">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/localservers-test.xml</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodstwistedcaldavconfigpy">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/twistedcaldav/config.py</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodstwistedcaldavstdconfigpy">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/twistedcaldav/stdconfig.py</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodstxdavcaldavdatastoreschedulingcaldavschedulerpy">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/txdav/caldav/datastore/scheduling/caldav/scheduler.py</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodsconfauthaccountstestpodxml">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/accounts-test-pod.xml</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodsconfauthaugmentstestpodxml">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/augments-test-pod.xml</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodsconfauthproxiestestpodxml">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/proxies-test-pod.xml</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodsconfauthresourcestestpodxml">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/resources-test-pod.xml</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodsconfcaldavdtestpodAplist">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/caldavd-test-podA.plist</a></li>
<li><a href="#CalendarServerbranchesuserscdabooreverseproxypodsconfcaldavdtestpodBplist">CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/caldavd-test-podB.plist</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="CalendarServerbranchesuserscdabooreverseproxypodscalendarservertapcaldavpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/calendarserver/tap/caldav.py (11892 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/calendarserver/tap/caldav.py        2013-11-06 21:20:52 UTC (rev 11892)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/calendarserver/tap/caldav.py        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -402,6 +402,8 @@
</span><span class="cx">
</span><span class="cx"> config.load(self["config"])
</span><span class="cx">
</span><ins>+ for path in config.getProvider().importedFiles:
+ print("Imported configuration from file: '%s'" % (path,))
</ins><span class="cx"> for path in config.getProvider().includedFiles:
</span><span class="cx"> print("Adding configuration from file: '%s'" % (path,))
</span><span class="cx"> for path in config.getProvider().missingFiles:
</span></span></pre></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodsconfauthaccountstestpodxml"></a>
<div class="addfile"><h4>Added: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/accounts-test-pod.xml (0 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/accounts-test-pod.xml         (rev 0)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/accounts-test-pod.xml        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+<?xml version="1.0" encoding="utf-8"?>
+
+<accounts realm="Test Realm">
+ <user>
+ <uid>admin</uid>
+ <guid>admin</guid>
+ <password>admin</password>
+ <name>Super User</name>
+ <first-name>Super</first-name>
+ <last-name>User</last-name>
+ </user>
+ <user repeat="101">
+ <uid>user%02d</uid>
+ <uid>User %02d</uid>
+ <guid>user%02d</guid>
+ <password>user%02d</password>
+ <name>User %02d</name>
+ <first-name>User</first-name>
+ <last-name>%02d</last-name>
+ <email-address>user%02d@example.com</email-address>
+ </user>
+ <user repeat="101">
+ <uid>puser%02d</uid>
+ <uid>Puser %02d</uid>
+ <guid>puser%02d</guid>
+ <password>puser%02d</password>
+ <name>Puser %02d</name>
+ <first-name>Puser</first-name>
+ <last-name>%02d</last-name>
+ <email-address>puser%02d@example.com</email-address>
+ </user>
+</accounts>
</ins><span class="cx">Property changes on: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/accounts-test-pod.xml
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnexecutable"></a>
<div class="addfile"><h4>Added: svn:executable</h4></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodsconfauthaugmentstestpodxml"></a>
<div class="addfile"><h4>Added: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/augments-test-pod.xml (0 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/augments-test-pod.xml         (rev 0)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/augments-test-pod.xml        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE augments SYSTEM "augments.dtd">
+
+<augments>
+ <record>
+ <uid>Default</uid>
+ <enable>true</enable>
+ <server-id>A</server-id>
+ <enable-calendar>true</enable-calendar>
+ <enable-addressbook>true</enable-addressbook>
+ </record>
+ <record repeat="101">
+ <uid>puser%02d</uid>
+ <enable>true</enable>
+ <server-id>B</server-id>
+ <enable-calendar>true</enable-calendar>
+ <enable-addressbook>true</enable-addressbook>
+ </record>
+</augments>
</ins></span></pre></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodsconfauthproxiestestpodxml"></a>
<div class="addfile"><h4>Added: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/proxies-test-pod.xml (0 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/proxies-test-pod.xml         (rev 0)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/proxies-test-pod.xml        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+Copyright (c) 2009-2013 Apple Inc. All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+ -->
+
+<!DOCTYPE proxies SYSTEM "proxies.dtd">
+
+<proxies>
+</proxies>
</ins></span></pre></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodsconfauthresourcestestpodxml"></a>
<div class="addfile"><h4>Added: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/resources-test-pod.xml (0 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/resources-test-pod.xml         (rev 0)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/resources-test-pod.xml        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+<?xml version="1.0" encoding="utf-8"?>
+
+<accounts realm="Test Realm">
+</accounts>
</ins><span class="cx">Property changes on: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/auth/resources-test-pod.xml
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnexecutable"></a>
<div class="addfile"><h4>Added: svn:executable</h4></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodsconfcaldavdtestpodAplist"></a>
<div class="addfile"><h4>Added: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/caldavd-test-podA.plist (0 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/caldavd-test-podA.plist         (rev 0)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/caldavd-test-podA.plist        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -0,0 +1,158 @@
</span><ins>+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright (c) 2006-2009 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+
+ <!-- Import a parent config before this one -->
+ <key>ImportConfig</key>
+ <string>./conf/caldavd-test.plist</string>
+
+ <!-- HTTP port [0 = disable HTTP] -->
+ <key>HTTPPort</key>
+ <integer>8008</integer>
+
+ <!-- SSL port [0 = disable HTTPS] -->
+ <!-- (Must also configure SSLCertificate and SSLPrivateKey below) -->
+ <key>SSLPort</key>
+ <integer>8443</integer>
+
+ <!-- List of port numbers to bind to for HTTP [empty = same as "Port"] -->
+ <key>BindHTTPPorts</key>
+ <array>
+ </array>
+
+ <!-- List of port numbers to bind to for SSL [empty = same as "SSLPort"] -->
+ <key>BindSSLPorts</key>
+ <array>
+ </array>
+
+ <!-- Server root -->
+ <key>ServerRoot</key>
+ <string>./data/podA</string>
+
+ <!-- Configuration root -->
+ <key>ConfigRoot</key>
+ <string>./conf</string>
+
+ <!-- XML File Directory Service -->
+ <key>DirectoryService</key>
+ <dict>
+ <key>type</key>
+ <string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
+
+ <key>params</key>
+ <dict>
+ <key>xmlFile</key>
+ <string>./conf/auth/accounts-test-pod.xml</string>
+ </dict>
+ </dict>
+
+ <!-- Resource and Location Service -->
+ <key>ResourceService</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>type</key>
+ <string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
+
+ <key>params</key>
+ <dict>
+ <key>xmlFile</key>
+ <string>./conf/auth/resources-test-pod.xml</string>
+ </dict>
+ </dict>
+
+ <!-- XML File Augment Service -->
+ <key>AugmentService</key>
+ <dict>
+ <key>type</key>
+ <string>twistedcaldav.directory.augment.AugmentXMLDB</string>
+
+ <key>params</key>
+ <dict>
+ <key>xmlFiles</key>
+ <array>
+         <string>./conf/auth/augments-test-pod.xml</string>
+ </array>
+ </dict>
+ </dict>
+
+ <key>ProxyLoadFromFile</key>
+ <string>./conf/auth/proxies-test-pod.xml</string>
+
+ <!-- Servers -->
+ <key>Servers</key>
+ <dict>
+         <key>Enabled</key>
+         <true/>
+         <key>ConfigFile</key>
+         <string>./conf/localservers-test.xml</string>
+         <key>MaxClients</key>
+         <integer>5</integer>
+         <key>InboxName</key>
+         <string>podding</string>
+        </dict>
+
+ <!-- Support for Memcached -->
+ <key>Memcached</key>
+ <dict>
+         <key>Pools</key>
+                <dict>
+                 <key>Default</key>
+                 <dict>
+                 <key>ClientEnabled</key>
+                 <true/>
+                 <key>ServerEnabled</key>
+                 <true/>
+                 <key>BindAddress</key>
+                 <string>localhost</string>
+                 <key>Port</key>
+                 <integer>11211</integer>
+                 </dict>
+                 <key>ProxyDB</key>
+                 <dict>
+                 <key>ClientEnabled</key>
+                 <true/>
+                 <key>ServerEnabled</key>
+                 <true/>
+                 <key>BindAddress</key>
+                 <string>localhost</string>
+                 <key>Port</key>
+                 <integer>11311</integer>
+                 <key>HandleCacheTypes</key>
+                 <array>
+                 <string>ProxyDB</string>
+                 <string>PrincipalToken</string>
+                 <string>DIGESTCREDENTIALS</string>
+                 </array>
+                 </dict>
+                </dict>
+ <key>MaxClients</key>
+ <integer>5</integer>
+ <key>memcached</key>
+ <string>../memcached/_root/bin/memcached</string> <!-- Find in PATH -->
+ <key>Options</key>
+ <array>
+ <!--<string>-vv</string>-->
+ </array>
+ </dict>
+
+ </dict>
+</plist>
</ins></span></pre></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodsconfcaldavdtestpodBplist"></a>
<div class="addfile"><h4>Added: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/caldavd-test-podB.plist (0 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/caldavd-test-podB.plist         (rev 0)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/caldavd-test-podB.plist        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -0,0 +1,158 @@
</span><ins>+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright (c) 2006-2009 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+
+ <!-- Import a parent config before this one -->
+ <key>ImportConfig</key>
+ <string>./conf/caldavd-test.plist</string>
+
+ <!-- HTTP port [0 = disable HTTP] -->
+ <key>HTTPPort</key>
+ <integer>8108</integer>
+
+ <!-- SSL port [0 = disable HTTPS] -->
+ <!-- (Must also configure SSLCertificate and SSLPrivateKey below) -->
+ <key>SSLPort</key>
+ <integer>8543</integer>
+
+ <!-- List of port numbers to bind to for HTTP [empty = same as "Port"] -->
+ <key>BindHTTPPorts</key>
+ <array>
+ </array>
+
+ <!-- List of port numbers to bind to for SSL [empty = same as "SSLPort"] -->
+ <key>BindSSLPorts</key>
+ <array>
+ </array>
+
+ <!-- Server root -->
+ <key>ServerRoot</key>
+ <string>./data/podB</string>
+
+ <!-- Configuration root -->
+ <key>ConfigRoot</key>
+ <string>./conf</string>
+
+ <!-- XML File Directory Service -->
+ <key>DirectoryService</key>
+ <dict>
+ <key>type</key>
+ <string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
+
+ <key>params</key>
+ <dict>
+ <key>xmlFile</key>
+ <string>./conf/auth/accounts-test-pod.xml</string>
+ </dict>
+ </dict>
+
+ <!-- Resource and Location Service -->
+ <key>ResourceService</key>
+ <dict>
+ <key>Enabled</key>
+ <true/>
+ <key>type</key>
+ <string>twistedcaldav.directory.xmlfile.XMLDirectoryService</string>
+
+ <key>params</key>
+ <dict>
+ <key>xmlFile</key>
+ <string>./conf/auth/resources-test-pod.xml</string>
+ </dict>
+ </dict>
+
+ <!-- XML File Augment Service -->
+ <key>AugmentService</key>
+ <dict>
+ <key>type</key>
+ <string>twistedcaldav.directory.augment.AugmentXMLDB</string>
+
+ <key>params</key>
+ <dict>
+ <key>xmlFiles</key>
+ <array>
+         <string>./conf/auth/augments-test-pod.xml</string>
+ </array>
+ </dict>
+ </dict>
+
+ <key>ProxyLoadFromFile</key>
+ <string>./conf/auth/proxies-test-pod.xml</string>
+
+ <!-- Servers -->
+ <key>Servers</key>
+ <dict>
+         <key>Enabled</key>
+         <true/>
+         <key>ConfigFile</key>
+         <string>./conf/localservers-test.xml</string>
+         <key>MaxClients</key>
+         <integer>5</integer>
+         <key>InboxName</key>
+         <string>podding</string>
+        </dict>
+
+ <!-- Support for Memcached -->
+ <key>Memcached</key>
+ <dict>
+         <key>Pools</key>
+                <dict>
+                 <key>Default</key>
+                 <dict>
+                 <key>ClientEnabled</key>
+                 <true/>
+                 <key>ServerEnabled</key>
+                 <true/>
+                 <key>BindAddress</key>
+                 <string>localhost</string>
+                 <key>Port</key>
+                 <integer>11411</integer>
+                 </dict>
+                 <key>ProxyDB</key>
+                 <dict>
+                 <key>ClientEnabled</key>
+                 <true/>
+                 <key>ServerEnabled</key>
+                 <true/>
+                 <key>BindAddress</key>
+                 <string>localhost</string>
+                 <key>Port</key>
+                 <integer>11311</integer>
+                 <key>HandleCacheTypes</key>
+                 <array>
+                 <string>ProxyDB</string>
+                 <string>PrincipalToken</string>
+                 <string>DIGESTCREDENTIALS</string>
+                 </array>
+                 </dict>
+                </dict>
+ <key>MaxClients</key>
+ <integer>5</integer>
+ <key>memcached</key>
+ <string>../memcached/_root/bin/memcached</string> <!-- Find in PATH -->
+ <key>Options</key>
+ <array>
+ <!--<string>-vv</string>-->
+ </array>
+ </dict>
+
+ </dict>
+</plist>
</ins></span></pre></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodsconflocalserverstestxml"></a>
<div class="modfile"><h4>Modified: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/localservers-test.xml (11892 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/localservers-test.xml        2013-11-06 21:20:52 UTC (rev 11892)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/conf/localservers-test.xml        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -20,7 +20,15 @@
</span><span class="cx">
</span><span class="cx"> <servers>
</span><span class="cx"> <server>
</span><del>- <id>00001</id>
</del><ins>+ <id>A</id>
</ins><span class="cx"> <uri>http://localhost:8008</uri>
</span><ins>+ <allowed-from>localhost</allowed-from>
+ <shared-secret>A</shared-secret>
</ins><span class="cx"> </server>
</span><ins>+ <server>
+ <id>B</id>
+ <uri>http://localhost:8108</uri>
+ <allowed-from>localhost</allowed-from>
+ <shared-secret>B</shared-secret>
+ </server>
</ins><span class="cx"> </servers>
</span></span></pre></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodstwistedcaldavconfigpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/twistedcaldav/config.py (11892 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/twistedcaldav/config.py        2013-11-06 21:20:52 UTC (rev 11892)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/twistedcaldav/config.py        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -97,6 +97,7 @@
</span><span class="cx"> self._defaults = ConfigDict()
</span><span class="cx"> else:
</span><span class="cx"> self._defaults = ConfigDict(copy.deepcopy(defaults))
</span><ins>+ self.importedFiles = []
</ins><span class="cx"> self.includedFiles = []
</span><span class="cx"> self.missingFiles = []
</span><span class="cx">
</span></span></pre></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodstwistedcaldavstdconfigpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/twistedcaldav/stdconfig.py (11892 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/twistedcaldav/stdconfig.py        2013-11-06 21:20:52 UTC (rev 11892)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/twistedcaldav/stdconfig.py        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -1010,7 +1010,8 @@
</span><span class="cx"> # means no automatic shutdown.
</span><span class="cx"> "AgentInactivityTimeoutSeconds" : 4 * 60 * 60,
</span><span class="cx">
</span><del>- # These two aren't relative to ConfigRoot:
</del><ins>+ # These aren't relative to ConfigRoot:
+ "ImportConfig": "", # Config to read first and merge
</ins><span class="cx"> "Includes": [], # Other plists to parse after this one
</span><span class="cx"> "WritableConfigFile" : "", # which config file calendarserver_config should
</span><span class="cx"> # write to for changes; empty string means the main config file.
</span><span class="lines">@@ -1043,6 +1044,22 @@
</span><span class="cx"> configDict = self._parseConfigFromFile(self._configFileName)
</span><span class="cx"> configDict = ConfigDict(configDict)
</span><span class="cx">
</span><ins>+ def _loadImport(childDict):
+ # Look for an import and read that one as the main config and merge the current one into that
+ if "ImportConfig" in childDict and childDict.ImportConfig:
+ configRoot = os.path.join(childDict.ServerRoot, childDict.ConfigRoot)
+ path = _expandPath(fullServerPath(configRoot, childDict.ImportConfig))
+ if os.path.exists(path):
+ importDict = ConfigDict(self._parseConfigFromFile(path))
+ if importDict:
+ self.importedFiles.append(path)
+ importDict = _loadImport(importDict)
+ mergeData(importDict, childDict)
+ return importDict
+ raise ConfigurationError("Import configuration file '{path}' must exist and be valid.".format(path=path))
+ else:
+ return childDict
+
</ins><span class="cx"> def _loadIncludes(parentDict):
</span><span class="cx"> # Now check for Includes and parse and add each of those
</span><span class="cx"> if "Includes" in parentDict:
</span><span class="lines">@@ -1059,6 +1076,7 @@
</span><span class="cx"> else:
</span><span class="cx"> self.missingFiles.append(path)
</span><span class="cx">
</span><ins>+ configDict = _loadImport(configDict)
</ins><span class="cx"> _loadIncludes(configDict)
</span><span class="cx"> return configDict
</span><span class="cx">
</span></span></pre></div>
<a id="CalendarServerbranchesuserscdabooreverseproxypodstxdavcaldavdatastoreschedulingcaldavschedulerpy"></a>
<div class="modfile"><h4>Modified: CalendarServer/branches/users/cdaboo/reverse-proxy-pods/txdav/caldav/datastore/scheduling/caldav/scheduler.py (11892 => 11893)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/branches/users/cdaboo/reverse-proxy-pods/txdav/caldav/datastore/scheduling/caldav/scheduler.py        2013-11-06 21:20:52 UTC (rev 11892)
+++ CalendarServer/branches/users/cdaboo/reverse-proxy-pods/txdav/caldav/datastore/scheduling/caldav/scheduler.py        2013-11-06 22:17:27 UTC (rev 11893)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> ))
</span><span class="cx"> else:
</span><span class="cx"> if not (originatorPrincipal.calendarsEnabled() and originatorPrincipal.thisServer()):
</span><del>- log.err("Originator not enabled or hosted on this server: %s" % (self.originator,))
</del><ins>+ log.error("Originator not enabled or hosted on this server: %s" % (self.originator,))
</ins><span class="cx"> raise HTTPError(self.errorResponse(
</span><span class="cx"> responsecode.FORBIDDEN,
</span><span class="cx"> self.errorElements["originator-denied"],
</span></span></pre>
</div>
</div>
</body>
</html>