27 lines
868 B
C#
27 lines
868 B
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
using StellaOps.Zastava.Observer.Configuration;
|
|
|
|
namespace StellaOps.Zastava.Observer.ContainerRuntime.Cri;
|
|
|
|
internal interface ICriRuntimeClientFactory
|
|
{
|
|
ICriRuntimeClient Create(ContainerRuntimeEndpointOptions endpoint);
|
|
}
|
|
|
|
internal sealed class CriRuntimeClientFactory : ICriRuntimeClientFactory
|
|
{
|
|
private readonly IServiceProvider serviceProvider;
|
|
|
|
public CriRuntimeClientFactory(IServiceProvider serviceProvider)
|
|
{
|
|
this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
|
|
}
|
|
|
|
public ICriRuntimeClient Create(ContainerRuntimeEndpointOptions endpoint)
|
|
{
|
|
var logger = serviceProvider.GetRequiredService<ILogger<CriRuntimeClient>>();
|
|
return new CriRuntimeClient(endpoint, logger);
|
|
}
|
|
}
|