Roy Golan has uploaded a new change for review.

Change subject: core: Added qualifiers for CRUD actions for entities
......................................................................

core: Added qualifiers for CRUD actions for entities

Added an EntityAction qualifier. its useful for observing changes in
entities involved in bg services or caches such as
ResourceManaer.vmManagers or the future Affinity-rules enforcer.

USAGE
Consider a command the updates and entity and an Observer method to
watch that - see ResourceManaer and RemoveVmCommand

Change-Id: I731ed7796b7deb830c19959a7c93c73df219d566
Signed-off-by: Roy Golan <rgo...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/qualifier/ActionType.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/qualifier/EntityAction.java
D 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/common/qualifiers/VmDeleted.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
5 files changed, 29 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/13/42413/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java
index 62842d2..8725f53 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveVmCommand.java
@@ -49,6 +49,8 @@
 import org.ovirt.engine.core.common.businessentities.storage.LunDisk;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.common.locks.LockingGroup;
+import org.ovirt.engine.core.common.qualifier.ActionType;
+import org.ovirt.engine.core.common.qualifier.EntityAction;
 import org.ovirt.engine.core.common.utils.Pair;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dao.VmIconDao;
@@ -59,7 +61,7 @@
 @NonTransactiveCommandAttribute(forceCompensation = true)
 public class RemoveVmCommand<T extends RemoveVmParameters> extends 
VmCommand<T> implements QuotaStorageDependent, 
TaskHandlerCommand<RemoveVmParameters> {
 
-    @Inject
+    @Inject @EntityAction(ActionType.DELETE)
     private Event<Guid> vmDeleted;
 
     @Inject
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/qualifier/ActionType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/qualifier/ActionType.java
new file mode 100644
index 0000000..906c232
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/qualifier/ActionType.java
@@ -0,0 +1,9 @@
+package org.ovirt.engine.core.common.qualifier;
+
+public enum ActionType {
+    GENERAL,
+    CREATE,
+    READ,
+    UPDATE,
+    DELETE,
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/qualifier/EntityAction.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/qualifier/EntityAction.java
new file mode 100644
index 0000000..6acdba9
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/qualifier/EntityAction.java
@@ -0,0 +1,14 @@
+package org.ovirt.engine.core.common.qualifier;
+
+import javax.inject.Qualifier;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Qualifier
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.PARAMETER, ElementType.FIELD })
+public @interface EntityAction {
+    ActionType value() default ActionType.GENERAL;
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/common/qualifiers/VmDeleted.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/common/qualifiers/VmDeleted.java
deleted file mode 100644
index e149447..0000000
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/common/qualifiers/VmDeleted.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.ovirt.engine.core.common.qualifiers;
-
-import javax.inject.Qualifier;
-
-@Qualifier
-public @interface VmDeleted {
-}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
index 056b497..04b3917 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
@@ -38,7 +38,8 @@
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.interfaces.FutureVDSCall;
-import org.ovirt.engine.core.common.qualifiers.VmDeleted;
+import org.ovirt.engine.core.common.qualifier.ActionType;
+import org.ovirt.engine.core.common.qualifier.EntityAction;
 import org.ovirt.engine.core.common.vdscommands.FutureVDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSAsyncReturnValue;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
@@ -543,7 +544,7 @@
         return vmManagers.get(vmId);
     }
 
-    public void onVmDelete(@Observes @VmDeleted Guid vmId) {
+    public void onVmDelete(@Observes @EntityAction(ActionType.DELETE) Guid 
vmId) {
         vmManagers.remove(vmId);
     }
 


-- 
To view, visit https://gerrit.ovirt.org/42413
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I731ed7796b7deb830c19959a7c93c73df219d566
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <rgo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to