Skip to content

Commit

Permalink
Set LangVersion to 10.0 and switched to using file-scoped namespaces.
Browse files Browse the repository at this point in the history
  • Loading branch information
csdahlberg committed Mar 9, 2024
1 parent 45878d3 commit dfa8289
Show file tree
Hide file tree
Showing 222 changed files with 7,098 additions and 7,317 deletions.
67 changes: 33 additions & 34 deletions src/Contrast.K8s.AgentOperator/Autofac/AutofacExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,49 +9,48 @@
using Autofac.Features.ResolveAnything;
using Autofac.Features.Scanning;

namespace Contrast.K8s.AgentOperator.Autofac
namespace Contrast.K8s.AgentOperator.Autofac;

public static class AutofacExtensions
{
public static class AutofacExtensions
public static ContainerBuilder ApplyContrastConventions(this ContainerBuilder builder, Assembly executingAssembly)
{
public static ContainerBuilder ApplyContrastConventions(this ContainerBuilder builder, Assembly executingAssembly)
{
builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
builder.RegisterAssemblyTypes(executingAssembly).WithDefaultInterfaces();
builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
builder.RegisterAssemblyTypes(executingAssembly).WithDefaultInterfaces();

return builder;
}
return builder;
}

public static IRegistrationBuilder<TLimit, TScanningActivatorData, TRegistrationStyle> WithDefaultInterfaces
<TLimit, TScanningActivatorData, TRegistrationStyle>(this IRegistrationBuilder<TLimit, TScanningActivatorData, TRegistrationStyle> registration)
where TScanningActivatorData : ScanningActivatorData
public static IRegistrationBuilder<TLimit, TScanningActivatorData, TRegistrationStyle> WithDefaultInterfaces
<TLimit, TScanningActivatorData, TRegistrationStyle>(this IRegistrationBuilder<TLimit, TScanningActivatorData, TRegistrationStyle> registration)
where TScanningActivatorData : ScanningActivatorData
{
if (registration == null)
{
if (registration == null)
{
throw new ArgumentNullException(nameof(registration));
}

return registration.PublicOnly()
.Where(x => GetDefaultInterface(x) != null)
.As(x => GetDefaultInterface(x)!);
throw new ArgumentNullException(nameof(registration));
}

public static IRegistrationBuilder<TLimit, TScanningActivatorData, TRegistrationStyle> AssignableToOpenType
<TLimit, TScanningActivatorData, TRegistrationStyle>(this IRegistrationBuilder<TLimit, TScanningActivatorData, TRegistrationStyle> registration,
Type openType)
where TScanningActivatorData : ScanningActivatorData
{
if (registration == null)
{
throw new ArgumentNullException(nameof(registration));
}

return registration.Where(x => x.GetInterfaces().Any(t => t.IsGenericType && t.GetGenericTypeDefinition() == openType));
}
return registration.PublicOnly()
.Where(x => GetDefaultInterface(x) != null)
.As(x => GetDefaultInterface(x)!);
}

private static Type? GetDefaultInterface(Type type)
public static IRegistrationBuilder<TLimit, TScanningActivatorData, TRegistrationStyle> AssignableToOpenType
<TLimit, TScanningActivatorData, TRegistrationStyle>(this IRegistrationBuilder<TLimit, TScanningActivatorData, TRegistrationStyle> registration,
Type openType)
where TScanningActivatorData : ScanningActivatorData
{
if (registration == null)
{
var defaultInterfaceName = $"I{type.Name}";
return type.GetInterfaces().SingleOrDefault(x => string.Equals(x.Name, defaultInterfaceName, StringComparison.Ordinal));
throw new ArgumentNullException(nameof(registration));
}

return registration.Where(x => x.GetInterfaces().Any(t => t.IsGenericType && t.GetGenericTypeDefinition() == openType));
}

private static Type? GetDefaultInterface(Type type)
{
var defaultInterfaceName = $"I{type.Name}";
return type.GetInterfaces().SingleOrDefault(x => string.Equals(x.Name, defaultInterfaceName, StringComparison.Ordinal));
}
}
118 changes: 59 additions & 59 deletions src/Contrast.K8s.AgentOperator/Contrast.K8s.AgentOperator.csproj
Original file line number Diff line number Diff line change
@@ -1,63 +1,63 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<nullable>enable</nullable>
<LangVersion>latest</LangVersion>
<IsPackable>false</IsPackable>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<ServerGarbageCollection>true</ServerGarbageCollection>
<!--Ignore warnings about missing XML docs.-->
<NoWarn>CS1591</NoWarn>
<IsPublicBuild Condition="'$(IsPublicBuild)' == ''">false</IsPublicBuild>
<DefineConstants Condition="'$(IsPublicBuild)' != 'False'">CONTRAST_IS_PUBLIC_TELEMETRY_BUILD;$(DefineConstants)</DefineConstants>
</PropertyGroup>

<PropertyGroup>
<KubeOpsConfigRoot>$(MSBuildProjectDirectory)\Generated</KubeOpsConfigRoot>
<KubeOpsSkipDockerfile>true</KubeOpsSkipDockerfile>

<SkipKubeOpsGen Condition="'$(SkipKubeOpsGen)' == ''">true</SkipKubeOpsGen>
<KubeOpsSkipCrds>$(SkipKubeOpsGen)</KubeOpsSkipCrds>
<KubeOpsSkipRbac>$(SkipKubeOpsGen)</KubeOpsSkipRbac>
<KubeOpsSkipOperator>$(SkipKubeOpsGen)</KubeOpsSkipOperator>
<KubeOpsSkipInstaller>$(SkipKubeOpsGen)</KubeOpsSkipInstaller>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
<PackageReference Include="CertificateManager" Version="1.0.8" />
<PackageReference Include="Autofac" Version="7.0.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Nito.AsyncEx" Version="5.1.2" />

<PackageReference Include="NLog" Version="5.1.2" />
<PackageReference Include="NLog.Web.AspNetCore" Version="5.2.2" />

<PackageReference Include="Glob" Version="1.1.9" />
<PackageReference Include="MediatR" Version="12.0.1" />
<PackageReference Include="CompareNETObjects" Version="4.79.0" />
<PackageReference Include="YamlDotNet" Version="13.0.1" />

<PackageReference Include="JetBrains.Annotations" Version="2022.3.1" />

<PackageReference Include="RestEase" Version="1.6.1" />
<PackageReference Include="RestEase.SourceGenerator" Version="1.6.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>

<PackageReference Include="Sigil" Version="5.0.0" />

<!--https://github.com/dotnet/runtime/issues/60393-->
<PackageReference Include="HexMate" Version="0.0.3" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\vendor\dotnet-kubernetes-client\src\DotnetKubernetesClient\DotnetKubernetesClient.csproj" />
<ProjectReference Include="..\..\vendor\dotnet-operator-sdk\src\KubeOps\KubeOps.csproj" />
</ItemGroup>
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<LangVersion>10.0</LangVersion>
<nullable>enable</nullable>
<IsPackable>false</IsPackable>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<ServerGarbageCollection>true</ServerGarbageCollection>
<!--Ignore warnings about missing XML docs.-->
<NoWarn>CS1591</NoWarn>
<IsPublicBuild Condition="'$(IsPublicBuild)' == ''">false</IsPublicBuild>
<DefineConstants Condition="'$(IsPublicBuild)' != 'False'">CONTRAST_IS_PUBLIC_TELEMETRY_BUILD;$(DefineConstants)</DefineConstants>
</PropertyGroup>

<PropertyGroup>
<KubeOpsConfigRoot>$(MSBuildProjectDirectory)\Generated</KubeOpsConfigRoot>
<KubeOpsSkipDockerfile>true</KubeOpsSkipDockerfile>

<SkipKubeOpsGen Condition="'$(SkipKubeOpsGen)' == ''">true</SkipKubeOpsGen>
<KubeOpsSkipCrds>$(SkipKubeOpsGen)</KubeOpsSkipCrds>
<KubeOpsSkipRbac>$(SkipKubeOpsGen)</KubeOpsSkipRbac>
<KubeOpsSkipOperator>$(SkipKubeOpsGen)</KubeOpsSkipOperator>
<KubeOpsSkipInstaller>$(SkipKubeOpsGen)</KubeOpsSkipInstaller>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Portable.BouncyCastle" Version="1.9.0" />
<PackageReference Include="CertificateManager" Version="1.0.8" />
<PackageReference Include="Autofac" Version="7.0.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Nito.AsyncEx" Version="5.1.2" />

<PackageReference Include="NLog" Version="5.1.2" />
<PackageReference Include="NLog.Web.AspNetCore" Version="5.2.2" />

<PackageReference Include="Glob" Version="1.1.9" />
<PackageReference Include="MediatR" Version="12.0.1" />
<PackageReference Include="CompareNETObjects" Version="4.79.0" />
<PackageReference Include="YamlDotNet" Version="13.0.1" />

<PackageReference Include="JetBrains.Annotations" Version="2022.3.1" />

<PackageReference Include="RestEase" Version="1.6.1" />
<PackageReference Include="RestEase.SourceGenerator" Version="1.6.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>

<PackageReference Include="Sigil" Version="5.0.0" />

<!--https://github.com/dotnet/runtime/issues/60393-->
<PackageReference Include="HexMate" Version="0.0.3" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\vendor\dotnet-kubernetes-client\src\DotnetKubernetesClient\DotnetKubernetesClient.csproj" />
<ProjectReference Include="..\..\vendor\dotnet-operator-sdk\src\KubeOps\KubeOps.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using JetBrains.Annotations;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1Beta1AgentConfiguration), Verbs = VerbConstants.FullControl), UsedImplicitly]
public class AgentConfigurationController : GenericController<V1Beta1AgentConfiguration>
{
[EntityRbac(typeof(V1Beta1AgentConfiguration), Verbs = VerbConstants.FullControl), UsedImplicitly]
public class AgentConfigurationController : GenericController<V1Beta1AgentConfiguration>
public AgentConfigurationController(IEventStream eventStream) : base(eventStream)
{
public AgentConfigurationController(IEventStream eventStream) : base(eventStream)
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using JetBrains.Annotations;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1Beta1AgentConnection), Verbs = VerbConstants.FullControl), UsedImplicitly]
public class AgentConnectionController : GenericController<V1Beta1AgentConnection>
{
[EntityRbac(typeof(V1Beta1AgentConnection), Verbs = VerbConstants.FullControl), UsedImplicitly]
public class AgentConnectionController : GenericController<V1Beta1AgentConnection>
public AgentConnectionController(IEventStream eventStream) : base(eventStream)
{
public AgentConnectionController(IEventStream eventStream) : base(eventStream)
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using JetBrains.Annotations;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1Beta1AgentInjector), Verbs = VerbConstants.ReadAndPatch), UsedImplicitly]
public class AgentInjectorController : GenericController<V1Beta1AgentInjector>
{
[EntityRbac(typeof(V1Beta1AgentInjector), Verbs = VerbConstants.ReadAndPatch), UsedImplicitly]
public class AgentInjectorController : GenericController<V1Beta1AgentInjector>
public AgentInjectorController(IEventStream eventStream) : base(eventStream)
{
public AgentInjectorController(IEventStream eventStream) : base(eventStream)
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using JetBrains.Annotations;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1Beta1ClusterAgentConfiguration), Verbs = VerbConstants.ReadOnly), UsedImplicitly]
public class ClusterAgentConfigurationController : GenericController<V1Beta1ClusterAgentConfiguration>
{
[EntityRbac(typeof(V1Beta1ClusterAgentConfiguration), Verbs = VerbConstants.ReadOnly), UsedImplicitly]
public class ClusterAgentConfigurationController : GenericController<V1Beta1ClusterAgentConfiguration>
public ClusterAgentConfigurationController(IEventStream eventStream) : base(eventStream)
{
public ClusterAgentConfigurationController(IEventStream eventStream) : base(eventStream)
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using JetBrains.Annotations;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1Beta1ClusterAgentConnection), Verbs = VerbConstants.ReadOnly), UsedImplicitly]
public class ClusterAgentConnectionController : GenericController<V1Beta1ClusterAgentConnection>
{
[EntityRbac(typeof(V1Beta1ClusterAgentConnection), Verbs = VerbConstants.ReadOnly), UsedImplicitly]
public class ClusterAgentConnectionController : GenericController<V1Beta1ClusterAgentConnection>
public ClusterAgentConnectionController(IEventStream eventStream) : base(eventStream)
{
public ClusterAgentConnectionController(IEventStream eventStream) : base(eventStream)
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using k8s.Models;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1DaemonSet), Verbs = VerbConstants.ReadAndPatch), UsedImplicitly]
public class DaemonSetController : GenericController<V1DaemonSet>
{
[EntityRbac(typeof(V1DaemonSet), Verbs = VerbConstants.ReadAndPatch), UsedImplicitly]
public class DaemonSetController : GenericController<V1DaemonSet>
public DaemonSetController(IEventStream eventStream) : base(eventStream)
{
public DaemonSetController(IEventStream eventStream) : base(eventStream)
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using JetBrains.Annotations;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1DeploymentConfig), Verbs = VerbConstants.ReadAndPatch), UsedImplicitly]
public class DeploymentConfigController : GenericController<V1DeploymentConfig>
{
[EntityRbac(typeof(V1DeploymentConfig), Verbs = VerbConstants.ReadAndPatch), UsedImplicitly]
public class DeploymentConfigController : GenericController<V1DeploymentConfig>
public DeploymentConfigController(IEventStream eventStream) : base(eventStream)
{
public DeploymentConfigController(IEventStream eventStream) : base(eventStream)
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using k8s.Models;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1Deployment), Verbs = VerbConstants.ReadAndPatch), UsedImplicitly]
public class DeploymentController : GenericController<V1Deployment>
{
[EntityRbac(typeof(V1Deployment), Verbs = VerbConstants.ReadAndPatch), UsedImplicitly]
public class DeploymentController : GenericController<V1Deployment>
public DeploymentController(IEventStream eventStream) : base(eventStream)
{
public DeploymentController(IEventStream eventStream) : base(eventStream)
{
}
}
}
11 changes: 5 additions & 6 deletions src/Contrast.K8s.AgentOperator/Controllers/DynaKubeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,12 @@
using JetBrains.Annotations;
using KubeOps.Operator.Rbac;

namespace Contrast.K8s.AgentOperator.Controllers
namespace Contrast.K8s.AgentOperator.Controllers;

[EntityRbac(typeof(V1Beta1DynaKube), Verbs = VerbConstants.ReadOnly), UsedImplicitly]
public class DynaKubeController : GenericController<V1Beta1DynaKube>
{
[EntityRbac(typeof(V1Beta1DynaKube), Verbs = VerbConstants.ReadOnly), UsedImplicitly]
public class DynaKubeController : GenericController<V1Beta1DynaKube>
public DynaKubeController(IEventStream eventStream) : base(eventStream)
{
public DynaKubeController(IEventStream eventStream) : base(eventStream)
{
}
}
}
Loading

0 comments on commit dfa8289

Please sign in to comment.