@adpt/core
Version:
AdaptJS core library
43 lines • 1.86 kB
TypeScript
import { TaskObserver } from "@adpt/utils";
import { Deployment } from "../server/deployment";
import { DeployOpID, DeployStepID } from "../server/deployment_data";
import { DeployStatus, DeployStatusExt, ExecuteComplete, GoalStatus } from "./deploy_types";
import { EPNode, StatusTracker } from "./deploy_types_private";
export interface StatusTrackerOptions {
deployment: Deployment;
dryRun: boolean;
goalStatus: GoalStatus;
nodes: EPNode[];
deployOpID: DeployOpID;
taskObserver: TaskObserver;
}
export declare function createStatusTracker(options: StatusTrackerOptions): Promise<StatusTracker>;
export declare class StatusTrackerImpl implements StatusTracker {
readonly deployment: Deployment;
readonly dryRun: boolean;
readonly goalStatus: GoalStatus;
readonly nodeStatus: Record<DeployStatus, number>;
readonly nonPrimStatus: Record<DeployStatus, number>;
readonly deployOpID: DeployOpID;
readonly primStatus: Record<DeployStatus, number>;
readonly statMap: Map<EPNode, DeployStatusExt>;
readonly taskMap: Map<EPNode, TaskObserver>;
stepID?: DeployStepID;
constructor(options: StatusTrackerOptions);
initDeploymentStatus(): Promise<void>;
get(n: EPNode): DeployStatusExt;
set(n: EPNode, statExt: DeployStatusExt, err: Error | undefined, description?: string): Promise<boolean>;
isFinal(n: EPNode): boolean;
isActive(n: EPNode): boolean;
output(n: EPNode, s: string): void;
complete(stateChanged: boolean): Promise<ExecuteComplete>;
debug(getId: (n: EPNode) => string): string;
private getTask;
private writeStatus;
private updateTask;
private updateCount;
private newStatus;
}
export declare function shouldTrackStatus(n: EPNode): boolean;
export declare function isTrivial(n: EPNode): boolean;
//# sourceMappingURL=status_tracker.d.ts.map