UNPKG

@opentap/runner-client

Version:

This is the web client for the OpenTAP Runner.

106 lines (105 loc) 4.42 kB
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>; }