mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-02-16 10:06:17 -05:00
Compare commits
5 Commits
pr/dumians
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41afeafaae | ||
|
|
598b56f478 | ||
|
|
a678886ee3 | ||
|
|
6602abd059 | ||
|
|
62b830987d |
Binary file not shown.
|
Before Width: | Height: | Size: 241 KiB After Width: | Height: | Size: 271 KiB |
@@ -20,6 +20,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var goldenKeywords = []string{"Hilton Basel", "Hyatt Regency", "book"}
|
||||||
|
|
||||||
func TestQuickstartSample(t *testing.T) {
|
func TestQuickstartSample(t *testing.T) {
|
||||||
framework := os.Getenv("ORCH_NAME")
|
framework := os.Getenv("ORCH_NAME")
|
||||||
if framework == "" {
|
if framework == "" {
|
||||||
@@ -59,16 +61,10 @@ func TestQuickstartSample(t *testing.T) {
|
|||||||
t.Fatal("Script ran successfully but produced no output.")
|
t.Fatal("Script ran successfully but produced no output.")
|
||||||
}
|
}
|
||||||
|
|
||||||
goldenFile, err := os.ReadFile("../golden.txt")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Could not read golden.txt to check for keywords: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
keywords := strings.Split(string(goldenFile), "\n")
|
|
||||||
var missingKeywords []string
|
var missingKeywords []string
|
||||||
outputLower := strings.ToLower(actualOutput)
|
outputLower := strings.ToLower(actualOutput)
|
||||||
|
|
||||||
for _, keyword := range keywords {
|
for _, keyword := range goldenKeywords {
|
||||||
kw := strings.TrimSpace(keyword)
|
kw := strings.TrimSpace(keyword)
|
||||||
if kw != "" && !strings.Contains(outputLower, strings.ToLower(kw)) {
|
if kw != "" && !strings.Contains(outputLower, strings.ToLower(kw)) {
|
||||||
missingKeywords = append(missingKeywords, kw)
|
missingKeywords = append(missingKeywords, kw)
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
Hilton Basel
|
|
||||||
Hyatt Regency
|
|
||||||
book
|
|
||||||
@@ -25,7 +25,7 @@ const quickstartPath = path.join(orchDir, "quickstart.js");
|
|||||||
|
|
||||||
const { main: runAgent } = await import(quickstartPath);
|
const { main: runAgent } = await import(quickstartPath);
|
||||||
|
|
||||||
const GOLDEN_FILE_PATH = path.resolve(__dirname, "../golden.txt");
|
const GOLDEN_KEYWORDS = ["Hilton Basel", "Hyatt Regency", "book"];
|
||||||
|
|
||||||
describe(`${ORCH_NAME} Quickstart Agent`, () => {
|
describe(`${ORCH_NAME} Quickstart Agent`, () => {
|
||||||
let capturedOutput = [];
|
let capturedOutput = [];
|
||||||
@@ -52,11 +52,8 @@ describe(`${ORCH_NAME} Quickstart Agent`, () => {
|
|||||||
"Assertion Failed: Script ran successfully but produced no output."
|
"Assertion Failed: Script ran successfully but produced no output."
|
||||||
);
|
);
|
||||||
|
|
||||||
const goldenFile = fs.readFileSync(GOLDEN_FILE_PATH, "utf8");
|
|
||||||
const keywords = goldenFile.split("\n").filter((kw) => kw.trim() !== "");
|
|
||||||
const missingKeywords = [];
|
const missingKeywords = [];
|
||||||
|
for (const keyword of GOLDEN_KEYWORDS) {
|
||||||
for (const keyword of keywords) {
|
|
||||||
if (!actualOutput.toLowerCase().includes(keyword.toLowerCase())) {
|
if (!actualOutput.toLowerCase().includes(keyword.toLowerCase())) {
|
||||||
missingKeywords.push(keyword);
|
missingKeywords.push(keyword);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,18 +24,7 @@ module_path = f"python.{ORCH_NAME}.quickstart"
|
|||||||
quickstart = importlib.import_module(module_path)
|
quickstart = importlib.import_module(module_path)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
GOLDEN_KEYWORDS = ["Hilton Basel", "Hyatt Regency", "book"]
|
||||||
def golden_keywords():
|
|
||||||
"""Loads expected keywords from the golden.txt file."""
|
|
||||||
golden_file_path = Path("../golden.txt")
|
|
||||||
if not golden_file_path.exists():
|
|
||||||
pytest.fail(f"Golden file not found: {golden_file_path}")
|
|
||||||
try:
|
|
||||||
with open(golden_file_path, 'r') as f:
|
|
||||||
return [line.strip() for line in f.readlines() if line.strip()]
|
|
||||||
except Exception as e:
|
|
||||||
pytest.fail(f"Could not read golden.txt: {e}")
|
|
||||||
|
|
||||||
|
|
||||||
# --- Execution Tests ---
|
# --- Execution Tests ---
|
||||||
class TestExecution:
|
class TestExecution:
|
||||||
@@ -62,8 +51,8 @@ class TestExecution:
|
|||||||
"""Test that the script runs and produces no stderr."""
|
"""Test that the script runs and produces no stderr."""
|
||||||
assert script_output.err == "", f"Script produced stderr: {script_output.err}"
|
assert script_output.err == "", f"Script produced stderr: {script_output.err}"
|
||||||
|
|
||||||
def test_keywords_in_output(self, script_output, golden_keywords):
|
def test_keywords_in_output(self, script_output):
|
||||||
"""Test that expected keywords are present in the script's output."""
|
"""Test that expected keywords are present in the script's output."""
|
||||||
output = script_output.out
|
output = script_output.out
|
||||||
missing_keywords = [kw for kw in golden_keywords if kw not in output]
|
missing_keywords = [kw for kw in GOLDEN_KEYWORDS if kw.lower() not in output.lower()]
|
||||||
assert not missing_keywords, f"Missing keywords in output: {missing_keywords}"
|
assert not missing_keywords, f"Missing keywords in output: {missing_keywords}"
|
||||||
|
|||||||
@@ -207,7 +207,6 @@ You can connect to Toolbox Cloud Run instances directly through the SDK.
|
|||||||
{{< tab header="Python" lang="python" >}}
|
{{< tab header="Python" lang="python" >}}
|
||||||
import asyncio
|
import asyncio
|
||||||
from toolbox_core import ToolboxClient, auth_methods
|
from toolbox_core import ToolboxClient, auth_methods
|
||||||
from toolbox_core.protocol import Protocol
|
|
||||||
|
|
||||||
# Replace with the Cloud Run service URL generated in the previous step
|
# Replace with the Cloud Run service URL generated in the previous step
|
||||||
URL = "https://cloud-run-url.app"
|
URL = "https://cloud-run-url.app"
|
||||||
@@ -218,7 +217,6 @@ async def main():
|
|||||||
async with ToolboxClient(
|
async with ToolboxClient(
|
||||||
URL,
|
URL,
|
||||||
client_headers={"Authorization": auth_token_provider},
|
client_headers={"Authorization": auth_token_provider},
|
||||||
protocol=Protocol.TOOLBOX,
|
|
||||||
) as toolbox:
|
) as toolbox:
|
||||||
toolset = await toolbox.load_toolset()
|
toolset = await toolbox.load_toolset()
|
||||||
# ...
|
# ...
|
||||||
|
|||||||
@@ -44,6 +44,12 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* **Tools:**
|
* **Tools:**
|
||||||
* `execute_sql`: Executes a SQL query.
|
* `execute_sql`: Executes a SQL query.
|
||||||
* `list_tables`: Lists tables in the database.
|
* `list_tables`: Lists tables in the database.
|
||||||
|
* `list_active_queries`: Lists ongoing queries.
|
||||||
|
* `list_available_extensions`: Discover all PostgreSQL extensions available for installation.
|
||||||
|
* `list_installed_extensions`: List all installed PostgreSQL extensions.
|
||||||
|
* `long_running_transactions`: Identifies and lists database transactions that exceed a specified time limit.
|
||||||
|
* `list_locks`: Identifies all locks held by active processes.
|
||||||
|
* `replication_stats`: Lists each replica's process ID and sync state.
|
||||||
* `list_autovacuum_configurations`: Lists autovacuum configurations in the
|
* `list_autovacuum_configurations`: Lists autovacuum configurations in the
|
||||||
database.
|
database.
|
||||||
* `list_memory_configurations`: Lists memory-related configurations in the
|
* `list_memory_configurations`: Lists memory-related configurations in the
|
||||||
@@ -59,12 +65,16 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* `list_triggers`: Lists triggers in the database.
|
* `list_triggers`: Lists triggers in the database.
|
||||||
* `list_indexes`: List available user indexes in a PostgreSQL database.
|
* `list_indexes`: List available user indexes in a PostgreSQL database.
|
||||||
* `list_sequences`: List sequences in a PostgreSQL database.
|
* `list_sequences`: List sequences in a PostgreSQL database.
|
||||||
|
* `list_query_stats`: Lists query statistics.
|
||||||
|
* `get_column_cardinality`: Gets column cardinality.
|
||||||
|
* `list_table_stats`: Lists table statistics.
|
||||||
* `list_publication_tables`: List publication tables in a PostgreSQL database.
|
* `list_publication_tables`: List publication tables in a PostgreSQL database.
|
||||||
* `list_tablespaces`: Lists tablespaces in the database.
|
* `list_tablespaces`: Lists tablespaces in the database.
|
||||||
* `list_pg_settings`: List configuration parameters for the PostgreSQL server.
|
* `list_pg_settings`: List configuration parameters for the PostgreSQL server.
|
||||||
* `list_database_stats`: Lists the key performance and activity statistics for
|
* `list_database_stats`: Lists the key performance and activity statistics for
|
||||||
each database in the AlloyDB instance.
|
each database in the AlloyDB instance.
|
||||||
* `list_roles`: Lists all the user-created roles in PostgreSQL database.
|
* `list_roles`: Lists all the user-created roles in PostgreSQL database.
|
||||||
|
* `list_stored_procedure`: Lists stored procedures.
|
||||||
|
|
||||||
## AlloyDB Postgres Admin
|
## AlloyDB Postgres Admin
|
||||||
|
|
||||||
@@ -113,6 +123,12 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* **Tools:**
|
* **Tools:**
|
||||||
* `execute_sql`: Executes a SQL query.
|
* `execute_sql`: Executes a SQL query.
|
||||||
* `list_tables`: Lists tables in the database.
|
* `list_tables`: Lists tables in the database.
|
||||||
|
* `list_active_queries`: Lists ongoing queries.
|
||||||
|
* `list_available_extensions`: Discover all PostgreSQL extensions available for installation.
|
||||||
|
* `list_installed_extensions`: List all installed PostgreSQL extensions.
|
||||||
|
* `long_running_transactions`: Identifies and lists database transactions that exceed a specified time limit.
|
||||||
|
* `list_locks`: Identifies all locks held by active processes.
|
||||||
|
* `replication_stats`: Lists each replica's process ID and sync state.
|
||||||
* `list_autovacuum_configurations`: Lists autovacuum configurations in the
|
* `list_autovacuum_configurations`: Lists autovacuum configurations in the
|
||||||
database.
|
database.
|
||||||
* `list_columnar_configurations`: List AlloyDB Omni columnar-related configurations.
|
* `list_columnar_configurations`: List AlloyDB Omni columnar-related configurations.
|
||||||
@@ -130,12 +146,16 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* `list_triggers`: Lists triggers in the database.
|
* `list_triggers`: Lists triggers in the database.
|
||||||
* `list_indexes`: List available user indexes in a PostgreSQL database.
|
* `list_indexes`: List available user indexes in a PostgreSQL database.
|
||||||
* `list_sequences`: List sequences in a PostgreSQL database.
|
* `list_sequences`: List sequences in a PostgreSQL database.
|
||||||
|
* `list_query_stats`: Lists query statistics.
|
||||||
|
* `get_column_cardinality`: Gets column cardinality.
|
||||||
|
* `list_table_stats`: Lists table statistics.
|
||||||
* `list_publication_tables`: List publication tables in a PostgreSQL database.
|
* `list_publication_tables`: List publication tables in a PostgreSQL database.
|
||||||
* `list_tablespaces`: Lists tablespaces in the database.
|
* `list_tablespaces`: Lists tablespaces in the database.
|
||||||
* `list_pg_settings`: List configuration parameters for the PostgreSQL server.
|
* `list_pg_settings`: List configuration parameters for the PostgreSQL server.
|
||||||
* `list_database_stats`: Lists the key performance and activity statistics for
|
* `list_database_stats`: Lists the key performance and activity statistics for
|
||||||
each database in the AlloyDB instance.
|
each database in the AlloyDB instance.
|
||||||
* `list_roles`: Lists all the user-created roles in PostgreSQL database.
|
* `list_roles`: Lists all the user-created roles in PostgreSQL database.
|
||||||
|
* `list_stored_procedure`: Lists stored procedures.
|
||||||
|
|
||||||
## BigQuery
|
## BigQuery
|
||||||
|
|
||||||
@@ -173,6 +193,21 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* `list_table_ids`: Lists tables.
|
* `list_table_ids`: Lists tables.
|
||||||
* `search_catalog`: Search for entries based on the provided query.
|
* `search_catalog`: Search for entries based on the provided query.
|
||||||
|
|
||||||
|
## ClickHouse
|
||||||
|
|
||||||
|
* `--prebuilt` value: `clickhouse`
|
||||||
|
* **Environment Variables:**
|
||||||
|
* `CLICKHOUSE_HOST`: The hostname or IP address of the ClickHouse server.
|
||||||
|
* `CLICKHOUSE_PORT`: The port number of the ClickHouse server.
|
||||||
|
* `CLICKHOUSE_USER`: The database username.
|
||||||
|
* `CLICKHOUSE_PASSWORD`: The password for the database user.
|
||||||
|
* `CLICKHOUSE_DATABASE`: The name of the database to connect to.
|
||||||
|
* `CLICKHOUSE_PROTOCOL`: The protocol to use (e.g., http).
|
||||||
|
* **Tools:**
|
||||||
|
* `execute_sql`: Use this tool to execute SQL.
|
||||||
|
* `list_databases`: Use this tool to list all databases in ClickHouse.
|
||||||
|
* `list_tables`: Use this tool to list all tables in a specific ClickHouse database.
|
||||||
|
|
||||||
## Cloud SQL for MySQL
|
## Cloud SQL for MySQL
|
||||||
|
|
||||||
* `--prebuilt` value: `cloud-sql-mysql`
|
* `--prebuilt` value: `cloud-sql-mysql`
|
||||||
@@ -270,6 +305,12 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* **Tools:**
|
* **Tools:**
|
||||||
* `execute_sql`: Executes a SQL query.
|
* `execute_sql`: Executes a SQL query.
|
||||||
* `list_tables`: Lists tables in the database.
|
* `list_tables`: Lists tables in the database.
|
||||||
|
* `list_active_queries`: Lists ongoing queries.
|
||||||
|
* `list_available_extensions`: Discover all PostgreSQL extensions available for installation.
|
||||||
|
* `list_installed_extensions`: List all installed PostgreSQL extensions.
|
||||||
|
* `long_running_transactions`: Identifies and lists database transactions that exceed a specified time limit.
|
||||||
|
* `list_locks`: Identifies all locks held by active processes.
|
||||||
|
* `replication_stats`: Lists each replica's process ID and sync state.
|
||||||
* `list_autovacuum_configurations`: Lists autovacuum configurations in the
|
* `list_autovacuum_configurations`: Lists autovacuum configurations in the
|
||||||
database.
|
database.
|
||||||
* `list_memory_configurations`: Lists memory-related configurations in the
|
* `list_memory_configurations`: Lists memory-related configurations in the
|
||||||
@@ -285,12 +326,16 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* `list_triggers`: Lists triggers in the database.
|
* `list_triggers`: Lists triggers in the database.
|
||||||
* `list_indexes`: List available user indexes in a PostgreSQL database.
|
* `list_indexes`: List available user indexes in a PostgreSQL database.
|
||||||
* `list_sequences`: List sequences in a PostgreSQL database.
|
* `list_sequences`: List sequences in a PostgreSQL database.
|
||||||
|
* `list_query_stats`: Lists query statistics.
|
||||||
|
* `get_column_cardinality`: Gets column cardinality.
|
||||||
|
* `list_table_stats`: Lists table statistics.
|
||||||
* `list_publication_tables`: List publication tables in a PostgreSQL database.
|
* `list_publication_tables`: List publication tables in a PostgreSQL database.
|
||||||
* `list_tablespaces`: Lists tablespaces in the database.
|
* `list_tablespaces`: Lists tablespaces in the database.
|
||||||
* `list_pg_settings`: List configuration parameters for the PostgreSQL server.
|
* `list_pg_settings`: List configuration parameters for the PostgreSQL server.
|
||||||
* `list_database_stats`: Lists the key performance and activity statistics for
|
* `list_database_stats`: Lists the key performance and activity statistics for
|
||||||
each database in the postgreSQL instance.
|
each database in the postgreSQL instance.
|
||||||
* `list_roles`: Lists all the user-created roles in PostgreSQL database.
|
* `list_roles`: Lists all the user-created roles in PostgreSQL database.
|
||||||
|
* `list_stored_procedure`: Lists stored procedures.
|
||||||
|
|
||||||
## Cloud SQL for PostgreSQL Observability
|
## Cloud SQL for PostgreSQL Observability
|
||||||
|
|
||||||
@@ -336,6 +381,7 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* `create_user`: Creates a new user in a Cloud SQL instance.
|
* `create_user`: Creates a new user in a Cloud SQL instance.
|
||||||
* `wait_for_operation`: Waits for a Cloud SQL operation to complete.
|
* `wait_for_operation`: Waits for a Cloud SQL operation to complete.
|
||||||
* `clone_instance`: Creates a clone for an existing Cloud SQL for PostgreSQL instance.
|
* `clone_instance`: Creates a clone for an existing Cloud SQL for PostgreSQL instance.
|
||||||
|
* `postgres_upgrade_precheck`: Performs a precheck for a major version upgrade of a Cloud SQL for PostgreSQL instance.
|
||||||
* `create_backup`: Creates a backup on a Cloud SQL instance.
|
* `create_backup`: Creates a backup on a Cloud SQL instance.
|
||||||
* `restore_backup`: Restores a backup of a Cloud SQL instance.
|
* `restore_backup`: Restores a backup of a Cloud SQL instance.
|
||||||
|
|
||||||
@@ -420,6 +466,15 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* `search_aspect_types`: Finds aspect types relevant to the
|
* `search_aspect_types`: Finds aspect types relevant to the
|
||||||
query.
|
query.
|
||||||
|
|
||||||
|
## Elasticsearch
|
||||||
|
|
||||||
|
* `--prebuilt` value: `elasticsearch`
|
||||||
|
* **Environment Variables:**
|
||||||
|
* `ELASTICSEARCH_HOST`: The hostname or IP address of the Elasticsearch server.
|
||||||
|
* `ELASTICSEARCH_APIKEY`: The API key for authentication.
|
||||||
|
* **Tools:**
|
||||||
|
* `execute_esql_query`: Use this tool to execute ES|QL queries.
|
||||||
|
|
||||||
## Firestore
|
## Firestore
|
||||||
|
|
||||||
* `--prebuilt` value: `firestore`
|
* `--prebuilt` value: `firestore`
|
||||||
@@ -537,6 +592,19 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* `execute_sql`: Executes a SQL query.
|
* `execute_sql`: Executes a SQL query.
|
||||||
* `list_tables`: Lists tables in the database.
|
* `list_tables`: Lists tables in the database.
|
||||||
|
|
||||||
|
## MindsDB
|
||||||
|
|
||||||
|
* `--prebuilt` value: `mindsdb`
|
||||||
|
* **Environment Variables:**
|
||||||
|
* `MINDSDB_HOST`: The hostname or IP address of the MindsDB server.
|
||||||
|
* `MINDSDB_PORT`: The port number of the MindsDB server.
|
||||||
|
* `MINDSDB_DATABASE`: The name of the database to connect to.
|
||||||
|
* `MINDSDB_USER`: The database username.
|
||||||
|
* `MINDSDB_PASS`: The password for the database user.
|
||||||
|
* **Tools:**
|
||||||
|
* `mindsdb-execute-sql`: Execute SQL queries directly on MindsDB database.
|
||||||
|
* `mindsdb-sql`: Execute parameterized SQL queries on MindsDB database.
|
||||||
|
|
||||||
## MySQL
|
## MySQL
|
||||||
|
|
||||||
* `--prebuilt` value: `mysql`
|
* `--prebuilt` value: `mysql`
|
||||||
@@ -592,6 +660,12 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* **Tools:**
|
* **Tools:**
|
||||||
* `execute_sql`: Executes a SQL query.
|
* `execute_sql`: Executes a SQL query.
|
||||||
* `list_tables`: Lists tables in the database.
|
* `list_tables`: Lists tables in the database.
|
||||||
|
* `list_active_queries`: Lists ongoing queries.
|
||||||
|
* `list_available_extensions`: Discover all PostgreSQL extensions available for installation.
|
||||||
|
* `list_installed_extensions`: List all installed PostgreSQL extensions.
|
||||||
|
* `long_running_transactions`: Identifies and lists database transactions that exceed a specified time limit.
|
||||||
|
* `list_locks`: Identifies all locks held by active processes.
|
||||||
|
* `replication_stats`: Lists each replica's process ID and sync state.
|
||||||
* `list_autovacuum_configurations`: Lists autovacuum configurations in the
|
* `list_autovacuum_configurations`: Lists autovacuum configurations in the
|
||||||
database.
|
database.
|
||||||
* `list_memory_configurations`: Lists memory-related configurations in the
|
* `list_memory_configurations`: Lists memory-related configurations in the
|
||||||
@@ -607,12 +681,16 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
* `list_triggers`: Lists triggers in the database.
|
* `list_triggers`: Lists triggers in the database.
|
||||||
* `list_indexes`: List available user indexes in a PostgreSQL database.
|
* `list_indexes`: List available user indexes in a PostgreSQL database.
|
||||||
* `list_sequences`: List sequences in a PostgreSQL database.
|
* `list_sequences`: List sequences in a PostgreSQL database.
|
||||||
|
* `list_query_stats`: Lists query statistics.
|
||||||
|
* `get_column_cardinality`: Gets column cardinality.
|
||||||
|
* `list_table_stats`: Lists table statistics.
|
||||||
* `list_publication_tables`: List publication tables in a PostgreSQL database.
|
* `list_publication_tables`: List publication tables in a PostgreSQL database.
|
||||||
* `list_tablespaces`: Lists tablespaces in the database.
|
* `list_tablespaces`: Lists tablespaces in the database.
|
||||||
* `list_pg_settings`: List configuration parameters for the PostgreSQL server.
|
* `list_pg_settings`: List configuration parameters for the PostgreSQL server.
|
||||||
* `list_database_stats`: Lists the key performance and activity statistics for
|
* `list_database_stats`: Lists the key performance and activity statistics for
|
||||||
each database in the PostgreSQL server.
|
each database in the PostgreSQL server.
|
||||||
* `list_roles`: Lists all the user-created roles in PostgreSQL database.
|
* `list_roles`: Lists all the user-created roles in PostgreSQL database.
|
||||||
|
* `list_stored_procedure`: Lists stored procedures.
|
||||||
|
|
||||||
## Google Cloud Serverless for Apache Spark
|
## Google Cloud Serverless for Apache Spark
|
||||||
|
|
||||||
@@ -627,6 +705,38 @@ See [Usage Examples](../reference/cli.md#examples).
|
|||||||
view serverless batches.
|
view serverless batches.
|
||||||
* **Tools:**
|
* **Tools:**
|
||||||
* `list_batches`: Lists Spark batches.
|
* `list_batches`: Lists Spark batches.
|
||||||
|
* `get_batch`: Gets information about a Spark batch.
|
||||||
|
* `cancel_batch`: Cancels a Spark batch.
|
||||||
|
* `create_pyspark_batch`: Creates a PySpark batch.
|
||||||
|
* `create_spark_batch`: Creates a Spark batch.
|
||||||
|
|
||||||
|
## SingleStore
|
||||||
|
|
||||||
|
* `--prebuilt` value: `singlestore`
|
||||||
|
* **Environment Variables:**
|
||||||
|
* `SINGLESTORE_HOST`: The hostname or IP address of the SingleStore server.
|
||||||
|
* `SINGLESTORE_PORT`: The port number of the SingleStore server.
|
||||||
|
* `SINGLESTORE_DATABASE`: The name of the database to connect to.
|
||||||
|
* `SINGLESTORE_USER`: The database username.
|
||||||
|
* `SINGLESTORE_PASSWORD`: The password for the database user.
|
||||||
|
* **Tools:**
|
||||||
|
* `execute_sql`: Use this tool to execute SQL.
|
||||||
|
* `list_tables`: Lists detailed schema information for user-created tables.
|
||||||
|
|
||||||
|
## Snowflake
|
||||||
|
|
||||||
|
* `--prebuilt` value: `snowflake`
|
||||||
|
* **Environment Variables:**
|
||||||
|
* `SNOWFLAKE_ACCOUNT`: The Snowflake account.
|
||||||
|
* `SNOWFLAKE_USER`: The database username.
|
||||||
|
* `SNOWFLAKE_PASSWORD`: The password for the database user.
|
||||||
|
* `SNOWFLAKE_DATABASE`: The name of the database to connect to.
|
||||||
|
* `SNOWFLAKE_SCHEMA`: The schema name.
|
||||||
|
* `SNOWFLAKE_WAREHOUSE`: The warehouse name.
|
||||||
|
* `SNOWFLAKE_ROLE`: The role name.
|
||||||
|
* **Tools:**
|
||||||
|
* `execute_sql`: Use this tool to execute SQL.
|
||||||
|
* `list_tables`: Lists detailed schema information for user-created tables.
|
||||||
|
|
||||||
## Spanner (GoogleSQL dialect)
|
## Spanner (GoogleSQL dialect)
|
||||||
|
|
||||||
|
|||||||
@@ -36,15 +36,17 @@ var (
|
|||||||
AlloyDBDatabase = "postgres"
|
AlloyDBDatabase = "postgres"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Copied over from postgres.go
|
func buildPostgresURL(host, port, user, pass, dbname string) *url.URL {
|
||||||
func initPostgresConnectionPool(host, port, user, pass, dbname string) (*pgxpool.Pool, error) {
|
return &url.URL{
|
||||||
// urlExample := "postgres:dd//username:password@localhost:5432/database_name"
|
|
||||||
url := &url.URL{
|
|
||||||
Scheme: "postgres",
|
Scheme: "postgres",
|
||||||
User: url.UserPassword(user, pass),
|
User: url.UserPassword(user, pass),
|
||||||
Host: fmt.Sprintf("%s:%s", host, port),
|
Host: fmt.Sprintf("%s:%s", host, port),
|
||||||
Path: dbname,
|
Path: dbname,
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func initPostgresConnectionPool(host, port, user, pass, dbname string) (*pgxpool.Pool, error) {
|
||||||
|
url := buildPostgresURL(host, port, user, pass, dbname)
|
||||||
pool, err := pgxpool.New(context.Background(), url.String())
|
pool, err := pgxpool.New(context.Background(), url.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("Unable to create connection pool: %w", err)
|
return nil, fmt.Errorf("Unable to create connection pool: %w", err)
|
||||||
@@ -63,7 +65,8 @@ func setupAlloyDBContainer(ctx context.Context, t *testing.T) (string, string, f
|
|||||||
"POSTGRES_PASSWORD": AlloyDBPass,
|
"POSTGRES_PASSWORD": AlloyDBPass,
|
||||||
},
|
},
|
||||||
WaitingFor: wait.ForAll(
|
WaitingFor: wait.ForAll(
|
||||||
wait.ForLog("Post Startup: Successfully reinstalled extensions"),
|
wait.ForLog("database system was shut down at"),
|
||||||
|
wait.ForLog("database system is ready to accept connections"),
|
||||||
wait.ForExposedPort(),
|
wait.ForExposedPort(),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user