Gilad Chaplik has uploaded a new change for review. Change subject: core: disk profile commands and queries ......................................................................
core: disk profile commands and queries commands: create/update/delete disk profile queries: GetDiskProfileById, GetAllDiskProfiles, GetDiskProfilesByStorageDomainId. Change-Id: I0d871f1603671bc14ce88c68f85638b1af67f5e1 Signed-off-by: Gilad Chaplik <[email protected]> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddDiskProfileCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileCommandBase.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetAllDiskProfilesQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetDiskProfileByIdQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetDiskProfilesByStorageDomainIdQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveDiskProfileCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateDiskProfileCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ProfileParametersBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java 12 files changed, 300 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/28732/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddDiskProfileCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddDiskProfileCommand.java new file mode 100644 index 0000000..21a87ab --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddDiskProfileCommand.java @@ -0,0 +1,49 @@ +package org.ovirt.engine.core.bll.profiles; + +import java.util.Collections; +import java.util.List; + +import org.ovirt.engine.core.bll.utils.PermissionSubject; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.VdcObjectType; +import org.ovirt.engine.core.common.action.ProfileParametersBase; +import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.compat.Guid; + +public class AddDiskProfileCommand extends DiskProfileCommandBase { + + public AddDiskProfileCommand(ProfileParametersBase<DiskProfile> parameters) { + super(parameters); + } + + @Override + protected boolean canDoAction() { + return super.canDoAction(); + } + + @Override + protected void executeCommand() { + getParameters().getProfile().setId(Guid.newGuid()); + getDiskProfileDao().save(getParameters().getProfile()); + getReturnValue().setActionReturnValue(getParameters().getProfile().getId()); + setSucceeded(true); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + return Collections.singletonList(new PermissionSubject(getParameters().getProfile().getStorageDomainId(), + VdcObjectType.Storage, getActionType().getActionGroup())); + } + + @Override + protected void setActionMessageParameters() { + super.setActionMessageParameters(); + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__ADD); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.USER_ADDED_DISK_PROFILE : AuditLogType.USER_FAILED_TO_ADD_DISK_PROFILE; + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileCommandBase.java new file mode 100644 index 0000000..82a2ceb --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileCommandBase.java @@ -0,0 +1,44 @@ +package org.ovirt.engine.core.bll.profiles; + +import org.ovirt.engine.core.bll.CommandBase; +import org.ovirt.engine.core.common.action.ProfileParametersBase; +import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; + +public abstract class DiskProfileCommandBase extends CommandBase<ProfileParametersBase<DiskProfile>> { + private DiskProfile profile; + private Guid profileId; + + public DiskProfileCommandBase(ProfileParametersBase<DiskProfile> parameters) { + super(parameters); + } + + public DiskProfile getProfile() { + if (profile == null) { + if (getParameters().getProfile() == null) { + if (getParameters().getProfileId() != null) { + profile = getProfileDao().get(getParameters().getProfileId()); + } + } else { + profile = getParameters().getProfile(); + } + } + return profile; + } + + public Guid getProfileId() { + if (profileId == null) { + if (getParameters().getProfileId() != null) { + profileId = getParameters().getProfileId(); + } else if (getParameters().getProfile() != null) { + profileId = getParameters().getProfile().getId(); + } + } + return profileId; + } + + protected ProfilesDao<DiskProfile> getProfileDao() { + return getDiskProfileDao(); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetAllDiskProfilesQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetAllDiskProfilesQuery.java new file mode 100644 index 0000000..8990345 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetAllDiskProfilesQuery.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.core.bll.profiles; + +import org.ovirt.engine.core.bll.QueriesCommandBase; +import org.ovirt.engine.core.common.queries.IdQueryParameters; + +public class GetAllDiskProfilesQuery extends QueriesCommandBase<IdQueryParameters> { + + public GetAllDiskProfilesQuery(IdQueryParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getDbFacade().getDiskProfileDao().getAllForStorageDomain(getParameters().getId()); + } + +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetDiskProfileByIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetDiskProfileByIdQuery.java new file mode 100644 index 0000000..8628559 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetDiskProfileByIdQuery.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.core.bll.profiles; + +import org.ovirt.engine.core.bll.QueriesCommandBase; +import org.ovirt.engine.core.common.queries.IdQueryParameters; + +public class GetDiskProfileByIdQuery extends QueriesCommandBase<IdQueryParameters> { + + public GetDiskProfileByIdQuery(IdQueryParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getDbFacade().getDiskProfileDao().get(getParameters().getId()); + } + +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetDiskProfilesByStorageDomainIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetDiskProfilesByStorageDomainIdQuery.java new file mode 100644 index 0000000..c414be2 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetDiskProfilesByStorageDomainIdQuery.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.core.bll.profiles; + +import org.ovirt.engine.core.bll.QueriesCommandBase; +import org.ovirt.engine.core.common.queries.IdQueryParameters; + +public class GetDiskProfilesByStorageDomainIdQuery extends QueriesCommandBase<IdQueryParameters> { + + public GetDiskProfilesByStorageDomainIdQuery(IdQueryParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getDbFacade().getDiskProfileDao().getAll(); + } + +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveDiskProfileCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveDiskProfileCommand.java new file mode 100644 index 0000000..7f67cb3 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveDiskProfileCommand.java @@ -0,0 +1,46 @@ +package org.ovirt.engine.core.bll.profiles; + +import java.util.Collections; +import java.util.List; + +import org.ovirt.engine.core.bll.utils.PermissionSubject; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.VdcObjectType; +import org.ovirt.engine.core.common.action.ProfileParametersBase; +import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; +import org.ovirt.engine.core.common.errors.VdcBllMessages; + +public class RemoveDiskProfileCommand extends DiskProfileCommandBase { + + public RemoveDiskProfileCommand(ProfileParametersBase<DiskProfile> parameters) { + super(parameters); + } + + @Override + protected boolean canDoAction() { + return super.canDoAction(); + } + + @Override + protected void executeCommand() { + getDbFacade().getDiskProfileDao().remove(getParameters().getProfileId()); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + return Collections.singletonList(new PermissionSubject(getParameters().getProfile().getStorageDomainId(), + VdcObjectType.Storage, getActionType().getActionGroup())); + } + + @Override + protected void setActionMessageParameters() { + super.setActionMessageParameters(); + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.USER_REMOVED_DISK_PROFILE + : AuditLogType.USER_FAILED_TO_REMOVE_DISK_PROFILE; + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateDiskProfileCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateDiskProfileCommand.java new file mode 100644 index 0000000..5fd0e81 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateDiskProfileCommand.java @@ -0,0 +1,46 @@ +package org.ovirt.engine.core.bll.profiles; + +import java.util.Collections; +import java.util.List; + +import org.ovirt.engine.core.bll.utils.PermissionSubject; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.VdcObjectType; +import org.ovirt.engine.core.common.action.ProfileParametersBase; +import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; +import org.ovirt.engine.core.common.errors.VdcBllMessages; + +public class UpdateDiskProfileCommand extends DiskProfileCommandBase { + + public UpdateDiskProfileCommand(ProfileParametersBase<DiskProfile> parameters) { + super(parameters); + } + + @Override + protected boolean canDoAction() { + return super.canDoAction(); + } + + @Override + protected void executeCommand() { + getDiskProfileDao().update(getParameters().getProfile()); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + return Collections.singletonList(new PermissionSubject(getParameters().getProfileId(), + VdcObjectType.DiskProfile, getActionType().getActionGroup())); + } + + @Override + protected void setActionMessageParameters() { + super.setActionMessageParameters(); + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__UPDATE); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.USER_UPDATED_DISK_PROFILE + : AuditLogType.USER_FAILED_TO_UPDATE_DISK_PROFILE; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java index 1abcd84..ea7a350 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java @@ -983,6 +983,14 @@ USER_UPDATED_QOS(10114), USER_FAILED_TO_UPDATE_QOS(10115, AuditLogSeverity.ERROR), + // Disk Profile + USER_ADDED_DISK_PROFILE(10120), + USER_FAILED_TO_ADD_DISK_PROFILE(10121, AuditLogSeverity.ERROR), + USER_REMOVED_DISK_PROFILE(10122), + USER_FAILED_TO_REMOVE_DISK_PROFILE(10123, AuditLogSeverity.ERROR), + USER_UPDATED_DISK_PROFILE(10124), + USER_FAILED_TO_UPDATE_DISK_PROFILE(10125, AuditLogSeverity.ERROR), + //mom policies USER_UPDATED_MOM_POLICIES(10200), USER_FAILED_TO_UPDATE_MOM_POLICIES(10201, AuditLogSeverity.WARNING), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ProfileParametersBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ProfileParametersBase.java new file mode 100644 index 0000000..3efb8f4 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ProfileParametersBase.java @@ -0,0 +1,41 @@ +package org.ovirt.engine.core.common.action; + +import javax.validation.Valid; + +import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; +import org.ovirt.engine.core.compat.Guid; + +public class ProfileParametersBase<T extends ProfileBase> extends VdcActionParametersBase { + + private static final long serialVersionUID = 1303387921254823324L; + + public ProfileParametersBase() { + + } + + public ProfileParametersBase(T profile, Guid profileId) { + this.profile = profile; + this.profileId = profileId; + } + + @Valid + private T profile; + private Guid profileId; + + public T getProfile() { + return profile; + } + + public void setProfile(T Profile) { + this.profile = Profile; + } + + public Guid getProfileId() { + return profileId; + } + + public void setProfileId(Guid ProfileId) { + this.profileId = ProfileId; + } + +} 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 f739977..48c0f21 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 @@ -326,6 +326,10 @@ AddStorageQos(1753, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE), UpdateStorageQos(1754, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE), RemoveStorageQos(1755, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE), + // disk profiles + AddDiskProfile(1760, ActionGroup.CREATE_STORAGE_DISK_PROFILE, false, QuotaDependency.NONE), + UpdateDiskProfile(1761, ActionGroup.CONFIGURE_STORAGE_DISK_PROFILE, false, QuotaDependency.NONE), + RemoveDiskProfile(1762, ActionGroup.DELETE_STORAGE_DISK_PROFILE, false, QuotaDependency.NONE), // External Tasks AddExternalJob(1800, ActionGroup.INJECT_EXTERNAL_TASKS, false, QuotaDependency.NONE), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java index e0eb18c..27b1915 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java @@ -357,6 +357,12 @@ GetAllDisksPartialDataByVmId(VdcQueryAuthType.User), GetVmTemplateCount, + + //Disk Profiles + GetDiskProfileById, + GetAllDiskProfiles, + GetDiskProfilesByStorageDomainId, + // Default type instead of having to null check Unknown(VdcQueryAuthType.User); diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java index ad22917..14b0436 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java @@ -48,6 +48,7 @@ import org.ovirt.engine.core.dao.network.VmNetworkInterfaceDao; import org.ovirt.engine.core.dao.network.VmNicDao; import org.ovirt.engine.core.dao.network.VnicProfileDao; +import org.ovirt.engine.core.dao.profiles.DiskProfileDao; import org.ovirt.engine.core.dao.provider.ProviderDao; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; @@ -661,6 +662,10 @@ return getDbFacade().getAuditLogDao(); } + public DiskProfileDao getDiskProfileDao() { + return getDbFacade().getDiskProfileDao(); + } + protected DbFacade getDbFacade() { return DbFacade.getInstance(); } -- To view, visit http://gerrit.ovirt.org/28732 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0d871f1603671bc14ce88c68f85638b1af67f5e1 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Gilad Chaplik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
