Curl command to configure replication | Community
Skip to main content
This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Mschilli

I figured this out, and thought I would post what I have working.

 

This is a simple bash script that will create a author->publisher replication agent page and set the properties.  

 

#!/bin/bash
if [ $# -ne 2 ] ; then
        echo "Syntax Error!"
        echo "$0 <publisher_hostname_to_replicate_to> <author hostname>"
        exit 1

fi
AUTHOR_NAME=$2 # This is the hostname of the author.
PUBLISHER_NAME=$1 #This is the hostname of the publisher that the author will replicate to.
REPL_USER="admin" # This should be set to the publisher's replication user accountname.
REPL_PASSWORD="admin" # This should be set to the publisher's password for the replication user.
AUTHOR_PORT="4502"
PUBLISHER_PORT="4503"
AUTHOR="http://${AUTHOR_NAME}:${AUTHOR_PORT}"
PUBLISHER="http://${PUBLISHER_NAME}:${PUBLISHER_PORT}"
URI="${PUBLISHER}/bin/receive?sling:authRequestLogin=1"

#First, create the page.
curl -u admin:admin --data "status=browser&cmd=createPage&label=${PUBLISHER_NAME}&title=${PUBLISHER_NAME}&parentPath=/etc/replication/agents.author&template=/libs/cq/replication/templates/agent" ${AUTHOR}/bin/wcmcommand


# set the jcr properties.
curl -u admin:admin -F "jcr:primaryType=cq:Page" \
 -F "jcr:primaryType=nt:unstructured" \
-F "jcr:content/jcr:title=${PUBLISHER_NAME}" \
-F "jcr:content/sling:resourceType=cq/replication/components/agent" \
-F "jcr:content/loglevel=info" \
-F "jcr:content/retryDelay=60000" \
-F "jcr:content/serializationType=durbo" \
-F "jcr:content/transportUser=admin" \
-F "jcr:content/transportUri=${URI}" \
 -F "jcr:content/transportPassword=admin" \
-F "jcr:content/jcr:description=${PUBLISHER_NAME} replication" \
-F "jcr:content/enabled=true" \
${AUTHOR}/etc/replication/agents.author/${PUBLISHER_NAME}

3 replies

joerghoh
Adobe Employee
Adobe Employee
October 16, 2015

Hi,

as the replication agents are configured via standard JCR nodes, you can use the Sling Post Servlet to create the correct node structure with the required properties.

kind regards,
Jörg

MschilliAuthor
October 16, 2015

Are there any examples of that for replication?

MschilliAuthorAccepted solution
October 16, 2015

I figured this out, and thought I would post what I have working.

 

This is a simple bash script that will create a author->publisher replication agent page and set the properties.  

 

#!/bin/bash
if [ $# -ne 2 ] ; then
        echo "Syntax Error!"
        echo "$0 <publisher_hostname_to_replicate_to> <author hostname>"
        exit 1

fi
AUTHOR_NAME=$2 # This is the hostname of the author.
PUBLISHER_NAME=$1 #This is the hostname of the publisher that the author will replicate to.
REPL_USER="admin" # This should be set to the publisher's replication user accountname.
REPL_PASSWORD="admin" # This should be set to the publisher's password for the replication user.
AUTHOR_PORT="4502"
PUBLISHER_PORT="4503"
AUTHOR="http://${AUTHOR_NAME}:${AUTHOR_PORT}"
PUBLISHER="http://${PUBLISHER_NAME}:${PUBLISHER_PORT}"
URI="${PUBLISHER}/bin/receive?sling:authRequestLogin=1"

#First, create the page.
curl -u admin:admin --data "status=browser&cmd=createPage&label=${PUBLISHER_NAME}&title=${PUBLISHER_NAME}&parentPath=/etc/replication/agents.author&template=/libs/cq/replication/templates/agent" ${AUTHOR}/bin/wcmcommand


# set the jcr properties.
curl -u admin:admin -F "jcr:primaryType=cq:Page" \
 -F "jcr:primaryType=nt:unstructured" \
-F "jcr:content/jcr:title=${PUBLISHER_NAME}" \
-F "jcr:content/sling:resourceType=cq/replication/components/agent" \
-F "jcr:content/loglevel=info" \
-F "jcr:content/retryDelay=60000" \
-F "jcr:content/serializationType=durbo" \
-F "jcr:content/transportUser=admin" \
-F "jcr:content/transportUri=${URI}" \
 -F "jcr:content/transportPassword=admin" \
-F "jcr:content/jcr:description=${PUBLISHER_NAME} replication" \
-F "jcr:content/enabled=true" \
${AUTHOR}/etc/replication/agents.author/${PUBLISHER_NAME}