Sergey Gotliv has uploaded a new change for review.

Change subject: engine: Commands to add, edit and remove iscsi bundles
......................................................................

engine: Commands to add, edit and remove iscsi bundles

Change-Id: I06890ea40d22b86d9421cb1b0c68ea28bc430b0a
Bug-Url: https://bugzilla.redhat.com/753541
Signed-off-by: Sergey Gotliv <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddIscsiBundleCommand.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveIscsiBundleCommand.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddIscsiBundleParameters.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveIscsiBundleParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
5 files changed, 185 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/22952/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddIscsiBundleCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddIscsiBundleCommand.java
new file mode 100644
index 0000000..0e1c157
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddIscsiBundleCommand.java
@@ -0,0 +1,58 @@
+package org.ovirt.engine.core.bll;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import org.ovirt.engine.core.bll.utils.PermissionSubject;
+import org.ovirt.engine.core.common.VdcObjectType;
+import org.ovirt.engine.core.common.action.AddIscsiBundleParameters;
+import org.ovirt.engine.core.common.businessentities.IscsiBundle;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.utils.transaction.TransactionMethod;
+import org.ovirt.engine.core.utils.transaction.TransactionSupport;
+
+@DisableInPrepareMode
+@LockIdNameAttribute(isReleaseAtEndOfExecute = false)
+@NonTransactiveCommandAttribute
+public class AddIscsiBundleCommand<T extends AddIscsiBundleParameters> extends 
 CommandBase<T> {
+
+    public AddIscsiBundleCommand(T parameters) {
+        super(parameters);
+        setStoragePoolId(parameters.getStoragePoolId());
+    }
+
+    public AddIscsiBundleCommand(Guid commandId) {
+        super(commandId);
+    }
+
+    @Override
+    protected void executeCommand() {
+        final Set<Guid> networkIds = getParameters().getNetworkIds();
+        final IscsiBundle bundle = new IscsiBundle(Guid.newGuid(), 
getStoragePoolId(),
+                getParameters().getName(), getParameters().getDescription());
+
+        TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
+
+            @Override
+            public Void runInTransaction() {
+                getDbFacade().getIscsiBundleDao().save(bundle);
+
+                for (Guid networkId : networkIds) {
+                    
getDbFacade().getIscsiBundleDao().addNetwork(bundle.getId(), networkId);
+                }
+
+                getCompensationContext().stateChanged();
+                return null;
+            }
+        });
+
+        setSucceeded(true);
+    }
+
+    @Override
+    public List<PermissionSubject> getPermissionCheckSubjects() {
+        return Collections.singletonList(new 
PermissionSubject(getStoragePoolId(),
+                VdcObjectType.StoragePool, getActionType().getActionGroup()));
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveIscsiBundleCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveIscsiBundleCommand.java
new file mode 100644
index 0000000..0f00d6b
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveIscsiBundleCommand.java
@@ -0,0 +1,39 @@
+package org.ovirt.engine.core.bll;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.ovirt.engine.core.bll.utils.PermissionSubject;
+import org.ovirt.engine.core.common.VdcObjectType;
+import org.ovirt.engine.core.common.action.RemoveIscsiBundleParameters;
+import org.ovirt.engine.core.utils.transaction.TransactionMethod;
+import org.ovirt.engine.core.utils.transaction.TransactionSupport;
+
+@DisableInPrepareMode
+@LockIdNameAttribute
+@NonTransactiveCommandAttribute
+public class RemoveIscsiBundleCommand<T extends RemoveIscsiBundleParameters> 
extends CommandBase<T> {
+
+    public RemoveIscsiBundleCommand(T parameters) {
+        super(parameters);
+        setStoragePoolId(getParameters().getStoragePoolId());
+    }
+
+    @Override
+    protected void executeCommand() {
+        TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Object>() {
+            @Override
+            public Void runInTransaction() {
+                
getDbFacade().getIscsiBundleDao().remove(getParameters().getIscsiBundleId());
+                return null;
+            }
+        });
+        setSucceeded(true);
+    }
+
+    @Override
+    public List<PermissionSubject> getPermissionCheckSubjects() {
+        return Collections.singletonList(new 
PermissionSubject(getStoragePoolId(),
+                VdcObjectType.StoragePool, getActionType().getActionGroup()));
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddIscsiBundleParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddIscsiBundleParameters.java
new file mode 100644
index 0000000..0601881
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddIscsiBundleParameters.java
@@ -0,0 +1,59 @@
+package org.ovirt.engine.core.common.action;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class AddIscsiBundleParameters extends VdcActionParametersBase {
+
+    private static final long serialVersionUID = 8709128730744559712L;
+
+    private String name;
+    private String description;
+    private Guid storagePoolId;
+    private Set<Guid> networkIds;
+
+    public AddIscsiBundleParameters() {
+        networkIds = new HashSet<Guid>();
+    }
+
+    public AddIscsiBundleParameters(Guid storagePoolId, String name, String 
description, Set<Guid> networkIds) {
+        this.storagePoolId = storagePoolId;
+        this.name = name;
+        this.description = description;
+        this.networkIds = networkIds;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public Guid getStoragePoolId() {
+        return storagePoolId;
+    }
+
+    public void setStoragePoolId(Guid storagePoolId) {
+        this.storagePoolId = storagePoolId;
+    }
+
+    public Set<Guid> getNetworkIds() {
+        return networkIds;
+    }
+
+    public void setNetworkIds(Set<Guid> networkIds) {
+        this.networkIds = networkIds;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveIscsiBundleParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveIscsiBundleParameters.java
new file mode 100644
index 0000000..76ed361
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveIscsiBundleParameters.java
@@ -0,0 +1,26 @@
+package org.ovirt.engine.core.common.action;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class RemoveIscsiBundleParameters extends VdcActionParametersBase {
+
+    private static final long serialVersionUID = 5157688843104010403L;
+
+    private Guid iscsiBundleId;
+    private Guid storagePoolId;
+
+    public RemoveIscsiBundleParameters() {}
+
+    public RemoveIscsiBundleParameters(Guid iscsiBundleId, Guid storagePoolId) 
{
+        this.iscsiBundleId = iscsiBundleId;
+        this.storagePoolId = storagePoolId;
+    }
+
+    public Guid getIscsiBundleId() {
+        return iscsiBundleId;
+    }
+
+    public Guid getStoragePoolId() {
+        return storagePoolId;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
index 7026318..4753985 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
@@ -310,7 +310,9 @@
     AddInternalJob(1850, false, QuotaDependency.NONE),
     AddInternalStep(1851, false, QuotaDependency.NONE),
 
-    UpdateMomPolicy(1900, ActionGroup.MANIPUTLATE_HOST, false, 
QuotaDependency.NONE);
+    UpdateMomPolicy(1900, ActionGroup.MANIPUTLATE_HOST, false, 
QuotaDependency.NONE),
+    AddIscsiBundle(2000, ActionGroup.CONFIGURE_VM_STORAGE, false, 
QuotaDependency.NONE),
+    RemoveIscsiBundle(2002, ActionGroup.CONFIGURE_VM_STORAGE, false, 
QuotaDependency.NONE);
 
     private int intValue;
     private ActionGroup actionGroup;


-- 
To view, visit http://gerrit.ovirt.org/22952
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I06890ea40d22b86d9421cb1b0c68ea28bc430b0a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sergey Gotliv <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to