@aws-cdk-testing/cli-integ 3.36.3 → 3.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/aws.d.ts +1 -0
- package/lib/aws.js +7 -2
- package/lib/corking.d.ts +11 -0
- package/lib/corking.js +32 -2
- package/lib/integ-test.js +3 -1
- package/lib/regions.d.ts +0 -4
- package/lib/regions.js +2 -17
- package/lib/with-aws.js +3 -1
- package/lib/with-cdk-app.d.ts +56 -0
- package/lib/with-cdk-app.js +126 -7
- package/npm-shrinkwrap.json +116 -116
- package/package.json +6 -6
- package/resources/cdk-apps/app/app.js +22 -13
- package/tests/cli-integ-tests/cdk-assets/asset_helpers.js +5 -5
- package/tests/cli-integ-tests/cdk-assets/cdk-assets-docker-credential.integtest.js +2 -1
- package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.js +4 -4
- package/tests/cli-integ-tests/deploy/cdk-deploy-docker-asset-multi-region.integtest.js +9 -3
- package/tests/cli-integ-tests/diagnose/cdk-diagnose-guard-hook-failure-displays-hook-details.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/diagnose/cdk-diagnose-guard-hook-failure-displays-hook-details.integtest.js +24 -0
- package/tests/cli-integ-tests/hotswap/cdk-hotswap-deployment-caches-template.integtest.js +3 -4
- package/tests/cli-integ-tests/hotswap/cdk-hotswap-deployment-supports-cloudcontrol-based-resources.integtest.js +4 -5
- package/tests/cli-integ-tests/proxy/proxy.integtest.js +8 -3
|
@@ -41,7 +41,7 @@ const lib_1 = require("../../../lib");
|
|
|
41
41
|
await fixture.cdkAssets.makeCliAvailable();
|
|
42
42
|
const account = await fixture.aws.account();
|
|
43
43
|
const region = fixture.aws.region;
|
|
44
|
-
const bucketName = `cdk-
|
|
44
|
+
const bucketName = `cdk-${fixture.qualifier}-assets-${account}-${region}`;
|
|
45
45
|
// Write some asset files. Its important to have more than 1 because cdk-assets
|
|
46
46
|
// code has some funky state mutations that happens on each asset publishing.
|
|
47
47
|
const assetFile1 = 'testfile.txt';
|
|
@@ -60,7 +60,7 @@ const lib_1 = require("../../../lib");
|
|
|
60
60
|
destinations: {
|
|
61
61
|
current: {
|
|
62
62
|
region,
|
|
63
|
-
assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-
|
|
63
|
+
assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-${fixture.qualifier}-file-publishing-role-${account}-${region}`,
|
|
64
64
|
bucketName,
|
|
65
65
|
objectKey: `test-file1-${Date.now()}.json`,
|
|
66
66
|
},
|
|
@@ -74,7 +74,7 @@ const lib_1 = require("../../../lib");
|
|
|
74
74
|
destinations: {
|
|
75
75
|
current: {
|
|
76
76
|
region,
|
|
77
|
-
assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-
|
|
77
|
+
assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-${fixture.qualifier}-file-publishing-role-${account}-${region}`,
|
|
78
78
|
bucketName,
|
|
79
79
|
objectKey: `test-file2-${Date.now()}.json`,
|
|
80
80
|
},
|
|
@@ -108,4 +108,4 @@ aws_session_token=${currentCreds.sessionToken}`);
|
|
|
108
108
|
},
|
|
109
109
|
});
|
|
110
110
|
}));
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkJBQW9DO0FBQ3BDLDJDQUE2QjtBQUM3QixzQ0FBNkQ7QUFFN0QsSUFBQSxlQUFTLEVBQUMsd0NBQXdDLEVBQUUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDdkYsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRXJELE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxTQUFTLFdBQVcsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBRTFFLCtFQUErRTtJQUMvRSw2RUFBNkU7SUFDN0UsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQztJQUNsQyxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDbkYsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRW5GLHNFQUFzRTtJQUN0RSxNQUFNLFVBQVUsR0FBRztRQUNqQixPQUFPLEVBQUUsUUFBUTtRQUNqQixLQUFLLEVBQUU7WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxVQUFVO29CQUNoQixTQUFTLEVBQUUsTUFBTTtpQkFDbEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFBRTt3QkFDUCxNQUFNO3dCQUNOLGFBQWEsRUFBRSwrQkFBK0IsT0FBTyxhQUFhLE9BQU8sQ0FBQyxTQUFTLHlCQUF5QixPQUFPLElBQUksTUFBTSxFQUFFO3dCQUMvSCxVQUFVO3dCQUNWLFNBQVMsRUFBRSxjQUFjLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTztxQkFDM0M7aUJBQ0Y7YUFDRjtZQUNELFNBQVMsRUFBRTtnQkFDVCxNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFNBQVMsRUFBRSxNQUFNO2lCQUNsQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLE1BQU07d0JBQ04sYUFBYSxFQUFFLCtCQUErQixPQUFPLGFBQWEsT0FBTyxDQUFDLFNBQVMseUJBQXlCLE9BQU8sSUFBSSxNQUFNLEVBQUU7d0JBQy9ILFVBQVU7d0JBQ1YsU0FBUyxFQUFFLGNBQWMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPO3FCQUMzQztpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsaURBQWlEO0lBQ2pELEVBQUU7SUFDRixvR0FBb0c7SUFDcEcsMkZBQTJGO0lBQzNGLDJGQUEyRjtJQUMzRix3QkFBd0I7SUFDeEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDM0UsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBRTdCLDhFQUE4RTtJQUM5RSxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksT0FBTztvQkFDN0IsWUFBWSxDQUFDLFdBQVc7d0JBQ3BCLFlBQVksQ0FBQyxlQUFlO29CQUNoQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUUvQyxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDNUYsTUFBTSxFQUFFO1lBQ04sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3hCLDJCQUEyQixFQUFFLGVBQWU7WUFFNUMsOERBQThEO1lBQzlELGlGQUFpRjtZQUNqRixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsaUJBQWlCLEVBQUUsRUFBRTtTQUV0QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KCdjZGstYXNzZXRzIHVzZXMgcHJvZmlsZSB3aGVuIHNwZWNpZmllZCcsIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICBjb25zdCBjdXJyZW50Q3JlZHMgPSBhd2FpdCBmaXh0dXJlLmF3cy5jcmVkZW50aWFscygpO1xuXG4gIGF3YWl0IGZpeHR1cmUuY2RrQXNzZXRzLm1ha2VDbGlBdmFpbGFibGUoKTtcblxuICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpO1xuICBjb25zdCByZWdpb24gPSBmaXh0dXJlLmF3cy5yZWdpb247XG4gIGNvbnN0IGJ1Y2tldE5hbWUgPSBgY2RrLSR7Zml4dHVyZS5xdWFsaWZpZXJ9LWFzc2V0cy0ke2FjY291bnR9LSR7cmVnaW9ufWA7XG5cbiAgLy8gV3JpdGUgc29tZSBhc3NldCBmaWxlcy4gSXRzIGltcG9ydGFudCB0byBoYXZlIG1vcmUgdGhhbiAxIGJlY2F1c2UgY2RrLWFzc2V0c1xuICAvLyBjb2RlIGhhcyBzb21lIGZ1bmt5IHN0YXRlIG11dGF0aW9ucyB0aGF0IGhhcHBlbnMgb24gZWFjaCBhc3NldCBwdWJsaXNoaW5nLlxuICBjb25zdCBhc3NldEZpbGUxID0gJ3Rlc3RmaWxlLnR4dCc7XG4gIGNvbnN0IGFzc2V0RmlsZTIgPSAndGVzdGZpbGUudHh0JztcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYXNzZXRGaWxlMSksICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYXNzZXRGaWxlMiksICdzb21lIGFzc2V0IGZpbGUnKTtcblxuICAvLyBXcml0ZSBhbiBhc3NldCBKU09OIGZpbGUgdG8gcHVibGlzaCB0byB0aGUgYm9vdHN0cmFwcGVkIGVudmlyb25tZW50XG4gIGNvbnN0IGFzc2V0c0pzb24gPSB7XG4gICAgdmVyc2lvbjogJzM4LjAuMScsXG4gICAgZmlsZXM6IHtcbiAgICAgIHRlc3RmaWxlMToge1xuICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICBwYXRoOiBhc3NldEZpbGUxLFxuICAgICAgICAgIHBhY2thZ2luZzogJ2ZpbGUnLFxuICAgICAgICB9LFxuICAgICAgICBkZXN0aW5hdGlvbnM6IHtcbiAgICAgICAgICBjdXJyZW50OiB7XG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBhc3N1bWVSb2xlQXJuOiBgYXJuOlxcJHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke2FjY291bnR9OnJvbGUvY2RrLSR7Zml4dHVyZS5xdWFsaWZpZXJ9LWZpbGUtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YCxcbiAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICBvYmplY3RLZXk6IGB0ZXN0LWZpbGUxLSR7RGF0ZS5ub3coKX0uanNvbmAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0ZXN0ZmlsZTI6IHtcbiAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgcGF0aDogYXNzZXRGaWxlMixcbiAgICAgICAgICBwYWNrYWdpbmc6ICdmaWxlJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgICAgY3VycmVudDoge1xuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgYXNzdW1lUm9sZUFybjogYGFybjpcXCR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpyb2xlL2Nkay0ke2ZpeHR1cmUucXVhbGlmaWVyfS1maWxlLXB1Ymxpc2hpbmctcm9sZS0ke2FjY291bnR9LSR7cmVnaW9ufWAsXG4gICAgICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICAgICAgb2JqZWN0S2V5OiBgdGVzdC1maWxlMi0ke0RhdGUubm93KCl9Lmpzb25gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgLy8gY3JlYXRlIGEgcHJvZmlsZSB3aXRoIG91ciBjdXJyZW50IGNyZWRlbnRpYWxzLlxuICAvL1xuICAvLyBpZiB5b3UncmUgd29uZGVyaW5nIHdoeSBjYW4ndCB3ZSBkbyB0aGUgcmV2ZXJzZSAoaS5lIHdyaXRlIGEgYm9ndXMgcHJvZmlsZSBhbmQgYXNzZXJ0IGEgZmFpbHVyZSksXG4gIC8vIGl0cyBiZWNhdXNlIHdoZW4gY2RrLWFzc2V0cyBkaXNjb3ZlcnMgdGhlIGN1cnJlbnQgYWNjb3VudCwgaXQgRE9FUyBjb25zaWRlciB0aGUgcHJvZmlsZS5cbiAgLy8gd3JpdGluZyBhIGJvZ3VzIHByb2ZpbGUgd291bGQgZmFpbCB0aGlzIG9wZXJhdGlvbiBhbmQgd2Ugd29uJ3QgYmUgYWJsZSB0byByZWFjaCB0aGUgY29kZVxuICAvLyB3ZSdyZSB0cnlpbmcgdG8gdGVzdC5cbiAgY29uc3QgY3JlZGVudGlhbHNGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnYXdzLmNyZWRlbnRpYWxzJyk7XG4gIGNvbnN0IHByb2ZpbGUgPSAnY2RrLWFzc2V0cyc7XG5cbiAgLy8gdGhpcyBraW5kIHN1Y2tzIGJ1dCBpdHMgd2hhdCBpdCBpcyBnaXZlbiB3ZSBuZWVkIHRvIHdyaXRlIGEgd29ya2luZyBwcm9maWxlXG4gIGF3YWl0IGZzLndyaXRlRmlsZShjcmVkZW50aWFsc0ZpbGUsIGBbJHtwcm9maWxlfV1cbmF3c19hY2Nlc3Nfa2V5X2lkPSR7Y3VycmVudENyZWRzLmFjY2Vzc0tleUlkfVxuYXdzX3NlY3JldF9hY2Nlc3Nfa2V5PSR7Y3VycmVudENyZWRzLnNlY3JldEFjY2Vzc0tleX1cbmF3c19zZXNzaW9uX3Rva2VuPSR7Y3VycmVudENyZWRzLnNlc3Npb25Ub2tlbn1gKTtcblxuICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnYXNzZXRzLmpzb24nKSwgSlNPTi5zdHJpbmdpZnkoYXNzZXRzSnNvbiwgdW5kZWZpbmVkLCAyKSk7XG4gIGF3YWl0IGZpeHR1cmUuc2hlbGwoWydjZGstYXNzZXRzJywgJy0tcGF0aCcsICdhc3NldHMuanNvbicsICdwdWJsaXNoJywgJy0tcHJvZmlsZScsIHByb2ZpbGVdLCB7XG4gICAgbW9kRW52OiB7XG4gICAgICAuLi5maXh0dXJlLmNka1NoZWxsRW52KCksXG4gICAgICBBV1NfU0hBUkVEX0NSRURFTlRJQUxTX0ZJTEU6IGNyZWRlbnRpYWxzRmlsZSxcblxuICAgICAgLy8gcmVtb3ZlIHRoZSBkZWZhdWx0IGNyZWRzIHNvIHRoYXQgaWYgdGhlIGNvbW1hbmQgZG9lc24ndCB1c2VcbiAgICAgIC8vIHRoZSBwcm9maWxlLCBpdCB3aWxsIGZhaWwgd2l0aCBcIkNvdWxkIG5vdCBsb2FkIGNyZWRlbnRpYWxzIGZyb20gYW55IHByb3ZpZGVyc1wiXG4gICAgICBBV1NfQUNDRVNTX0tFWV9JRDogJycsXG4gICAgICBBV1NfU0VDUkVUX0FDQ0VTU19LRVk6ICcnLFxuICAgICAgQVdTX1NFU1NJT05fVE9LRU46ICcnLFxuXG4gICAgfSxcbiAgfSk7XG59KSxcbik7XG4iXX0=
|
|
@@ -5,9 +5,15 @@ const lib_1 = require("../../../lib");
|
|
|
5
5
|
const primaryRegion = fixture.aws.region;
|
|
6
6
|
const availableRegions = (process.env.AWS_REGIONS ?? 'us-east-1,us-west-2').split(',');
|
|
7
7
|
const secondaryRegion = availableRegions.find((r) => r !== primaryRegion) ?? 'us-west-2';
|
|
8
|
-
// Bootstrap the secondary region
|
|
8
|
+
// Bootstrap the secondary region (with the same random qualifier the app
|
|
9
|
+
// is synthesized with, and a unique stack name to avoid clashing with
|
|
10
|
+
// other tests bootstrapping this region)
|
|
9
11
|
const account = await fixture.aws.account();
|
|
10
|
-
await fixture.cdk(['bootstrap',
|
|
12
|
+
await fixture.cdk(['bootstrap',
|
|
13
|
+
'--bootstrap-kms-key-id', 'AWS_MANAGED_KEY',
|
|
14
|
+
'--qualifier', fixture.qualifier,
|
|
15
|
+
'--toolkit-stack-name', fixture.bootstrapStackName,
|
|
16
|
+
`aws://${account}/${secondaryRegion}`], {
|
|
11
17
|
modEnv: { CDK_NEW_BOOTSTRAP: '1' },
|
|
12
18
|
});
|
|
13
19
|
// Deploy both stacks — same docker source, different target regions
|
|
@@ -15,4 +21,4 @@ const lib_1 = require("../../../lib");
|
|
|
15
21
|
modEnv: { CDK_SECONDARY_REGION: secondaryRegion },
|
|
16
22
|
});
|
|
17
23
|
}));
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS1kb2NrZXItYXNzZXQtbXVsdGktcmVnaW9uLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1kZXBsb3ktZG9ja2VyLWFzc2V0LW11bHRpLXJlZ2lvbi5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBNkQ7QUFFN0QsSUFBQSxlQUFTLEVBQ1AsOENBQThDLEVBQzlDLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RixNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUM7SUFFekYseUVBQXlFO0lBQ3pFLHNFQUFzRTtJQUN0RSx5Q0FBeUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVc7UUFDNUIsd0JBQXdCLEVBQUUsaUJBQWlCO1FBQzNDLGFBQWEsRUFBRSxPQUFPLENBQUMsU0FBUztRQUNoQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCO1FBQ2xELFNBQVMsT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDLEVBQUU7UUFDeEMsTUFBTSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0tBQ25DLENBQUMsQ0FBQztJQUVILG9FQUFvRTtJQUNwRSxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFO1FBQzFFLE1BQU0sRUFBRSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRTtLQUNsRCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICdkZXBsb3kgc2FtZSBkb2NrZXIgYXNzZXQgdG8gbXVsdGlwbGUgcmVnaW9ucycsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHByaW1hcnlSZWdpb24gPSBmaXh0dXJlLmF3cy5yZWdpb247XG4gICAgY29uc3QgYXZhaWxhYmxlUmVnaW9ucyA9IChwcm9jZXNzLmVudi5BV1NfUkVHSU9OUyA/PyAndXMtZWFzdC0xLHVzLXdlc3QtMicpLnNwbGl0KCcsJyk7XG4gICAgY29uc3Qgc2Vjb25kYXJ5UmVnaW9uID0gYXZhaWxhYmxlUmVnaW9ucy5maW5kKChyKSA9PiByICE9PSBwcmltYXJ5UmVnaW9uKSA/PyAndXMtd2VzdC0yJztcblxuICAgIC8vIEJvb3RzdHJhcCB0aGUgc2Vjb25kYXJ5IHJlZ2lvbiAod2l0aCB0aGUgc2FtZSByYW5kb20gcXVhbGlmaWVyIHRoZSBhcHBcbiAgICAvLyBpcyBzeW50aGVzaXplZCB3aXRoLCBhbmQgYSB1bmlxdWUgc3RhY2sgbmFtZSB0byBhdm9pZCBjbGFzaGluZyB3aXRoXG4gICAgLy8gb3RoZXIgdGVzdHMgYm9vdHN0cmFwcGluZyB0aGlzIHJlZ2lvbilcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpO1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrKFsnYm9vdHN0cmFwJyxcbiAgICAgICctLWJvb3RzdHJhcC1rbXMta2V5LWlkJywgJ0FXU19NQU5BR0VEX0tFWScsXG4gICAgICAnLS1xdWFsaWZpZXInLCBmaXh0dXJlLnF1YWxpZmllcixcbiAgICAgICctLXRvb2xraXQtc3RhY2stbmFtZScsIGZpeHR1cmUuYm9vdHN0cmFwU3RhY2tOYW1lLFxuICAgICAgYGF3czovLyR7YWNjb3VudH0vJHtzZWNvbmRhcnlSZWdpb259YF0sIHtcbiAgICAgIG1vZEVudjogeyBDREtfTkVXX0JPT1RTVFJBUDogJzEnIH0sXG4gICAgfSk7XG5cbiAgICAvLyBEZXBsb3kgYm90aCBzdGFja3Mg4oCUIHNhbWUgZG9ja2VyIHNvdXJjZSwgZGlmZmVyZW50IHRhcmdldCByZWdpb25zXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koWydkb2NrZXItbXVsdGktcmVnaW9uLTEnLCAnZG9ja2VyLW11bHRpLXJlZ2lvbi0yJ10sIHtcbiAgICAgIG1vZEVudjogeyBDREtfU0VDT05EQVJZX1JFR0lPTjogc2Vjb25kYXJ5UmVnaW9uIH0sXG4gICAgfSk7XG4gIH0pLFxuKTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../../lib");
|
|
4
|
+
jest.setTimeout(2 * 60 * 60_000);
|
|
5
|
+
(0, lib_1.integTest)('cdk diagnose after guard hook failure displays hook failure details', (0, lib_1.withSpecificFixture)('guard-hook-app', async (fixture) => {
|
|
6
|
+
// Deploy the setup stack which creates the Guard Hook via CloudFormation
|
|
7
|
+
await fixture.cdkDeploy('guard-hook-setup');
|
|
8
|
+
// Attempt to deploy the non-compliant stack; it fails due to the Guard Hook.
|
|
9
|
+
// --no-rollback leaves the stack in CREATE_FAILED so diagnose can inspect it.
|
|
10
|
+
const deployOutput = await fixture.cdkDeploy('guard-hook-test', {
|
|
11
|
+
options: ['--no-rollback'],
|
|
12
|
+
allowErrExit: true,
|
|
13
|
+
});
|
|
14
|
+
expect(deployOutput).toContain('CREATE_FAILED');
|
|
15
|
+
// Run cdk diagnose on the failed stack
|
|
16
|
+
const diagnoseOutput = await fixture.cdk(['--unstable=diagnose', 'diagnose', fixture.fullStackName('guard-hook-test')], { allowErrExit: true });
|
|
17
|
+
// diagnose has no live activity stream, so the hook failure details must have
|
|
18
|
+
// been fetched via the GetHookResult API and attached to the diagnosis
|
|
19
|
+
expect(diagnoseOutput).toContain("Hook 'Private::Guard::TestHook' failed: NonCompliant Rules:");
|
|
20
|
+
expect(diagnoseOutput).toContain('[AWS_S3_Bucket_AccessControl]');
|
|
21
|
+
expect(diagnoseOutput).toContain('• Check was not compliant as property [/Resources/NonCompliantBucket/Properties/AccessControl[L:0,C:91]] existed.');
|
|
22
|
+
expect(diagnoseOutput).toContain('Remediation: AccessControl is deprecated');
|
|
23
|
+
}));
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRpYWdub3NlLWd1YXJkLWhvb2stZmFpbHVyZS1kaXNwbGF5cy1ob29rLWRldGFpbHMuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRpYWdub3NlLWd1YXJkLWhvb2stZmFpbHVyZS1kaXNwbGF5cy1ob29rLWRldGFpbHMuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0NBQThEO0FBRTlELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUVqQyxJQUFBLGVBQVMsRUFDUCxxRUFBcUUsRUFDckUsSUFBQSx5QkFBbUIsRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDdEQseUVBQXlFO0lBQ3pFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRTVDLDZFQUE2RTtJQUM3RSw4RUFBOEU7SUFDOUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO1FBQzlELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztRQUMxQixZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhELHVDQUF1QztJQUN2QyxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3RDLENBQUMscUJBQXFCLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUM3RSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FDdkIsQ0FBQztJQUVGLDhFQUE4RTtJQUM5RSx1RUFBdUU7SUFDdkUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNsRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLG1IQUFtSCxDQUFDLENBQUM7SUFDdEosTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTtcblxuaW50ZWdUZXN0KFxuICAnY2RrIGRpYWdub3NlIGFmdGVyIGd1YXJkIGhvb2sgZmFpbHVyZSBkaXNwbGF5cyBob29rIGZhaWx1cmUgZGV0YWlscycsXG4gIHdpdGhTcGVjaWZpY0ZpeHR1cmUoJ2d1YXJkLWhvb2stYXBwJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBEZXBsb3kgdGhlIHNldHVwIHN0YWNrIHdoaWNoIGNyZWF0ZXMgdGhlIEd1YXJkIEhvb2sgdmlhIENsb3VkRm9ybWF0aW9uXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2d1YXJkLWhvb2stc2V0dXAnKTtcblxuICAgIC8vIEF0dGVtcHQgdG8gZGVwbG95IHRoZSBub24tY29tcGxpYW50IHN0YWNrOyBpdCBmYWlscyBkdWUgdG8gdGhlIEd1YXJkIEhvb2suXG4gICAgLy8gLS1uby1yb2xsYmFjayBsZWF2ZXMgdGhlIHN0YWNrIGluIENSRUFURV9GQUlMRUQgc28gZGlhZ25vc2UgY2FuIGluc3BlY3QgaXQuXG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2d1YXJkLWhvb2stdGVzdCcsIHtcbiAgICAgIG9wdGlvbnM6IFsnLS1uby1yb2xsYmFjayddLFxuICAgICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgIH0pO1xuICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvQ29udGFpbignQ1JFQVRFX0ZBSUxFRCcpO1xuXG4gICAgLy8gUnVuIGNkayBkaWFnbm9zZSBvbiB0aGUgZmFpbGVkIHN0YWNrXG4gICAgY29uc3QgZGlhZ25vc2VPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhcbiAgICAgIFsnLS11bnN0YWJsZT1kaWFnbm9zZScsICdkaWFnbm9zZScsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnZ3VhcmQtaG9vay10ZXN0JyldLFxuICAgICAgeyBhbGxvd0VyckV4aXQ6IHRydWUgfSxcbiAgICApO1xuXG4gICAgLy8gZGlhZ25vc2UgaGFzIG5vIGxpdmUgYWN0aXZpdHkgc3RyZWFtLCBzbyB0aGUgaG9vayBmYWlsdXJlIGRldGFpbHMgbXVzdCBoYXZlXG4gICAgLy8gYmVlbiBmZXRjaGVkIHZpYSB0aGUgR2V0SG9va1Jlc3VsdCBBUEkgYW5kIGF0dGFjaGVkIHRvIHRoZSBkaWFnbm9zaXNcbiAgICBleHBlY3QoZGlhZ25vc2VPdXRwdXQpLnRvQ29udGFpbihcIkhvb2sgJ1ByaXZhdGU6Okd1YXJkOjpUZXN0SG9vaycgZmFpbGVkOiBOb25Db21wbGlhbnQgUnVsZXM6XCIpO1xuICAgIGV4cGVjdChkaWFnbm9zZU91dHB1dCkudG9Db250YWluKCdbQVdTX1MzX0J1Y2tldF9BY2Nlc3NDb250cm9sXScpO1xuICAgIGV4cGVjdChkaWFnbm9zZU91dHB1dCkudG9Db250YWluKCfigKIgQ2hlY2sgd2FzIG5vdCBjb21wbGlhbnQgYXMgcHJvcGVydHkgWy9SZXNvdXJjZXMvTm9uQ29tcGxpYW50QnVja2V0L1Byb3BlcnRpZXMvQWNjZXNzQ29udHJvbFtMOjAsQzo5MV1dIGV4aXN0ZWQuJyk7XG4gICAgZXhwZWN0KGRpYWdub3NlT3V0cHV0KS50b0NvbnRhaW4oJ1JlbWVkaWF0aW9uOiBBY2Nlc3NDb250cm9sIGlzIGRlcHJlY2F0ZWQnKTtcbiAgfSksXG4pO1xuIl19
|
|
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
const fs = __importStar(require("fs"));
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const lib_1 = require("../../../lib");
|
|
39
|
-
const regions_1 = require("../../../lib/regions");
|
|
40
39
|
jest.setTimeout(5 * 60 * 1000);
|
|
41
40
|
(0, lib_1.integTest)('hotswap deployment caches template and uses it for subsequent hotswaps', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
42
41
|
const stackName = 'cc-hotswap';
|
|
@@ -60,7 +59,7 @@ jest.setTimeout(5 * 60 * 1000);
|
|
|
60
59
|
const fullStackName = fixture.fullStackName(stackName);
|
|
61
60
|
const cacheFile = path.join(fixture.integTestDir, 'cdk.out', '.hotswap-cache', `${fullStackName}.json`);
|
|
62
61
|
expect(fs.existsSync(cacheFile)).toBe(true);
|
|
63
|
-
// THEN - second hotswap changes only the
|
|
62
|
+
// THEN - second hotswap changes only the Dashboard (via DYNAMIC_CC_PROPERTY_VALUE_2).
|
|
64
63
|
// If the cache is used, the diff is against the cached template, only 1 resource should be hotswapped.
|
|
65
64
|
const deployOutput = await fixture.cdkDeploy(stackName, {
|
|
66
65
|
options: ['--hotswap'],
|
|
@@ -74,7 +73,7 @@ jest.setTimeout(5 * 60 * 1000);
|
|
|
74
73
|
// should only see one hotswapped message in output
|
|
75
74
|
const hotswapCount = (deployOutput.match(/hotswapped!/g) || []).length;
|
|
76
75
|
expect(hotswapCount).toBe(1);
|
|
77
|
-
}
|
|
76
|
+
}));
|
|
78
77
|
(0, lib_1.integTest)('hotswap cache is invalidated after a full CloudFormation deployment', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
79
78
|
// GIVEN - deploy then hotswap to create cache
|
|
80
79
|
await fixture.cdkDeploy('lambda-hotswap', {
|
|
@@ -103,4 +102,4 @@ jest.setTimeout(5 * 60 * 1000);
|
|
|
103
102
|
// THEN - cache should be invalidated
|
|
104
103
|
expect(fs.existsSync(cacheFile)).toBe(false);
|
|
105
104
|
}));
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1jYWNoZXMtdGVtcGxhdGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1jYWNoZXMtdGVtcGxhdGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBRS9CLElBQUEsZUFBUyxFQUNQLHdFQUF3RSxFQUN4RSxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUM7SUFFL0IsOEJBQThCO0lBQzlCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7UUFDakMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsTUFBTSxFQUFFO1lBQ04seUJBQXlCLEVBQUUsSUFBSTtZQUMvQiwyQkFBMkIsRUFBRSxJQUFJO1NBQ2xDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsZ0VBQWdFO0lBQ2hFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7UUFDakMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3RCLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLE1BQU0sRUFBRTtZQUNOLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsMkJBQTJCLEVBQUUsSUFBSTtTQUNsQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsT0FBTyxDQUFDLENBQUM7SUFDeEcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUMsc0ZBQXNGO0lBQ3RGLHVHQUF1RztJQUN2RyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQ3RELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixVQUFVLEVBQUUsSUFBSTtRQUNoQixNQUFNLEVBQUU7WUFDTix5QkFBeUIsRUFBRSxJQUFJLEVBQUUsK0JBQStCO1lBQ2hFLDJCQUEyQixFQUFFLElBQUk7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxtREFBbUQ7SUFDbkQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2RSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRixJQUFBLGVBQVMsRUFDUCxxRUFBcUUsRUFDckUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsOENBQThDO0lBQzlDLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtRQUN4QyxhQUFhLEVBQUUsS0FBSztRQUNwQixNQUFNLEVBQUU7WUFDTiw2QkFBNkIsRUFBRSxJQUFJO1NBQ3BDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO1FBQ3hDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsS0FBSztRQUNwQixNQUFNLEVBQUU7WUFDTiw2QkFBNkIsRUFBRSxJQUFJO1NBQ3BDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxTQUFTLE9BQU8sQ0FBQyxDQUFDO0lBQ3BHLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVDLHlCQUF5QjtJQUN6QixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7UUFDeEMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsTUFBTSxFQUFFO1lBQ04sNkJBQTZCLEVBQUUsSUFBSTtTQUNwQztLQUNGLENBQUMsQ0FBQztJQUVILHFDQUFxQztJQUNyQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDUgKiA2MCAqIDEwMDApO1xuXG5pbnRlZ1Rlc3QoXG4gICdob3Rzd2FwIGRlcGxveW1lbnQgY2FjaGVzIHRlbXBsYXRlIGFuZCB1c2VzIGl0IGZvciBzdWJzZXF1ZW50IGhvdHN3YXBzJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ2NjLWhvdHN3YXAnO1xuXG4gICAgLy8gR0lWRU4gLSBpbml0aWFsIGZ1bGwgZGVwbG95XG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koc3RhY2tOYW1lLCB7XG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFOiAndjEnLFxuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFXzI6ICd2MScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTiAtIGZpcnN0IGhvdHN3YXAgY2hhbmdlcyBBTEwgcmVzb3VyY2VzLCBjcmVhdGVzIHRoZSBjYWNoZVxuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KHN0YWNrTmFtZSwge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICd2MicsXG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUVfMjogJ3YyJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmdWxsU3RhY2tOYW1lID0gZml4dHVyZS5mdWxsU3RhY2tOYW1lKHN0YWNrTmFtZSk7XG4gICAgY29uc3QgY2FjaGVGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnY2RrLm91dCcsICcuaG90c3dhcC1jYWNoZScsIGAke2Z1bGxTdGFja05hbWV9Lmpzb25gKTtcbiAgICBleHBlY3QoZnMuZXhpc3RzU3luYyhjYWNoZUZpbGUpKS50b0JlKHRydWUpO1xuXG4gICAgLy8gVEhFTiAtIHNlY29uZCBob3Rzd2FwIGNoYW5nZXMgb25seSB0aGUgRGFzaGJvYXJkICh2aWEgRFlOQU1JQ19DQ19QUk9QRVJUWV9WQUxVRV8yKS5cbiAgICAvLyBJZiB0aGUgY2FjaGUgaXMgdXNlZCwgdGhlIGRpZmYgaXMgYWdhaW5zdCB0aGUgY2FjaGVkIHRlbXBsYXRlLCBvbmx5IDEgcmVzb3VyY2Ugc2hvdWxkIGJlIGhvdHN3YXBwZWQuXG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koc3RhY2tOYW1lLCB7XG4gICAgICBvcHRpb25zOiBbJy0taG90c3dhcCddLFxuICAgICAgY2FwdHVyZVN0ZGVycjogdHJ1ZSxcbiAgICAgIG9ubHlTdGRlcnI6IHRydWUsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRFlOQU1JQ19DQ19QUk9QRVJUWV9WQUxVRTogJ3YyJywgLy8gdW5jaGFuZ2VkIGZyb20gZmlyc3QgaG90c3dhcFxuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFXzI6ICd2MycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gc2hvdWxkIG9ubHkgc2VlIG9uZSBob3Rzd2FwcGVkIG1lc3NhZ2UgaW4gb3V0cHV0XG4gICAgY29uc3QgaG90c3dhcENvdW50ID0gKGRlcGxveU91dHB1dC5tYXRjaCgvaG90c3dhcHBlZCEvZykgfHwgW10pLmxlbmd0aDtcbiAgICBleHBlY3QoaG90c3dhcENvdW50KS50b0JlKDEpO1xuICB9KSxcbik7XG5cbmludGVnVGVzdChcbiAgJ2hvdHN3YXAgY2FjaGUgaXMgaW52YWxpZGF0ZWQgYWZ0ZXIgYSBmdWxsIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBHSVZFTiAtIGRlcGxveSB0aGVuIGhvdHN3YXAgdG8gY3JlYXRlIGNhY2hlXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2xhbWJkYS1ob3Rzd2FwJywge1xuICAgICAgY2FwdHVyZVN0ZGVycjogZmFsc2UsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRFlOQU1JQ19MQU1CREFfUFJPUEVSVFlfVkFMVUU6ICd2MScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2xhbWJkYS1ob3Rzd2FwJywge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfTEFNQkRBX1BST1BFUlRZX1ZBTFVFOiAndjInLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnbGFtYmRhLWhvdHN3YXAnKTtcbiAgICBjb25zdCBjYWNoZUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdjZGsub3V0JywgJy5ob3Rzd2FwLWNhY2hlJywgYCR7c3RhY2tOYW1lfS5qc29uYCk7XG4gICAgZXhwZWN0KGZzLmV4aXN0c1N5bmMoY2FjaGVGaWxlKSkudG9CZSh0cnVlKTtcblxuICAgIC8vIFdIRU4gLSBmdWxsIENGTiBkZXBsb3lcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnbGFtYmRhLWhvdHN3YXAnLCB7XG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBEWU5BTUlDX0xBTUJEQV9QUk9QRVJUWV9WQUxVRTogJ3YzJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOIC0gY2FjaGUgc2hvdWxkIGJlIGludmFsaWRhdGVkXG4gICAgZXhwZWN0KGZzLmV4aXN0c1N5bmMoY2FjaGVGaWxlKSkudG9CZShmYWxzZSk7XG4gIH0pLFxuKTtcbiJdfQ==
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
4
4
|
const lib_1 = require("../../../lib");
|
|
5
|
-
const regions_1 = require("../../../lib/regions");
|
|
6
5
|
jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
7
6
|
(0, lib_1.integTest)('hotswap deployment supports CloudControl-based resources with attribute resolution', (0, lib_1.withDefaultFixture)(async (fixture) => {
|
|
8
7
|
// GIVEN
|
|
@@ -26,7 +25,7 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
|
|
|
26
25
|
StackName: fixture.fullStackName(stackName),
|
|
27
26
|
}));
|
|
28
27
|
const queueUrl = response.Stacks?.[0].Outputs?.find((output) => output.OutputKey === 'QueueUrl')?.OutputValue;
|
|
29
|
-
const
|
|
28
|
+
const dashboardName = response.Stacks?.[0].Outputs?.find((output) => output.OutputKey === 'DashboardName')?.OutputValue;
|
|
30
29
|
const ruleName = response.Stacks?.[0].Outputs?.find((output) => output.OutputKey === 'RuleName')?.OutputValue;
|
|
31
30
|
// THEN
|
|
32
31
|
// The deployment should not trigger a full deployment, thus the stack's status must remain
|
|
@@ -36,7 +35,7 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
|
|
|
36
35
|
expect(deployOutput).toMatch(/hotswapped!/);
|
|
37
36
|
// Verify all three CCAPI-based resources were hotswapped
|
|
38
37
|
expect(queueUrl).toBeDefined();
|
|
39
|
-
expect(
|
|
38
|
+
expect(dashboardName).toBeDefined();
|
|
40
39
|
expect(ruleName).toBeDefined();
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
}));
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1zdXBwb3J0cy1jbG91ZGNvbnRyb2wtYmFzZWQtcmVzb3VyY2VzLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1ob3Rzd2FwLWRlcGxveW1lbnQtc3VwcG9ydHMtY2xvdWRjb250cm9sLWJhc2VkLXJlc291cmNlcy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFBdUU7QUFDdkUsc0NBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCxvRkFBb0YsRUFDcEYsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsUUFBUTtJQUNSLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztJQUMvQixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQ2pDLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLE1BQU0sRUFBRTtZQUNOLHlCQUF5QixFQUFFLGdCQUFnQjtTQUM1QztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQ3RELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixVQUFVLEVBQUUsSUFBSTtRQUNoQixNQUFNLEVBQUU7WUFDTix5QkFBeUIsRUFBRSxXQUFXO1NBQ3ZDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BELElBQUksNkNBQXFCLENBQUM7UUFDeEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO0tBQzVDLENBQUMsQ0FDSCxDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBQzlHLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUN4SCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUMsRUFBRSxXQUFXLENBQUM7SUFFOUcsT0FBTztJQUVQLDJGQUEyRjtJQUMzRixvQkFBb0I7SUFDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSwwQkFBMEI7SUFDMUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1Qyx5REFBeUQ7SUFDekQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ2hvdHN3YXAgZGVwbG95bWVudCBzdXBwb3J0cyBDbG91ZENvbnRyb2wtYmFzZWQgcmVzb3VyY2VzIHdpdGggYXR0cmlidXRlIHJlc29sdXRpb24nLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrTmFtZSA9ICdjYy1ob3Rzd2FwJztcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveShzdGFja05hbWUsIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICdvcmlnaW5hbCB2YWx1ZScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KHN0YWNrTmFtZSwge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IHRydWUsXG4gICAgICBvbmx5U3RkZXJyOiB0cnVlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICduZXcgdmFsdWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZml4dHVyZS5hd3MuY2xvdWRGb3JtYXRpb24uc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgICBTdGFja05hbWU6IGZpeHR1cmUuZnVsbFN0YWNrTmFtZShzdGFja05hbWUpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IHF1ZXVlVXJsID0gcmVzcG9uc2UuU3RhY2tzPy5bMF0uT3V0cHV0cz8uZmluZCgob3V0cHV0KSA9PiBvdXRwdXQuT3V0cHV0S2V5ID09PSAnUXVldWVVcmwnKT8uT3V0cHV0VmFsdWU7XG4gICAgY29uc3QgZGFzaGJvYXJkTmFtZSA9IHJlc3BvbnNlLlN0YWNrcz8uWzBdLk91dHB1dHM/LmZpbmQoKG91dHB1dCkgPT4gb3V0cHV0Lk91dHB1dEtleSA9PT0gJ0Rhc2hib2FyZE5hbWUnKT8uT3V0cHV0VmFsdWU7XG4gICAgY29uc3QgcnVsZU5hbWUgPSByZXNwb25zZS5TdGFja3M/LlswXS5PdXRwdXRzPy5maW5kKChvdXRwdXQpID0+IG91dHB1dC5PdXRwdXRLZXkgPT09ICdSdWxlTmFtZScpPy5PdXRwdXRWYWx1ZTtcblxuICAgIC8vIFRIRU5cblxuICAgIC8vIFRoZSBkZXBsb3ltZW50IHNob3VsZCBub3QgdHJpZ2dlciBhIGZ1bGwgZGVwbG95bWVudCwgdGh1cyB0aGUgc3RhY2sncyBzdGF0dXMgbXVzdCByZW1haW5cbiAgICAvLyBcIkNSRUFURV9DT01QTEVURVwiXG4gICAgZXhwZWN0KHJlc3BvbnNlLlN0YWNrcz8uWzBdLlN0YWNrU3RhdHVzKS50b0VxdWFsKCdDUkVBVEVfQ09NUExFVEUnKTtcbiAgICAvLyBWZXJpZnkgaG90c3dhcCB3YXMgdXNlZFxuICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvTWF0Y2goL2hvdHN3YXBwZWQhLyk7XG4gICAgLy8gVmVyaWZ5IGFsbCB0aHJlZSBDQ0FQSS1iYXNlZCByZXNvdXJjZXMgd2VyZSBob3Rzd2FwcGVkXG4gICAgZXhwZWN0KHF1ZXVlVXJsKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChkYXNoYm9hcmROYW1lKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChydWxlTmFtZSkudG9CZURlZmluZWQoKTtcbiAgfSksXG4pO1xuIl19
|
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
const fs_1 = require("fs");
|
|
37
37
|
const os = __importStar(require("os"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
|
+
const aws_1 = require("../../../lib/aws");
|
|
39
40
|
const integ_test_1 = require("../../../lib/integ-test");
|
|
40
41
|
const proxy_1 = require("../../../lib/proxy");
|
|
41
42
|
const with_cdk_app_1 = require("../../../lib/with-cdk-app");
|
|
@@ -77,7 +78,8 @@ async function runInIsolatedContainer(fixture, pathsToMount, testCommands) {
|
|
|
77
78
|
await fixture.shell([
|
|
78
79
|
docker, 'run', '--net=bridge', '--rm',
|
|
79
80
|
...pathsToMount.flatMap(p => ['-v', `${p}:${p}`]),
|
|
80
|
-
|
|
81
|
+
// Pass credentials by name only
|
|
82
|
+
...['HOME', ...aws_1.CREDENTIAL_ENV_VARS].flatMap(e => ['-e', e]),
|
|
81
83
|
'-w', fixture.integTestDir,
|
|
82
84
|
'--cap-add=NET_ADMIN',
|
|
83
85
|
'public.ecr.aws/ubuntu/ubuntu:24.04_stable',
|
|
@@ -150,7 +152,10 @@ function isolatedDockerCommands(proxyPort, caBundlePath) {
|
|
|
150
152
|
];
|
|
151
153
|
}
|
|
152
154
|
function renderEnv(env) {
|
|
153
|
-
return Object.entries(env)
|
|
155
|
+
return Object.entries(env)
|
|
156
|
+
.filter(([k, v]) => v && !aws_1.CREDENTIAL_ENV_VARS.includes(k))
|
|
157
|
+
.map(([k, v]) => `${k}='${v}'`)
|
|
158
|
+
.join(' ');
|
|
154
159
|
}
|
|
155
160
|
/**
|
|
156
161
|
* Find a broadly mountable parent of the given directory
|
|
@@ -176,4 +181,4 @@ function findMountableParent(dir) {
|
|
|
176
181
|
}
|
|
177
182
|
return dir;
|
|
178
183
|
}
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJveHkuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkJBQW9DO0FBQ3BDLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0Isd0RBQW9EO0FBQ3BELDhDQUFzRDtBQUV0RCw0REFBK0Q7QUFFL0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDO0FBRWxELElBQUEsc0JBQVMsRUFDUCxvREFBb0QsRUFDcEQsSUFBQSxpQ0FBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsd0VBQXdFO0lBQ3hFLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuRSxJQUFJLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU5QywwQ0FBMEM7SUFDMUMsTUFBTSxRQUFRLEdBQUc7UUFDZixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxXQUFXLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSztLQUNoSCxDQUFDO0lBRUYsTUFBTSxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM1RCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBRUYsS0FBSyxVQUFVLHNCQUFzQixDQUFDLE9BQW9CLEVBQUUsWUFBc0IsRUFBRSxZQUFzQjtJQUN4RyxZQUFZLENBQUMsSUFBSSxDQUNmLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJ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QyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCB9IGZyb20gJy4uLy4uLy4uL2xpYi9pbnRlZy10ZXN0JztcbmltcG9ydCB7IHN0YXJ0UHJveHlTZXJ2ZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvcHJveHknO1xuaW1wb3J0IHR5cGUgeyBUZXN0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYi93aXRoLWNkay1hcHAnO1xuaW1wb3J0IHsgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliL3dpdGgtY2RrLWFwcCc7XG5cbmNvbnN0IGRvY2tlciA9IHByb2Nlc3MuZW52LkNES19ET0NLRVIgPz8gJ2RvY2tlcic7XG5cbmludGVnVGVzdChcbiAgJ2FsbCBjYWxscyBmcm9tIGlzb2xhdGVkIGNvbnRhaW5lciBnbyB0aHJvdWdoIHByb3h5JyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gRmluZCB0aGUgJ2NkaycgY29tbWFuZCBhbmQgbWFrZSBzdXJlIGl0IGlzIG1vdW50ZWQgaW50byB0aGUgY29udGFpbmVyXG4gICAgY29uc3QgY2RrRnVsbHBhdGggPSAoYXdhaXQgZml4dHVyZS5zaGVsbChbJ3doaWNoJywgJ2NkayddKSkudHJpbSgpO1xuICAgIGxldCBjZGtUb3AgPSBmaW5kTW91bnRhYmxlUGFyZW50KGNka0Z1bGxwYXRoKTtcblxuICAgIC8vIFJ1biBhICdjZGsgZGVwbG95JyBpbnNpZGUgdGhlIGNvbnRhaW5lclxuICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgYGVudiAke3JlbmRlckVudihmaXh0dXJlLmNka1NoZWxsRW52KCkpfSAke2Nka0Z1bGxwYXRofSAke2ZpeHR1cmUuY2RrRGVwbG95Q29tbWFuZExpbmUoJ3Rlc3QtMicpLmpvaW4oJyAnKX0gLXZgLFxuICAgIF07XG5cbiAgICBhd2FpdCBydW5Jbklzb2xhdGVkQ29udGFpbmVyKGZpeHR1cmUsIFtjZGtUb3BdLCBjb21tYW5kcyk7XG4gIH0pLFxuKTtcblxuYXN5bmMgZnVuY3Rpb24gcnVuSW5Jc29sYXRlZENvbnRhaW5lcihmaXh0dXJlOiBUZXN0Rml4dHVyZSwgcGF0aHNUb01vdW50OiBzdHJpbmdbXSwgdGVzdENvbW1hbmRzOiBzdHJpbmdbXSkge1xuICBwYXRoc1RvTW91bnQucHVzaChcbiAgICBgJHtwcm9jZXNzLmVudi5IT01FfWAsXG4gICAgZml4dHVyZS5pbnRlZ1Rlc3REaXIsXG4gICk7XG5cbiAgLy8gUmVzb2x2ZSBjcmVkZW50aWFsIHByb3ZpZGVyIHRvIGFuIGFjY2VzcyBrZXkgdGhhdCB3ZSBjYW4gcGFzcyBpbnRvIHRoZSBjb250YWluZXJcbiAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBmaXh0dXJlLmF3cy5jcmVkZW50aWFscygpO1xuXG4gIGNvbnN0IHByb3h5ID0gYXdhaXQgc3RhcnRQcm94eVNlcnZlcihmaXh0dXJlLmludGVnVGVzdERpcik7XG4gIHRyeSB7XG4gICAgY29uc3QgcHJveHlQb3J0ID0gcHJveHkucG9ydDtcblxuICAgIGNvbnN0IHNldHVwQ29tbWFuZHMgPSBbXG4gICAgICAnYXB0LWdldCB1cGRhdGUgLXFxJyxcbiAgICAgICdhcHQtZ2V0IGluc3RhbGwgLXFxeSBub2RlanMgPiAvZGV2L251bGwnLFxuICAgICAgLi4uaXNvbGF0ZWREb2NrZXJDb21tYW5kcyhwcm94eVBvcnQsIHByb3h5LmNlcnRQYXRoKSxcbiAgICBdO1xuXG4gICAgY29uc3Qgc2NyaXB0TmFtZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ3NjcmlwdC5zaCcpO1xuXG4gICAgLy8gV3JpdGUgYSBzY3JpcHQgZmlsZVxuICAgIGF3YWl0IGZzLndyaXRlRmlsZShzY3JpcHROYW1lLCBbXG4gICAgICAnIyEvYmluL2Jhc2gnLFxuICAgICAgJ3NldCAteCcsXG4gICAgICAnc2V0IC1ldScsXG4gICAgICAuLi5zZXR1cENvbW1hbmRzLFxuICAgICAgLi4udGVzdENvbW1hbmRzLFxuICAgIF0uam9pbignXFxuJyksICd1dGYtOCcpO1xuXG4gICAgYXdhaXQgZnMuY2htb2Qoc2NyaXB0TmFtZSwgMG83NTUpO1xuXG4gICAgYXdhaXQgZml4dHVyZS5lY3JQdWJsaWNMb2dpbigpO1xuXG4gICAgLy8gUnVuIGNvbW1hbmRzIGluIGEgRG9ja2VyIHNoZWxsXG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbXG4gICAgICBkb2NrZXIsICdydW4nLCAnLS1uZXQ9YnJpZGdlJywgJy0tcm0nLFxuICAgICAgLi4ucGF0aHNUb01vdW50LmZsYXRNYXAocCA9PiBbJy12JywgYCR7cH06JHtwfWBdKSxcbiAgICAgIC4uLlsnSE9NRScsICdBV1NfQUNDRVNTX0tFWV9JRCcsICdBV1NfU0VDUkVUX0FDQ0VTU19LRVknLCAnQVdTX1NFU1NJT05fVE9LRU4nXS5mbGF0TWFwKGUgPT4gWyctZScsIGVdKSxcbiAgICAgICctdycsIGZpeHR1cmUuaW50ZWdUZXN0RGlyLFxuICAgICAgJy0tY2FwLWFkZD1ORVRfQURNSU4nLFxuICAgICAgJ3B1YmxpYy5lY3IuYXdzL3VidW50dS91YnVudHU6MjQuMDRfc3RhYmxlJyxcbiAgICAgIGAke3NjcmlwdE5hbWV9YCxcbiAgICBdLCB7XG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgQVdTX0FDQ0VTU19LRVlfSUQ6IGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkLFxuICAgICAgICBBV1NfU0VDUkVUX0FDQ0VTU19LRVk6IGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgQVdTX1NFU1NJT05fVE9LRU46IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgcHJveHkuc3RvcCgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBjb21tYW5kcyBuZWNlc3NhcnkgdG8gaXNvbGF0ZSB0aGUgaW5zaWRlIG9mIHRoZSBjb250YWluZXIgZnJvbSB0aGUgaW50ZXJuZXQsXG4gKiBleGNlcHQgYnkgZ29pbmcgdGhyb3VnaCB0aGUgcHJveHlcbiAqL1xuZnVuY3Rpb24gaXNvbGF0ZWREb2NrZXJDb21tYW5kcyhwcm94eVBvcnQ6IG51bWJlciwgY2FCdW5kbGVQYXRoOiBzdHJpbmcpIHtcbiAgbGV0IGRlZmF1bHRCcmlkZ2VJcCA9ICcxNzIuMTcuMC4xJztcblxuICAvLyBUaGUgaG9zdCdzIGRlZmF1bHQgSVAgaXMgZGlmZmVyZW50IG9uIENvZGVCdWlsZCB0aGFuIGl0IGlzIG9uIG90aGVyIERvY2tlciBzeXN0ZW1zLlxuICBpZiAocHJvY2Vzcy5lbnYuQ09ERUJVSUxEX0JVSUxEX0FSTikge1xuICAgIGRlZmF1bHRCcmlkZ2VJcCA9ICcxNzIuMTguMC4xJztcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgJ2VjaG8gV29ya2luZy4uLicsXG4gICAgJ2FwdC1nZXQgaW5zdGFsbCAtcXF5IGN1cmwgbmV0LXRvb2xzIGlwdXRpbHMtcGluZyBkbnN1dGlscyBpcHRhYmxlcyA+IC9kZXYvbnVsbCcsXG4gICAgJycsXG4gICAgLy8gTG9va2luZyB1cCBgaG9zdC5kb2NrZXIuaW50ZXJuYWxgIGlzIG5lY2Vzc2FyeSBvbiBNYWNPUyBGaW5jaCBhbmQgRG9ja2VyIERlc2t0b3BcbiAgICAvLyBvbiBNYWMuIFRoZSBtYWdpYyBJUCBhZGRyZXNzIGlzIG5lY2Vzc2FyeSBvbiBDb2RlQnVpbGQgYW5kIEdpdEh1YiBBY3Rpb25zLlxuICAgIC8vXG4gICAgLy8gSSB0cmllZCBgLS1hZGQtaG9zdD1ob3N0LmRvY2tlci5pbnRlcm5hbDpob3N0LWdhdGV3YXlgIG9uIHRoZSBMaW51eGVzIGJ1dFxuICAgIC8vIGl0IGRvZXNuJ3QgY2hhbmdlIGFueXRoaW5nIG9uIGVpdGhlciBHSEEgb3IgQ29kZUJ1aWxkLCBzbyB3ZSdyZSBsZWZ0IHdpdGggdGhpc1xuICAgIC8vIGJhY2t1cCBzb2x1dGlvbi5cbiAgICAnZ2F0ZXdheT0kKGRpZyArc2hvcnQgaG9zdC5kb2NrZXIuaW50ZXJuYWwpJyxcbiAgICAnaWYgW1sgLXogXCIkZ2F0ZXdheVwiIF1dOyB0aGVuJyxcbiAgICBgICBnYXRld2F5PSR7ZGVmYXVsdEJyaWRnZUlwfWAsXG4gICAgJ2ZpJyxcbiAgICAnJyxcbiAgICAnIyBTb21lIGlwdGFibGVzIG1hbmlwdWxhdGlvbjsgdGhlcmUgbWlnaHQgYmUgdW5uZWNlc3NhcnkgY29tbWFuZHMgaW4gaGVyZSwgbm90IGFuIGV4cGVydCcsXG4gICAgJ2lwdGFibGVzIC1GJyxcbiAgICAnaXB0YWJsZXMgLVgnLFxuICAgICdpcHRhYmxlcyAtUCBJTlBVVCBEUk9QJyxcbiAgICAnaXB0YWJsZXMgLVAgT1VUUFVUIERST1AnLFxuICAgICdpcHRhYmxlcyAtUCBGT1JXQVJEIERST1AnLFxuICAgICdpcHRhYmxlcyAtQSBJTlBVVCAtaSBsbyAtaiBBQ0NFUFQnLFxuICAgICdpcHRhYmxlcyAtQSBPVVRQVVQgLW8gbG8gLWogQUNDRVBUJyxcbiAgICAnaXB0YWJsZXMgLUEgT1VUUFVUIC1kICRnYXRld2F5IC1qIEFDQ0VQVCcsXG4gICAgJ2lwdGFibGVzIC1BIElOUFVUIC1zICRnYXRld2F5IC1qIEFDQ0VQVCcsXG4gICAgJycsXG4gICAgJycsXG4gICAgYGlmIFtbICEgLWYgJHtjYUJ1bmRsZVBhdGh9IF1dOyB0aGVuYCxcbiAgICBgICAgIGVjaG8gXCJDb3VsZCBub3QgZmluZCAke2NhQnVuZGxlUGF0aH0sIHRoaXMgd2lsbCBwcm9iYWJseSBub3QgZ28gd2VsbC4gRXhpdGluZy5cIiA+JjJgLFxuICAgICcgICAgZXhpdCAxJyxcbiAgICAnZmknLFxuICAgICcnLFxuICAgICcjIENvbmZpZ3VyZSBhIGJ1bmNoIG9mIHRvb2xzIHRvIHdvcmsgd2l0aCB0aGUgcHJveHknLFxuICAgICdlY2hvIFwiKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXCInLFxuICAgICdlY2hvIFwifCAgRGlyZWN0IG5ldHdvcmsgdHJhZmZpYyBoYXMgYmVlbiBibG9ja2VkLCBldmVyeXRoaW5nIG11c3QgZ28gdGhyb3VnaCB0aGUgcHJveHkuICAgICB8XCInLFxuICAgICdlY2hvIFwiKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXCInLFxuICAgIGBleHBvcnQgSFRUUF9QUk9YWT1odHRwOi8vJGdhdGV3YXk6JHtwcm94eVBvcnR9L2AsXG4gICAgYGV4cG9ydCBIVFRQU19QUk9YWT1odHRwOi8vJGdhdGV3YXk6JHtwcm94eVBvcnR9L2AsXG4gICAgYGV4cG9ydCBOT0RFX0VYVFJBX0NBX0NFUlRTPSR7Y2FCdW5kbGVQYXRofWAsXG4gICAgYGV4cG9ydCBBV1NfQ0FfQlVORExFPSR7Y2FCdW5kbGVQYXRofWAsXG4gICAgYGV4cG9ydCBTU0xfQ0VSVF9GSUxFPSR7Y2FCdW5kbGVQYXRofWAsXG4gICAgJ2VjaG8gXCJBY3F1aXJlOjpodHRwOjpwcm94eSBcXFwiJEhUVFBfUFJPWFlcXFwiO1wiID4+IC9ldGMvYXB0L2FwdC5jb25mLmQvOTVwcm94aWVzJyxcbiAgICAnZWNobyBcIkFjcXVpcmU6Omh0dHBzOjpwcm94eSBcXFwiJEhUVFBTX1BST1hZXFxcIjtcIiA+PiAvZXRjL2FwdC9hcHQuY29uZi5kLzk1cHJveGllcycsXG4gIF07XG59XG5cbmZ1bmN0aW9uIHJlbmRlckVudihlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGVudikuZmlsdGVyKChbXywgdl0pID0+IHYpLm1hcCgoW2ssIHZdKSA9PiBgJHtrfT0nJHt2fSdgKS5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogRmluZCBhIGJyb2FkbHkgbW91bnRhYmxlIHBhcmVudCBvZiB0aGUgZ2l2ZW4gZGlyZWN0b3J5XG4gKlxuICogV2UgZG9uJ3Qgd2FudCB0byBqdXN0IG1vdW50IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5LCBiZWNhdXNlXG4gKiBpdCBjb3VsZCBlbmQgdXAgYmVpbmcgYC92YXJgICh0b3AtbGV2ZWwgZGlyIG9mIHRtcGRpciBvbiBNYWMpLlxuICovXG5mdW5jdGlvbiBmaW5kTW91bnRhYmxlUGFyZW50KGRpcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IFtcbiAgICBvcy50bXBkaXIoKSxcbiAgICBwcm9jZXNzLmVudi5UTVBESVIsXG4gICAgcHJvY2Vzcy5lbnYuSE9NRSxcbiAgXTtcbiAgZm9yIChjb25zdCBjYW5kIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBpZiAoY2FuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoZGlyLnN0YXJ0c1dpdGgoY2FuZCkpIHtcbiAgICAgIGNvbnN0IHN1ZmZpeCA9IGRpci5zdWJzdHJpbmcoY2FuZC5sZW5ndGgpO1xuICAgICAgY29uc3QgZmlyc3RDaGlsZERpciA9IHN1ZmZpeC5zcGxpdCgnLycpWzBdO1xuXG4gICAgICByZXR1cm4gcGF0aC5qb2luKGNhbmQsIGZpcnN0Q2hpbGREaXIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGlyO1xufVxuIl19
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJveHkuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkJBQW9DO0FBQ3BDLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsMENBQXVEO0FBQ3ZELHdEQUFvRDtBQUNwRCw4Q0FBc0Q7QUFFdEQsNERBQStEO0FBRS9ELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQztBQUVsRCxJQUFBLHNCQUFTLEVBQ1Asb0RBQW9ELEVBQ3BELElBQUEsaUNBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLHdFQUF3RTtJQUN4RSxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkUsSUFBSSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFOUMsMENBQTBDO0lBQzFDLE1BQU0sUUFBUSxHQUFHO1FBQ2YsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksV0FBVyxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUs7S0FDaEgsQ0FBQztJQUVGLE1BQU0sc0JBQXNCLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUVGLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxPQUFvQixFQUFFLFlBQXNCLEVBQUUsWUFBc0I7SUFDeEcsWUFBWSxDQUFDLElBQUksQ0FDZixHQUFHLE9BQU8sQ0FBQyxH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QyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENSRURFTlRJQUxfRU5WX1ZBUlMgfSBmcm9tICcuLi8uLi8uLi9saWIvYXdzJztcbmltcG9ydCB7IGludGVnVGVzdCB9IGZyb20gJy4uLy4uLy4uL2xpYi9pbnRlZy10ZXN0JztcbmltcG9ydCB7IHN0YXJ0UHJveHlTZXJ2ZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvcHJveHknO1xuaW1wb3J0IHR5cGUgeyBUZXN0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYi93aXRoLWNkay1hcHAnO1xuaW1wb3J0IHsgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliL3dpdGgtY2RrLWFwcCc7XG5cbmNvbnN0IGRvY2tlciA9IHByb2Nlc3MuZW52LkNES19ET0NLRVIgPz8gJ2RvY2tlcic7XG5cbmludGVnVGVzdChcbiAgJ2FsbCBjYWxscyBmcm9tIGlzb2xhdGVkIGNvbnRhaW5lciBnbyB0aHJvdWdoIHByb3h5JyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gRmluZCB0aGUgJ2NkaycgY29tbWFuZCBhbmQgbWFrZSBzdXJlIGl0IGlzIG1vdW50ZWQgaW50byB0aGUgY29udGFpbmVyXG4gICAgY29uc3QgY2RrRnVsbHBhdGggPSAoYXdhaXQgZml4dHVyZS5zaGVsbChbJ3doaWNoJywgJ2NkayddKSkudHJpbSgpO1xuICAgIGxldCBjZGtUb3AgPSBmaW5kTW91bnRhYmxlUGFyZW50KGNka0Z1bGxwYXRoKTtcblxuICAgIC8vIFJ1biBhICdjZGsgZGVwbG95JyBpbnNpZGUgdGhlIGNvbnRhaW5lclxuICAgIGNvbnN0IGNvbW1hbmRzID0gW1xuICAgICAgYGVudiAke3JlbmRlckVudihmaXh0dXJlLmNka1NoZWxsRW52KCkpfSAke2Nka0Z1bGxwYXRofSAke2ZpeHR1cmUuY2RrRGVwbG95Q29tbWFuZExpbmUoJ3Rlc3QtMicpLmpvaW4oJyAnKX0gLXZgLFxuICAgIF07XG5cbiAgICBhd2FpdCBydW5Jbklzb2xhdGVkQ29udGFpbmVyKGZpeHR1cmUsIFtjZGtUb3BdLCBjb21tYW5kcyk7XG4gIH0pLFxuKTtcblxuYXN5bmMgZnVuY3Rpb24gcnVuSW5Jc29sYXRlZENvbnRhaW5lcihmaXh0dXJlOiBUZXN0Rml4dHVyZSwgcGF0aHNUb01vdW50OiBzdHJpbmdbXSwgdGVzdENvbW1hbmRzOiBzdHJpbmdbXSkge1xuICBwYXRoc1RvTW91bnQucHVzaChcbiAgICBgJHtwcm9jZXNzLmVudi5IT01FfWAsXG4gICAgZml4dHVyZS5pbnRlZ1Rlc3REaXIsXG4gICk7XG5cbiAgLy8gUmVzb2x2ZSBjcmVkZW50aWFsIHByb3ZpZGVyIHRvIGFuIGFjY2VzcyBrZXkgdGhhdCB3ZSBjYW4gcGFzcyBpbnRvIHRoZSBjb250YWluZXJcbiAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCBmaXh0dXJlLmF3cy5jcmVkZW50aWFscygpO1xuXG4gIGNvbnN0IHByb3h5ID0gYXdhaXQgc3RhcnRQcm94eVNlcnZlcihmaXh0dXJlLmludGVnVGVzdERpcik7XG4gIHRyeSB7XG4gICAgY29uc3QgcHJveHlQb3J0ID0gcHJveHkucG9ydDtcblxuICAgIGNvbnN0IHNldHVwQ29tbWFuZHMgPSBbXG4gICAgICAnYXB0LWdldCB1cGRhdGUgLXFxJyxcbiAgICAgICdhcHQtZ2V0IGluc3RhbGwgLXFxeSBub2RlanMgPiAvZGV2L251bGwnLFxuICAgICAgLi4uaXNvbGF0ZWREb2NrZXJDb21tYW5kcyhwcm94eVBvcnQsIHByb3h5LmNlcnRQYXRoKSxcbiAgICBdO1xuXG4gICAgY29uc3Qgc2NyaXB0TmFtZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ3NjcmlwdC5zaCcpO1xuXG4gICAgLy8gV3JpdGUgYSBzY3JpcHQgZmlsZVxuICAgIGF3YWl0IGZzLndyaXRlRmlsZShzY3JpcHROYW1lLCBbXG4gICAgICAnIyEvYmluL2Jhc2gnLFxuICAgICAgJ3NldCAteCcsXG4gICAgICAnc2V0IC1ldScsXG4gICAgICAuLi5zZXR1cENvbW1hbmRzLFxuICAgICAgLi4udGVzdENvbW1hbmRzLFxuICAgIF0uam9pbignXFxuJyksICd1dGYtOCcpO1xuXG4gICAgYXdhaXQgZnMuY2htb2Qoc2NyaXB0TmFtZSwgMG83NTUpO1xuXG4gICAgYXdhaXQgZml4dHVyZS5lY3JQdWJsaWNMb2dpbigpO1xuXG4gICAgLy8gUnVuIGNvbW1hbmRzIGluIGEgRG9ja2VyIHNoZWxsXG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbXG4gICAgICBkb2NrZXIsICdydW4nLCAnLS1uZXQ9YnJpZGdlJywgJy0tcm0nLFxuICAgICAgLi4ucGF0aHNUb01vdW50LmZsYXRNYXAocCA9PiBbJy12JywgYCR7cH06JHtwfWBdKSxcbiAgICAgIC8vIFBhc3MgY3JlZGVudGlhbHMgYnkgbmFtZSBvbmx5XG4gICAgICAuLi5bJ0hPTUUnLCAuLi5DUkVERU5USUFMX0VOVl9WQVJTXS5mbGF0TWFwKGUgPT4gWyctZScsIGVdKSxcbiAgICAgICctdycsIGZpeHR1cmUuaW50ZWdUZXN0RGlyLFxuICAgICAgJy0tY2FwLWFkZD1ORVRfQURNSU4nLFxuICAgICAgJ3B1YmxpYy5lY3IuYXdzL3VidW50dS91YnVudHU6MjQuMDRfc3RhYmxlJyxcbiAgICAgIGAke3NjcmlwdE5hbWV9YCxcbiAgICBdLCB7XG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgQVdTX0FDQ0VTU19LRVlfSUQ6IGNyZWRlbnRpYWxzLmFjY2Vzc0tleUlkLFxuICAgICAgICBBV1NfU0VDUkVUX0FDQ0VTU19LRVk6IGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSxcbiAgICAgICAgQVdTX1NFU1NJT05fVE9LRU46IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgcHJveHkuc3RvcCgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBjb21tYW5kcyBuZWNlc3NhcnkgdG8gaXNvbGF0ZSB0aGUgaW5zaWRlIG9mIHRoZSBjb250YWluZXIgZnJvbSB0aGUgaW50ZXJuZXQsXG4gKiBleGNlcHQgYnkgZ29pbmcgdGhyb3VnaCB0aGUgcHJveHlcbiAqL1xuZnVuY3Rpb24gaXNvbGF0ZWREb2NrZXJDb21tYW5kcyhwcm94eVBvcnQ6IG51bWJlciwgY2FCdW5kbGVQYXRoOiBzdHJpbmcpIHtcbiAgbGV0IGRlZmF1bHRCcmlkZ2VJcCA9ICcxNzIuMTcuMC4xJztcblxuICAvLyBUaGUgaG9zdCdzIGRlZmF1bHQgSVAgaXMgZGlmZmVyZW50IG9uIENvZGVCdWlsZCB0aGFuIGl0IGlzIG9uIG90aGVyIERvY2tlciBzeXN0ZW1zLlxuICBpZiAocHJvY2Vzcy5lbnYuQ09ERUJVSUxEX0JVSUxEX0FSTikge1xuICAgIGRlZmF1bHRCcmlkZ2VJcCA9ICcxNzIuMTguMC4xJztcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgJ2VjaG8gV29ya2luZy4uLicsXG4gICAgJ2FwdC1nZXQgaW5zdGFsbCAtcXF5IGN1cmwgbmV0LXRvb2xzIGlwdXRpbHMtcGluZyBkbnN1dGlscyBpcHRhYmxlcyA+IC9kZXYvbnVsbCcsXG4gICAgJycsXG4gICAgLy8gTG9va2luZyB1cCBgaG9zdC5kb2NrZXIuaW50ZXJuYWxgIGlzIG5lY2Vzc2FyeSBvbiBNYWNPUyBGaW5jaCBhbmQgRG9ja2VyIERlc2t0b3BcbiAgICAvLyBvbiBNYWMuIFRoZSBtYWdpYyBJUCBhZGRyZXNzIGlzIG5lY2Vzc2FyeSBvbiBDb2RlQnVpbGQgYW5kIEdpdEh1YiBBY3Rpb25zLlxuICAgIC8vXG4gICAgLy8gSSB0cmllZCBgLS1hZGQtaG9zdD1ob3N0LmRvY2tlci5pbnRlcm5hbDpob3N0LWdhdGV3YXlgIG9uIHRoZSBMaW51eGVzIGJ1dFxuICAgIC8vIGl0IGRvZXNuJ3QgY2hhbmdlIGFueXRoaW5nIG9uIGVpdGhlciBHSEEgb3IgQ29kZUJ1aWxkLCBzbyB3ZSdyZSBsZWZ0IHdpdGggdGhpc1xuICAgIC8vIGJhY2t1cCBzb2x1dGlvbi5cbiAgICAnZ2F0ZXdheT0kKGRpZyArc2hvcnQgaG9zdC5kb2NrZXIuaW50ZXJuYWwpJyxcbiAgICAnaWYgW1sgLXogXCIkZ2F0ZXdheVwiIF1dOyB0aGVuJyxcbiAgICBgICBnYXRld2F5PSR7ZGVmYXVsdEJyaWRnZUlwfWAsXG4gICAgJ2ZpJyxcbiAgICAnJyxcbiAgICAnIyBTb21lIGlwdGFibGVzIG1hbmlwdWxhdGlvbjsgdGhlcmUgbWlnaHQgYmUgdW5uZWNlc3NhcnkgY29tbWFuZHMgaW4gaGVyZSwgbm90IGFuIGV4cGVydCcsXG4gICAgJ2lwdGFibGVzIC1GJyxcbiAgICAnaXB0YWJsZXMgLVgnLFxuICAgICdpcHRhYmxlcyAtUCBJTlBVVCBEUk9QJyxcbiAgICAnaXB0YWJsZXMgLVAgT1VUUFVUIERST1AnLFxuICAgICdpcHRhYmxlcyAtUCBGT1JXQVJEIERST1AnLFxuICAgICdpcHRhYmxlcyAtQSBJTlBVVCAtaSBsbyAtaiBBQ0NFUFQnLFxuICAgICdpcHRhYmxlcyAtQSBPVVRQVVQgLW8gbG8gLWogQUNDRVBUJyxcbiAgICAnaXB0YWJsZXMgLUEgT1VUUFVUIC1kICRnYXRld2F5IC1qIEFDQ0VQVCcsXG4gICAgJ2lwdGFibGVzIC1BIElOUFVUIC1zICRnYXRld2F5IC1qIEFDQ0VQVCcsXG4gICAgJycsXG4gICAgJycsXG4gICAgYGlmIFtbICEgLWYgJHtjYUJ1bmRsZVBhdGh9IF1dOyB0aGVuYCxcbiAgICBgICAgIGVjaG8gXCJDb3VsZCBub3QgZmluZCAke2NhQnVuZGxlUGF0aH0sIHRoaXMgd2lsbCBwcm9iYWJseSBub3QgZ28gd2VsbC4gRXhpdGluZy5cIiA+JjJgLFxuICAgICcgICAgZXhpdCAxJyxcbiAgICAnZmknLFxuICAgICcnLFxuICAgICcjIENvbmZpZ3VyZSBhIGJ1bmNoIG9mIHRvb2xzIHRvIHdvcmsgd2l0aCB0aGUgcHJveHknLFxuICAgICdlY2hvIFwiKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXCInLFxuICAgICdlY2hvIFwifCAgRGlyZWN0IG5ldHdvcmsgdHJhZmZpYyBoYXMgYmVlbiBibG9ja2VkLCBldmVyeXRoaW5nIG11c3QgZ28gdGhyb3VnaCB0aGUgcHJveHkuICAgICB8XCInLFxuICAgICdlY2hvIFwiKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXCInLFxuICAgIGBleHBvcnQgSFRUUF9QUk9YWT1odHRwOi8vJGdhdGV3YXk6JHtwcm94eVBvcnR9L2AsXG4gICAgYGV4cG9ydCBIVFRQU19QUk9YWT1odHRwOi8vJGdhdGV3YXk6JHtwcm94eVBvcnR9L2AsXG4gICAgYGV4cG9ydCBOT0RFX0VYVFJBX0NBX0NFUlRTPSR7Y2FCdW5kbGVQYXRofWAsXG4gICAgYGV4cG9ydCBBV1NfQ0FfQlVORExFPSR7Y2FCdW5kbGVQYXRofWAsXG4gICAgYGV4cG9ydCBTU0xfQ0VSVF9GSUxFPSR7Y2FCdW5kbGVQYXRofWAsXG4gICAgJ2VjaG8gXCJBY3F1aXJlOjpodHRwOjpwcm94eSBcXFwiJEhUVFBfUFJPWFlcXFwiO1wiID4+IC9ldGMvYXB0L2FwdC5jb25mLmQvOTVwcm94aWVzJyxcbiAgICAnZWNobyBcIkFjcXVpcmU6Omh0dHBzOjpwcm94eSBcXFwiJEhUVFBTX1BST1hZXFxcIjtcIiA+PiAvZXRjL2FwdC9hcHQuY29uZi5kLzk1cHJveGllcycsXG4gIF07XG59XG5cbmZ1bmN0aW9uIHJlbmRlckVudihlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGVudilcbiAgICAuZmlsdGVyKChbaywgdl0pID0+IHYgJiYgIUNSRURFTlRJQUxfRU5WX1ZBUlMuaW5jbHVkZXMoaykpXG4gICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtrfT0nJHt2fSdgKVxuICAgIC5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogRmluZCBhIGJyb2FkbHkgbW91bnRhYmxlIHBhcmVudCBvZiB0aGUgZ2l2ZW4gZGlyZWN0b3J5XG4gKlxuICogV2UgZG9uJ3Qgd2FudCB0byBqdXN0IG1vdW50IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5LCBiZWNhdXNlXG4gKiBpdCBjb3VsZCBlbmQgdXAgYmVpbmcgYC92YXJgICh0b3AtbGV2ZWwgZGlyIG9mIHRtcGRpciBvbiBNYWMpLlxuICovXG5mdW5jdGlvbiBmaW5kTW91bnRhYmxlUGFyZW50KGRpcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IFtcbiAgICBvcy50bXBkaXIoKSxcbiAgICBwcm9jZXNzLmVudi5UTVBESVIsXG4gICAgcHJvY2Vzcy5lbnYuSE9NRSxcbiAgXTtcbiAgZm9yIChjb25zdCBjYW5kIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBpZiAoY2FuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoZGlyLnN0YXJ0c1dpdGgoY2FuZCkpIHtcbiAgICAgIGNvbnN0IHN1ZmZpeCA9IGRpci5zdWJzdHJpbmcoY2FuZC5sZW5ndGgpO1xuICAgICAgY29uc3QgZmlyc3RDaGlsZERpciA9IHN1ZmZpeC5zcGxpdCgnLycpWzBdO1xuXG4gICAgICByZXR1cm4gcGF0aC5qb2luKGNhbmQsIGZpcnN0Q2hpbGREaXIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGlyO1xufVxuIl19
|