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
