I'm automating the setup of lots of single-node clusters which all want to
do "pull" replication from a single-node cluster's db designated as the
master. The quick story is that after enabling replication the documents
that were replicated are only visible from the default "node" port, 5986.

1. I have an rpm built by compiling 2.0.0 source and running "make install
release". Other than creating the couchdb user and setting file permissions
the rpm makes no changes to the code.

2. On each server, the rpm is installed using the same default.ini and
local.ini supplied by the source.

3. Then they're configured by running this:
curl -H 'Content-Type: application/json' -X POST
http://127.0.0.1:5984/_cluster_setup -d \
'{"action":"enable_cluster","username":"admin","password":"caught_ya_looking!","bind_address":"0.0.0.0","port":
5984}'
curl -H 'Content-Type: application/json' -X POST
http://admin:caught_ya_looking\[email protected]:5984/_cluster_setup -d \
'{
  "action":"add_node",
  "username":"admin",
  "password":"caught_ya_looking!",
  "host":"127.0.0.1",
  "port":5984
}'
curl -H 'Content-Type: application/json' -X POST
http://admin:caught_ya_looking\[email protected]:5984/_cluster_setup -d \
'{"action":"finish_cluster"}'
curl -H 'Content-Type: application/json' -X PUT
http://admin:caught_ya_looking\[email protected]:5984/monitor

4. On the "master" server, named "md-004" the "monitor" database has a
couchapp uploaded and verified it's usable on port 5984.

5. On a slave server, named "md-005" the following is run:
curl -k -H 'Content-Type: application/json' -X POST
http://admin:caught_ya_looking\[email protected]:5984/_replicator -d \
'{
  "source":"http://admin:caught_ya_looking!@md-004:5984/monitor";,
  "target":"monitor",
  "continuous":true,
  "user_ctx": {
    "roles": ["_admin"]
  }
}'

6. The problem: On the slave server's 5984 fauxton, "monitor" db has size
0. On slave server's 5986 fauxton, the "monitor" db is correctly sized and
the couchapp is usable.

What am I missing with this setup? My call to _replicator is over 5984, so
I expected anything pulled to be accessible to the slave's "public" port,
not just the node.

Reply via email to