Yair Zaslavsky has uploaded a new change for review. Change subject: core: adding storage_pool_id and task type fields to async_tasks ......................................................................
core: adding storage_pool_id and task type fields to async_tasks For purpose of upgrade from 3.1 -> 3.2 to present running tasks information during upgrade. Change-Id: I23cc8694c17471d38f5e24f26f77c78a7b3b1034 Bug-Url: https://bugzilla.redhat.com/868672 Signed-off-by: Yair Zaslavsky <[email protected]> --- M backend/manager/dbscripts/async_tasks_sp.sql M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AsyncTaskFactory.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/async_tasks.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java M backend/manager/modules/dal/src/test/resources/fixtures.xml 7 files changed, 62 insertions(+), 5 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/50/8750/1 diff --git a/backend/manager/dbscripts/async_tasks_sp.sql b/backend/manager/dbscripts/async_tasks_sp.sql index aa36535..e301260 100644 --- a/backend/manager/dbscripts/async_tasks_sp.sql +++ b/backend/manager/dbscripts/async_tasks_sp.sql @@ -11,12 +11,14 @@ v_command_id UUID, v_entity_type varchar(128), v_started_at timestamp, + v_storage_pool_id UUID, + v_async_task_type INTEGER, v_entity_ids text) RETURNS VOID AS $procedure$ BEGIN -INSERT INTO async_tasks(action_type, result, status, task_id, action_parameters,action_params_class, step_id, command_id, started_at) - VALUES(v_action_type, v_result, v_status, v_task_id, v_action_parameters,v_action_params_class, v_step_id, v_command_id, v_started_at); +INSERT INTO async_tasks(action_type, result, status, task_id, action_parameters,action_params_class, step_id, command_id, started_at,storage_pool_id, task_type) + VALUES(v_action_type, v_result, v_status, v_task_id, v_action_parameters,v_action_params_class, v_step_id, v_command_id, v_started_at, v_storage_pool_id, v_async_task_type); INSERT INTO async_tasks_entities (async_task_id,entity_id,entity_type) SELECT v_task_id,id,v_entity_type from fnsplitteruuid(v_entity_ids); END; $procedure$ diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AsyncTaskFactory.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AsyncTaskFactory.java index 71cfa3a..0564cad 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AsyncTaskFactory.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AsyncTaskFactory.java @@ -35,7 +35,7 @@ creationInfo.getTaskID(), new VdcActionParametersBase(), creationInfo.getStepId(), - asyncTask == null ? Guid.NewGuid() : asyncTask.getCommandId()); + asyncTask == null ? Guid.NewGuid() : asyncTask.getCommandId(),creationInfo.getStoragePoolID(),creationInfo.getTaskType()); creationInfo.setTaskType(AsyncTaskType.unknown); } AsyncTaskParameters asyncTaskParams = new AsyncTaskParameters(creationInfo, asyncTask); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java index 2dbac35..ceff93c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java @@ -1114,7 +1114,8 @@ asyncTaskCreationInfo.getTaskID(), parametersForTask, asyncTaskCreationInfo.getStepId(), - getCommandId())); + getCommandId(),asyncTaskCreationInfo.getStoragePoolID(), + asyncTaskCreationInfo.getTaskType())); p.setEntityId(getParameters().getEntityId()); return AsyncTaskManager.getInstance().CreateTask(getTaskType(), p); } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/async_tasks.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/async_tasks.java index 6f7ddb5..851e4da 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/async_tasks.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/async_tasks.java @@ -15,6 +15,7 @@ import org.hibernate.annotations.TypeDef; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.businessentities.mapping.GuidType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; @@ -25,11 +26,13 @@ public class async_tasks implements Serializable { private static final long serialVersionUID = 5913365704117183118L; + + public async_tasks() { } public async_tasks(VdcActionType action_type, AsyncTaskResultEnum result, AsyncTaskStatusEnum status, Guid task_id, - VdcActionParametersBase action_parameters, NGuid stepId, Guid commandId) { + VdcActionParametersBase action_parameters, NGuid stepId, Guid commandId, Guid storagePoolId, AsyncTaskType taskType) { this.actionType = action_type; this.result = result; this.status = status; @@ -38,6 +41,8 @@ this.stepId = stepId; this.startTime = new Date(); this.commandId = commandId; + this.storagePoolId = storagePoolId; + this.taskType = taskType; } @Column(name = "action_type", nullable = false) @@ -136,6 +141,26 @@ this.commandId = commandId; } + public Guid getStoragePoolId() { + return storagePoolId; + } + + public void setStoragePoolId(Guid storagePoolId) { + this.storagePoolId = storagePoolId; + } + + private Guid storagePoolId; + + public AsyncTaskType getTaskType() { + return taskType; + } + + public void setTaskType(AsyncTaskType taskType) { + this.taskType = taskType; + } + + private AsyncTaskType taskType; + @Override public int hashCode() { final int prime = 31; @@ -148,6 +173,9 @@ results = prime * results + ((stepId == null) ? 0 : stepId.hashCode()); results = prime * results + ((commandId == null) ? 0 : commandId.hashCode()); results = prime * results + ((startTime == null) ? 0 : startTime.hashCode()); + results = prime * results + ((storagePoolId == null) ? 0 : storagePoolId.hashCode()); + results = prime * results + ((taskType == null) ? 0 : taskType.hashCode()); + return results; } @@ -197,6 +225,20 @@ } else if (!startTime.equals(other.startTime)) { return false; } + if (storagePoolId == null) { + if (other.storagePoolId != null) { + return false; + } + } else if (!storagePoolId.equals(other.storagePoolId)) { + return false; + } + if (taskType == null) { + if (other.taskType != null) { + return false; + } + } else if (!taskType.equals(other.taskType)) { + return false; + } return true; } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java index f7e320a..71916f8 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java @@ -9,6 +9,7 @@ import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.businessentities.AsyncTaskResultEnum; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum; import org.ovirt.engine.core.common.businessentities.async_tasks; @@ -57,6 +58,7 @@ entity.setStepId(NGuid.createGuidFromString(rs.getString("step_id"))); entity.setCommandId(Guid.createGuidFromString(rs.getString("command_id"))); entity.setStartTime(DbFacadeUtils.fromDate(rs.getTimestamp("started_at"))); + entity.setTaskType(AsyncTaskType.forValue(rs.getInt("task_type"))); return entity; } @@ -117,6 +119,8 @@ AsyncTaskParameterSource parameterSource = getTaskParameterSource(task); parameterSource.addValue("entity_type", (entityType != null) ? entityType.toString() : null); parameterSource.addValue("started_at", task.getStartTime()); + parameterSource.addValue("storage_pool_id",task.getStoragePoolId()); + parameterSource.addValue("async_task_type", task.getTaskType()); parameterSource.addValue("entity_ids", StringUtils.join(entityIds, ",")); getCallsHandler().executeModification("Insertasync_tasks", parameterSource); } diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java index fbdbc48..e5d5292 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java @@ -14,6 +14,7 @@ import org.ovirt.engine.core.common.action.AddDiskParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.businessentities.AsyncTaskResultEnum; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum; import org.ovirt.engine.core.common.businessentities.async_tasks; @@ -52,6 +53,7 @@ newAsyncTask.setresult(AsyncTaskResultEnum.success); newAsyncTask.setaction_parameters(params); newAsyncTask.setCommandId(Guid.NewGuid()); + newAsyncTask.setTaskType(AsyncTaskType.copyImage); existingAsyncTask = dao.get(FixturesTool.EXISTING_TASK_ID); } diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index eb540a6..da4ec64 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -39,6 +39,8 @@ <column>action_parameters</column> <column>command_id</column> <column>started_at</column> + <column>storage_pool_id</column> + <column>task_type</column> <row> <value>340fd52b-3400-4cdd-8d3f-c9d03704b0aa</value> <value>1</value> <!-- Add VM --> @@ -47,6 +49,8 @@ <null /> <value>340fd52b-3400-4cdd-8d3f-c9d03704b0aa</value> <value>2010-12-01 14:13:07</value> + <value>6d849ebf-755f-4552-ad09-9a090cda105d</value> + <value>3</value> </row> <row> <value>340fd52b-3400-4cdd-8d3f-c9d03704b0ab</value> @@ -56,6 +60,8 @@ <null /> <value>340fd52b-3400-4cdd-8d3f-c9d03704b0ab</value> <value>2010-12-01 14:13:07</value> + <value>6d849ebf-755f-4552-ad09-9a090cda105d</value> + <value>3</value> </row> </table> -- To view, visit http://gerrit.ovirt.org/8750 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I23cc8694c17471d38f5e24f26f77c78a7b3b1034 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
