Thu Jun 18 09:52:24 PDT 2009
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /home/cvsd/slony1/slony1-engine/tools In directory main.slony.info:/tmp/cvs-serv7258 Modified Files: Tag: REL_2_0_STABLE slonikconfdump.sh Log Message: Cleanup of slonikconfdump.sh - There were a couple bugs - Variables were quite badly named making it rather opaque Index: slonikconfdump.sh =================================================================== RCS file: /home/cvsd/slony1/slony1-engine/tools/Attic/slonikconfdump.sh,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** slonikconfdump.sh 12 Jun 2009 22:42:13 -0000 1.1.2.3 --- slonikconfdump.sh 18 Jun 2009 16:52:22 -0000 1.1.2.4 *************** *** 12,16 **** echo "cluster name=${SLONYCLUSTER};" ! function RQ () { local QUERY=$1 RESULTSET=`psql -qtA -F ":" -R " " -c "${QUERY}"` --- 12,16 ---- echo "cluster name=${SLONYCLUSTER};" ! function RUNQUERY () { local QUERY=$1 RESULTSET=`psql -qtA -F ":" -R " " -c "${QUERY}"` *************** *** 35,133 **** Q="select distinct pa_server from ${SS}.sl_path order by pa_server;" ! PATHS=`RQ "${Q}"` for svr in `echo ${PATHS}`; do ! SQ="select pa_conninfo from ${SS}.sl_path where pa_server=${svr} order by pa_client asc limit 1;" ! conninfo=`RQ "${SQ}"` echo "node ${svr} admin conninfo='${conninfo}';" done ! Q="select no_id, no_comment from ${SS}.sl_node order by no_id limit 1;" ! ! NODE1=`RQ "${Q}"` nn=`arg1 "${NODE1}"` comment=`arg2 ${NODE1}` echo "init cluster (id=${nn}, comment='${comment}');" ! Q="select no_id from ${SS}.sl_node order by no_id offset 1;" ! NODES=`RQ "${Q}"` for node in `echo ${NODES}`; do ! CQ="select no_comment from ${SS}.sl_node where no_id = ${node};" ! comment=`RQ "${CQ}"` echo "store node (id=${node}, comment='${comment}');" done ! Q="select pa_server, pa_client, pa_connretry from ${SS}.sl_path order by pa_server, pa_client;" ! PATHS=`RQ "${Q}"` for sc in `echo $PATHS`; do server=`arg1 $sc` client=`arg2 $sc` retry=`arg3 $sc` ! Q2="select pa_conninfo from ${SS}.sl_path where pa_server=${server} and pa_client=${client};" ! conninfo=`RQ "${Q2}"` echo "store path (server=${server}, client=${client}, conninfo='${conninfo}', connretry=${retry});" done ! Q="select set_id, set_origin from ${SS}.sl_set order by set_id;" ! SETS=`RQ "${Q}"` for sc in `echo ${SETS}`; do set=`arg1 ${sc}` origin=`arg2 ${sc}` ! Q2="select set_comment from ${SS}.sl_set where set_id=${set};" ! comment=`RQ "${Q2}"` echo "create set (id=${set}, origin=${origin}, comment='${comment}');" done ! Q="select tab_id,tab_set, set_origin from ${SS}.sl_table, ${SS}.sl_set where tab_set = set_id order by tab_id;" ! TABS=`RQ "${Q}"` ! for tb in `echo ${TABS}`; do ! tab=`arg1 ${tb}` ! set=`arg2 ${tb}` ! origin=`arg3 ${tb}` ! RQ="select tab_relname from ${SS}.sl_table where tab_id = ${tab};" ! relname=`RQ "${RQ}"` ! NSQ="select tab_nspname from ${SS}.sl_table where tab_id = ${tab};" ! nsp=`RQ "${NSQ}"` ! IDX="select tab_idxname from ${SS}.sl_table where tab_id = ${tab};" ! idx=`RQ "${IDX}"` ! COM="select tab_comment from ${SS}.sl_table where tab_id = ${tab};" ! comment=`RQ "${COM}"` echo "set add table (id=${tab}, set id=${set}, origin=${origin}, fully qualified name='\"${nsp}\".\"${relname}\"', comment='${comment}, key='${idx}');" done ! Q="select seq_id,seq_set,set_origin from ${SS}.sl_sequence, ${SS}.sl_set where seq_set = set_id order by seq_id;" ! SEQS=`RQ "${Q}"` for sq in `echo ${SEQS}`; do ! seq=`arg1 ${sq}` ! set=`arg2 ${sq}` origin=`arg3 ${sq}` ! RELQ="select seq_relname from ${SS}.sl_sequence where seq_id = ${seq};" ! relname=`RQ "${RELQ}"` ! NSQ="select seq_nspname from ${SS}.sl_sequence where seq_id = ${seq};" ! nsp=`RQ "${NSQ}"` ! COM="select seq_comment from ${SS}.sl_sequence where seq_id = ${seq};" ! comment=`RQ "${COM}"` ! echo "set add sequence(id=${seq}, set id=${set}, origin=${origin}, fully qualified name='\"${nsp}\".\"${relname}\"', comment='${comment}');" done Q="select set_id, set_origin from ${SS}.sl_set;" ! SETS=`RQ "${Q}"` ! for seti in `echo ${SETS}`; do ! set=`arg1 ${seti}` ! origins=`arg2 ${seti}` SUBQ="select sub_provider, sub_receiver from ${SS}.sl_subscribe where sub_set=${set};" ! # We use tsort to determine a feasible ordering for subscriptions SUBRES=`psql -qtA -F " " -c "${SUBQ}" | tsort | egrep -v "^${origin}\$"` for recv in `echo ${SUBRES}`; do ! SF="select sub_provider, sub_forward from ${SS}.sl_subscribe where sub_set=${set} and sub_receiver=${recv};" ! SR=`RQ "${SF}"` ! prov=`arg1 ${SR}` ! forw=`arg2 ${SR}` echo "subscribe set (id=${set}, provider=${prov}, receiver=${recv}, forward=${forw}, omit copy=true);" if [ $prov != $origin ]; then ! echo "wait for event (origin=$provider, confirmed=$origin, wait on=$provider, timeout=0);" fi ! echo "sync (id=$origin);" ! echo "wait for event (origin=$origin, confirmed=ALL, wait on=$origin, timeout=0);" done done --- 35,132 ---- Q="select distinct pa_server from ${SS}.sl_path order by pa_server;" ! PATHS=`RUNQUERY "${Q}"` for svr in `echo ${PATHS}`; do ! CONNINFOQ="select pa_conninfo from ${SS}.sl_path where pa_server=${svr} order by pa_client asc limit 1;" ! conninfo=`RUNQUERY "${CONNINFOQ}"` echo "node ${svr} admin conninfo='${conninfo}';" done ! FIRSTNODEQ="select no_id, no_comment from ${SS}.sl_node order by no_id limit 1;" ! NODE1=`RUNQUERY "${FIRSTNODEQ}"` nn=`arg1 "${NODE1}"` comment=`arg2 ${NODE1}` echo "init cluster (id=${nn}, comment='${comment}');" ! RESTOFNODESQ="select no_id from ${SS}.sl_node where no_id <> ${nn};" ! NODES=`RUNQUERY "${RESTOFNODESQ}"` for node in `echo ${NODES}`; do ! NODECOMMENT="select no_comment from ${SS}.sl_node where no_id = ${node};" ! comment=`RUNQUERY "${NODECOMMENT}"` echo "store node (id=${node}, comment='${comment}');" done ! PATHSQ="select pa_server, pa_client, pa_connretry from ${SS}.sl_path order by pa_server, pa_client;" ! PATHS=`RUNQUERY "${PATHSQ}"` for sc in `echo $PATHS`; do server=`arg1 $sc` client=`arg2 $sc` retry=`arg3 $sc` ! PATHCONN="select pa_conninfo from ${SS}.sl_path where pa_server=${server} and pa_client=${client};" ! conninfo=`RUNQUERY "${PATHCONN}"` echo "store path (server=${server}, client=${client}, conninfo='${conninfo}', connretry=${retry});" done ! SETSQ="select set_id, set_origin from ${SS}.sl_set order by set_id;" ! SETS=`RUNQUERY "${SETSQ}"` for sc in `echo ${SETS}`; do set=`arg1 ${sc}` origin=`arg2 ${sc}` ! SETCOMMENT="select set_comment from ${SS}.sl_set where set_id=${set};" ! comment=`RUNQUERY "${SETCOMMENT}"` echo "create set (id=${set}, origin=${origin}, comment='${comment}');" done ! TABLESOVERVIEW="select tab_id,tab_set, set_origin from ${SS}.sl_table, ${SS}.sl_set where tab_set = set_id order by tab_id;" ! TABIDS=`RUNQUERY "${TABLESOVERVIEW}"` ! for tablebase in `echo ${TABIDS}`; do ! tab=`arg1 ${tablebase}` ! set=`arg2 ${tablebase}` ! origin=`arg3 ${tablebase}` ! TABNAME="select tab_relname from ${SS}.sl_table where tab_id = ${tab};" ! relname=`RUNQUERY "${TABNAME}"` ! TABNSP="select tab_nspname from ${SS}.sl_table where tab_id = ${tab};" ! nsp=`RUNQUERY "${TABNSP}"` ! TABIDX="select tab_idxname from ${SS}.sl_table where tab_id = ${tab};" ! idx=`RUNQUERY "${TABIDX}"` ! TABCOMMENT="select tab_comment from ${SS}.sl_table where tab_id = ${tab};" ! comment=`RUNQUERY "${TABCOMMENT}"` echo "set add table (id=${tab}, set id=${set}, origin=${origin}, fully qualified name='\"${nsp}\".\"${relname}\"', comment='${comment}, key='${idx}');" done ! SEQSQ="select seq_id,seq_set,set_origin from ${SS}.sl_sequence, ${SS}.sl_set where seq_set = set_id order by seq_id;" ! SEQS=`RUNQUERY "${SEQSQ}"` for sq in `echo ${SEQS}`; do ! seqid=`arg1 ${sq}` ! setid=`arg2 ${sq}` origin=`arg3 ${sq}` ! RELQ="select seq_relname from ${SS}.sl_sequence where seq_id = ${seqid};" ! relname=`RUNQUERY "${RELQ}"` ! NSQ="select seq_nspname from ${SS}.sl_sequence where seq_id = ${seqid};" ! nsp=`RUNQUERY "${NSQ}"` ! COMQ="select seq_comment from ${SS}.sl_sequence where seq_id = ${seqid};" ! comment=`RUNQUERY "${COMQ}"` ! echo "set add sequence(id=${seqid}, set id=${setid}, origin=${origin}, fully qualified name='\"${nsp}\".\"${relname}\"', comment='${comment}');" done Q="select set_id, set_origin from ${SS}.sl_set;" ! SETS=`RUNQUERY "${Q}"` ! for setinfo in `echo ${SETS}`; do ! set=`arg1 ${setinfo}` ! origin=`arg2 ${setinfo}` SUBQ="select sub_provider, sub_receiver from ${SS}.sl_subscribe where sub_set=${set};" ! # We use tsort to determine a feasible ordering for subscriptions, filter8ng out the origin node SUBRES=`psql -qtA -F " " -c "${SUBQ}" | tsort | egrep -v "^${origin}\$"` for recv in `echo ${SUBRES}`; do ! PROVIDERSQUERY="select sub_provider, sub_forward from ${SS}.sl_subscribe where sub_set=${set} and sub_receiver=${recv};" ! SUBSCRIPTIONS=`RUNQUERY "${PROVIDERSQUERY}"` ! prov=`arg1 ${SUBSCRIPTIONS}` ! forw=`arg2 ${SUBSCRIPTIONS}` echo "subscribe set (id=${set}, provider=${prov}, receiver=${recv}, forward=${forw}, omit copy=true);" if [ $prov != $origin ]; then ! echo "wait for event (origin=${prov}, confirmed=${origin}, wait on=${prov}, timeout=0);" fi ! echo "sync (id=${origin});" ! echo "wait for event (origin=${origin}, confirmed=ALL, wait on=${origin}, timeout=0);" done done
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list