Eli Mesika has uploaded a new change for review. Change subject: [WIP] API: Adding Step mapping class ......................................................................
[WIP] API: Adding Step mapping class Change-Id: Id1b95a094dc586e6ebbdacd44e0a034e91603274 Signed-off-by: Eli Mesika <[email protected]> Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=872719 --- A backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StepMapper.java A backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/StepMapperTest.java 2 files changed, 162 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/61/16161/1 diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StepMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StepMapper.java new file mode 100644 index 0000000..a941f51 --- /dev/null +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StepMapper.java @@ -0,0 +1,135 @@ +package org.ovirt.engine.api.restapi.types; + +import java.sql.Date; +import java.util.Calendar; + +import org.ovirt.engine.api.model.Status; +import org.ovirt.engine.api.restapi.utils.TypeConversionHelper; +import org.ovirt.engine.core.common.job.JobExecutionStatus; +import org.ovirt.engine.core.common.job.StepEnum; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.compat.NGuid; + +public class StepMapper { + + @Mapping(from = org.ovirt.engine.core.common.job.Step.class, to = org.ovirt.engine.api.model.Step.class) + public static org.ovirt.engine.api.model.Step map(org.ovirt.engine.core.common.job.Step entity, + org.ovirt.engine.api.model.Step step) { + + org.ovirt.engine.api.model.Step model = step != null ? step : new org.ovirt.engine.api.model.Step(); + model.setId(String.valueOf(entity.getId())); + if (entity.getParentStepId() != null) { + org.ovirt.engine.api.model.Step parentStep = new org.ovirt.engine.api.model.Step(); + parentStep.setId(String.valueOf(entity.getParentStepId())); + model.setParentStep(parentStep); + } + org.ovirt.engine.api.model.Job job = new org.ovirt.engine.api.model.Job(); + job.setId(String.valueOf(entity.getJobId())); + model.setJob(job); + model.setStepType(map(entity.getStepType())); + model.setDescription(entity.getDescription()); + model.setNumber(entity.getStepNumber()); + model.setStatus(map(entity.getStatus(), null)); + model.setStartTime(TypeConversionHelper.toXMLGregorianCalendar(entity.getStartTime(), null)); + if (entity.getEndTime() != null) { + model.setEndTime(TypeConversionHelper.toXMLGregorianCalendar(entity.getEndTime(), null)); + } + model.setExternal(entity.isExternal()); + return model; + } + + @Mapping(from = org.ovirt.engine.api.model.Step.class, to = org.ovirt.engine.core.common.job.Step.class) + public static org.ovirt.engine.core.common.job.Step map(org.ovirt.engine.api.model.Step step, + org.ovirt.engine.core.common.job.Step entity) { + org.ovirt.engine.core.common.job.Step target = + entity != null ? entity : new org.ovirt.engine.core.common.job.Step(); + target.setId(new Guid(step.getId())); + if (step.isSetParentStep()) { + target.setParentStepId(NGuid.createGuidFromString(step.getParentStep().getId())); + } + target.setJobId(Guid.createGuidFromString(step.getJob().getId())); + target.setStepType(map(step.getStepType())); + target.setDescription(step.getDescription()); + target.setStepNumber(step.getNumber()); + target.setStatus(map(step.getStatus(), null)); + target.setStartTime(step.getStartTime().toGregorianCalendar().getTime()); + target.setEndTime(step.isSetStartTime() ? step.getStartTime().toGregorianCalendar().getTime() + : new Date((Calendar.getInstance().getTimeInMillis()))); + target.setExternal(step.isExternal()); + return target; + } + + @Mapping(from = org.ovirt.engine.api.model.Status.class, + to = org.ovirt.engine.core.common.job.JobExecutionStatus.class) + public static org.ovirt.engine.core.common.job.JobExecutionStatus map(org.ovirt.engine.api.model.Status status, + org.ovirt.engine.core.common.job.JobExecutionStatus incoming) { + if (JobExecutionStatus.STARTED.name().equals(status.getState().toUpperCase())) { + return JobExecutionStatus.STARTED; + } + if (JobExecutionStatus.FINISHED.name().equals(status.getState().toUpperCase())) { + return JobExecutionStatus.FINISHED; + } + if (JobExecutionStatus.ABORTED.name().equals(status.getState().toUpperCase())) { + return JobExecutionStatus.ABORTED; + } + if (JobExecutionStatus.FAILED.name().equals(status.getState().toUpperCase())) { + return JobExecutionStatus.FAILED; + } + return JobExecutionStatus.UNKNOWN; + } + + @Mapping(from = org.ovirt.engine.core.common.job.JobExecutionStatus.class, + to = org.ovirt.engine.api.model.Status.class) + public static org.ovirt.engine.api.model.Status map(org.ovirt.engine.core.common.job.JobExecutionStatus status, + org.ovirt.engine.api.model.Status incoming) { + Status st = new Status(); + if (JobExecutionStatus.STARTED == status) { + st.setState(JobExecutionStatus.STARTED.name()); + return st; + } + if (JobExecutionStatus.FINISHED == status) { + st.setState(JobExecutionStatus.FINISHED.name()); + return st; + } + if (JobExecutionStatus.ABORTED == status) { + st.setState(JobExecutionStatus.ABORTED.name()); + return st; + } + if (JobExecutionStatus.FAILED == status) { + st.setState(JobExecutionStatus.FAILED.name()); + return st; + } + st.setState(JobExecutionStatus.UNKNOWN.name()); + return st; + } + + @Mapping(from = String.class, + to = org.ovirt.engine.core.common.job.StepEnum.class) + public static org.ovirt.engine.core.common.job.StepEnum map(String type) { + if (StepEnum.VALIDATING.name().equals(type.toUpperCase())) { + return StepEnum.VALIDATING; + } + if (StepEnum.EXECUTING.name().equals(type.toUpperCase())) { + return StepEnum.EXECUTING; + } + if (StepEnum.FINALIZING.name().equals(type.toUpperCase())) { + return StepEnum.FINALIZING; + } + return StepEnum.UNKNOWN; + } + + @Mapping(from = org.ovirt.engine.core.common.job.StepEnum.class, + to = String.class) + public static String map(org.ovirt.engine.core.common.job.StepEnum type) { + if (StepEnum.VALIDATING == type) { + return StepEnum.VALIDATING.toString(); + } + if (StepEnum.EXECUTING == type) { + return StepEnum.EXECUTING.toString(); + } + if (StepEnum.FINALIZING == type) { + return StepEnum.FINALIZING.toString(); + } + return StepEnum.UNKNOWN.toString(); + } +} diff --git a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/StepMapperTest.java b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/StepMapperTest.java new file mode 100644 index 0000000..37d7151 --- /dev/null +++ b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/StepMapperTest.java @@ -0,0 +1,27 @@ +package org.ovirt.engine.api.restapi.types; + +import org.ovirt.engine.api.model.Step; + +public class StepMapperTest extends AbstractInvertibleMappingTest<Step, org.ovirt.engine.core.common.job.Step, org.ovirt.engine.core.common.job.Step> { + + public StepMapperTest() { + super(org.ovirt.engine.api.model.Step.class, + org.ovirt.engine.core.common.job.Step.class, + org.ovirt.engine.core.common.job.Step.class); + } + + @Override + protected void verify(Step model, Step transform) { + assertNotNull(transform); + assertEquals(model.getId(), transform.getId()); + assertEquals(model.getDescription(), transform.getDescription()); + } + + @Override + protected Step postPopulate(Step model) { + model.getStatus().setState("started"); + return super.postPopulate(model); + } + +} + -- To view, visit http://gerrit.ovirt.org/16161 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id1b95a094dc586e6ebbdacd44e0a034e91603274 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Eli Mesika <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
