diff --git a/sdk/nodejs/x/automation/localWorkspace.ts b/sdk/nodejs/x/automation/localWorkspace.ts index ce8afd9cf..cda966333 100644 --- a/sdk/nodejs/x/automation/localWorkspace.ts +++ b/sdk/nodejs/x/automation/localWorkspace.ts @@ -16,16 +16,17 @@ import * as fs from "fs"; import * as os from "os"; import * as upath from "upath"; import { CommandResult, runPulumiCmd } from "./cmd"; +import { ConfigMap, ConfigValue } from "./config"; import { ProjectSettings } from "./projectSettings"; import { StackSettings } from "./stackSettings"; -import { Workspace } from "./workspace"; +import { StackSummary, Workspace } from "./workspace"; -export class LocalWorkspace /*implements Workspace TODO */ { +export class LocalWorkspace implements Workspace { ready: Promise; private workDir: string; private pulumiHome?: string; private program?: () => void; - private envVars?: { [key: string]: string }; + private envVars: { [key: string]: string }; private secretsProvider?: string; constructor(opts?: LocalWorkspaceOpts) { let dir = ""; @@ -155,6 +156,71 @@ export class LocalWorkspace /*implements Workspace TODO */ { return Promise.reject(error); } } + getConfig(stackName: string, key: string): Promise { + // TODO + return Promise.resolve({}); + } + getAllConfig(stackName: string): Promise { + // TODO + return Promise.resolve({}); + } + setConfig(stackName: string, key: string, value: ConfigValue): Promise { + // TODO + return Promise.resolve({}); + } + setAllConfig(stackName: string, config: ConfigMap): Promise { + // TODO + return Promise.resolve({}); + } + removeConfig(stackName: string, key: string): Promise { + // TODO + return Promise.resolve({}); + } + removeAllConfig(stackName: string, keys: string[]): Promise { + // TODO + return Promise.resolve({}); + } + refreshConfig(stackName: string): Promise { + // TODO + return Promise.resolve({}); + } + getEnvVars(): { [key: string]: string } { + return this.envVars; + } + setEnvVars(envs: { [key: string]: string }): void { + this.envVars = { ...this.envVars, ...envs }; + } + setEnvVar(key: string, value: string): void { + this.envVars[key] = value; + } + unsetEnvVar(key: string): void { + delete this.envVars[key]; + } + getWorkDir(): string { + return this.workDir; + } + getPulumiHome(): string | undefined { + return this.pulumiHome; + } + + whoAmI(): Promise { + // TODO + return Promise.resolve({}); + } + stack(): Promise { + // TODO + return Promise.resolve({}); + } + listStacks(): Promise { + // TODO + return Promise.resolve({}); + } + getProgram(): (() => void) | undefined { + return this.program; + } + setProgram(program: () => void): void { + this.program = program; + } serializeArgsForOp(_: string): string[] { // LocalWorkspace does not take advantage of this extensibility point. return []; @@ -163,7 +229,7 @@ export class LocalWorkspace /*implements Workspace TODO */ { // LocalWorkspace does not take advantage of this extensibility point. return; } - async runPulumiCmd( + private async runPulumiCmd( args: string[], onOutput?: (data: string) => void, ): Promise { diff --git a/sdk/nodejs/x/automation/workspace.ts b/sdk/nodejs/x/automation/workspace.ts index af3e09ac1..a645df9b6 100644 --- a/sdk/nodejs/x/automation/workspace.ts +++ b/sdk/nodejs/x/automation/workspace.ts @@ -35,14 +35,14 @@ export interface Workspace { setEnvVar(key: string, value: string): void; unsetEnvVar(key: string): void; getWorkDir(): string; - getPulumiHome(): string; + getPulumiHome(): string | undefined; whoAmI(): Promise; stack(): Promise; createStack(stackName: string): Promise; selectStack(stackName: string): Promise; removeStack(stackName: string): Promise; listStacks(): Promise; - getProgram(): () => void; + getProgram(): (() => void) | undefined; setProgram(program: () => void): void; }