UNPKG

@hashgraph/solo

Version:

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

136 lines (135 loc) 7.04 kB
/** * SPDX-License-Identifier: Apache-2.0 */ import { type AccountManager } from '../../core/account_manager.js'; import { type ConfigManager } from '../../core/config_manager.js'; import { type KeyManager } from '../../core/key_manager.js'; import { type ProfileManager } from '../../core/profile_manager.js'; import { type PlatformInstaller } from '../../core/platform_installer.js'; import { type K8Factory } from '../../core/kube/k8_factory.js'; import { type ChartManager } from '../../core/chart_manager.js'; import { type CertificateManager } from '../../core/certificate_manager.js'; import { Task } from '../../core/task.js'; import { type SoloLogger } from '../../core/logging.js'; import { type Listr, type ListrTaskWrapper } from 'listr2'; import { type ConfigBuilder, type NodeAlias, type NodeAliases, type SkipCheck } from '../../types/aliases.js'; import { NodeStatusCodes, NodeSubcommandType } from '../../core/enumerations.js'; import { type Lease } from '../../core/lease/lease.js'; import { type BaseCommand } from '../base.js'; import { type NamespaceName } from '../../core/kube/resources/namespace/namespace_name.js'; import { PodRef } from '../../core/kube/resources/pod/pod_ref.js'; import { type Optional } from '../../types/index.js'; import { ConsensusNode } from '../../core/model/consensus_node.js'; export declare class NodeCommandTasks { private readonly accountManager; private readonly configManager; private readonly keyManager; private readonly profileManager; private readonly platformInstaller; private readonly logger; private readonly k8Factory; private readonly parent; private readonly chartManager; private readonly certificateManager; private readonly prepareValuesFiles; constructor(opts: { logger: SoloLogger; accountManager: AccountManager; configManager: ConfigManager; k8Factory: K8Factory; platformInstaller: PlatformInstaller; keyManager: KeyManager; profileManager: ProfileManager; chartManager: ChartManager; certificateManager: CertificateManager; parent: BaseCommand; }); private _prepareUpgradeZip; private _uploadUpgradeZip; private copyLocalBuildPathToNode; _uploadPlatformSoftware(nodeAliases: NodeAliases, podRefs: Record<NodeAlias, PodRef>, task: ListrTaskWrapper<any, any, any>, localBuildPath: string, consensusNodes: Optional<ConsensusNode[]>): Listr<any, any, any>; _fetchPlatformSoftware(nodeAliases: NodeAliases, podRefs: Record<NodeAlias, PodRef>, releaseTag: string, task: ListrTaskWrapper<any, any, any>, platformInstaller: PlatformInstaller, consensusNodes?: Optional<ConsensusNode[]>): Listr<any, any, any>; _checkNodeActivenessTask(ctx: any, task: ListrTaskWrapper<any, any, any>, nodeAliases: NodeAliases, status?: NodeStatusCodes): Listr<any, any, any>; _checkNetworkNodeActiveness(namespace: NamespaceName, nodeAlias: NodeAlias, task: ListrTaskWrapper<any, any, any>, title: string, index: number, status?: NodeStatusCodes, maxAttempts?: number, delay?: number, timeout?: number, context?: string): Promise<PodRef>; /** Return task for check if node proxies are ready */ _checkNodesProxiesTask(ctx: any, task: ListrTaskWrapper<any, any, any>, nodeAliases: NodeAliases): Listr<any, any, any>; /** * When generating multiple all aliases are read from config.nodeAliases, * When generating a single key the alias in config.nodeAlias is used */ _generateGossipKeys(generateMultiple: boolean): Task; /** * When generating multiple all aliases are read from config.nodeAliases, * When generating a single key the alias in config.nodeAlias is used */ _generateGrpcTlsKeys(generateMultiple: boolean): Task; copyGrpcTlsCertificates(): Task; _addStake(namespace: NamespaceName, accountId: string, nodeAlias: NodeAlias, stakeAmount?: number, context?: string): Promise<void>; prepareUpgradeZip(): Task; loadAdminKey(): Task; checkExistingNodesStakedAmount(): Task; sendPrepareUpgradeTransaction(): Task; sendFreezeUpgradeTransaction(): Task; /** Download generated config files and key files from the network node */ downloadNodeGeneratedFiles(): Task; downloadNodeUpgradeFiles(): Task; taskCheckNetworkNodePods(ctx: any, task: ListrTaskWrapper<any, any, any>, nodeAliases: NodeAliases, maxAttempts?: any): Listr; /** Check if the network node pod is running */ checkNetworkNodePod(namespace: NamespaceName, nodeAlias: NodeAlias, maxAttempts?: number, delay?: number, context?: Optional<string>): Promise<PodRef>; identifyExistingNodes(): Task; uploadStateFiles(skip: SkipCheck | boolean): Task; identifyNetworkPods(maxAttempts?: number): Task; fetchPlatformSoftware(aliasesField: string): Task; populateServiceMap(): Task; setupNetworkNodes(nodeAliasesProperty: string, isGenesis: boolean): Task; private generateNodeOverridesJson; /** * Generate genesis network json file * @private * @param namespace - namespace * @param consensusNodes - consensus nodes * @param keysDir - keys directory * @param stagingDir - staging directory */ private generateGenesisNetworkJson; prepareStagingDirectory(nodeAliasesProperty: any): Task; startNodes(nodeAliasesProperty: string): Task; enablePortForwarding(): Task; checkAllNodesAreActive(nodeAliasesProperty: string): Task; checkAllNodesAreFrozen(nodeAliasesProperty: string): Task; checkNodeProxiesAreActive(): Task; checkAllNodeProxiesAreActive(): Task; triggerStakeWeightCalculate(transactionType: NodeSubcommandType): Task; addNodeStakes(): Task; stakeNewNode(): Task; stopNodes(): Task; finalize(): Task; dumpNetworkNodesSaveState(): Task; getNodeLogsAndConfigs(): Task; getNodeStateFiles(): Task; checkPVCsEnabled(): Task; determineNewNodeAccountNumber(): Task; generateGossipKeys(): Task; generateGossipKey(): Task; generateGrpcTlsKeys(): Task; generateGrpcTlsKey(): Task; loadSigningKeyCertificate(): Task; computeMTLSCertificateHash(): Task; prepareGossipEndpoints(): Task; refreshNodeList(): Task; prepareGrpcServiceEndpoints(): Task; sendNodeUpdateTransaction(): Task; copyNodeKeysToSecrets(): Task; updateChartWithConfigMap(title: string, transactionType: NodeSubcommandType, skip?: SkipCheck | boolean): Task; saveContextData(argv: any, targetFile: string, parser: any): Task; loadContextData(argv: any, targetFile: string, parser: any): Task; killNodes(): Task; killNodesAndUpdateConfigMap(): Task; checkNodePodsAreRunning(): Task; sleep(title: string, milliseconds: number): Task; downloadLastState(): Task; uploadStateToNewNode(): Task; sendNodeDeleteTransaction(): Task; sendNodeCreateTransaction(): Task; initialize(argv: any, configInit: ConfigBuilder, lease: Lease | null, shouldLoadNodeClient?: boolean): Task; }