Skip to content

Instantly share code, notes, and snippets.

@joelrebel
Last active March 14, 2024 14:03
Show Gist options
  • Select an option

  • Save joelrebel/6494d0fc0ea6dbea802fbd310d2ee50c to your computer and use it in GitHub Desktop.

Select an option

Save joelrebel/6494d0fc0ea6dbea802fbd310d2ee50c to your computer and use it in GitHub Desktop.
#!/bin/sh
SERVERID="$1"
source ./scripts/nats-bootstrap/functions.sh
restore_accounts
function kv() {
kubectl exec -ti deployments/nats-box -- /bin/sh -c \
"NKEYS_PATH=/root/nsc/nkeys NSC_HOME=/root/nsc/accounts \
nats -s nats://nats:4222 --creds=/root/nsc/nkeys/creds/KO/controllers/flipflop.creds kv $1"
}
function stream() {
kubectl exec -ti deployments/nats-box -- /bin/sh -c \
"NKEYS_PATH=/root/nsc/nkeys NSC_HOME=/root/nsc/accounts \
nats -s nats://nats:4222 --creds=/root/nsc/nkeys/creds/KO/controllers/flipflop.creds stream $1"
}
function consumer() {
kubectl exec -ti deployments/nats-box -- /bin/sh -c \
"NKEYS_PATH=/root/nsc/nkeys NSC_HOME=/root/nsc/accounts \
nats -s nats://nats:4222 --creds=/root/nsc/nkeys/creds/KO/controllers/flipflop.creds consumer $1"
}
# purge active-condition keys related to serverControl
if [[ ! -z $SERVERID ]]; then
kv "rm -f active-conditions ${SERVERID}"
fi
# purge kv keys related to serverControl action
keys=$(kv "ls serverControl")
if [[ ! "$keys" =~ "No keys" ]]; then
for c in; do
kv "rm -f serverControl $c"
done
fi
# purge any stream events related to serverControl
subject="com.hollow.sh.controllers.commands.sandbox.servers.serverControl"
count=$(stream "subjects controllers $subject | sed -e 's/$subject://g' | tr -d '[:space:]'")
if [[ ! "$count" =~ "Nosubjectsfound" ]]; then
for c in $(seq 0 ${count}); do
consumer "sub controllers sandbox-flipflop"
done
fi
# restart flipflop pod incase its processing old events
kubectl delete pod -l k8s-service=flipflop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment