Skip to content

Commit 9340c1b

Browse files
authored
Remove URL reservation (#5131)
* Remove URL reservation * Add obsolete warnings to PowerShell commands
1 parent 96f3b32 commit 9340c1b

31 files changed

+30
-983
lines changed

src/Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
<PackageVersion Include="Particular.Approvals" Version="2.0.1" />
6161
<PackageVersion Include="Particular.Licensing.Sources" Version="6.1.0" />
6262
<PackageVersion Include="Particular.LicensingComponent.Report" Version="1.0.0" />
63+
<PackageVersion Include="Particular.Obsoletes" Version="1.0.0" />
6364
<PackageVersion Include="Polly.Core" Version="8.5.2" />
6465
<PackageVersion Include="PropertyChanged.Fody" Version="4.1.0" />
6566
<PackageVersion Include="PropertyChanging.Fody" Version="1.30.3" />

src/ServiceControl.Config/Framework/Modules/InstallerModule.cs

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ internal async Task<ReportCard> Add(ServiceControlInstallableBase details, IProg
6666
try
6767
{
6868
progress.Report(5, 9, "Registering URL ACLs...");
69-
instanceInstaller.RegisterUrlAcl();
7069
progress.Report(6, 9, "Instance setup in progress, this could take several minutes...");
7170
instanceInstaller.SetupInstance();
7271
}
@@ -87,10 +86,6 @@ internal async Task<ReportCard> Add(ServiceControlInstallableBase details, IProg
8786
instanceInstaller.ReportCard.Warnings.Add($"New instance did not startup - please check configuration for {instance.Name}");
8887
}
8988
}
90-
else
91-
{
92-
instanceInstaller.RemoveUrlAcl();
93-
}
9489

9590
instanceInstaller.ReportCard.SetStatus();
9691
return instanceInstaller.ReportCard;
@@ -193,7 +188,7 @@ internal async Task<ReportCard> Update(ServiceControlBaseService instance, bool
193188
internal ReportCard Delete(string instanceName, bool removeDB, bool removeLogs, IProgress<ProgressDetails> progress = null)
194189
{
195190
progress ??= new Progress<ProgressDetails>();
196-
progress.Report(0, 7, "Stopping instance...");
191+
progress.Report(0, 6, "Stopping instance...");
197192
var instance = InstanceFinder.FindServiceControlInstance(instanceName);
198193
instance.ReportCard = new ReportCard();
199194

@@ -208,27 +203,24 @@ internal ReportCard Delete(string instanceName, bool removeDB, bool removeLogs,
208203

209204
instance.BackupAppConfig();
210205

211-
progress.Report(1, 7, "Disabling startup...");
206+
progress.Report(1, 6, "Disabling startup...");
212207
instance.Service.SetStartupMode("Disabled");
213208

214-
progress.Report(2, 7, "Deleting service...");
209+
progress.Report(2, 6, "Deleting service...");
215210
instance.Service.Delete();
216211

217-
progress.Report(3, 7, "Removing URL ACL...");
218-
instance.RemoveUrlAcl();
219-
220-
progress.Report(4, 7, "Deleting install...");
212+
progress.Report(3, 6, "Deleting install...");
221213
instance.RemoveBinFolder();
222214

223215
if (removeLogs)
224216
{
225-
progress.Report(5, 7, "Deleting logs...");
217+
progress.Report(4, 6, "Deleting logs...");
226218
instance.RemoveLogsFolder();
227219
}
228220

229221
if (removeDB)
230222
{
231-
progress.Report(6, 7, "Deleting database...");
223+
progress.Report(5, 6, "Deleting database...");
232224
instance.RemoveDataBaseFolder();
233225
}
234226

@@ -268,8 +260,6 @@ internal async Task<ReportCard> Add(MonitoringNewInstance details, IProgress<Pro
268260

269261
try
270262
{
271-
progress.Report(5, 9, "Registering URL ACLs...");
272-
instanceInstaller.RegisterUrlAcl();
273263
progress.Report(6, 9, "Creating queues...");
274264
instanceInstaller.SetupInstance();
275265
}
@@ -290,10 +280,6 @@ internal async Task<ReportCard> Add(MonitoringNewInstance details, IProgress<Pro
290280
instanceInstaller.ReportCard.Warnings.Add($"New instance did not startup - please check configuration for {instance.Name}");
291281
}
292282
}
293-
else
294-
{
295-
instanceInstaller.RemoveUrlAcl();
296-
}
297283

298284
instanceInstaller.ReportCard.SetStatus();
299285
return instanceInstaller.ReportCard;
@@ -386,7 +372,7 @@ internal async Task<ReportCard> Update(MonitoringInstance instance, bool startSe
386372
internal ReportCard Delete(string instanceName, bool removeLogs, IProgress<ProgressDetails> progress = null)
387373
{
388374
progress ??= new Progress<ProgressDetails>();
389-
progress.Report(0, 7, "Stopping instance...");
375+
progress.Report(0, 5, "Stopping instance...");
390376
var instance = InstanceFinder.FindMonitoringInstance(instanceName);
391377
instance.ReportCard = new ReportCard();
392378

@@ -401,21 +387,18 @@ internal ReportCard Delete(string instanceName, bool removeLogs, IProgress<Progr
401387

402388
instance.BackupAppConfig();
403389

404-
progress.Report(1, 7, "Disabling startup...");
390+
progress.Report(1, 5, "Disabling startup...");
405391
instance.Service.SetStartupMode("Disabled");
406392

407-
progress.Report(2, 7, "Deleting service...");
393+
progress.Report(2, 5, "Deleting service...");
408394
instance.Service.Delete();
409395

410-
progress.Report(3, 7, "Removing URL ACL...");
411-
instance.RemoveUrlAcl();
412-
413-
progress.Report(4, 7, "Deleting install...");
396+
progress.Report(3, 5, "Deleting install...");
414397
instance.RemoveBinFolder();
415398

416399
if (removeLogs)
417400
{
418-
progress.Report(5, 7, "Deleting logs...");
401+
progress.Report(4, 5, "Deleting logs...");
419402
instance.RemoveLogsFolder();
420403
}
421404

src/ServiceControl.Management.PowerShell/Cmdlets/UrlAcls/AddUrlAcl.cs

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,18 @@
11
namespace ServiceControl.Management.PowerShell
22
{
33
using System;
4-
using System.Collections.Generic;
54
using System.Management.Automation;
6-
using System.Security.Principal;
7-
using ServiceControlInstaller.Engine.UrlAcl;
5+
using Particular.Obsoletes;
86

7+
[ObsoleteMetadata(Message = "ServiceControl no longer requires URL reservations, so this command no longer functions", ReplacementTypeOrMember = "netsh http add urlacl", TreatAsErrorFromVersion = "7", RemoveInVersion = "8")]
8+
[Obsolete("ServiceControl no longer requires URL reservations, so this command no longer functions. Use 'netsh http add urlacl' instead. Will be treated as an error from version 7.0.0. Will be removed in version 8.0.0.", false)]
99
[Cmdlet(VerbsCommon.Add, "UrlAcl")]
1010
public class AddUrlAcl : PSCmdlet
1111
{
1212
[ValidateNotNullOrEmpty]
1313
[Parameter(Mandatory = true, Position = 0, HelpMessage = "The URL to add to the URLACL list. This should always in a trailing /")]
14-
1514
public string Url { get; set; }
1615

17-
protected override void BeginProcessing()
18-
{
19-
Account.TestIfAdmin();
20-
}
21-
22-
protected override void ProcessRecord()
23-
{
24-
var sidList = new List<SecurityIdentifier>();
25-
26-
foreach (var user in Users)
27-
{
28-
try
29-
{
30-
var account = new NTAccount(user);
31-
var sid = (SecurityIdentifier)account.Translate(typeof(SecurityIdentifier));
32-
sidList.Add(sid);
33-
}
34-
catch (Exception ex)
35-
{
36-
WriteError(new ErrorRecord(ex, "Failed to parse account name", ErrorCategory.InvalidData, user));
37-
return;
38-
}
39-
}
40-
41-
UrlReservation.Create(new UrlReservation(Url, sidList.ToArray()));
42-
}
43-
4416
[ValidateNotNullOrEmpty]
4517
[Parameter(Mandatory = true, Position = 1, HelpMessage = "The user or group to assign to this URLACL")]
4618
public string[] Users;
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
namespace ServiceControl.Management.PowerShell
22
{
3+
using System;
34
using System.Management.Automation;
4-
using ServiceControlInstaller.Engine.UrlAcl;
5+
using Particular.Obsoletes;
56

7+
[ObsoleteMetadata(Message = "ServiceControl no longer requires URL reservations, so this command no longer functions", ReplacementTypeOrMember = "netsh http show urlacl", TreatAsErrorFromVersion = "7", RemoveInVersion = "8")]
8+
[Obsolete("ServiceControl no longer requires URL reservations, so this command no longer functions. Use 'netsh http show urlacl' instead. Will be treated as an error from version 7.0.0. Will be removed in version 8.0.0.", false)]
69
[Cmdlet(VerbsCommon.Get, "UrlAcls")]
7-
public class GetUrlAcls : PSCmdlet
8-
{
9-
protected override void ProcessRecord()
10-
{
11-
WriteObject(UrlReservation.GetAll(), true);
12-
}
13-
}
10+
public class GetUrlAcls : PSCmdlet;
1411
}
Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,11 @@
11
namespace ServiceControl.Management.PowerShell
22
{
3+
using System;
34
using System.Management.Automation;
4-
using ServiceControlInstaller.Engine.UrlAcl;
5+
using Particular.Obsoletes;
56

7+
[ObsoleteMetadata(Message = "ServiceControl no longer requires URL reservations, so this command no longer functions", ReplacementTypeOrMember = "netsh http delete urlacl", TreatAsErrorFromVersion = "7", RemoveInVersion = "8")]
8+
[Obsolete("ServiceControl no longer requires URL reservations, so this command no longer functions. Use 'netsh http delete urlacl' instead. Will be treated as an error from version 7.0.0. Will be removed in version 8.0.0.", false)]
69
[Cmdlet(VerbsCommon.Remove, "UrlAcl")]
7-
public class RemoveUrlAcl : PSCmdlet
8-
{
9-
[ValidateNotNull]
10-
[Parameter(Mandatory = true, ValueFromPipeline = true, Position = 0, HelpMessage = "Specify the URLACL to remove")]
11-
public UrlReservation[] UrlAcl { get; set; }
12-
13-
protected override void BeginProcessing()
14-
{
15-
Account.TestIfAdmin();
16-
}
17-
18-
protected override void ProcessRecord()
19-
{
20-
foreach (var entry in UrlAcl)
21-
{
22-
UrlReservation.Delete(entry);
23-
}
24-
}
25-
}
10+
public class RemoveUrlAcl : PSCmdlet;
2611
}

src/ServiceControl.Management.PowerShell/ServiceControl.Management.PowerShell.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030
<PackageReference Include="System.Management.Automation" />
3131
</ItemGroup>
3232

33+
<ItemGroup>
34+
<PackageReference Include="Particular.Obsoletes" PrivateAssets="All" ExcludeAssets="runtime" />
35+
</ItemGroup>
36+
3337
<ItemGroup>
3438
<Artifact Include="$(OutputPath)" DestinationFolder="$(PowerShellModuleArtifactsPath)" />
3539
<Artifact Include="$(PkgMicrosoft_Extensions_DependencyModel)\lib\netstandard2.0\Microsoft.Extensions.DependencyModel.dll" DestinationFolder="$(PowerShellModuleArtifactsPath)" />

0 commit comments

Comments
 (0)