ManagedkdbInsights/torq/delete_all.ipynb (272 lines of code) (raw):

{ "cells": [ { "cell_type": "markdown", "id": "28bea13b-67bd-4a0e-8eab-3b8ffd37259e", "metadata": {}, "source": [ "# TorQ: Delete Everything\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "0d5f1d4a-ed45-44e3-bf75-9bdb75fcddbb", "metadata": {}, "outputs": [], "source": [ "import os\n", "import boto3\n", "import json\n", "import datetime\n", "\n", "import pykx as kx\n", "\n", "from managed_kx import *\n", "\n", "from env import *\n", "from config import *\n", "\n", "# Selective Deletion or All\n", "DELETE_ALL=True\n", "\n", "DELETE_CLUSTERS=True\n", "DELETE_SCALING_GROUP=False\n", "DELETE_DATAVIEW=False\n", "DELETE_VOLUME=False\n", "DELETE_DATABASE=False\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\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "3cfe7d89-9f5d-4ceb-ac8c-1f5054a6f15a", "metadata": {}, "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": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Deleting Clusters...\n", "\tDelete: rdb1\n", "\tDeleted: rdb1\n", "\tDelete: gateway1\n", "\tDeleted: gateway1\n", "\tDelete: hdb1\n", "\tDeleted: hdb1\n", "\tDelete: feed1\n", "\tDeleted: feed1\n", "\tDelete: discovery1\n", "\tDeleted: discovery1\n", "\tDelete: monitor1\n", "\tDeleted: monitor1\n", "** Deleted 6 Clusters **\n", "\n", "Deleting Dataview: finspace-database_DBVIEW...\n", "delete: finspace-database_DBVIEW\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:00:00, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:00:30, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:01:00, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:01:30, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:02:00, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:02:30, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:03:00, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:03:30, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW status is DELETING, total wait 0:04:00, waiting 30 sec ...\n", "Dataview: finspace-database_DBVIEW not found\n", "** Deleted View **\n", "\n", "Deleting Volume: SHARED_torq...\n", "Delete: SHARED_torq\n", "Volume: SHARED_torq not found\n", "** Deleted Volume **\n", "\n", "Deleting Scaling Group: SCALING_GROUP_torq...\n", "Delete: SCALING_GROUP_torq\n", "Scaling Group: SCALING_GROUP_torq not found\n", "** Deleted Scaling Group **\n", "\n", "Deleting Database: finspace-database...\n", "delete: finspace-database\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", " cdf = get_clusters(client, environmentId=ENV_ID)\n", "\n", " cluster_names = set([d['name'] for d in clusters if 'name' in d])\n", "\n", " # Clusters\n", " for c in cluster_names:\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(cluster_names)} Clusters **\")\n", "\n", "# Dataview\n", "#-------------------------------------------------------------------------------------------\n", "if DELETE_DATAVIEW:\n", " print()\n", " print(f\"Deleting Dataview: {DBVIEW_NAME}...\")\n", " this_view = get_kx_dataview(client=client, environmentId=ENV_ID, databaseName=DB_NAME, dataviewName=DBVIEW_NAME)\n", "\n", " if this_view is None:\n", " print(f\"Not Found: {DBVIEW_NAME}\")\n", " elif this_view['status'] not in delete_status:\n", " print(f\"Cannot Delete: {DBVIEW_NAME} Status: {this_view['status']}\")\n", " else:\n", " print(f\"delete: {DBVIEW_NAME}\")\n", " client.delete_kx_dataview(environmentId=ENV_ID, databaseName=DB_NAME, dataviewName=DBVIEW_NAME)\n", " wait_for_dataview_status(client=client, environmentId=ENV_ID, databaseName=DB_NAME, dataviewName=DBVIEW_NAME, status='DELETED', show_wait=True)\n", " print(\"** Deleted View **\")\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": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Last Run: 2024-12-03 22:28:01.988693\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 }