package org.ovirt.engine.core.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DiskInterface; import org.ovirt.engine.core.common.businessentities.DiskType; import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.common.businessentities.PropagateErrors; import org.ovirt.engine.core.common.businessentities.VolumeFormat; import org.ovirt.engine.core.common.businessentities.VolumeType; import org.ovirt.engine.core.common.businessentities.image_vm_map_id; import org.ovirt.engine.core.common.businessentities.image_vm_pool_map; import org.ovirt.engine.core.common.businessentities.stateless_vm_image_map; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; /** * <code>DiskImageDAODbFacadeImpl</code> provides an implementation of {@link DiskImageDAO} that uses previously * developed code from {@link DbFacade}. * * */ public class DiskImageDAODbFacadeImpl extends BaseDAODbFacade implements DiskImageDAO { @Override public DiskImage get(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("image_guid", id); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setactive((Boolean) rs.getObject("active")); entity.setvm_guid(Guid.createGuidFromString(rs .getString("vm_guid"))); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setactual_size(rs.getLong("actual_size")); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setstorage_path(rs.getString("storage_path")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs .getString("storage_pool_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); entity.setread_rate(rs.getInt("read_rate")); entity.setwrite_rate(rs.getInt("write_rate")); return entity; } }; return getCallsHandler().executeRead("GetImageByImageGuid", mapper, parameterSource); } @Override public DiskImage getSnapshotById(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("image_guid", id); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setactual_size(rs.getLong("actual_size")); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setstorage_path(rs.getString("storage_path")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs .getString("storage_pool_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); entity.setread_rate(rs.getInt("read_rate")); entity.setwrite_rate(rs.getInt("write_rate")); return entity; } }; return getCallsHandler().executeRead("GetSnapshotByGuid", mapper, parameterSource); } @SuppressWarnings("unchecked") @Override public List<DiskImage> getAllForVm(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("vm_guid", id); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setactive((Boolean) rs.getObject("active")); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setactual_size(rs.getLong("actual_size")); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setvm_guid(Guid.createGuidFromString(rs .getString("vm_guid"))); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setstorage_path(rs.getString("storage_path")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs .getString("storage_pool_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); entity.setread_rate(rs.getInt("read_rate")); entity.setwrite_rate(rs.getInt("write_rate")); return entity; } }; return getCallsHandler().executeReadList("GetImagesByVmGuid", mapper, parameterSource); } @SuppressWarnings("unchecked") @Override public List<DiskImage> getAllSnapshotsForParent(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("parent_guid", id); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setactual_size(rs.getLong("actual_size")); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setstorage_path(rs.getString("storage_path")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs .getString("storage_pool_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); entity.setread_rate(rs.getInt("read_rate")); entity.setwrite_rate(rs.getInt("write_rate")); return entity; } }; return getCallsHandler().executeReadList("GetSnapshotByParentGuid", mapper, parameterSource); } @SuppressWarnings("unchecked") @Override public List<DiskImage> getAllSnapshotsForStorageDomain(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("storage_domain_id", id); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setactual_size(rs.getLong("actual_size")); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setstorage_path(rs.getString("storage_path")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs .getString("storage_pool_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); entity.setread_rate(rs.getInt("read_rate")); entity.setwrite_rate(rs.getInt("write_rate")); return entity; } }; return getCallsHandler().executeReadList("GetSnapshotsByStorageDomainId", mapper, parameterSource); } @SuppressWarnings("unchecked") @Override public List<DiskImage> getAllSnapshotsForVmSnapshot(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("vm_snapshot_id", id); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setactual_size(rs.getLong("actual_size")); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setstorage_path(rs.getString("storage_path")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs .getString("storage_pool_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); entity.setread_rate(rs.getInt("read_rate")); entity.setwrite_rate(rs.getInt("write_rate")); return entity; } }; return getCallsHandler().executeReadList("GetSnapshotsByVmSnapshotId", mapper, parameterSource); } @SuppressWarnings("unchecked") @Override public List<DiskImage> getAllSnapshotsForImageGroup(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("image_group_id", id); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setactual_size(rs.getLong("actual_size")); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setstorage_path(rs.getString("storage_path")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs .getString("storage_pool_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); entity.setread_rate(rs.getInt("read_rate")); entity.setwrite_rate(rs.getInt("write_rate")); return entity; } }; return getCallsHandler().executeReadList("GetSnapshotsByImageGroupId", mapper, parameterSource); } @SuppressWarnings("unchecked") @Override public List<DiskImage> getAll() { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource(); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setactual_size(rs.getLong("actual_size")); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setstorage_path(rs.getString("storage_path")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs .getString("storage_pool_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); entity.setread_rate(rs.getInt("read_rate")); entity.setwrite_rate(rs.getInt("write_rate")); return entity; } }; return getCallsHandler().executeReadList("GetAllFromImages", mapper, parameterSource); } @Override public void save(DiskImage image) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("creation_date", image.getcreation_date()) .addValue("description", image.getdescription()) .addValue("image_guid", image.getId()) .addValue("internal_drive_mapping", image.getinternal_drive_mapping()) .addValue("it_guid", image.getit_guid()) .addValue("size", image.getsize()) .addValue("ParentId", image.getParentId()) .addValue("imageStatus", image.getimageStatus()) .addValue("lastModified", image.getlastModified()) .addValue("app_list", image.getappList()) .addValue("storage_id", image.getstorage_id()) .addValue("vm_snapshot_id", image.getvm_snapshot_id()) .addValue("volume_type", image.getvolume_type()) .addValue("volume_format", image.getvolume_format()) .addValue("disk_type", image.getdisk_type()) .addValue("image_group_id", image.getimage_group_id()) .addValue("disk_interface", image.getdisk_interface()) .addValue("boot", image.getboot()) .addValue("wipe_after_delete", image.getwipe_after_delete()) .addValue("propagate_errors", image.getpropagate_errors()); getCallsHandler().executeModification("InsertImage", parameterSource); } @Override public void update(DiskImage image) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("creation_date", image.getcreation_date()) .addValue("description", image.getdescription()) .addValue("image_guid", image.getId()) .addValue("internal_drive_mapping", image.getinternal_drive_mapping()) .addValue("it_guid", image.getit_guid()) .addValue("size", image.getsize()) .addValue("ParentId", image.getParentId()) .addValue("imageStatus", image.getimageStatus()) .addValue("lastModified", image.getlastModified()) .addValue("app_list", image.getappList()) .addValue("storage_id", image.getstorage_id()) .addValue("vm_snapshot_id", image.getvm_snapshot_id()) .addValue("volume_type", image.getvolume_type()) .addValue("volume_format", image.getvolume_format()) .addValue("disk_type", image.getdisk_type()) .addValue("image_group_id", image.getimage_group_id()) .addValue("disk_interface", image.getdisk_interface()) .addValue("boot", image.getboot()) .addValue("wipe_after_delete", image.getwipe_after_delete()) .addValue("propagate_errors", image.getpropagate_errors()); getCallsHandler().executeModification("UpdateImage", parameterSource); } @Override public void remove(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("image_guid", id); getCallsHandler().executeModification("DeleteImage", parameterSource); } @Override public void removeAllForVmId(Guid id) { List<Guid> imagesList = new ArrayList<Guid>(); for (DiskImage image : getAllForVm(id)) { imagesList.add(image.getId()); } // TODO this will be fixed when we have ORM and object relationships for (Guid guid : imagesList) { DbFacade.getInstance().getImageVmMapDAO().remove(new image_vm_map_id(guid, id)); } } @Override public image_vm_pool_map getImageVmPoolMapByImageId(Guid imageId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("image_guid", imageId); ParameterizedRowMapper<image_vm_pool_map> mapper = new ParameterizedRowMapper<image_vm_pool_map>() { @Override public image_vm_pool_map mapRow(ResultSet rs, int rowNum) throws SQLException { image_vm_pool_map entity = new image_vm_pool_map(); entity.setimage_guid(Guid.createGuidFromString(rs.getString("image_guid"))); entity.setinternal_drive_mapping(rs.getString("internal_drive_mapping")); entity.setvm_guid(Guid.createGuidFromString(rs.getString("vm_guid"))); return entity; } }; return getCallsHandler().executeRead("Getimage_vm_pool_mapByimage_guid", mapper, parameterSource); } @Override public void addImageVmPoolMap(image_vm_pool_map map) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("image_guid", map.getimage_guid()).addValue("internal_drive_mapping", map.getinternal_drive_mapping()).addValue( "vm_guid", map.getvm_guid()); getCallsHandler().executeModification("Insertimage_vm_pool_map", parameterSource); } @Override public void removeImageVmPoolMap(Guid imageId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("image_guid", imageId); getCallsHandler().executeModification("Deleteimage_vm_pool_map", parameterSource); } @SuppressWarnings("unchecked") @Override public List<image_vm_pool_map> getImageVmPoolMapByVmId(Guid vmId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("vm_guid", vmId); ParameterizedRowMapper<image_vm_pool_map> mapper = new ParameterizedRowMapper<image_vm_pool_map>() { @Override public image_vm_pool_map mapRow(ResultSet rs, int rowNum) throws SQLException { image_vm_pool_map entity = new image_vm_pool_map(); entity.setimage_guid(Guid.createGuidFromString(rs.getString("image_guid"))); entity.setinternal_drive_mapping(rs.getString("internal_drive_mapping")); entity.setvm_guid(Guid.createGuidFromString(rs.getString("vm_guid"))); return entity; } }; return getCallsHandler().executeReadList("Getimage_vm_pool_mapByvm_guid", mapper, parameterSource); } @Override public stateless_vm_image_map getStatelessVmImageMapForImageId(Guid imageId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("image_guid", imageId); ParameterizedRowMapper<stateless_vm_image_map> mapper = new ParameterizedRowMapper<stateless_vm_image_map>() { @Override public stateless_vm_image_map mapRow(ResultSet rs, int rowNum) throws SQLException { stateless_vm_image_map entity = new stateless_vm_image_map(); entity.setimage_guid(Guid.createGuidFromString(rs.getString("image_guid"))); entity.setinternal_drive_mapping(rs.getString("internal_drive_mapping")); entity.setvm_guid(Guid.createGuidFromString(rs.getString("vm_guid"))); return entity; } }; return getCallsHandler().executeRead("Getstateless_vm_image_mapByimage_guid", mapper, parameterSource); } @Override public void addStatelessVmImageMap(stateless_vm_image_map map) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("image_guid", map.getimage_guid()).addValue("internal_drive_mapping", map.getinternal_drive_mapping()).addValue( "vm_guid", map.getvm_guid()); getCallsHandler().executeModification("Insertstateless_vm_image_map", parameterSource); } @Override public void removeStatelessVmImageMap(Guid imageId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("image_guid", imageId); getCallsHandler().executeModification("Deletestateless_vm_image_map", parameterSource); } @SuppressWarnings("unchecked") @Override public List<stateless_vm_image_map> getAllStatelessVmImageMapsForVm(Guid vmId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("vm_guid", vmId); ParameterizedRowMapper<stateless_vm_image_map> mapper = new ParameterizedRowMapper<stateless_vm_image_map>() { @Override public stateless_vm_image_map mapRow(ResultSet rs, int rowNum) throws SQLException { stateless_vm_image_map entity = new stateless_vm_image_map(); entity.setimage_guid(Guid.createGuidFromString(rs.getString("image_guid"))); entity.setinternal_drive_mapping(rs.getString("internal_drive_mapping")); entity.setvm_guid(Guid.createGuidFromString(rs.getString("vm_guid"))); return entity; } }; return getCallsHandler().executeReadList("Getstateless_vm_image_mapByvm_guid", mapper, parameterSource); } @Override public DiskImage getAncestor(Guid id) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("image_guid", id); ParameterizedRowMapper<DiskImage> mapper = new ParameterizedRowMapper<DiskImage>() { @Override public DiskImage mapRow(ResultSet rs, int rowNum) throws SQLException { DiskImage entity = new DiskImage(); entity.setcreation_date(DbFacadeUtils.fromDate(rs .getTimestamp("creation_date"))); entity.setdescription(rs.getString("description")); entity.setId(Guid.createGuidFromString(rs .getString("image_guid"))); entity.setinternal_drive_mapping(rs .getString("internal_drive_mapping")); entity.setit_guid(Guid.createGuidFromString(rs .getString("it_guid"))); entity.setsize(rs.getLong("size")); entity.setParentId(Guid.createGuidFromString(rs .getString("ParentId"))); entity.setimageStatus(ImageStatus.forValue(rs .getInt("imageStatus"))); entity.setlastModified(DbFacadeUtils.fromDate(rs .getTimestamp("lastModified"))); entity.setappList(rs.getString("app_list")); entity.setstorage_id(NGuid.createGuidFromString(rs .getString("storage_id"))); entity.setvm_snapshot_id(NGuid.createGuidFromString(rs .getString("vm_snapshot_id"))); entity.setvolume_type(VolumeType.forValue(rs .getInt("volume_type"))); entity.setvolume_format(VolumeFormat.forValue(rs .getInt("volume_format"))); entity.setdisk_type(DiskType.forValue(rs.getInt("disk_type"))); entity.setimage_group_id(Guid.createGuidFromString(rs .getString("image_group_id"))); entity.setdisk_interface(DiskInterface.forValue(rs .getInt("disk_interface"))); entity.setboot(rs.getBoolean("boot")); entity.setwipe_after_delete(rs.getBoolean("wipe_after_delete")); entity.setpropagate_errors(PropagateErrors.forValue(rs .getInt("propagate_errors"))); return entity; } }; return getCallsHandler().executeRead("GetAncestralImageByImageGuid", mapper, parameterSource); } }