@fairmint/canton-node-sdk
Version:
Canton Node SDK
39 lines (35 loc) • 1.57 kB
text/typescript
// Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
import { ClusterBasename } from '@lfdecentralizedtrust/splice-pulumi-common/src/config/gcpConfig';
import { awaitAllOrThrowAllExceptions, Operation, PulumiAbortController, stack } from '../pulumi';
import { downStack } from '../pulumiOperations';
export async function startDownOperationsForValidatorStacks(
abortController: PulumiAbortController
): Promise<Operation[]> {
const validatorRunbookStack = await stack('validator-runbook', 'validator-runbook', true, {});
const allValidatorStacks = await validatorRunbookStack.workspace.listStacks({
all: false,
});
const allValidatorsForCluster = allValidatorStacks.filter(stack =>
stack.name.endsWith(ClusterBasename)
);
console.error(`Resetting validators ${JSON.stringify(allValidatorsForCluster)}`);
return allValidatorsForCluster.map(stackSummary => {
return {
name: `down-${stackSummary.name}`,
promise: stack(
'validator-runbook',
stackSummary.name.slice(0, stackSummary.name.length - (ClusterBasename.length + 1)),
true,
{}
// eslint-disable-next-line promise/prefer-await-to-then
).then(stack => downStack(stack, abortController)),
};
});
}
export async function downAllTheValidatorsStacks(
abortController: PulumiAbortController
): Promise<void> {
const operations = await startDownOperationsForValidatorStacks(abortController);
await awaitAllOrThrowAllExceptions(operations);
}