2024-01-12 12:13:52 +00:00
|
|
|
|
aqua WorkersLib declares *
|
|
|
|
|
|
2023-03-22 13:21:44 +00:00
|
|
|
|
import PeerId from "./builtin.aqua"
|
|
|
|
|
|
2024-02-19 17:12:24 +00:00
|
|
|
|
alias CUID : []u8
|
|
|
|
|
|
2023-03-22 13:21:44 +00:00
|
|
|
|
-- Available only on rust peers
|
2023-11-14 12:06:42 +00:00
|
|
|
|
service Worker("worker"):
|
2024-02-19 15:35:02 +00:00
|
|
|
|
-- Creates new worker associated with `deal_id` and allows specifying custom `cu_ids`.
|
|
|
|
|
-- Arguments:
|
|
|
|
|
-- deal_id - ID of the deal
|
|
|
|
|
-- cu_ids – an array of target compute unit IDs
|
|
|
|
|
-- Returns: PeerId - worker ID if creation was successful
|
|
|
|
|
-- Throws an error if a worker exists.
|
2024-02-19 17:12:24 +00:00
|
|
|
|
create(deal_id: string, cu_ids: []CUID) -> PeerId
|
2023-06-28 12:51:36 +00:00
|
|
|
|
|
2023-08-31 08:57:17 +00:00
|
|
|
|
-- Returns worker peer id associated with `deal_id`.
|
|
|
|
|
-- Returns nil if worker doesn't exist.
|
2023-11-14 12:06:42 +00:00
|
|
|
|
get_worker_id(deal_id: string) -> ?PeerId
|
2023-08-31 08:57:17 +00:00
|
|
|
|
|
2023-03-22 13:21:44 +00:00
|
|
|
|
-- Removes worker with all deployed spells and services.
|
|
|
|
|
-- Throws an error if worker doesn't exist.
|
|
|
|
|
-- Worker can be removed only by worker creator or worker itself.
|
|
|
|
|
remove(worker_id: PeerId)
|
|
|
|
|
|
2023-11-14 12:06:42 +00:00
|
|
|
|
-- Returns list of all workers.
|
|
|
|
|
list() -> []PeerId
|
2023-11-27 18:34:22 +00:00
|
|
|
|
|
|
|
|
|
-- Restarts worker installation spell.
|
|
|
|
|
-- Can be called only by system spells or peer manager,
|
|
|
|
|
-- Throws an error if worker doesn't exist.
|
|
|
|
|
activate(deal_id: string)
|
|
|
|
|
|
|
|
|
|
-- Stops all worker spells and drops all incoming particles until activation.
|
|
|
|
|
-- Can be called only by system spells or peer manager,
|
|
|
|
|
-- Throws an error if worker doesn't exist.
|
|
|
|
|
deactivate(deal_id: string)
|
|
|
|
|
|
|
|
|
|
-- Returns true if worker is active.
|
|
|
|
|
-- Throws an error if worker doesn't exist.
|
|
|
|
|
is_active(deal_id: string) -> bool
|