@go-to-k/cdkd 0.302.1 → 0.302.3
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/dist/{asg-provider-BpRcm_UB.js → asg-provider-DCrwgSCZ.js} +27 -9
- package/dist/asg-provider-DCrwgSCZ.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-CYVt2NQR.js → deploy-engine-D9SDE-Pj.js} +359 -4269
- package/dist/deploy-engine-D9SDE-Pj.js.map +1 -0
- package/dist/{iam-policy-targets-CmHNH1DY.js → iam-policy-targets-OtGPguLH.js} +3 -2
- package/dist/{iam-policy-targets-CmHNH1DY.js.map → iam-policy-targets-OtGPguLH.js.map} +1 -1
- package/dist/{iam-role-provider-R1GC6KcT.js → iam-role-provider-Q1sv3tF1.js} +9 -5
- package/dist/iam-role-provider-Q1sv3tF1.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/{neptune-provider-DzTl6-74.js → neptune-provider-DjVgEWGf.js} +121 -11
- package/dist/neptune-provider-DjVgEWGf.js.map +1 -0
- package/dist/{program-CvRs5pV_.js → program-DSbJoNKe.js} +559 -305
- package/dist/program-DSbJoNKe.js.map +1 -0
- package/dist/{provider-classes-B2_u4Fg0.js → provider-classes-CDtquwkU.js} +673 -131
- package/dist/provider-classes-CDtquwkU.js.map +1 -0
- package/dist/{rds-provider-CmKbYAvr.js → rds-provider-ByCpdpUq.js} +208 -42
- package/dist/rds-provider-ByCpdpUq.js.map +1 -0
- package/dist/secret-redaction-BHWS-PZK.js +3937 -0
- package/dist/secret-redaction-BHWS-PZK.js.map +1 -0
- package/dist/{version-CaejipV3.js → version-DDpKuzTw.js} +2 -2
- package/dist/{version-CaejipV3.js.map → version-DDpKuzTw.js.map} +1 -1
- package/package.json +2 -2
- package/dist/asg-provider-BpRcm_UB.js.map +0 -1
- package/dist/deploy-engine-CYVt2NQR.js.map +0 -1
- package/dist/iam-role-provider-R1GC6KcT.js.map +0 -1
- package/dist/neptune-provider-DzTl6-74.js.map +0 -1
- package/dist/program-CvRs5pV_.js.map +0 -1
- package/dist/provider-classes-B2_u4Fg0.js.map +0 -1
- package/dist/rds-provider-CmKbYAvr.js.map +0 -1
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
import { Q as safeMsg, T as generatedNameFor, n as describeAwsFailure, s as getLogger } from "./aws-failure-text-e_ddrDDo.js";
|
|
2
|
-
import { E as assertRegionMatch, F as resolveExplicitPhysicalId, H as observeThenDisableProtection, L as ProtectionFlipRegistry, Mt as markCreatedBeforeFailure, Q as pasteableAwsCommand, Qt as ambientClientDefaults, T as RESOURCE_NOT_FOUND, U as protectionFlipKey, W as rdsFamilyProtectionSite, j as normalizeAwsTagsToCfn, p as withRemovalDefaults, u as clearOnUpdateRemoval, vr as markNonRetryable, w as withoutServerErrorRetries, yn as ProvisioningError, z as deleteWithProtectionCompensation } from "./iam-policy-targets-
|
|
2
|
+
import { E as assertRegionMatch, F as resolveExplicitPhysicalId, H as observeThenDisableProtection, L as ProtectionFlipRegistry, Mt as markCreatedBeforeFailure, Q as pasteableAwsCommand, Qt as ambientClientDefaults, T as RESOURCE_NOT_FOUND, U as protectionFlipKey, W as rdsFamilyProtectionSite, br as wrapMaskedAwsError, j as normalizeAwsTagsToCfn, nr as relayedNameCollision, p as withRemovalDefaults, u as clearOnUpdateRemoval, vr as markNonRetryable, w as withoutServerErrorRetries, xt as maskerOrIdentity, yn as ProvisioningError, yr as markRedactedCause, z as deleteWithProtectionCompensation } from "./iam-policy-targets-OtGPguLH.js";
|
|
3
3
|
import { s as ambientRegion } from "./aws-client-defaults-DBXBcg0J.js";
|
|
4
|
-
import {
|
|
4
|
+
import { Br as stringifyIfAssigned, Ir as refuseMalformedDesiredTags, Pr as planTagDiff, Rr as tagPlanWarning, W as enclosingDeadlineRemainingMs, jr as markDeleteStarted, ni as slowCcOperationTimeoutMs, zr as definedAttributes } from "./deploy-engine-D9SDE-Pj.js";
|
|
5
|
+
import { Tt as dynamicReferenceTokens } from "./secret-redaction-BHWS-PZK.js";
|
|
6
|
+
import { DescribeSecurityGroupsCommand, EC2Client } from "@aws-sdk/client-ec2";
|
|
7
|
+
import { isDeepStrictEqual } from "node:util";
|
|
5
8
|
import { AddTagsToResourceCommand, CreateDBClusterCommand, CreateDBInstanceCommand, CreateDBSubnetGroupCommand, DeleteDBClusterCommand, DeleteDBInstanceCommand, DeleteDBSubnetGroupCommand, DescribeDBClustersCommand, DescribeDBInstancesCommand, DescribeDBSubnetGroupsCommand, DescribeGlobalClustersCommand, ListTagsForResourceCommand, ModifyDBClusterCommand, ModifyDBInstanceCommand, ModifyDBSubnetGroupCommand, RDSClient, RemoveFromGlobalClusterCommand, RemoveTagsFromResourceCommand } from "@aws-sdk/client-rds";
|
|
6
9
|
|
|
7
10
|
//#region src/provisioning/providers/rds-provider.ts
|
|
11
|
+
function propertyChangedForUpdate(key, desired, recorded, context) {
|
|
12
|
+
const changedProperties = context?.changedProperties;
|
|
13
|
+
if (changedProperties !== void 0) return changedProperties.has(key);
|
|
14
|
+
return holdsRecordedStandIn(recorded) || !isDeepStrictEqual(desired, recorded);
|
|
15
|
+
}
|
|
16
|
+
function holdsRecordedStandIn(value) {
|
|
17
|
+
if (typeof value === "string") return value === "***" || dynamicReferenceTokens(value).length > 0;
|
|
18
|
+
if (Array.isArray(value)) return value.some(holdsRecordedStandIn);
|
|
19
|
+
if (value !== null && typeof value === "object") return Object.values(value).some(holdsRecordedStandIn);
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
function masterUserPasswordToSend(properties, previousProperties, context) {
|
|
23
|
+
const desired = properties["MasterUserPassword"];
|
|
24
|
+
if (desired === void 0 || desired === null) return void 0;
|
|
25
|
+
return propertyChangedForUpdate("MasterUserPassword", desired, previousProperties["MasterUserPassword"], context) ? desired : void 0;
|
|
26
|
+
}
|
|
27
|
+
function masterCredentialSettingsChanged(properties, previousProperties, context) {
|
|
28
|
+
return propertyChangedForUpdate("MasterUserPassword", properties["MasterUserPassword"], previousProperties["MasterUserPassword"], context) || propertyChangedForUpdate("ManageMasterUserPassword", properties["ManageMasterUserPassword"], previousProperties["ManageMasterUserPassword"], context) || propertyChangedForUpdate("MasterUserSecret", properties["MasterUserSecret"], previousProperties["MasterUserSecret"], context);
|
|
29
|
+
}
|
|
8
30
|
const RDS_DELETE_WAIT_MS = Math.max(18e5, slowCcOperationTimeoutMs("AWS::RDS::DBCluster", "DELETE"), slowCcOperationTimeoutMs("AWS::RDS::DBInstance", "DELETE"));
|
|
9
31
|
function deleteAutomatedBackupsInput(properties) {
|
|
10
32
|
const value = properties?.["DeleteAutomatedBackups"];
|
|
@@ -35,9 +57,12 @@ var GlobalClusterDetachError = class extends Error {
|
|
|
35
57
|
this.name = "GlobalClusterDetachError";
|
|
36
58
|
}
|
|
37
59
|
};
|
|
60
|
+
const FINAL_SNAPSHOT_SETTLE_WAIT_MS = 9e5;
|
|
61
|
+
const FINAL_SNAPSHOT_COMPENSATION_MARGIN_MS = 6e4;
|
|
38
62
|
var RDSProvider = class {
|
|
39
63
|
rdsClient;
|
|
40
64
|
createClient;
|
|
65
|
+
ec2Client;
|
|
41
66
|
providerRegion;
|
|
42
67
|
logger = getLogger().child("RDSProvider");
|
|
43
68
|
protectionFlips = new ProtectionFlipRegistry();
|
|
@@ -117,24 +142,32 @@ var RDSProvider = class {
|
|
|
117
142
|
}
|
|
118
143
|
return this.rdsClient;
|
|
119
144
|
}
|
|
145
|
+
getEc2Client() {
|
|
146
|
+
if (!this.ec2Client) this.ec2Client = new EC2Client({
|
|
147
|
+
...ambientClientDefaults(),
|
|
148
|
+
...this.providerRegion ? { region: this.providerRegion } : {}
|
|
149
|
+
});
|
|
150
|
+
return this.ec2Client;
|
|
151
|
+
}
|
|
120
152
|
getCreateClient() {
|
|
121
153
|
this.getClient();
|
|
122
154
|
return this.createClient;
|
|
123
155
|
}
|
|
124
|
-
async create(logicalId, resourceType, properties) {
|
|
156
|
+
async create(logicalId, resourceType, properties, context) {
|
|
157
|
+
const mask = context?.maskSecrets;
|
|
125
158
|
switch (resourceType) {
|
|
126
|
-
case "AWS::RDS::DBSubnetGroup": return this.createDBSubnetGroup(logicalId, resourceType, properties);
|
|
127
|
-
case "AWS::RDS::DBCluster": return this.createDBCluster(logicalId, resourceType, properties);
|
|
128
|
-
case "AWS::RDS::DBInstance": return this.createDBInstance(logicalId, resourceType, properties);
|
|
159
|
+
case "AWS::RDS::DBSubnetGroup": return this.createDBSubnetGroup(logicalId, resourceType, properties, mask);
|
|
160
|
+
case "AWS::RDS::DBCluster": return this.createDBCluster(logicalId, resourceType, properties, mask);
|
|
161
|
+
case "AWS::RDS::DBInstance": return this.createDBInstance(logicalId, resourceType, properties, mask);
|
|
129
162
|
default: throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId);
|
|
130
163
|
}
|
|
131
164
|
}
|
|
132
165
|
async update(logicalId, physicalId, resourceType, properties, previousProperties, context) {
|
|
133
166
|
properties = withRemovalDefaults(this.removalDefaults, resourceType, properties, previousProperties, context);
|
|
134
167
|
switch (resourceType) {
|
|
135
|
-
case "AWS::RDS::DBSubnetGroup": return this.updateDBSubnetGroup(logicalId, physicalId, resourceType, properties, previousProperties);
|
|
136
|
-
case "AWS::RDS::DBCluster": return this.updateDBCluster(logicalId, physicalId, resourceType, properties, previousProperties);
|
|
137
|
-
case "AWS::RDS::DBInstance": return this.updateDBInstance(logicalId, physicalId, resourceType, properties, previousProperties);
|
|
168
|
+
case "AWS::RDS::DBSubnetGroup": return this.updateDBSubnetGroup(logicalId, physicalId, resourceType, properties, previousProperties, context?.maskSecrets);
|
|
169
|
+
case "AWS::RDS::DBCluster": return this.updateDBCluster(logicalId, physicalId, resourceType, properties, previousProperties, context);
|
|
170
|
+
case "AWS::RDS::DBInstance": return this.updateDBInstance(logicalId, physicalId, resourceType, properties, previousProperties, context);
|
|
138
171
|
default: throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId, physicalId);
|
|
139
172
|
}
|
|
140
173
|
}
|
|
@@ -146,7 +179,7 @@ var RDSProvider = class {
|
|
|
146
179
|
default: throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId, physicalId);
|
|
147
180
|
}
|
|
148
181
|
}
|
|
149
|
-
async createDBSubnetGroup(logicalId, resourceType, properties) {
|
|
182
|
+
async createDBSubnetGroup(logicalId, resourceType, properties, mask) {
|
|
150
183
|
this.logger.debug(`Creating DBSubnetGroup ${logicalId}`);
|
|
151
184
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
152
185
|
const dbSubnetGroupName = properties["DBSubnetGroupName"] || generatedNameFor("AWS::RDS::DBSubnetGroup", logicalId);
|
|
@@ -168,10 +201,10 @@ var RDSProvider = class {
|
|
|
168
201
|
};
|
|
169
202
|
} catch (error) {
|
|
170
203
|
const cause = error instanceof Error ? error : void 0;
|
|
171
|
-
throw new ProvisioningError(`Failed to create DBSubnetGroup ${logicalId}: ${
|
|
204
|
+
throw this.wrapCaughtError(mask, error, (text) => new ProvisioningError(`Failed to create DBSubnetGroup ${logicalId}: ${text}`, resourceType, logicalId, dbSubnetGroupName, cause));
|
|
172
205
|
}
|
|
173
206
|
}
|
|
174
|
-
async updateDBSubnetGroup(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
207
|
+
async updateDBSubnetGroup(logicalId, physicalId, resourceType, properties, previousProperties, mask) {
|
|
175
208
|
this.logger.debug(`Updating DBSubnetGroup ${logicalId}: ${physicalId}`);
|
|
176
209
|
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
177
210
|
try {
|
|
@@ -196,7 +229,7 @@ var RDSProvider = class {
|
|
|
196
229
|
};
|
|
197
230
|
} catch (error) {
|
|
198
231
|
const cause = error instanceof Error ? error : void 0;
|
|
199
|
-
throw new ProvisioningError(`Failed to update DBSubnetGroup ${logicalId}: ${
|
|
232
|
+
throw this.wrapCaughtError(mask, error, (text) => new ProvisioningError(`Failed to update DBSubnetGroup ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
200
233
|
}
|
|
201
234
|
}
|
|
202
235
|
async deleteDBSubnetGroup(logicalId, physicalId, resourceType, context) {
|
|
@@ -212,10 +245,10 @@ var RDSProvider = class {
|
|
|
212
245
|
return;
|
|
213
246
|
}
|
|
214
247
|
const cause = error instanceof Error ? error : void 0;
|
|
215
|
-
throw new ProvisioningError(`Failed to delete DBSubnetGroup ${logicalId}: ${
|
|
248
|
+
throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete DBSubnetGroup ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
216
249
|
}
|
|
217
250
|
}
|
|
218
|
-
async createDBCluster(logicalId, resourceType, properties) {
|
|
251
|
+
async createDBCluster(logicalId, resourceType, properties, mask) {
|
|
219
252
|
this.logger.debug(`Creating DBCluster ${logicalId}`);
|
|
220
253
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
221
254
|
const dbClusterIdentifier = properties["DBClusterIdentifier"] || generatedNameFor("AWS::RDS::DBCluster", logicalId);
|
|
@@ -277,7 +310,7 @@ var RDSProvider = class {
|
|
|
277
310
|
ApplyImmediately: true
|
|
278
311
|
}));
|
|
279
312
|
} catch (disableError) {
|
|
280
|
-
this.logger.debug(`Could not disable DeletionProtection on partially-created DBCluster ${dbClusterIdentifier}: ${describeAwsFailure(disableError).detail} (proceeding with DeleteDBCluster anyway)`);
|
|
313
|
+
this.logger.debug(maskerOrIdentity(mask)(`Could not disable DeletionProtection on partially-created DBCluster ${dbClusterIdentifier}: ${describeAwsFailure(disableError).detail} (proceeding with DeleteDBCluster anyway)`));
|
|
281
314
|
}
|
|
282
315
|
await this.getClient().send(new DeleteDBClusterCommand({
|
|
283
316
|
DBClusterIdentifier: dbClusterIdentifier,
|
|
@@ -288,35 +321,35 @@ var RDSProvider = class {
|
|
|
288
321
|
} catch (cleanupError) {
|
|
289
322
|
const aws = pasteableAwsCommand();
|
|
290
323
|
const unprotect = wantsDeletionProtection ? aws`aws rds modify-db-cluster --db-cluster-identifier ${dbClusterIdentifier} --no-deletion-protection --apply-immediately; ` : aws``;
|
|
291
|
-
this.logger.warn(`Failed to delete partially-created DBCluster ${logicalId} (${dbClusterIdentifier}): ${describeAwsFailure(cleanupError).detail}. THE CLUSTER IS STILL RUNNING AND BILLING. Outside a rollback's re-create, the failed deploy's rollback journal records it for \`cdkd rollback --revert-failed\`${wantsDeletionProtection ? ", which cannot delete it while its DeletionProtection is on" : ""}; otherwise delete it yourself: ${aws`${unprotect}aws rds delete-db-cluster --db-cluster-identifier ${dbClusterIdentifier} --skip-final-snapshot`.render()}`);
|
|
324
|
+
this.logger.warn(`Failed to delete partially-created DBCluster ${logicalId} (${dbClusterIdentifier}): ${maskerOrIdentity(mask)(describeAwsFailure(cleanupError).detail)}. THE CLUSTER IS STILL RUNNING AND BILLING. Outside a rollback's re-create, the failed deploy's rollback journal records it for \`cdkd rollback --revert-failed\`${wantsDeletionProtection ? ", which cannot delete it while its DeletionProtection is on" : ""}; otherwise delete it yourself: ${aws`${unprotect}aws rds delete-db-cluster --db-cluster-identifier ${dbClusterIdentifier} --skip-final-snapshot`.render()}`);
|
|
292
325
|
}
|
|
293
326
|
throw innerError;
|
|
294
327
|
}
|
|
295
328
|
} catch (error) {
|
|
296
|
-
const thrown = error instanceof ProvisioningError ? error : new ProvisioningError(`Failed to create DBCluster ${logicalId}: ${
|
|
329
|
+
const thrown = error instanceof ProvisioningError ? error : this.wrapCaughtError(mask, error, (text) => new ProvisioningError(`Failed to create DBCluster ${logicalId}: ${text}`, resourceType, logicalId, dbClusterIdentifier, error instanceof Error ? error : void 0));
|
|
297
330
|
if (clusterLeftBehind) markCreatedBeforeFailure(thrown, logicalId, resourceType, dbClusterIdentifier, createdResourceId);
|
|
298
331
|
throw thrown;
|
|
299
332
|
}
|
|
300
333
|
}
|
|
301
|
-
async updateDBCluster(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
334
|
+
async updateDBCluster(logicalId, physicalId, resourceType, properties, previousProperties, context) {
|
|
302
335
|
this.logger.debug(`Updating DBCluster ${logicalId}: ${physicalId}`);
|
|
303
336
|
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
304
337
|
try {
|
|
338
|
+
const vpcSgIds = await this.dbClusterSecurityGroupsToSend(logicalId, physicalId, resourceType, properties, previousProperties, context);
|
|
305
339
|
const serverlessV2Config = properties["ServerlessV2ScalingConfiguration"];
|
|
306
340
|
const hasServerlessV2 = serverlessV2Config !== void 0 && (serverlessV2Config.MinCapacity !== void 0 || serverlessV2Config.MaxCapacity !== void 0);
|
|
307
|
-
const vpcSgIds = properties["VpcSecurityGroupIds"];
|
|
308
|
-
const sendVpcSgIds = vpcSgIds !== void 0 && vpcSgIds.length > 0;
|
|
309
341
|
const masterUserSecret = properties["MasterUserSecret"];
|
|
342
|
+
const sendCredentialSettings = masterCredentialSettingsChanged(properties, previousProperties, context);
|
|
310
343
|
await this.getClient().send(new ModifyDBClusterCommand({
|
|
311
344
|
DBClusterIdentifier: physicalId,
|
|
312
345
|
EngineVersion: properties["EngineVersion"],
|
|
313
346
|
DeletionProtection: properties["DeletionProtection"],
|
|
314
347
|
BackupRetentionPeriod: clearOnUpdateRemoval(properties["BackupRetentionPeriod"] != null ? Number(properties["BackupRetentionPeriod"]) : void 0, previousProperties["BackupRetentionPeriod"] != null ? Number(previousProperties["BackupRetentionPeriod"]) : void 0, 1),
|
|
315
|
-
...
|
|
316
|
-
MasterUserPassword: properties
|
|
348
|
+
...vpcSgIds !== void 0 && { VpcSecurityGroupIds: vpcSgIds },
|
|
349
|
+
MasterUserPassword: masterUserPasswordToSend(properties, previousProperties, context),
|
|
317
350
|
Port: properties["Port"] != null ? Number(properties["Port"]) : void 0,
|
|
318
|
-
...properties["ManageMasterUserPassword"] !== void 0 && { ManageMasterUserPassword: properties["ManageMasterUserPassword"] },
|
|
319
|
-
...masterUserSecret?.KmsKeyId !== void 0 && { MasterUserSecretKmsKeyId: masterUserSecret.KmsKeyId },
|
|
351
|
+
...sendCredentialSettings && properties["ManageMasterUserPassword"] !== void 0 && { ManageMasterUserPassword: properties["ManageMasterUserPassword"] },
|
|
352
|
+
...sendCredentialSettings && masterUserSecret?.KmsKeyId !== void 0 && { MasterUserSecretKmsKeyId: masterUserSecret.KmsKeyId },
|
|
320
353
|
...properties["MonitoringRoleArn"] !== void 0 && { MonitoringRoleArn: properties["MonitoringRoleArn"] },
|
|
321
354
|
MonitoringInterval: clearOnUpdateRemoval(properties["MonitoringInterval"] != null ? Number(properties["MonitoringInterval"]) : void 0, previousProperties["MonitoringInterval"] != null ? Number(previousProperties["MonitoringInterval"]) : void 0, 0),
|
|
322
355
|
EnableIAMDatabaseAuthentication: properties["EnableIAMDatabaseAuthentication"],
|
|
@@ -328,6 +361,10 @@ var RDSProvider = class {
|
|
|
328
361
|
}));
|
|
329
362
|
this.logger.debug(`Successfully updated DBCluster ${logicalId}`);
|
|
330
363
|
const described = await this.describeDBCluster(physicalId);
|
|
364
|
+
if (process.env["CDKD_NO_WAIT"] !== "true" && securityGroupListChanged(vpcSgIds, previousProperties["VpcSecurityGroupIds"])) {
|
|
365
|
+
await this.waitForSecurityGroupsApplied(physicalId, logicalId, vpcSgIds ?? []);
|
|
366
|
+
for (const member of described?.DBClusterMembers ?? []) if (member.DBInstanceIdentifier) await this.waitForMemberAfterSecurityGroupChange(member.DBInstanceIdentifier);
|
|
367
|
+
}
|
|
331
368
|
if (described?.DBClusterArn) await this.applyTagDiff(described.DBClusterArn, resourceType, logicalId, previousProperties["Tags"], properties["Tags"]);
|
|
332
369
|
return {
|
|
333
370
|
physicalId,
|
|
@@ -341,8 +378,9 @@ var RDSProvider = class {
|
|
|
341
378
|
})
|
|
342
379
|
};
|
|
343
380
|
} catch (error) {
|
|
381
|
+
if (error instanceof ProvisioningError) throw error;
|
|
344
382
|
const cause = error instanceof Error ? error : void 0;
|
|
345
|
-
throw new ProvisioningError(`Failed to update DBCluster ${logicalId}: ${
|
|
383
|
+
throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update DBCluster ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
346
384
|
}
|
|
347
385
|
}
|
|
348
386
|
async deleteDBCluster(logicalId, physicalId, resourceType, properties, context) {
|
|
@@ -383,6 +421,7 @@ var RDSProvider = class {
|
|
|
383
421
|
flip,
|
|
384
422
|
logger: this.logger,
|
|
385
423
|
physicalId,
|
|
424
|
+
mask: context?.maskSecrets,
|
|
386
425
|
guardName: "DeletionProtection",
|
|
387
426
|
observe: async () => (await this.describeDBCluster(physicalId))?.DeletionProtection === true,
|
|
388
427
|
disable: async () => {
|
|
@@ -395,11 +434,12 @@ var RDSProvider = class {
|
|
|
395
434
|
});
|
|
396
435
|
this.logger.debug(`Disabled DeletionProtection on DBCluster ${logicalId} before delete`);
|
|
397
436
|
} catch (disableError) {
|
|
398
|
-
if (!this.isNotFoundError(disableError, "DBClusterNotFoundFault")) this.logger.debug(`Could not disable deletion protection for DBCluster ${logicalId}: ${describeAwsFailure(disableError).detail}`);
|
|
437
|
+
if (!this.isNotFoundError(disableError, "DBClusterNotFoundFault")) this.logger.debug(maskerOrIdentity(context?.maskSecrets)(`Could not disable deletion protection for DBCluster ${logicalId}: ${describeAwsFailure(disableError).detail}`));
|
|
399
438
|
}
|
|
400
439
|
const globalClusterId = recordedGlobalClusterIdentifier(properties);
|
|
401
|
-
if (globalClusterId !== void 0) detachedFrom = await this.detachFromGlobalCluster(logicalId, physicalId, globalClusterId, context?.removeProtection === true, progress) ? globalClusterId : void 0;
|
|
440
|
+
if (globalClusterId !== void 0) detachedFrom = await this.detachFromGlobalCluster(logicalId, physicalId, globalClusterId, context?.removeProtection === true, progress, maskerOrIdentity(context?.maskSecrets)) ? globalClusterId : void 0;
|
|
402
441
|
const finalSnapshotId = context?.finalSnapshotIdentifier;
|
|
442
|
+
if (finalSnapshotId && flip.flippedOffByThisRun && !flip.deleteAccepted) await this.waitForProtectionOffBeforeFinalSnapshot(logicalId, physicalId);
|
|
403
443
|
await this.getClient().send(new DeleteDBClusterCommand({
|
|
404
444
|
DBClusterIdentifier: physicalId,
|
|
405
445
|
...finalSnapshotId ? {
|
|
@@ -425,11 +465,12 @@ var RDSProvider = class {
|
|
|
425
465
|
return;
|
|
426
466
|
}
|
|
427
467
|
const cause = error instanceof Error ? error : void 0;
|
|
428
|
-
const
|
|
468
|
+
const detachedNote = detachedFrom !== void 0 ? " (it was already detached from its global cluster, and stays a standalone cluster)" : "";
|
|
469
|
+
const failure = this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete DBCluster ${logicalId}: ${text}${detachedNote}`, resourceType, logicalId, physicalId, cause));
|
|
429
470
|
throw progress.stripped ? markDeleteStarted(failure) : failure;
|
|
430
471
|
}
|
|
431
472
|
}
|
|
432
|
-
async createDBInstance(logicalId, resourceType, properties) {
|
|
473
|
+
async createDBInstance(logicalId, resourceType, properties, mask) {
|
|
433
474
|
this.logger.debug(`Creating DBInstance ${logicalId}`);
|
|
434
475
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
435
476
|
const dbInstanceIdentifier = properties["DBInstanceIdentifier"] || generatedNameFor("AWS::RDS::DBInstance", logicalId);
|
|
@@ -475,12 +516,12 @@ var RDSProvider = class {
|
|
|
475
516
|
})
|
|
476
517
|
};
|
|
477
518
|
} catch (error) {
|
|
478
|
-
const thrown = error instanceof ProvisioningError ? error : new ProvisioningError(`Failed to create DBInstance ${logicalId}: ${
|
|
519
|
+
const thrown = error instanceof ProvisioningError ? error : this.wrapCaughtError(mask, error, (text) => new ProvisioningError(`Failed to create DBInstance ${logicalId}: ${text}`, resourceType, logicalId, dbInstanceIdentifier, error instanceof Error ? error : void 0));
|
|
479
520
|
if (instanceCreated) markCreatedBeforeFailure(thrown, logicalId, resourceType, dbInstanceIdentifier, createdResourceId);
|
|
480
521
|
throw thrown;
|
|
481
522
|
}
|
|
482
523
|
}
|
|
483
|
-
async updateDBInstance(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
524
|
+
async updateDBInstance(logicalId, physicalId, resourceType, properties, previousProperties, context) {
|
|
484
525
|
this.logger.debug(`Updating DBInstance ${logicalId}: ${physicalId}`);
|
|
485
526
|
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
486
527
|
try {
|
|
@@ -488,6 +529,8 @@ var RDSProvider = class {
|
|
|
488
529
|
const prevEngineVersion = previousProperties["EngineVersion"];
|
|
489
530
|
const allowMajorVersionUpgrade = newEngineVersion !== void 0 && newEngineVersion !== prevEngineVersion && prevEngineVersion !== void 0 && newEngineVersion.split(".")[0] !== prevEngineVersion.split(".")[0];
|
|
490
531
|
const masterUserSecret = properties["MasterUserSecret"];
|
|
532
|
+
const sendCredentialSettings = masterCredentialSettingsChanged(properties, previousProperties, context);
|
|
533
|
+
const instancePassword = masterUserPasswordToSend(properties, previousProperties, context);
|
|
491
534
|
await this.getClient().send(new ModifyDBInstanceCommand({
|
|
492
535
|
DBInstanceIdentifier: physicalId,
|
|
493
536
|
DBInstanceClass: properties["DBInstanceClass"],
|
|
@@ -500,10 +543,10 @@ var RDSProvider = class {
|
|
|
500
543
|
...allowMajorVersionUpgrade && { AllowMajorVersionUpgrade: true }
|
|
501
544
|
},
|
|
502
545
|
...properties["Port"] !== void 0 && { DBPortNumber: Number(properties["Port"]) },
|
|
503
|
-
...
|
|
546
|
+
...instancePassword !== void 0 && { MasterUserPassword: instancePassword },
|
|
504
547
|
...properties["VPCSecurityGroups"] !== void 0 && { VpcSecurityGroupIds: properties["VPCSecurityGroups"] },
|
|
505
|
-
...masterUserSecret?.KmsKeyId !== void 0 && { MasterUserSecretKmsKeyId: masterUserSecret.KmsKeyId },
|
|
506
|
-
...properties["ManageMasterUserPassword"] !== void 0 && { ManageMasterUserPassword: properties["ManageMasterUserPassword"] },
|
|
548
|
+
...sendCredentialSettings && masterUserSecret?.KmsKeyId !== void 0 && { MasterUserSecretKmsKeyId: masterUserSecret.KmsKeyId },
|
|
549
|
+
...sendCredentialSettings && properties["ManageMasterUserPassword"] !== void 0 && { ManageMasterUserPassword: properties["ManageMasterUserPassword"] },
|
|
507
550
|
...properties["MonitoringRoleArn"] !== void 0 && { MonitoringRoleArn: properties["MonitoringRoleArn"] },
|
|
508
551
|
...properties["MonitoringInterval"] != null && { MonitoringInterval: Number(properties["MonitoringInterval"]) },
|
|
509
552
|
EnableIAMDatabaseAuthentication: properties["EnableIAMDatabaseAuthentication"]
|
|
@@ -522,7 +565,7 @@ var RDSProvider = class {
|
|
|
522
565
|
};
|
|
523
566
|
} catch (error) {
|
|
524
567
|
const cause = error instanceof Error ? error : void 0;
|
|
525
|
-
throw new ProvisioningError(`Failed to update DBInstance ${logicalId}: ${
|
|
568
|
+
throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update DBInstance ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
526
569
|
}
|
|
527
570
|
}
|
|
528
571
|
async deleteDBInstance(logicalId, physicalId, resourceType, properties, context) {
|
|
@@ -561,6 +604,7 @@ var RDSProvider = class {
|
|
|
561
604
|
flip,
|
|
562
605
|
logger: this.logger,
|
|
563
606
|
physicalId,
|
|
607
|
+
mask: context?.maskSecrets,
|
|
564
608
|
guardName: "DeletionProtection",
|
|
565
609
|
observe: async () => (await this.describeDBInstance(physicalId))?.DeletionProtection === true,
|
|
566
610
|
disable: async () => {
|
|
@@ -573,9 +617,10 @@ var RDSProvider = class {
|
|
|
573
617
|
});
|
|
574
618
|
this.logger.debug(`Disabled DeletionProtection on DBInstance ${logicalId} before delete`);
|
|
575
619
|
} catch (disableError) {
|
|
576
|
-
if (!this.isNotFoundError(disableError, "DBInstanceNotFoundFault")) this.logger.debug(`Could not disable deletion protection for DBInstance ${logicalId}: ${describeAwsFailure(disableError).detail}`);
|
|
620
|
+
if (!this.isNotFoundError(disableError, "DBInstanceNotFoundFault")) this.logger.debug(maskerOrIdentity(context?.maskSecrets)(`Could not disable deletion protection for DBInstance ${logicalId}: ${describeAwsFailure(disableError).detail}`));
|
|
577
621
|
}
|
|
578
622
|
const finalSnapshotId = properties?.["DBClusterIdentifier"] === void 0 ? context?.finalSnapshotIdentifier : void 0;
|
|
623
|
+
if (finalSnapshotId && flip.flippedOffByThisRun && !flip.deleteAccepted) await this.waitForInstanceProtectionOffBeforeFinalSnapshot(logicalId, physicalId);
|
|
579
624
|
await this.getClient().send(new DeleteDBInstanceCommand({
|
|
580
625
|
DBInstanceIdentifier: physicalId,
|
|
581
626
|
...finalSnapshotId ? {
|
|
@@ -597,7 +642,7 @@ var RDSProvider = class {
|
|
|
597
642
|
return;
|
|
598
643
|
}
|
|
599
644
|
const cause = error instanceof Error ? error : void 0;
|
|
600
|
-
throw new ProvisioningError(`Failed to delete DBInstance ${logicalId}: ${
|
|
645
|
+
throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete DBInstance ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
601
646
|
}
|
|
602
647
|
}
|
|
603
648
|
async applyTagDiff(arn, resourceType, logicalId, oldTagsRaw, newTagsRaw) {
|
|
@@ -630,7 +675,20 @@ var RDSProvider = class {
|
|
|
630
675
|
const message = error.message.toLowerCase();
|
|
631
676
|
return name === faultName || message.includes("not found") || message.includes("does not exist");
|
|
632
677
|
}
|
|
633
|
-
|
|
678
|
+
wrapCaughtError(mask, error, build) {
|
|
679
|
+
const m = maskerOrIdentity(mask);
|
|
680
|
+
const failure = describeAwsFailure(error);
|
|
681
|
+
if (!failure.redacted) return wrapMaskedAwsError(m, error, build);
|
|
682
|
+
this.logger.debug(m(build(m(failure.detail)).message));
|
|
683
|
+
const wrapped = build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`);
|
|
684
|
+
return error instanceof Error ? markRedactedCause(wrapped) : wrapped;
|
|
685
|
+
}
|
|
686
|
+
wrapGlobalClusterDetachError(error, mask, build) {
|
|
687
|
+
const failure = describeAwsFailure(error);
|
|
688
|
+
if (failure.redacted) this.logger.debug(mask(build(mask(failure.detail))));
|
|
689
|
+
return new GlobalClusterDetachError(build(failure.summary));
|
|
690
|
+
}
|
|
691
|
+
async detachFromGlobalCluster(logicalId, physicalId, globalClusterId, removeProtection, progress, mask) {
|
|
634
692
|
let cluster = await this.describeDBCluster(physicalId);
|
|
635
693
|
for (let i = 0; removeProtection && cluster?.DeletionProtection === true && i < 6; i++) {
|
|
636
694
|
await this.sleep(5e3);
|
|
@@ -659,7 +717,7 @@ var RDSProvider = class {
|
|
|
659
717
|
const name = awsErrorName(error);
|
|
660
718
|
if (name === "GlobalClusterNotFoundFault") return false;
|
|
661
719
|
if (name === "DBClusterNotFoundFault") break;
|
|
662
|
-
if (!TRANSIENT_DETACH_FAULTS.has(name)) throw
|
|
720
|
+
if (!TRANSIENT_DETACH_FAULTS.has(name)) throw this.wrapGlobalClusterDetachError(error, mask, (text) => safeMsg`detaching ${physicalId} from global cluster ${globalClusterId} failed (${text})`);
|
|
663
721
|
await backOff();
|
|
664
722
|
}
|
|
665
723
|
for (;;) {
|
|
@@ -669,7 +727,7 @@ var RDSProvider = class {
|
|
|
669
727
|
} catch (error) {
|
|
670
728
|
const name = awsErrorName(error);
|
|
671
729
|
if (name === "GlobalClusterNotFoundFault") stillMember = false;
|
|
672
|
-
else if (!TRANSIENT_DETACH_FAULTS.has(name)) throw
|
|
730
|
+
else if (!TRANSIENT_DETACH_FAULTS.has(name)) throw this.wrapGlobalClusterDetachError(error, mask, (text) => safeMsg`could not confirm ${physicalId} left global cluster ${globalClusterId} (${text})`);
|
|
673
731
|
}
|
|
674
732
|
if (stillMember === false) {
|
|
675
733
|
const after = await this.describeDBCluster(physicalId);
|
|
@@ -683,9 +741,112 @@ var RDSProvider = class {
|
|
|
683
741
|
async describeDBCluster(dbClusterIdentifier) {
|
|
684
742
|
return (await this.getClient().send(new DescribeDBClustersCommand({ DBClusterIdentifier: dbClusterIdentifier }))).DBClusters?.[0];
|
|
685
743
|
}
|
|
744
|
+
async dbClusterSecurityGroupsToSend(logicalId, physicalId, resourceType, properties, previousProperties, context) {
|
|
745
|
+
const desired = properties["VpcSecurityGroupIds"];
|
|
746
|
+
if (desired !== void 0) return desired.length > 0 ? desired : void 0;
|
|
747
|
+
const previous = previousProperties["VpcSecurityGroupIds"];
|
|
748
|
+
if (context?.desiredFromAwsReadback === true) return void 0;
|
|
749
|
+
if (!Array.isArray(previous) || previous.length === 0) return void 0;
|
|
750
|
+
let groupId;
|
|
751
|
+
let missing;
|
|
752
|
+
let awsError;
|
|
753
|
+
try {
|
|
754
|
+
const subnetGroupName = (await this.describeDBCluster(physicalId))?.DBSubnetGroup;
|
|
755
|
+
const vpcId = subnetGroupName ? (await this.getClient().send(new DescribeDBSubnetGroupsCommand({ DBSubnetGroupName: subnetGroupName }))).DBSubnetGroups?.[0]?.VpcId : void 0;
|
|
756
|
+
if (!subnetGroupName) missing = "the cluster reports no DB subnet group";
|
|
757
|
+
else if (!vpcId) missing = `DB subnet group ${subnetGroupName} reports no VPC`;
|
|
758
|
+
else {
|
|
759
|
+
groupId = (await this.getEc2Client().send(new DescribeSecurityGroupsCommand({ Filters: [{
|
|
760
|
+
Name: "vpc-id",
|
|
761
|
+
Values: [vpcId]
|
|
762
|
+
}, {
|
|
763
|
+
Name: "group-name",
|
|
764
|
+
Values: ["default"]
|
|
765
|
+
}] }))).SecurityGroups?.[0]?.GroupId;
|
|
766
|
+
if (!groupId) missing = `VPC ${vpcId} has no security group named default`;
|
|
767
|
+
}
|
|
768
|
+
} catch (error) {
|
|
769
|
+
awsError = error;
|
|
770
|
+
}
|
|
771
|
+
if (groupId === void 0) {
|
|
772
|
+
const mask = context?.maskSecrets ?? ((text) => text);
|
|
773
|
+
const failure = missing === void 0 ? describeAwsFailure(awsError) : void 0;
|
|
774
|
+
if (failure?.redacted === true) this.logger.debug(safeMsg`${logicalId}: the VPC default security group lookup failed: ${mask(failure.detail)}`);
|
|
775
|
+
const shown = mask(failure?.summary ?? "");
|
|
776
|
+
const refusal = new ProvisioningError(`Failed to update DBCluster ${logicalId}: VpcSecurityGroupIds was removed from the template, so the cluster moves to its VPC's default security group (as CloudFormation does), but cdkd could not find that group: ${missing ?? shown}. Declare VpcSecurityGroupIds in the template to choose the cluster's security groups.`, resourceType, logicalId, physicalId, awsError instanceof Error ? awsError : void 0);
|
|
777
|
+
if (missing !== void 0) throw markNonRetryable(refusal);
|
|
778
|
+
throw awsError instanceof Error && (failure?.redacted === true || shown !== (failure?.summary ?? "")) ? markRedactedCause(refusal) : refusal;
|
|
779
|
+
}
|
|
780
|
+
this.logger.warn(safeMsg`${logicalId}: VpcSecurityGroupIds was removed from the template; attaching the VPC's default security group ${groupId}, as CloudFormation does.`);
|
|
781
|
+
return [groupId];
|
|
782
|
+
}
|
|
686
783
|
async describeDBInstance(dbInstanceIdentifier) {
|
|
687
784
|
return (await this.getClient().send(new DescribeDBInstancesCommand({ DBInstanceIdentifier: dbInstanceIdentifier }))).DBInstances?.[0];
|
|
688
785
|
}
|
|
786
|
+
async waitForMemberAfterSecurityGroupChange(dbInstanceIdentifier, maxWaitMs = 18e5) {
|
|
787
|
+
const startTime = Date.now();
|
|
788
|
+
let delay = 5e3;
|
|
789
|
+
while (Date.now() - startTime < maxWaitMs) {
|
|
790
|
+
let status;
|
|
791
|
+
try {
|
|
792
|
+
status = (await this.describeDBInstance(dbInstanceIdentifier))?.DBInstanceStatus;
|
|
793
|
+
} catch (error) {
|
|
794
|
+
if (this.isNotFoundError(error, "DBInstanceNotFoundFault")) return;
|
|
795
|
+
throw error;
|
|
796
|
+
}
|
|
797
|
+
if (status !== "modifying") return;
|
|
798
|
+
await this.sleep(delay);
|
|
799
|
+
delay = Math.min(delay * 2, 1e4);
|
|
800
|
+
}
|
|
801
|
+
throw new Error(`Timed out waiting for a member instance of the cluster to finish applying its new VPC security groups`);
|
|
802
|
+
}
|
|
803
|
+
async waitForSecurityGroupsApplied(dbClusterIdentifier, logicalId, expected, maxWaitMs = 18e5) {
|
|
804
|
+
const want = [...new Set(expected)].sort().join(" ");
|
|
805
|
+
const startTime = Date.now();
|
|
806
|
+
let delay = 5e3;
|
|
807
|
+
while (Date.now() - startTime < maxWaitMs) {
|
|
808
|
+
const cluster = await this.describeDBCluster(dbClusterIdentifier);
|
|
809
|
+
const groups = cluster?.VpcSecurityGroups ?? [];
|
|
810
|
+
const ids = groups.map((group) => group.VpcSecurityGroupId ?? "").sort().join(" ");
|
|
811
|
+
if (cluster !== void 0 && cluster.Status !== "modifying" && groups.every((group) => group.Status === "active") && ids === want) return;
|
|
812
|
+
this.logger.debug(safeMsg`DBCluster ${logicalId} security groups not settled yet (status ${cluster?.Status ?? "unknown"})`);
|
|
813
|
+
await this.sleep(delay);
|
|
814
|
+
delay = Math.min(delay * 2, 1e4);
|
|
815
|
+
}
|
|
816
|
+
throw new Error(`Timed out waiting for DBCluster ${logicalId} to apply its new VPC security groups`);
|
|
817
|
+
}
|
|
818
|
+
async waitForProtectionOffBeforeFinalSnapshot(logicalId, physicalId, maxWaitMs = FINAL_SNAPSHOT_SETTLE_WAIT_MS) {
|
|
819
|
+
const budgetMs = Math.min(maxWaitMs, enclosingDeadlineRemainingMs() - FINAL_SNAPSHOT_COMPENSATION_MARGIN_MS);
|
|
820
|
+
if (budgetMs <= 0) throw new Error(`--remove-protection turned DeletionProtection off, but the resource timeout leaves no time to wait for the cluster to return to 'available', which the final snapshot its DeletionPolicy asks for needs. The delete was not sent and the guard is put back; re-run the destroy with a longer --resource-timeout`);
|
|
821
|
+
const startTime = Date.now();
|
|
822
|
+
let delay = 5e3;
|
|
823
|
+
for (;;) {
|
|
824
|
+
const current = await this.describeDBCluster(physicalId);
|
|
825
|
+
if (current === void 0) return;
|
|
826
|
+
if (current.DeletionProtection === false && current.Status !== "modifying") return;
|
|
827
|
+
if (Date.now() - startTime + delay >= budgetMs) break;
|
|
828
|
+
this.logger.debug(safeMsg`DBCluster ${logicalId}: waiting for the DeletionProtection change to settle before the final snapshot (status ${current.Status ?? "unknown"})`);
|
|
829
|
+
await this.sleep(delay);
|
|
830
|
+
delay = Math.min(delay * 2, 1e4);
|
|
831
|
+
}
|
|
832
|
+
throw new Error(`--remove-protection turned DeletionProtection off, but the cluster did not return to 'available' within ${Math.max(1, Math.round(budgetMs / 6e4))} minutes, and the final snapshot its DeletionPolicy asks for needs it. The delete was not sent and the guard is put back; re-run the destroy once the cluster is 'available'`);
|
|
833
|
+
}
|
|
834
|
+
async waitForInstanceProtectionOffBeforeFinalSnapshot(logicalId, physicalId, maxWaitMs = FINAL_SNAPSHOT_SETTLE_WAIT_MS) {
|
|
835
|
+
const budgetMs = Math.min(maxWaitMs, enclosingDeadlineRemainingMs() - FINAL_SNAPSHOT_COMPENSATION_MARGIN_MS);
|
|
836
|
+
if (budgetMs <= 0) throw new Error(`--remove-protection turned DeletionProtection off, but the resource timeout leaves no time to wait for the instance to return to 'available', which the final snapshot its DeletionPolicy asks for needs. The delete was not sent and the guard is put back; re-run the destroy with a longer --resource-timeout`);
|
|
837
|
+
const startTime = Date.now();
|
|
838
|
+
let delay = 5e3;
|
|
839
|
+
for (;;) {
|
|
840
|
+
const current = await this.describeDBInstance(physicalId);
|
|
841
|
+
if (current === void 0) return;
|
|
842
|
+
if (current.DeletionProtection === false && current.DBInstanceStatus !== "modifying") return;
|
|
843
|
+
if (Date.now() - startTime + delay >= budgetMs) break;
|
|
844
|
+
this.logger.debug(safeMsg`DBInstance ${logicalId}: waiting for the DeletionProtection change to settle before the final snapshot (status ${current.DBInstanceStatus ?? "unknown"})`);
|
|
845
|
+
await this.sleep(delay);
|
|
846
|
+
delay = Math.min(delay * 2, 1e4);
|
|
847
|
+
}
|
|
848
|
+
throw new Error(`--remove-protection turned DeletionProtection off, but the instance did not return to 'available' within ${Math.max(1, Math.round(budgetMs / 6e4))} minutes, and the final snapshot its DeletionPolicy asks for needs it. The delete was not sent and the guard is put back; re-run the destroy once the instance is 'available'`);
|
|
849
|
+
}
|
|
689
850
|
async waitForClusterAvailable(dbClusterIdentifier, maxWaitMs = 18e5) {
|
|
690
851
|
const startTime = Date.now();
|
|
691
852
|
let delay = 5e3;
|
|
@@ -960,7 +1121,12 @@ var RDSProvider = class {
|
|
|
960
1121
|
return null;
|
|
961
1122
|
}
|
|
962
1123
|
};
|
|
1124
|
+
function securityGroupListChanged(sent, previous) {
|
|
1125
|
+
if (sent === void 0) return false;
|
|
1126
|
+
const before = Array.isArray(previous) ? previous.filter((id) => typeof id === "string") : [];
|
|
1127
|
+
return [...sent].sort().join(" ") !== [...before].sort().join(" ");
|
|
1128
|
+
}
|
|
963
1129
|
|
|
964
1130
|
//#endregion
|
|
965
1131
|
export { RDSProvider };
|
|
966
|
-
//# sourceMappingURL=rds-provider-
|
|
1132
|
+
//# sourceMappingURL=rds-provider-ByCpdpUq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rds-provider-ByCpdpUq.js","names":[],"sources":["../src/provisioning/providers/rds-provider.ts"],"mappings":"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"}
|