@Override public Object create(String type, ApiRequest request, ResourceManager next) { Instance container = request.proxyRequestObject(Instance.class); if (REQUIRE_INSTANCE_IMAGE.get()) { Long imageId = container.getImageId(); String imageUuid = DataUtils.getFieldFromRequest(request, InstanceConstants.FIELD_IMAGE_UUID, String.class); if (imageId == null && imageUuid == null) { throw new ValidationErrorException(ValidationErrorCodes.MISSING_REQUIRED, InstanceConstants.FIELD_IMAGE_UUID, "image is required, but not specified"); } } Long imageId = container.getImageId(); Image image = getObjectManager().loadResource(Image.class, imageId); if (image != null && image.getInstanceKind() != null) { if (!image.getInstanceKind().equals(type)) { throw new ClientVisibleException(ResponseCodes.UNPROCESSABLE_ENTITY, "InvalidImageInstanceKind"); } } return super.create(type, request, next); }
/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.Image from) { setId(from.getId()); setName(from.getName()); setAccountId(from.getAccountId()); setKind(from.getKind()); setUuid(from.getUuid()); setDescription(from.getDescription()); setState(from.getState()); setCreated(from.getCreated()); setRemoved(from.getRemoved()); setRemoveTime(from.getRemoveTime()); setData(from.getData()); setUrl(from.getUrl()); setIsPublic(from.getIsPublic()); setPhysicalSizeMb(from.getPhysicalSizeMb()); setVirtualSizeMb(from.getVirtualSizeMb()); setChecksum(from.getChecksum()); setFormat(from.getFormat()); setInstanceKind(from.getInstanceKind()); setRegistryCredentialId(from.getRegistryCredentialId()); }