ExDaytona.WarmPool (ex_daytona v0.4.0)

Copy Markdown View Source

Warm pools: pre-created sandboxes for instant Sandbox.create/2.

A warm pool keeps a number of sandboxes pre-provisioned from a snapshot; a matching ExDaytona.Sandbox.create/2 is then fulfilled from the pool in milliseconds instead of provisioning from scratch — the latency lever for interactive products:

{:ok, snapshot} = ExDaytona.Snapshot.build(client, "my-app-base", image)

{:ok, pool} = ExDaytona.WarmPool.create(client, snapshot: "my-app-base", size: 5)

# Creates that match the pool's snapshot (and target) draw from it:
{:ok, sandbox} = ExDaytona.Sandbox.create(client, snapshot: "my-app-base")

{:ok, pool} = ExDaytona.WarmPool.resize(client, pool.id, 10)
:ok = ExDaytona.WarmPool.delete(client, pool.id)

Pool entries count toward the organization's quota (ExDaytona.Quota.overview/2) — size pools accordingly.

Summary

Functions

Create a warm pool.

Delete a warm pool (its warm entries are released). Returns :ok.

List the organization's warm pools as ExDaytona.Model.WarmPool structs.

Change a warm pool's size. Returns the updated ExDaytona.Model.WarmPool.

Functions

create(client, opts)

@spec create(
  ExDaytona.Client.t(),
  keyword()
) :: {:ok, ExDaytona.Model.WarmPool.t()} | {:error, ExDaytona.Error.t()}

Create a warm pool.

Options

  • :snapshot (required) — the snapshot to pre-provision from
  • :size (required) — how many sandboxes to keep warm
  • :target — region target (server default when omitted)

Returns {:ok, %ExDaytona.Model.WarmPool{}}currentSize reports how many entries are warm right now.

delete(client, pool_id)

@spec delete(ExDaytona.Client.t(), String.t()) :: :ok | {:error, ExDaytona.Error.t()}

Delete a warm pool (its warm entries are released). Returns :ok.

list(client)

@spec list(ExDaytona.Client.t()) ::
  {:ok, [ExDaytona.Model.WarmPool.t()]} | {:error, ExDaytona.Error.t()}

List the organization's warm pools as ExDaytona.Model.WarmPool structs.

resize(client, pool_id, size)

Change a warm pool's size. Returns the updated ExDaytona.Model.WarmPool.