From 438c9ec933f5980efa0a92016b821cf8bcb6bcb8 Mon Sep 17 00:00:00 2001 From: Dan Caseley Date: Tue, 5 Apr 2022 21:13:09 +0100 Subject: [PATCH] Fixes --- block_federation.sh | 2 +- block_node_from_cluster.sh | 2 +- cluster/start.sh | 10 ++++++++-- cluster_with_federation/start.sh | 10 ++++++++-- federation/start.sh | 10 ++++++++-- scripts/get_logs.sh | 8 ++++---- scripts/peek_at_database.sh | 4 ++-- 7 files changed, 32 insertions(+), 14 deletions(-) diff --git a/block_federation.sh b/block_federation.sh index 2613899..1a43069 100755 --- a/block_federation.sh +++ b/block_federation.sh @@ -1,6 +1,6 @@ #!/bin/bash -CONTAINER_TO_REMOVE=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire-docker.+xmpp2.1) +CONTAINER_TO_REMOVE=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire.+xmpp2.1) CONTAINER_NAME=pumba_node2 echo "About to be blocked from communication: $CONTAINER_TO_REMOVE" diff --git a/block_node_from_cluster.sh b/block_node_from_cluster.sh index 10c4124..e96334a 100755 --- a/block_node_from_cluster.sh +++ b/block_node_from_cluster.sh @@ -4,7 +4,7 @@ #Example usage: `./remove_node_from_cluster.sh 1` to remove node xmpp1 NODE=$1 -CONTAINER_TO_REMOVE=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire-docker.+xmpp"$NODE".1) +CONTAINER_TO_REMOVE=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire.+xmpp"$NODE".1) CONTAINER_NAME=pumba_node"$NODE" echo "About to be removed from cluster: $CONTAINER_TO_REMOVE" diff --git a/cluster/start.sh b/cluster/start.sh index ead0d66..0009d19 100755 --- a/cluster/start.sh +++ b/cluster/start.sh @@ -10,6 +10,9 @@ COMPOSE_FILE_COMMAND=("docker-compose") COMPOSE_FILE_COMMAND+=("--env-file" "../_common/.env") COMPOSE_FILE_COMMAND+=("--project-name" "$PROJECT") +# Where is this script? It could be called from anywhere, so use this to get full paths. +SCRIPTPATH="$( cd "$(dirname "$0")"; pwd -P )" + while getopts n:h o; do case "$o" in n) @@ -32,15 +35,18 @@ done echo "Starting a clustered environment." COMPOSE_FILE_COMMAND+=("-f" "docker-compose-clustered.yml") +pushd "$SCRIPTPATH" + "${COMPOSE_FILE_COMMAND[@]}" down "${COMPOSE_FILE_COMMAND[@]}" pull --ignore-pull-failures # Clean up temporary persistence data if ! rm -rf _data; then - echo "ERROR: Failed to delete _data directory. Try with sudo, then re-run." && exit 1 + echo "ERROR: Failed to delete _data directory. Try with sudo, then re-run." && popd && exit 1 fi mkdir _data cp -r xmpp _data/ cp -r plugins _data/ -"${COMPOSE_FILE_COMMAND[@]}" up -d \ No newline at end of file +"${COMPOSE_FILE_COMMAND[@]}" up -d || popd +popd \ No newline at end of file diff --git a/cluster_with_federation/start.sh b/cluster_with_federation/start.sh index ead0d66..0009d19 100755 --- a/cluster_with_federation/start.sh +++ b/cluster_with_federation/start.sh @@ -10,6 +10,9 @@ COMPOSE_FILE_COMMAND=("docker-compose") COMPOSE_FILE_COMMAND+=("--env-file" "../_common/.env") COMPOSE_FILE_COMMAND+=("--project-name" "$PROJECT") +# Where is this script? It could be called from anywhere, so use this to get full paths. +SCRIPTPATH="$( cd "$(dirname "$0")"; pwd -P )" + while getopts n:h o; do case "$o" in n) @@ -32,15 +35,18 @@ done echo "Starting a clustered environment." COMPOSE_FILE_COMMAND+=("-f" "docker-compose-clustered.yml") +pushd "$SCRIPTPATH" + "${COMPOSE_FILE_COMMAND[@]}" down "${COMPOSE_FILE_COMMAND[@]}" pull --ignore-pull-failures # Clean up temporary persistence data if ! rm -rf _data; then - echo "ERROR: Failed to delete _data directory. Try with sudo, then re-run." && exit 1 + echo "ERROR: Failed to delete _data directory. Try with sudo, then re-run." && popd && exit 1 fi mkdir _data cp -r xmpp _data/ cp -r plugins _data/ -"${COMPOSE_FILE_COMMAND[@]}" up -d \ No newline at end of file +"${COMPOSE_FILE_COMMAND[@]}" up -d || popd +popd \ No newline at end of file diff --git a/federation/start.sh b/federation/start.sh index 96ab2c8..c616a88 100755 --- a/federation/start.sh +++ b/federation/start.sh @@ -10,6 +10,9 @@ COMPOSE_FILE_COMMAND=("docker-compose") COMPOSE_FILE_COMMAND+=("--env-file" "../_common/.env") COMPOSE_FILE_COMMAND+=("--project-name" "$PROJECT") +# Where is this script? It could be called from anywhere, so use this to get full paths. +SCRIPTPATH="$( cd "$(dirname "$0")"; pwd -P )" + while getopts n:h o; do case "$o" in n) @@ -32,15 +35,18 @@ done echo "Starting a federated environment." COMPOSE_FILE_COMMAND+=("-f" "docker-compose-federated.yml") +pushd "$SCRIPTPATH" + "${COMPOSE_FILE_COMMAND[@]}" down "${COMPOSE_FILE_COMMAND[@]}" pull --ignore-pull-failures # Clean up temporary persistence data if ! rm -rf _data; then - echo "ERROR: Failed to delete _data directory. Try with sudo, then re-run." && exit 1 + echo "ERROR: Failed to delete the data directory. Try with sudo, then re-run." && popd && exit 1 fi mkdir _data cp -r xmpp _data/ cp -r plugins _data/ -"${COMPOSE_FILE_COMMAND[@]}" up -d \ No newline at end of file +"${COMPOSE_FILE_COMMAND[@]}" up -d || popd +popd \ No newline at end of file diff --git a/scripts/get_logs.sh b/scripts/get_logs.sh index faab404..2accf0d 100755 --- a/scripts/get_logs.sh +++ b/scripts/get_logs.sh @@ -1,8 +1,8 @@ #!/bin/bash -CONTAINER_ONE=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire-docker.+xmpp1.1) -CONTAINER_TWO=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire-docker.+xmpp2.1) -CONTAINER_THREE=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire-docker.+xmpp3.1) -CONTAINER_OTHER=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire-docker.+otherxmpp.1) +CONTAINER_ONE=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire.+xmpp1.1) +CONTAINER_TWO=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire.+xmpp2.1) +CONTAINER_THREE=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire.+xmpp3.1) +CONTAINER_OTHER=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire.+otherxmpp.1) [ -n "$CONTAINER_ONE" ] && docker exec -t "$CONTAINER_ONE" cat /usr/local/openfire/logs/openfire.log > 1-openfire.log [ -n "$CONTAINER_TWO" ] && docker exec -t "$CONTAINER_TWO" cat /usr/local/openfire/logs/openfire.log > 2-openfire.log diff --git a/scripts/peek_at_database.sh b/scripts/peek_at_database.sh index f98c466..812dbe5 100755 --- a/scripts/peek_at_database.sh +++ b/scripts/peek_at_database.sh @@ -1,4 +1,4 @@ #!/bin/bash # Get a dump of the Openfire database in db_1 to peek at -CONTAINER_NAME=$(docker ps --filter status=running --format "{{.Names}}" | grep -E openfire-docker.+db.1) -docker exec -t "$CONTAINER_NAME" pg_dump -U openfire openfire > peek.sql \ No newline at end of file +docker ps --filter status=running --format "{{.Names}}" | grep -E openfire.+db | \ + awk '{ system("docker exec -t "$1" pg_dump -U openfire openfire > peek_"$1".sql") }'