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

Reply via email to