From 4a8337e35bc5cc89a0fe01405fca8de7e2932886 Mon Sep 17 00:00:00 2001 From: Rustam_Lotsmanenko <rustam_lotsmanenko@epam.com> Date: Wed, 27 Sep 2023 14:30:08 +0300 Subject: [PATCH] temp fix --- .../gcp/config/ExternalSubscriptionsManager.java | 10 +++++++++- .../provider/gcp/pubsub/OqmNotificationHandler.java | 7 +++++++ .../gcp/pubsub/receiver/OqmPublishTopicReceiver.java | 3 +-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java index 4b4cdc9e0..7889a4333 100644 --- a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java +++ b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java @@ -18,6 +18,7 @@ package org.opengroup.osdu.notification.provider.gcp.config; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; @@ -50,7 +51,14 @@ public class ExternalSubscriptionsManager { List<Subscription> cachedInfos = Optional.ofNullable(getExternalSubscriptions(dataPartitionId)) .orElseThrow(() -> new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Server error", "OQM | Subscription info cache was not initialized")) .getSubscriptions(); - return getFilteredSubscription(cachedInfos, dataPartitionId, subscriptionId, serviceTopic); + + Subscription subscription = getFilteredSubscription(cachedInfos, dataPartitionId, + subscriptionId, serviceTopic); + + if (Objects.nonNull(subscription) && Objects.isNull(subscription.getSecret())) { + return sendGetSubscriptionRequest(dataPartitionId, subscriptionId, serviceTopic, cachedInfos); + } + return subscription; } private Subscription getFilteredSubscription(List<Subscription> subscriptions, String dataPartitionId, diff --git a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/OqmNotificationHandler.java b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/OqmNotificationHandler.java index 1b41fbb1a..a4ecd5296 100644 --- a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/OqmNotificationHandler.java +++ b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/OqmNotificationHandler.java @@ -16,6 +16,7 @@ package org.opengroup.osdu.notification.provider.gcp.pubsub; +import java.util.Objects; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpStatus; @@ -57,6 +58,12 @@ public class OqmNotificationHandler { } Subscription subscription = externalSubscriptionsManager.getSubscription(dataPartitionId, subscriptionId, serviceTopic); + if (Objects.isNull(subscription)) { + throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, + "Subscriber config not found.", + String.format("Subscriber with id: %s not found in cache", subscriptionId) + ); + } Secret secret = subscription.getSecret(); SecretAuth secretAuth = authFactory.getSecretAuth(secret.getSecretType()); diff --git a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/receiver/OqmPublishTopicReceiver.java b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/receiver/OqmPublishTopicReceiver.java index 3f784f5b6..49f985eb1 100644 --- a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/receiver/OqmPublishTopicReceiver.java +++ b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/receiver/OqmPublishTopicReceiver.java @@ -17,6 +17,7 @@ package org.opengroup.osdu.notification.provider.gcp.pubsub.receiver; +import java.util.Map; import lombok.extern.slf4j.Slf4j; import org.opengroup.osdu.core.common.http.HttpResponse; import org.opengroup.osdu.core.common.model.http.AppException; @@ -27,8 +28,6 @@ import org.opengroup.osdu.core.gcp.oqm.model.OqmSubscription; import org.opengroup.osdu.notification.provider.gcp.pubsub.OqmNotificationHandler; import org.opengroup.osdu.notification.provider.gcp.thread.ThreadScopeContextHolder; -import java.util.Map; - @Slf4j public class OqmPublishTopicReceiver implements OqmMessageReceiver { -- GitLab