{ "cells": [ { "cell_type": "markdown", "id": "3d472157-33ec-445d-8fa9-cec3c039b2e3", "metadata": {}, "source": [ "# Query Environments\n", "This notebook demonstrates the use of the list and get functions on Managed KX Resources.\n" ] }, { "cell_type": "code", "execution_count": null, "id": "1e2e296f-41b8-415a-a3a8-19a670f5436d", "metadata": {}, "outputs": [], "source": [ "import os\n", "import boto3\n", "import json\n", "import datetime\n", "\n", "from managed_kx import *\n", "from env_kdb_1 import *\n" ] }, { "cell_type": "code", "execution_count": null, "id": "a9fb2e89-db6e-42a2-b43e-0c1c780ddcce", "metadata": {}, "outputs": [], "source": [ "# triggers credential get\n", "session=None\n", "\n", "try:\n", " subprocess.call([\"which\", \"ada\"])\n", " os.system(f\"ada credentials update --account={ACCOUNT_ID} --provider=isengard --role=Admin --once\")\n", "except: \n", " None\n", "\n", "if AWS_ACCESS_KEY_ID is None:\n", " print(\"Using Defaults ...\")\n", " # create AWS session: using access variables\n", " session = boto3.Session()\n", "else:\n", " print(\"Using variables ...\")\n", " session = boto3.Session(\n", " aws_access_key_id=AWS_ACCESS_KEY_ID,\n", " aws_secret_access_key=AWS_SECRET_ACCESS_KEY,\n", " aws_session_token=AWS_SESSION_TOKEN\n", " )\n", "\n", "# create finspace client\n", "client = session.client(service_name='finspace', endpoint_url=ENDPOINT_URL)" ] }, { "cell_type": "markdown", "id": "3a289f8e-fc4f-408a-a3a0-3f80f6700737", "metadata": { "tags": [] }, "source": [ "# Environment" ] }, { "cell_type": "code", "execution_count": null, "id": "b62b598c-1f7e-4724-b63f-088de8fdf772", "metadata": {}, "outputs": [], "source": [ "resp = get_kx_environment(client)\n", "resp.pop('ResponseMetadata', None)\n", "\n", "infra = resp.get('dedicatedServiceAccountId', \"\")\n", "print(f\"ID: {resp['environmentId']} ({resp['status']}): {resp['name']} ({infra})\")" ] }, { "cell_type": "markdown", "id": "1e574d0f-90db-4aa3-894d-258ebd83f714", "metadata": {}, "source": [ "# Databases and Changesets" ] }, { "cell_type": "code", "execution_count": null, "id": "a3f7eea9-ce40-47b4-b870-21861bc9b9b0", "metadata": {}, "outputs": [], "source": [ "try:\n", " dbs = list_kx_databases(client, environmentId=ENV_ID)\n", "except:\n", " dbs=[]\n", "\n", "print(f\"Environment: {ENV_ID}: Databases found: {len(dbs)}\")\n", "print()\n", "\n", "if len(dbs) > 0:\n", " # Sort databases by name\n", " dbs = sorted(dbs, key=lambda d: d['databaseName']) \n", "\n", " for d in dbs:\n", " db_name = d['databaseName']\n", " c_set_list = []\n", " note_str = \"\"\n", "\n", " db=client.get_kx_database(environmentId=ENV_ID, databaseName=db_name)\n", " db.pop('ResponseMetadata', None)\n", "\n", " try:\n", " resp = client.list_kx_changesets(environmentId=ENV_ID, databaseName=db_name)\n", " c_set_list = resp['kxChangesets']\n", " except:\n", " note_str = \"<>\"\n", " break\n", "\n", " print(\"=\"*100) \n", " print(f\"Database: {db_name}, Changesets: {len(c_set_list)} {note_str}\")\n", " print(f\"{db.get('description', '')}\")\n", " print(f\"Bytes: {db['numBytes']:,} Changesets: {db['numChangesets']:,} Files: {db['numFiles']:,}\")\n", " print(\"-\"*100) \n", "\n", " c_set_list = sorted(c_set_list, key=lambda d: d['createdTimestamp']) \n", "\n", " for c in c_set_list:\n", " c_set_id = c['changesetId']\n", " print(f\"Changeset ({c['status']}): {c_set_id}: Created: {c['createdTimestamp']}\")\n", " c_rqs = client.get_kx_changeset(environmentId=ENV_ID, databaseName=db_name, changesetId=c_set_id)['changeRequests']\n", "\n", " chs_pdf = pd.DataFrame.from_dict(c_rqs)# .style.hide(axis='index')\n", " display(chs_pdf)\n", " print(\"\")\n", " \n", " print(\"=\"*100)" ] }, { "cell_type": "markdown", "id": "fb7bfd30-1f10-4556-9327-742d138cacf0", "metadata": {}, "source": [ "# Clusters" ] }, { "cell_type": "markdown", "id": "6001b7b6-85ab-4e98-bed5-743eef270739", "metadata": {}, "source": [ "## Type: HDB" ] }, { "cell_type": "code", "execution_count": null, "id": "e1d67529-f873-4c9d-8ad1-0b5fcca4c2fd", "metadata": {}, "outputs": [], "source": [ "cdf = get_clusters(client, environmentId=ENV_ID, clusterType=\"HDB\")\n", "display(cdf)" ] }, { "cell_type": "markdown", "id": "05711ecc-2217-43a5-828a-ed0ce8d406b2", "metadata": {}, "source": [ "## Type: RDB" ] }, { "cell_type": "code", "execution_count": null, "id": "9d0102e5-3c45-46a0-9fc9-32f3a9fc2f50", "metadata": {}, "outputs": [], "source": [ "cdf = get_clusters(client, environmentId=ENV_ID, clusterType=\"RDB\")\n", "display(cdf)" ] }, { "cell_type": "markdown", "id": "6e0886a0-cede-42ec-86f4-b8c57896a559", "metadata": {}, "source": [ "## Type: GATEWAY" ] }, { "cell_type": "code", "execution_count": null, "id": "22ba6239-abf1-4c57-a1ff-b51e5f6c18d4", "metadata": {}, "outputs": [], "source": [ "cdf = get_clusters(client, environmentId=ENV_ID, clusterType=\"GATEWAY\")\n", "display(cdf)" ] }, { "cell_type": "code", "execution_count": null, "id": "fbf47c15-7a94-42b1-a5e5-8f396a296fa7", "metadata": {}, "outputs": [], "source": [ "print( f\"Last Run: {datetime.datetime.now()}\" )" ] }, { "cell_type": "code", "execution_count": null, "id": "841aca0c-f917-466e-85ea-97cad04dabe1", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "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.9.12" } }, "nbformat": 4, "nbformat_minor": 5 }