← Retour
#!/bin/bash
# ===========================================
# Supprime un enregistrement DNS
# Usage: ./delete-record.sh <line_number>
# ===========================================
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/config.sh"
source "$SCRIPT_DIR/../lib/colors.sh"
source "$SCRIPT_DIR/../lib/utils.sh"
if [ -z "$1" ]; then
echo "Usage: $0 <line_number>"
echo ""
echo "Utilisez './list-records.sh' pour voir les numéros de ligne"
exit 1
fi
LINE="$1"
print_header "Suppression enregistrement DNS"
# Récupérer l'info de l'enregistrement avant suppression
log_step "Récupération des informations..."
RECORD_INFO=$(curl -s -u "$O2SWITCH_USERNAME:$O2SWITCH_PASSWORD" \
"$O2SWITCH_API_URL/json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone&domain=$O2SWITCH_DOMAIN" | \
jq -r ".cpanelresult.data[0].record[] | select(.line == $LINE) | \"\(.name) (\(.type)) -> \(.address // .cname // .txtdata)\"" 2>/dev/null)
if [ -z "$RECORD_INFO" ]; then
log_error "Enregistrement ligne $LINE non trouvé"
exit 1
fi
log_warn "Enregistrement à supprimer:"
echo " $RECORD_INFO"
echo ""
if ! confirm "Confirmer la suppression ?"; then
log_info "Annulé"
exit 0
fi
# Supprimer l'enregistrement
log_step "Suppression en cours..."
RESULT=$(curl -s -u "$O2SWITCH_USERNAME:$O2SWITCH_PASSWORD" \
"$O2SWITCH_API_URL/json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=remove_zone_record&domain=$O2SWITCH_DOMAIN&line=$LINE")
if echo "$RESULT" | grep -q '"status":1'; then
log_success "Enregistrement supprimé"
else
log_error "Échec de la suppression"
echo "$RESULT" | jq '.cpanelresult.data[0].statusmsg' 2>/dev/null
exit 1
fi