Repository: cloudstack
Updated Branches:
  refs/heads/master b6a1d11c9 -> 8b2efee61


Fixed coverity reported issues in UserVmManagerImpl


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8b2efee6
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8b2efee6
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8b2efee6

Branch: refs/heads/master
Commit: 8b2efee61c0104b4588e33340606c619b4cf3346
Parents: b6a1d11
Author: Rajani Karuturi <rajanikarut...@gmail.com>
Authored: Wed Jul 16 17:42:14 2014 +0530
Committer: Santhosh Edukulla <santhosh.eduku...@gmail.com>
Committed: Mon Jul 21 08:24:23 2014 +0530

----------------------------------------------------------------------
 server/src/com/cloud/vm/UserVmManagerImpl.java | 62 ++++++++++-----------
 1 file changed, 30 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8b2efee6/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java 
b/server/src/com/cloud/vm/UserVmManagerImpl.java
index 5b4f648..90f37ef 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -519,13 +519,14 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
         Account caller = CallContext.current().getCallingAccount();
         Long vmId = cmd.getId();
         UserVmVO userVm = _vmDao.findById(cmd.getId());
-        _vmDao.loadDetails(userVm);
 
         // Do parameters input validation
         if (userVm == null) {
             throw new InvalidParameterValueException("unable to find a virtual 
machine with id " + cmd.getId());
         }
 
+        _vmDao.loadDetails(userVm);
+
         VMTemplateVO template = 
_templateDao.findByIdIncludingRemoved(userVm.getTemplateId());
         if (template == null || !template.getEnablePassword()) {
             throw new InvalidParameterValueException("Fail to reset password 
for the virtual machine, the template is not password enabled");
@@ -682,7 +683,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
 
         VirtualMachineProfile vmProfile = new 
VirtualMachineProfileImpl(vmInstance);
 
-        if (template != null && template.getEnablePassword()) {
+        if (template.getEnablePassword()) {
             vmProfile.setParameter(VirtualMachineProfile.Param.VmPassword, 
password);
         }
 
@@ -855,7 +856,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
         if (customParameters.size() != 0) {
             if (serviceOffering.getCpu() == null) {
                 String cpuNumber = 
customParameters.get(UsageEventVO.DynamicParameters.cpuNumber.name());
-                if ((cpuNumber == null) || (NumbersUtil.parseInt(cpuNumber, 
-1) <= 0 || NumbersUtil.parseInt(cpuNumber, -1) > 2147483647)) {
+                if ((cpuNumber == null) || (NumbersUtil.parseInt(cpuNumber, 
-1) <= 0)) {
                     throw new InvalidParameterValueException("Invalid cpu 
cores value, specify a value between 1 and 2147483647");
                 }
             } else if 
(customParameters.containsKey(UsageEventVO.DynamicParameters.cpuNumber.name())) 
{
@@ -865,7 +866,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
 
             if (serviceOffering.getSpeed() == null) {
                 String cpuSpeed = 
customParameters.get(UsageEventVO.DynamicParameters.cpuSpeed.name());
-                if ((cpuSpeed == null) || (NumbersUtil.parseInt(cpuSpeed, -1) 
<= 0 || NumbersUtil.parseInt(cpuSpeed, -1) > 2147483647)) {
+                if ((cpuSpeed == null) || (NumbersUtil.parseInt(cpuSpeed, -1) 
<= 0)) {
                     throw new InvalidParameterValueException("Invalid cpu 
speed value, specify a value between 1 and 2147483647");
                 }
             } else if 
(customParameters.containsKey(UsageEventVO.DynamicParameters.cpuSpeed.name())) {
@@ -875,7 +876,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
 
             if (serviceOffering.getRamSize() == null) {
                 String memory = 
customParameters.get(UsageEventVO.DynamicParameters.memory.name());
-                if (memory == null || (NumbersUtil.parseInt(memory, -1) < 32 
|| NumbersUtil.parseInt(memory, -1) > 2147483647)) {
+                if (memory == null || (NumbersUtil.parseInt(memory, -1) < 32)) 
{
                     throw new InvalidParameterValueException("Invalid memory 
value, specify a value between 32 and 2147483647 MB");
                 }
             } else if 
(customParameters.containsKey(UsageEventVO.DynamicParameters.memory.name())) {
@@ -1151,9 +1152,8 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
         NicProfile existing = null;
         List<NicProfile> nicProfiles = _networkMgr.getNicProfiles(vmInstance);
         for (NicProfile nicProfile : nicProfiles) {
-            if (nicProfile.isDefaultNic() && nicProfile.getNetworkId() == 
existingdefaultnet.getId()) {
+            if (nicProfile.isDefaultNic() && existingdefaultnet != null && 
nicProfile.getNetworkId() == existingdefaultnet.getId()) {
                 existing = nicProfile;
-                continue;
             }
         }
 
@@ -1192,7 +1192,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
             existingVO.setDeviceId(existingID);
 
             nic = _nicDao.persist(nic);
-            existingVO = _nicDao.persist(existingVO);
+            _nicDao.persist(existingVO);
 
             newdefault = _networkModel.getDefaultNetworkForVm(vmId);
             if (newdefault.getId() == existingdefaultnet.getId()) {
@@ -1271,8 +1271,8 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
                 return null;
             }
 
-            for (String vmName : vmDiskStatsByName.keySet()) {
-                vmDiskStatsById.put(vmIds.get(vmNames.indexOf(vmName)), 
vmDiskStatsByName.get(vmName));
+            for (Map.Entry<String, List<VmDiskStatsEntry>> entry: 
vmDiskStatsByName.entrySet()) {
+                
vmDiskStatsById.put(vmIds.get(vmNames.indexOf(entry.getKey())), 
entry.getValue());
             }
         }
 
@@ -1443,8 +1443,8 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
         details.put(UsageEventVO.DynamicParameters.cpuSpeed.name(), 
serviceOffering.getSpeed().toString());
         details.put(UsageEventVO.DynamicParameters.memory.name(), 
serviceOffering.getRamSize().toString());
         List<UserVmDetailVO> detailList = new ArrayList<UserVmDetailVO>();
-        for (String key : details.keySet()) {
-            UserVmDetailVO detailVO = new UserVmDetailVO(vmId, key, 
details.get(key), true);
+        for (Map.Entry<String, String> entry: details.entrySet()) {
+            UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), 
entry.getValue(), true);
             detailList.add(detailVO);
         }
         _uservmDetailsDao.saveDetails(detailList);
@@ -1457,8 +1457,8 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
         details.remove(UsageEventVO.DynamicParameters.cpuSpeed.name());
         details.remove(UsageEventVO.DynamicParameters.memory.name());
         List<UserVmDetailVO> detailList = new ArrayList<UserVmDetailVO>();
-        for (String key : details.keySet()) {
-            UserVmDetailVO detailVO = new UserVmDetailVO(vmId, key, 
details.get(key), true);
+        for(Map.Entry<String, String> entry: details.entrySet()) {
+            UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), 
entry.getValue(), true);
             detailList.add(detailVO);
         }
         _uservmDetailsDao.saveDetails(detailList);
@@ -1491,8 +1491,8 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
                 return null;
             }
 
-            for (String vmName : vmStatsByName.keySet()) {
-                vmStatsById.put(vmIds.get(vmNames.indexOf(vmName)), 
vmStatsByName.get(vmName));
+            for (Map.Entry<String, VmStatsEntry> entry : 
vmStatsByName.entrySet()) {
+                vmStatsById.put(vmIds.get(vmNames.indexOf(entry.getKey())), 
entry.getValue());
             }
         }
 
@@ -1507,7 +1507,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
         Account caller = CallContext.current().getCallingAccount();
 
         // Verify input parameters
-        final UserVmVO vm = _vmDao.findById(vmId.longValue());
+        final UserVmVO vm = _vmDao.findById(vmId);
 
         if (vm == null) {
             throw new InvalidParameterValueException("unable to find a virtual 
machine with id " + vmId);
@@ -1679,7 +1679,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
             }
 
             // Only if vm is not expunged already, cleanup it's resources
-            if (vm != null && vm.getRemoved() == null) {
+            if (vm.getRemoved() == null) {
                 // Cleanup vm resources - all the PF/LB/StaticNat rules
                 // associated with vm
                 s_logger.debug("Starting cleaning up vm " + vm + " 
resources...");
@@ -1852,12 +1852,12 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
         Account caller = CallContext.current().getCallingAccount();
 
         // Input validation and permission checks
-        UserVmVO vmInstance = _vmDao.findById(id.longValue());
+        UserVmVO vmInstance = _vmDao.findById(id);
         if (vmInstance == null) {
             throw new InvalidParameterValueException("unable to find virtual 
machine with id " + id);
         }
 
-        _accountMgr.checkAccess(CallContext.current().getCallingAccount(), 
null, true, vmInstance);
+        _accountMgr.checkAccess(caller, null, true, vmInstance);
 
         //If the flag is specified and is changed
         if (isDisplayVm != null && isDisplayVm != vmInstance.isDisplayVm()) {
@@ -2075,7 +2075,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
         Long vmId = cmd.getId();
 
         // Verify input parameters
-        UserVmVO vmInstance = _vmDao.findById(vmId.longValue());
+        UserVmVO vmInstance = _vmDao.findById(vmId);
         if (vmInstance == null) {
             throw new InvalidParameterValueException("unable to find a virtual 
machine with id " + vmId);
         }
@@ -3014,10 +3014,8 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
                 }
 
                 _vmDao.persist(vm);
-                if (customParameters != null && customParameters.size() > 0) {
-                    for (String key : customParameters.keySet()) {
-                        vm.setDetail(key, customParameters.get(key));
-                    }
+                for (String key : customParameters.keySet()) {
+                    vm.setDetail(key, customParameters.get(key));
                 }
                 _vmDao.saveDetails(vm);
 
@@ -3103,7 +3101,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
                 }
             }
 
-            if (decodedUserData.length < 1) {
+            if (decodedUserData == null || decodedUserData.length < 1) {
                 throw new InvalidParameterValueException("User data is too 
short");
             }
         }
@@ -3511,9 +3509,6 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
             return vm;
         }
 
-        // _accountMgr.checkAccess(caller, null, true, vm);
-        User userCaller = _userDao.findById(userId);
-
         boolean status;
         State vmState = vm.getState();
 
@@ -4152,6 +4147,11 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
 
         long srcHostId = vm.getHostId();
         Host srcHost = _resourceMgr.getHost(srcHostId);
+
+        if(srcHost == null ){
+            throw new InvalidParameterValueException("Cannot migrate VM, there 
is not Host with id: " + srcHostId);
+        }
+
         // Check if src and destination hosts are valid and migrating to same 
host
         if (destinationHost.getId() == srcHostId) {
             throw new InvalidParameterValueException("Cannot migrate VM, VM is 
already present on this host, please" + " specify valid destination host to 
migrate the VM");
@@ -4697,9 +4697,7 @@ public class UserVmManagerImpl extends ManagerBase 
implements UserVmManager, Vir
             newVol = volumeMgr.allocateDuplicateVolume(root, null);
         }
         // 1. Save usage event and update resource count for user vm volumes
-        if (vm instanceof UserVm) {
-            _resourceLimitMgr.incrementResourceCount(vm.getAccountId(), 
ResourceType.volume);
-        }
+        _resourceLimitMgr.incrementResourceCount(vm.getAccountId(), 
ResourceType.volume);
         //2. Create Usage event for the newly created volume
         UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_VOLUME_CREATE, newVol.getAccountId(), 
newVol.getDataCenterId(), newVol.getId(), newVol.getName(), 
newVol.getDiskOfferingId(), templateId, newVol.getSize());
         _usageEventDao.persist(usageEvent);

Reply via email to