Skip to content

Commit

Permalink
Merge #891
Browse files Browse the repository at this point in the history
891: Log more response errors r=Zelldon a=Zelldon

Previously we only logged (not sure but current assumption) BAD_REQUEST returned from SAAS

Related to #889

Co-authored-by: Christopher Zell <[email protected]>
  • Loading branch information
zeebe-bors[bot] and Zelldon authored Sep 19, 2023
2 parents 04b012e + 0e3352a commit 79478e3
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.zeebe.clustertestbench.cloud;

import io.zeebe.clustertestbench.cloud.filter.BadRequestResponseFilter;
import io.zeebe.clustertestbench.cloud.filter.EntityLoggingFilter;
import io.zeebe.clustertestbench.cloud.filter.FailedResponseFilter;
import io.zeebe.clustertestbench.cloud.oauth.OAuthInterceptor;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
Expand All @@ -24,7 +24,7 @@ public CloudAPIClient createCloudAPIClient(
final Client client =
ClientBuilder.newBuilder()
.register(oauthInterceptor)
.register(BadRequestResponseFilter.class)
.register(FailedResponseFilter.class)
.register(EntityLoggingFilter.class)
.build();
final WebTarget target = client.target(cloudApiUrl);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,35 @@
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class BadRequestResponseFilter implements ClientResponseFilter {
public class FailedResponseFilter implements ClientResponseFilter {

private static final Logger LOG = LoggerFactory.getLogger(FailedResponseFilter.class);
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

@Override
public void filter(
final ClientRequestContext requestContext, final ClientResponseContext responseContext)
throws IOException {
if (responseContext.getStatus() > 399) {

if (responseContext.getStatus() == 400) {
final String requestBody = new ObjectMapper().writeValueAsString(requestContext.getEntity());
final String requestBody = OBJECT_MAPPER.writeValueAsString(requestContext.getEntity());
final String responseBody =
IOUtils.toString(responseContext.getEntityStream(), StandardCharsets.UTF_8);

throw new IOException(
"BAD REQUEST returned from URI: "
final String errorMessage =
responseContext.getStatusInfo().toEnum()
+ " returned from URI: "
+ requestContext.getUri()
+ ", requestBody:"
+ requestBody
+ ", responseBody: "
+ responseBody);
+ responseBody;

LOG.error(errorMessage);
throw new IOException(errorMessage);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.zeebe.clustertestbench.cloud.oauth;

import io.zeebe.clustertestbench.cloud.filter.BadRequestResponseFilter;
import io.zeebe.clustertestbench.cloud.filter.FailedResponseFilter;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.WebTarget;
Expand All @@ -9,8 +9,7 @@
public class OAuthClientFactory {

public OAuthClient createOAuthClient(final String authenticationURL) {
final Client client =
ClientBuilder.newBuilder().register(BadRequestResponseFilter.class).build();
final Client client = ClientBuilder.newBuilder().register(FailedResponseFilter.class).build();

final WebTarget target = client.target(authenticationURL);
final ResteasyWebTarget rtarget = (ResteasyWebTarget) target;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.zeebe.clustertestbench.internal.cloud;

import io.zeebe.clustertestbench.cloud.filter.BadRequestResponseFilter;
import io.zeebe.clustertestbench.cloud.filter.FailedResponseFilter;
import io.zeebe.clustertestbench.cloud.oauth.OAuthInterceptor;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
Expand All @@ -25,7 +25,7 @@ public InternalCloudAPIClient createCloudAPIClient(
final Client client =
ClientBuilder.newBuilder()
.register(oauthInterceptor)
.register(BadRequestResponseFilter.class)
.register(FailedResponseFilter.class)
.build();
final WebTarget target = client.target(cloudApiUrl);
final ResteasyWebTarget rtarget = (ResteasyWebTarget) target;
Expand Down

0 comments on commit 79478e3

Please sign in to comment.