tarantoolscript
Version:
TypeScript definitions for Tarantool Lua API.
225 lines (190 loc) • 8.11 kB
TypeScript
import { ConfigBasic } from '../../builtin';
import { HTTPResponse } from './HTTPResponse';
import { ServerObjectOptions } from './ServerObjectOptions';
import { Server } from './ServerType';
export * from './ServerType';
/**
* Build a listen URI based on the given server alias and extra path. The resulting URI: `<Server.vardir>/[<extra_path>/]<server_alias>.sock`.
* Provide a unique alias or extra path to avoid collisions with other sockets. For now, only UNIX sockets are supported.
* @param server_alias Server alias.
* @param extra_path Extra path relative to the `Server.vardir` directory.
*/
export function build_listen_uri(this: void, server_alias: string, extra_path?: string): string;
/**
* Assert that the server follows the source node with the given ID.
* Meaning that it replicates from the remote node normally, and has already joined and subscribed.
* @param server_id Server ID.
*/
export function assert_follows_upstream(server_id: number): void;
/**
* Call remote function on the server by name.
*
* This is a shortcut for `server.net_box:call()`.
*/
export function call(fn_name: string, args?: unknown[], options?: AnyTable): void;
/**
* Establish `net.box` connection. It’s available in `net_box` field.
*/
export function connect_net_box(): void;
/**
* Copy contents of the data directory into the server’s working directory. Invoked on the server’s start.
*/
export function copy_datadir(): void;
/**
* Stop the server and save its artifacts if the test fails.
* This function should be used only at the end of the test (`after_test`, `after_each`, `after_all` hooks) to terminate the server process.
* Besides process termination, it saves the contents of the server working directory to the `<vardir>/artifacts` directory
* for further analysis if the test fails.
*/
export function drop(): void;
/**
* Evaluate Lua code on the server.
*
* This is a shortcut for `server.net_box:eval()`.
*/
export function eval(code: string, args?: unknown[], options?: AnyTable): unknown;
/**
* Run given function on the server.
*
* Much like `Server:eval`, but takes a function instead of a string. The executed function must have no up values (closures).
* Though it may use global functions and modules (like `box` , `os` , etc.)
*/
export function exec<TResult = unknown>(fn: (this: void, ...args: any[]) => TResult, args?: unknown[], options?: AnyTable): TResult;
/**
* A simple wrapper around the `Server:exec()` method to get the `box.cfg` value from the server.
*/
export function get_box_cfg(): ConfigBasic;
/**
* Get vclock acknowledged by another node to the current server.
* @param server_id Server ID.
*/
export function get_downstream_vclock(server_id: number): LuaTable<string, unknown>;
/**
* Get the election term as seen by the server.
*/
export function get_election_term(): number;
/**
* Get ID of the server instance.
*/
export function get_instance_id(): number;
/**
* Get UUID of the server instance.
*/
export function get_instance_uuid(): string;
/**
* Get the synchro term as seen by the server.
*/
export function get_synchro_queue_term(): number;
/**
* Get the server’s own vclock, including the local component.
*/
export function get_vclock(): LuaTable<string, unknown>;
/**
* Search a string pattern in the server’s log file. If the server has crashed, `opts.filename` is required.
* @param pattern String pattern to search in the server’s log file.
* @param bytes_num Number of bytes to read from the server’s log file.
* @param opts
* - reset: Reset the result when `Tarantool %d+.%d+.%d+-.*%d+-g.*` pattern is found, which means that the server was restarted. Defaults to `true`.
* - filename: Path to the server’s log file. Defaults to `box.cfg.log`.
*/
export function grep_log(pattern: string, bytes_num?: number, opts?: { reset?: boolean, filename?: string }): string | undefined;
/**
* Perform HTTP request.
* @param method
* @param path
* @param options Lua table with following keys:
* - body (optional): request body.
* - json (optional): data to encode as JSON into request body.
* - http (optional): other options for HTTP-client.
* - raise (optional): raise error when status is not in 200..299. Default to `true`.
* @returns Response object from HTTP client with helper methods.
*/
export function http_request(method: string, path: string, options?: {
body?: string,
json?: AnyTable | unknown[],
http?: AnyTable,
raise?: boolean,
}): HTTPResponse;
/**
* Make directory for the server’s Unix socket. Invoked on the server’s start.
*/
export function make_socketdir(): void;
/**
* Make the server’s working directory. Invoked on the server’s start.
*/
export function make_workdir(): void;
/**
* Build a server object.
* @customName new
*/
export function new_(object?: ServerObjectOptions, extra?: AnyTable): typeof Server;
/**
* Play WAL until the synchro queue becomes busy. WAL records go one by one.
* The function is needed, because during `box.ctl.promote()` it is not known for sure which WAL record is PROMOTE - first, second, third?
* Even if known, it might change in the future. WAL delay should already be started before the function is called.
*/
export function play_wal_until_synchro_queue_is_busy(): void;
/**
* Restart the server with the given parameters. Optionally waits until the server is ready.
* @param params Parameters to restart the server with.
* @param opts Table:
* - wait_until_ready: Wait until the server is ready. Defaults to `true` unless a custom executable path was provided while building the server object.
*/
export function restart(params?: ServerObjectOptions, opts?: { wait_until_ready?: boolean }): void;
/**
* Start a server. Optionally waits until the server is ready.
* @param opts Table:
* - wait_until_ready: Wait until the server is ready. Defaults to `true` unless a custom executable was provided while building the server object.
*/
export function start(opts?: { wait_until_ready?: boolean }): void;
/**
* Stop the server. Waits until the server process is terminated.
*/
export function stop(): void;
/**
* A simple wrapper around the `Server:exec()` method to update the `box.cfg` value on the server.
* @param cfg Box configuration settings.
*/
export function update_box_cfg(cfg: ConfigBasic): void;
/**
* Wait for the given server to reach at least the same vclock as the local server. Not including the local component, of course.
* @param server Server’s object.
*/
export function wait_for_downstream_to(server: Server): void;
/**
* Wait for the server to become a writable election leader.
*/
export function wait_for_election_leader(): void;
/**
* Wait for the server to enter the given election state. Note that if it becomes a leader, it does not mean it is already writable.
* @param state Election state to wait for.
*/
export function wait_for_election_state(state: string): void;
/**
* Wait for the server to reach at least the given election term.
* @param term Election term to wait for.
*/
export function wait_for_election_term(term: string): void;
/**
* Wait for the server to reach at least the given synchro term.
* @param term Synchro queue term to wait for.
*/
export function wait_for_synchro_queue_term(term: number): void;
/**
* Wait until the server’s own vclock reaches at least the given value. Including the local component.
* @param vclock Server’s own vclock to reach.
*/
export function wait_for_vclock(vclock: LuaTable<string, unknown>): void;
/**
* Wait for the server to reach at least the same vclock as the other server. Not including the local component, of course.
* @param other_server Other server’s object.
*/
export function wait_for_vclock_of(other_server: Server): void;
/**
* Wait for the server to discover an election leader.
*/
export function wait_until_election_leader_found(): void;
/**
* Wait until the server is ready after the start. A server is considered ready when its` _G.ready` variable becomes `true`.
*/
export function wait_until_ready(): void;