From bedddd176b8ee35c675ee23cc11c6e51134b94ed Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Wed, 28 Aug 2024 02:24:41 -0300
Subject: [PATCH] refactor(terraform-provider): Use single cache namespace
 (#31054)

---
 .../datasource/terraform-provider/index.ts    | 21 ++++++++++---------
 .../manager/terraform/lockfile/hash.ts        |  4 ++--
 lib/util/cache/package/types.ts               |  5 +----
 3 files changed, 14 insertions(+), 16 deletions(-)

diff --git a/lib/modules/datasource/terraform-provider/index.ts b/lib/modules/datasource/terraform-provider/index.ts
index 56c78a7522..b960f8cf42 100644
--- a/lib/modules/datasource/terraform-provider/index.ts
+++ b/lib/modules/datasource/terraform-provider/index.ts
@@ -51,10 +51,11 @@ export class TerraformProviderDatasource extends TerraformDatasource {
 
   @cache({
     namespace: `datasource-${TerraformProviderDatasource.id}`,
-    key: (getReleasesConfig: GetReleasesConfig) =>
-      `${
-        getReleasesConfig.registryUrl
-      }/${TerraformProviderDatasource.getRepository(getReleasesConfig)}`,
+    key: (getReleasesConfig: GetReleasesConfig) => {
+      const url = getReleasesConfig.registryUrl;
+      const repo = TerraformProviderDatasource.getRepository(getReleasesConfig);
+      return `getReleases:${url}/${repo}`;
+    },
   })
   async getReleases({
     packageName,
@@ -186,9 +187,9 @@ export class TerraformProviderDatasource extends TerraformDatasource {
   }
 
   @cache({
-    namespace: `datasource-${TerraformProviderDatasource.id}-builds`,
+    namespace: `datasource-${TerraformProviderDatasource.id}`,
     key: (registryURL: string, repository: string, version: string) =>
-      `${registryURL}/${repository}/${version}`,
+      `getBuilds:${registryURL}/${repository}/${version}`,
   })
   async getBuilds(
     registryURL: string,
@@ -288,8 +289,8 @@ export class TerraformProviderDatasource extends TerraformDatasource {
   }
 
   @cache({
-    namespace: `datasource-${TerraformProviderDatasource.id}-zip-hashes`,
-    key: (zipHashUrl: string) => zipHashUrl,
+    namespace: `datasource-${TerraformProviderDatasource.id}`,
+    key: (zipHashUrl: string) => `getZipHashes:${zipHashUrl}`,
   })
   async getZipHashes(zipHashUrl: string): Promise<string[] | undefined> {
     // The hashes are formatted as the result of sha256sum in plain text, each line: <hash>\t<filename>
@@ -315,9 +316,9 @@ export class TerraformProviderDatasource extends TerraformDatasource {
   }
 
   @cache({
-    namespace: `datasource-${TerraformProviderDatasource.id}-releaseBackendIndex`,
+    namespace: `datasource-${TerraformProviderDatasource.id}`,
     key: (backendLookUpName: string, version: string) =>
-      `${backendLookUpName}/${version}`,
+      `getReleaseBackendIndex:${backendLookUpName}/${version}`,
   })
   async getReleaseBackendIndex(
     backendLookUpName: string,
diff --git a/lib/modules/manager/terraform/lockfile/hash.ts b/lib/modules/manager/terraform/lockfile/hash.ts
index f871d6863f..7a4aa15c8c 100644
--- a/lib/modules/manager/terraform/lockfile/hash.ts
+++ b/lib/modules/manager/terraform/lockfile/hash.ts
@@ -107,8 +107,8 @@ export class TerraformProviderHash {
   }
 
   @cache({
-    namespace: `datasource-terraform-provider-hash`,
-    key: (build: TerraformBuild) => build.url,
+    namespace: `terraform-provider-hash`,
+    key: (build: TerraformBuild) => `calculateSingleHash:${build.url}`,
     ttlMinutes: TerraformProviderHash.hashCacheTTL,
   })
   static async calculateSingleHash(
diff --git a/lib/util/cache/package/types.ts b/lib/util/cache/package/types.ts
index 522e15b53b..ad21419faf 100644
--- a/lib/util/cache/package/types.ts
+++ b/lib/util/cache/package/types.ts
@@ -90,10 +90,6 @@ export type PackageCacheNamespace =
   | 'datasource-ruby-version'
   | 'datasource-rubygems'
   | 'datasource-terraform-module'
-  | 'datasource-terraform-provider-hash'
-  | 'datasource-terraform-provider-builds'
-  | 'datasource-terraform-provider-releaseBackendIndex'
-  | 'datasource-terraform-provider-zip-hashes'
   | 'datasource-terraform-provider'
   | 'datasource-terraform'
   | 'datasource-unity3d'
@@ -101,6 +97,7 @@ export type PackageCacheNamespace =
   | 'github-tags-datasource-v2'
   | 'merge-confidence'
   | 'preset'
+  | 'terraform-provider-hash'
   | 'url-sha256';
 
 export type CombinedKey = `global%%${PackageCacheNamespace}%%${string}`;
-- 
GitLab