Browse Source

Tye host (#817)

* refactored if

* refactored mess

* refactored foreach

* check for not null

* removed qualifyer

* removed cast<string>
finitereality/replica-status-colors
Marvin Huber 6 years ago
committed by GitHub
parent
commit
7a9e5c8021
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/Microsoft.Tye.Extensions/DiagnosticAgent.cs
  2. 37
      src/Microsoft.Tye.Hosting/TyeHost.cs

2
src/Microsoft.Tye.Extensions/DiagnosticAgent.cs

@ -14,7 +14,7 @@ namespace Microsoft.Tye
project.RelocateDiagnosticsDomainSockets = true; project.RelocateDiagnosticsDomainSockets = true;
var sidecar = project.Sidecars.FirstOrDefault(s => s.Name == "tye-diag-agent"); var sidecar = project.Sidecars.FirstOrDefault(s => s.Name == "tye-diag-agent");
if (sidecar is object) if (sidecar != null)
{ {
return sidecar; return sidecar;
} }

37
src/Microsoft.Tye.Hosting/TyeHost.cs

@ -216,22 +216,21 @@ namespace Microsoft.Tye.Hosting
// Port was passed in at the command-line, use it! // Port was passed in at the command-line, use it!
return int.Parse(port, NumberStyles.Number, CultureInfo.InvariantCulture); return int.Parse(port, NumberStyles.Number, CultureInfo.InvariantCulture);
} }
else if (IsPortInUseByBinding(_application, DefaultPort))
if (IsPortInUseByBinding(_application, DefaultPort))
{ {
// Port has been reserved for the app. // Port has been reserved for the app.
app.Logger.LogInformation("Default dashboard port {DefaultPort} has been reserved by the application, choosing random port.", DefaultPort); app.Logger.LogInformation("Default dashboard port {DefaultPort} has been reserved by the application, choosing random port.", DefaultPort);
return AutodetectPort; return AutodetectPort;
} }
else if (IsPortAlreadyInUse(DefaultPort))
{ if (!IsPortAlreadyInUse(DefaultPort))
// Port is in use by something already running.
app.Logger.LogInformation("Default dashboard port {DefaultPort} is in use, choosing random port.", DefaultPort);
return AutodetectPort;
}
else
{ {
return DefaultPort; return DefaultPort;
} }
// Port is in use by something already running.
app.Logger.LogInformation("Default dashboard port {DefaultPort} is in use, choosing random port.", DefaultPort);
return AutodetectPort;
} }
private static bool IsPortAlreadyInUse(int port) private static bool IsPortAlreadyInUse(int port)
@ -251,14 +250,11 @@ namespace Microsoft.Tye.Hosting
private static bool IsPortInUseByBinding(Application application, int port) private static bool IsPortInUseByBinding(Application application, int port)
{ {
foreach (var service in application.Services) foreach (var (_, service) in application.Services)
{ {
foreach (var binding in service.Value.Description.Bindings) if (service.Description.Bindings.Any(binding => binding.Port == port))
{ {
if (binding.Port == port) return true;
{
return true;
}
} }
} }
@ -273,13 +269,13 @@ namespace Microsoft.Tye.Hosting
MetricSink = new MetricSink(logger), MetricSink = new MetricSink(logger),
}; };
if (options.LoggingProvider is string && if (options.LoggingProvider != null &&
DiagnosticsProvider.TryParse(options.LoggingProvider, out var logging)) DiagnosticsProvider.TryParse(options.LoggingProvider, out var logging))
{ {
diagnosticsCollector.LoggingSink = new LoggingSink(logger, logging); diagnosticsCollector.LoggingSink = new LoggingSink(logger, logging);
} }
if (options.DistributedTraceProvider is string && if (options.DistributedTraceProvider != null &&
DiagnosticsProvider.TryParse(options.DistributedTraceProvider, out var tracing)) DiagnosticsProvider.TryParse(options.DistributedTraceProvider, out var tracing))
{ {
diagnosticsCollector.TracingSink = new TracingSink(logger, tracing); diagnosticsCollector.TracingSink = new TracingSink(logger, tracing);
@ -343,15 +339,15 @@ namespace Microsoft.Tye.Hosting
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{ {
url = url.Replace("&", "^&"); url = url.Replace("&", "^&");
System.Diagnostics.Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true }); Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true });
} }
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{ {
System.Diagnostics.Process.Start("xdg-open", url); Process.Start("xdg-open", url);
} }
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{ {
System.Diagnostics.Process.Start("open", url); Process.Start("open", url);
} }
} }
catch (Exception ex) catch (Exception ex)
@ -373,8 +369,7 @@ namespace Microsoft.Tye.Hosting
var providerText = new List<string>(); var providerText = new List<string>();
providerText.AddRange( providerText.AddRange(
new[] { options.DistributedTraceProvider, options.LoggingProvider, options.MetricsProvider } new[] { options.DistributedTraceProvider, options.LoggingProvider, options.MetricsProvider }
.Where(p => p is object) .Where(p => p != null)!);
.Cast<string>()!);
foreach (var text in providerText) foreach (var text in providerText)
{ {

Loading…
Cancel
Save