Coverity issues: Fixed conflicts

Signed-off-by: Daan Hoogland <daan@onecht.net>
This commit is contained in:
Santhosh Edukulla 2014-06-14 22:20:14 +05:30 committed by Daan Hoogland
parent 5cc5483a78
commit 61cf175f1c
5 changed files with 166 additions and 141 deletions

View File

@ -116,8 +116,6 @@ public class Upgrade421to430 implements DbUpgrade {
}
private void encryptLdapConfigParams(Connection conn) {
PreparedStatement pstmt = null;
String[][] ldapParams = { {"ldap.user.object", "inetOrgPerson", "Sets the object type of users within LDAP"},
{"ldap.username.attribute", "uid", "Sets the username attribute used within LDAP"}, {"ldap.email.attribute", "mail", "Sets the email attribute used within LDAP"},
{"ldap.firstname.attribute", "givenname", "Sets the firstname attribute used within LDAP"},
@ -129,77 +127,82 @@ public class Upgrade421to430 implements DbUpgrade {
+ "?) ON DUPLICATE KEY UPDATE category='Secure';";
try {
for (String[] ldapParam : ldapParams) {
String name = ldapParam[0];
String value = ldapParam[1];
String desc = ldapParam[2];
String encryptedValue = DBEncryptionUtil.encrypt(value);
pstmt = conn.prepareStatement(insertSql);
pstmt.setString(1, name);
pstmt.setBytes(2, encryptedValue.getBytes("UTF-8"));
pstmt.setString(3, desc);
pstmt.executeUpdate();
String port;
int portNumber = 0;
String hostname = null;
try ( PreparedStatement pstmt = conn.prepareStatement(insertSql);) {
for (String[] ldapParam : ldapParams) {
String name = ldapParam[0];
String value = ldapParam[1];
String desc = ldapParam[2];
String encryptedValue = DBEncryptionUtil.encrypt(value);
pstmt.setString(1, name);
pstmt.setBytes(2, encryptedValue.getBytes("UTF-8"));
pstmt.setString(3, desc);
pstmt.executeUpdate();
}
}catch (Exception e) {
s_logger.error("encryptLdapConfigParams:Exception:"+e.getMessage());
throw new CloudRuntimeException("encryptLdapConfigParams:Exception:"+e.getMessage(), e);
}
/**
* if encrypted, decrypt the ldap hostname and port and then update as they are not encrypted now.
*/
pstmt = conn.prepareStatement("SELECT conf.value FROM `cloud`.`configuration` conf WHERE conf.name='ldap.hostname'");
ResultSet resultSet = pstmt.executeQuery();
String hostname = null;
String port;
int portNumber = 0;
if (resultSet.next()) {
hostname = DBEncryptionUtil.decrypt(resultSet.getString(1));
try(PreparedStatement sel_ldap_hostname_pstmt = conn.prepareStatement("SELECT conf.value FROM `cloud`.`configuration` conf WHERE conf.name='ldap.hostname'");
ResultSet resultSet = sel_ldap_hostname_pstmt.executeQuery();) {
if (resultSet.next()) {
hostname = DBEncryptionUtil.decrypt(resultSet.getString(1));
}
}catch (Exception e) {
s_logger.error("encryptLdapConfigParams:Exception:"+e.getMessage());
throw new CloudRuntimeException("encryptLdapConfigParams:Exception:"+e.getMessage(), e);
}
pstmt = conn.prepareStatement("SELECT conf.value FROM `cloud`.`configuration` conf WHERE conf.name='ldap.port'");
resultSet = pstmt.executeQuery();
if (resultSet.next()) {
port = DBEncryptionUtil.decrypt(resultSet.getString(1));
if (StringUtils.isNotBlank(port)) {
portNumber = Integer.valueOf(port);
try( PreparedStatement sel_ldap_port_pstmt = conn.prepareStatement("SELECT conf.value FROM `cloud`.`configuration` conf WHERE conf.name='ldap.port'");
ResultSet resultSet = sel_ldap_port_pstmt.executeQuery();)
{
if (resultSet.next()) {
port = DBEncryptionUtil.decrypt(resultSet.getString(1));
if (StringUtils.isNotBlank(port)) {
portNumber = Integer.valueOf(port);
}
}
}catch (Exception e) {
s_logger.error("encryptLdapConfigParams:Exception:"+e.getMessage());
throw new CloudRuntimeException("encryptLdapConfigParams:Exception:"+e.getMessage(), e);
}
if (StringUtils.isNotBlank(hostname)) {
pstmt = conn.prepareStatement("INSERT INTO `cloud`.`ldap_configuration`(hostname, port) VALUES(?,?)");
pstmt.setString(1, hostname);
if (portNumber != 0) {
pstmt.setInt(2, portNumber);
} else {
pstmt.setNull(2, Types.INTEGER);
try(PreparedStatement insert_pstmt = conn.prepareStatement("INSERT INTO `cloud`.`ldap_configuration`(hostname, port) VALUES(?,?)");)
{
insert_pstmt.setString(1, hostname);
if (portNumber != 0) {
insert_pstmt.setInt(2, portNumber);
} else {
insert_pstmt.setNull(2, Types.INTEGER);
}
insert_pstmt.executeUpdate();
}catch (Exception e) {
s_logger.error("encryptLdapConfigParams:Exception:"+e.getMessage());
throw new CloudRuntimeException("encryptLdapConfigParams:Exception:"+e.getMessage(), e);
}
pstmt.executeUpdate();
}
} catch (SQLException e) {
throw new CloudRuntimeException("Unable to insert ldap configuration values ", e);
} catch (UnsupportedEncodingException e) {
throw new CloudRuntimeException("Unable to insert ldap configuration values ", e);
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (SQLException e) {
}
} catch (Exception e) {
s_logger.error("encryptLdapConfigParams:Exception:"+e.getMessage());
throw new CloudRuntimeException("encryptLdapConfigParams:Exception:"+e.getMessage(), e);
}
s_logger.debug("Done encrypting ldap Config values");
}
private void updateSystemVmTemplates(Connection conn) {
PreparedStatement pstmt = null;
ResultSet rs = null;
s_logger.debug("Updating System Vm template IDs");
try{
//Get all hypervisors in use
Set<Hypervisor.HypervisorType> hypervisorsListInUse = new HashSet<Hypervisor.HypervisorType>();
try {
pstmt = conn.prepareStatement("select distinct(hypervisor_type) from `cloud`.`cluster` where removed is null");
rs = pstmt.executeQuery();
try(PreparedStatement pstmt = conn.prepareStatement("select distinct(hypervisor_type) from `cloud`.`cluster` where removed is null");
ResultSet rs = pstmt.executeQuery();
) {
while(rs.next()){
switch (Hypervisor.HypervisorType.getType(rs.getString(1))) {
case XenServer: hypervisorsListInUse.add(Hypervisor.HypervisorType.XenServer);
@ -214,8 +217,9 @@ public class Upgrade421to430 implements DbUpgrade {
break;
}
}
} catch (SQLException e) {
throw new CloudRuntimeException("Error while listing hypervisors in use", e);
} catch (Exception e) {
s_logger.error("updateSystemVmTemplates:Exception:"+e.getMessage());
throw new CloudRuntimeException("updateSystemVmTemplates:Exception:"+e.getMessage(), e);
}
Map<Hypervisor.HypervisorType, String> NewTemplateNameList = new HashMap<Hypervisor.HypervisorType, String>(){
@ -256,77 +260,98 @@ public class Upgrade421to430 implements DbUpgrade {
for (Map.Entry<Hypervisor.HypervisorType, String> hypervisorAndTemplateName : NewTemplateNameList.entrySet()){
s_logger.debug("Updating " + hypervisorAndTemplateName.getKey() + " System Vms");
try {
//Get 4.3.0 system Vm template Id for corresponding hypervisor
pstmt = conn.prepareStatement("select id from `cloud`.`vm_template` where name = ? and removed is null order by id desc limit 1");
pstmt.setString(1, hypervisorAndTemplateName.getValue());
rs = pstmt.executeQuery();
if(rs.next()){
long templateId = rs.getLong(1);
rs.close();
pstmt.close();
// // Mark the old system templates as removed
try (PreparedStatement pstmt = conn.prepareStatement("select id from `cloud`.`vm_template` where name = ? and removed is null order by id desc limit 1");)
{
//Get 4.3.0 system Vm template Id for corresponding hypervisor
long templateId = -1;
pstmt.setString(1, hypervisorAndTemplateName.getValue());
try(ResultSet rs = pstmt.executeQuery();)
{
if(rs.next()) {
templateId = rs.getLong(1);
}
}catch (Exception e)
{
s_logger.error("updateSystemVmTemplates:Exception:"+e.getMessage());
throw new CloudRuntimeException("updateSystemVmTemplates:Exception:"+e.getMessage(), e);
}
// // Mark the old system templates as removed
// pstmt = conn.prepareStatement("UPDATE `cloud`.`vm_template` SET removed = now() WHERE hypervisor_type = ? AND type = 'SYSTEM' AND removed is null");
// pstmt.setString(1, hypervisorAndTemplateName.getKey().toString());
// pstmt.executeUpdate();
// pstmt.close();
// change template type to SYSTEM
pstmt = conn.prepareStatement("update `cloud`.`vm_template` set type='SYSTEM' where id = ?");
pstmt.setLong(1, templateId);
pstmt.executeUpdate();
pstmt.close();
// update templete ID of system Vms
pstmt = conn.prepareStatement("update `cloud`.`vm_instance` set vm_template_id = ? where type <> 'User' and hypervisor_type = ?");
pstmt.setLong(1, templateId);
pstmt.setString(2, hypervisorAndTemplateName.getKey().toString());
pstmt.executeUpdate();
pstmt.close();
// Change value of global configuration parameter router.template.* for the corresponding hypervisor
pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value = ? WHERE name = ?");
pstmt.setString(1, hypervisorAndTemplateName.getValue());
pstmt.setString(2, routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()));
pstmt.executeUpdate();
pstmt.close();
} else {
if (hypervisorsListInUse.contains(hypervisorAndTemplateName.getKey())){
throw new CloudRuntimeException("4.3.0 " + hypervisorAndTemplateName.getKey() + " SystemVm template not found. Cannot upgrade system Vms");
if (templateId != -1)
{
try(PreparedStatement templ_type_pstmt = conn.prepareStatement("update `cloud`.`vm_template` set type='SYSTEM' where id = ?");)
{
templ_type_pstmt.setLong(1, templateId);
templ_type_pstmt.executeUpdate();
}
catch (Exception e)
{
s_logger.error("updateSystemVmTemplates:Exception:"+e.getMessage());
throw new CloudRuntimeException("updateSystemVmTemplates:Exception:"+e.getMessage(), e);
}
// update templete ID of system Vms
try(PreparedStatement update_templ_id_pstmt = conn.prepareStatement("update `cloud`.`vm_instance` set vm_template_id = ? where type <> 'User' and hypervisor_type = ?");)
{
update_templ_id_pstmt.setLong(1, templateId);
update_templ_id_pstmt.setString(2, hypervisorAndTemplateName.getKey().toString());
update_templ_id_pstmt.executeUpdate();
}catch (Exception e)
{
s_logger.error("updateSystemVmTemplates:Exception:"+e.getMessage());
throw new CloudRuntimeException("updateSystemVmTemplates:Exception:"+e.getMessage(), e);
}
// Change value of global configuration parameter router.template.* for the corresponding hypervisor
try(PreparedStatement update_pstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value = ? WHERE name = ?");) {
update_pstmt.setString(1, hypervisorAndTemplateName.getValue());
update_pstmt.setString(2, routerTemplateConfigurationNames.get(hypervisorAndTemplateName.getKey()));
update_pstmt.executeUpdate();
}catch (Exception e)
{
s_logger.error("updateSystemVmTemplates:Exception:"+e.getMessage());
throw new CloudRuntimeException("updateSystemVmTemplates:Exception:"+e.getMessage(), e);
}
} else {
s_logger.warn("4.3.0 " + hypervisorAndTemplateName.getKey() + " SystemVm template not found. " + hypervisorAndTemplateName.getKey() + " hypervisor is not used, so not failing upgrade");
// Update the latest template URLs for corresponding hypervisor
pstmt = conn.prepareStatement("UPDATE `cloud`.`vm_template` SET url = ? , checksum = ? WHERE hypervisor_type = ? AND type = 'SYSTEM' AND removed is null order by id desc limit 1");
pstmt.setString(1, newTemplateUrl.get(hypervisorAndTemplateName.getKey()));
pstmt.setString(2, newTemplateChecksum.get(hypervisorAndTemplateName.getKey()));
pstmt.setString(3, hypervisorAndTemplateName.getKey().toString());
pstmt.executeUpdate();
pstmt.close();
if (hypervisorsListInUse.contains(hypervisorAndTemplateName.getKey())){
throw new CloudRuntimeException("4.3.0 " + hypervisorAndTemplateName.getKey() + " SystemVm template not found. Cannot upgrade system Vms");
} else {
s_logger.warn("4.3.0 " + hypervisorAndTemplateName.getKey() + " SystemVm template not found. " + hypervisorAndTemplateName.getKey() + " hypervisor is not used, so not failing upgrade");
// Update the latest template URLs for corresponding hypervisor
try(PreparedStatement update_templ_url_pstmt = conn.prepareStatement("UPDATE `cloud`.`vm_template` SET url = ? , checksum = ? WHERE hypervisor_type = ? AND type = 'SYSTEM' AND removed is null order by id desc limit 1");) {
update_templ_url_pstmt.setString(1, newTemplateUrl.get(hypervisorAndTemplateName.getKey()));
update_templ_url_pstmt.setString(2, newTemplateChecksum.get(hypervisorAndTemplateName.getKey()));
update_templ_url_pstmt.setString(3, hypervisorAndTemplateName.getKey().toString());
update_templ_url_pstmt.executeUpdate();
}catch (Exception e)
{
s_logger.error("updateSystemVmTemplates:Exception:"+e.getMessage());
throw new CloudRuntimeException("updateSystemVmTemplates:Exception:"+e.getMessage(), e);
}
}
}
}
} catch (SQLException e) {
s_logger.error("updateSystemVmTemplates:Exception:"+e.getMessage());
throw new CloudRuntimeException("Error while updating "+ hypervisorAndTemplateName.getKey() +" systemVm template", e);
}
}
s_logger.debug("Updating System Vm Template IDs Complete");
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
} catch (SQLException e) {
}
}
catch (Exception e) {
s_logger.error("updateSystemVmTemplates:Exception:"+e.getMessage());
throw new CloudRuntimeException("updateSystemVmTemplates:Exception:"+e.getMessage(), e);
}
}
private void encryptImageStoreDetails(Connection conn) {
s_logger.debug("Encrypting image store details");
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement("select id, value from `cloud`.`image_store_details` where name = 'key' or name = 'secretkey'");
rs = pstmt.executeQuery();
try (PreparedStatement sel_image_store_det_pstmt = conn.prepareStatement("select id, value from `cloud`.`image_store_details` where name = 'key' or name = 'secretkey'");
ResultSet rs = sel_image_store_det_pstmt.executeQuery();)
{
while (rs.next()) {
long id = rs.getLong(1);
String value = rs.getString(2);
@ -334,26 +359,21 @@ public class Upgrade421to430 implements DbUpgrade {
continue;
}
String encryptedValue = DBEncryptionUtil.encrypt(value);
pstmt = conn.prepareStatement("update `cloud`.`image_store_details` set value=? where id=?");
pstmt.setBytes(1, encryptedValue.getBytes("UTF-8"));
pstmt.setLong(2, id);
pstmt.executeUpdate();
try( PreparedStatement update_image_store_det_pstmt = conn.prepareStatement("update `cloud`.`image_store_details` set value=? where id=?");) {
update_image_store_det_pstmt.setBytes(1, encryptedValue.getBytes("UTF-8"));
update_image_store_det_pstmt.setLong(2, id);
update_image_store_det_pstmt.executeUpdate();
}catch (UnsupportedEncodingException e) {
s_logger.error("encryptImageStoreDetails:Exception:" + e.getMessage());
throw new CloudRuntimeException("encryptImageStoreDetails:Exception:" + e.getMessage(),e);
}
}
} catch (SQLException e) {
s_logger.error("encryptImageStoreDetails:Exception:"+e.getMessage());
throw new CloudRuntimeException("Unable encrypt image_store_details values ", e);
} catch (UnsupportedEncodingException e) {
} catch (Exception e) {
s_logger.error("encryptImageStoreDetails:Exception:"+e.getMessage());
throw new CloudRuntimeException("Unable encrypt image_store_details values ", e);
} finally {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
} catch (SQLException e) {
}
}
s_logger.debug("Done encrypting image_store_details");
}

View File

@ -183,7 +183,7 @@ public class VMInstanceVO implements VirtualMachine, FiniteStateObject<State, Vi
public VMInstanceVO(long id, long serviceOfferingId, String name, String instanceName, Type type, Long vmTemplateId, HypervisorType hypervisorType, long guestOSId,
long domainId, long accountId, boolean haEnabled) {
this.id = id;
hostName = name != null ? name : uuid;
this.hostName = name != null ? name : uuid;
if (vmTemplateId != null) {
templateId = vmTemplateId;
}
@ -191,19 +191,19 @@ public class VMInstanceVO implements VirtualMachine, FiniteStateObject<State, Vi
this.type = type;
this.guestOSId = guestOSId;
this.haEnabled = haEnabled;
vncPassword = Long.toHexString(new Random().nextLong());
state = State.Stopped;
this.vncPassword = Long.toHexString(new Random().nextLong());
this.state = State.Stopped;
this.accountId = accountId;
this.domainId = domainId;
this.serviceOfferingId = serviceOfferingId;
this.hypervisorType = hypervisorType;
limitCpuUse = false;
this.limitCpuUse = false;
}
public VMInstanceVO(long id, long serviceOfferingId, String name, String instanceName, Type type, Long vmTemplateId, HypervisorType hypervisorType, long guestOSId,
long domainId, long accountId, boolean haEnabled, boolean limitResourceUse, Long diskOfferingId) {
this(id, serviceOfferingId, name, instanceName, type, vmTemplateId, hypervisorType, guestOSId, domainId, accountId, haEnabled);
limitCpuUse = limitResourceUse;
this.limitCpuUse = limitResourceUse;
this.diskOfferingId = diskOfferingId;
}

View File

@ -1075,7 +1075,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
srcFile = new QemuImgFile(sourcePath, sourceFormat);
try {
Map<String, String> info = qemu.info(srcFile);
String backingFile = info.get(new String("backing_file"));
String backing_file_str = "backing_file";
String backingFile = info.get(backing_file_str);
// qcow2 templates can just be copied into place
if (sourceFormat.equals(destFormat) && backingFile == null && sourcePath.endsWith(".qcow2")) {
String result = Script.runSimpleBashScript("cp -f " + sourcePath + " " + destPath, timeout);

View File

@ -609,7 +609,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
if (router.isStopPending()) {
s_logger.info("Clear the stop pending flag of router " + router.getHostName() + " after stop router successfully");
router.setStopPending(false);
router = _routerDao.persist(router);
_routerDao.persist(router);
virtualRouter.setStopPending(false);
}
return virtualRouter;
@ -658,7 +658,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
_accountMgr.checkAccess(caller, null, true, router);
// Can reboot domain router only in Running state
if (router == null || router.getState() != State.Running) {
if (router.getState() != State.Running) {
s_logger.warn("Unable to reboot, virtual router is not in the right state " + router.getState());
throw new ResourceUnavailableException("Unable to reboot domR, it is not in right state " + router.getState(), DataCenter.class, router.getDataCenterId());
}
@ -1113,7 +1113,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
for (final Site2SiteVpnConnectionVO conn : conns) {
final Site2SiteVpnConnectionVO lock = _s2sVpnConnectionDao.acquireInLockTable(conn.getId());
if (lock == null) {
throw new CloudRuntimeException("Unable to acquire lock on " + lock);
throw new CloudRuntimeException("updateSite2SiteVpnConnectionState: Unable to acquire lock");
}
try {
if (conn.getState() != Site2SiteVpnConnection.State.Connected && conn.getState() != Site2SiteVpnConnection.State.Disconnected) {
@ -1415,7 +1415,8 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
GetRouterAlertsCommand command = null;
if (opRouterMonitorServiceVO == null) {
command = new GetRouterAlertsCommand(new String("1970-01-01 00:00:00")); // To avoid sending null value
String date_str = "1970-01-01 00:00:00";
command = new GetRouterAlertsCommand(date_str); // To avoid sending null value
} else {
command = new GetRouterAlertsCommand(opRouterMonitorServiceVO.getLastAlertTimestamp());
}
@ -2846,7 +2847,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
GetDomRVersionAnswer versionAnswer = (GetDomRVersionAnswer)cmds.getAnswer("getDomRVersion");
router.setTemplateVersion(versionAnswer.getTemplateVersion());
router.setScriptsVersion(versionAnswer.getScriptsVersion());
router = _routerDao.persist(router, guestNetworks);
_routerDao.persist(router, guestNetworks);
}
return result;

View File

@ -162,15 +162,18 @@ public class NetUtils {
Pattern pattern = Pattern.compile("\\s*0.0.0.0\\s*0.0.0.0\\s*(\\S*)\\s*(\\S*)\\s*");
try {
Process result = Runtime.getRuntime().exec("route print -4");
BufferedReader output = new BufferedReader(new InputStreamReader(result.getInputStream()));
try(BufferedReader output = new BufferedReader(new InputStreamReader(result.getInputStream()));) {
String line = output.readLine();
while (line != null) {
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
return matcher.group(2);
String line = output.readLine();
while (line != null) {
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
return matcher.group(2);
}
line = output.readLine();
}
line = output.readLine();
}catch (Exception e) {
s_logger.error("getDefaultHostIp:Exception:"+e.getMessage());
}
} catch (Exception e) {
}