package org.ovirt.engine.core.dao; import java.util.List; import javax.inject.Named; import javax.inject.Singleton; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.VmInit; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacadeUtils; import org.ovirt.engine.core.utils.VmInitUtils; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; @Named @Singleton public class VmInitDaoImpl extends BaseDao implements VmInitDao { @Override public VmInit get(Guid id) { return getCallsHandler().executeRead("GetVmInitByVmId", vmInitRowMapper, getIdParamterSource(id)); } @Override public List<VmInit> getAll() { throw new UnsupportedOperationException(); } @Override public void save(VmInit entity) { getCallsHandler().executeModification("InsertVmInit", getFullParameterSource(entity)); } @Override public void update(VmInit entity) { getCallsHandler().executeModification("UpdateVmInit", getFullParameterSource(entity)); } @Override public void remove(Guid id) { getCallsHandler().executeModification("DeleteVmInit", getIdParamterSource(id)); } @Override public List<VmInit> getVmInitByIds(List<Guid> ids) { return getCallsHandler().executeReadList("GetVmInitByids", vmInitRowMapper, getCustomMapSqlParameterSource().addValue("vm_init_ids", StringUtils.join(ids, ','))); } private MapSqlParameterSource getIdParamterSource(Guid id) { return getCustomMapSqlParameterSource() .addValue("vm_id", id); } private MapSqlParameterSource getFullParameterSource(VmInit vmInit) { return getCustomMapSqlParameterSource() .addValue("vm_id", vmInit.getId()) .addValue("host_name", vmInit.getHostname()) .addValue("domain", vmInit.getDomain()) .addValue("authorized_keys", vmInit.getAuthorizedKeys()) .addValue("regenerate_keys", vmInit.getRegenerateKeys()) .addValue("dns_servers", vmInit.getDnsServers()) .addValue("dns_search_domains", vmInit.getDnsSearch()) .addValue("time_zone", vmInit.getTimeZone()) .addValue("networks", VmInitUtils.networkListToJson(vmInit.getNetworks())) .addValue("password", DbFacadeUtils.encryptPassword(vmInit.getRootPassword())) .addValue("winkey", vmInit.getWinKey()) .addValue("custom_script", vmInit.getCustomScript()) .addValue("input_locale", vmInit.getInputLocale()) .addValue("ui_language", vmInit.getUiLanguage()) .addValue("system_locale", vmInit.getSystemLocale()) .addValue("user_locale", vmInit.getUserLocale()) .addValue("user_name", vmInit.getUserName()) .addValue("active_directory_ou", vmInit.getActiveDirectoryOU()) .addValue("org_name", vmInit.getOrgName()); } private static final RowMapper<VmInit> vmInitRowMapper = (rs, rowNum) -> { final VmInit entity = new VmInit(); entity.setId(getGuidDefaultEmpty(rs, "vm_id")); entity.setHostname(rs.getString("host_name")); entity.setDomain(rs.getString("domain")); entity.setAuthorizedKeys(rs.getString("authorized_keys")); entity.setRegenerateKeys(rs.getBoolean("regenerate_keys")); entity.setTimeZone(rs.getString("time_zone")); entity.setNetworks(VmInitUtils.jsonNetworksToList(rs.getString("networks"))); entity.setRootPassword(DbFacadeUtils.decryptPassword(rs.getString("password"))); entity.setWinKey(rs.getString("winkey")); entity.setDnsServers(rs.getString("dns_servers")); entity.setDnsSearch(rs.getString("dns_search_domains")); entity.setCustomScript(rs.getString("custom_script")); entity.setInputLocale(rs.getString("input_locale")); entity.setUiLanguage(rs.getString("ui_language")); entity.setSystemLocale(rs.getString("system_locale")); entity.setUserLocale(rs.getString("user_locale")); entity.setUserName(rs.getString("user_name")); entity.setActiveDirectoryOU(rs.getString("active_directory_ou")); entity.setOrgName(rs.getString("org_name")); return entity; }; }