Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tylake/configuration #51

Merged
merged 40 commits into from
May 20, 2019
Merged
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
f35f0f7
Adding a configurationsource for use in ASP
tylorhl-msft Apr 30, 2019
a3e69ed
Adding dependencies
tylorhl-msft Apr 30, 2019
85b7790
Fixing name
tylorhl-msft Apr 30, 2019
236c0b1
Modifying for new settings and optional SF
tylorhl Apr 30, 2019
fc104f2
Added Configuration parameter to StartUpUtil, not being used yet
tylorhl Apr 30, 2019
8ddead9
Moved service fabric configuration to servicehost; added settings con…
tylorhl May 1, 2019
924816b
Reducing surface area of SF config calls
tylorhl May 1, 2019
2832380
Adding SF to config builder
tylorhl May 1, 2019
fb9ce9f
Correcting errorneous default value
tylorhl May 1, 2019
3e91d60
Runs and apis are hittable
tylorhl May 1, 2019
f8225ea
Removing dev strings
tylorhl May 1, 2019
e4a2383
Adding gitignore entry
tylorhl May 1, 2019
7d999f4
Modifying dev default auth connection string
tylorhl May 1, 2019
f627988
Modifying launch api to simple get call
tylorhl May 1, 2019
323972f
Switching connection string
tylorhl May 1, 2019
3e30cbb
Adding onebox
tylorhl May 1, 2019
3d3238d
Uppdating dev settings
tylorhl May 1, 2019
db6946e
Modified the sf configuration source to better conform to customizabl…
tylorhl May 2, 2019
90dc210
Using constant instead of literal
tylorhl May 2, 2019
0518723
Enabling more of the local scenario
tylorhl May 2, 2019
862c779
Modified mef extension to generate ILoggers for classes automatically
tylorhl May 2, 2019
a97c9f7
Updating settings for onebox scenario
tylorhl May 2, 2019
4cad95d
Adding authentication
tylorhl May 2, 2019
5210b62
Begin adding auth attribute; Not working yet
tylorhl May 6, 2019
ee06bc4
Adding auth scenario; needs cleaning
tylorhl-msft May 6, 2019
547f49b
Disable RequireAuthenticatedUser if in OneBox mode
tylorhl-msft May 7, 2019
572de3e
Revert "Disable RequireAuthenticatedUser if in OneBox mode"
tylorhl-msft May 7, 2019
3047142
Removing authentication requirement from OneBox scenario
May 7, 2019
0e79e8c
Temporary: modified for rerouteService scenario
May 7, 2019
8182575
Minor code improvements
May 8, 2019
951b229
Removing unnecessary project dependency
May 9, 2019
d7a006b
Added a gateway policy for compatibility in SF auth scenario; Moved s…
May 9, 2019
9b4c8ec
Cleanup
May 10, 2019
10186cc
Reverting auto changes
May 10, 2019
16c683f
Renaming appinsights setting to name in SF
May 15, 2019
9044b14
Modified gateway policy for fix in SF
May 15, 2019
a93b6c8
Updating SF xmls with EnableOneBox
May 15, 2019
ce22cf2
Added varying documentation by request
May 15, 2019
4f66f75
Adding onebox to settings
May 17, 2019
d6294a1
Renaming based on feedback
May 17, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions DataProcessing/DataX.Utilities/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*/obj
5 changes: 4 additions & 1 deletion Services/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -128,4 +128,7 @@ BundleArtifacts/
/DeploymentCloud/Deployment.DataX/cachedVariables
/DeploymentCloud/Deployment.DataX/Temp
/DeploymentCloud/Deployment.DataX/Outputs
/DeploymentCloud/Deployment.DataX/Packages
/DeploymentCloud/Deployment.DataX/Packages

# Development settings
appsettings.Development.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ public class Startup
{

private const string _MetricsHttpEndpointRelativeUri = "/api/data/upload";
private readonly ILoggerFactory _loggerFactory;

public Startup(IHostingEnvironment env)
public Startup(IHostingEnvironment env, ILoggerFactory loggerFactory)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
Expand All @@ -37,6 +38,8 @@ public Startup(IHostingEnvironment env)
.AddEnvironmentVariables();

Configuration = builder.Build();

_loggerFactory = loggerFactory;
}

public IConfiguration Configuration { get; }
Expand All @@ -51,7 +54,7 @@ public void ConfigureServices(IServiceCollection services)

// Export the Config dependencies
Type[] exportTypes = new Type[] { typeof(FlowOperation), typeof(RuntimeConfigGeneration), typeof(JobOperation) };
services.AddMefExportsFromAssemblies(ServiceLifetime.Scoped, GetOneBoxModeDependencyAssemblies(), exportTypes, new object[] { });
services.AddMefExportsFromAssemblies(ServiceLifetime.Scoped, GetOneBoxModeDependencyAssemblies(), exportTypes, null, _loggerFactory, true);
var result = InitTemplatesForLocal(services);
Ensure.IsSuccessResult(result);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class LocalSparkClientFactory : ISparkJobClientFactory
private ILogger _logger { get; }

[ImportingConstructor]
public LocalSparkClientFactory(ILogger logger)
public LocalSparkClientFactory(ILogger<LocalSparkClientFactory> logger)
{
this._logger = logger;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace DataX.Config
public class SparkJobOperation
{
[ImportingConstructor]
public SparkJobOperation(SparkJobData jobData, SparkClusterManager clusterManager, ILogger logger)
public SparkJobOperation(SparkJobData jobData, SparkClusterManager clusterManager, ILogger<SparkJobOperation> logger)
{
this.JobData= jobData;
this.ClusterManager = clusterManager;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class RuntimeConfigGeneration
/// </summary>
[ImportingConstructor]
public RuntimeConfigGeneration(
ILogger logger,
ILogger<RuntimeConfigGeneration> logger,
FlowDataManager flows,
JobDataManager jobData,
[ImportMany] IEnumerable<IFlowDeploymentProcessor> flowProcessors
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// *********************************************************************
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License
// *********************************************************************
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Composition.Hosting.Core;
using System.Linq;
using System.Reflection;

namespace DataX.Config.Utility
{
/// <summary>
/// Using a LoggerFactory, dynamically creates Logger<T> to resolve for MEF
/// Falls back to InstanceExportDescriptorProvider implementation if not a Logger
/// </summary>
public class LoggerExportDescriptorProvider : InstanceExportDescriptorProvider
{
private static readonly Type _ILoggerType = typeof(ILogger);

private static readonly MethodInfo _CreateLogger =
typeof(Microsoft.Extensions.Logging.LoggerFactoryExtensions)
.GetMethods()
.Where(m => m.Name == nameof(LoggerFactoryExtensions.CreateLogger) && m.IsGenericMethod)
.FirstOrDefault();

private readonly ILoggerFactory _loggerFactory;
private readonly bool _hasInstances;

public LoggerExportDescriptorProvider(object[] instances, ILoggerFactory loggerFactory)
: base(instances)
{
_hasInstances = instances?.Length > 0;
_loggerFactory = loggerFactory;
}

///<inheritdoc />
public override IEnumerable<ExportDescriptorPromise> GetExportDescriptors(CompositionContract contract, DependencyAccessor descriptorAccessor)
tylorhl marked this conversation as resolved.
Show resolved Hide resolved
{
if (_loggerFactory != null && _ILoggerType.IsAssignableFrom(contract.ContractType))
{
ILogger logger;

if (contract.ContractType.GenericTypeArguments.Length > 0)
{
logger = CreateLogger(contract.ContractType.GenericTypeArguments.FirstOrDefault());
}
else
{
logger = _loggerFactory.CreateLogger(contract.ContractType);
}

yield return new ExportDescriptorPromise(
contract,
contract.ContractType.FullName,
true,
NoDependencies,
dependencies => ExportDescriptor.Create((context, operation) => logger, NoMetadata));
}
else if(_hasInstances)
{
foreach (var descriptor in base.GetExportDescriptors(contract, descriptorAccessor))
{
yield return descriptor;
}
}
}

private ILogger CreateLogger(Type t)
{
var genericMethod = _CreateLogger.MakeGenericMethod(t);
return genericMethod.Invoke(null, new object[] { _loggerFactory }) as ILogger;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ Licensed under the MIT License
<Parameter Name="MefStorageAccountName" DefaultValue="" />
<Parameter Name="MefContainerName" DefaultValue="" />
<Parameter Name="MefBlobDirectory" DefaultValue="" />
<Parameter Name="EnableOneBox" DefaultValue="false" />
</Parameters>
<!-- Import the ServiceManifest from the ServicePackage. The ServiceManifestName and ServiceManifestVersion
should match the Name and Version attributes of the ServiceManifest element defined in the
Expand All @@ -37,6 +38,7 @@ Licensed under the MIT License
<Parameter Name="cosmosDBConfigDatabaseName" Value="[cosmosDBConfigDatabaseName]" />
<Parameter Name="cosmosDBConfigCollectionName" Value="[cosmosDBConfigCollectionName]" />
<Parameter Name="AppInsightsIntrumentationKey" Value="[AppInsightsIntrumentationKey]" />
<Parameter Name="EnableOneBox" Value="[EnableOneBox]" />
</Section>
</Settings>
</ConfigOverride>
Expand All @@ -57,6 +59,7 @@ Licensed under the MIT License
<Parameter Name="cosmosDBConfigDatabaseName" Value="[cosmosDBConfigDatabaseName]" />
<Parameter Name="cosmosDBConfigCollectionName" Value="[cosmosDBConfigCollectionName]" />
<Parameter Name="AppInsightsIntrumentationKey" Value="[AppInsightsIntrumentationKey]" />
<Parameter Name="EnableOneBox" Value="[EnableOneBox]" />
</Section>
</Settings>
</ConfigOverride>
Expand All @@ -77,6 +80,7 @@ Licensed under the MIT License
<Parameter Name="cosmosDBConfigDatabaseName" Value="[cosmosDBConfigDatabaseName]" />
<Parameter Name="cosmosDBConfigCollectionName" Value="[cosmosDBConfigCollectionName]" />
<Parameter Name="AppInsightsIntrumentationKey" Value="[AppInsightsIntrumentationKey]" />
<Parameter Name="EnableOneBox" Value="[EnableOneBox]" />
</Section>
</Settings>
</ConfigOverride>
Expand All @@ -100,6 +104,7 @@ Licensed under the MIT License
<Parameter Name="MefStorageAccountName" Value="[MefStorageAccountName]" />
<Parameter Name="MefContainerName" Value="[MefContainerName]" />
<Parameter Name="MefBlobDirectory" Value="[MefBlobDirectory]" />
<Parameter Name="EnableOneBox" Value="[EnableOneBox]" />
</Section>
</Settings>
</ConfigOverride>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,6 @@ Licensed under the MIT License
<Parameter Name="MefStorageAccountName" Value="" />
<Parameter Name="MefContainerName" Value="" />
<Parameter Name="MefBlobDirectory" Value="" />
<Parameter Name="EnableOneBox" Value="" />
</Parameters>
</Application>
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ Licensed under the MIT License
<Parameter Name="MefStorageAccountName" Value="" />
<Parameter Name="MefContainerName" Value="" />
<Parameter Name="MefBlobDirectory" Value="" />
<Parameter Name="EnableOneBox" Value="" />
</Parameters>
</Application>
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ Licensed under the MIT License
<Parameter Name="MefStorageAccountName" Value="" />
<Parameter Name="MefContainerName" Value="" />
<Parameter Name="MefBlobDirectory" Value="" />
<Parameter Name="EnableOneBox" Value="" />
</Parameters>
</Application>
10 changes: 5 additions & 5 deletions Services/DataX.Flow/DataX.Flow/DataX.Flow.sfproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets=";ValidateMSBuildFiles">
<Import Project="..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props" Condition="Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" />
<Import Project="..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props" Condition="Exists('..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" />
<PropertyGroup Label="Globals">
<ProjectGuid>34e85436-8f73-44fc-9c03-ca205077d68d</ProjectGuid>
<ProjectVersion>2.3</ProjectVersion>
Expand Down Expand Up @@ -42,9 +42,9 @@
<ApplicationProjectTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Service Fabric Tools\Microsoft.VisualStudio.Azure.Fabric.ApplicationProject.targets</ApplicationProjectTargetsPath>
</PropertyGroup>
<Import Project="$(ApplicationProjectTargetsPath)" Condition="Exists('$(ApplicationProjectTargetsPath)')" />
<Import Project="..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" />
<Target Name="ValidateMSBuildFiles">
<Error Condition="!Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" Text="Unable to find the '..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
<Error Condition="!Exists('..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" Text="Unable to find the '..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
<Import Project="..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets" Condition="Exists('..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" />
<Target Name="ValidateMSBuildFiles" BeforeTargets="PrepareForBuild">
<Error Condition="!Exists('..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props')" Text="Unable to find the '..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.props' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
<Error Condition="!Exists('..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets')" Text="Unable to find the '..\..\packages\Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7\build\Microsoft.VisualStudio.Azure.Fabric.Application.targets' file. Please restore the 'Microsoft.VisualStudio.Azure.Fabric.MSBuild' Nuget package." />
</Target>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,17 @@
using System.Linq;
using DataX.Utilities.Web;
using System.Collections.Generic;
using Microsoft.AspNetCore.Authorization;
using DataX.ServiceHost.AspNetCore.Authorization.Roles;

namespace Flow.Management.Controllers
{
[Route("api")]
[DataXReader]
public partial class FlowManagementController : Controller
{
private readonly ILogger<FlowManagementController> _logger;
private FlowOperation _flowOperation;
private readonly FlowOperation _flowOperation;
private JobOperation _jobOperation;
private RuntimeConfigGeneration _runtimeConfigGenerator;
private bool _isLocal = false;
Expand All @@ -44,6 +47,7 @@ public FlowManagementController(ILogger<FlowManagementController> logger, FlowOp

[HttpPost]
[Route("flow/save")] // save flow config
[DataXWriter]
public async Task<ApiResult> SaveFlow([FromBody]JObject config)
{
try
Expand Down Expand Up @@ -75,6 +79,7 @@ public async Task<ApiResult> SaveFlow([FromBody]JObject config)

[HttpPost]
[Route("flow/generateconfigs")] // generate flow configs
[DataXWriter]
public async Task<ApiResult> GenerateConfigs([FromBody] string flowName)
{
try
Expand Down Expand Up @@ -154,6 +159,7 @@ public async Task<ApiResult> GetAllFlowsMin()

[HttpPost]
[Route("flow/startjobs")]
[DataXWriter]
public async Task<ApiResult> StartJobsForFlow([FromBody] string flowName)
{
try
Expand All @@ -174,6 +180,7 @@ public async Task<ApiResult> StartJobsForFlow([FromBody] string flowName)

[HttpPost]
[Route("flow/restartjobs")]
[DataXWriter]
public async Task<ApiResult> RestartJobsForFlow([FromBody] string flowName)
{
try
Expand All @@ -194,6 +201,7 @@ public async Task<ApiResult> RestartJobsForFlow([FromBody] string flowName)

[HttpPost]
[Route("flow/stopjobs")]
[DataXWriter]
public async Task<ApiResult> StopJobsForFlow([FromBody] string flowName)
{
try
Expand All @@ -215,6 +223,7 @@ public async Task<ApiResult> StopJobsForFlow([FromBody] string flowName)

[HttpPost]
[Route("userqueries/schema")] // generator (sqlparser)
[DataXWriter]
public async Task<ApiResult> GetSchema([FromBody]JObject config)
{
try
Expand Down Expand Up @@ -242,6 +251,7 @@ public async Task<ApiResult> GetSchema([FromBody]JObject config)

[HttpPost]
[Route("userqueries/codegen")] // generator
[DataXWriter]
public async Task<ApiResult> GetCodeGen([FromBody]JObject config)
{
try
Expand Down Expand Up @@ -328,6 +338,7 @@ public async Task<ApiResult> GetJobsByNames([FromBody] string[] jobNames)

[HttpPost]
[Route("job/start")] // start the job
[DataXWriter]
public async Task<ApiResult> StartJob([FromBody] string jobName)
{
try
Expand All @@ -349,6 +360,7 @@ public async Task<ApiResult> StartJob([FromBody] string jobName)

[HttpPost]
[Route("job/stop")] // stop the job
[DataXWriter]
public async Task<ApiResult> StopJob([FromBody] string jobName)
{
try
Expand All @@ -369,6 +381,7 @@ public async Task<ApiResult> StopJob([FromBody] string jobName)

[HttpPost]
[Route("job/restart")]
[DataXWriter]
public async Task<ApiResult> RestartJob([FromBody] string jobName)
{
try
Expand All @@ -390,6 +403,7 @@ public async Task<ApiResult> RestartJob([FromBody] string jobName)

[HttpGet]
[Route("job/syncall")]
[DataXWriter]
public async Task<ApiResult> SyncAllJobs()
{
try
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
Expand Down Expand Up @@ -46,9 +46,11 @@
<ProjectReference Include="..\..\DataX.Config\DataX.Config.Input.EventHub\DataX.Config.Input.EventHub.csproj" />
<ProjectReference Include="..\..\DataX.Config\DataX.Config.KeyVault\DataX.Config.KeyVault.csproj" />
<ProjectReference Include="..\..\DataX.Config\DataX.Config.LivyClient\DataX.Config.LivyClient.csproj" />
<ProjectReference Include="..\..\DataX.Config\DataX.Config.Local\DataX.Config.Local.csproj" />
<ProjectReference Include="..\..\DataX.Config\DataX.Config.Storage\DataX.Config.Storage.csproj" />
<ProjectReference Include="..\..\DataX.Config\DataX.Config\DataX.Config.csproj" />
<ProjectReference Include="..\..\DataX.ServiceHost\DataX.ServiceHost.AspNetCore\DataX.ServiceHost.AspNetCore.csproj" />
<ProjectReference Include="..\..\DataX.ServiceHost\DataX.ServiceHost\DataX.ServiceHost.csproj" />
<ProjectReference Include="..\..\DataX.Utilities\DataX.Utilities.KeyVault\DataX.Utilities.KeyVault.csproj" />
<ProjectReference Include="..\..\DataX.Utilities\DataX.Utilities.Telemetry\DataX.Utilities.Telemetry.csproj" />
<ProjectReference Include="..\..\DataX.Utilities\DataX.Utilities.Web\DataX.Utilities.Web.csproj" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,13 @@ namespace Flow.Management
/// </summary>
internal sealed class FlowManagementService : StatelessService
{
public FlowManagementService(StatelessServiceContext context)
private readonly IWebHostBuilder _webHostBuilder;

public FlowManagementService(StatelessServiceContext context, IWebHostBuilder webHostBuilder)
: base(context)
{ }
{
_webHostBuilder = webHostBuilder;
}

/// <summary>
/// Optional override to create listeners (like tcp, http) for this service instance.
Expand All @@ -43,15 +47,13 @@ protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceLis
{
ServiceEventSource.Current.ServiceMessage(serviceContext, $"Starting Kestrel on {url}");

return new WebHostBuilder()
.UseKestrel()


return _webHostBuilder
.ConfigureServices(
services => services
.AddSingleton<StatelessServiceContext>(serviceContext)
)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()

.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
.UseUrls(url)
.Build();
Expand Down
Loading