public Subscription getSubscriptionDetails(TopicName topicName, String subscriptionName) { return subscriptionRepository.getSubscriptionDetails(topicName, subscriptionName).anonymize(); }
public List<Subscription> getForOwnerId(OwnerId ownerId) { Collection<SubscriptionName> subscriptionNames = subscriptionOwnerCache.get(ownerId); return subscriptionRepository.getSubscriptionDetails(subscriptionNames); }
Subscription getSubscription(SubscriptionName subscriptionName) { return subscriptionRepository.getSubscriptionDetails(subscriptionName); }
public List<UnhealthySubscription> getAllUnhealthy(boolean respectMonitoringSeverity) { Collection<SubscriptionName> subscriptionNames = subscriptionOwnerCache.getAll(); List<Subscription> subscriptions = subscriptionRepository.getSubscriptionDetails(subscriptionNames); return filterHealthy(subscriptions, respectMonitoringSeverity); }
public Optional<OAuthSubscriptionHandler> create(SubscriptionName subscriptionName) { Subscription subscription = subscriptionRepository.getSubscriptionDetails(subscriptionName); if (subscription.hasOAuthPolicy()) { try { String providerName = subscription.getOAuthPolicy().getProviderName(); logger.info("Creating OAuth handler subscription {} using {} OAuth provider", subscriptionName, providerName); OAuthTokenRequestRateLimiter rateLimiter = rateLimiterLoader.create(subscription); return Optional.of(new OAuthSubscriptionHandler(subscriptionName, providerName, accessTokens, rateLimiter)); } catch (Exception e) { logger.error("Failed to create OAuth handler for subscription {}, {}", subscriptionName.getQualifiedName(), e.getMessage()); } } return Optional.empty(); } }
public Optional<OAuthSubscriptionHandler> create(SubscriptionName subscriptionName) { Subscription subscription = subscriptionRepository.getSubscriptionDetails(subscriptionName); if (subscription.hasOAuthPolicy()) { try { String providerName = subscription.getOAuthPolicy().getProviderName(); logger.info("Creating OAuth handler subscription {} using {} OAuth provider", subscriptionName, providerName); OAuthTokenRequestRateLimiter rateLimiter = rateLimiterLoader.create(subscription); return Optional.of(new OAuthSubscriptionHandler(subscriptionName, providerName, accessTokens, rateLimiter)); } catch (Exception e) { logger.error("Failed to create OAuth handler for subscription {}, {}", subscriptionName.getQualifiedName(), e.getMessage()); } } return Optional.empty(); } }
@Override public OAuthAccessToken load(SubscriptionName subscriptionName) throws Exception { Subscription subscription = subscriptionRepository.getSubscriptionDetails(subscriptionName); SubscriptionOAuthPolicy oAuthPolicy = subscription.getOAuthPolicy(); String providerName = oAuthPolicy.getProviderName(); OAuthProvider oAuthProvider = oAuthProviderRepository.getOAuthProviderDetails(providerName); OAuthTokenRequest request; if (USERNAME_PASSWORD.equals(oAuthPolicy.getGrantType())) { request = getOAuthUsernamePasswordGrantTokenRequest(oAuthPolicy, oAuthProvider); } else { request = getOAuthClientCredentialsGrantTokenRequest(oAuthPolicy, oAuthProvider); } metrics.oAuthSubscriptionTokenRequestMeter(subscription, providerName).mark(); try (Timer.Context timer = metrics.oAuthProviderLatencyTimer(providerName).time()) { return oAuthClient.getToken(request); } }
private Subscription anySubscription() { SubscriptionName name = SubscriptionName.fromString("com.test.topic$" + Math.abs(UUID.randomUUID().getMostSignificantBits())); Subscription subscription = subscription(name).build(); given(subscriptionRepository.getSubscriptionDetails(name)).willReturn(subscription); return subscription; }
@Override public OAuthAccessToken load(SubscriptionName subscriptionName) throws Exception { Subscription subscription = subscriptionRepository.getSubscriptionDetails(subscriptionName); SubscriptionOAuthPolicy oAuthPolicy = subscription.getOAuthPolicy(); String providerName = oAuthPolicy.getProviderName(); OAuthProvider oAuthProvider = oAuthProviderRepository.getOAuthProviderDetails(providerName); OAuthTokenRequest request; if (USERNAME_PASSWORD.equals(oAuthPolicy.getGrantType())) { request = getOAuthUsernamePasswordGrantTokenRequest(oAuthPolicy, oAuthProvider); } else { request = getOAuthClientCredentialsGrantTokenRequest(oAuthPolicy, oAuthProvider); } metrics.oAuthSubscriptionTokenRequestMeter(subscription, providerName).mark(); try (Timer.Context timer = metrics.oAuthProviderLatencyTimer(providerName).time()) { return oAuthClient.getToken(request); } }
public void updateSubscriptionState(TopicName topicName, String subscriptionName, Subscription.State state, String modifiedBy) { Subscription retrieved = subscriptionRepository.getSubscriptionDetails(topicName, subscriptionName); if (state != Subscription.State.PENDING && !retrieved.getState().equals(state)) { Subscription updated = Patch.apply(retrieved, PatchData.patchData().set("state", state).build()); subscriptionRepository.updateSubscription(updated); auditor.objectUpdated(modifiedBy, retrieved, updated); } }
public void updateSubscription(TopicName topicName, String subscriptionName, PatchData patch, String modifiedBy) { Subscription retrieved = subscriptionRepository.getSubscriptionDetails(topicName, subscriptionName); Subscription.State oldState = retrieved.getState(); Subscription updated = Patch.apply(retrieved, patch); revertStateIfChangedToPending(updated, oldState); subscriptionValidator.checkModification(updated); subscriptionOwnerCache.onUpdatedSubscription(retrieved, updated); if (!retrieved.equals(updated)) { subscriptionRepository.updateSubscription(updated); auditor.objectUpdated(modifiedBy, retrieved, updated); } }