Add new composer/component to add marker file only when clean install or an upgrade runtime state
This commit is contained in:
52
src/Umbraco.Web/Telemetry/TelemetryMarkerComponent.cs
Normal file
52
src/Umbraco.Web/Telemetry/TelemetryMarkerComponent.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Composing;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
|
||||
namespace Umbraco.Web.Telemetry
|
||||
{
|
||||
public class TelemetryMarkerComponent : IComponent
|
||||
{
|
||||
private IProfilingLogger _logger;
|
||||
private IRuntimeState _runtime;
|
||||
|
||||
public TelemetryMarkerComponent(IProfilingLogger logger, IRuntimeState runtime)
|
||||
{
|
||||
_logger = logger;
|
||||
_runtime = runtime;
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
var telemetricsFilePath = IOHelper.MapPath(SystemFiles.TelemetricsIdentifier);
|
||||
|
||||
// Verify file does not exist already
|
||||
// If the site is upgraded and the file was removed it would re-create one
|
||||
if (File.Exists(telemetricsFilePath))
|
||||
{
|
||||
_logger.Warn<TelemetryMarkerComponent>("When installing or upgrading the anonymous telemetry file already existsed on disk at {filePath} with the runtime state {runtimeStateLevel}", telemetricsFilePath, _runtime.Level);
|
||||
return;
|
||||
}
|
||||
|
||||
// Generate GUID
|
||||
var telemetrySiteIdentifier = Guid.NewGuid();
|
||||
|
||||
// Write file contents
|
||||
try
|
||||
{
|
||||
File.WriteAllText(telemetricsFilePath, telemetrySiteIdentifier.ToString());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Error<TelemetryMarkerComponent>(ex, "Unable to create telemetry file at {filePath}", telemetricsFilePath);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void Terminate()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
9
src/Umbraco.Web/Telemetry/TelemetryMarkerComposer.cs
Normal file
9
src/Umbraco.Web/Telemetry/TelemetryMarkerComposer.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Composing;
|
||||
|
||||
namespace Umbraco.Web.Telemetry
|
||||
{
|
||||
[RuntimeLevel(MinLevel = RuntimeLevel.Install, MaxLevel = RuntimeLevel.Upgrade)]
|
||||
public class TelemetryMarkerComposer : ComponentComposer<TelemetryMarkerComponent>, ICoreComposer
|
||||
{ }
|
||||
}
|
||||
@@ -297,8 +297,10 @@
|
||||
<Compile Include="Models\LinkType.cs" />
|
||||
<Compile Include="Models\TemplateQuery\OperatorFactory.cs" />
|
||||
<Compile Include="Telemetry\ReportSiteTask.cs" />
|
||||
<Compile Include="Telemetry\TelemetryMarkerComponent.cs" />
|
||||
<Compile Include="Telemetry\TelemetryComponent.cs" />
|
||||
<Compile Include="Telemetry\TelemetryComposer.cs" />
|
||||
<Compile Include="Telemetry\TelemetryMarkerComposer.cs" />
|
||||
<Compile Include="Templates\HtmlLocalLinkParser.cs" />
|
||||
<Compile Include="Templates\HtmlImageSourceParser.cs" />
|
||||
<Compile Include="Templates\HtmlUrlParser.cs" />
|
||||
|
||||
Reference in New Issue
Block a user