@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
58 lines (57 loc) • 3.87 kB
TypeScript
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>;
}