#!/bin/bash

source "${SCRIPT_DIR}/logging"

container_ns=$1
kasm_id=$2

if [ -z "$container_ns" ]; then
  error "Missing parameters. Got $@. Exiting."
  exit 1
fi

container_ns_id=$(echo $container_ns | grep -o -E "[a-z0-9]+$")

info "Cleaning up network namespace"

# stop wireguard
if [ -f /var/run/kasm-sidecar/$container_ns_id/wg.conf ]; then
  info "Stopping WireGuard"
  nsenter --net=$container_ns wg-quick down /var/run/kasm-sidecar/$container_ns_id/wg.conf &> /dev/null
fi

# kill all processes
pids=$(cat /var/run/kasm-sidecar/$container_ns_id/pids)

for pid in $pids; do
  if kill -0 "$pid" > /dev/null 2>&1; then
    info "Killing \"$pid\" process"
    kill -9 "$pid"
  fi
done

# remove all network interfaces
ifaces=$(cat /var/run/kasm-sidecar/$container_ns_id/ifaces)

for iface in $ifaces; do
  info "Removing \"$iface\" network interface"
  ip link del $iface > /dev/null 2>&1
done

# cleanup
rm -rf /var/run/kasm-sidecar/$container_ns_id
rm -rf /var/log/kasm-sidecar/$container_ns_id

info "Network namespace cleanup complete"