1 instantiation of Executable
Aspire.Hosting (1)
Dcp\Model\Executable.cs (1)
293var exe = new Executable(new ExecutableSpec
284 references to Executable
Aspire.Hosting (48)
Dcp\DcpExecutor.cs (10)
174RenderedModelResource<Executable>[] executables; 380Executable => appModelResource.GetResourceType(), 1033Executable exe => s => _resourceWatcher.SnapshotBuilder.ToSnapshot(exe, s), 1069Executable { Spec.Start: false } => true, 1162case Executable e: 1165var eu = await _kubernetesService.GetAsync<Executable>(e.Metadata.Name, cancellationToken: attemptCancellationToken).ConfigureAwait(false); 1224case RenderedModelResource<Executable> { DcpResource.Spec.Start: false } er when !DcpModelUtilities.ShouldDeferCreateForExplicitStart(er.ModelResource, er.DcpResource.Spec.Start): 1242case RenderedModelResource<Executable> er: 1243await EnsureResourceDeletedAsync<Executable>(resourceReference, cancellationToken).ConfigureAwait(false);
Dcp\DcpModelUtilities.cs (2)
101if (resource is Executable exe && exe.Metadata.Annotations.TryGetValue(CustomResource.ResourceReplicaCount, out var value) && int.TryParse(value, CultureInfo.InvariantCulture, out var replicas) && replicas > 1) 249if (resource.DcpResource is not Executable || enableAspireContainerTunnel)
Dcp\DcpResourceState.cs (1)
13public readonly ConcurrentDictionary<string, Executable> ExecutablesMap = [];
Dcp\DcpResourceWatcher.cs (9)
126Task.Run(() => WatchKubernetesResourceAsync<Executable>((t, r) => ProcessResourceChange(t, r, _resourceState.ExecutablesMap, Model.Dcp.ExecutableKind, (e, s) => _snapshotBuilder.ToSnapshot(e, s)))), 177else if (_resourceState.ExecutablesMap.TryGetValue(entry.ResourceName, out var executable)) 495resource is Executable { LogsAvailable: true } || 511if (resource is Executable executable) 553else if (_resourceState.ExecutablesMap.TryGetValue(resourceName, out var executable)) 555enumerable = new ResourceLogSource<Executable>(_logger, _kubernetesService, executable, follow: false); 599Executable e when e.LogsAvailable => new ResourceLogSource<T>(_logger, _kubernetesService, resource, follow: true), 896"Executable" => _resourceState.ExecutablesMap.TryGetValue(resourceName, out var executable) ? executable : null, 914else if (cr is Executable exe)
Dcp\ExecutableConfigurationResolver.cs (4)
32RenderedModelResource<Executable> renderedResource, 36var executable = renderedResource.DcpResource; 167RenderedModelResource<Executable> renderedResource, 168Executable executable)
Dcp\ExecutableCreator.cs (18)
23ILogger<ExecutableCreator> logger) : IObjectCreator<Executable, EmptyCreationContext> 34public IEnumerable<RenderedModelResource<Executable>> PrepareObjects(CancellationToken cancellationToken) 39return _appResources.Get().OfType<RenderedModelResource<Executable>>(); 43RenderedModelResource<Executable> resource, 50RenderedModelResource<Executable> renderedResource, 160RenderedModelResource<Executable> renderedResource, 165var executable = renderedResource.DcpResource; 185executable.Metadata.Annotations?.Remove(Executable.LaunchConfigurationsAnnotation); 188executable.SetAnnotationAsObjectList(Executable.LaunchConfigurationsAnnotation, plan.LaunchConfigurations); 220var executable = Executable.Create(instance.Name, executableAnnotation?.Command ?? "dotnet"); 240var executable = Executable.Create(instance.Name, resource.Command); 251Executable executable, 291private static void ApplyTerminal(IResource resource, Executable executable, ILogger logger) 320private static bool TryGetReplicaIndex(Executable executable, out int replicaIndex) 334private void AddRenderedResource(IResource resource, Executable executable) 336var renderedResource = new RenderedModelResource<Executable>(resource, executable);
Dcp\Model\Executable.cs (2)
291public static Executable Create(string name, string executablePath) 293var exe = new Executable(new ExecutableSpec
Dcp\Model\GroupVersion.cs (1)
36Schema.Add<Executable>(ExecutableKind, "executables");
Dcp\ResourceSnapshotBuilder.cs (1)
133public CustomResourceSnapshot ToSnapshot(Executable executable, CustomResourceSnapshot previous)
Aspire.Hosting.Tests (236)
Dcp\DcpExecutorTests.cs (185)
222var exe = Assert.Single(executables); 257var executables = kubernetesService.CreatedResources.OfType<Executable>().ToList(); 258var exe = Assert.Single(executables); 310var exe = GetCreatedExecutableForResource(kubernetesService, "tool"); 350var exe = GetCreatedExecutableForResource(kubernetesService, "tool"); 385var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 583var exe1 = Assert.Single(executables); 603var exe2 = executables[1]; 629var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 661var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 693var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 726var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 781var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 810var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 845var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 881var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 919var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 947var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 978var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 1010var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 1040var dcpExe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>()); 1162var dynamicExecutable = kubernetesService.CreatedResources.OfType<Executable>().Single(e => e.AppModelResourceName == "DynamicProgram"); 1318var firstExecutable = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "CoolProgram")); 1475foreach (var exe in executables) 3385foreach (var dcpExe in exes) 3430foreach (var dcpExe in exes) 3468var dcpExe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 3505var dcpExe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 3543var dcpExe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 4274var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4308var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4350var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4386var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4422var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4458var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4489var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4520var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4550var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4579var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4644var executable = GetCreatedExecutableForResource(kubernetesService, resource.Name); 4686List<Executable> dcpExes = []; 4690dcpExes.AddRange(kubernetesService.CreatedResources.OfType<Executable>()); 4695var debuggableExe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestExecutable"); 4698Assert.True(debuggableExe.TryGetAnnotationAsObjectList<ExecutableLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out var launchConfigs1)); 4703var nonDebuggableExe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestOtherExecutable"); 4705Assert.False(nonDebuggableExe.TryGetAnnotationAsObjectList<ProjectLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out _)); 4736var exe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>(), e => e.AppModelResourceName == "TestExecutable"); 4765var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4802var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4828var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4871var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4911var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4955var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 4999var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 5085var exe = GetCreatedExecutableForResource(kubernetes, "proj"); 5123var executables = kubernetesService.CreatedResources.OfType<Executable>() 5277var executables = kubernetesService.CreatedResources.OfType<Executable>() 5323var exe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>(), e => e.AppModelResourceName == "TestExecutable"); 5423var exe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>(), e => e.AppModelResourceName == "TestExecutable"); 5522var exe = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "CoolProgram")); 5600var dcpExes = kubernetesService.CreatedResources.OfType<Executable>().ToList(); 5603var exe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestExecutable"); 5637var dcpExes = kubernetesService.CreatedResources.OfType<Executable>().ToList(); 5640var debuggableExe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestExecutable"); 5642Assert.False(debuggableExe.TryGetAnnotationAsObjectList<ProjectLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out _)); 5644var nonDebuggableExe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestOtherExecutable"); 5646Assert.False(nonDebuggableExe.TryGetAnnotationAsObjectList<ProjectLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out _)); 5678var dcpExes = kubernetesService.CreatedResources.OfType<Executable>().ToList(); 5681var exe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestExecutable"); 5714var dcpExes = kubernetesService.CreatedResources.OfType<Executable>().ToList(); 5717var exe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestExecutable"); 5756var dcpExes = kubernetesService.CreatedResources.OfType<Executable>().ToList(); 5759var exe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestExecutable"); 5798var dcpExes = kubernetesService.CreatedResources.OfType<Executable>().ToList(); 5801var exe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestExecutable"); 5840var dcpExes = kubernetesService.CreatedResources.OfType<Executable>().ToList(); 5843var exe = Assert.Single(dcpExes, e => e.AppModelResourceName == "TestExecutable"); 5876var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 5916var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 5956var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 5989var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 6028var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 6069var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 6104var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6109Assert.True(exe.TryGetAnnotationAsObjectList<ProjectLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out var launchConfigs)); 6152var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6211var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6263var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6308var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6379var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6393Assert.True(exe.TryGetAnnotationAsObjectList<TestMauiLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out var launchConfigs)); 6483var executable = GetCreatedExecutableForResource(kubernetesService, "proj"); 6501Executable.LaunchConfigurationsAnnotation, 6627var executable = GetCreatedExecutableForResource(kubernetesService, "proj"); 6648Executable.LaunchConfigurationsAnnotation, 6710var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6800var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6915var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 6968var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 7033var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 7060var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 7102var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 7141var standardExe = GetCreatedExecutableForResource(kubernetesService, "standard-project"); 7144var customExe = GetCreatedExecutableForResource(kubernetesService, "custom-project"); 7149Assert.True(customExe.TryGetAnnotationAsObjectList<ProjectLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out var launchConfigs)); 7200var standardExe = GetCreatedExecutableForResource(kubernetesService, "standard-project"); 7204var functionsExe = GetCreatedExecutableForResource(kubernetesService, "functions-project"); 7239var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 7320var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7324Assert.True(exe.TryGetAnnotationAsObjectList<ProjectLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out var launchConfigs)); 7351var exe = GetCreatedExecutableForResource(kubernetesService, "file-project"); 7399var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7440var exe = GetCreatedExecutableForResource(kubernetesService, "TestExecutable"); 7442Assert.True(exe.TryGetAnnotationAsObjectList<ExecutableLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out var launchConfigs)); 7521var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7560var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7597var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7633var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7668var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7719var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7757var exe = GetCreatedExecutableForResource(kubernetesService, "ServiceA"); 7792var exe = GetCreatedExecutableForResource(kubernetesService, "TestFunction"); 7796Assert.True(exe.TryGetAnnotationAsObjectList<ProjectLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out var launchConfigs)); 7831var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 7866var exe = GetCreatedExecutableForResource(kubernetesService, "TestDotnetProject"); 7885var dcpExecutable = Executable.Create("test-exe", "dotnet"); 7930var exe = GetCreatedExecutableForResource(kubernetesService, "TestDotnetProject"); 7962var exe = GetCreatedExecutableForResource(kubernetesService, "TestDotnetProject"); 8007Assert.Empty(kubernetesService.CreatedResources.OfType<Executable>()); 8056var exe = GetCreatedExecutableForResource(kubernetesService, "TestExecutable"); 8111var exe = GetCreatedExecutableForResource(kubernetesService, "TestExecutable"); 8162var exe = GetCreatedExecutableForResource(kubernetesService, "TestExecutable"); 8215var exe = GetCreatedExecutableForResource(kubernetesService, "TestExecutable"); 8248var exe = GetCreatedExecutableForResource(kubernetesService, "TestExecutable"); 8292var exe = GetCreatedExecutableForResource(kubernetesService, "TestExecutable"); 8381var exe = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "TestExecutable")); 8423var exe = GetCreatedExecutableForResource(kubernetesService, "TestExecutable"); 8460var exe = GetCreatedExecutableForResource(kubernetesService, "TestDotnetProject"); 8585var executable = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "TestDotnetProject")); 8654var exe1 = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "TestExecutable")); 8664var exe2 = executables[1]; 8673var exe3 = executables[2]; 8716var exe1 = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "TestExecutable")); 8735var exe2 = executables[1]; 8775Assert.Empty(kubernetesService.CreatedResources.OfType<Executable>()); 8811var exe = GetCreatedExecutableForResource(kubernetesService, "TestDotnetProject"); 9152var startedExecutable = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "anExecutable"), e => e.Spec.Start == true); 9242var executable = Assert.Single(GetCreatedExecutablesForResource(kubernetesService, "anExecutable")); 9480while (!kubernetesService.CreatedResources.OfType<Executable>().Any(e => e.AppModelResourceName == upstreamExecutable.Resource.Name)) 9504var upstreamExecutableResource = Assert.Single(createdResources.OfType<Executable>(), e => e.AppModelResourceName == upstreamExecutable.Resource.Name); 9505var downstreamExecutableResource = Assert.Single(createdResources.OfType<Executable>(), e => e.AppModelResourceName == downstreamExecutable.Resource.Name); 9719var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 9723Assert.True(exe.TryGetAnnotationAsObjectList<ExecutableLaunchConfiguration>(Executable.LaunchConfigurationsAnnotation, out var launchConfigs)); 9772Assert.Empty(kubernetesService.CreatedResources.OfType<Executable>()); 9811var exe = GetCreatedExecutableForResource(kubernetesService, "proj"); 9815private static Executable GetCreatedExecutableForResource(TestKubernetesService kubernetesService, string appModelResourceName) 9820private static List<Executable> GetCreatedExecutablesForResource(TestKubernetesService kubernetesService, string appModelResourceName) 9823.OfType<Executable>() 9865var exes = kubernetesService.CreatedResources.OfType<Executable>() 9903var exe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>(), e => e.AppModelResourceName == "ServiceA"); 9936var exe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>(), e => e.AppModelResourceName == "shell"); 10178var exe = Assert.Single(kubernetesService.CreatedResources.OfType<Executable>(), e => e.AppModelResourceName == "TestExecutable");
Dcp\ExecutableLaunchPlanTests.cs (4)
175var executable = Executable.Create("app-12345678", "stale-tool"); 179var renderedResource = new RenderedModelResource<Executable>(resource, executable); 203Assert.False(executable.Metadata.Annotations?.ContainsKey(Executable.LaunchConfigurationsAnnotation) is true);
Dcp\ResourceSnapshotBuilderTests.cs (23)
45var executable = Executable.Create("exe", "dotnet"); 67var executable = Executable.Create("project", "dotnet"); 99var executable = Executable.Create(resource.Name, "python"); 132var executable = Executable.Create("project", "dotnet"); 160var executable = Executable.Create("proj", "dotnet"); 185var executable = CreateExecutable( 203var executable = CreateExecutable( 218var executable = Executable.Create("exe", "pwsh"); 233var executable = Executable.Create("exe", "pwsh"); 248var executable = Executable.Create("exe", "pwsh"); 263var executable = Executable.Create("exe", "pwsh"); 275private static Executable CreateExecutable(AppLaunchArgumentAnnotation[] launchArgumentAnnotations, IReadOnlyList<string> effectiveArgs) 277var executable = Executable.Create("exe", "pwsh");
Dcp\TestKubernetesService.cs (2)
354if (res is Executable exe && result is Executable eu)
DistributedApplicationTests.cs (22)
1265var serviceA = await KubernetesHelper.GetResourceByNameMatchAsync<Executable>(kubernetes, executablePattern, r => r.Status?.State == ExecutableState.Running, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1270serviceA = await KubernetesHelper.GetResourceByNameMatchAsync<Executable>(kubernetes, executablePattern, r => r.Status?.State == ExecutableState.Finished, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1275serviceA = await KubernetesHelper.GetResourceByNameMatchAsync<Executable>(kubernetes, executablePattern, r => r.Status?.State == ExecutableState.Running, token).DefaultTimeout(TestConstants.LongTimeoutDuration); 1307var serviceA = await KubernetesHelper.GetResourceByNameAsync<Executable>(kubernetes, $"{testName}-servicea", suffix!, r => r.Status?.EffectiveEnv is not null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1310var nodeApp = await KubernetesHelper.GetResourceByNameMatchAsync<Executable>(kubernetes, $"{testName}-nodeapp-{ReplicaIdRegex}-{suffix}", r => r.Status?.EffectiveEnv is not null).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 1385var aspireDashboard = await KubernetesHelper.GetResourceByNameMatchAsync<Executable>(kubernetes, $"aspire-dashboard-{ReplicaIdRegex}-{suffix}", r => r.Status?.EffectiveEnv is not null).DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout); 1422var aspireDashboard = await KubernetesHelper.GetResourceByNameMatchAsync<Executable>(kubernetes, $"aspire-dashboard-{ReplicaIdRegex}-{suffix}", r => r.Status?.EffectiveEnv is not null).DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout); 1654await foreach (var resource in s.WatchAsync<Executable>().DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout)) 1656Assert.True(resource.Item2.Metadata.Annotations.TryGetValue(Executable.ResourceNameAnnotation, out var value)); 1847var exeList = await s.ListAsync<Executable>().DefaultTimeout(); 1849var service = Assert.Single(exeList, c => $"{testName}-servicea".Equals(c.AppModelResourceName)); 1925var exeList = await s.ListAsync<Executable>().DefaultTimeout(); 1927var service = Assert.Single(exeList, c => $"{testName}-servicea".Equals(c.AppModelResourceName)); 2061var executables = await kubernetes.ListAsync<Executable>(cancellationToken: token) 2063var dcpExecutable = Assert.Single(executables, e => e.AppModelResourceName == executable.Resource.Name); 2237var worker = await KubernetesHelper.GetResourceByNameMatchAsync<Executable>(kubernetes, workerNamePattern, r => r.Status?.State == ContainerState.Running, token)