UNPKG

@hashgraph/solo

Version:

An opinionated CLI tool to deploy and manage private Hedera Networks.

58 lines (57 loc) 3.87 kB
import { ShellRunner } from '../core/shell-runner.js'; import { type LockManager } from '../core/lock/lock-manager.js'; import { type ChartManager } from '../core/chart-manager.js'; import { type ConfigManager } from '../core/config-manager.js'; import { type DependencyManager } from '../core/dependency-managers/index.js'; import { type K8Factory } from '../integration/kube/k8-factory.js'; import { type HelmClient } from '../integration/helm/helm-client.js'; import { type LocalConfigRuntimeState } from '../business/runtime-state/config/local/local-config-runtime-state.js'; import { type ClusterReferenceName, type ComponentId, type Context, NamespaceNameAsString, type SoloListrTaskWrapper } from '../types/index.js'; import { type RemoteConfigRuntimeStateApi } from '../business/runtime-state/api/remote-config-runtime-state-api.js'; import { type TaskList } from '../core/task-list/task-list.js'; import { ListrContext, ListrRendererValue } from 'listr2'; import { type ComponentFactoryApi } from '../core/config/remote/api/component-factory-api.js'; import { type OneShotState } from '../core/one-shot-state.js'; import { NamespaceName } from '../types/namespace/namespace-name.js'; import { AnyListrContext } from '../types/aliases.js'; import { NodeCommandTasks } from './node/tasks.js'; import { SoloConfig } from '../business/runtime-state/config/solo/solo-config.js'; import { type ConfigProvider } from '../data/configuration/api/config-provider.js'; export declare abstract class BaseCommand extends ShellRunner { protected readonly helm?: HelmClient; protected readonly k8Factory?: K8Factory; protected readonly chartManager?: ChartManager; readonly configManager?: ConfigManager; protected readonly depManager?: DependencyManager; protected readonly leaseManager?: LockManager; readonly localConfig?: LocalConfigRuntimeState; protected readonly remoteConfig?: RemoteConfigRuntimeStateApi; protected readonly taskList?: TaskList<ListrContext, ListrRendererValue, ListrRendererValue>; protected readonly componentFactory?: ComponentFactoryApi; protected readonly oneShotState?: OneShotState; protected readonly nodeCommandTasks?: NodeCommandTasks; private readonly configProvider?; readonly soloConfig: SoloConfig; constructor(helm?: HelmClient, k8Factory?: K8Factory, chartManager?: ChartManager, configManager?: ConfigManager, depManager?: DependencyManager, leaseManager?: LockManager, localConfig?: LocalConfigRuntimeState, remoteConfig?: RemoteConfigRuntimeStateApi, taskList?: TaskList<ListrContext, ListrRendererValue, ListrRendererValue>, componentFactory?: ComponentFactoryApi, oneShotState?: OneShotState, nodeCommandTasks?: NodeCommandTasks, configProvider?: ConfigProvider); protected loadRemoteConfigOrWarn(argv: { _: string[]; } & Record<string, unknown>, validate?: boolean, skipConsensusNodesValidation?: boolean): Promise<boolean>; abstract close(): Promise<void>; /** * Setup home directories * @param directories */ setupHomeDirectory(directories?: string[]): string[]; protected getClusterReference(): ClusterReferenceName; protected getClusterContext(clusterReference: ClusterReferenceName): Context; protected getNamespace(task: SoloListrTaskWrapper<AnyListrContext>): Promise<NamespaceName>; protected throwIfNamespaceIsMissing(context: Context, namespace: NamespaceName): Promise<void>; private inferMirrorNodeDataFromRemoteConfig; protected inferMirrorNodeData(namespace: NamespaceName, context: Context): Promise<{ mirrorNodeId: ComponentId; mirrorNamespace: NamespaceNameAsString; mirrorNodeReleaseName: string; }>; private inferMirrorNodeReleaseName; protected resolveNamespaceFromDeployment(task?: SoloListrTaskWrapper<AnyListrContext>): Promise<NamespaceName>; }