Skip to content

Commit c7bc2ba

Browse files
authored
chore: cleanup e2e hyperdrive configs (#8306)
* hyperdrive cleanup task * fix actual problem
1 parent a8e20bd commit c7bc2ba

File tree

3 files changed

+59
-1
lines changed

3 files changed

+59
-1
lines changed

packages/wrangler/e2e/helpers/e2e-wrangler-test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ export class WranglerE2ETestHelper {
142142
const id = match[1];
143143

144144
onTestFinished(async () => {
145-
await this.run(`wrangler hyperdrive delete ${name}`);
145+
await this.run(`wrangler hyperdrive delete ${id}`);
146146
});
147147

148148
return { id, name };

tools/e2e/common.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ export type Database = {
3030
name: string;
3131
};
3232

33+
export type HyperdriveConfig = {
34+
id: string;
35+
name: string;
36+
created_on: string;
37+
};
38+
3339
class ApiError extends Error {
3440
constructor(
3541
readonly url: string,
@@ -221,3 +227,41 @@ export const deleteDatabase = async (id: string) => {
221227
true
222228
);
223229
};
230+
231+
export const listHyperdriveConfigs = async () => {
232+
const pageSize = 100;
233+
let page = 1;
234+
const results: HyperdriveConfig[] = [];
235+
while (results.length % pageSize === 0) {
236+
const res = (await apiFetch(
237+
`/hyperdrive/configs`,
238+
{ method: "GET" },
239+
false,
240+
new URLSearchParams({
241+
per_page: pageSize.toString(),
242+
page: page.toString(),
243+
})
244+
)) as HyperdriveConfig[];
245+
page++;
246+
results.push(...res);
247+
248+
if (res.length < pageSize || page > 5) {
249+
break;
250+
}
251+
}
252+
return results.filter(
253+
(config) =>
254+
config.name.includes("tmp-e2e") && // Databases are more than an hour old
255+
Date.now() - new Date(config.created_on).valueOf() > 1000 * 60 * 60
256+
);
257+
};
258+
259+
export const deleteHyperdriveConfig = async (id: string) => {
260+
await apiFetch(
261+
`/hyperdrive/configs/${id}`,
262+
{
263+
method: "DELETE",
264+
},
265+
true
266+
);
267+
};

tools/e2e/e2eCleanup.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
deleteKVNamespace,
44
deleteProject,
55
deleteWorker,
6+
listHyperdriveConfigs,
67
listTmpDatabases,
78
listTmpE2EProjects,
89
listTmpE2EWorkers,
@@ -80,4 +81,17 @@ async function run() {
8081
`Successfully deleted ${d1DatabasesToDelete.length} D1 databases`
8182
);
8283
}
84+
85+
const hyperdriveConfigsToDelete = await listHyperdriveConfigs();
86+
for (const config of hyperdriveConfigsToDelete) {
87+
console.log("Deleting Hyperdrive configs: " + config.id);
88+
await deleteDatabase(config.id);
89+
}
90+
if (hyperdriveConfigsToDelete.length === 0) {
91+
console.log(`No Hyperdrive configs to delete.`);
92+
} else {
93+
console.log(
94+
`Successfully deleted ${hyperdriveConfigsToDelete.length} hyperdrive configs`
95+
);
96+
}
8397
}

0 commit comments

Comments
 (0)