Skip to content

Commit 6b2cb26

Browse files
committed
Some minor refactorings
1 parent 06026d8 commit 6b2cb26

File tree

5 files changed

+37
-39
lines changed

5 files changed

+37
-39
lines changed

src/WebJobs.Script.WebHost/Controllers/AdminController.cs

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the MIT License. See License.txt in the project root for license information.
33

4-
using System;
54
using System.Collections.Generic;
65
using System.Collections.ObjectModel;
76
using System.Diagnostics;
@@ -14,8 +13,6 @@
1413
using System.Web.Http.Controllers;
1514
using Microsoft.Azure.WebJobs.Extensions.Http;
1615
using Microsoft.Azure.WebJobs.Host;
17-
using Microsoft.Azure.WebJobs.Host.Config;
18-
using Microsoft.Azure.WebJobs.Script.Config;
1916
using Microsoft.Azure.WebJobs.Script.Description;
2017
using Microsoft.Azure.WebJobs.Script.WebHost.Filters;
2118
using Microsoft.Azure.WebJobs.Script.WebHost.Models;
@@ -183,35 +180,18 @@ public override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext con
183180
[HttpGet]
184181
[HttpPost]
185182
[AllowAnonymous]
186-
public async Task<HttpResponseMessage> ExtensionHook(string name, CancellationToken token)
183+
public async Task<HttpResponseMessage> ExtensionWebHookHandler(string name, CancellationToken token)
187184
{
188185
var provider = this._scriptHostManager.BindingWebHookProvider;
189186

190-
var hook = provider.GetHandlerOrNull(name);
191-
if (hook != null)
187+
var handler = provider.GetHandlerOrNull(name);
188+
if (handler != null)
192189
{
193-
var response = await hook.ConvertAsync(this.Request, token);
190+
var response = await handler.ConvertAsync(this.Request, token);
194191
return response;
195192
}
196193

197194
return new HttpResponseMessage(HttpStatusCode.NotFound);
198195
}
199-
200-
// Provides the URL for accessing the admin/hook route.
201-
internal static Uri GetRouteForExtensionHook(string name)
202-
{
203-
var settings = ScriptSettingsManager.Instance;
204-
205-
var hostName = settings.GetSetting(EnvironmentSettingNames.AzureWebsiteHostName);
206-
if (hostName == null)
207-
{
208-
return null;
209-
}
210-
211-
bool isLocalhost = hostName.StartsWith("localhost:", StringComparison.OrdinalIgnoreCase);
212-
var scheme = isLocalhost ? "http" : "https";
213-
214-
return new Uri($"{scheme}://{hostName}/admin/extensions/{name}");
215-
}
216196
}
217197
}

src/WebJobs.Script.WebHost/WebHooks/WebJobsSdkExtensionHookProvider.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33

44
using System;
55
using System.Collections.Generic;
6-
using System.Net.Http;
76
using Microsoft.Azure.WebJobs.Host.Config;
8-
using Microsoft.Azure.WebJobs.Script.WebHost.Controllers;
7+
using Microsoft.Azure.WebJobs.Script.Config;
98
using HttpHandler = Microsoft.Azure.WebJobs.IAsyncConverter<System.Net.Http.HttpRequestMessage, System.Net.Http.HttpResponseMessage>;
109

1110
namespace Microsoft.Azure.WebJobs.Script.WebHost
@@ -38,7 +37,23 @@ public Uri GetUrl(IExtensionConfigProvider extension)
3837
string name = extensionType.Name;
3938
_customHttpHandlers[name] = handler;
4039

41-
return AdminController.GetRouteForExtensionHook(name);
40+
return GetExtensionWebHookRoute(name);
41+
}
42+
43+
// Provides the URL for accessing the admin extensions WebHook route.
44+
internal static Uri GetExtensionWebHookRoute(string name)
45+
{
46+
var settings = ScriptSettingsManager.Instance;
47+
var hostName = settings.GetSetting(EnvironmentSettingNames.AzureWebsiteHostName);
48+
if (hostName == null)
49+
{
50+
return null;
51+
}
52+
53+
bool isLocalhost = hostName.StartsWith("localhost:", StringComparison.OrdinalIgnoreCase);
54+
var scheme = isLocalhost ? "http" : "https";
55+
56+
return new Uri($"{scheme}://{hostName}/admin/extensions/{name}");
4257
}
4358
}
4459
}

src/WebJobs.Script/Config/ScriptHostConfiguration.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Configuration;
67
using System.IO;
78
using Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation;
89
using Microsoft.Azure.WebJobs.Host;
9-
using Microsoft.Azure.WebJobs.Host.Loggers;
1010
using Microsoft.Azure.WebJobs.Logging;
1111
using Microsoft.Azure.WebJobs.Script.Extensibility;
1212

@@ -22,6 +22,7 @@ public ScriptHostConfiguration()
2222
RootScriptPath = Environment.CurrentDirectory;
2323
RootLogPath = Path.Combine(Path.GetTempPath(), "Functions");
2424
LogFilter = new LogCategoryFilter();
25+
RootExtensionsPath = ConfigurationManager.AppSettings[EnvironmentSettingNames.AzureWebJobsExtensionsPath];
2526
}
2627

2728
/// <summary>
@@ -39,6 +40,12 @@ public ScriptHostConfiguration()
3940
/// </summary>
4041
public string RootLogPath { get; set; }
4142

43+
/// <summary>
44+
/// Gets or sets the root path to search for binding
45+
/// extensions.
46+
/// </summary>
47+
public string RootExtensionsPath { get; set; }
48+
4249
/// <summary>
4350
/// Gets or sets the custom TraceWriter to add to the trace pipeline
4451
/// </summary>

src/WebJobs.Script/EnvironmentSettingNames.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ public static class EnvironmentSettingNames
2020
public const string CompilationReleaseMode = "AzureWebJobsDotNetReleaseCompilation";
2121
public const string AzureWebJobsDisableHomepage = "AzureWebJobsDisableHomepage";
2222
public const string TypeScriptCompilerPath = "AzureWebJobs_TypeScriptPath";
23-
24-
// Optional env var that can be set to a local file path containing custom binding extensions.
2523
public const string AzureWebJobsExtensionsPath = "AzureWebJobs_ExtensionsPath";
2624
public const string AzureWebsiteAppCountersName = "WEBSITE_COUNTERS_APP";
2725
public const string AzureWebJobsSecretStorageType = "AzureWebJobsSecretStorageType";

src/WebJobs.Script/Host/ScriptHost.cs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,6 @@ protected virtual void Initialize()
283283
throw new FormatException(string.Format("Unable to parse {0} file.", ScriptConstants.HostMetadataFileName), ex);
284284
}
285285

286-
ScriptConfig.HostConfig.HostConfigMetadata = hostConfig;
287286
ApplyConfiguration(hostConfig, ScriptConfig);
288287

289288
if (string.IsNullOrEmpty(ScriptConfig.HostConfig.HostId))
@@ -451,13 +450,12 @@ private IMetricsLogger CreateMetricsLogger()
451450
return metricsLogger;
452451
}
453452

454-
// Scan the extensions directory and Load custom extension.
455453
private void LoadCustomExtensions()
456454
{
457-
var bindingRoot = ConfigurationManager.AppSettings[EnvironmentSettingNames.AzureWebJobsExtensionsPath];
458-
if (!string.IsNullOrWhiteSpace(bindingRoot))
455+
string extensionsPath = ScriptConfig.RootExtensionsPath;
456+
if (!string.IsNullOrWhiteSpace(extensionsPath))
459457
{
460-
foreach (var dir in Directory.EnumerateDirectories(bindingRoot))
458+
foreach (var dir in Directory.EnumerateDirectories(extensionsPath))
461459
{
462460
foreach (var path in Directory.EnumerateFiles(dir, "*.dll"))
463461
{
@@ -506,9 +504,7 @@ private void LoadExtensions(Assembly assembly, string locationHint)
506504
}
507505

508506
// Load a single extension
509-
private void LoadExtension(
510-
IExtensionConfigProvider instance,
511-
string locationHint = null)
507+
private void LoadExtension(IExtensionConfigProvider instance, string locationHint = null)
512508
{
513509
JobHostConfiguration config = this.ScriptConfig.HostConfig;
514510

@@ -1112,7 +1108,9 @@ internal static void ValidateHttpFunction(string functionName, HttpTriggerAttrib
11121108

11131109
internal static void ApplyConfiguration(JObject config, ScriptHostConfiguration scriptConfig)
11141110
{
1115-
JobHostConfiguration hostConfig = scriptConfig.HostConfig;
1111+
var hostConfig = scriptConfig.HostConfig;
1112+
1113+
hostConfig.HostConfigMetadata = config;
11161114

11171115
JArray functions = (JArray)config["functions"];
11181116
if (functions != null && functions.Count > 0)

0 commit comments

Comments
 (0)