Gilad Chaplik has uploaded a new change for review. Change subject: core: Cpu Profile CRUD commands and queries ......................................................................
core: Cpu Profile CRUD commands and queries Change-Id: I6be41103ad9b04fc7d0b530439ab4a2c731bbded Signed-off-by: Gilad Chaplik <[email protected]> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetCpuProfilesByCpuQosIdQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddCpuProfileCommand.java M 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/AddProfileCommandBase.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/CpuProfileValidator.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileHelper.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileValidator.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetAllCpuProfilesQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetCpuProfileByIdQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetCpuProfilesByClusterIdQuery.java R backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/ProfileCommandBase.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/ProfileValidator.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveCpuProfileCommand.java M 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/RemoveProfileCommandBase.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateCpuProfileCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateDiskProfileCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateProfileCommandBase.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/CpuProfileParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/DiskProfileParameters.java M 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/errors/VdcBllMessages.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 M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java M frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties 29 files changed, 581 insertions(+), 135 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/24/31824/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetCpuProfilesByCpuQosIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetCpuProfilesByCpuQosIdQuery.java new file mode 100644 index 0000000..5de7d52 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetCpuProfilesByCpuQosIdQuery.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.core.bll; + +import org.ovirt.engine.core.common.queries.IdQueryParameters; + +public class GetCpuProfilesByCpuQosIdQuery extends QueriesCommandBase<IdQueryParameters> { + + public GetCpuProfilesByCpuQosIdQuery(IdQueryParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getQueryReturnValue().setReturnValue(getDbFacade().getCpuProfileDao() + .getAllForQos(getParameters().getId())); + } + +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddCpuProfileCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddCpuProfileCommand.java new file mode 100644 index 0000000..87bb143 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddCpuProfileCommand.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.CpuProfileParameters; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; + +public class AddCpuProfileCommand extends AddProfileCommandBase<CpuProfileParameters, CpuProfile, CpuProfileValidator> { + + public AddCpuProfileCommand(CpuProfileParameters parameters) { + super(parameters); + } + + @Override + protected CpuProfileValidator getProfileValidator() { + return new CpuProfileValidator(getProfile()); + } + + @Override + protected ProfilesDao<CpuProfile> getProfileDao() { + return getCpuProfileDao(); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + return Collections.singletonList(new PermissionSubject(getParameters().getProfile() != null ? getParameters().getProfile() + .getClusterId() + : null, + VdcObjectType.VdsGroups, + getActionType().getActionGroup())); + } + + @Override + protected void setActionMessageParameters() { + super.setActionMessageParameters(); + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__ADD); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.USER_ADDED_CPU_PROFILE : AuditLogType.USER_FAILED_TO_ADD_CPU_PROFILE; + } +} 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 index 10a96b8..2f801fe 100644 --- 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 @@ -7,30 +7,24 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.DiskProfileParameters; +import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; -public class AddDiskProfileCommand extends DiskProfileCommandBase { +public class AddDiskProfileCommand extends AddProfileCommandBase<DiskProfileParameters, DiskProfile, DiskProfileValidator> { public AddDiskProfileCommand(DiskProfileParameters parameters) { super(parameters); } @Override - protected boolean canDoAction() { - DiskProfileValidator validator = new DiskProfileValidator(getParameters().getProfile()); - return validate(validator.diskProfileIsSet()) - && validate(validator.storageDomainExists()) - && validate(validator.qosExistsOrNull()) - && validate(validator.diskProfileNameNotUsed()); + protected DiskProfileValidator getProfileValidator() { + return new DiskProfileValidator(getProfile()); } @Override - protected void executeCommand() { - getParameters().getProfile().setId(Guid.newGuid()); - getDiskProfileDao().save(getParameters().getProfile()); - getReturnValue().setActionReturnValue(getParameters().getProfile().getId()); - setSucceeded(true); + protected ProfilesDao<DiskProfile> getProfileDao() { + return getDiskProfileDao(); } @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddProfileCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddProfileCommandBase.java new file mode 100644 index 0000000..ea45bc3 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/AddProfileCommandBase.java @@ -0,0 +1,31 @@ +package org.ovirt.engine.core.bll.profiles; + +import org.ovirt.engine.core.common.action.ProfileParametersBase; +import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; +import org.ovirt.engine.core.compat.Guid; + +public abstract class AddProfileCommandBase<T extends ProfileParametersBase<P>, P extends ProfileBase, Q extends ProfileValidator<P>> extends ProfileCommandBase<T, P> { + + public AddProfileCommandBase(T parameters) { + super(parameters); + } + + @Override + protected boolean canDoAction() { + Q validator = getProfileValidator(); + return validate(validator.profileIsSet()) + && validate(validator.parentEntityExists()) + && validate(validator.qosExistsOrNull()) + && validate(validator.profileNameNotUsed()); + } + + @Override + protected void executeCommand() { + getParameters().getProfile().setId(Guid.newGuid()); + getProfileDao().save(getParameters().getProfile()); + getReturnValue().setActionReturnValue(getParameters().getProfile().getId()); + setSucceeded(true); + } + + protected abstract Q getProfileValidator(); +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/CpuProfileValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/CpuProfileValidator.java new file mode 100644 index 0000000..b0173e4 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/CpuProfileValidator.java @@ -0,0 +1,79 @@ +package org.ovirt.engine.core.bll.profiles; + +import java.util.List; + +import org.apache.commons.lang.ObjectUtils; +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; + + +public class CpuProfileValidator extends ProfileValidator<CpuProfile> { + private VDSGroup cluster; + + public CpuProfileValidator(CpuProfile profile) { + super(profile); + } + + public CpuProfileValidator(Guid profileId) { + super(profileId); + } + + @Override + public ValidationResult parentEntityExists() { + if (DbFacade.getInstance().getVdsGroupDao().get(getProfile().getClusterId()) == null) { + return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CLUSTER_CAN_NOT_BE_EMPTY); + } + return ValidationResult.VALID; + } + + @Override + public ValidationResult parentEntityNotChanged() { + if (ObjectUtils.equals(getProfile().getClusterId(), getProfileFromDb().getClusterId())) { + return ValidationResult.VALID; + } + + return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CANNOT_CHANGE_PROFILE); + } + + protected VDSGroup getCluster() { + if (cluster == null) { + cluster = getDbFacade().getVdsGroupDao().get(getProfile().getClusterId()); + } + + return cluster; + } + + @Override + public ValidationResult isParentEntityValid(Guid clusterId) { + if (clusterId == null) { + return new ValidationResult(VdcBllMessages.ACTION_TYPE_CPU_PROFILE_CLUSTER_NOT_PROVIDED); + } + Guid id = getProfile().getId(); + if (id == null) { + return new ValidationResult(VdcBllMessages.ACTION_TYPE_CPU_PROFILE_EMPTY); + } + CpuProfile fetchedCpuProfile = getProfileDao().get(id); + if (fetchedCpuProfile == null) { + return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CPU_PROFILE_NOT_FOUND); + } + if (!clusterId.equals(fetchedCpuProfile.getClusterId())) { + return new ValidationResult(VdcBllMessages.ACTION_TYPE_CPU_PROFILE_NOT_MATCH_CLUSTER); + } + return ValidationResult.VALID; + } + + @Override + protected ProfilesDao<CpuProfile> getProfileDao() { + return getDbFacade().getCpuProfileDao(); + } + + @Override + protected List<CpuProfile> getProfilesByParentEntity() { + return getDbFacade().getCpuProfileDao().getAllForCluster(getCluster().getId()); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileHelper.java index 1928c6d..0d5337c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileHelper.java @@ -51,7 +51,7 @@ } } else { ValidationResult result = - new DiskProfileValidator(getDiskProfileDao().get(diskImage.getDiskProfileId())).isStorageDomainValid(storageDomainId); + new DiskProfileValidator(getDiskProfileDao().get(diskImage.getDiskProfileId())).isParentEntityValid(storageDomainId); if (result != ValidationResult.VALID) { return result; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileValidator.java index 5cc370c..5e994e2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileValidator.java @@ -1,132 +1,60 @@ package org.ovirt.engine.core.bll.profiles; -import java.util.Collection; import java.util.List; import org.apache.commons.lang.ObjectUtils; import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.bll.validator.StorageDomainValidator; -import org.ovirt.engine.core.common.businessentities.Nameable; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dal.dbbroker.DbFacade; -import org.ovirt.engine.core.dao.profiles.DiskProfileDao; -import org.ovirt.engine.core.utils.ReplacementUtils; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; -public class DiskProfileValidator { - private final Guid diskProfileId; - private DiskProfile diskProfile; - private DiskProfile diskProfileFromDb; +public class DiskProfileValidator extends ProfileValidator<DiskProfile> { private StorageDomain storageDomain; - private List<DiskProfile> diskProfiles; - public DiskProfileValidator(DiskProfile diskProfile) { - this(diskProfile != null ? diskProfile.getId() : null); - this.diskProfile = diskProfile; + public DiskProfileValidator(DiskProfile profile) { + super(profile); } - public DiskProfileValidator(Guid diskProfileId) { - this.diskProfileId = diskProfileId; + public DiskProfileValidator(Guid profileId) { + super(profileId); } - protected DbFacade getDbFacade() { - return DbFacade.getInstance(); - } - - public ValidationResult diskProfileIsSet() { - return getDiskProfile() == null - ? new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROFILE_NOT_EXISTS) - : ValidationResult.VALID; - } - - public ValidationResult diskProfileExists() { - return getDiskProfileFromDb() == null - ? new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROFILE_NOT_EXISTS) - : ValidationResult.VALID; - } - - public ValidationResult storageDomainExists() { + @Override + public ValidationResult parentEntityExists() { return new StorageDomainValidator(getStorageDomain()).isDomainExist(); } - public ValidationResult qosExistsOrNull() { - return getDiskProfile().getQosId() == null - || getDbFacade().getStorageQosDao().get(getDiskProfile().getQosId()) != null - ? ValidationResult.VALID - : new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_QOS_NOT_FOUND); - } - - public ValidationResult diskProfileNameNotUsed() { - for (DiskProfile profile : getDiskProfiles()) { - if (profile.getName().equals(getDiskProfile().getName()) - && !profile.getId().equals(getDiskProfile().getId())) { - return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROFILE_NAME_IN_USE); - } - } - - return ValidationResult.VALID; - } - - public ValidationResult storageDomainNotChanged() { - if (ObjectUtils.equals(getDiskProfile().getStorageDomainId(), getDiskProfileFromDb().getStorageDomainId())) { + @Override + public ValidationResult parentEntityNotChanged() { + if (ObjectUtils.equals(getProfile().getStorageDomainId(), getProfileFromDb().getStorageDomainId())) { return ValidationResult.VALID; } return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CANNOT_CHANGE_PROFILE); } - protected ValidationResult diskProfileNotUsed(List<? extends Nameable> entities, VdcBllMessages entitiesReplacement) { - if (entities.isEmpty()) { - return ValidationResult.VALID; - } - - Collection<String> replacements = ReplacementUtils.replaceWithNameable("ENTITIES_USING_PROFILE", entities); - replacements.add(entitiesReplacement.name()); - return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROFILE_IN_USE, replacements); - } - protected StorageDomain getStorageDomain() { if (storageDomain == null) { - storageDomain = getDbFacade().getStorageDomainDao().get(getDiskProfile().getStorageDomainId()); + storageDomain = getDbFacade().getStorageDomainDao().get(getProfile().getStorageDomainId()); } return storageDomain; } - public DiskProfile getDiskProfile() { - if (diskProfile == null) { - diskProfile = getDiskProfileDao().get(diskProfileId); - } - return diskProfile; - } - - protected List<DiskProfile> getDiskProfiles() { - if (diskProfiles == null) { - diskProfiles = getDiskProfileDao().getAllForStorageDomain(getDiskProfile().getStorageDomainId()); - } - - return diskProfiles; - } - - protected DiskProfile getDiskProfileFromDb() { - if (diskProfileFromDb == null) { - diskProfileFromDb = getDbFacade().getDiskProfileDao().get(diskProfile.getId()); - } - - return diskProfileFromDb; - } - - public ValidationResult isStorageDomainValid(Guid storageDomainId) { + @Override + public ValidationResult isParentEntityValid(Guid storageDomainId) { if (storageDomainId == null) { return new ValidationResult(VdcBllMessages.ACTION_TYPE_DISK_PROFILE_STORAGE_DOMAIN_NOT_PROVIDED); } - if (diskProfileId == null) { + Guid id = getProfile().getId(); + if (id == null) { return new ValidationResult(VdcBllMessages.ACTION_TYPE_DISK_PROFILE_EMPTY); } - DiskProfile fetchedDiskProfile = getDiskProfileDao().get(diskProfileId); + DiskProfile fetchedDiskProfile = getProfileDao().get(id); if (fetchedDiskProfile == null) { return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_DISK_PROFILE_NOT_FOUND); } @@ -136,7 +64,13 @@ return ValidationResult.VALID; } - private DiskProfileDao getDiskProfileDao() { + @Override + protected ProfilesDao<DiskProfile> getProfileDao() { return getDbFacade().getDiskProfileDao(); } + + @Override + protected List<DiskProfile> getProfilesByParentEntity() { + return getDbFacade().getDiskProfileDao().getAllForStorageDomain(getStorageDomain().getId()); + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetAllCpuProfilesQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetAllCpuProfilesQuery.java new file mode 100644 index 0000000..edea731 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetAllCpuProfilesQuery.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.VdcQueryParametersBase; + +public class GetAllCpuProfilesQuery extends QueriesCommandBase<VdcQueryParametersBase> { + + public GetAllCpuProfilesQuery(VdcQueryParametersBase parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getQueryReturnValue().setReturnValue(getDbFacade().getCpuProfileDao().getAll()); + } + +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetCpuProfileByIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetCpuProfileByIdQuery.java new file mode 100644 index 0000000..33c470f --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetCpuProfileByIdQuery.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 GetCpuProfileByIdQuery extends QueriesCommandBase<IdQueryParameters> { + + public GetCpuProfileByIdQuery(IdQueryParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getQueryReturnValue().setReturnValue(getDbFacade().getCpuProfileDao().get(getParameters().getId())); + } + +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetCpuProfilesByClusterIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetCpuProfilesByClusterIdQuery.java new file mode 100644 index 0000000..cfa4fce --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/GetCpuProfilesByClusterIdQuery.java @@ -0,0 +1,18 @@ +package org.ovirt.engine.core.bll.profiles; + +import org.ovirt.engine.core.bll.QueriesCommandBase; +import org.ovirt.engine.core.common.queries.IdQueryParameters; + +public class GetCpuProfilesByClusterIdQuery extends QueriesCommandBase<IdQueryParameters> { + + public GetCpuProfilesByClusterIdQuery(IdQueryParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getQueryReturnValue().setReturnValue(getDbFacade().getCpuProfileDao() + .getAllForCluster(getParameters().getId(), getUserID(), getParameters().isFiltered())); + } + +} 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/ProfileCommandBase.java similarity index 67% rename from backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/DiskProfileCommandBase.java rename to backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/ProfileCommandBase.java index 4806246..a4b8d19 100644 --- 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/ProfileCommandBase.java @@ -1,20 +1,20 @@ package org.ovirt.engine.core.bll.profiles; import org.ovirt.engine.core.bll.CommandBase; -import org.ovirt.engine.core.common.action.DiskProfileParameters; -import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; +import org.ovirt.engine.core.common.action.ProfileParametersBase; +import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.profiles.ProfilesDao; -public abstract class DiskProfileCommandBase extends CommandBase<DiskProfileParameters> { - private DiskProfile profile; +public abstract class ProfileCommandBase<T extends ProfileParametersBase<P>, P extends ProfileBase> extends CommandBase<T> { + private P profile; private Guid profileId; - public DiskProfileCommandBase(DiskProfileParameters parameters) { + public ProfileCommandBase(T parameters) { super(parameters); } - public DiskProfile getProfile() { + public P getProfile() { if (profile == null) { if (getParameters().getProfile() != null) { profile = getParameters().getProfile(); @@ -36,7 +36,5 @@ return profileId; } - protected ProfilesDao<DiskProfile> getProfileDao() { - return getDiskProfileDao(); - } + protected abstract ProfilesDao<P> getProfileDao(); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/ProfileValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/ProfileValidator.java new file mode 100644 index 0000000..5c01203 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/ProfileValidator.java @@ -0,0 +1,98 @@ +package org.ovirt.engine.core.bll.profiles; + +import java.util.Collection; +import java.util.List; + +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.Nameable; +import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; +import org.ovirt.engine.core.utils.ReplacementUtils; + +public abstract class ProfileValidator<T extends ProfileBase> { + + private final Guid profileId; + private T profile; + private T profileFromDb; + + public ProfileValidator(T profile) { + this(profile != null ? profile.getId() : null); + this.profile = profile; + } + + public ProfileValidator(Guid profileId) { + this.profileId = profileId; + } + + protected DbFacade getDbFacade() { + return DbFacade.getInstance(); + } + + public ValidationResult profileIsSet() { + return getProfile() == null + ? new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROFILE_MISSING) + : ValidationResult.VALID; + } + + public ValidationResult profileExists() { + return getProfileFromDb() == null + ? new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROFILE_NOT_EXISTS) + : ValidationResult.VALID; + } + + public ValidationResult qosExistsOrNull() { + return getProfile().getQosId() == null + || getDbFacade().getStorageQosDao().get(getProfile().getQosId()) != null + ? ValidationResult.VALID + : new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_QOS_NOT_FOUND); + } + + public ValidationResult profileNameNotUsed() { + for (T profile : getProfilesByParentEntity()) { + if (profile.getName().equals(getProfile().getName()) + && !profile.getId().equals(getProfile().getId())) { + return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROFILE_NAME_IN_USE); + } + } + + return ValidationResult.VALID; + } + + protected ValidationResult profileNotUsed(List<? extends Nameable> entities, VdcBllMessages entitiesReplacement) { + if (entities.isEmpty()) { + return ValidationResult.VALID; + } + + Collection<String> replacements = ReplacementUtils.replaceWithNameable("ENTITIES_USING_PROFILE", entities); + replacements.add(entitiesReplacement.name()); + return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROFILE_IN_USE, replacements); + } + + public T getProfile() { + if (profile == null) { + profile = getProfileDao().get(profileId); + } + return profile; + } + + protected T getProfileFromDb() { + if (profileFromDb == null) { + profileFromDb = getProfileDao().get(profile.getId()); + } + + return profileFromDb; + } + + public abstract ValidationResult parentEntityExists(); + + public abstract ValidationResult parentEntityNotChanged(); + + public abstract ValidationResult isParentEntityValid(Guid parentEntityId); + + protected abstract List<T> getProfilesByParentEntity(); + + protected abstract ProfilesDao<T> getProfileDao(); +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveCpuProfileCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveCpuProfileCommand.java new file mode 100644 index 0000000..bdfb7e8 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveCpuProfileCommand.java @@ -0,0 +1,48 @@ +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.CpuProfileParameters; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; + +public class RemoveCpuProfileCommand extends RemoveProfileCommandBase<CpuProfileParameters, CpuProfile, CpuProfileValidator> { + + public RemoveCpuProfileCommand(CpuProfileParameters parameters) { + super(parameters); + } + + @Override + protected CpuProfileValidator getProfileValidator() { + return new CpuProfileValidator(getProfile()); + } + + @Override + protected ProfilesDao<CpuProfile> getProfileDao() { + return getCpuProfileDao(); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + return Collections.singletonList(new PermissionSubject(getParameters().getProfileId(), + VdcObjectType.CpuProfile, getActionType().getActionGroup())); + } + + @Override + protected void setActionMessageParameters() { + super.setActionMessageParameters(); + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.USER_REMOVED_CPU_PROFILE + : AuditLogType.USER_FAILED_TO_REMOVE_CPU_PROFILE; + } + +} 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 index a68b0ea..a8e6e8f 100644 --- 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 @@ -7,25 +7,24 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.DiskProfileParameters; +import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; -public class RemoveDiskProfileCommand extends DiskProfileCommandBase { +public class RemoveDiskProfileCommand extends RemoveProfileCommandBase<DiskProfileParameters, DiskProfile, DiskProfileValidator> { public RemoveDiskProfileCommand(DiskProfileParameters parameters) { super(parameters); } @Override - protected boolean canDoAction() { - DiskProfileValidator validator = new DiskProfileValidator(getProfile()); - return validate(validator.diskProfileIsSet()) - && validate(validator.diskProfileExists()); + protected DiskProfileValidator getProfileValidator() { + return new DiskProfileValidator(getProfile()); } @Override - protected void executeCommand() { - getDbFacade().getDiskProfileDao().remove(getParameters().getProfileId()); - setSucceeded(true); + protected ProfilesDao<DiskProfile> getProfileDao() { + return getDiskProfileDao(); } @Override @@ -45,4 +44,5 @@ 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/RemoveProfileCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveProfileCommandBase.java new file mode 100644 index 0000000..c13e770 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/RemoveProfileCommandBase.java @@ -0,0 +1,26 @@ +package org.ovirt.engine.core.bll.profiles; + +import org.ovirt.engine.core.common.action.ProfileParametersBase; +import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; + +public abstract class RemoveProfileCommandBase<T extends ProfileParametersBase<P>, P extends ProfileBase, Q extends ProfileValidator<P>> extends ProfileCommandBase<T, P> { + + public RemoveProfileCommandBase(T parameters) { + super(parameters); + } + + @Override + protected boolean canDoAction() { + Q validator = getProfileValidator(); + return validate(validator.profileIsSet()) + && validate(validator.profileExists()); + } + + @Override + protected void executeCommand() { + getProfileDao().remove(getParameters().getProfileId()); + setSucceeded(true); + } + + protected abstract Q getProfileValidator(); +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateCpuProfileCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateCpuProfileCommand.java new file mode 100644 index 0000000..9e419a6 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateCpuProfileCommand.java @@ -0,0 +1,47 @@ +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.CpuProfileParameters; +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; + +public class UpdateCpuProfileCommand extends UpdateProfileCommandBase<CpuProfileParameters, CpuProfile, CpuProfileValidator> { + + public UpdateCpuProfileCommand(CpuProfileParameters parameters) { + super(parameters); + } + + @Override + protected CpuProfileValidator getProfileValidator() { + return new CpuProfileValidator(getProfile()); + } + + @Override + protected ProfilesDao<CpuProfile> getProfileDao() { + return getCpuProfileDao(); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + return Collections.singletonList(new PermissionSubject(getParameters().getProfileId(), + VdcObjectType.CpuProfile, getActionType().getActionGroup())); + } + + @Override + protected void setActionMessageParameters() { + super.setActionMessageParameters(); + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__UPDATE); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.USER_UPDATED_CPU_PROFILE + : AuditLogType.USER_FAILED_TO_UPDATE_CPU_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 index c847146..247ea26 100644 --- 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 @@ -7,29 +7,24 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.DiskProfileParameters; +import org.ovirt.engine.core.common.businessentities.profiles.DiskProfile; import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.dao.profiles.ProfilesDao; -public class UpdateDiskProfileCommand extends DiskProfileCommandBase { +public class UpdateDiskProfileCommand extends UpdateProfileCommandBase<DiskProfileParameters, DiskProfile, DiskProfileValidator> { public UpdateDiskProfileCommand(DiskProfileParameters parameters) { super(parameters); } @Override - protected boolean canDoAction() { - DiskProfileValidator validator = new DiskProfileValidator(getParameters().getProfile()); - return validate(validator.diskProfileIsSet()) - && validate(validator.diskProfileExists()) - && validate(validator.diskProfileNameNotUsed()) - && validate(validator.storageDomainNotChanged()) - && validate(validator.qosExistsOrNull()); + protected DiskProfileValidator getProfileValidator() { + return new DiskProfileValidator(getProfile()); } @Override - protected void executeCommand() { - getDiskProfileDao().update(getParameters().getProfile()); - getReturnValue().setActionReturnValue(getParameters().getProfile().getId()); - setSucceeded(true); + protected ProfilesDao<DiskProfile> getProfileDao() { + return getDiskProfileDao(); } @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateProfileCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateProfileCommandBase.java new file mode 100644 index 0000000..b208b82 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/profiles/UpdateProfileCommandBase.java @@ -0,0 +1,30 @@ +package org.ovirt.engine.core.bll.profiles; + +import org.ovirt.engine.core.common.action.ProfileParametersBase; +import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; + +public abstract class UpdateProfileCommandBase<T extends ProfileParametersBase<P>, P extends ProfileBase, Q extends ProfileValidator<P>> extends ProfileCommandBase<T, P> { + + public UpdateProfileCommandBase(T parameters) { + super(parameters); + } + + @Override + protected boolean canDoAction() { + Q validator = getProfileValidator(); + return validate(validator.profileIsSet()) + && validate(validator.profileExists()) + && validate(validator.profileNameNotUsed()) + && validate(validator.parentEntityNotChanged()) + && validate(validator.qosExistsOrNull()); + } + + @Override + protected void executeCommand() { + getProfileDao().update(getParameters().getProfile()); + getReturnValue().setActionReturnValue(getParameters().getProfile().getId()); + setSucceeded(true); + } + + protected abstract Q getProfileValidator(); +} 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 9cdb7ab..feb4bcd 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 @@ -1010,6 +1010,14 @@ USER_UPDATED_DISK_PROFILE(10124), USER_FAILED_TO_UPDATE_DISK_PROFILE(10125, AuditLogSeverity.ERROR), + // Cpu Profile + USER_ADDED_CPU_PROFILE(10130), + USER_FAILED_TO_ADD_CPU_PROFILE(10131, AuditLogSeverity.ERROR), + USER_REMOVED_CPU_PROFILE(10132), + USER_FAILED_TO_REMOVE_CPU_PROFILE(10133, AuditLogSeverity.ERROR), + USER_UPDATED_CPU_PROFILE(10134), + USER_FAILED_TO_UPDATE_CPU_PROFILE(10135, 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/CpuProfileParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/CpuProfileParameters.java new file mode 100644 index 0000000..14208e9 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/CpuProfileParameters.java @@ -0,0 +1,15 @@ +package org.ovirt.engine.core.common.action; + +import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile; +import org.ovirt.engine.core.compat.Guid; + +public class CpuProfileParameters extends ProfileParametersBase<CpuProfile> { + private static final long serialVersionUID = 1303388881332223324L; + + public CpuProfileParameters() { + } + + public CpuProfileParameters(CpuProfile cpuProfile, Guid cpuProfileId) { + super(cpuProfile, cpuProfileId); + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/DiskProfileParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/DiskProfileParameters.java index 1364f2a..cd249e8 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/DiskProfileParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/DiskProfileParameters.java @@ -4,7 +4,6 @@ import org.ovirt.engine.core.compat.Guid; public class DiskProfileParameters extends ProfileParametersBase<DiskProfile> { - private static final long serialVersionUID = 1303388881254823324L; public DiskProfileParameters() { @@ -13,4 +12,5 @@ public DiskProfileParameters(DiskProfile diskProfile, Guid diskProfileId) { super(diskProfile, diskProfileId); } + } 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 index c0c07f2..9a91a42 100644 --- 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 @@ -5,7 +5,7 @@ import org.ovirt.engine.core.common.businessentities.profiles.ProfileBase; import org.ovirt.engine.core.compat.Guid; -public class ProfileParametersBase<T extends ProfileBase> extends VdcActionParametersBase { +public abstract class ProfileParametersBase<T extends ProfileBase> extends VdcActionParametersBase { private static final long serialVersionUID = 1303387921254823324L; 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 b19fa6f..8cd48d4 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 @@ -339,6 +339,10 @@ 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), + // cpu profiles + AddCpuProfile(1763, ActionGroup.EDIT_CLUSTER_CONFIGURATION, false, QuotaDependency.NONE), + UpdateCpuProfile(1764, ActionGroup.EDIT_CLUSTER_CONFIGURATION, false, QuotaDependency.NONE), + RemoveCpuProfile(1765, ActionGroup.EDIT_CLUSTER_CONFIGURATION, 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/errors/VdcBllMessages.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java index e4a5e14..079e863 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java @@ -1007,6 +1007,7 @@ QOS_CPU_SHARES_OUT_OF_RANGE(ErrorType.BAD_PARAMETERS), // profiles + ACTION_TYPE_FAILED_PROFILE_MISSING(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_PROFILE_NOT_EXISTS(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_PROFILE_NAME_IN_USE(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_CANNOT_CHANGE_PROFILE(ErrorType.BAD_PARAMETERS), @@ -1015,6 +1016,10 @@ ACTION_TYPE_FAILED_DISK_PROFILE_NOT_FOUND(ErrorType.BAD_PARAMETERS), ACTION_TYPE_DISK_PROFILE_STORAGE_DOMAIN_NOT_PROVIDED(ErrorType.BAD_PARAMETERS), ACTION_TYPE_DISK_PROFILE_NOT_MATCH_STORAGE_DOMAIN(ErrorType.BAD_PARAMETERS), + ACTION_TYPE_CPU_PROFILE_CLUSTER_NOT_PROVIDED(ErrorType.BAD_PARAMETERS), + ACTION_TYPE_CPU_PROFILE_EMPTY(ErrorType.BAD_PARAMETERS), + ACTION_TYPE_FAILED_CPU_PROFILE_NOT_FOUND(ErrorType.BAD_PARAMETERS), + ACTION_TYPE_CPU_PROFILE_NOT_MATCH_CLUSTER(ErrorType.BAD_PARAMETERS), // Affinity Groups AFFINITY_GROUP_NAME_TOO_LONG(ErrorType.BAD_PARAMETERS), 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 76a1994..faa779d 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 @@ -370,6 +370,12 @@ GetDiskProfilesByStorageDomainId(VdcQueryAuthType.User), GetDiskProfilesByStorageQosId, + // Cpu Profiles + GetCpuProfileById, + GetAllCpuProfiles, + GetCpuProfilesByClusterId(VdcQueryAuthType.User), + GetCpuProfilesByCpuQosId, + // 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 41d130e..31ed560 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.CpuProfileDao; import org.ovirt.engine.core.dao.profiles.DiskProfileDao; import org.ovirt.engine.core.dao.provider.ProviderDao; import org.ovirt.engine.core.utils.log.Log; @@ -666,6 +667,10 @@ return getDbFacade().getDiskProfileDao(); } + public CpuProfileDao getCpuProfileDao() { + return getDbFacade().getCpuProfileDao(); + } + protected DbFacade getDbFacade() { return DbFacade.getInstance(); } diff --git a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties index 6ef497c..3ef6df3 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -1135,6 +1135,7 @@ ACTION_TYPE_FAILED_QOS_NOT_FOUND=Cannot ${action} ${type}. QoS element not found. # profiles +ACTION_TYPE_FAILED_PROFILE_MISSING=Cannot ${action} ${type}. Profile isn't provided. ACTION_TYPE_FAILED_PROFILE_NOT_EXISTS=Cannot ${action} ${type}. Profile not exists. ACTION_TYPE_FAILED_PROFILE_NAME_IN_USE=Cannot ${action} ${type}. Profile name is in use. ACTION_TYPE_FAILED_CANNOT_CHANGE_PROFILE=Cannot ${action} ${type}. Cannot change profile. diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java index 63c2fc0..09d1d78 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java @@ -3081,6 +3081,9 @@ @DefaultStringValue("Cannot ${action} ${type}. QoS element not found.") String ACTION_TYPE_FAILED_QOS_NOT_FOUND(); + @DefaultStringValue("Cannot ${action} ${type}. Profile isn't provided.") + String ACTION_TYPE_FAILED_PROFILE_MISSING(); + @DefaultStringValue("Cannot ${action} ${type}. Profile not exists.") String ACTION_TYPE_FAILED_PROFILE_NOT_EXISTS(); diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties index 915a8bf..ed9b545 100644 --- a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties @@ -1110,6 +1110,7 @@ ACTION_TYPE_FAILED_QOS_NOT_FOUND=Cannot ${action} ${type}. QoS element not found. # profiles +ACTION_TYPE_FAILED_PROFILE_MISSING=Cannot ${action} ${type}. Profile isn't provided. ACTION_TYPE_FAILED_PROFILE_NOT_EXISTS=Cannot ${action} ${type}. Profile not exists. ACTION_TYPE_FAILED_PROFILE_NAME_IN_USE=Cannot ${action} ${type}. Profile name is in use. ACTION_TYPE_FAILED_CANNOT_CHANGE_PROFILE=Cannot ${action} ${type}. Cannot change profile. -- To view, visit http://gerrit.ovirt.org/31824 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6be41103ad9b04fc7d0b530439ab4a2c731bbded Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Gilad Chaplik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
