package org.ovirt.engine.core.dao; import java.util.List; import javax.inject.Named; import javax.inject.Singleton; import org.ovirt.engine.core.common.businessentities.ArchitectureType; import org.ovirt.engine.core.common.businessentities.OvfEntityData; import org.ovirt.engine.core.common.businessentities.VmEntityType; import org.ovirt.engine.core.compat.Guid; import org.springframework.jdbc.core.RowMapper; @Named @Singleton public class UnregisteredOVFDataDaoImpl extends BaseDao implements UnregisteredOVFDataDao { @Override public List<OvfEntityData> getAllForStorageDomainByEntityType(Guid storageDomainId, VmEntityType entityType) { return getCallsHandler().executeReadList("GetAllOVFEntitiesForStorageDomainByEntityType", ovfEntityDataRowMapper, getCustomMapSqlParameterSource() .addValue("storage_domain_id", storageDomainId) .addValue("entity_type", entityType != null ? entityType.name() : null)); } @Override public List<OvfEntityData> getByEntityIdAndStorageDomain(Guid entityId, Guid storageDomainId) { return getCallsHandler().executeReadList("GetOVFDataByEntityIdAndStorageDomain", ovfEntityDataRowMapper, getCustomMapSqlParameterSource() .addValue("entity_guid", entityId) .addValue("storage_domain_id", storageDomainId)); } @Override public void removeEntity(Guid entityId, Guid storageDomainId) { getCallsHandler().executeModification("RemoveEntityFromUnregistered", getCustomMapSqlParameterSource() .addValue("entity_guid", entityId) .addValue("storage_domain_id", storageDomainId)); } @Override public void saveOVFData(OvfEntityData ovfEntityData) { // OVF data is not included since it is being updated in the stored procedure. getCallsHandler().executeModification("InsertOVFDataForEntities", getCustomMapSqlParameterSource() .addValue("entity_guid", ovfEntityData.getEntityId()) .addValue("entity_name", ovfEntityData.getEntityName()) .addValue("entity_type", ovfEntityData.getEntityType().name()) .addValue("architecture", ovfEntityData.getArchitecture() != null ? ovfEntityData.getArchitecture().getValue() : null) .addValue("lowest_comp_version", ovfEntityData.getLowestCompVersion() != null ? ovfEntityData.getLowestCompVersion() .getValue() : null) .addValue("storage_domain_id", ovfEntityData.getStorageDomainId()) .addValue("ovf_data", ovfEntityData.getOvfData()) .addValue("ovf_extra_data", ovfEntityData.getOvfExtraData())); } private static final RowMapper<OvfEntityData> ovfEntityDataRowMapper = (rs, rowNum) -> { OvfEntityData entity = new OvfEntityData(); entity.setEntityId(getGuid(rs, "entity_guid")); entity.setEntityName(rs.getString("entity_name")); entity.setEntityType(VmEntityType.valueOf(rs.getString("entity_type"))); entity.setArchitecture(ArchitectureType.forValue(rs.getInt("architecture"))); entity.setLowestCompVersion(new VersionRowMapper("lowest_comp_version").mapRow(rs, rowNum)); entity.setStorageDomainId(getGuid(rs, "storage_domain_id")); entity.setOvfData(rs.getString("ovf_data")); entity.setOvfExtraData(rs.getString("ovf_extra_data")); return entity; }; }