Martin Betak has uploaded a new change for review. Change subject: dal: Refactor VmStatic and VmTemplate Daos ......................................................................
dal: Refactor VmStatic and VmTemplate Daos Extracted common fields from parameter sources of VmStatic and VmTemplate to new VmBaseDaoDbFacade. This new class also inheriths DefaultGenericDaoDbFacade to eliminate trivial implementations of get, update and delete in both DaoDbImpls. Change-Id: Ia8c02c11ededf4dfba67e5cc8598ae90155d7eb5 Signed-off-by: Martin Betak <mbe...@redhat.com> --- D backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java A backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmBaseDaoDbFacade.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java 5 files changed, 178 insertions(+), 229 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/29544/1 diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java deleted file mode 100644 index f310981..0000000 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.ovirt.engine.core.dal.dbbroker; - -import java.sql.ResultSet; -import java.sql.SQLException; - -import org.ovirt.engine.core.common.businessentities.BootSequence; -import org.ovirt.engine.core.common.businessentities.DisplayType; -import org.ovirt.engine.core.common.businessentities.MigrationSupport; -import org.ovirt.engine.core.common.businessentities.OriginType; -import org.ovirt.engine.core.common.businessentities.SerialNumberPolicy; -import org.ovirt.engine.core.common.businessentities.SsoMethod; -import org.ovirt.engine.core.common.businessentities.UsbPolicy; -import org.ovirt.engine.core.common.businessentities.VmBase; -import org.ovirt.engine.core.common.businessentities.VmType; -import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dao.BaseDAODbFacade; -import org.springframework.jdbc.core.RowMapper; - -/** - * The common basic rowmapper for properties in VmBase. - * @param <T> a subclass of VmBase. - */ -public abstract class AbstractVmRowMapper<T extends VmBase> implements RowMapper<T> { - - protected final void map(final ResultSet rs, final T entity) throws SQLException { - entity.setMemSizeMb(rs.getInt("mem_size_mb")); - entity.setOsId(rs.getInt("os")); - entity.setNumOfMonitors(rs.getInt("num_of_monitors")); - entity.setSingleQxlPci(rs.getBoolean("single_qxl_pci")); - entity.setDefaultDisplayType(DisplayType.forValue(rs.getInt("default_display_type"))); - entity.setDescription(rs.getString("description")); - entity.setComment(rs.getString("free_text_comment")); - entity.setCreationDate(DbFacadeUtils.fromDate(rs.getTimestamp("creation_date"))); - entity.setNumOfSockets(rs.getInt("num_of_sockets")); - entity.setCpuPerSocket(rs.getInt("cpu_per_socket")); - entity.setTimeZone(rs.getString("time_zone")); - entity.setVmType(VmType.forValue(rs.getInt("vm_type"))); - entity.setUsbPolicy(UsbPolicy.forValue(rs.getInt("usb_policy"))); - entity.setFailBack(rs.getBoolean("fail_back")); - entity.setDefaultBootSequence(BootSequence.forValue(rs.getInt("default_boot_sequence"))); - entity.setNiceLevel(rs.getInt("nice_level")); - entity.setCpuShares(rs.getInt("cpu_shares")); - entity.setPriority(rs.getInt("priority")); - entity.setAutoStartup(rs.getBoolean("auto_startup")); - entity.setStateless(rs.getBoolean("is_stateless")); - entity.setDbGeneration(rs.getLong("db_generation")); - entity.setIsoPath(rs.getString("iso_path")); - entity.setOrigin(OriginType.forValue(rs.getInt("origin"))); - entity.setKernelUrl(rs.getString("kernel_url")); - entity.setKernelParams(rs.getString("kernel_params")); - entity.setInitrdUrl(rs.getString("initrd_url")); - entity.setSmartcardEnabled(rs.getBoolean("is_smartcard_enabled")); - entity.setDeleteProtected(rs.getBoolean("is_delete_protected")); - entity.setSsoMethod(SsoMethod.fromString(rs.getString("sso_method"))); - entity.setTunnelMigration((Boolean) rs.getObject("tunnel_migration")); - entity.setVncKeyboardLayout(rs.getString("vnc_keyboard_layout")); - entity.setRunAndPause(rs.getBoolean("is_run_and_pause")); - entity.setCreatedByUserId(Guid.createGuidFromString(rs.getString("created_by_user_id"))); - entity.setMigrationDowntime((Integer) rs.getObject("migration_downtime")); - entity.setSerialNumberPolicy(SerialNumberPolicy.forValue((Integer) rs.getObject("serial_number_policy"))); - entity.setCustomSerialNumber(rs.getString("custom_serial_number")); - entity.setBootMenuEnabled(rs.getBoolean("is_boot_menu_enabled")); - entity.setSpiceFileTransferEnabled(rs.getBoolean("is_spice_file_transfer_enabled")); - entity.setSpiceCopyPasteEnabled(rs.getBoolean("is_spice_copy_paste_enabled")); - entity.setMigrationSupport(MigrationSupport.forValue(rs.getInt("migration_support"))); - entity.setDedicatedVmForVds(BaseDAODbFacade.getGuid(rs, "dedicated_vm_for_vds")); - entity.setMinAllocatedMem(rs.getInt("min_allocated_mem")); - entity.setQuotaId(BaseDAODbFacade.getGuid(rs, "quota_id")); - } - -} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java index 373f410..b17fc06 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/BaseDAODbFacade.java @@ -153,7 +153,7 @@ * @return a {@link Guid} representing the UUID in the column, or the default value if it was <code>null</code>. * @throws SQLException If resultSet does not contain columnName or its value cannot be cast to {@link UUID}. */ - public static Guid getGuid(ResultSet resultSet, String columnName) throws SQLException { + protected static Guid getGuid(ResultSet resultSet, String columnName) throws SQLException { return getGuid(resultSet, columnName, null); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmBaseDaoDbFacade.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmBaseDaoDbFacade.java new file mode 100644 index 0000000..5a83bbf --- /dev/null +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmBaseDaoDbFacade.java @@ -0,0 +1,125 @@ +package org.ovirt.engine.core.dao; + +import org.ovirt.engine.core.common.businessentities.BootSequence; +import org.ovirt.engine.core.common.businessentities.DisplayType; +import org.ovirt.engine.core.common.businessentities.MigrationSupport; +import org.ovirt.engine.core.common.businessentities.OriginType; +import org.ovirt.engine.core.common.businessentities.SerialNumberPolicy; +import org.ovirt.engine.core.common.businessentities.SsoMethod; +import org.ovirt.engine.core.common.businessentities.UsbPolicy; +import org.ovirt.engine.core.common.businessentities.VmBase; +import org.ovirt.engine.core.common.businessentities.VmType; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; + +import java.sql.ResultSet; +import java.sql.SQLException; + +public abstract class VmBaseDaoDbFacade<T extends VmBase> extends DefaultGenericDaoDbFacade<T, Guid> { + public VmBaseDaoDbFacade(String entityStoredProcedureName) { + super(entityStoredProcedureName); + } + + protected MapSqlParameterSource createBaseParametersMapper(T entity) { + return createIdParameterMapper(entity.getId()) + .addValue("description", entity.getDescription()) + .addValue("free_text_comment", entity.getComment()) + .addValue("creation_date", entity.getCreationDate()) + .addValue("mem_size_mb", entity.getMemSizeMb()) + .addValue("vnc_keyboard_layout", entity.getVncKeyboardLayout()) + .addValue("tunnel_migration", entity.getTunnelMigration()) + .addValue("vds_group_id", entity.getVdsGroupId()) + .addValue("num_of_sockets", entity.getNumOfSockets()) + .addValue("cpu_per_socket", entity.getCpuPerSocket()) + .addValue("os", entity.getOsId()) + .addValue("num_of_monitors", entity.getNumOfMonitors()) + .addValue("single_qxl_pci", entity.getSingleQxlPci()) + .addValue("allow_console_reconnect", entity.isAllowConsoleReconnect()) + .addValue("vm_type", entity.getVmType()) + .addValue("priority", entity.getPriority()) + .addValue("auto_startup", entity.isAutoStartup()) + .addValue("is_stateless", entity.isStateless()) + .addValue("is_smartcard_enabled", entity.isSmartcardEnabled()) + .addValue("is_delete_protected", entity.isDeleteProtected()) + .addValue("sso_method", entity.getSsoMethod().toString()) + .addValue("iso_path", entity.getIsoPath()) + .addValue("usb_policy", entity.getUsbPolicy()) + .addValue("time_zone", entity.getTimeZone()) + .addValue("fail_back", entity.isFailBack()) + .addValue("nice_level", entity.getNiceLevel()) + .addValue("cpu_shares", entity.getCpuShares()) + .addValue("default_boot_sequence", entity.getDefaultBootSequence()) + .addValue("default_display_type", entity.getDefaultDisplayType()) + .addValue("origin", entity.getOrigin()) + .addValue("initrd_url", entity.getInitrdUrl()) + .addValue("kernel_url", entity.getKernelUrl()) + .addValue("kernel_params", entity.getKernelParams()) + .addValue("quota_id", entity.getQuotaId()) + .addValue("migration_support", entity.getMigrationSupport().getValue()) + .addValue("dedicated_vm_for_vds", entity.getDedicatedVmForVds()) + .addValue("min_allocated_mem", entity.getMinAllocatedMem()) + .addValue("is_run_and_pause", entity.isRunAndPause()) + .addValue("created_by_user_id", entity.getCreatedByUserId()) + .addValue("migration_downtime", entity.getMigrationDowntime()) + .addValue("serial_number_policy", entity.getSerialNumberPolicy() == null ? null : entity.getSerialNumberPolicy().getValue()) + .addValue("custom_serial_number", entity.getCustomSerialNumber()) + .addValue("is_boot_menu_enabled", entity.isBootMenuEnabled()) + .addValue("is_spice_file_transfer_enabled", entity.isSpiceFileTransferEnabled()) + .addValue("is_spice_copy_paste_enabled", entity.isSpiceCopyPasteEnabled()); + } + + /** + * The common basic rowmapper for properties in VmBase. + * @param <T> a subclass of VmBase. + */ + protected abstract static class AbstractVmRowMapper<T extends VmBase> implements RowMapper<T> { + + protected final void map(final ResultSet rs, final T entity) throws SQLException { + entity.setMemSizeMb(rs.getInt("mem_size_mb")); + entity.setOsId(rs.getInt("os")); + entity.setNumOfMonitors(rs.getInt("num_of_monitors")); + entity.setSingleQxlPci(rs.getBoolean("single_qxl_pci")); + entity.setDefaultDisplayType(DisplayType.forValue(rs.getInt("default_display_type"))); + entity.setDescription(rs.getString("description")); + entity.setComment(rs.getString("free_text_comment")); + entity.setCreationDate(DbFacadeUtils.fromDate(rs.getTimestamp("creation_date"))); + entity.setNumOfSockets(rs.getInt("num_of_sockets")); + entity.setCpuPerSocket(rs.getInt("cpu_per_socket")); + entity.setTimeZone(rs.getString("time_zone")); + entity.setVmType(VmType.forValue(rs.getInt("vm_type"))); + entity.setUsbPolicy(UsbPolicy.forValue(rs.getInt("usb_policy"))); + entity.setFailBack(rs.getBoolean("fail_back")); + entity.setDefaultBootSequence(BootSequence.forValue(rs.getInt("default_boot_sequence"))); + entity.setNiceLevel(rs.getInt("nice_level")); + entity.setCpuShares(rs.getInt("cpu_shares")); + entity.setPriority(rs.getInt("priority")); + entity.setAutoStartup(rs.getBoolean("auto_startup")); + entity.setStateless(rs.getBoolean("is_stateless")); + entity.setDbGeneration(rs.getLong("db_generation")); + entity.setIsoPath(rs.getString("iso_path")); + entity.setOrigin(OriginType.forValue(rs.getInt("origin"))); + entity.setKernelUrl(rs.getString("kernel_url")); + entity.setKernelParams(rs.getString("kernel_params")); + entity.setInitrdUrl(rs.getString("initrd_url")); + entity.setSmartcardEnabled(rs.getBoolean("is_smartcard_enabled")); + entity.setDeleteProtected(rs.getBoolean("is_delete_protected")); + entity.setSsoMethod(SsoMethod.fromString(rs.getString("sso_method"))); + entity.setTunnelMigration((Boolean) rs.getObject("tunnel_migration")); + entity.setVncKeyboardLayout(rs.getString("vnc_keyboard_layout")); + entity.setRunAndPause(rs.getBoolean("is_run_and_pause")); + entity.setCreatedByUserId(Guid.createGuidFromString(rs.getString("created_by_user_id"))); + entity.setMigrationDowntime((Integer) rs.getObject("migration_downtime")); + entity.setSerialNumberPolicy(SerialNumberPolicy.forValue((Integer) rs.getObject("serial_number_policy"))); + entity.setCustomSerialNumber(rs.getString("custom_serial_number")); + entity.setBootMenuEnabled(rs.getBoolean("is_boot_menu_enabled")); + entity.setSpiceFileTransferEnabled(rs.getBoolean("is_spice_file_transfer_enabled")); + entity.setSpiceCopyPasteEnabled(rs.getBoolean("is_spice_copy_paste_enabled")); + entity.setMigrationSupport(MigrationSupport.forValue(rs.getInt("migration_support"))); + entity.setDedicatedVmForVds(getGuid(rs, "dedicated_vm_for_vds")); + entity.setMinAllocatedMem(rs.getInt("min_allocated_mem")); + entity.setQuotaId(getGuid(rs, "quota_id")); + } + } +} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java index 7116e85..197f74a 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java @@ -10,19 +10,16 @@ import org.ovirt.engine.core.common.businessentities.VmStatic; import org.ovirt.engine.core.common.utils.customprop.VmPropertiesUtils; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dal.dbbroker.AbstractVmRowMapper; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; -public class VmStaticDAODbFacadeImpl extends BaseDAODbFacade implements VmStaticDAO { +public class VmStaticDAODbFacadeImpl extends VmBaseDaoDbFacade<VmStatic> implements VmStaticDAO { public static final Integer USE_LATEST_VERSION_NUMBER_INDICATOR = null; public static final Integer DONT_USE_LATEST_VERSION_NUMBER_INDICATOR = 1; - @Override - public VmStatic get(Guid id) { - return getCallsHandler().executeRead("GetVmStaticByVmGuid", - VMStaticRowMapper.instance, - getIdParamterSource(id)); + public VmStaticDAODbFacadeImpl() { + super("VmStatic"); + setProcedureNameForGet("GetVmStaticByVmGuid"); } @Override @@ -31,81 +28,30 @@ } @Override - public void save(VmStatic vm) { - getCallsHandler().executeModification("InsertVmStatic", getFullParameterSource(vm)); - - } - - @Override - public void update(VmStatic vm) { - getCallsHandler().executeModification("UpdateVmStatic", getFullParameterSource(vm)); - } - - private MapSqlParameterSource getFullParameterSource(VmStatic vm) { - return getIdParamterSource(vm.getId()) - .addValue("description", vm.getDescription()) - .addValue("free_text_comment", vm.getComment()) - .addValue("mem_size_mb", vm.getMemSizeMb()) - .addValue("os", vm.getOsId()) - .addValue("vds_group_id", vm.getVdsGroupId()) + protected MapSqlParameterSource createFullParametersMapper(VmStatic vm) { + return createBaseParametersMapper(vm) .addValue("vm_name", vm.getName()) .addValue("vmt_guid", vm.getVmtGuid()) - .addValue("creation_date", vm.getCreationDate()) - .addValue("num_of_monitors", vm.getNumOfMonitors()) - .addValue("single_qxl_pci", vm.getSingleQxlPci()) .addValue("is_initialized", vm.isInitialized()) - .addValue("num_of_sockets", vm.getNumOfSockets()) - .addValue("cpu_per_socket", vm.getCpuPerSocket()) - .addValue("usb_policy", vm.getUsbPolicy()) - .addValue("time_zone", vm.getTimeZone()) - .addValue("auto_startup", vm.isAutoStartup()) - .addValue("is_stateless", vm.isStateless()) - .addValue("is_smartcard_enabled", vm.isSmartcardEnabled()) - .addValue("is_delete_protected", vm.isDeleteProtected()) - .addValue("sso_method", vm.getSsoMethod().toString()) - .addValue("dedicated_vm_for_vds", vm.getDedicatedVmForVds()) - .addValue("fail_back", vm.isFailBack()) - .addValue("vm_type", vm.getVmType()) - .addValue("nice_level", vm.getNiceLevel()) - .addValue("cpu_shares", vm.getCpuShares()) - .addValue("default_boot_sequence", - vm.getDefaultBootSequence()) - .addValue("default_display_type", vm.getDefaultDisplayType()) - .addValue("priority", vm.getPriority()) - .addValue("iso_path", vm.getIsoPath()) - .addValue("origin", vm.getOrigin()) - .addValue("initrd_url", vm.getInitrdUrl()) - .addValue("kernel_url", vm.getKernelUrl()) - .addValue("kernel_params", vm.getKernelParams()) - .addValue("migration_support", - vm.getMigrationSupport().getValue()) .addValue("predefined_properties", vm.getPredefinedProperties()) .addValue("userdefined_properties", vm.getUserDefinedProperties()) - .addValue("min_allocated_mem", vm.getMinAllocatedMem()) - .addValue("quota_id", vm.getQuotaId()) - .addValue("allow_console_reconnect", vm.isAllowConsoleReconnect()) .addValue("cpu_pinning", vm.getCpuPinning()) .addValue("host_cpu_flags", vm.isUseHostCpuFlags()) - .addValue("tunnel_migration", vm.getTunnelMigration()) - .addValue("vnc_keyboard_layout", vm.getVncKeyboardLayout()) - .addValue("is_run_and_pause", vm.isRunAndPause()) - .addValue("created_by_user_id", vm.getCreatedByUserId()) .addValue("instance_type_id", vm.getInstanceTypeId()) .addValue("image_type_id", vm.getImageTypeId()) .addValue("original_template_name", vm.getOriginalTemplateName()) .addValue("original_template_id", vm.getOriginalTemplateGuid()) - .addValue("migration_downtime", vm.getMigrationDowntime()) .addValue("template_version_number", vm.isUseLatestVersion() ? USE_LATEST_VERSION_NUMBER_INDICATOR : DONT_USE_LATEST_VERSION_NUMBER_INDICATOR) - .addValue("serial_number_policy", vm.getSerialNumberPolicy() == null ? null : vm.getSerialNumberPolicy().getValue()) - .addValue("custom_serial_number", vm.getCustomSerialNumber()) - .addValue("is_boot_menu_enabled", vm.isBootMenuEnabled()) .addValue("numatune_mode", vm.getNumaTuneMode() == null ? NumaTuneMode.PREFERRED.getValue() : vm.getNumaTuneMode() - .getValue()) - .addValue("is_spice_file_transfer_enabled", vm.isSpiceFileTransferEnabled()) - .addValue("is_spice_copy_paste_enabled", vm.isSpiceCopyPasteEnabled()); + .getValue()); + } + + @Override + protected RowMapper<VmStatic> createEntityRowMapper() { + return VMStaticRowMapper.instance; } @Override @@ -115,13 +61,13 @@ public void remove(Guid id, boolean removePermissions) { getCallsHandler().executeModification("DeleteVmStatic", - getIdParamterSource(id) + createIdParameterMapper(id) .addValue("remove_permissions", removePermissions)); } - private MapSqlParameterSource getIdParamterSource(Guid id) { - return getCustomMapSqlParameterSource() - .addValue("vm_guid", id); + @Override + protected MapSqlParameterSource createIdParameterMapper(Guid id) { + return getCustomMapSqlParameterSource().addValue("vm_guid", id); } @Override diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java index b37a9ad..f1bdb07 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java @@ -16,14 +16,18 @@ import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmTemplateStatus; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dal.dbbroker.AbstractVmRowMapper; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; /** * <code>VmTemplateDAODbFacadeImpl</code> provides a concrete implementation of {@link VmTemplateDAO}. */ -public class VmTemplateDAODbFacadeImpl extends BaseDAODbFacade implements VmTemplateDAO { +public class VmTemplateDAODbFacadeImpl extends VmBaseDaoDbFacade<VmTemplate> implements VmTemplateDAO { + + public VmTemplateDAODbFacadeImpl() { + super("VmTemplate"); + setProcedureNameForRemove("DeleteVmTemplates"); + } @Override public VmTemplate get(Guid id) { @@ -51,17 +55,16 @@ @Override public VmTemplate get(Guid id, Guid userID, boolean isFiltered) { return getCallsHandler().executeRead("GetVmTemplateByVmtGuid", - VMTemplateRowMapper.instance, - getCustomMapSqlParameterSource() - .addValue("vmt_guid", id).addValue("user_id", userID).addValue("is_filtered", isFiltered)); + VMTemplateRowMapper.instance, + createIdParameterMapper(id).addValue("user_id", userID).addValue("is_filtered", isFiltered)); } @Override public VmTemplate getByName(String name, Guid userID, boolean isFiltered) { return getCallsHandler().executeRead("GetVmTemplateByVmtName", - VMTemplateRowMapper.instance, - getCustomMapSqlParameterSource() - .addValue("vmt_name", name).addValue("user_id", userID).addValue("is_filtered", isFiltered)); + VMTemplateRowMapper.instance, + getCustomMapSqlParameterSource() + .addValue("vmt_name", name).addValue("user_id", userID).addValue("is_filtered", isFiltered)); } @Override @@ -72,18 +75,18 @@ @Override public List<VmTemplate> getAll(Guid userID, boolean isFiltered, VmEntityType entityType) { return getCallsHandler().executeReadList("GetAllFromVmTemplates", - VMTemplateRowMapper.instance, - getCustomMapSqlParameterSource() - .addValue("entity_type", entityType.name()) - .addValue("user_id", userID) - .addValue("is_filtered", isFiltered)); + VMTemplateRowMapper.instance, + getCustomMapSqlParameterSource() + .addValue("entity_type", entityType.name()) + .addValue("user_id", userID) + .addValue("is_filtered", isFiltered)); } @Override public List<VmTemplate> getVmTemplatesByIds(List<Guid> templatesIds) { return getCallsHandler().executeReadList("GetVmTemplatesByIds", - VMTemplateRowMapper.instance, - getCustomMapSqlParameterSource().addValue("vm_templates_ids", StringUtils.join(templatesIds, ','))); + VMTemplateRowMapper.instance, + getCustomMapSqlParameterSource().addValue("vm_templates_ids", StringUtils.join(templatesIds, ','))); } @Override @@ -94,11 +97,11 @@ @Override public List<VmTemplate> getAllForStorageDomain(Guid storageDomain, Guid userID, boolean isFiltered) { return getCallsHandler().executeReadList("GetVmTemplatesByStorageDomainId", - VMTemplateRowMapper.instance, - getCustomMapSqlParameterSource() - .addValue("storage_domain_id", storageDomain) - .addValue("user_id", userID) - .addValue("is_filtered", isFiltered)); + VMTemplateRowMapper.instance, + getCustomMapSqlParameterSource() + .addValue("storage_domain_id", storageDomain) + .addValue("user_id", userID) + .addValue("is_filtered", isFiltered)); } @Override @@ -151,89 +154,30 @@ @Override public List<VmTemplate> getAllTemplatesWithDisksOnOtherStorageDomain(Guid storageDomainGuid) { return getCallsHandler().executeReadList("GetAllVmTemplatesWithDisksOnOtherStorageDomain", - VMTemplateRowMapper.instance, - getCustomMapSqlParameterSource().addValue("storage_domain_id", storageDomainGuid)); + VMTemplateRowMapper.instance, + getCustomMapSqlParameterSource().addValue("storage_domain_id", storageDomainGuid)); } @Override - public void save(VmTemplate template) { - getCallsHandler().executeModification("InsertVmTemplate", getInsertOrUpdateParameters(template)); - } - - private MapSqlParameterSource getInsertOrUpdateParameters(VmTemplate template) { - return getCustomMapSqlParameterSource() + protected MapSqlParameterSource createFullParametersMapper(VmTemplate template) { + return createBaseParametersMapper(template) .addValue("child_count", template.getChildCount()) - .addValue("creation_date", template.getCreationDate()) - .addValue("description", template.getDescription()) - .addValue("free_text_comment", template.getComment()) - .addValue("mem_size_mb", template.getMemSizeMb()) .addValue("name", template.getName()) - .addValue("num_of_sockets", template.getNumOfSockets()) - .addValue("cpu_per_socket", template.getCpuPerSocket()) - .addValue("os", template.getOsId()) - .addValue("vmt_guid", template.getId()) - .addValue("vds_group_id", template.getVdsGroupId()) - .addValue("num_of_monitors", template.getNumOfMonitors()) - .addValue("single_qxl_pci", template.getSingleQxlPci()) - .addValue("allow_console_reconnect", template.isAllowConsoleReconnect()) .addValue("status", template.getStatus()) - .addValue("usb_policy", template.getUsbPolicy()) - .addValue("time_zone", template.getTimeZone()) - .addValue("fail_back", template.isFailBack()) - .addValue("vm_type", template.getVmType()) - .addValue("nice_level", template.getNiceLevel()) - .addValue("cpu_shares", template.getCpuShares()) - .addValue("default_boot_sequence", - template.getDefaultBootSequence()) - .addValue("default_display_type", - template.getDefaultDisplayType()) - .addValue("priority", template.getPriority()) - .addValue("auto_startup", template.isAutoStartup()) - .addValue("is_stateless", template.isStateless()) - .addValue("is_smartcard_enabled", template.isSmartcardEnabled()) - .addValue("is_delete_protected", template.isDeleteProtected()) - .addValue("sso_method", template.getSsoMethod().toString()) - .addValue("iso_path", template.getIsoPath()) - .addValue("origin", template.getOrigin()) - .addValue("initrd_url", template.getInitrdUrl()) - .addValue("kernel_url", template.getKernelUrl()) - .addValue("kernel_params", template.getKernelParams()) .addValue("is_disabled", template.isDisabled()) - .addValue("quota_id", template.getQuotaId()) - .addValue("migration_support", template.getMigrationSupport().getValue()) - .addValue("dedicated_vm_for_vds", template.getDedicatedVmForVds()) - .addValue("tunnel_migration", template.getTunnelMigration()) - .addValue("vnc_keyboard_layout", template.getVncKeyboardLayout()) - .addValue("min_allocated_mem", template.getMinAllocatedMem()) - .addValue("is_run_and_pause", template.isRunAndPause()) - .addValue("created_by_user_id", template.getCreatedByUserId()) .addValue("template_type", template.getTemplateType().name()) - .addValue("migration_downtime", template.getMigrationDowntime()) .addValue("base_template_id", template.getBaseTemplateId()) - .addValue("template_version_name", template.getTemplateVersionName()) - .addValue("serial_number_policy", template.getSerialNumberPolicy() == null ? null : template.getSerialNumberPolicy().getValue()) - .addValue("custom_serial_number", template.getCustomSerialNumber()) - .addValue("is_boot_menu_enabled", template.isBootMenuEnabled()) - .addValue("is_spice_file_transfer_enabled", template.isSpiceFileTransferEnabled()) - .addValue("is_spice_copy_paste_enabled", template.isSpiceCopyPasteEnabled()); + .addValue("template_version_name", template.getTemplateVersionName()); } @Override - public void update(VmTemplate template) { - getCallsHandler().executeModification("UpdateVmTemplate", getInsertOrUpdateParameters(template)); + protected MapSqlParameterSource createIdParameterMapper(Guid id) { + return getCustomMapSqlParameterSource().addValue("vmt_guid", id); } @Override public void updateStatus(Guid id, VmTemplateStatus status) { - getCallsHandler().executeModification("UpdateVmTemplateStatus", getCustomMapSqlParameterSource() - .addValue("vmt_guid", id) - .addValue("status", status)); - } - - @Override - public void remove(Guid id) { - getCallsHandler().executeModification("DeleteVmTemplates", getCustomMapSqlParameterSource() - .addValue("vmt_guid", id)); + getCallsHandler().executeModification("UpdateVmTemplateStatus", createIdParameterMapper(id).addValue("status", status)); } @Override @@ -313,6 +257,11 @@ } } + @Override + protected RowMapper<VmTemplate> createEntityRowMapper() { + return VMTemplateRowMapper.instance; + } + private static class VMTemplateWithPlugInfo { public VmTemplate getVmTemplate() { -- To view, visit http://gerrit.ovirt.org/29544 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia8c02c11ededf4dfba67e5cc8598ae90155d7eb5 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Betak <mbe...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches