ManagedkdbInsights/dbmaint/delete_all.ipynb (292 lines of code) (raw):

{ "cells": [ { "cell_type": "markdown", "id": "28bea13b-67bd-4a0e-8eab-3b8ffd37259e", "metadata": {}, "source": [ "# DBMaint: Delete Everything\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "0d5f1d4a-ed45-44e3-bf75-9bdb75fcddbb", "metadata": { "tags": [] }, "outputs": [], "source": [ "import os\n", "import subprocess\n", "import boto3\n", "import json\n", "import datetime\n", "\n", "import pykx as kx\n", "\n", "from env import *\n", "from config import *\n", "from managed_kx import *\n", "\n", "# ----------------------------------------------------------------\n", "\n", "# Selective Deletion or All\n", "DELETE_ALL=True\n", "#DELETE_ALL=False\n", "\n", "DELETE_CLUSTERS=True\n", "DELETE_SCALING_GROUP=False\n", "DELETE_DATAVIEW=False\n", "DELETE_VOLUME=False\n", "DELETE_DATABASE=True\n", "\n", "if DELETE_DATABASE:\n", " DELETE_DATAVIEW=True\n", "\n", "if DELETE_VOLUME:\n", " DELETE_DATAVIEW=True\n", "\n", "if DELETE_ALL:\n", " DELETE_CLUSTERS=True\n", " DELETE_SCALING_GROUP=True\n", " DELETE_DATAVIEW=True\n", " DELETE_VOLUME=True\n", " DELETE_DATABASE=True" ] }, { "cell_type": "code", "execution_count": 2, "id": "3cfe7d89-9f5d-4ceb-ac8c-1f5054a6f15a", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Using credentials and create service client\n", "session = boto3.Session()\n", "\n", "# create finspace client\n", "client = session.client(service_name='finspace')" ] }, { "cell_type": "markdown", "id": "eeaeb9f8-d4ce-4a8a-b367-4a86a9dae6a6", "metadata": {}, "source": [ "## Delete all resources" ] }, { "cell_type": "code", "execution_count": 3, "id": "dd0b0fc2-83ca-402a-bb33-09834a9cbe76", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Deleting Clusters...\n", "\tDelete: dbmaint_cluster_maint\n", "\tDeleted: dbmaint_cluster_maint\n", "\tDelete: dbmaint_cluster_query\n", "\tDeleted: dbmaint_cluster_query\n", "** Deleted 2 Clusters **\n", "\n", "Deleting Views...\n", "Deleting Dataview: dbmaintdb_DBVIEW_MAINT...\n", "delete: dbmaintdb_DBVIEW_MAINT\n", "** Deleted View **\n", "Deleting Dataview: dbmaintdb_DBVIEW_QUERY...\n", "delete: dbmaintdb_DBVIEW_QUERY\n", "** Deleted View **\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:00:00, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:00:30, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:01:00, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:01:30, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:02:00, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:02:30, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:03:00, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:03:30, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT status is DELETING, total wait 0:04:00, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_MAINT not found\n", "Dataview: dbmaintdb_DBVIEW_QUERY status is DELETING, total wait 0:00:00, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_QUERY status is DELETING, total wait 0:00:30, waiting 30 sec ...\n", "Dataview: dbmaintdb_DBVIEW_QUERY not found\n", "** Deleted 2 Views **\n", "\n", "Deleting Volume: DBMAINT_VOLUME...\n", "Delete: DBMAINT_VOLUME\n", "Volume: DBMAINT_VOLUME not found\n", "** Deleted Volume **\n", "\n", "Deleting Scaling Group: SCALING_GROUP_dbmaint...\n", "Delete: SCALING_GROUP_dbmaint\n", "Scaling Group: SCALING_GROUP_dbmaint not found\n", "** Deleted Scaling Group **\n", "\n", "Deleting Database: dbmaintdb...\n", "delete: dbmaintdb\n", "** Deleted Database **\n", "\n", "Done Deleting\n" ] } ], "source": [ "# Clusters\n", "#-------------------------------------------------------------------------------------------\n", "if DELETE_CLUSTERS:\n", " print(\"Deleting Clusters...\")\n", "\n", " delete_status = ['RUNNING', 'CREATING', 'ACTIVE']\n", "\n", " # Clusters\n", " for c in all_clusters:\n", " this_c = get_kx_cluster(client=client, clusterName=c)\n", " if this_c is None:\n", " print(f\"Not Found: {c}\")\n", " continue\n", " elif this_c['status'] not in delete_status:\n", " print(f\"Cannot Delete: {c} Status: {this_c['status']}\")\n", " continue\n", "\n", " print(f\"\\tDelete: {c}\")\n", " client.delete_kx_cluster(environmentId=ENV_ID, clusterName=c)\n", " print(f\"\\tDeleted: {c}\")\n", "\n", " print(f\"** Deleted {len(all_clusters)} Clusters **\")\n", "\n", "# Dataview\n", "#-------------------------------------------------------------------------------------------\n", "if DELETE_DATAVIEW:\n", " print()\n", " print(\"Deleting Views...\")\n", "\n", " for v in all_views:\n", " print(f\"Deleting Dataview: {v}...\")\n", " this_view = get_kx_dataview(client=client, environmentId=ENV_ID, databaseName=DB_NAME, dataviewName=v)\n", "\n", " if this_view is None:\n", " print(f\"Not Found: {v}\")\n", " elif this_view['status'] not in delete_status:\n", " print(f\"Cannot Delete: {v} Status: {this_view['status']}\")\n", " else:\n", " print(f\"delete: {v}\")\n", " client.delete_kx_dataview(environmentId=ENV_ID, databaseName=DB_NAME, dataviewName=v)\n", " print(\"** Deleted View **\")\n", "\n", " for v in all_views:\n", " wait_for_dataview_status(client=client, environmentId=ENV_ID, databaseName=DB_NAME, dataviewName=v, status='DELETED', show_wait=True)\n", "\n", " print(f\"** Deleted {len(all_views)} Views **\")\n", "\n", "# Volume\n", "#-------------------------------------------------------------------------------------------\n", "if DELETE_VOLUME:\n", " print()\n", " print(f\"Deleting Volume: {VOLUME_NAME}...\")\n", " this_volume = get_kx_volume(client=client, environmentId=ENV_ID, volumeName=VOLUME_NAME)\n", "\n", " if this_volume is None:\n", " print(f\"Not Found: {VOLUME_NAME}\")\n", " elif this_volume['status'] not in delete_status:\n", " print(f\"Cannot Delete: {VOLUME_NAME} Status: {this_volume['status']}\")\n", " else:\n", " print(f\"Delete: {VOLUME_NAME}\")\n", " client.delete_kx_volume(environmentId=ENV_ID, volumeName=VOLUME_NAME)\n", " wait_for_volume_status(client=client, environmentId=ENV_ID, volumeName=VOLUME_NAME, status='DELETED', show_wait=True)\n", " print(\"** Deleted Volume **\")\n", "\n", "# Scaling Group\n", "#-------------------------------------------------------------------------------------------\n", "if DELETE_SCALING_GROUP:\n", " print()\n", " print(f\"Deleting Scaling Group: {SCALING_GROUP_NAME}...\")\n", " this_sg = get_kx_scaling_group(client=client, environmentId=ENV_ID, scalingGroupName=SCALING_GROUP_NAME)\n", "\n", " if this_sg is None:\n", " print(f\"Not Found: {SCALING_GROUP_NAME}\")\n", " elif this_sg['status'] not in delete_status:\n", " print(f\"Cannot Delete: {SCALING_GROUP_NAME} Status: {this_sg['status']}\")\n", " else:\n", " print(f\"Delete: {SCALING_GROUP_NAME}\")\n", " client.delete_kx_scaling_group(environmentId=ENV_ID, scalingGroupName=SCALING_GROUP_NAME)\n", " wait_for_scaling_group_status(client=client, environmentId=ENV_ID, scalingGroupName = SCALING_GROUP_NAME, status='DELETED', show_wait=True)\n", " print(\"** Deleted Scaling Group **\")\n", "\n", "# Database\n", "#-------------------------------------------------------------------------------------------\n", "if DELETE_DATABASE:\n", " print()\n", " print(f\"Deleting Database: {DB_NAME}...\")\n", " this_db = get_kx_database(client=client, environmentId=ENV_ID, databaseName=DB_NAME)\n", "\n", " if this_db is None:\n", " print(f\"Not Found: {DB_NAME}\")\n", " else:\n", " print(f\"delete: {DB_NAME}\")\n", " client.delete_kx_database(environmentId=ENV_ID, databaseName=DB_NAME) \n", " print(\"** Deleted Database **\")\n", "\n", "print(\"\\nDone Deleting\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "86f33240-bb12-49f3-8d9c-5783c25eb182", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Last Run: 2024-11-26 19:55:32.070798\n" ] } ], "source": [ "print( f\"Last Run: {datetime.datetime.now()}\" )" ] }, { "cell_type": "code", "execution_count": null, "id": "e4f0d8e3-7a79-4f5d-b68b-c7e5b44c6685", "metadata": { "tags": [] }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "conda_python3", "language": "python", "name": "conda_python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.15" } }, "nbformat": 4, "nbformat_minor": 5 }