Skip to content

Commit 132ef1b

Browse files
authored
chore: improve error for missing secret (#135)
1 parent 6cca5cd commit 132ef1b

File tree

2 files changed

+39
-17
lines changed

2 files changed

+39
-17
lines changed

source/rhoas/src/main/java/com/openshift/cloud/beans/AccessTokenSecretTool.java

+8-11
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public String getAccessToken(String accessTokenSecretName, String namespace)
5353
var accessToken = exchangeToken(offlineToken);
5454
return accessToken;
5555
} catch (Exception ex) {
56-
LOG.log(Level.SEVERE, ex.getMessage(), ex);
56+
LOG.log(Level.SEVERE, ex.getMessage());
5757
throw new ConditionAwareException(
5858
ex.getMessage(),
5959
ex,
@@ -65,17 +65,14 @@ public String getAccessToken(String accessTokenSecretName, String namespace)
6565
}
6666

6767
private String getOfflineTokenFromSecret(String secretName, String namespace) {
68-
var offlineToken =
69-
k8sClient
70-
.secrets()
71-
.inNamespace(namespace)
72-
.withName(secretName)
73-
.get()
74-
.getData()
75-
.get(ACCESS_TOKEN_SECRET_KEY);
76-
offlineToken = new String(Base64.getDecoder().decode(offlineToken));
68+
var token = k8sClient.secrets().inNamespace(namespace).withName(secretName).get();
69+
if (token != null) {
70+
var offlineToken = token.getData().get(ACCESS_TOKEN_SECRET_KEY);
71+
offlineToken = new String(Base64.getDecoder().decode(offlineToken));
7772

78-
return offlineToken;
73+
return offlineToken;
74+
}
75+
throw new Error("Missing Offline Token Secret " + secretName);
7976
}
8077

8178
/**

source/rhoas/src/main/java/com/openshift/cloud/beans/KafkaApiClient.java

+31-6
Original file line numberDiff line numberDiff line change
@@ -49,27 +49,29 @@ public KafkaRequest getKafkaById(String kafkaId, String accessToken)
4949
try {
5050
return createClient(accessToken).getKafkaById(kafkaId);
5151
} catch (ApiException e) {
52+
String message = getStandarizedErrorMessage(e);
5253
throw new ConditionAwareException(
53-
e.getMessage(),
54+
message,
5455
e,
5556
KafkaCondition.Type.FoundKafkaById,
5657
KafkaCondition.Status.False,
5758
e.getClass().getName(),
58-
e.getMessage());
59+
message);
5960
}
6061
}
6162

6263
public KafkaRequestList listKafkas(String accessToken) throws ConditionAwareException {
6364
try {
6465
return createClient(accessToken).listKafkas(null, null, null, null);
6566
} catch (ApiException e) {
67+
String message = getStandarizedErrorMessage(e);
6668
throw new ConditionAwareException(
67-
e.getMessage(),
69+
message,
6870
e,
6971
KafkaCondition.Type.UserKafkasUpToDate,
7072
KafkaCondition.Status.False,
7173
e.getClass().getName(),
72-
e.getMessage());
74+
message);
7375
}
7476
}
7577

@@ -81,13 +83,14 @@ public ServiceAccount createServiceAccount(
8183
serviceAccountRequest.setName(spec.getServiceAccountName());
8284
return createClient(accessToken).createServiceAccount(serviceAccountRequest);
8385
} catch (ApiException e) {
86+
String message = getStandarizedErrorMessage(e);
8487
throw new ConditionAwareException(
85-
e.getMessage(),
88+
message,
8689
e,
8790
KafkaCondition.Type.ServiceAccountCreated,
8891
KafkaCondition.Status.False,
8992
e.getClass().getName(),
90-
e.getMessage());
93+
message);
9194
}
9295
}
9396

@@ -133,4 +136,26 @@ public void createSecretForServiceAccount(
133136
e.getMessage());
134137
}
135138
}
139+
140+
private String getStandarizedErrorMessage(ApiException e) {
141+
if (e.getCode() == 504) {
142+
return "Server timeout. Server is not responding";
143+
}
144+
if (e.getCode() == 500) {
145+
return "Unknown server error.";
146+
}
147+
if (e.getCode() == 500) {
148+
return "Unknown server error.";
149+
}
150+
if (e.getCode() == 400) {
151+
return "Invalid request " + e.getMessage();
152+
}
153+
if (e.getCode() == 401) {
154+
return "Auth Token is invalid.";
155+
}
156+
if (e.getCode() == 403) {
157+
return "User not authorized to access the service";
158+
}
159+
return e.getMessage();
160+
}
136161
}

0 commit comments

Comments
 (0)