From 76dfe5e364114b10ef50c12de4fa4c93d6c466ad Mon Sep 17 00:00:00 2001 From: Stephan Bauer Date: Thu, 23 Nov 2023 21:27:08 +0100 Subject: [PATCH 1/2] Create temp directory only if necessary --- src/Aspire.Hosting/Dcp/Locations.cs | 10 ++++++++-- src/Aspire.Hosting/DistributedApplicationBuilder.cs | 3 +-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Aspire.Hosting/Dcp/Locations.cs b/src/Aspire.Hosting/Dcp/Locations.cs index f84a351ab2..96a42e9178 100644 --- a/src/Aspire.Hosting/Dcp/Locations.cs +++ b/src/Aspire.Hosting/Dcp/Locations.cs @@ -3,11 +3,17 @@ namespace Aspire.Hosting.Dcp; -internal sealed class Locations(string basePath) +internal sealed class Locations(string? basePath = null) { - public string DcpSessionDir => basePath; + public string DcpSessionDir => GetOrCreateBasePath(); public string DcpKubeconfigPath => Path.Combine(DcpSessionDir, "kubeconfig"); public string DcpLogSocket => Path.Combine(DcpSessionDir, "output.sock"); + + private string GetOrCreateBasePath() + { + basePath ??= Directory.CreateTempSubdirectory("aspire.").FullName; + return basePath; + } } diff --git a/src/Aspire.Hosting/DistributedApplicationBuilder.cs b/src/Aspire.Hosting/DistributedApplicationBuilder.cs index cf5e892537..a3d7fd965a 100644 --- a/src/Aspire.Hosting/DistributedApplicationBuilder.cs +++ b/src/Aspire.Hosting/DistributedApplicationBuilder.cs @@ -51,8 +51,7 @@ public DistributedApplicationBuilder(DistributedApplicationOptions options) _innerBuilder.Services.AddHostedService(); // We need a unique path per application instance - var path = Directory.CreateTempSubdirectory("aspire.").FullName; - _innerBuilder.Services.AddSingleton(new Locations(path)); + _innerBuilder.Services.AddSingleton(new Locations()); _innerBuilder.Services.AddSingleton(); // Publishing support From 798a7dec7c2464fcfaf323859b6a81546aa38db7 Mon Sep 17 00:00:00 2001 From: Stephan Bauer Date: Fri, 24 Nov 2023 12:23:18 +0100 Subject: [PATCH 2/2] Make basePath a field --- src/Aspire.Hosting/Dcp/Locations.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Aspire.Hosting/Dcp/Locations.cs b/src/Aspire.Hosting/Dcp/Locations.cs index 96a42e9178..38f122e66e 100644 --- a/src/Aspire.Hosting/Dcp/Locations.cs +++ b/src/Aspire.Hosting/Dcp/Locations.cs @@ -3,8 +3,10 @@ namespace Aspire.Hosting.Dcp; -internal sealed class Locations(string? basePath = null) +internal sealed class Locations { + private string? _basePath; + public string DcpSessionDir => GetOrCreateBasePath(); public string DcpKubeconfigPath => Path.Combine(DcpSessionDir, "kubeconfig"); @@ -13,7 +15,7 @@ internal sealed class Locations(string? basePath = null) private string GetOrCreateBasePath() { - basePath ??= Directory.CreateTempSubdirectory("aspire.").FullName; - return basePath; + _basePath ??= Directory.CreateTempSubdirectory("aspire.").FullName; + return _basePath; } }