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
}