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

Function rollback

packages/airnode-deployer/src/cli/commands.ts:94–127  ·  view source on GitHub ↗
(deploymentId: string, versionId: string, receiptFile: string, autoRemove: boolean)

Source from the content-addressed store, hash-verified

92}
93
94export async function rollback(deploymentId: string, versionId: string, receiptFile: string, autoRemove: boolean) {
95 const spinner = logger.getSpinner();
96 spinner.start(`Rollback of deployment '${deploymentId}' to version '${versionId}'`);
97 if (logger.inDebugMode()) {
98 spinner.info();
99 }
100
101 const configDirTmp = fs.mkdtempSync(path.join(os.tmpdir(), 'airnode'));
102 const configPathTmp = path.join(configDirTmp, 'config.json');
103 const secretsPathTmp = path.join(configDirTmp, 'secrets.env');
104
105 try {
106 await saveDeploymentFiles(deploymentId, versionId, configPathTmp, secretsPathTmp);
107 const { creationTime } = await deploy(configPathTmp, secretsPathTmp, receiptFile, autoRemove);
108
109 const secrets = parseSecretsFile(secretsPathTmp);
110 const config = loadConfig(configPathTmp, secrets);
111 const { airnodeWalletMnemonic, cloudProvider, stage, nodeVersion } = config.nodeSettings;
112 const airnodeAddress = deriveAirnodeAddress(airnodeWalletMnemonic);
113 const newVersionId = deriveDeploymentVersionId(
114 cloudProvider,
115 airnodeAddress,
116 stage,
117 nodeVersion,
118 `${creationTime.getTime()}`
119 );
120
121 spinner.succeed(
122 `Rollback of deployment '${deploymentId}' successful, new version '${newVersionId}' with configuration from version '${versionId}' created`
123 );
124 } finally {
125 fs.rmSync(configDirTmp, { recursive: true });
126 }
127}

Callers 2

index.tsFile · 0.90
commands.test.tsFile · 0.90

Calls 9

saveDeploymentFilesFunction · 0.90
parseSecretsFileFunction · 0.90
loadConfigFunction · 0.90
deriveAirnodeAddressFunction · 0.90
deployFunction · 0.85
startMethod · 0.80
infoMethod · 0.80
succeedMethod · 0.80

Tested by

no test coverage detected