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

Reply via email to