UNPKG

@cto.ai/ops

Version:

💻 CTO.ai - The CLI built for Teams 🚀

193 lines (192 loc) • 7.46 kB
import { Config, Container, OpCommand, RunCommandArgs } from './../types'; import Docker, { ContainerCreateOptions } from '@cto.ai/dockerode'; import { OpJob, OpPipeline, OpService as OpServicePreview } from './../types/OpsYml'; import { AnalyticsService } from './../services/Analytics'; import { ContainerService } from './../services/Container'; import { FeathersClient } from './../services/Feathers'; import { ImageService } from './../services/Image'; import { OpsYmlEnvVar } from '../types/OpsYml'; import { RegistryAuthService } from './../services/RegistryAuth'; import { BuildOptions } from '../types/Docker'; export interface OpRunInputs { op: OpCommand; isPipeline: boolean; config: Config; parsedArgs: RunCommandArgs; options: ContainerCreateOptions; container: Docker.Container; version: string; flags: { nocache: boolean; }; } export declare class OpService { protected registryAuthService: RegistryAuthService; protected imageService: ImageService; protected containerService: ContainerService; protected analytics: AnalyticsService; protected api: FeathersClient; constructor(registryAuthService?: RegistryAuthService, imageService?: ImageService, containerService?: ContainerService, analytics?: AnalyticsService, api?: FeathersClient); opBuild: (op: OpCommand, opPath: string, config: Config, options: BuildOptions) => Promise<void>; opsBuildLoop: (ops: OpCommand[], opPath: string, config: Config, options: BuildOptions) => Promise<void>; setDefaultRegistryToken: (config: Config) => Promise<void>; getOpsFromFileSystem: (opPath: string) => Promise<any>; convertOpsToCommands: (opsToBuild: (OpCommand | OpPipeline | OpServicePreview)[], config: Config, opPath: string) => Promise<OpCommand[]>; convertPipelinesToOps: (pipelines: OpPipeline[], config: Config, opPath: string) => Promise<OpCommand[]>; createJobContents: (config: Config, pipeline: OpPipeline, job: OpJob, jobIndex: number) => Promise<string>; addJobPackages: (packages: string[], targetFile: string) => void; writeJobContents: (contents: string, targetFile: string) => void; run(op: OpCommand, isPipeline: boolean, parsedArgs: RunCommandArgs, config: Config, version: string, flags: { nocache: boolean; }): Promise<Boolean>; updateOpFields: (inputs: OpRunInputs) => OpRunInputs; getImage: (inputs: OpRunInputs) => Promise<OpRunInputs>; pullImageFromRegistry: (op: OpCommand, config: Config, version: string) => Promise<void>; setOpImageUrl: (op: OpCommand, config: Config) => string; setEnvs: (inputs: OpRunInputs) => OpRunInputs; hostSetup: ({ op, ...rest }: OpRunInputs) => { op: { bind: string[]; type: "command" | "glue_code" | "job" | "service"; run: string; sdk?: string | undefined; network?: string | undefined; src: string[]; mountCwd: boolean; mountHome: boolean; port: string[]; image: string | void; domain: string | void; name: string; version: string; platformVersion: string; description: string; publishDescription?: string | undefined; env?: string[] | OpsYmlEnvVar | undefined; runId: string; opsHome: string; configDir: string; stateDir: string; localStateDir: string; teamID?: string | undefined; teamName: string; help: { usage: string; arguments: { [key: string]: string; }; options: { [key: string]: string; }; }; isPublic: boolean; isPublished?: boolean | undefined; id: string; createdAt: string; updatedAt: string; local?: boolean | undefined; events?: string[] | undefined; trigger?: string[] | undefined; }; isPipeline: boolean; config: Config; parsedArgs: RunCommandArgs; options: ContainerCreateOptions; container: Docker.Container; version: string; flags: { nocache: boolean; }; }; setBinds: ({ op, ...rest }: OpRunInputs) => { op: { bind: string[]; type: "command" | "glue_code" | "job" | "service"; run: string; sdk?: string | undefined; network?: string | undefined; src: string[]; mountCwd: boolean; mountHome: boolean; port: string[]; image: string | void; domain: string | void; name: string; version: string; platformVersion: string; description: string; publishDescription?: string | undefined; env?: string[] | OpsYmlEnvVar | undefined; runId: string; opsHome: string; configDir: string; stateDir: string; localStateDir: string; teamID?: string | undefined; teamName: string; help: { usage: string; arguments: { [key: string]: string; }; options: { [key: string]: string; }; }; isPublic: boolean; isPublished?: boolean | undefined; id: string; createdAt: string; updatedAt: string; local?: boolean | undefined; events?: string[] | undefined; trigger?: string[] | undefined; }; isPipeline: boolean; config: Config; parsedArgs: RunCommandArgs; options: ContainerCreateOptions; container: Docker.Container; version: string; flags: { nocache: boolean; }; }; getOptions: ({ op, config, ...rest }: OpRunInputs) => { op: OpCommand; options: { AttachStderr: boolean; AttachStdin: boolean; AttachStdout: boolean; Cmd: string[]; Env: string[] | OpsYmlEnvVar | undefined; WorkingDir: string; HostConfig: { Binds: string[]; NetworkMode: string | undefined; SecurityOpt: string[]; }; Image: string | void; OpenStdin: boolean; StdinOnce: boolean; Tty: boolean; Volumes: {}; VolumesFrom: never[]; }; isPipeline: boolean; parsedArgs: RunCommandArgs; container: Docker.Container; version: string; flags: { nocache: boolean; }; }; addPortsToOptions: ({ op, options, ...rest }: OpRunInputs) => Promise<OpRunInputs>; createContainer: (inputs: OpRunInputs) => Promise<OpRunInputs>; attachToContainer: (inputs: OpRunInputs) => Promise<OpRunInputs>; convertEnvStringsToObject: (acc: Container<string>, curr: string) => { [x: string]: string; }; overrideEnvWithProcessEnv: (processEnv: Container<string | undefined>) => ([key, val,]: [string, string]) => string[]; replaceHomeAlias: (bindPair: string) => string; }