Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BugFix: OP-23010- Enhance error handling for audit service bulk import #495

Merged
merged 1 commit into from
Dec 20, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import com.netflix.spinnaker.gate.config.ServiceConfiguration
import com.netflix.spinnaker.gate.exceptions.OesRequestException
import com.netflix.spinnaker.security.AuthenticatedRequest
import com.opsmx.spinnaker.gate.services.OpsmxAuditService
import groovy.json.JsonSlurper
import groovy.util.logging.Slf4j
import io.swagger.v3.oas.annotations.Operation
import okhttp3.MultipartBody
Expand Down Expand Up @@ -100,13 +101,27 @@ class OpsmxAuditServiceController {
return response
}.call() as okhttp3.Response
if (!obj.isSuccessful()) {
def error = obj.body().string();
log.error("Failed to upload multipart file to audit service : {}", error)
throw new OesRequestException(error)
} else{
return obj.body()?.string() ?: "Unknown reason: " + obj.code() as Object
def errorBody = obj.body()?.string()
log.error("Failed to upload multipart file to audit service: {}", errorBody)
def errorMessage = parseErrorMessage(errorBody, obj.code)

throw new OesRequestException(errorMessage)
} else {
return obj.body()?.string() ?: "Unknown reason: ${obj.code}" as Object
}
}

private String parseErrorMessage(String errorBody, int statusCode) {
try {
def errorJson = new JsonSlurper().parseText(errorBody)
def message = errorJson.message ?: "An error occurred while processing the request."
return message
} catch (Exception e) {
log.warn("Failed to parse error response: {}", e.message)
return errorBody
}
}

private okhttp3.RequestBody uploadFileOkHttp(MultipartFile multiPartfile) throws IOException {
String fileName = multiPartfile.getOriginalFilename();
MultipartBody.Builder builder = new MultipartBody.Builder();
Expand Down
Loading