MCPcopy Create free account
hub / github.com/api3dao/airnode / deploymentInfo

Function deploymentInfo

packages/airnode-deployer/src/infrastructure/index.ts:755–794  ·  view source on GitHub ↗
(deploymentId: string)

Source from the content-addressed store, hash-verified

753}
754
755export async function deploymentInfo(deploymentId: string) {
756 const cloudProviderType = deploymentId.slice(0, 3) as CloudProvider['type'];
757 if (!availableCloudProviders.includes(cloudProviderType)) {
758 throw new Error(`Invalid deployment ID '${deploymentId}'`);
759 }
760
761 const spinner = logger.getSpinner();
762 spinner.start(`Fetching info about deployment '${deploymentId}'`);
763 if (logger.inDebugMode()) {
764 spinner.info();
765 }
766
767 const goFetchDeployment = await go(() => fetchDeployment(cloudProviderType, deploymentId));
768 if (!goFetchDeployment.success) {
769 spinner.stop();
770 throw goFetchDeployment.error;
771 }
772 const { deployment } = goFetchDeployment.data;
773
774 const { id, cloudProvider, airnodeAddress, stage, airnodeVersion, lastUpdate, versions } = deployment;
775 const sortedVersions = sortBy(versions, 'timestamp').reverse();
776 const currentVersionId = sortedVersions.find((version) => version.timestamp === lastUpdate)!.id;
777 const table = new Table({
778 head: ['Version ID', 'Deployment time'],
779 style: {
780 head: ['bold'],
781 },
782 });
783 table.push(...sortedVersions.map(({ id, timestamp }) => [id, timestampReadable(timestamp)]));
784
785 spinner.succeed();
786 logger.consoleLog(`Cloud provider: ${cloudProviderReadable(cloudProvider)}`);
787 logger.consoleLog(`Airnode address: ${airnodeAddress}`);
788 logger.consoleLog(`Stage: ${stage}`);
789 logger.consoleLog(`Airnode version: ${airnodeVersion}`);
790 logger.consoleLog(`Deployment ID: ${id}`);
791 const tableString = table.toString();
792 const tableStringWithCurrent = tableString.replace(new RegExp(`(?<=${currentVersionId}.*?)\n`), ' (current)\n');
793 logger.consoleLog(tableStringWithCurrent);
794}
795
796export async function fetchFiles(deploymentId: string, outputDir: string, versionId?: string) {
797 const cloudProviderType = deploymentId.slice(0, 3) as CloudProvider['type'];

Callers 1

index.tsFile · 0.90

Calls 7

timestampReadableFunction · 0.90
cloudProviderReadableFunction · 0.90
fetchDeploymentFunction · 0.85
startMethod · 0.80
infoMethod · 0.80
stopMethod · 0.80
succeedMethod · 0.80

Tested by

no test coverage detected