@opentap/runner-client
Version:
This is the web client for the OpenTAP Runner.
106 lines (105 loc) • 4.42 kB
TypeScript
import { ConnectionOptions, Consumer, NatsError, Subscription, SubscriptionOptions } from 'nats.ws';
import { RunnerUpdateRequest } from './requestDTOs';
import { ISession, ISessionMetricInfo, Image, MetadataUpdatedEvent, RepositoryPackageReference, RunnerStatus, SaveDefaultSettings, Session } from './DTOs';
import { BaseClient } from './BaseClient';
export declare class RunnerClient extends BaseClient {
private runnerId;
default: {
startSession: (testPlanRepositoryReference?: RepositoryPackageReference, timeout?: number) => Promise<Session>;
startSessionWithOverriddenImage: (testPlanReference?: RepositoryPackageReference, imageOverride?: Image, timeout?: number) => Promise<Session>;
getImage: () => Promise<Image>;
setImage: (image: Image) => Promise<Image>;
getSettings: () => Promise<RepositoryPackageReference | undefined>;
setSettings: (repositoryPackageReference: RepositoryPackageReference) => Promise<void>;
saveDefaultSettings: (defaultSettings: SaveDefaultSettings) => Promise<void>;
};
constructor(baseSubject: string, options: ConnectionOptions);
/**
* Get the logs zip file from the server.
* @returns {{Promise<Uint8Array>}}
* @description The logs zip file contains the logs from the server.
*/
getLogsZip(): Promise<Uint8Array>;
/**
* Get the created image with the specified ID.
* @param imageId
* @returns {{Promise<Image>}}
*/
getImage(imageId: string): Promise<Image>;
/**
* Get all created images
* @returns {{Promise<Image[]>}}
*/
getImages(): Promise<Image[]>;
/**
* Get all sessions
* @returns {{Promise<Session[]>}}
*/
getSessions(): Promise<Session[]>;
setSession(session: ISession): Promise<Session>;
/**
* Create a OpenTAP package configuration image from a list image inputs consisting of user specified packages and repositories.
* @param {Image[]} images List of images
* @param {number} timeout Optional timeout in milliseconds
* @returns {{Promise<Image>}}
*/
resolveImage(images: Image[], timeout?: number): Promise<Image>;
/**
* Dry runs to resolve an image from a list of images. Dry run means that no packages will be downloaded.
* @param {Image[]} images List of images
* @param {number} timeout Optional timeout in milliseconds
* @returns {{Promise<Image>}}
*/
resolveImageDryRun(images: Image[], timeout?: number): Promise<Image>;
/**
* Shut down a session
* @param sessionId the ID of the session to shut down
* @returns {{Promise<void>}}
*/
shutdownSession(sessionId: string): Promise<void>;
/**
* Start a session
* @returns {{Promise<Session>}}
*/
startSession(): Promise<Session>;
/**
* Get the session manager image.
* @returns {{Promise<Image>}}
*/
getSessionManagerImage(): Promise<Image>;
/**
* Start a session based on an image.
* @param imageId
* @returns {{Promise<Session>}}
*/
startImageSession(image: Image): Promise<Session>;
/**
* Update the `Runner` plugin to the given version
* @param runnerUpdateRequest
* @returns {{Promise<void>}}
*/
updateRunner(runnerUpdateRequest: RunnerUpdateRequest): Promise<void>;
/**
* Subscribe to the MetadataUpdated event
* @param {(event:MetadataUpdatedEvent|undefined,err:NatsError|Error|null)=>void} handler
* @param {SubscriptionOptions} options?
* @returns Subscription
*/
connectMetadataUpdatedEvents(handler: (event: MetadataUpdatedEvent | undefined, err: NatsError | Error | null) => void, options?: SubscriptionOptions): Subscription;
/**
* Connect to metrics published for the given SessionMetricInfo from the idle session
* @param {ISessionMetricInfo} metricInfo
* @param {(result:MetricValue|undefined,err:NatsError|Error|null)=>void} handler
* @param {SubscriptionOptions} options?
* @returns Subscription
*/
connectMetric(metricInfo: ISessionMetricInfo, inactiveThresholdMilliseconds: number, maxBatchSize: number, handler: (metricData: {
encodedMetrics: Uint8Array[];
timestamps: number[];
}) => void): Promise<Consumer>;
/**
* Gets the runner status
* @return Promise
*/
getStatus(): Promise<RunnerStatus>;
}