@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
51 lines (50 loc) • 1.94 kB
TypeScript
import { type ConfigManager } from '../config-manager.js';
import { type K8Factory } from '../../integration/kube/k8-factory.js';
import { type SoloLogger } from '../logging/solo-logger.js';
import { type Lock, type LockRenewalService } from './lock.js';
import { type RemoteConfigRuntimeStateApi } from '../../business/runtime-state/api/remote-config-runtime-state-api.js';
/**
* Manages the acquisition and renewal of locks.
*/
export declare class LockManager {
private readonly _renewalService?;
private readonly _logger?;
private readonly k8Factory?;
private readonly configManager?;
private readonly remoteConfigRuntimeState?;
/**
* Creates a new lock manager.
*
* @param _renewalService - the lock renewal service.
* @param _logger - the logger.
* @param k8Factory - the Kubernetes client.
* @param configManager - the configuration manager.
* @param remoteConfigRuntimeState
*/
constructor(_renewalService?: LockRenewalService, _logger?: SoloLogger, k8Factory?: K8Factory, configManager?: ConfigManager, remoteConfigRuntimeState?: RemoteConfigRuntimeStateApi);
/**
* Creates a new lease. This lease is not acquired until the `acquire` method is called.
*
* @returns a new lease instance.
*/
create(): Promise<Lock>;
/**
* Retrieves the renewal service implementation.
*
* @returns the lease renewal service.
*/
get renewalService(): LockRenewalService;
/**
* Retrieves the logger instance.
*
* @returns the logger.
*/
get logger(): SoloLogger;
/**
* Retrieves the user or configuration supplied namespace to use for lease acquisition.
*
* @returns the namespace to use for lease acquisition or null if no namespace is specified.
* @throws LockAcquisitionError if the namespace does not exist and cannot be created.
*/
private currentNamespace;
}