diff --git a/UpdatePod.Domain/ImageOperations/ImageOperationsWithDockerIo.cs b/UpdatePod.Domain/ImageOperations/ImageOperationsWithDockerIo.cs index 281ae44..6cb169c 100644 --- a/UpdatePod.Domain/ImageOperations/ImageOperationsWithDockerIo.cs +++ b/UpdatePod.Domain/ImageOperations/ImageOperationsWithDockerIo.cs @@ -8,7 +8,7 @@ namespace UpdatePod.Domain.ImageOperations; public class ImageOperationsWithDockerIo(HttpClient httpClient, ImageOperationData imageOperationData) : IImageOperationsStrategy { - public async Task GetLatestHash(string repository, string tag, CancellationToken ct = default) + public async Task GetLatestHash(string repository, string tag, CancellationToken token = default) { httpClient.DefaultRequestHeaders.Add("Accept", "application/json"); @@ -18,7 +18,7 @@ public class ImageOperationsWithDockerIo(HttpClient httpClient, ImageOperationDa } var cancellationTokenWithTimeoutCancellation=HttpClientUtils. - GenerateCancellationTokenWithTimeout(ct, TimeSpan.FromSeconds(imageOperationData.GetImageOperationsTimeout())); + GenerateCancellationTokenWithTimeout(token, TimeSpan.FromSeconds(imageOperationData.GetImageOperationsTimeout())); var url = GetUrl(repository, tag); diff --git a/UpdatePod.Domain/ImageOperations/ImageOperationsWithHarbor.cs b/UpdatePod.Domain/ImageOperations/ImageOperationsWithHarbor.cs index 0d30567..c91c4df 100644 --- a/UpdatePod.Domain/ImageOperations/ImageOperationsWithHarbor.cs +++ b/UpdatePod.Domain/ImageOperations/ImageOperationsWithHarbor.cs @@ -43,7 +43,7 @@ public class ImageOperationsWithHarbor(HttpClient httpClient, ImageOperationData } var canGetHeader = response.Headers.TryGetValues("docker-content-digest", out var digest); - return !canGetHeader ? null : digest?.ToList().FirstOrDefault(); + return !canGetHeader ? null : digest.FirstOrDefault(); } diff --git a/UpdatePod.Domain/KubernetesUtils/IKubernetesOperations.cs b/UpdatePod.Domain/KubernetesUtils/IKubernetesOperations.cs index 0233d44..a4f261b 100644 --- a/UpdatePod.Domain/KubernetesUtils/IKubernetesOperations.cs +++ b/UpdatePod.Domain/KubernetesUtils/IKubernetesOperations.cs @@ -13,6 +13,6 @@ public interface IKubernetesOperations public Task RestartDeployment(string namespaceInfo, string deployment, CancellationToken ct = default); - public Task RestartStateFulSet(string namespaceInfo, string deployment, CancellationToken ct = default); + public Task RestartStateFulSet(string namespaceInfo, string statefulSetName, CancellationToken ct = default); } \ No newline at end of file diff --git a/UpdatePod.Domain/KubernetesUtils/KubernetesOperationWithKubernetesClient.cs b/UpdatePod.Domain/KubernetesUtils/KubernetesOperationWithKubernetesClient.cs index f19c7e0..e3f55c5 100644 --- a/UpdatePod.Domain/KubernetesUtils/KubernetesOperationWithKubernetesClient.cs +++ b/UpdatePod.Domain/KubernetesUtils/KubernetesOperationWithKubernetesClient.cs @@ -148,7 +148,7 @@ public async Task GetStateFulSetFromPod(string namespaceInfo, string po if (stName is null) { - throw new Exception(Msg.StatefulSetNotFound(matchedPod.Metadata.Name)); + throw new KubernetesObjectNotFoundException(Msg.StatefulSetNotFound(matchedPod.Metadata.Name)); } return stName; diff --git a/UpdatePod.Domain/PodUpdateOperations/InvalidImagePullPolicyException.cs b/UpdatePod.Domain/PodUpdateOperations/InvalidImagePullPolicyException.cs new file mode 100644 index 0000000..877eacb --- /dev/null +++ b/UpdatePod.Domain/PodUpdateOperations/InvalidImagePullPolicyException.cs @@ -0,0 +1,7 @@ +namespace UpdatePod.Domain.PodUpdateOperations; + +public class InvalidImagePullPolicyException: Exception +{ + public InvalidImagePullPolicyException(string actual, string expected) + : base($"Image pull policy must be {expected} but {actual}") {} +} \ No newline at end of file diff --git a/UpdatePod.Domain/PodUpdateOperations/PodUpdateOperationWithDomain.cs b/UpdatePod.Domain/PodUpdateOperations/PodUpdateOperationWithDomain.cs index 541d654..27309db 100644 --- a/UpdatePod.Domain/PodUpdateOperations/PodUpdateOperationWithDomain.cs +++ b/UpdatePod.Domain/PodUpdateOperations/PodUpdateOperationWithDomain.cs @@ -51,7 +51,7 @@ private static void ValidateImagePullPolicy(string imagePullPolicy) { if (imagePullPolicy != ImagePullPolicyAlways) { - throw new ApplicationException($"Image pull policy must be {ImagePullPolicyAlways} but {imagePullPolicy}"); + throw new InvalidImagePullPolicyException( ImagePullPolicyAlways, imagePullPolicy); } } @@ -70,7 +70,7 @@ private async Task GetPodContainerImageInfo(string nameSpace, string pod return await _imageOperations.GetLatestHashFromImage(containerImageName, cancellationToken); } - private void ValidateLatestImageHash(string? latestImageHashFromRegistry, string? containerName) + private static void ValidateLatestImageHash(string? latestImageHashFromRegistry, string? containerName) { if (latestImageHashFromRegistry is null) { diff --git a/UpdatePod/Worker.cs b/UpdatePod/Worker.cs index 5233700..37bbdb6 100644 --- a/UpdatePod/Worker.cs +++ b/UpdatePod/Worker.cs @@ -30,13 +30,13 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) } } - private (string nameSpace, string podNameStarts, int intervalMinutes, string? containerName) GetInfoFromEnvironment() + private static (string nameSpace, string podNameStarts, int intervalMinutes, string? containerName) GetInfoFromEnvironment() { var namespaceInfo = Environment.GetEnvironmentVariable("POD_NAMESPACE") - ?? throw new Exception("POD_NAMESPACE env var is missing."); + ?? throw new ArgumentException("POD_NAMESPACE env var is missing."); var podNameStarts = Environment.GetEnvironmentVariable("POD_NAME_PREFIX") - ?? throw new Exception("POD_NAME_PREFIX env var is missing."); + ?? throw new ArgumentException("POD_NAME_PREFIX env var is missing."); var containerName = Environment.GetEnvironmentVariable("POD_CONTAINER_NAME");