Skip to content

Commit 2335316

Browse files
deosulaullonNorayr25
authored
Dev (#864)
* MONIT-40499 upgrade java-lib dependency (#862) * Update maven.yml * MONIT-40739: Improve proxy error handling (#863) --------- Co-authored-by: German Laullon <glaullon@vmware.com> Co-authored-by: Norayr25 <nchaparyan@vmware.com>
1 parent 96eb025 commit 2335316

4 files changed

Lines changed: 26 additions & 8 deletions

File tree

.github/workflows/maven.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ jobs:
2222
java-version: ${{ matrix.java }}
2323
distribution: "temurin"
2424
cache: maven
25+
- name: versions
26+
run: mvn -v
2527
- name: Check code format
2628
run: mvn -f proxy git-code-format:validate-code-format
2729
- name: Build with Maven

proxy/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@
388388
<dependency>
389389
<groupId>com.wavefront</groupId>
390390
<artifactId>java-lib</artifactId>
391-
<version>2023-04.3</version>
391+
<version>2023-07.8</version>
392392
</dependency>
393393
<dependency>
394394
<groupId>com.fasterxml.jackson.module</groupId>

proxy/src/main/java/com/wavefront/agent/TokenWorkerCSP.java

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import static com.google.common.base.Preconditions.checkNotNull;
44
import static javax.ws.rs.core.Response.Status.Family.SUCCESSFUL;
55

6+
import com.fasterxml.jackson.databind.JsonNode;
7+
import com.fasterxml.jackson.databind.ObjectMapper;
68
import com.google.common.base.Strings;
79
import com.wavefront.agent.api.APIContainer;
810
import com.wavefront.agent.api.CSPAPI;
@@ -32,7 +34,7 @@
3234
public class TokenWorkerCSP
3335
implements TokenWorker, TokenWorker.External, TokenWorker.Scheduled, TenantInfo {
3436
private static final String GET_CSP_ACCESS_TOKEN_ERROR_MESSAGE =
35-
"Failed to get access token from CSP.";
37+
"Failed to get access token from CSP (%s). %s";
3638
private static final ScheduledExecutorService executor =
3739
Executors.newScheduledThreadPool(1, new NamedThreadFactory("csp-token-updater"));
3840
private static final Logger log = Logger.getLogger(TokenWorkerCSP.class.getCanonicalName());
@@ -152,12 +154,24 @@ private long processResponse(final Response response) {
152154
long nextIn = 10;
153155
if (response.getStatusInfo().getFamily() != SUCCESSFUL) {
154156
errors.get().inc();
155-
log.severe(
156-
GET_CSP_ACCESS_TOKEN_ERROR_MESSAGE
157-
+ "("
158-
+ this.proxyAuthMethod
159-
+ ") Status: "
160-
+ response.getStatusInfo().getStatusCode());
157+
String jsonString = response.readEntity(String.class);
158+
// Parse the JSON response
159+
ObjectMapper objectMapper = new ObjectMapper();
160+
try {
161+
JsonNode jsonNode = objectMapper.readTree(jsonString);
162+
String message = jsonNode.get("message").asText();
163+
164+
log.severe(
165+
String.format(GET_CSP_ACCESS_TOKEN_ERROR_MESSAGE, this.proxyAuthMethod, message)
166+
+ ". Status: "
167+
+ response.getStatusInfo().getStatusCode());
168+
169+
} catch (Exception e) {
170+
log.severe(
171+
String.format(GET_CSP_ACCESS_TOKEN_ERROR_MESSAGE, this.proxyAuthMethod, jsonString)
172+
+ ". Status: "
173+
+ response.getStatusInfo().getStatusCode());
174+
}
161175
} else {
162176
try {
163177
final TokenExchangeResponseDTO tokenExchangeResponseDTO =

proxy/src/test/java/com/wavefront/agent/TenantInfoTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ public void testRun_UnsuccessfulResponseUsingOAuthApp() {
146146

147147
// Set up expectations
148148
expect(mockResponse.getStatusInfo()).andReturn(statusTypeMock).times(3);
149+
expect(mockResponse.readEntity(String.class)).andReturn("");
149150
expect(statusTypeMock.getStatusCode()).andReturn(400).times(2);
150151
expect(statusTypeMock.getFamily()).andReturn(Response.Status.Family.SERVER_ERROR);
151152
expect(
@@ -195,6 +196,7 @@ public void testRun_UnsuccessfulResponseUsingCSPAPIToken() {
195196
TokenWorkerCSP tokenWorkerCSP = new TokenWorkerCSP("csp-api-token", wfServer);
196197

197198
// Set up expectations
199+
expect(mockResponse.readEntity(String.class)).andReturn("");
198200
expect(mockResponse.getStatusInfo()).andReturn(statusTypeMock).times(3);
199201
expect(statusTypeMock.getStatusCode()).andReturn(400).times(2);
200202
expect(statusTypeMock.getFamily()).andReturn(Response.Status.Family.SERVER_ERROR);

0 commit comments

Comments
 (0)