Yair Zaslavsky has uploaded a new change for review. Change subject: core: adding root command id ......................................................................
core: adding root command id Adding root command Id to DAO and business entity. Root command Id represents the command Id of the command that started the flow that eventually tasks were created on its behalf in child commands Change-Id: Icb916417a910be7334937333b1767e40d59e0cf4 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/AsyncTasks.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/filters/pgsql.properties 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 8 files changed, 40 insertions(+), 8 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/38/15138/1 diff --git a/backend/manager/dbscripts/async_tasks_sp.sql b/backend/manager/dbscripts/async_tasks_sp.sql index 03c3d0c9..e790841 100644 --- a/backend/manager/dbscripts/async_tasks_sp.sql +++ b/backend/manager/dbscripts/async_tasks_sp.sql @@ -12,6 +12,7 @@ v_task_params_class varchar(256), v_step_id UUID, v_command_id UUID, + v_root_command_id UUID, v_entity_type varchar(128), v_started_at timestamp, v_storage_pool_id UUID, @@ -20,8 +21,8 @@ RETURNS VOID AS $procedure$ BEGIN -INSERT INTO async_tasks(action_type, result, status, vdsm_task_id, task_id, action_parameters,action_params_class, task_parameters, task_params_class, step_id, command_id, started_at,storage_pool_id, task_type) - VALUES(v_action_type, v_result, v_status, v_vdsm_task_id, v_task_id, v_action_parameters,v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id, v_started_at, v_storage_pool_id, v_async_task_type); +INSERT INTO async_tasks(action_type, result, status, vdsm_task_id, task_id, action_parameters,action_params_class, task_parameters, task_params_class, step_id, command_id, root_command_id, started_at,storage_pool_id, task_type) + VALUES(v_action_type, v_result, v_status, v_vdsm_task_id, v_task_id, v_action_parameters,v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id, v_root_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,fnsplitteruuid(v_entity_ids),v_entity_type; END; $procedure$ @@ -38,7 +39,8 @@ v_task_parameters text, v_task_params_class varchar(256), v_step_id UUID, - v_command_id UUID) + v_command_id UUID, + v_root_command_id UUID) RETURNS VOID --The [async_tasks] table doesn't have a timestamp column. Optimistic concurrency logic cannot be generated @@ -54,6 +56,7 @@ task_params_class = v_task_params_class, step_id = v_step_id, command_id = v_command_id, + root_command_id = v_root_command_id, vdsm_task_id = v_vdsm_task_id WHERE task_id = v_task_id; END; $procedure$ @@ -70,6 +73,7 @@ v_task_params_class varchar(256), v_step_id UUID, v_command_id UUID, + v_root_command_id UUID, v_entity_type varchar(128), v_started_at timestamp, v_storage_pool_id UUID, @@ -80,9 +84,9 @@ BEGIN IF NOT EXISTS (SELECT 1 from async_tasks where async_tasks.task_id = v_task_id) THEN PERFORM Insertasync_tasks(v_action_type, v_result, v_status, v_vdsm_task_id, v_task_id, v_action_parameters, - v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id, v_entity_type, v_started_at, v_storage_pool_id, v_async_task_type, v_entity_ids); + v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id, v_root_command_id, v_entity_type, v_started_at, v_storage_pool_id, v_async_task_type, v_entity_ids); ELSE - PERFORM Updateasync_tasks(v_action_type, v_result, v_status, v_vdsm_task_id, v_task_id, v_action_parameters, v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id); + PERFORM Updateasync_tasks(v_action_type, v_result, v_status, v_vdsm_task_id, v_task_id, v_action_parameters, v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id, v_root_command_id); END IF; END; $procedure$ LANGUAGE plpgsql; 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 de345e1..3393328 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 @@ -39,6 +39,7 @@ new VdcActionParametersBase(), creationInfo.getStepId(), asyncTask == null ? Guid.NewGuid() : asyncTask.getCommandId(), + asyncTask == null ? Guid.NewGuid() : asyncTask.getRootCommandId(), creationInfo.getStoragePoolID(), creationInfo.getTaskType()); creationInfo.setTaskType(AsyncTaskType.unknown); 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 1a06def..7139211 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 @@ -1521,7 +1521,9 @@ parentParameters, getParameters(), asyncTaskCreationInfo.getStepId(), - getCommandId(), asyncTaskCreationInfo.getStoragePoolID(), + getCommandId(), + parentParameters.getCommandId(), + asyncTaskCreationInfo.getStoragePoolID(), asyncTaskCreationInfo.getTaskType()); } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java index 49d9116..48fa3d5 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java @@ -19,7 +19,13 @@ } public AsyncTasks(VdcActionType action_type, AsyncTaskResultEnum result, AsyncTaskStatusEnum status, Guid vdsmTaskId, - VdcActionParametersBase parentParameters, VdcActionParametersBase taskParameters, NGuid stepId, Guid commandId, Guid storagePoolId, AsyncTaskType taskType) { + VdcActionParametersBase parentParameters, + VdcActionParametersBase taskParameters, + NGuid stepId, + Guid commandId, + Guid rootCommandId, + Guid storagePoolId, + AsyncTaskType taskType) { this.actionType = action_type; this.result = result; this.status = status; @@ -29,6 +35,7 @@ this.stepId = stepId; this.startTime = new Date(); this.commandId = commandId; + this.rootCommandId = rootCommandId; this.storagePoolId = storagePoolId; this.taskId = Guid.NewGuid(); this.taskType = taskType; @@ -128,6 +135,14 @@ private Guid commandId = Guid.Empty; + public Guid getRootCommandId() { + return rootCommandId; + } + + public void setRootCommandId(Guid rootCommandId) { + this.rootCommandId = rootCommandId; + } + public Guid getCommandId() { return commandId; } @@ -135,6 +150,8 @@ public void setCommandId(Guid commandId) { this.commandId = commandId; } + + private Guid rootCommandId = Guid.Empty; public Guid getStoragePoolId() { return storagePoolId; @@ -163,6 +180,7 @@ results = prime * results + ((vdsmTaskId == null) ? 0 : vdsmTaskId.hashCode()); results = prime * results + ((stepId == null) ? 0 : stepId.hashCode()); results = prime * results + ((commandId == null) ? 0 : commandId.hashCode()); + results = prime * results + ((rootCommandId == null) ? 0 : rootCommandId.hashCode()); results = prime * results + ((actionParameters == null) ? 0 : actionParameters.hashCode()); results = prime * results + ((actionType == null) ? 0 : actionType.hashCode()); results = prime * results + ((result == null) ? 0 : result.hashCode()); @@ -189,6 +207,7 @@ && ObjectUtils.objectsEqual(taskId, other.taskId) && ObjectUtils.objectsEqual(stepId, other.stepId) && ObjectUtils.objectsEqual(commandId, other.commandId) + && ObjectUtils.objectsEqual(rootCommandId, other.rootCommandId) && ObjectUtils.objectsEqual(actionParameters, other.actionParameters) && actionType == other.actionType && result == other.result 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 2129e13..f2e5287 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 @@ -58,6 +58,7 @@ entity.setTaskParameters(deserializeParameters(rs.getString("task_parameters"),rs.getString("task_params_class"))); entity.setStepId(NGuid.createGuidFromString(rs.getString("step_id"))); entity.setCommandId(Guid.createGuidFromString(rs.getString("command_id"))); + entity.setRootCommandId(Guid.createGuidFromString(rs.getString("root_command_id"))); entity.setStartTime(DbFacadeUtils.fromDate(rs.getTimestamp("started_at"))); entity.setTaskType(AsyncTaskType.forValue(rs.getInt("task_type"))); entity.setStoragePoolId(Guid.createGuidFromString(rs.getString("storage_pool_id"))); @@ -90,6 +91,7 @@ addValue("task_params_class",task.getTaskParameters().getClass().getName()); addValue("step_id", task.getStepId()); addValue("command_id", task.getCommandId()); + addValue("root_command_id", task.getRootCommandId()); } private static String serializeParameters(VdcActionParametersBase params) { diff --git a/backend/manager/modules/dal/src/test/filters/pgsql.properties b/backend/manager/modules/dal/src/test/filters/pgsql.properties index db77ed3..a72ef39 100644 --- a/backend/manager/modules/dal/src/test/filters/pgsql.properties +++ b/backend/manager/modules/dal/src/test/filters/pgsql.properties @@ -1,6 +1,6 @@ engine.db.username = postgres engine.db.password = redhat -engine.db.url = jdbc:postgresql://localhost/engine_test +engine.db.url = jdbc:postgresql://localhost/engine2 engine.db.driver = org.postgresql.Driver engine.db.datafactory = org.ovirt.engine.core.dao.PostgresDataTypeFactory engine.db.initsql = 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 7ce276e..fe5ffd9 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 @@ -62,6 +62,7 @@ newAsyncTask.setActionParameters(params); newAsyncTask.setTaskParameters(taskParams); newAsyncTask.setCommandId(Guid.NewGuid()); + newAsyncTask.setRootCommandId(Guid.NewGuid()); newAsyncTask.setTaskType(AsyncTaskType.copyImage); newAsyncTask.setStoragePoolId(Guid.NewGuid()); diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 5e9e28a..243b15c 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -48,6 +48,7 @@ <column>result</column> <column>action_parameters</column> <column>command_id</column> + <column>root_command_id</column> <column>started_at</column> <column>storage_pool_id</column> <column>task_type</column> @@ -59,6 +60,7 @@ <value>0</value> <!-- Success --> <null /> <value>340fd52b-3400-4cdd-8d3f-c9d03704b0aa</value> + <value>340fd52b-3400-4cdd-8d3f-c9d03704b000</value> <value>2010-12-01 14:13:07</value> <value>6d849ebf-755f-4552-ad09-9a090cda105d</value> <value>3</value> @@ -71,6 +73,7 @@ <value>0</value> <!-- Success --> <null /> <value>340fd52b-3400-4cdd-8d3f-c9d03704b0ab</value> + <value>340fd52b-3400-4cdd-8d3f-c9d03704b000</value> <value>2010-12-01 14:13:07</value> <value>6d849ebf-755f-4552-ad09-9a090cda105d</value> <value>3</value> -- To view, visit http://gerrit.ovirt.org/15138 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icb916417a910be7334937333b1767e40d59e0cf4 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
