JobResult.java
package org.entando.kubernetes.model.job;
import java.util.Optional;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.entando.kubernetes.exception.EntandoComponentManagerException;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class JobResult {
JobStatus status;
EntandoComponentManagerException installException;
EntandoComponentManagerException rollbackException;
Double progress;
public boolean hasException() {
return this.installException != null || this.rollbackException != null;
}
public Integer getInstallErrorCode() {
return null != installException ? installException.getErrorCode() : null;
}
public String getInstallErrorMessage() {
return null != installException ? installException.getMessage() : null;
}
public String getInstallError() {
return this.formatError(installException);
}
public Integer getRollbackErrorCode() {
return null != rollbackException ? rollbackException.getErrorCode() : null;
}
public String getRollbackErrorMessage() {
return null != rollbackException ? rollbackException.getMessage() : null;
}
public String getRollbackError() {
return this.formatError(rollbackException);
}
public JobResult setInstallException(Exception ex) {
this.installException = ex instanceof EntandoComponentManagerException
? (EntandoComponentManagerException) ex
: new EntandoComponentManagerException(ex);
return this;
}
public JobResult setRollbackException(Exception ex) {
this.rollbackException = ex instanceof EntandoComponentManagerException
? (EntandoComponentManagerException) ex
: new EntandoComponentManagerException(ex);
return this;
}
public void clearException() {
this.installException = null;
this.rollbackException = null;
}
private String formatError(EntandoComponentManagerException e) {
return Optional.ofNullable(e)
.map(ex -> String.format("code: %d --- message: %s", ex.getErrorCode(), ex.getMessage()))
.orElse("");
}
}