UNPKG

8.59 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.getAWSResources = exports.quietly = void 0;
4function quietly(p) {
5 return p
6 .then(x => {
7 // Occassionally AWS will return an invalid response with a
8 // ResponseMetadata field when an object is recently destroyed. We
9 // check for this case and return undefined as if the object were
10 // not there. This fixes occassional testsuite failures.
11 const { ResponseMetadata, ...rest } = x;
12 if (ResponseMetadata && Object.keys(rest).length === 0) {
13 return;
14 }
15 return x;
16 })
17 .catch(_ => { });
18}
19exports.quietly = quietly;
20async function getAWSResources(mod, includeLogGroup = false) {
21 const { lambda, sns, sqs, s3, cloudwatch } = mod.state.services;
22 const { FunctionName, RoleName, region, SNSLambdaSubscriptionArn, RequestTopicArn, ResponseQueueUrl, ResponseQueueArn, logGroupName, layer, Bucket, ...rest } = mod.state.resources;
23 const _exhaustiveCheck = {};
24 const functionResult = await quietly(lambda.getFunctionConfiguration({ FunctionName }).promise());
25 const layerResult = layer &&
26 (await quietly(lambda
27 .getLayerVersion({
28 LayerName: layer.LayerName,
29 VersionNumber: layer.Version
30 })
31 .promise()));
32 const snsResult = await quietly(sns.getTopicAttributes({ TopicArn: RequestTopicArn }).promise());
33 const sqsResult = await quietly(sqs.getQueueAttributes({ QueueUrl: ResponseQueueUrl }).promise());
34 const subscriptionResult = await quietly(sns.listSubscriptionsByTopic({ TopicArn: RequestTopicArn }).promise());
35 const s3Result = Bucket && (await quietly(s3.listObjectsV2({ Bucket }).promise()));
36 const logGroupResult = includeLogGroup &&
37 logGroupName &&
38 (await quietly(cloudwatch.describeLogGroups({ logGroupNamePrefix: logGroupName }).promise()));
39 if (RoleName || SNSLambdaSubscriptionArn || region || ResponseQueueArn) {
40 // ignore
41 }
42 return {
43 logGroupResult: (logGroupResult && logGroupResult.logGroups[0]) || undefined,
44 functionResult,
45 snsResult,
46 sqsResult,
47 subscriptionResult,
48 layerResult,
49 s3Result
50 };
51}
52exports.getAWSResources = getAWSResources;
53//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC1hd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ZpeHR1cmVzL3V0aWwtYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLFNBQWdCLE9BQU8sQ0FBSSxDQUFhO0lBQ3BDLE9BQU8sQ0FBQztTQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNOLDJEQUEyRDtRQUMzRCxrRUFBa0U7UUFDbEUsaUVBQWlFO1FBQ2pFLHdEQUF3RDtRQUN4RCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFRLENBQUM7UUFDL0MsSUFBSSxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEQsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBZEQsMEJBY0M7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUFDLEdBQW1CLEVBQUUsZUFBZSxHQUFHLEtBQUs7SUFDOUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUNoRSxNQUFNLEVBQ0YsWUFBWSxFQUNaLFFBQVEsRUFDUixNQUFNLEVBQ04sd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLEdBQUcsSUFBSSxFQUNWLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFFeEIsTUFBTSxnQkFBZ0IsR0FBMEIsRUFBRSxDQUFDO0lBRW5ELE1BQU0sY0FBYyxHQUFHLE1BQU0sT0FBTyxDQUNoQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUM5RCxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQ2IsS0FBSztRQUNMLENBQUMsTUFBTSxPQUFPLENBQ1YsTUFBTTthQUNELGVBQWUsQ0FBQztZQUNiLFNBQVMsRUFBRSxLQUFNLENBQUMsU0FBUztZQUMzQixhQUFhLEVBQUUsS0FBTSxDQUFDLE9BQU87U0FDaEMsQ0FBQzthQUNELE9BQU8sRUFBRSxDQUNqQixDQUFDLENBQUM7SUFFUCxNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FDM0IsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLGVBQWdCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUNuRSxDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxPQUFPLENBQzNCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxnQkFBaUIsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQ3BFLENBQUM7SUFFRixNQUFNLGtCQUFrQixHQUFHLE1BQU0sT0FBTyxDQUNwQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZ0IsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQ3pFLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFbkYsTUFBTSxjQUFjLEdBQ2hCLGVBQWU7UUFDZixZQUFZO1FBQ1osQ0FBQyxNQUFNLE9BQU8sQ0FDVixVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUMvRSxDQUFDLENBQUM7SUFFUCxJQUFJLFFBQVEsSUFBSSx3QkFBd0IsSUFBSSxNQUFNLElBQUksZ0JBQWdCLEVBQUU7UUFDcEUsU0FBUztLQUNaO0lBRUQsT0FBTztRQUNILGNBQWMsRUFBRSxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsU0FBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUztRQUM3RSxjQUFjO1FBQ2QsU0FBUztRQUNULFNBQVM7UUFDVCxrQkFBa0I7UUFDbEIsV0FBVztRQUNYLFFBQVE7S0FDWCxDQUFDO0FBQ04sQ0FBQztBQWxFRCwwQ0FrRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NGYWFzdE1vZHVsZSB9IGZyb20gXCIuLi8uLi9pbmRleFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gcXVpZXRseTxUPihwOiBQcm9taXNlPFQ+KSB7XG4gICAgcmV0dXJuIHBcbiAgICAgICAgLnRoZW4oeCA9PiB7XG4gICAgICAgICAgICAvLyBPY2Nhc3Npb25hbGx5IEFXUyB3aWxsIHJldHVybiBhbiBpbnZhbGlkIHJlc3BvbnNlIHdpdGggYVxuICAgICAgICAgICAgLy8gUmVzcG9uc2VNZXRhZGF0YSBmaWVsZCB3aGVuIGFuIG9iamVjdCBpcyByZWNlbnRseSBkZXN0cm95ZWQuIFdlXG4gICAgICAgICAgICAvLyBjaGVjayBmb3IgdGhpcyBjYXNlIGFuZCByZXR1cm4gdW5kZWZpbmVkIGFzIGlmIHRoZSBvYmplY3Qgd2VyZVxuICAgICAgICAgICAgLy8gbm90IHRoZXJlLiBUaGlzIGZpeGVzIG9jY2Fzc2lvbmFsIHRlc3RzdWl0ZSBmYWlsdXJlcy5cbiAgICAgICAgICAgIGNvbnN0IHsgUmVzcG9uc2VNZXRhZGF0YSwgLi4ucmVzdCB9ID0geCBhcyBhbnk7XG4gICAgICAgICAgICBpZiAoUmVzcG9uc2VNZXRhZGF0YSAmJiBPYmplY3Qua2V5cyhyZXN0KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKF8gPT4ge30pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QVdTUmVzb3VyY2VzKG1vZDogQXdzRmFhc3RNb2R1bGUsIGluY2x1ZGVMb2dHcm91cCA9IGZhbHNlKSB7XG4gICAgY29uc3QgeyBsYW1iZGEsIHNucywgc3FzLCBzMywgY2xvdWR3YXRjaCB9ID0gbW9kLnN0YXRlLnNlcnZpY2VzO1xuICAgIGNvbnN0IHtcbiAgICAgICAgRnVuY3Rpb25OYW1lLFxuICAgICAgICBSb2xlTmFtZSxcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICBTTlNMYW1iZGFTdWJzY3JpcHRpb25Bcm4sXG4gICAgICAgIFJlcXVlc3RUb3BpY0FybixcbiAgICAgICAgUmVzcG9uc2VRdWV1ZVVybCxcbiAgICAgICAgUmVzcG9uc2VRdWV1ZUFybixcbiAgICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgICBsYXllcixcbiAgICAgICAgQnVja2V0LFxuICAgICAgICAuLi5yZXN0XG4gICAgfSA9IG1vZC5zdGF0ZS5yZXNvdXJjZXM7XG5cbiAgICBjb25zdCBfZXhoYXVzdGl2ZUNoZWNrOiBSZXF1aXJlZDx0eXBlb2YgcmVzdD4gPSB7fTtcblxuICAgIGNvbnN0IGZ1bmN0aW9uUmVzdWx0ID0gYXdhaXQgcXVpZXRseShcbiAgICAgICAgbGFtYmRhLmdldEZ1bmN0aW9uQ29uZmlndXJhdGlvbih7IEZ1bmN0aW9uTmFtZSB9KS5wcm9taXNlKClcbiAgICApO1xuXG4gICAgY29uc3QgbGF5ZXJSZXN1bHQgPVxuICAgICAgICBsYXllciAmJlxuICAgICAgICAoYXdhaXQgcXVpZXRseShcbiAgICAgICAgICAgIGxhbWJkYVxuICAgICAgICAgICAgICAgIC5nZXRMYXllclZlcnNpb24oe1xuICAgICAgICAgICAgICAgICAgICBMYXllck5hbWU6IGxheWVyIS5MYXllck5hbWUsXG4gICAgICAgICAgICAgICAgICAgIFZlcnNpb25OdW1iZXI6IGxheWVyIS5WZXJzaW9uXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucHJvbWlzZSgpXG4gICAgICAgICkpO1xuXG4gICAgY29uc3Qgc25zUmVzdWx0ID0gYXdhaXQgcXVpZXRseShcbiAgICAgICAgc25zLmdldFRvcGljQXR0cmlidXRlcyh7IFRvcGljQXJuOiBSZXF1ZXN0VG9waWNBcm4hIH0pLnByb21pc2UoKVxuICAgICk7XG4gICAgY29uc3Qgc3FzUmVzdWx0ID0gYXdhaXQgcXVpZXRseShcbiAgICAgICAgc3FzLmdldFF1ZXVlQXR0cmlidXRlcyh7IFF1ZXVlVXJsOiBSZXNwb25zZVF1ZXVlVXJsISB9KS5wcm9taXNlKClcbiAgICApO1xuXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uUmVzdWx0ID0gYXdhaXQgcXVpZXRseShcbiAgICAgICAgc25zLmxpc3RTdWJzY3JpcHRpb25zQnlUb3BpYyh7IFRvcGljQXJuOiBSZXF1ZXN0VG9waWNBcm4hIH0pLnByb21pc2UoKVxuICAgICk7XG5cbiAgICBjb25zdCBzM1Jlc3VsdCA9IEJ1Y2tldCAmJiAoYXdhaXQgcXVpZXRseShzMy5saXN0T2JqZWN0c1YyKHsgQnVja2V0IH0pLnByb21pc2UoKSkpO1xuXG4gICAgY29uc3QgbG9nR3JvdXBSZXN1bHQgPVxuICAgICAgICBpbmNsdWRlTG9nR3JvdXAgJiZcbiAgICAgICAgbG9nR3JvdXBOYW1lICYmXG4gICAgICAgIChhd2FpdCBxdWlldGx5KFxuICAgICAgICAgICAgY2xvdWR3YXRjaC5kZXNjcmliZUxvZ0dyb3Vwcyh7IGxvZ0dyb3VwTmFtZVByZWZpeDogbG9nR3JvdXBOYW1lIH0pLnByb21pc2UoKVxuICAgICAgICApKTtcblxuICAgIGlmIChSb2xlTmFtZSB8fCBTTlNMYW1iZGFTdWJzY3JpcHRpb25Bcm4gfHwgcmVnaW9uIHx8IFJlc3BvbnNlUXVldWVBcm4pIHtcbiAgICAgICAgLy8gaWdub3JlXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbG9nR3JvdXBSZXN1bHQ6IChsb2dHcm91cFJlc3VsdCAmJiBsb2dHcm91cFJlc3VsdC5sb2dHcm91cHMhWzBdKSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGZ1bmN0aW9uUmVzdWx0LFxuICAgICAgICBzbnNSZXN1bHQsXG4gICAgICAgIHNxc1Jlc3VsdCxcbiAgICAgICAgc3Vic2NyaXB0aW9uUmVzdWx0LFxuICAgICAgICBsYXllclJlc3VsdCxcbiAgICAgICAgczNSZXN1bHRcbiAgICB9O1xufVxuIl19
\No newline at end of file