mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-16 09:35:36 -05:00
* Arc/Azdata string updates * more updates (cherry picked from commit 2c6f7ac4472e0197650be299ec899388bb495fd8) * couple more fixes * more
226 lines
12 KiB
Plaintext
226 lines
12 KiB
Plaintext
{
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"name": "python3",
|
|
"display_name": "Python 3"
|
|
},
|
|
"language_info": {
|
|
"name": "python",
|
|
"version": "3.6.6",
|
|
"mimetype": "text/x-python",
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"pygments_lexer": "ipython3",
|
|
"nbconvert_exporter": "python",
|
|
"file_extension": ".py"
|
|
}
|
|
},
|
|
"nbformat_minor": 2,
|
|
"nbformat": 4,
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"\n",
|
|
" \n",
|
|
"## Create a PostgreSQL Hyperscale - Azure Arc on an existing Azure Arc Data Controller\n",
|
|
" \n",
|
|
"This notebook walks through the process of creating a PostgreSQL Hyperscale - Azure Arc on an existing Azure Arc Data Controller.\n",
|
|
" \n",
|
|
"* Follow the instructions in the **Prerequisites** cell to install the tools if not already installed.\n",
|
|
"* Make sure you have the target Azure Arc Data Controller already created.\n",
|
|
"\n",
|
|
"<span style=\"color:red\"><font size=\"3\">Please press the \"Run All\" button to run the notebook</font></span>"
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "e4ed0892-7b5a-4d95-bd0d-a6c3eb0b2c99"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"### **Check prerequisites**"
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "68531b91-ddce-47d7-a1d8-2ddc3d17f3e7"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"import sys,os,json,subprocess\n",
|
|
"def run_command():\n",
|
|
" print(\"Executing: \" + cmd)\n",
|
|
" output = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True )\n",
|
|
" if output.returncode != 0:\n",
|
|
" print(f'Command: {cmd} failed \\n')\n",
|
|
" print(f'\\t>>>Error output: {output.stderr.decode(\"utf-8\")}\\n')\n",
|
|
" sys.exit(f'exit code: {output.returncode}\\n')\n",
|
|
" print(f'Successfully executed: {cmd}')\n",
|
|
" print(f'\\t>>>Output: {output.stdout.decode(\"utf-8\")}\\n')\n",
|
|
" return output.stdout.decode(\"utf-8\")\n",
|
|
"cmd = 'azdata --version'\n",
|
|
"out = run_command()\n",
|
|
""
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "749d8dba-3da8-46e9-ae48-2b38056ab7a2",
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"#### **Ensure required parameters exist**"
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "68ec0760-27d1-4ded-9a9f-89077c40b8bb"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Required Values\n",
|
|
"env_var = \"AZDATA_NB_VAR_CONTROLLER_ENDPOINT\" in os.environ\n",
|
|
"if env_var:\n",
|
|
" controller_endpoint = os.environ[\"AZDATA_NB_VAR_CONTROLLER_ENDPOINT\"]\n",
|
|
"else:\n",
|
|
" sys.exit(f'environment variable: AZDATA_NB_VAR_CONTROLLER_ENDPOINT was not defined. Exiting\\n')\n",
|
|
"\n",
|
|
"env_var = \"AZDATA_NB_VAR_CONTROLLER_USERNAME\" in os.environ\n",
|
|
"if env_var:\n",
|
|
" controller_username = os.environ[\"AZDATA_NB_VAR_CONTROLLER_USERNAME\"]\n",
|
|
"else:\n",
|
|
" sys.exit(f'environment variable: AZDATA_NB_VAR_CONTROLLER_USERNAME was not defined. Exiting\\n')\n",
|
|
"\n",
|
|
"env_var = \"AZDATA_NB_VAR_CONTROLLER_PASSWORD\" in os.environ\n",
|
|
"if env_var:\n",
|
|
" controller_password = os.environ[\"AZDATA_NB_VAR_CONTROLLER_PASSWORD\"]\n",
|
|
"else:\n",
|
|
" sys.exit(f'environment variable: AZDATA_NB_VAR_CONTROLLER_PASSWORD was not defined. Exiting\\n')\n",
|
|
"\n",
|
|
"env_var = \"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME\" in os.environ\n",
|
|
"if env_var:\n",
|
|
" server_group_name = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME\"]\n",
|
|
"else:\n",
|
|
" sys.exit(f'environment variable: AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME was not defined. Exiting\\n')\n",
|
|
"\n",
|
|
"env_var = \"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD\" in os.environ\n",
|
|
"if env_var:\n",
|
|
" postgres_password = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD\"]\n",
|
|
"else:\n",
|
|
" sys.exit(f'environment variable: AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD was not defined. Exiting\\n') \n",
|
|
"\n",
|
|
"env_var = \"AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_DATA\" in os.environ\n",
|
|
"if env_var:\n",
|
|
" postgres_storage_class_data = os.environ[\"AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_DATA\"]\n",
|
|
"else:\n",
|
|
" sys.exit(f'environment variable: AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_DATA was not defined. Exiting\\n') \n",
|
|
"env_var = \"AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_LOGS\" in os.environ\n",
|
|
"if env_var:\n",
|
|
" postgres_storage_class_logs = os.environ[\"AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_LOGS\"]\n",
|
|
"else:\n",
|
|
" sys.exit(f'environment variable: AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_LOGS was not defined. Exiting\\n') \n",
|
|
"env_var = \"AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_BACKUPS\" in os.environ\n",
|
|
"if env_var:\n",
|
|
" postgres_storage_class_backups = os.environ[\"AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_BACKUPS\"]\n",
|
|
"else:\n",
|
|
" sys.exit(f'environment variable: AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_BACKUPS was not defined. Exiting\\n') \n",
|
|
""
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "53769960-e1f8-4477-b4cf-3ab1ea34348b",
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"#### **Get optional parameters**"
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "68ec0760-27d1-4ded-9a9f-89077c40b8bb"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"server_group_workers = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS\"]\n",
|
|
"server_group_port = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PORT\")\n",
|
|
"server_group_engine_version = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_ENGINE_VERSION\")\n",
|
|
"server_group_extensions = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_EXTENSIONS\")\n",
|
|
"server_group_volume_size_data = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_DATA\")\n",
|
|
"server_group_volume_size_logs = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_LOGS\")\n",
|
|
"server_group_volume_size_backups = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_BACKUPS\")\n",
|
|
"server_group_cores_request = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CORES_REQUEST\")\n",
|
|
"server_group_cores_limit = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CORES_LIMIT\")\n",
|
|
"server_group_memory_request = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_REQUEST\")\n",
|
|
"server_group_memory_limit = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_LIMIT\")"
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "53769960-e1f8-4477-b4cf-3ab1ea34348b",
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"source": [
|
|
"### **Creating the PostgreSQL Hyperscale - Azure Arc instance**"
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "90b0e162-2987-463f-9ce6-12dda1267189"
|
|
}
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"# Login to the data controller.\n",
|
|
"#\n",
|
|
"os.environ[\"AZDATA_PASSWORD\"] = controller_password\n",
|
|
"cmd = f'azdata login -e {controller_endpoint} -u {controller_username}'\n",
|
|
"out=run_command()"
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "71366399-5963-4e24-b2f2-6bb5bffba4ec"
|
|
},
|
|
"outputs": [],
|
|
"execution_count": null
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"source": [
|
|
"print (f'Creating the PostgreSQL Hyperscale - Azure Arc instance')\n",
|
|
"\n",
|
|
"workers_option = f' -w {server_group_workers}' if server_group_workers else \"\"\n",
|
|
"port_option = f' --port \"{server_group_port}\"' if server_group_port else \"\"\n",
|
|
"engine_version_option = f' -ev {server_group_engine_version}' if server_group_engine_version else \"\"\n",
|
|
"extensions_option = f' --extensions \"{server_group_extensions}\"' if server_group_extensions else \"\"\n",
|
|
"volume_size_data_option = f' -vsd {server_group_volume_size_data}Gi' if server_group_volume_size_data else \"\"\n",
|
|
"volume_size_logs_option = f' -vsl {server_group_volume_size_logs}Gi' if server_group_volume_size_logs else \"\"\n",
|
|
"volume_size_backups_option = f' -vsb {server_group_volume_size_backups}Gi' if server_group_volume_size_backups else \"\"\n",
|
|
"cores_request_option = f' -cr \"{server_group_cores_request}\"' if server_group_cores_request else \"\"\n",
|
|
"cores_limit_option = f' -cl \"{server_group_cores_limit}\"' if server_group_cores_limit else \"\"\n",
|
|
"memory_request_option = f' -mr \"{server_group_memory_request}Mi\"' if server_group_memory_request else \"\"\n",
|
|
"memory_limit_option = f' -ml \"{server_group_memory_limit}Mi\"' if server_group_memory_limit else \"\"\n",
|
|
"\n",
|
|
"os.environ[\"AZDATA_PASSWORD\"] = postgres_password\n",
|
|
"cmd = f'azdata arc postgres server create -n {server_group_name} -scd {postgres_storage_class_data} -scl {postgres_storage_class_logs} -scb {postgres_storage_class_backups}{workers_option}{port_option}{engine_version_option}{extensions_option}{volume_size_data_option}{volume_size_logs_option}{volume_size_backups_option}{cores_request_option}{cores_limit_option}{memory_request_option}{memory_limit_option}'\n",
|
|
"out=run_command()"
|
|
],
|
|
"metadata": {
|
|
"azdata_cell_guid": "4fbaf071-55a1-40bc-be7e-7b9b5547b886"
|
|
},
|
|
"outputs": [],
|
|
"execution_count": null
|
|
}
|
|
]
|
|
}
|