PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB`#!/bin/sh -eu # This is a simple example of wsrep notification script (wsrep_notify_cmd). # It will create 'wsrep' schema and two tables in it: 'membeship' and 'status' # and fill them on every membership or node status change. # # Edit parameters below to specify the address and login to server: # USER='root' PSWD='rootpass' # # If these parameters are not set, then the values # passed by the server are taken: # HOST="127.0.0.1" PORT=3306 # # Edit parameters below to specify SSL parameters: # ssl_cert="" ssl_key="" ssl_ca="" ssl_capath="" ssl_cipher="" ssl_crl="" ssl_crlpath="" ssl_verify_server_cert=0 # # Client executable path: # CLIENT="mysql" # # Name of schema and tables: # SCHEMA="wsrep" MEMB_TABLE="$SCHEMA.membership" STATUS_TABLE="$SCHEMA.status" WSREP_ON='SET wsrep_on=ON' WSREP_OFF='SET wsrep_on=OFF' BEGIN="CREATE SCHEMA IF NOT EXISTS $SCHEMA; CREATE TABLE IF NOT EXISTS $MEMB_TABLE ( idx INT UNIQUE PRIMARY KEY, uuid CHAR(40) UNIQUE, /* node UUID */ name VARCHAR(32), /* node name */ addr VARCHAR(256) /* node address */ ) ENGINE=MEMORY; CREATE TABLE IF NOT EXISTS $STATUS_TABLE ( size INT, /* component size */ idx INT, /* this node index */ status CHAR(16), /* this node status */ uuid CHAR(40), /* cluster UUID */ prim BOOLEAN /* if component is primary */ ) ENGINE=MEMORY; BEGIN" END="COMMIT; $WSREP_ON" configuration_change() { echo "$WSREP_OFF; DROP SCHEMA IF EXISTS $SCHEMA; $BEGIN;" local idx=0 for NODE in $(echo "$MEMBERS" | sed s/,/\ /g) do echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, " # Don't forget to properly quote string values echo "'$NODE'" | sed s/\\//\',\'/g echo ");" idx=$(( $idx+1 )) done echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);" echo "$END;" } status_update() { echo "$WSREP_OFF; $BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; $END;" } trim_string() { if [ -n "${BASH_VERSION:-}" ]; then local pattern="[![:space:]${2:-}]" local x="${1#*$pattern}" local z=${#1} x=${#x} if [ $x -ne $z ]; then local y="${1%$pattern*}" y=${#y} x=$(( z-x-1 )) y=$(( y-x+1 )) printf '%s' "${1:$x:$y}" else printf '' fi else local pattern="[[:space:]${2:-}]" echo "$1" | sed -E "s/^$pattern+|$pattern+\$//g" fi } COM='status_update' # not a configuration change by default STATUS="" CLUSTER_UUID="" PRIMARY=0 INDEX="" MEMBERS="" while [ $# -gt 0 ]; do case $1 in '--status') STATUS=$(trim_string "$2") shift ;; '--uuid') CLUSTER_UUID=$(trim_string "$2") shift ;; '--primary') arg=$(trim_string "$2") [ "$arg" = 'yes' ] && PRIMARY=1 || PRIMARY=0 COM='configuration_change' shift ;; '--index') INDEX=$(trim_string "$2") shift ;; '--members') MEMBERS=$(trim_string "$2") shift ;; esac shift done USER=$(trim_string "$USER") PSWD=$(trim_string "$PSWD") HOST=$(trim_string "$HOST") PORT=$(trim_string "$PORT") case "$HOST" in \[*) HOST="${HOST##\[}" HOST=$(trim_string "${HOST%%\]}") ;; esac if [ -z "$HOST" ]; then HOST="${NOTIFY_HOST:-}" fi if [ -z "$PORT" ]; then PORT="${NOTIFY_PORT:-}" fi ssl_key=$(trim_string "$ssl_key"); ssl_cert=$(trim_string "$ssl_cert"); ssl_ca=$(trim_string "$ssl_ca"); ssl_capath=$(trim_string "$ssl_capath"); ssl_cipher=$(trim_string "$ssl_cipher"); ssl_crl=$(trim_string "$ssl_crl"); ssl_crlpath=$(trim_string "$ssl_crlpath"); ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert"); SSL_PARAM="" if [ -n "$ssl_key$ssl_cert$ssl_ca$ssl_capath$ssl_cipher$ssl_crl$ssl_crlpath" ] then SSL_PARAM=' --ssl' [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'" [ -n "$ssl_cert" ] && SSL_PARAM="$SSL_PARAM --ssl-cert='$ssl_cert'" [ -n "$ssl_ca" ] && SSL_PARAM="$SSL_PARAM --ssl-ca='$ssl_ca'" [ -n "$ssl_capath" ] && SSL_PARAM="$SSL_PARAM --ssl-capath='$ssl_capath'" [ -n "$ssl_cipher" ] && SSL_PARAM="$SSL_PARAM --ssl-cipher='$ssl_cipher'" [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'" [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'" if [ -n "$ssl_verify_server_cert" ]; then if [ "$ssl_verify_server_cert" != "0" -o \ "$ssl_verify_server_cert" = "on" ] then SSL_PARAM="$SSL_PARAM --ssl-verify-server-cert" fi fi fi case "$STATUS" in 'joined' | 'donor' | 'synced') "$COM" | eval "$CLIENT" -B "-u'$USER'"${PSWD:+" -p'$PSWD'"}\ "-h'$HOST'" "-P$PORT"$SSL_PARAM ;; *) # The node might be shutting down or not initialized ;; esac exit 0