couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From J Chris Anderson <jch...@apache.org>
Subject Re: [jira] Commented: (COUCHDB-855) New host manager
Date Wed, 18 Aug 2010 01:24:25 GMT

On Aug 16, 2010, at 11:52 AM, Klaus Trainer wrote:

> Hey Chris,
> 
> I guess there was a race condition while you processed Benoit's and my
> patch in parallel.
> 

Now I'm confused... I guess I put the comment about your patch on the wrong ticket?

Chris

> Cheers,
> Klaus
> 
> 
> On Mon, 2010-08-16 at 13:17 -0400, Chris Anderson (JIRA) wrote:
>> [ https://issues.apache.org/jira/browse/COUCHDB-855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12898993#action_12898993
] 
>> 
>> Chris Anderson commented on COUCHDB-855:
>> ----------------------------------------
>> 
>> patch looks great! thanks so much. only change I'd suggest is removing this change:
>> 
>>       basicView : {
>>         map : stringFun(function(doc) {
>> -          emit(doc.integer, doc.string);
>> +          if (doc.integer && doc.string)
>> +            emit(doc.integer, doc.string);
>>         })
>>       },
>>       withReduce : {
>>         map : stringFun(function(doc) {
>> -          emit(doc.integer, doc.string);
>> +          if (doc.integer && doc.string)
>> +            emit(doc.integer, doc.string);
>>         }),
>> 
>> 
>> I know these guard conditions are good practice, but in real life there are lots
of "bad" views out there, so we should ensure the tests pass even without the guards.
>> 
>>> New host manager
>>> ----------------
>>> 
>>>                Key: COUCHDB-855
>>>                URL: https://issues.apache.org/jira/browse/COUCHDB-855
>>>            Project: CouchDB
>>>         Issue Type: Improvement
>>>   Affects Versions: 1.1
>>>           Reporter: Benoit Chesneau
>>>           Assignee: Benoit Chesneau
>>>            Fix For: 1.1
>>> 
>>>        Attachments: 0001-New-vhost-manager.-allows-dynamic-add-of-vhosts-with.patch
>>> 
>>> 
>>> New vhost manager. allows dynamic add of vhosts without restart, wildcard in
vhost and specific functions in erlang by kind of domain. It also fix issue in etap test (160)
.
>>> Find attached to this ticket the patch. It is also available in my github repo
:
>>> http://github.com/benoitc/couchdb/commit/435c756cc6e687886cc7055302963f422cf0e161
>>> more details :
>>> This gen_server keep state of vhosts added to the ini and try to
>>> match the Host header (or forwarded) against rules built against
>>> vhost list. 
>>> Declaration of vhosts take place in the configuration file :
>>> [vhosts]
>>> example.com = /example
>>> *.example.com = /example
>>> The first line will rewrite the rquest to display the content of the
>>> example database. This rule works only if the Host header is
>>> 'example.com' and won't work for CNAMEs. Second rule on the other hand
>>> match all CNAMES to example db. So www.example.com or db.example.com
>>> will work.
>>> The wildcard ('*') should always be the last in the cnames:
>>>     "*.db.example.com = /"  will match all cname on top of db
>>> examples to the root of the machine. (for now no rewriting is
>>> possible).
>>> By default vhosts redirection is handle by the function
>>> couch_httpd_vhost:redirect_to_vhost, but you could pass per vhost a
>>> specific function :
>>>     "*.domain.com" = {Module, Func}"
>>> The function take the Mochiweb Request object and should return a new
>>> Mochiweb Request object.
>>> You could also change the default function to handle request by
>>> changing the setting `redirect_vhost_handler` in `httpd` section of
>>> the Ini:
>>>      [httpd]
>>>      redirect_vhost_handler = {Module, Fun}
>>> The function take 2 args : the mochiweb request object and the target
>>> path. 
>> 
> 
> 


Mime
View raw message