/** * Check whether the user provided Cloud Pub/Sub subscription name specified by {@link * #CPS_SUBSCRIPTION_CONFIG} exists or not. */ @VisibleForTesting public void verifySubscription(String cpsProject, String cpsSubscription, CredentialsProvider credentialsProvider) { try { SubscriberFutureStub stub = SubscriberGrpc.newFutureStub(ConnectorUtils.getChannel(credentialsProvider)); GetSubscriptionRequest request = GetSubscriptionRequest.newBuilder() .setSubscription( String.format( ConnectorUtils.CPS_SUBSCRIPTION_FORMAT, cpsProject, cpsSubscription)) .build(); stub.getSubscription(request).get(); } catch (Exception e) { throw new ConnectException( "Error verifying the subscription " + cpsSubscription + " for project " + cpsProject, e); } }
@Override public int ackDeadlineSeconds(SubscriptionPath subscription) throws IOException { GetSubscriptionRequest request = GetSubscriptionRequest.newBuilder().setSubscription(subscription.getPath()).build(); Subscription response = subscriberStub().getSubscription(request); return response.getAckDeadlineSeconds(); }
/** * Gets the configuration details of a subscription. * * <p>Sample code: * * <pre><code> * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * ProjectSubscriptionName subscription = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); * Subscription response = subscriptionAdminClient.getSubscription(subscription); * } * </code></pre> * * @param subscription The name of the subscription to get. Format is * `projects/{project}/subscriptions/{sub}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final Subscription getSubscription(ProjectSubscriptionName subscription) { GetSubscriptionRequest request = GetSubscriptionRequest.newBuilder() .setSubscription(subscription == null ? null : subscription.toString()) .build(); return getSubscription(request); }
/** * Gets the configuration details of a subscription. * * <p>Sample code: * * <pre><code> * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * ProjectSubscriptionName subscription = ProjectSubscriptionName.of("[PROJECT]", "[SUBSCRIPTION]"); * Subscription response = subscriptionAdminClient.getSubscription(subscription.toString()); * } * </code></pre> * * @param subscription The name of the subscription to get. Format is * `projects/{project}/subscriptions/{sub}`. * @throws com.google.api.gax.rpc.ApiException if the remote call fails */ public final Subscription getSubscription(String subscription) { GetSubscriptionRequest request = GetSubscriptionRequest.newBuilder().setSubscription(subscription).build(); return getSubscription(request); }