Jakub Niedermertl has uploaded a new change for review. Change subject: core, webadmin: Vm Icons REST related changes ......................................................................
core, webadmin: Vm Icons REST related changes * Icon validation unified in Add/UpdateVmCommand and Add/UpdateVmTemplateCommand * New queries for convenient rest implementation GetAllVmIconsQuery, GetVmIconDefaultQuery, GetVmIconQuery * Query parameters that are used to upload large icon are marked by HasVmIcon interface * Error messages in frontend part Change-Id: I20440c2443f9217d0fa896fff2911943467954e9 Bug-Url: https://bugzilla.redhat.com/1103175 Signed-off-by: Jakub Niedermertl <jnied...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmIconsQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmIconDefaultQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmIconQuery.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/IconUtils.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IconValidator.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateParameters.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HasVmIcon.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateVmTemplateParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmIcon.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetVmIconDefaultParameters.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/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties M frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties 23 files changed, 247 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/47/42047/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java index b0184d2..8312f14 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java @@ -666,6 +666,16 @@ return false; } + if (getSmallIconId() != null + && !validate(IconUtils.validateIconId(getSmallIconId(), "Small", getVmIconDao()))) { + return false; + } + + if (getLargeIconId() != null + && !validate(IconUtils.validateIconId(getLargeIconId(), "Large", getVmIconDao()))) { + return false; + } + // validate NUMA nodes count not more than CPUs if (getParameters().getVm().getMigrationSupport() == MigrationSupport.PINNED_TO_HOST && !validate(VmHandler.checkVmNumaNodesIntegrity(getParameters().getVm(), @@ -1510,7 +1520,7 @@ * Predefined icons should not be sent in parameters.</li> * <li>If there are no icon in parameters && both (small and large) icon ids are set then those ids are used. * </li> - * <li>Otherwise (at least one icon id is null) both icon ids are coppied from template.</li> + * <li>Otherwise (at least one icon id is null) both icon ids are copied from template.</li> * </ul> * @param vmStatic */ diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java index 74b6963..0cfc1d0 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java @@ -27,8 +27,10 @@ import org.ovirt.engine.core.bll.snapshots.SnapshotsValidator; import org.ovirt.engine.core.bll.storage.CINDERStorageHelper; import org.ovirt.engine.core.bll.tasks.CommandCoordinatorUtil; +import org.ovirt.engine.core.bll.utils.IconUtils; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; +import org.ovirt.engine.core.bll.validator.IconValidator; import org.ovirt.engine.core.bll.validator.VmWatchdogValidator; import org.ovirt.engine.core.bll.validator.storage.CinderDisksValidator; import org.ovirt.engine.core.bll.validator.storage.DiskImagesValidator; @@ -71,6 +73,7 @@ import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.locks.LockingGroup; +import org.ovirt.engine.core.common.queries.VmIconIdSizePair; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.common.utils.customprop.VmPropertiesUtils; import org.ovirt.engine.core.common.validation.group.CreateEntity; @@ -481,6 +484,26 @@ return false; } + if (getParameters().getVmLargeIcon() != null && !validate(IconValidator.validate( + IconValidator.DimensionsType.LARGE_CUSTOM_ICON, + getParameters().getVmLargeIcon()))) { + return false; + } + + if (getParameters().getMasterVm().getSmallIconId() != null + && !validate(IconUtils.validateIconId(getParameters().getMasterVm().getSmallIconId(), + "Small", + getVmIconDao()))) { + return false; + } + + if (getParameters().getMasterVm().getLargeIconId() != null + && !validate(IconUtils.validateIconId(getParameters().getMasterVm().getLargeIconId(), + "Large", + getVmIconDao()))) { + return false; + } + if (isInstanceType) { return true; } else { @@ -699,6 +722,7 @@ getParameters().getMasterVm().getLargeIconId(), getParameters().getMasterVm().getNumOfIoThreads(), getParameters().getMasterVm().getConsoleDisconnectAction())); + updateVmIcons(); DbFacade.getInstance().getVmTemplateDao().save(getVmTemplate()); getCompensationContext().snapshotNewEntity(getVmTemplate()); setActionReturnValue(getVmTemplate().getId()); @@ -708,6 +732,15 @@ VmHandler.addVmInitToDB(getVmTemplate()); } + private void updateVmIcons() { + if (getParameters().getVmLargeIcon() != null) { + final VmIconIdSizePair iconIdPair = + IconUtils.ensureIconPairInDatabase(getParameters().getVmLargeIcon()); + getVmTemplate().setSmallIconId(iconIdPair.getSmall()); + getVmTemplate().setLargeIconId(iconIdPair.getLarge()); + } + } + protected void addVmInterfaces(Map<Guid, Guid> srcDeviceIdToTargetDeviceIdMapping) { List<VmNic> interfaces = getVmNicDao().getAllForVm(getParameters().getMasterVm().getId()); for (VmNic iface : interfaces) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmIconsQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmIconsQuery.java new file mode 100644 index 0000000..7dac0de --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmIconsQuery.java @@ -0,0 +1,21 @@ +package org.ovirt.engine.core.bll; + +import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; +import org.ovirt.engine.core.dao.VmIconDao; + +import javax.inject.Inject; + +public class GetAllVmIconsQuery extends QueriesCommandBase<VdcQueryParametersBase> { + + @Inject + private VmIconDao vmIconDao; + + public GetAllVmIconsQuery(VdcQueryParametersBase parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + setReturnValue(vmIconDao.getAll()); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmIconDefaultQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmIconDefaultQuery.java new file mode 100644 index 0000000..45a2b6f --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmIconDefaultQuery.java @@ -0,0 +1,21 @@ +package org.ovirt.engine.core.bll; + +import org.ovirt.engine.core.common.queries.GetVmIconDefaultParameters; +import org.ovirt.engine.core.dao.VmIconDefaultDao; + +import javax.inject.Inject; + +public class GetVmIconDefaultQuery extends QueriesCommandBase<GetVmIconDefaultParameters> { + + @Inject + private VmIconDefaultDao vmIconDefaultDao; + + public GetVmIconDefaultQuery(GetVmIconDefaultParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + setReturnValue(vmIconDefaultDao.getByOperatingSystemId(getParameters().getOperatingSystemId())); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmIconQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmIconQuery.java new file mode 100644 index 0000000..8e52b10 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmIconQuery.java @@ -0,0 +1,24 @@ +package org.ovirt.engine.core.bll; + +import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.dao.VmIconDao; + +import javax.inject.Inject; + +/** + * Given an icon id it returns icons data in dataurl form + */ +public class GetVmIconQuery extends QueriesCommandBase<IdQueryParameters> { + + @Inject + private VmIconDao vmIconDao; + + public GetVmIconQuery(IdQueryParameters parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + setReturnValue(vmIconDao.get(getParameters().getId())); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java index c171511..b7de278 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java @@ -725,6 +725,20 @@ return false; } + if (getParameters().getVmStaticData() != null + && getParameters().getVmStaticData().getSmallIconId() != null + && !validate(IconUtils.validateIconId( + getParameters().getVmStaticData().getSmallIconId(), "Small", getVmIconDao()))) { + return false; + } + + if (getParameters().getVmStaticData() != null + && getParameters().getVmStaticData().getLargeIconId() != null + && !validate(IconUtils.validateIconId( + getParameters().getVmStaticData().getLargeIconId(), "Large", getVmIconDao()))) { + return false; + } + if (vmFromParams.getProviderId() != null) { Provider<?> provider = providerDao.get(vmFromParams.getProviderId()); if (provider == null) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java index f6201c8..0a92177 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java @@ -119,6 +119,20 @@ return false; } + if (getParameters().getVmTemplateData() != null + && getParameters().getVmTemplateData().getSmallIconId() != null + && !validate(IconUtils.validateIconId( + getParameters().getVmTemplateData().getSmallIconId(), "Small", getVmIconDao()))) { + return false; + } + + if (getParameters().getVmTemplateData() != null + && getParameters().getVmTemplateData().getLargeIconId() != null + && !validate(IconUtils.validateIconId( + getParameters().getVmTemplateData().getLargeIconId(), "Large", getVmIconDao()))) { + return false; + } + if (!isInstanceType && !isBlankTemplate && returnValue) { return doClusterRelatedChecks(); } else { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java index 8453ead..1e8e1ce 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java @@ -61,6 +61,20 @@ return null; } + protected Guid getSmallIconId() { + if (getParameters().getVmStaticData() != null) { + return getParameters().getVmStaticData().getSmallIconId(); + } + return null; + } + + protected Guid getLargeIconId() { + if (getParameters().getVmStaticData() != null) { + return getParameters().getVmStaticData().getLargeIconId(); + } + return null; + } + protected InstanceType getInstanceType() { if (instanceType == null && getInstanceTypeId() != null) { instanceType = getVmTemplateDAO().getInstanceType(getInstanceTypeId()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/IconUtils.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/IconUtils.java index 767695f..2bfc798 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/IconUtils.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/IconUtils.java @@ -1,11 +1,14 @@ package org.ovirt.engine.core.bll.utils; +import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.bll.validator.IconValidator; import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.common.businessentities.VmIconDefault; +import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.queries.VmIconIdSizePair; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dao.VmIconDao; import javax.imageio.ImageIO; import javax.xml.bind.DatatypeConverter; @@ -25,6 +28,14 @@ private IconUtils() { } + public static ValidationResult validateIconId(Guid iconId, String nameForErrorMessage, VmIconDao vmIconDao) { + if (vmIconDao.exists(iconId)) { + return ValidationResult.VALID; + } + return new ValidationResult(VdcBllMessages.ICON_OF_PROVIDED_ID_DOES_NOT_EXIST, + "$iconName " + nameForErrorMessage); + } + /** * * @param dataUrl valid large icon in dataUrl form diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IconValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IconValidator.java index bcbc0e3..ef78e5a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IconValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IconValidator.java @@ -112,7 +112,7 @@ private void validateParsability() { try { image = ImageIO.read(new ByteArrayInputStream(rawImageData)); - } catch (IOException e) { + } catch (RuntimeException | IOException e) { validationResult = new ValidationResult(VdcBllMessages.PROVIDED_VM_ICON_CANT_BE_READ); } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateParameters.java index 79befcc..414af59 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateParameters.java @@ -14,7 +14,7 @@ import org.ovirt.engine.core.common.validation.group.UpdateEntity; import org.ovirt.engine.core.compat.Guid; -public class AddVmTemplateParameters extends VmTemplateParametersBase { +public class AddVmTemplateParameters extends VmTemplateParametersBase implements HasVmIcon { private static final long serialVersionUID = 2114985552063499069L; @@ -28,6 +28,7 @@ private Guid destinationStorageDomainId; private HashMap<Guid, DiskImage> diskInfoDestinationMap; private VmEntityType templateType; + private String vmLargeIcon; @Size(min = 1, max = 40, message = "VALIDATION.VM_TEMPLATE.NAME.MAX", groups = { CreateEntity.class, UpdateEntity.class }) @ValidI18NName(message = "ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS") @@ -170,4 +171,11 @@ this.baseTemplateId = baseTemplateId; } + @Override public String getVmLargeIcon() { + return vmLargeIcon; + } + + @Override public void setVmLargeIcon(String vmLargeIcon) { + this.vmLargeIcon = vmLargeIcon; + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HasVmIcon.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HasVmIcon.java new file mode 100644 index 0000000..0e583d0 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/HasVmIcon.java @@ -0,0 +1,7 @@ +package org.ovirt.engine.core.common.action; + +public interface HasVmIcon { + + String getVmLargeIcon(); + void setVmLargeIcon(String largeIcon); +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateVmTemplateParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateVmTemplateParameters.java index 547cd46..720dfd7 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateVmTemplateParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UpdateVmTemplateParameters.java @@ -4,7 +4,7 @@ import org.ovirt.engine.core.common.businessentities.VmTemplate; -public class UpdateVmTemplateParameters extends VmTemplateParametersBase { +public class UpdateVmTemplateParameters extends VmTemplateParametersBase implements HasVmIcon { private static final long serialVersionUID = 7250355162926369307L; @Valid private VmTemplate _vmTemplate; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java index 4875c3e..030699f 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VmManagementParametersBase.java @@ -18,7 +18,7 @@ import org.ovirt.engine.core.common.utils.VmDeviceType; import org.ovirt.engine.core.compat.Guid; -public class VmManagementParametersBase extends VmOperationParameterBase implements HasGraphicsDevices { +public class VmManagementParametersBase extends VmOperationParameterBase implements HasGraphicsDevices, HasVmIcon { private static final long serialVersionUID = -7695630335738521510L; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmIcon.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmIcon.java index af192a1..40aac50 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmIcon.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmIcon.java @@ -1,8 +1,11 @@ package org.ovirt.engine.core.common.businessentities; +import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.compat.Guid; import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Entity corresponding to <strong>vm_icons</strong> database table. @@ -28,6 +31,30 @@ this.dataUrl = dataUrl; } + public void setTypeAndData(String mediaType, String data) { + this.dataUrl = typeAndDataToDataUrl(mediaType, data); + } + + public Pair<String, String> getTypeAndData() { + return dataUrlToTypeAndData(this.dataUrl); + } + + public static Pair<String, String> dataUrlToTypeAndData(String dataUrl) { + final String dataUrlRegex = "^data:(\\w+/\\w+);base64,([\\w+/]+={0,2})$"; + final Matcher matcher = Pattern.compile(dataUrlRegex).matcher(dataUrl); + final boolean matches = matcher.find(); + if (!matches) { + throw new IllegalStateException("DataUrl has invalid format."); + } + final String mimeType = matcher.group(1); + final String base64Data = matcher.group(2); + return new Pair<>(mimeType, base64Data); + } + + public static String typeAndDataToDataUrl(String mediaType, String data) { + return "data:" + mediaType + ";base64," + data; + } + @Override public Guid getId() { return id; 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 84720ad..a5e5a36 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 @@ -1245,6 +1245,7 @@ PROVIDED_VM_ICON_HAS_INVALID_DIMENSIONS, DATA_SIZE_OF_PROVIDED_VM_ICON_TOO_LARGE, VM_ICON_BASE64_PART_MALFORMED, + ICON_OF_PROVIDED_ID_DOES_NOT_EXIST, BLANK_TEMPLATE_CANT_HAVE_SUBTEMPLATES; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetVmIconDefaultParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetVmIconDefaultParameters.java new file mode 100644 index 0000000..ff30093 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetVmIconDefaultParameters.java @@ -0,0 +1,19 @@ +package org.ovirt.engine.core.common.queries; + +public class GetVmIconDefaultParameters extends VdcQueryParametersBase { + + + private int operatingSystemId; + + private GetVmIconDefaultParameters() {} + + public static GetVmIconDefaultParameters create(int operatingSystemId) { + final GetVmIconDefaultParameters result = new GetVmIconDefaultParameters(); + result.operatingSystemId = operatingSystemId; + return result; + } + + public int getOperatingSystemId() { + return operatingSystemId; + } +} 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 a847c00..e851549 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 @@ -31,8 +31,11 @@ GetVmNextRunConfiguration(VdcQueryAuthType.User), GetVmChangedFieldsForNextRun(VdcQueryAuthType.User), GetVmsFromExternalProvider, + GetVmIcon(VdcQueryAuthType.User), GetVmIcons(VdcQueryAuthType.User), + GetAllVmIcons(VdcQueryAuthType.User), GetVmIconDefaults(VdcQueryAuthType.User), + GetVmIconDefault(VdcQueryAuthType.User), GetVmDevicesForVm(VdcQueryAuthType.User), // Vds queries 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 78a3773..bb5654d 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 @@ -44,6 +44,7 @@ import org.ovirt.engine.core.dao.VmAndTemplatesGenerationsDAO; import org.ovirt.engine.core.dao.VmDAO; import org.ovirt.engine.core.dao.VmDynamicDAO; +import org.ovirt.engine.core.dao.VmIconDao; import org.ovirt.engine.core.dao.VmStaticDAO; import org.ovirt.engine.core.dao.VmStatisticsDAO; import org.ovirt.engine.core.dao.VmTemplateDAO; @@ -745,6 +746,10 @@ return getDbFacade().getCpuProfileDao(); } + public VmIconDao getVmIconDao() { + return getDbFacade().getVmIconDao(); + } + public 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 6a1ffdc..1454bb1 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -1441,7 +1441,8 @@ PROVIDED_VM_ICON_CANT_BE_READ=Provided VM icon can't be read. VM_ICON_MIME_TYPE_DOESNT_MATCH_IMAGE_DATA=Vm icon mime type (${mimeType}) doesn't match image data (${imageType}). PROVIDED_VM_ICON_HAS_INVALID_DIMENSIONS=Vm icon has invalid dimensions (${currentDimensions}). Allowed dimmension: ${allowedDimensions} -DATA_SIZE_OF_PROVIDED_VM_ICON_TOO_LARGE=Data size of provided icon (${$currentSize}) is to big. Maximum allowd is ${$maxSize} +DATA_SIZE_OF_PROVIDED_VM_ICON_TOO_LARGE=Data size of provided icon (${currentSize}) is to big. Maximum allowd is ${maxSize} VM_ICON_BASE64_PART_MALFORMED=Base64 part of vm icon is malformed. +ICON_OF_PROVIDED_ID_DOES_NOT_EXIST=${iconName} icon of provided id does not exists. BLANK_TEMPLATE_CANT_HAVE_SUBTEMPLATES=Blank template can't have sub-templates. 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 2c6c064..fcc95f0 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 @@ -3839,12 +3839,15 @@ @DefaultStringValue("Vm icon has invalid dimensions (${currentDimensions}). Allowed dimmension: ${allowedDimensions}") String PROVIDED_VM_ICON_HAS_INVALID_DIMENSIONS(); - @DefaultStringValue("Data size of provided icon (${$currentSize}) is to big. Maximum allowd is ${$maxSize}") + @DefaultStringValue("Data size of provided icon (${currentSize}) is to big. Maximum allowd is ${maxSize}") String DATA_SIZE_OF_PROVIDED_VM_ICON_TOO_LARGE(); @DefaultStringValue("Base64 part of vm icon is malformed.") String VM_ICON_BASE64_PART_MALFORMED(); + @DefaultStringValue("${iconName} icon of provided id does not exists.") + String ICON_OF_PROVIDED_ID_DOES_NOT_EXIST(); + @DefaultStringValue("Cannot detach a non empty Cinder provider.\n -Please remove all VMs / Templates / Disks and try again.") String ERROR_CANNOT_DETACH_CINDER_PROVIDER_WITH_IMAGES(); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties index bd8e233..af69285 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties @@ -1109,8 +1109,9 @@ PROVIDED_VM_ICON_CANT_BE_READ=Provided VM icon can't be read. VM_ICON_MIME_TYPE_DOESNT_MATCH_IMAGE_DATA=Vm icon mime type (${mimeType}) doesn't match image data (${imageType}). PROVIDED_VM_ICON_HAS_INVALID_DIMENSIONS=Vm icon has invalid dimensions (${currentDimensions}). Allowed dimmension: ${allowedDimensions} -DATA_SIZE_OF_PROVIDED_VM_ICON_TOO_LARGE=Data size of provided icon (${$currentSize}) is to big. Maximum allowd is ${$maxSize} +DATA_SIZE_OF_PROVIDED_VM_ICON_TOO_LARGE=Data size of provided icon (${currentSize}) is to big. Maximum allowd is ${maxSize} VM_ICON_BASE64_PART_MALFORMED=Base64 part of vm icon is malformed. +ICON_OF_PROVIDED_ID_DOES_NOT_EXIST=${iconName} icon of provided id does not exists. ERROR_CANNOT_DETACH_CINDER_PROVIDER_WITH_IMAGES=Cannot detach a non empty Cinder provider.\n\ -Please remove all VMs / Templates / Disks and try again. 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 52edee2..933faf3 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 @@ -1386,8 +1386,9 @@ PROVIDED_VM_ICON_CANT_BE_READ=Provided VM icon can't be read. VM_ICON_MIME_TYPE_DOESNT_MATCH_IMAGE_DATA=Vm icon mime type (${mimeType}) doesn't match image data (${imageType}). PROVIDED_VM_ICON_HAS_INVALID_DIMENSIONS=Vm icon has invalid dimensions (${currentDimensions}). Allowed dimmension: ${allowedDimensions} -DATA_SIZE_OF_PROVIDED_VM_ICON_TOO_LARGE=Data size of provided icon (${$currentSize}) is to big. Maximum allowd is ${$maxSize} +DATA_SIZE_OF_PROVIDED_VM_ICON_TOO_LARGE=Data size of provided icon (${currentSize}) is to big. Maximum allowd is ${maxSize} VM_ICON_BASE64_PART_MALFORMED=Base64 part of vm icon is malformed. +ICON_OF_PROVIDED_ID_DOES_NOT_EXIST=${iconName} icon of provided id does not exists. VM_NUMA_NODE_MORE_NODES_THAN_CPUS=Cannot ${action} ${type}. Assigned ${numaNodes} NUMA nodes for ${cpus} CPU cores. Cannot assign more NUMA nodes than CPU cores. -- To view, visit https://gerrit.ovirt.org/42047 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I20440c2443f9217d0fa896fff2911943467954e9 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Jakub Niedermertl <jnied...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches