You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2014/01/29 21:59:32 UTC

[01/11] git commit: updated refs/heads/4.3 to d6bbfbb

Updated Branches:
  refs/heads/4.3 2311528f1 -> d6bbfbbc5


Backport findbugs configuration to 4.3 so we can run a findbugs report in jenkins.


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

Branch: refs/heads/4.3
Commit: da80eafec9d9d419087624bd9e68bebda9a8fb41
Parents: 2311528
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Sat Jan 25 10:51:10 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:26:45 2014 +0100

----------------------------------------------------------------------
 pom.xml | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/da80eafe/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 68d8dad..7af7139 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,6 +87,7 @@
     <cs.daemon.version>1.0.10</cs.daemon.version>
     <cs.jna.version>4.0.0</cs.jna.version>
     <cs.checkstyle.version>2.10</cs.checkstyle.version>
+    <cs.findbugs.version>2.5.3</cs.findbugs.version>
   </properties>
 
   <distributionManagement>
@@ -444,6 +445,21 @@
     </testResources>
     <outputDirectory>${basedir}/${cs.target.dir}/classes</outputDirectory>
     <testOutputDirectory>${basedir}/${cs.target.dir}/test-classes</testOutputDirectory>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>findbugs-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>cloudstack-findbugs</id>
+            <phase>none</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
     <pluginManagement>
       <plugins>
         <plugin>
@@ -712,6 +728,25 @@
             </formats>
           </configuration>
         </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>findbugs-maven-plugin</artifactId>
+          <version>${cs.findbugs.version}</version>
+          <configuration>
+            <effort>Max</effort>
+            <threshold>High</threshold>
+            <xmlOutput>true</xmlOutput>
+            <failOnError>false</failOnError>
+          </configuration>
+          <executions>
+            <execution>
+              <id>cloudstack-findbugs</id>
+              <goals>
+                <goal>check</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
       </plugins>
     </pluginManagement>
   </build>
@@ -771,5 +806,23 @@
         <module>vmware-base</module>
       </modules>
     </profile>
+    <profile>
+      <id>enablefindbugs</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>findbugs-maven-plugin</artifactId>
+              <executions>
+                <execution>
+                  <id>cloudstack-findbugs</id>
+                  <phase>process-classes</phase>
+                  <inherited>true</inherited>
+                </execution>
+              </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>  
   </profiles>
 </project>


[11/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
findbugs: nullpointer guards and wrappertype comparisons

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

Branch: refs/heads/4.3
Commit: d6bbfbbc59ee3956fd0e1c45d9d73a2f97d33213
Parents: dcda79e
Author: Daan Hoogland <da...@onecht.net>
Authored: Mon Jan 27 00:23:57 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:44:06 2014 +0100

----------------------------------------------------------------------
 .../resourcelimit/ResourceLimitManagerImpl.java | 18 ++++----
 .../com/cloud/storage/VolumeApiServiceImpl.java | 44 ++++++++++----------
 server/src/com/cloud/vm/UserVmManagerImpl.java  | 12 +++---
 3 files changed, 36 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d6bbfbbc/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java b/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
index fc9099d..0b86c0c 100755
--- a/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
+++ b/server/src/com/cloud/resourcelimit/ResourceLimitManagerImpl.java
@@ -17,6 +17,7 @@
 package com.cloud.resourcelimit;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.EnumMap;
 import java.util.List;
 import java.util.Map;
@@ -29,6 +30,9 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
+
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
@@ -38,8 +42,6 @@ import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.SnapshotDataStoreVO;
 import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
 
 import com.cloud.alert.AlertManager;
 import com.cloud.configuration.Config;
@@ -72,12 +74,10 @@ import com.cloud.service.ServiceOfferingVO;
 import com.cloud.service.dao.ServiceOfferingDao;
 import com.cloud.storage.DataStoreRole;
 import com.cloud.storage.SnapshotVO;
-import com.cloud.storage.VMTemplateHostVO;
 import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
 import com.cloud.storage.VMTemplateVO;
 import com.cloud.storage.dao.SnapshotDao;
 import com.cloud.storage.dao.VMTemplateDao;
-import com.cloud.storage.dao.VMTemplateHostDao;
 import com.cloud.storage.dao.VolumeDao;
 import com.cloud.storage.dao.VolumeDaoImpl.SumCount;
 import com.cloud.user.Account;
@@ -95,12 +95,12 @@ import com.cloud.utils.db.GenericSearchBuilder;
 import com.cloud.utils.db.JoinBuilder;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.TransactionCallback;
-import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
-import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.db.SearchCriteria.Func;
 import com.cloud.utils.db.SearchCriteria.Op;
 import com.cloud.utils.db.Transaction;
+import com.cloud.utils.db.TransactionCallback;
+import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
+import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.vm.UserVmVO;
 import com.cloud.vm.VirtualMachine;
@@ -108,8 +108,6 @@ import com.cloud.vm.VirtualMachine.State;
 import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.VMInstanceDao;
 
-import java.util.Arrays;
-
 @Component
 @Local(value = { ResourceLimitService.class })
 public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLimitService {
@@ -871,7 +869,7 @@ public class ResourceLimitManagerImpl extends ManagerBase implements ResourceLim
                 }
                 _resourceCountDao.setResourceCount(accountId, ResourceOwnerType.Account, type, (newCount == null) ? 0 : newCount.longValue());
         
-                if (oldCount != newCount) {
+                if (!Long.valueOf(oldCount).equals(newCount)) {
                     s_logger.info("Discrepency in the resource count " + "(original count=" + oldCount + " correct count = " +
                             newCount + ") for type " + type + " for account ID " + accountId + " is fixed during resource count recalculation.");
                 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d6bbfbbc/server/src/com/cloud/storage/VolumeApiServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
index f46f1e9..bc319b9 100644
--- a/server/src/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
@@ -445,29 +445,29 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
         return Transaction.execute(new TransactionCallback<VolumeVO>() {
             @Override
             public VolumeVO doInTransaction(TransactionStatus status) {
-        VolumeVO volume = new VolumeVO(volumeName, zoneId, -1, -1, -1, new Long(-1), null, null, 0, Volume.Type.DATADISK);
-        volume.setPoolId(null);
-        volume.setDataCenterId(zoneId);
-        volume.setPodId(null);
-        volume.setAccountId(owner.getAccountId());
-        volume.setDomainId(owner.getDomainId());
-        long diskOfferingId = _diskOfferingDao.findByUniqueName("Cloud.com-Custom").getId();
-        volume.setDiskOfferingId(diskOfferingId);
-        // volume.setSize(size);
-        volume.setInstanceId(null);
-        volume.setUpdated(new Date());
-        volume.setDomainId((owner == null) ? Domain.ROOT_DOMAIN : owner.getDomainId());
-        volume.setFormat(ImageFormat.valueOf(format));
-        volume = _volsDao.persist(volume);
-        CallContext.current().setEventDetails("Volume Id: " + volume.getId());
+                VolumeVO volume = new VolumeVO(volumeName, zoneId, -1, -1, -1, new Long(-1), null, null, 0, Volume.Type.DATADISK);
+                volume.setPoolId(null);
+                volume.setDataCenterId(zoneId);
+                volume.setPodId(null);
+                volume.setAccountId((owner == null) ? null : owner.getAccountId());
+                volume.setDomainId((owner == null) ? Domain.ROOT_DOMAIN : owner.getDomainId());
+                long diskOfferingId = _diskOfferingDao.findByUniqueName("Cloud.com-Custom").getId();
+                volume.setDiskOfferingId(diskOfferingId);
+                // volume.setSize(size);
+                volume.setInstanceId(null);
+                volume.setUpdated(new Date());
+                volume.setDomainId((owner == null) ? Domain.ROOT_DOMAIN : owner.getDomainId());
+                volume.setFormat(ImageFormat.valueOf(format));
+                volume = _volsDao.persist(volume);
+                CallContext.current().setEventDetails("Volume Id: " + volume.getId());
+
+                // Increment resource count during allocation; if actual creation fails,
+                // decrement it
+                _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.volume);
+                _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.secondary_storage, UriUtils.getRemoteSize(url));
 
-        // Increment resource count during allocation; if actual creation fails,
-        // decrement it
-        _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.volume);
-        _resourceLimitMgr.incrementResourceCount(volume.getAccountId(), ResourceType.secondary_storage, UriUtils.getRemoteSize(url));
-
-        return volume;
-    }
+                return volume;
+            }
         });
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d6bbfbbc/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 ea38d12..363c663 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -34,6 +34,9 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.commons.codec.binary.Base64;
+import org.apache.log4j.Logger;
+
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.affinity.AffinityGroupService;
@@ -79,8 +82,6 @@ import org.apache.cloudstack.managed.context.ManagedContextRunnable;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 import org.apache.cloudstack.storage.to.TemplateObjectTO;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.log4j.Logger;
 
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.Answer;
@@ -455,7 +456,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
     protected boolean _dailyOrHourly = false;
     private int capacityReleaseInterval;
 
-    protected String _name;
     protected String _instance;
     protected String _zone;
     protected boolean _instanceNameFlag;
@@ -1315,7 +1315,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
         _accountMgr.checkAccess(caller, null, true, vmInstance);
 
         //Check if its a scale "up"
-        ServiceOfferingVO newServiceOffering = (ServiceOfferingVO) _offeringDao.findById(newServiceOfferingId);
+        ServiceOfferingVO newServiceOffering = _offeringDao.findById(newServiceOfferingId);
         if (newServiceOffering.isDynamic()) {
             newServiceOffering.setDynamicFlag(true);
             validateCustomParameters(newServiceOffering, customParameters);
@@ -4287,13 +4287,13 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
 
         //if hosts are dedicated to different account/domains, raise an alert
         if (srcExplDedicated && destExplDedicated) {
-            if((accountOfDedicatedHost(srcHost) != null) && (accountOfDedicatedHost(srcHost)!= accountOfDedicatedHost(destHost))) {
+            if (!((accountOfDedicatedHost(srcHost) == null) || (accountOfDedicatedHost(srcHost).equals(accountOfDedicatedHost(destHost))))) {
                 String msg = "VM is being migrated from host " + srcHost.getName() + " explicitly dedicated to account " + accountOfDedicatedHost(srcHost) +
                         " to host " + destHost.getName() + " explicitly dedicated to account " + accountOfDedicatedHost(destHost);
                 _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_USERVM, vm.getDataCenterId(), vm.getPodIdToDeployIn(), msg, msg);
                 s_logger.warn(msg);
             }
-            if((domainOfDedicatedHost(srcHost) != null) && (domainOfDedicatedHost(srcHost)!= domainOfDedicatedHost(destHost))) {
+            if (!((domainOfDedicatedHost(srcHost) == null) || (domainOfDedicatedHost(srcHost).equals(domainOfDedicatedHost(destHost))))) {
                 String msg = "VM is being migrated from host " + srcHost.getName() + " explicitly dedicated to domain " + domainOfDedicatedHost(srcHost) +
                         " to host " + destHost.getName() + " explicitly dedicated to domain " + domainOfDedicatedHost(destHost);
                 _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_USERVM, vm.getDataCenterId(), vm.getPodIdToDeployIn(), msg, msg);


[09/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
findbugs: null-checks

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

Branch: refs/heads/4.3
Commit: 1fb32b58eb76d0c963bee7cc238d0f37a6dd8393
Parents: eb239b9
Author: Daan Hoogland <da...@onecht.net>
Authored: Sun Jan 26 16:35:48 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:39:11 2014 +0100

----------------------------------------------------------------------
 server/src/com/cloud/acl/DomainChecker.java | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1fb32b58/server/src/com/cloud/acl/DomainChecker.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/acl/DomainChecker.java b/server/src/com/cloud/acl/DomainChecker.java
index 7b47bae..87ff27a 100755
--- a/server/src/com/cloud/acl/DomainChecker.java
+++ b/server/src/com/cloud/acl/DomainChecker.java
@@ -19,11 +19,12 @@ package com.cloud.acl;
 import javax.ejb.Local;
 import javax.inject.Inject;
 
+import org.springframework.stereotype.Component;
+
 import org.apache.cloudstack.acl.ControlledEntity;
 import org.apache.cloudstack.acl.SecurityChecker;
 import org.apache.cloudstack.affinity.AffinityGroup;
 import org.apache.cloudstack.api.BaseCmd;
-import org.springframework.stereotype.Component;
 
 import com.cloud.dc.DataCenter;
 import com.cloud.dc.DedicatedResourceVO;
@@ -145,7 +146,7 @@ public class DomainChecker extends AdapterBase implements SecurityChecker {
                     if (caller.getId() != entity.getAccountId()) {
                         throw new PermissionDeniedException(caller + " does not have permission to operate with resource " + entity);
                     }
-                }  
+                }
             }
         }
         
@@ -166,7 +167,7 @@ public class DomainChecker extends AdapterBase implements SecurityChecker {
 			//admin has all permissions
             if (account.getType() == Account.ACCOUNT_TYPE_ADMIN) {
 				return true;
-			}		
+			}
 			//if account is normal user or domain admin
 			//check if account's domain is a child of zone's domain (Note: This is made consistent with the list command for disk offering)
             else if (account.getType() == Account.ACCOUNT_TYPE_NORMAL || account.getType() == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN || account.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN) {
@@ -192,7 +193,7 @@ public class DomainChecker extends AdapterBase implements SecurityChecker {
 		}
 		//not found
 		return false;
-	}	
+	}
 
 	@Override
     public boolean checkAccess(Account account, ServiceOffering so) throws PermissionDeniedException {
@@ -202,7 +203,7 @@ public class DomainChecker extends AdapterBase implements SecurityChecker {
 			//admin has all permissions
             if (account.getType() == Account.ACCOUNT_TYPE_ADMIN) {
 				return true;
-			}		
+			}
 			//if account is normal user or domain admin
 			//check if account's domain is a child of zone's domain (Note: This is made consistent with the list command for service offering)
             else if (account.getType() == Account.ACCOUNT_TYPE_NORMAL || account.getType() == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN || account.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN) {
@@ -228,7 +229,7 @@ public class DomainChecker extends AdapterBase implements SecurityChecker {
 		}
 		//not found
 		return false;
-	}	
+	}
     
 	@Override
 	public boolean checkAccess(Account account, DataCenter zone) throws PermissionDeniedException {
@@ -238,7 +239,7 @@ public class DomainChecker extends AdapterBase implements SecurityChecker {
 			//admin has all permissions
             if (account.getType() == Account.ACCOUNT_TYPE_ADMIN) {
 				return true;
-			}		
+			}
 			//if account is normal user
 			//check if account's domain is a child of zone's domain
             else if (account.getType() == Account.ACCOUNT_TYPE_NORMAL || account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
@@ -298,7 +299,9 @@ public class DomainChecker extends AdapterBase implements SecurityChecker {
 		    			}
 		    		}
 		    		//didn't find in upper tree
-                    if (zoneDomainRecord.getPath().contains(accountDomainRecord.getPath())) {
+                    if (zoneDomainRecord != null &&
+                            accountDomainRecord != null &&
+                            zoneDomainRecord.getPath().contains(accountDomainRecord.getPath())) {
 		    			return true;
 		    		}
 				}


[10/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
Findbugs: different issues solved

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

Branch: refs/heads/4.3
Commit: dcda79e2c02fda4e0fe52f61bf61712742e1f0db
Parents: 1fb32b5
Author: Daan Hoogland <da...@onecht.net>
Authored: Sun Jan 26 23:14:17 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:40:21 2014 +0100

----------------------------------------------------------------------
 .../com/cloud/api/query/vo/UserVmJoinVO.java    | 23 ++++---
 .../com/cloud/consoleproxy/AgentHookBase.java   | 27 +++++----
 .../consoleproxy/ConsoleProxyManagerImpl.java   |  6 +-
 .../src/com/cloud/dc/DedicatedResourceVO.java   | 25 ++++++--
 .../com/cloud/network/IpAddressManagerImpl.java | 64 +++++++++++---------
 .../src/com/cloud/network/NetworkModelImpl.java | 11 ++--
 .../cloud/network/guru/ControlNetworkGuru.java  |  8 +--
 .../com/cloud/network/vpc/VpcManagerImpl.java   |  4 +-
 .../com/cloud/template/TemplateManagerImpl.java |  4 +-
 9 files changed, 97 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/api/query/vo/UserVmJoinVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/vo/UserVmJoinVO.java b/server/src/com/cloud/api/query/vo/UserVmJoinVO.java
index 25079ca..2bb0783 100644
--- a/server/src/com/cloud/api/query/vo/UserVmJoinVO.java
+++ b/server/src/com/cloud/api/query/vo/UserVmJoinVO.java
@@ -35,6 +35,7 @@ import com.cloud.server.ResourceTag.ResourceObjectType;
 import com.cloud.storage.Storage.StoragePoolType;
 import com.cloud.storage.Volume;
 import com.cloud.utils.db.GenericDao;
+import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachine.State;
 
@@ -47,10 +48,10 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
     private long id;
 
     @Column(name="name", updatable=false, nullable=false, length=255)
-    private String name = null;
+    private final String name = null;
 
     @Column(name="display_name", updatable=false, nullable=false, length=255)
-    private String displayName = null;
+    private final String displayName = null;
 
     @Column(name="account_id")
     private long accountId;
@@ -59,7 +60,7 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
     private String accountUuid;
 
     @Column(name="account_name")
-    private String accountName = null;
+    private final String accountName = null;
 
     @Column(name="account_type")
     private short accountType;
@@ -71,10 +72,10 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
     private String domainUuid;
 
     @Column(name="domain_name")
-    private String domainName = null;
+    private final String domainName = null;
 
     @Column(name="domain_path")
-    private String domainPath = null;
+    private final String domainPath = null;
 
     @Column(name="instance_group_id")
     private long instanceGroupId;
@@ -96,7 +97,7 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
      */
     @Enumerated(value=EnumType.STRING)
     @Column(name="state", updatable=true, nullable=false, length=32)
-    private State state = null;
+    private final State state = null;
 
     @Column(name=GenericDao.CREATED_COLUMN)
     private Date created;
@@ -149,7 +150,7 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
     private String dataCenterUuid;
 
     @Column(name="data_center_name")
-    private String dataCenterName = null;
+    private final String dataCenterName = null;
 
     @Column(name="security_group_enabled")
     private boolean securityGroupEnabled;
@@ -225,7 +226,7 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
     private String volume_uuid;
 
     @Column(name = "volume_device_id")
-    private Long volumeDeviceId = null;
+    private final Long volumeDeviceId = null;
 
     @Column(name = "volume_type")
     @Enumerated(EnumType.STRING)
@@ -726,9 +727,11 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
     }
 
     public String getDetail(String name) {
-        assert (details != null) : "Did you forget to load the details?";
+        if (details == null) {
+            throw new CloudRuntimeException("No details to get. Did you forget to load the details?");
+        }
 
-        return details != null ? details.get(name) : null;
+        return details.get(name);
     }
 
     public String getUserData() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/consoleproxy/AgentHookBase.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/consoleproxy/AgentHookBase.java b/server/src/com/cloud/consoleproxy/AgentHookBase.java
index aa9e4f8..660d1f2 100644
--- a/server/src/com/cloud/consoleproxy/AgentHookBase.java
+++ b/server/src/com/cloud/consoleproxy/AgentHookBase.java
@@ -22,6 +22,11 @@ import java.util.Random;
 
 import org.apache.log4j.Logger;
 
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.api.AgentControlAnswer;
 import com.cloud.agent.api.Answer;
@@ -44,14 +49,10 @@ import com.cloud.server.ManagementServer;
 import com.cloud.servlet.ConsoleProxyPasswordBasedEncryptor;
 import com.cloud.servlet.ConsoleProxyServlet;
 import com.cloud.utils.Ternary;
+import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.dao.VMInstanceDao;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-
 /**
  * Utility class to manage interactions with agent-based console access
  * Extracted from ConsoleProxyManagerImpl so that other console proxy managers
@@ -72,12 +73,12 @@ public abstract class AgentHookBase implements AgentHook {
 
     public AgentHookBase(VMInstanceDao instanceDao, HostDao hostDao, ConfigurationDao cfgDao, KeystoreManager ksMgr,
             AgentManager agentMgr, ManagementServer ms) {
-        this._instanceDao = instanceDao;
-        this._hostDao = hostDao;
-        this._agentMgr = agentMgr;
-        this._configDao = cfgDao;
-        this._ksMgr = ksMgr;
-        this._ms = ms;
+        _instanceDao = instanceDao;
+        _hostDao = hostDao;
+        _agentMgr = agentMgr;
+        _configDao = cfgDao;
+        _ksMgr = ksMgr;
+        _ms = ms;
     }
 
     @Override
@@ -204,7 +205,9 @@ public abstract class AgentHookBase implements AgentHook {
 
         assert (ksBits != null);
         if (ksBits == null) {
-            s_logger.error("Could not find and construct a valid SSL certificate");
+            String msg = "Could not find and construct a valid SSL certificate";
+            s_logger.error(msg);
+            throw new CloudRuntimeException(msg);
         }
         cmd = new StartConsoleProxyAgentHttpHandlerCommand(ksBits, storePassword);
         cmd.setEncryptorPassword(getEncryptorPassword());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
index 8a31d73..05adc5f 100755
--- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
+++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java
@@ -970,11 +970,7 @@ VirtualMachineGuru, SystemVmLoadScanHandler<Long>, ResourceStateAdapter {
                 }
             } else {
                 if (s_logger.isDebugEnabled()) {
-                    if (template == null) {
-                        s_logger.debug("Zone host is ready, but console proxy template is null");
-                    } else {
-                        s_logger.debug("Zone host is ready, but console proxy template: " + template.getId() + " is not ready on secondary storage.");
-                    }
+                    s_logger.debug("Zone host is ready, but console proxy template: " + template.getId() + " is not ready on secondary storage.");
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/dc/DedicatedResourceVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/dc/DedicatedResourceVO.java b/server/src/com/cloud/dc/DedicatedResourceVO.java
index 9caa6b0..1f66ecf 100644
--- a/server/src/com/cloud/dc/DedicatedResourceVO.java
+++ b/server/src/com/cloud/dc/DedicatedResourceVO.java
@@ -20,7 +20,6 @@ import java.util.UUID;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
-
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
@@ -31,6 +30,11 @@ import javax.persistence.Table;
 @Table(name="dedicated_resources")
 public class DedicatedResourceVO implements DedicatedResources{
 
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -6659510127145101917L;
+
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name="id")
@@ -61,7 +65,7 @@ public class DedicatedResourceVO implements DedicatedResources{
     private long affinityGroupId;
 
     public DedicatedResourceVO() {
-        this.uuid = UUID.randomUUID().toString();
+        uuid = UUID.randomUUID().toString();
     }
 
     public DedicatedResourceVO(Long dataCenterId, Long podId, Long clusterId, Long hostId, Long domainId,
@@ -72,14 +76,16 @@ public class DedicatedResourceVO implements DedicatedResources{
         this.hostId = hostId;
         this.domainId = domainId;
         this.accountId = accountId;
-        this.uuid = UUID.randomUUID().toString();
+        uuid = UUID.randomUUID().toString();
         this.affinityGroupId = affinityGroupId;
     }
 
+    @Override
     public long getId() {
         return id;
     }
 
+    @Override
     public Long getDataCenterId() {
         return dataCenterId;
     }
@@ -88,6 +94,7 @@ public class DedicatedResourceVO implements DedicatedResources{
         this.dataCenterId = dataCenterId;
     }
 
+    @Override
     public Long getPodId() {
         return podId;
     }
@@ -96,6 +103,7 @@ public class DedicatedResourceVO implements DedicatedResources{
         this.podId = podId;
     }
 
+    @Override
     public Long getClusterId() {
         return clusterId;
     }
@@ -104,6 +112,7 @@ public class DedicatedResourceVO implements DedicatedResources{
         this.clusterId = clusterId;
     }
 
+    @Override
     public Long getHostId() {
         return hostId;
     }
@@ -113,9 +122,10 @@ public class DedicatedResourceVO implements DedicatedResources{
     }
 
     public DedicatedResourceVO(long dedicatedResourceId) {
-        this.id = dedicatedResourceId;
+        id = dedicatedResourceId;
     }
 
+    @Override
     public Long getDomainId() {
         return domainId;
     }
@@ -124,6 +134,7 @@ public class DedicatedResourceVO implements DedicatedResources{
         this.domainId = domainId;
     }
 
+    @Override
     public Long getAccountId() {
         return accountId;
     }
@@ -132,14 +143,16 @@ public class DedicatedResourceVO implements DedicatedResources{
         this.accountId = accountId;
     }
 
+    @Override
     public String getUuid() {
-        return this.uuid;
+        return uuid;
     }
 
     public void setUuid(String uuid) {
         this.uuid = uuid;
     }
 
+    @Override
     public long getAffinityGroupId() {
         return affinityGroupId;
     }
@@ -147,7 +160,7 @@ public class DedicatedResourceVO implements DedicatedResources{
     @Override
     public boolean equals(Object obj) {
         if (obj instanceof DedicatedResourceVO) {
-            return ((DedicatedResourceVO) obj).getId() == this.getId();
+            return ((DedicatedResourceVO) obj).getId() == getId();
         } else {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/network/IpAddressManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/IpAddressManagerImpl.java b/server/src/com/cloud/network/IpAddressManagerImpl.java
index f4bff58..1ccd0d6 100644
--- a/server/src/com/cloud/network/IpAddressManagerImpl.java
+++ b/server/src/com/cloud/network/IpAddressManagerImpl.java
@@ -17,6 +17,7 @@
 package com.cloud.network;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -29,6 +30,7 @@ import java.util.UUID;
 import javax.inject.Inject;
 
 import org.apache.log4j.Logger;
+
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
 import org.apache.cloudstack.context.CallContext;
@@ -138,14 +140,14 @@ import com.cloud.utils.db.DB;
 import com.cloud.utils.db.EntityManager;
 import com.cloud.utils.db.Filter;
 import com.cloud.utils.db.GlobalLock;
-import com.cloud.utils.db.TransactionCallback;
-import com.cloud.utils.db.TransactionCallbackNoReturn;
-import com.cloud.utils.db.TransactionCallbackWithException;
 import com.cloud.utils.db.JoinBuilder.JoinType;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.utils.db.SearchCriteria.Op;
 import com.cloud.utils.db.Transaction;
+import com.cloud.utils.db.TransactionCallback;
+import com.cloud.utils.db.TransactionCallbackNoReturn;
+import com.cloud.utils.db.TransactionCallbackWithException;
 import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
 import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.exception.CloudRuntimeException;
@@ -578,8 +580,9 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
 
         IPAddressVO ip = markIpAsUnavailable(addrId);
 
-        assert (ip != null) : "Unable to mark the ip address id=" + addrId + " as unavailable.";
         if (ip == null) {
+            String msg = "Unable to mark the ip address id=" + addrId + " as unavailable.";
+            s_logger.error(msg);
             return true;
         }
 
@@ -692,10 +695,10 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
                 if (dedicatedVlanDbIds != null && !dedicatedVlanDbIds.isEmpty()) {
                     fetchFromDedicatedRange = true;
                     sc.setParameters("vlanId", dedicatedVlanDbIds.toArray());
-                    errorMessage.append(", vlanId id=" + dedicatedVlanDbIds.toArray());
+                    errorMessage.append(", vlanId id=" + Arrays.toString(dedicatedVlanDbIds.toArray()));
                 } else if (nonDedicatedVlanDbIds != null && !nonDedicatedVlanDbIds.isEmpty()) {
                     sc.setParameters("vlanId", nonDedicatedVlanDbIds.toArray());
-                    errorMessage.append(", vlanId id=" + nonDedicatedVlanDbIds.toArray());
+                    errorMessage.append(", vlanId id=" + Arrays.toString(nonDedicatedVlanDbIds.toArray()));
                 } else {
                     if (podId != null) {
                         InsufficientAddressCapacityException ex = new InsufficientAddressCapacityException("Insufficient address capacity", Pod.class, podId);
@@ -735,7 +738,7 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
                     if (useSystemIps && nonDedicatedVlanDbIds != null && !nonDedicatedVlanDbIds.isEmpty()) {
                         fetchFromDedicatedRange = false;
                         sc.setParameters("vlanId", nonDedicatedVlanDbIds.toArray());
-                        errorMessage.append(", vlanId id=" + nonDedicatedVlanDbIds.toArray());
+                        errorMessage.append(", vlanId id=" + Arrays.toString(nonDedicatedVlanDbIds.toArray()));
                         addrs = _ipAddressDao.lockRows(sc, filter, true);
                     }
                 }
@@ -868,6 +871,11 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
     public PublicIp assignDedicateIpAddress(Account owner, final Long guestNtwkId, final Long vpcId, final long dcId, final boolean isSourceNat) throws ConcurrentOperationException,
         InsufficientAddressCapacityException {
 
+        if (owner == null) {
+            s_logger.error("No account to assign an ip to.");
+            return null;
+        }
+
         final long ownerId = owner.getId();
 
         PublicIp ip = null;
@@ -899,13 +907,11 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
 
             return ip;
         } finally {
-            if (owner != null) {
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("Releasing lock account " + ownerId);
-                }
-
-                _accountDao.releaseFromLockTable(ownerId);
+            if (s_logger.isDebugEnabled()) {
+                s_logger.debug("Releasing lock account " + ownerId);
             }
+            _accountDao.releaseFromLockTable(ownerId);
+
             if (ip == null) {
                 s_logger.error("Unable to get source nat ip address for account " + ownerId);
             }
@@ -1253,7 +1259,7 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
 
         s_logger.debug("Associating ip " + ipToAssoc + " to network " + network);
 
-        IPAddressVO ip = _ipAddressDao.findById(ipId);
+        IPAddressVO ip = ipToAssoc; //_ipAddressDao.findById(ipId);
         //update ip address with networkId
         ip.setAssociatedWithNetworkId(networkId);
         ip.setSourceNat(isSourceNat);
@@ -1270,18 +1276,16 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
             return ip;
         } finally {
             if (!success && releaseOnFailure) {
-                if (ip != null) {
-                    try {
-                        s_logger.warn("Failed to associate ip address, so releasing ip from the database " + ip);
-                        _ipAddressDao.markAsUnavailable(ip.getId());
-                        if (!applyIpAssociations(network, true)) {
-                            // if fail to apply ip assciations again, unassign ip address without updating resource
-                            // count and generating usage event as there is no need to keep it in the db
-                            _ipAddressDao.unassignIpAddress(ip.getId());
-                        }
-                    } catch (Exception e) {
-                        s_logger.warn("Unable to disassociate ip address for recovery", e);
+                try {
+                    s_logger.warn("Failed to associate ip address, so releasing ip from the database " + ip);
+                    _ipAddressDao.markAsUnavailable(ip.getId());
+                    if (!applyIpAssociations(network, true)) {
+                        // if fail to apply ip assciations again, unassign ip address without updating resource
+                        // count and generating usage event as there is no need to keep it in the db
+                        _ipAddressDao.unassignIpAddress(ip.getId());
                     }
+                } catch (Exception e) {
+                    s_logger.warn("Unable to disassociate ip address for recovery", e);
                 }
             }
         }
@@ -1362,7 +1366,7 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
         PublicIp publicIp = PublicIp.createFromAddrAndVlan(ipToAssoc, _vlanDao.findById(ipToAssoc.getVlanId()));
         ipList.add(publicIp);
         Map<PublicIpAddress, Set<Service>> ipToServices = _networkModel.getIpToServices(ipList, false, true);
-        if (ipToServices != null & !ipToServices.isEmpty()) {
+        if (ipToServices != null && !ipToServices.isEmpty()) {
             Set<Service> services = ipToServices.get(publicIp);
             if (services != null && !services.isEmpty()) {
                 throw new InvalidParameterValueException("IP " + ipToAssoc + " has services and rules associated in the network " + networkId);
@@ -1403,7 +1407,7 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
         PublicIp publicIp = PublicIp.createFromAddrAndVlan(ip, _vlanDao.findById(ip.getVlanId()));
         ipList.add(publicIp);
         Map<PublicIpAddress, Set<Service>> ipToServices = _networkModel.getIpToServices(ipList, false, true);
-        if (ipToServices != null & !ipToServices.isEmpty()) {
+        if (ipToServices != null && !ipToServices.isEmpty()) {
             Set<Service> ipServices = ipToServices.get(publicIp);
             if (ipServices != null && !ipServices.isEmpty()) {
                 return false;
@@ -1732,14 +1736,14 @@ public class IpAddressManagerImpl extends ManagerBase implements IpAddressManage
 
     @Override
     public boolean applyStaticNats(List<? extends StaticNat> staticNats, boolean continueOnError, boolean forRevoke) throws ResourceUnavailableException {
-        Network network = _networksDao.findById(staticNats.get(0).getNetworkId());
-        boolean success = true;
-
         if (staticNats == null || staticNats.size() == 0) {
             s_logger.debug("There are no static nat rules for the network elements");
             return true;
         }
 
+        Network network = _networksDao.findById(staticNats.get(0).getNetworkId());
+        boolean success = true;
+
         // get the list of public ip's owned by the network
         List<IPAddressVO> userIps = _ipAddressDao.listByAssociatedNetwork(network.getId(), null);
         List<PublicIp> publicIps = new ArrayList<PublicIp>();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index 27b2006..7281beb 100755
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -1024,14 +1024,14 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
         List<NetworkOfferingServiceMapVO> map = _ntwkOfferingSrvcDao.listByNetworkOfferingId(networkOfferingId);
     
         for (NetworkOfferingServiceMapVO instance : map) {
-            String service = instance.getService();
+            Service service = Network.Service.getService(instance.getService());
             Set<Provider> providers;
             providers = serviceProviderMap.get(service);
             if (providers == null) {
                 providers = new HashSet<Provider>();
             }
             providers.add(Provider.getProvider(instance.getProvider()));
-            serviceProviderMap.put(Service.getService(service), providers);
+            serviceProviderMap.put(service, providers);
         }
     
         return serviceProviderMap;
@@ -1526,12 +1526,15 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
 
     @Override
     public void checkNetworkPermissions(Account owner, Network network) {
+        if (network == null) {
+            throw new CloudRuntimeException("no network to check permissions for.");
+        }
         // Perform account permission check
         if (network.getGuestType() != Network.GuestType.Shared
                 || (network.getGuestType() == Network.GuestType.Shared && network.getAclType() == ACLType.Account)) {
             AccountVO networkOwner = _accountDao.findById(network.getAccountId());
             if(networkOwner == null)
-                throw new PermissionDeniedException("Unable to use network with id= " + ((network != null)? ((NetworkVO)network).getUuid() : "") + ", network does not have an owner");
+                throw new PermissionDeniedException("Unable to use network with id= " + ((NetworkVO)network).getUuid() + ", network does not have an owner");
             if(owner.getType() != Account.ACCOUNT_TYPE_PROJECT && networkOwner.getType() == Account.ACCOUNT_TYPE_PROJECT){
                 if(!_projectAccountDao.canAccessProjectAccount(owner.getAccountId(), network.getAccountId())){
                     throw new PermissionDeniedException("Unable to use network with id= " + ((network != null)? ((NetworkVO)network).getUuid() : "") + ", permission denied");
@@ -1545,7 +1548,7 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
 
         } else {
             if (!isNetworkAvailableInDomain(network.getId(), owner.getDomainId())) {
-                throw new PermissionDeniedException("Shared network id=" + ((network != null)? ((NetworkVO)network).getUuid() : "") + " is not available in domain id=" + owner.getDomainId());
+                throw new PermissionDeniedException("Shared network id=" + ((NetworkVO)network).getUuid() + " is not available in domain id=" + owner.getDomainId());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/network/guru/ControlNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/ControlNetworkGuru.java b/server/src/com/cloud/network/guru/ControlNetworkGuru.java
index 26caa61..a8274d3 100755
--- a/server/src/com/cloud/network/guru/ControlNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/ControlNetworkGuru.java
@@ -134,7 +134,7 @@ public class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
         assert nic.getTrafficType() == TrafficType.Control;
 
         // we have to get management/private ip for the control nic for vmware/hyperv due ssh issues.
-         HypervisorType hType = dest.getHost().getHypervisorType(); 
+         HypervisorType hType = dest.getHost().getHypervisorType();
         if ( ( (hType == HypervisorType.VMware) || (hType == HypervisorType.Hyperv) )&& isRouterVm(vm)) {
             if(dest.getDataCenter().getNetworkType() != NetworkType.Basic) {
                 super.reserve(nic, config, vm, dest, context);
@@ -168,7 +168,7 @@ public class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
     @Override
     public boolean release(NicProfile nic, VirtualMachineProfile vm, String reservationId) {
         assert nic.getTrafficType() == TrafficType.Control;
-        HypervisorType hType = vm.getHypervisorType(); 
+        HypervisorType hType = vm.getHypervisorType();
         if ( ( (hType == HypervisorType.VMware) || (hType == HypervisorType.Hyperv) )&& isRouterVm(vm)) {
             long dcId = vm.getVirtualMachine().getDataCenterId();
             DataCenterVO dcVo = _dcDao.findById(dcId);
@@ -218,12 +218,12 @@ public class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
 
         Map<String, String> dbParams = _configDao.getConfiguration(params);
 
-        _cidr = dbParams.get(Config.ControlCidr);
+        _cidr = dbParams.get(Config.ControlCidr.toString());
         if (_cidr == null) {
             _cidr = "169.254.0.0/16";
         }
 
-        _gateway = dbParams.get(Config.ControlGateway);
+        _gateway = dbParams.get(Config.ControlGateway.toString());
         if (_gateway == null) {
             _gateway = NetUtils.getLinkLocalGateway();
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index b9dd729..3ae194f 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -432,14 +432,14 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager, VpcProvis
         List<VpcOfferingServiceMapVO> map = _vpcOffSvcMapDao.listByVpcOffId(vpcOffId);
 
         for (VpcOfferingServiceMapVO instance : map) {
-            String service = instance.getService();
+            Service service = Service.getService(instance.getService());
             Set<Provider> providers;
             providers = serviceProviderMap.get(service);
             if (providers == null) {
                 providers = new HashSet<Provider>();
             }
             providers.add(Provider.getProvider(instance.getProvider()));
-            serviceProviderMap.put(Service.getService(service), providers);
+            serviceProviderMap.put(service, providers);
         }
 
         return serviceProviderMap;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dcda79e2/server/src/com/cloud/template/TemplateManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java b/server/src/com/cloud/template/TemplateManagerImpl.java
index 681be4a..33ba667 100755
--- a/server/src/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/com/cloud/template/TemplateManagerImpl.java
@@ -425,7 +425,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
         if (isISO) {
             desc = Upload.Type.ISO.toString();
         }
-        eventId = eventId == null ? 0 : eventId;
+        eventId = (eventId == null ? 0 : eventId);
 
         if (!_accountMgr.isRootAdmin(caller.getType()) && _disableExtraction) {
             throw new PermissionDeniedException("Extraction has been disabled by admin");
@@ -1801,7 +1801,7 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
         }
 
         // Don't allow to modify system template
-        if (id == Long.valueOf(1)) {
+        if (Long.valueOf(1).equals(id)) {
             InvalidParameterValueException ex = new InvalidParameterValueException("Unable to update template/iso of specified id");
             ex.addProxyObject(String.valueOf(id), "templateId");
             throw ex;


[04/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
restored imports

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

Branch: refs/heads/4.3
Commit: da344bb23406a24bc4bedb6949dfbfe6993e607b
Parents: 30b7fa5
Author: Daan Hoogland <da...@onecht.net>
Authored: Sun Jan 26 00:34:41 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:29:50 2014 +0100

----------------------------------------------------------------------
 .../allocator/impl/UserConcentratedAllocator.java       | 12 ++++++++++++
 server/src/com/cloud/api/ApiResponseHelper.java         |  2 +-
 2 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/da344bb2/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
index 8101da9..e2e06c2 100755
--- a/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
+++ b/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
@@ -32,18 +32,30 @@ import org.apache.log4j.Logger;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 
 import com.cloud.agent.manager.allocator.PodAllocator;
+import com.cloud.capacity.CapacityVO;
+import com.cloud.capacity.dao.CapacityDao;
 import com.cloud.dc.DataCenter;
+import com.cloud.dc.HostPodVO;
 import com.cloud.dc.Pod;
+import com.cloud.dc.dao.HostPodDao;
 import com.cloud.offering.ServiceOffering;
+import com.cloud.service.dao.ServiceOfferingDao;
+import com.cloud.storage.VolumeVO;
+import com.cloud.storage.dao.VMTemplatePoolDao;
+import com.cloud.storage.dao.VolumeDao;
 import com.cloud.template.VirtualMachineTemplate;
 import com.cloud.utils.DateUtil;
 import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Pair;
 import com.cloud.utils.component.AdapterBase;
 import com.cloud.utils.db.SearchCriteria;
+import com.cloud.vm.UserVmVO;
+import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachine.State;
 import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.dao.UserVmDao;
+import com.cloud.vm.dao.VMInstanceDao;
 
 @Local(value = PodAllocator.class)
 public class UserConcentratedAllocator extends AdapterBase implements PodAllocator {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/da344bb2/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index 8cfc859..ceb4ad6 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -387,7 +387,7 @@ public class ApiResponseHelper implements ResponseGenerator {
         }
         resourceLimitResponse.setResourceType(Integer.valueOf(limit.getType().getOrdinal()).toString());
         if((limit.getType() == ResourceType.primary_storage || limit.getType() == ResourceType.secondary_storage) && limit.getMax() >= 0) {
-            resourceLimitResponse.setMax((long) Math.ceil(limit.getMax()/ResourceType.bytesToGiB));
+            resourceLimitResponse.setMax((long)Math.ceil((limit.getMax() / ResourceType.bytesToGiB)));
         } else {
             resourceLimitResponse.setMax(limit.getMax());
         }


[06/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
Findbugs issues in ApiResponseHelper fixes

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

Branch: refs/heads/4.3
Commit: c3a63b6b5ae5bad3e753d7bd348612f53ca8ebac
Parents: 9776e1a
Author: Daan Hoogland <da...@onecht.net>
Authored: Sun Jan 26 12:25:18 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:31:54 2014 +0100

----------------------------------------------------------------------
 .../com/cloud/network/rules/FirewallRule.java   |  3 ++-
 api/src/com/cloud/network/vpc/StaticRoute.java  |  3 ++-
 server/src/com/cloud/api/ApiResponseHelper.java | 21 +++++++++-----------
 3 files changed, 13 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c3a63b6b/api/src/com/cloud/network/rules/FirewallRule.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/FirewallRule.java b/api/src/com/cloud/network/rules/FirewallRule.java
index 042665c..0c74d02 100644
--- a/api/src/com/cloud/network/rules/FirewallRule.java
+++ b/api/src/com/cloud/network/rules/FirewallRule.java
@@ -41,7 +41,8 @@ public interface FirewallRule extends ControlledEntity, Identity, InternalIdenti
         Staged, // Rule been created but has never got through network rule conflict detection.  Rules in this state can not be sent to network elements.
         Add,    // Add means the rule has been created and has gone through network rule conflict detection.
         Active, // Rule has been sent to the network elements and reported to be active.
-        Revoke  // Revoke means this rule has been revoked. If this rule has been sent to the network elements, the rule will be deleted from database.
+        Revoke,  // Revoke means this rule has been revoked. If this rule has been sent to the network elements, the rule will be deleted from database.
+        Deleting // rule has been revoked and is scheduled for deletion
     }
 
     enum TrafficType {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c3a63b6b/api/src/com/cloud/network/vpc/StaticRoute.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/vpc/StaticRoute.java b/api/src/com/cloud/network/vpc/StaticRoute.java
index ccdbec8..5707ca1 100644
--- a/api/src/com/cloud/network/vpc/StaticRoute.java
+++ b/api/src/com/cloud/network/vpc/StaticRoute.java
@@ -25,7 +25,8 @@ public interface StaticRoute extends ControlledEntity, Identity, InternalIdentit
         Staged, // route been created but has never got through network rule conflict detection.  Routes in this state can not be sent to VPC virtual router.
         Add,    // Add means the route has been created and has gone through network rule conflict detection.
         Active, // Route has been sent to the VPC router and reported to be active.
-        Revoke  // Revoke means this route has been revoked. If this route has been sent to the VPC router, the route will be deleted from database.
+        Revoke,  // Revoke means this route has been revoked. If this route has been sent to the VPC router, the route will be deleted from database.
+        Deleting // rule has been revoked and is scheduled for deletion
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c3a63b6b/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index ceb4ad6..5bd8241 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -31,6 +31,8 @@ import java.util.TimeZone;
 
 import javax.inject.Inject;
 
+import org.apache.log4j.Logger;
+
 import org.apache.cloudstack.acl.ControlledEntity;
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 import org.apache.cloudstack.affinity.AffinityGroup;
@@ -146,7 +148,6 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 import org.apache.cloudstack.usage.Usage;
 import org.apache.cloudstack.usage.UsageService;
 import org.apache.cloudstack.usage.UsageTypes;
-import org.apache.log4j.Logger;
 
 import com.cloud.api.query.ViewResponseHelper;
 import com.cloud.api.query.vo.AccountJoinVO;
@@ -285,7 +286,6 @@ import com.cloud.uservm.UserVm;
 import com.cloud.utils.Pair;
 import com.cloud.utils.StringUtils;
 import com.cloud.utils.db.EntityManager;
-import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.net.Ip;
 import com.cloud.utils.net.NetUtils;
 import com.cloud.vm.ConsoleProxyVO;
@@ -387,7 +387,7 @@ public class ApiResponseHelper implements ResponseGenerator {
         }
         resourceLimitResponse.setResourceType(Integer.valueOf(limit.getType().getOrdinal()).toString());
         if((limit.getType() == ResourceType.primary_storage || limit.getType() == ResourceType.secondary_storage) && limit.getMax() >= 0) {
-            resourceLimitResponse.setMax((long)Math.ceil((limit.getMax() / ResourceType.bytesToGiB)));
+            resourceLimitResponse.setMax((long)Math.ceil((double)limit.getMax() / ResourceType.bytesToGiB));
         } else {
             resourceLimitResponse.setMax(limit.getMax());
         }
@@ -1951,8 +1951,6 @@ public class ApiResponseHelper implements ResponseGenerator {
     public SecurityGroupResponse createSecurityGroupResponseFromSecurityGroupRule(List<? extends SecurityRule> securityRules) {
         SecurityGroupResponse response = new SecurityGroupResponse();
         Map<Long, Account> securiytGroupAccounts = new HashMap<Long, Account>();
-        Map<Long, SecurityGroup> allowedSecurityGroups = new HashMap<Long, SecurityGroup>();
-        Map<Long, Account> allowedSecuriytGroupAccounts = new HashMap<Long, Account>();
 
         if ((securityRules != null) && !securityRules.isEmpty()) {
             SecurityGroupJoinVO securityGroup = ApiDBUtils.findSecurityGroupViewById(securityRules.get(0).getSecurityGroupId()).get(0);
@@ -3137,11 +3135,10 @@ public class ApiResponseHelper implements ResponseGenerator {
         response.setCidr(result.getCidr());
 
         StaticRoute.State state = result.getState();
-        String stateToSet = state.toString();
-        if (state.equals(FirewallRule.State.Revoke)) {
-            stateToSet = "Deleting";
+        if (state.equals(StaticRoute.State.Revoke)) {
+            state = StaticRoute.State.Deleting;
         }
-        response.setState(stateToSet);
+        response.setState(state.toString());
         populateAccount(response, result.getAccountId());
         populateDomain(response, result.getDomainId());
 
@@ -3629,11 +3626,11 @@ public class ApiResponseHelper implements ResponseGenerator {
         ApplicationLoadBalancerRuleResponse ruleResponse = new ApplicationLoadBalancerRuleResponse();
         ruleResponse.setInstancePort(lb.getDefaultPortStart());
         ruleResponse.setSourcePort(lb.getSourcePortStart());
-        String stateToSet = lb.getState().toString();
+        FirewallRule.State stateToSet = lb.getState();
         if (stateToSet.equals(FirewallRule.State.Revoke)) {
-            stateToSet = "Deleting";
+            stateToSet = FirewallRule.State.Deleting;
         }
-        ruleResponse.setState(stateToSet);
+        ruleResponse.setState(stateToSet.toString());
         ruleResponse.setObjectName("loadbalancerrule");
         ruleResponses.add(ruleResponse);
         lbResponse.setLbRules(ruleResponses);


[03/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
moved call on static object to synchronized block

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

Branch: refs/heads/4.3
Commit: 30b7fa59198b817c7ac04ec7075d5192080f8a67
Parents: 5296c12
Author: Daan Hoogland <da...@onecht.net>
Authored: Sat Jan 25 23:46:18 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:28:25 2014 +0100

----------------------------------------------------------------------
 server/src/com/cloud/api/ApiDispatcher.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/30b7fa59/server/src/com/cloud/api/ApiDispatcher.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java
index 44fb676..9624c61 100755
--- a/server/src/com/cloud/api/ApiDispatcher.java
+++ b/server/src/com/cloud/api/ApiDispatcher.java
@@ -429,9 +429,9 @@ public class ApiDispatcher {
                         }
                     }
                 } else {
-                    DateFormat format = BaseCmd.INPUT_FORMAT;
-                    format.setLenient(false);
+                    final DateFormat format = BaseCmd.INPUT_FORMAT;
                     synchronized (format) {
+                        format.setLenient(false);
                         field.set(cmdObj, format.parse(paramObj.toString()));
                     }
                 }


[08/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
findbugs: retrieve the objects to remove from the collection(s)

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

Branch: refs/heads/4.3
Commit: eb239b9689cf0367b687b48420018fa913972abb
Parents: 594fd42
Author: Daan Hoogland <da...@onecht.net>
Authored: Sun Jan 26 16:07:59 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:38:40 2014 +0100

----------------------------------------------------------------------
 .../deploy/DeploymentPlanningManagerImpl.java   | 43 +++++++++++---------
 1 file changed, 24 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/eb239b96/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
index 21366f5..0a25805 100644
--- a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
+++ b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
@@ -31,6 +31,8 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
+import org.apache.log4j.Logger;
+
 import org.apache.cloudstack.affinity.AffinityGroupProcessor;
 import org.apache.cloudstack.affinity.AffinityGroupService;
 import org.apache.cloudstack.affinity.AffinityGroupVMMapVO;
@@ -49,8 +51,16 @@ import org.apache.cloudstack.managed.context.ManagedContextTimerTask;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 import org.apache.cloudstack.utils.identity.ManagementServerNode;
-import org.apache.log4j.Logger;
 
+import com.cloud.agent.AgentManager;
+import com.cloud.agent.Listener;
+import com.cloud.agent.api.AgentControlAnswer;
+import com.cloud.agent.api.AgentControlCommand;
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.Command;
+import com.cloud.agent.api.StartupCommand;
+import com.cloud.agent.api.StartupRoutingCommand;
+import com.cloud.agent.manager.allocator.HostAllocator;
 import com.cloud.capacity.CapacityManager;
 import com.cloud.capacity.dao.CapacityDao;
 import com.cloud.configuration.Config;
@@ -71,7 +81,6 @@ import com.cloud.deploy.dao.PlannerHostReservationDao;
 import com.cloud.exception.AffinityConflictException;
 import com.cloud.exception.ConnectionException;
 import com.cloud.exception.InsufficientServerCapacityException;
-import com.cloud.exception.PermissionDeniedException;
 import com.cloud.host.Host;
 import com.cloud.host.HostVO;
 import com.cloud.host.Status;
@@ -104,7 +113,6 @@ import com.cloud.utils.db.DB;
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.utils.db.Transaction;
 import com.cloud.utils.db.TransactionCallback;
-import com.cloud.utils.db.TransactionCallbackNoReturn;
 import com.cloud.utils.db.TransactionStatus;
 import com.cloud.utils.exception.CloudRuntimeException;
 import com.cloud.utils.fsm.StateListener;
@@ -113,19 +121,10 @@ import com.cloud.vm.ReservationContext;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachine.Event;
-import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.VirtualMachine.State;
+import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.dao.UserVmDao;
 import com.cloud.vm.dao.VMInstanceDao;
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.Listener;
-import com.cloud.agent.api.AgentControlAnswer;
-import com.cloud.agent.api.AgentControlCommand;
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.Command;
-import com.cloud.agent.api.StartupCommand;
-import com.cloud.agent.api.StartupRoutingCommand;
-import com.cloud.agent.manager.allocator.HostAllocator;
 
 
 @Local(value = { DeploymentPlanningManager.class })
@@ -209,7 +208,7 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy
         return _affinityProcessors;
     }
     public void setAffinityGroupProcessors(List<AffinityGroupProcessor> affinityProcessors) {
-        this._affinityProcessors = affinityProcessors;
+        _affinityProcessors = affinityProcessors;
     }
 
     @Override
@@ -953,7 +952,7 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy
         }
 
         // Cluster can be put in avoid set in following scenarios:
-        // 1. If storage allocators haven't put any pools in avoid set means either no pools in cluster 
+        // 1. If storage allocators haven't put any pools in avoid set means either no pools in cluster
         // or pools not suitable for the allocators to handle or there is no
         // linkage of any suitable host to any of the pools in cluster
         // 2. If all 'shared' or 'local' pools are in avoid set
@@ -1154,9 +1153,9 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy
                 List<StoragePool> suitablePools = new ArrayList<StoragePool>();
                 StoragePool pool = null;
                 if (toBeCreated.getPoolId() != null) {
-                    pool = (StoragePool) this.dataStoreMgr.getPrimaryDataStore(toBeCreated.getPoolId());
+                    pool = (StoragePool) dataStoreMgr.getPrimaryDataStore(toBeCreated.getPoolId());
                 } else {
-                    pool = (StoragePool) this.dataStoreMgr.getPrimaryDataStore(plan.getPoolId());
+                    pool = (StoragePool) dataStoreMgr.getPrimaryDataStore(plan.getPoolId());
                 }
 
                 if (!pool.isInMaintenance()) {
@@ -1169,7 +1168,7 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy
                                 && plan.getClusterId() == exstPoolClusterId) {
                             canReusePool = true;
                         } else if (plan.getDataCenterId() == exstPoolDcId) {
-                            DataStore dataStore = this.dataStoreMgr.getPrimaryDataStore(pool.getId());
+                            DataStore dataStore = dataStoreMgr.getPrimaryDataStore(pool.getId());
                             if (dataStore != null && dataStore.getScope() != null
                                     && dataStore.getScope().getScopeType() == ScopeType.ZONE) {
                                 canReusePool = true;
@@ -1274,7 +1273,13 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy
             }
         }
         if (suitableVolumeStoragePools.values() != null) {
-            poolsToAvoidOutput.removeAll(suitableVolumeStoragePools.values());
+            HashSet<Long> toRemove = new HashSet<Long>();
+            for (List<StoragePool> lsp : suitableVolumeStoragePools.values()) {
+                for (StoragePool sp : lsp) {
+                    toRemove.add(sp.getId());
+                }
+            }
+            poolsToAvoidOutput.removeAll(toRemove);
         }
         if (avoid.getPoolsToAvoid() != null) {
             avoid.getPoolsToAvoid().addAll(poolsToAvoidOutput);


[05/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
Fix findbug issues within LDAP authenticator


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

Branch: refs/heads/4.3
Commit: 9776e1af1c92486f5081b1ee8fa95cf0edb86b97
Parents: da344bb
Author: Ian Duffy <ia...@ianduffy.ie>
Authored: Sun Jan 26 00:34:25 2014 +0000
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:31:12 2014 +0100

----------------------------------------------------------------------
 .../cloudstack/api/command/LDAPConfigCmd.java   |   2 +-
 .../api/command/LdapCreateAccountCmd.java       | 244 +++++++++----------
 .../api/command/LdapImportUsersCmd.java         |  17 +-
 .../cloudstack/ldap/LdapContextFactory.java     |   2 -
 .../ldap/LdapAuthenticatorSpec.groovy           |   8 +-
 .../cloudstack/ldap/LdapManagerImplSpec.groovy  |  16 +-
 6 files changed, 137 insertions(+), 152 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9776e1af/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java
index 3faf8b7..a4883c5 100644
--- a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LDAPConfigCmd.java
@@ -209,7 +209,7 @@ public class LDAPConfigCmd extends BaseCmd {
     }
 
     private boolean updateLDAP() {
-        LdapConfigurationResponse response = _ldapManager.addConfiguration(hostname, port);
+        _ldapManager.addConfiguration(hostname, port);
 
         /**
          * There is no query filter now. It is derived from ldap.user.object and ldap.search.group.principle

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9776e1af/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapCreateAccountCmd.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapCreateAccountCmd.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapCreateAccountCmd.java
index 981e72e..b78b484 100644
--- a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapCreateAccountCmd.java
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapCreateAccountCmd.java
@@ -35,7 +35,6 @@ import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.ldap.LdapManager;
 import org.apache.cloudstack.ldap.LdapUser;
 import org.apache.log4j.Logger;
-import org.bouncycastle.util.encoders.Base64;
 
 import com.cloud.user.Account;
 import com.cloud.user.AccountService;
@@ -43,125 +42,126 @@ import com.cloud.user.UserAccount;
 
 @APICommand(name = "ldapCreateAccount", description = "Creates an account from an LDAP user", responseObject = AccountResponse.class, since = "4.2.0")
 public class LdapCreateAccountCmd extends BaseCmd {
-	public static final Logger s_logger = Logger
-			.getLogger(LdapCreateAccountCmd.class.getName());
-	private static final String s_name = "createaccountresponse";
-
-	@Inject
-	private LdapManager _ldapManager;
-
-	@Parameter(name = ApiConstants.ACCOUNT, type = CommandType.STRING, description = "Creates the user under the specified account. If no account is specified, the username will be used as the account name.")
-	private String accountName;
-
-	@Parameter(name = ApiConstants.ACCOUNT_TYPE, type = CommandType.SHORT, required = true, description = "Type of the account.  Specify 0 for user, 1 for root admin, and 2 for domain admin")
-	private Short accountType;
-
-	@Parameter(name = ApiConstants.DOMAIN_ID, type = CommandType.UUID, entityType = DomainResponse.class, description = "Creates the user under the specified domain.")
-	private Long domainId;
-
-	@Parameter(name = ApiConstants.TIMEZONE, type = CommandType.STRING, description = "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.")
-	private String timezone;
-
-	@Parameter(name = ApiConstants.USERNAME, type = CommandType.STRING, required = true, description = "Unique username.")
-	private String username;
-
-	@Parameter(name = ApiConstants.NETWORK_DOMAIN, type = CommandType.STRING, description = "Network domain for the account's networks")
-	private String networkDomain;
-
-	@Parameter(name = ApiConstants.ACCOUNT_DETAILS, type = CommandType.MAP, description = "details for account used to store specific parameters")
-	private Map<String, String> details;
-
-	@Parameter(name = ApiConstants.ACCOUNT_ID, type = CommandType.STRING, description = "Account UUID, required for adding account from external provisioning system")
-	private String accountUUID;
-
-	@Parameter(name = ApiConstants.USER_ID, type = CommandType.STRING, description = "User UUID, required for adding account from external provisioning system")
-	private String userUUID;
-
-	public LdapCreateAccountCmd() {
-		super();
-	}
-
-	public LdapCreateAccountCmd(final LdapManager ldapManager,
-			final AccountService accountService) {
-		super();
-		_ldapManager = ldapManager;
-		_accountService = accountService;
-	}
-
-	UserAccount createCloudstackUserAccount(final LdapUser user) {
-		return _accountService.createUserAccount(username, generatePassword(),
-				user.getFirstname(), user.getLastname(), user.getEmail(),
-				timezone, accountName, accountType, domainId, networkDomain,
-				details, accountUUID, userUUID);
-	}
-
-	@Override
-	public void execute() throws ServerApiException {
-		final CallContext callContext = getCurrentContext();
-		callContext.setEventDetails("Account Name: " + accountName
-				+ ", Domain Id:" + domainId);
-		try {
-			final LdapUser user = _ldapManager.getUser(username);
-			validateUser(user);
-			final UserAccount userAccount = createCloudstackUserAccount(user);
-			if (userAccount != null) {
-				final AccountResponse response = _responseGenerator
-						.createUserAccountResponse(userAccount);
-				response.setResponseName(getCommandName());
-				setResponseObject(response);
-			} else {
-				throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR,
-						"Failed to create a user account");
-			}
-		} catch (final NamingException e) {
-			throw new ServerApiException(
-					ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR,
-					"No LDAP user exists with the username of " + username);
-		}
-	}
-
-	private String generatePassword() throws ServerApiException {
-		try {
-			final SecureRandom randomGen = SecureRandom.getInstance("SHA1PRNG");
-			final byte bytes[] = new byte[20];
-			randomGen.nextBytes(bytes);
-			return Base64.encode(bytes).toString();
-		} catch (final NoSuchAlgorithmException e) {
-			throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR,
-					"Failed to generate random password");
-		}
-	}
-
-	@Override
-	public String getCommandName() {
-		return s_name;
-	}
-
-	CallContext getCurrentContext() {
-		return CallContext.current();
-	}
-
-	@Override
-	public long getEntityOwnerId() {
-		return Account.ACCOUNT_ID_SYSTEM;
-	}
-
-	private boolean validateUser(final LdapUser user) throws ServerApiException {
-		if (user.getEmail() == null) {
-			throw new ServerApiException(
-					ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, username
-							+ " has no email address set within LDAP");
-		}
-		if (user.getFirstname() == null) {
-			throw new ServerApiException(
-					ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, username
-							+ " has no firstname set within LDAP");
-		}
-		if (user.getLastname() == null) {
-			throw new ServerApiException(
-					ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, username
-							+ " has no lastname set within LDAP");
-		}
-		return true;
-	}
+    public static final Logger s_logger = Logger
+            .getLogger(LdapCreateAccountCmd.class.getName());
+    private static final String s_name = "createaccountresponse";
+
+    @Inject
+    private LdapManager _ldapManager;
+
+    @Parameter(name = ApiConstants.ACCOUNT, type = CommandType.STRING, description = "Creates the user under the specified account. If no account is specified, the username will be used as the account name.")
+    private String accountName;
+
+    @Parameter(name = ApiConstants.ACCOUNT_TYPE, type = CommandType.SHORT, required = true, description = "Type of the account.  Specify 0 for user, 1 for root admin, and 2 for domain admin")
+    private Short accountType;
+
+    @Parameter(name = ApiConstants.DOMAIN_ID, type = CommandType.UUID, entityType = DomainResponse.class, description = "Creates the user under the specified domain.")
+    private Long domainId;
+
+    @Parameter(name = ApiConstants.TIMEZONE, type = CommandType.STRING, description = "Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format.")
+    private String timezone;
+
+    @Parameter(name = ApiConstants.USERNAME, type = CommandType.STRING, required = true, description = "Unique username.")
+    private String username;
+
+    @Parameter(name = ApiConstants.NETWORK_DOMAIN, type = CommandType.STRING, description = "Network domain for the account's networks")
+    private String networkDomain;
+
+    @Parameter(name = ApiConstants.ACCOUNT_DETAILS, type = CommandType.MAP, description = "details for account used to store specific parameters")
+    private Map<String, String> details;
+
+    @Parameter(name = ApiConstants.ACCOUNT_ID, type = CommandType.STRING, description = "Account UUID, required for adding account from external provisioning system")
+    private String accountUUID;
+
+    @Parameter(name = ApiConstants.USER_ID, type = CommandType.STRING, description = "User UUID, required for adding account from external provisioning system")
+    private String userUUID;
+
+    public LdapCreateAccountCmd() {
+        super();
+    }
+
+    public LdapCreateAccountCmd(final LdapManager ldapManager,
+                                final AccountService accountService) {
+        super();
+        _ldapManager = ldapManager;
+        _accountService = accountService;
+    }
+
+    UserAccount createCloudstackUserAccount(final LdapUser user) {
+        return _accountService.createUserAccount(username, generatePassword(),
+                user.getFirstname(), user.getLastname(), user.getEmail(),
+                timezone, accountName, accountType, domainId, networkDomain,
+                details, accountUUID, userUUID);
+    }
+
+    @Override
+    public void execute() throws ServerApiException {
+        final CallContext callContext = getCurrentContext();
+        callContext.setEventDetails("Account Name: " + accountName
+                + ", Domain Id:" + domainId);
+        try {
+            final LdapUser user = _ldapManager.getUser(username);
+            validateUser(user);
+            final UserAccount userAccount = createCloudstackUserAccount(user);
+            if (userAccount != null) {
+                final AccountResponse response = _responseGenerator
+                        .createUserAccountResponse(userAccount);
+                response.setResponseName(getCommandName());
+                setResponseObject(response);
+            } else {
+                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR,
+                        "Failed to create a user account");
+            }
+        } catch (final NamingException e) {
+            throw new ServerApiException(
+                    ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR,
+                    "No LDAP user exists with the username of " + username);
+        }
+    }
+
+    private String generatePassword() throws ServerApiException {
+        final SecureRandom random = new SecureRandom();
+        final int length = 20;
+        final String characters = "abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789!@£$%^&*()_+=";
+
+        String password = "";
+        for (int i = 0; i < length; i++) {
+            int index = (int) (random.nextDouble() * characters.length());
+            password += characters.charAt(index);
+        }
+        return password;
+    }
+
+    @Override
+    public String getCommandName() {
+        return s_name;
+    }
+
+    CallContext getCurrentContext() {
+        return CallContext.current();
+    }
+
+    @Override
+    public long getEntityOwnerId() {
+        return Account.ACCOUNT_ID_SYSTEM;
+    }
+
+    private boolean validateUser(final LdapUser user) throws ServerApiException {
+        if (user.getEmail() == null) {
+            throw new ServerApiException(
+                    ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, username
+                    + " has no email address set within LDAP");
+        }
+        if (user.getFirstname() == null) {
+            throw new ServerApiException(
+                    ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, username
+                    + " has no firstname set within LDAP");
+        }
+        if (user.getLastname() == null) {
+            throw new ServerApiException(
+                    ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, username
+                    + " has no lastname set within LDAP");
+        }
+        return true;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9776e1af/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapImportUsersCmd.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapImportUsersCmd.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapImportUsersCmd.java
index 1855d5d..d82276c 100644
--- a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapImportUsersCmd.java
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/api/command/LdapImportUsersCmd.java
@@ -34,7 +34,6 @@ import org.apache.cloudstack.ldap.LdapUser;
 import org.apache.cloudstack.ldap.NoLdapUserMatchingQueryException;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
-import org.bouncycastle.util.encoders.Base64;
 
 import com.cloud.domain.Domain;
 import com.cloud.exception.*;
@@ -171,13 +170,15 @@ public class LdapImportUsersCmd extends BaseListCmd {
     }
 
     private String generatePassword() throws ServerApiException {
-        try {
-            final SecureRandom randomGen = SecureRandom.getInstance("SHA1PRNG");
-            final byte bytes[] = new byte[20];
-            randomGen.nextBytes(bytes);
-            return Base64.encode(bytes).toString();
-        } catch (final NoSuchAlgorithmException e) {
-            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to generate random password");
+        final SecureRandom random = new SecureRandom();
+        final int length = 20;
+        final String characters = "abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789!@£$%^&*()_+=";
+
+        String password = "";
+        for (int i = 0; i < length; i++) {
+            int index = (int) (random.nextDouble() * characters.length());
+            password += characters.charAt(index);
         }
+        return password;
     }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9776e1af/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapContextFactory.java
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapContextFactory.java b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapContextFactory.java
index ceeed68..c0d5d50 100644
--- a/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapContextFactory.java
+++ b/plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapContextFactory.java
@@ -95,8 +95,6 @@ public class LdapContextFactory {
 
 		environment.put(Context.INITIAL_CONTEXT_FACTORY, factory);
 		environment.put(Context.PROVIDER_URL, url);
-		environment.put("com.sun.jndi.ldap.read.timeout", "500");
-		environment.put("com.sun.jndi.ldap.connect.pool", "true");
 
 		enableSSL(environment);
 		setAuthentication(environment, isSystemContext);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9776e1af/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapAuthenticatorSpec.groovy
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapAuthenticatorSpec.groovy b/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapAuthenticatorSpec.groovy
index 416c133..51f8e84 100644
--- a/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapAuthenticatorSpec.groovy
+++ b/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapAuthenticatorSpec.groovy
@@ -34,7 +34,7 @@ class LdapAuthenticatorSpec extends spock.lang.Specification {
 		when: "A user authentications"
         def result = ldapAuthenticator.authenticate("rmurphy", "password", 0, null)
 		then: "their authentication fails"
-		result == false
+		result.first() == false
     }
 
     def "Test failed authentication due to ldap bind being unsuccessful"() {
@@ -51,7 +51,7 @@ class LdapAuthenticatorSpec extends spock.lang.Specification {
 		def result = ldapAuthenticator.authenticate("rmurphy", "password", 0, null)
 
 		then: "their authentication fails"
-		result == false
+		result.first() == false
     }
 
     def "Test failed authentication due to ldap not being configured"() {
@@ -66,7 +66,7 @@ class LdapAuthenticatorSpec extends spock.lang.Specification {
 		when: "The user authenticates"
 		def result = ldapAuthenticator.authenticate("rmurphy", "password", 0, null)
 		then: "their authentication fails"
-		result == false
+		result.first() == false
     }
 
 	def "Test successful authentication"() {
@@ -83,7 +83,7 @@ class LdapAuthenticatorSpec extends spock.lang.Specification {
 		def result = ldapAuthenticator.authenticate("rmurphy", "password", 0, null)
 
 		then: "their authentication passes"
-		result == true
+		result.first() == true
 	}
 
     def "Test that encode doesn't change the input"() {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9776e1af/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapManagerImplSpec.groovy
----------------------------------------------------------------------
diff --git a/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapManagerImplSpec.groovy b/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapManagerImplSpec.groovy
index 42988e0..c0ca2e8 100644
--- a/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapManagerImplSpec.groovy
+++ b/plugins/user-authenticators/ldap/test/groovy/org/apache/cloudstack/ldap/LdapManagerImplSpec.groovy
@@ -297,30 +297,16 @@ class LdapManagerImplSpec extends spock.lang.Specification {
 		thrown InvalidParameterValueException
     }
 
-    def supportedLdapCommands() {
-	List<Class<?>> cmdList = new ArrayList<Class<?>>();
-	cmdList.add(LdapUserSearchCmd.class);
-	cmdList.add(LdapListUsersCmd.class);
-	cmdList.add(LdapAddConfigurationCmd.class);
-	cmdList.add(LdapDeleteConfigurationCmd.class);
-	cmdList.add(LdapListConfigurationCmd.class);
-	cmdList.add(LdapCreateAccountCmd.class);
-	cmdList.add(LdapImportUsersCmd.class);
-	return cmdList
-    }
-
     def "Test that getCommands isn't empty"() {
 		given: "We have an LdapConfigurationDao, LdapContextFactory, LdapUserManager and LdapManager"
 		def ldapConfigurationDao = Mock(LdapConfigurationDaoImpl)
 		def ldapContextFactory = Mock(LdapContextFactory)
 		def ldapUserManager = Mock(LdapUserManager)
-	final List<Class<?>> cmdList = supportedLdapCommands()
 		def ldapManager = new LdapManagerImpl(ldapConfigurationDao, ldapContextFactory, ldapUserManager)
 		when: "Get commands is called"
 		def result = ldapManager.getCommands()
-		then: "it must return all the commands"
+		then: "it must contain commands"
 		result.size() > 0
-	result == cmdList
     }
 
     def "Testing of listConfigurations"() {


[07/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
findbugs fixes for ApiServer, ApiSerializerHelper and ApiXmlDocWriter


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

Branch: refs/heads/4.3
Commit: 594fd42d5dd199059c44e735bd0e913aad43d4c5
Parents: c3a63b6
Author: Daan Hoogland <da...@onecht.net>
Authored: Sun Jan 26 13:27:37 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:36:46 2014 +0100

----------------------------------------------------------------------
 .../src/com/cloud/api/ApiSerializerHelper.java  |  2 +-
 server/src/com/cloud/api/ApiServer.java         | 22 +++++++++++++++-----
 server/src/com/cloud/api/ApiServlet.java        |  3 ++-
 .../com/cloud/api/EncodedStringTypeAdapter.java |  2 +-
 server/src/com/cloud/api/doc/Alert.java         | 12 ++++++++---
 server/src/com/cloud/api/doc/Command.java       | 13 ++++++++----
 .../api/response/ApiResponseSerializer.java     |  2 +-
 7 files changed, 40 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/594fd42d/server/src/com/cloud/api/ApiSerializerHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiSerializerHelper.java b/server/src/com/cloud/api/ApiSerializerHelper.java
index e65d5e7..67b9a38 100644
--- a/server/src/com/cloud/api/ApiSerializerHelper.java
+++ b/server/src/com/cloud/api/ApiSerializerHelper.java
@@ -24,7 +24,7 @@ import org.apache.cloudstack.api.ResponseObject;
 
 public class ApiSerializerHelper {
     public static final Logger s_logger = Logger.getLogger(ApiSerializerHelper.class.getName());
-    public static String token = "/";
+    private static String token = "/";
 
     public static String toSerializedString(Object result) {
         if (result != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/594fd42d/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index bf987be..c6a581c 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -159,9 +159,9 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
     private static final Logger s_logger = Logger.getLogger(ApiServer.class.getName());
     private static final Logger s_accessLogger = Logger.getLogger("apiserver." + ApiServer.class.getName());
 
-    public static boolean encodeApiResponse = false;
-    public static String jsonContentType = "text/javascript";
-    public static String controlCharacters = "[\000-\011\013-\014\016-\037\177]"; // Non-printable ASCII characters - numbers 0 to 31 and 127 decimal
+    private static boolean encodeApiResponse = false;
+    private static String jsonContentType = "text/javascript";
+    private static String controlCharacters = "[\000-\011\013-\014\016-\037\177]"; // Non-printable ASCII characters - numbers 0 to 31 and 127 decimal
     @Inject ApiDispatcher _dispatcher;
 
     @Inject private AccountManager _accountMgr;
@@ -237,7 +237,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
             _apiNameCmdClassMap.put(apiName, cmdClass);
         }
 
-        encodeApiResponse = Boolean.valueOf(_configDao.getValue(Config.EncodeApiResponse.key()));
+        setEncodeApiResponse(Boolean.valueOf(_configDao.getValue(Config.EncodeApiResponse.key())));
         String jsonType = _configDao.getValue(Config.JavaScriptDefaultContentType.key());
         if (jsonType != null) {
             jsonContentType = jsonType;
@@ -375,7 +375,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
                     buildAuditTrail(auditTrailSb, command[0], response);
                 } else {
                     if (!command[0].equalsIgnoreCase("login") && !command[0].equalsIgnoreCase("logout")) {
-                        String errorString = "Unknown API command: " + ((command == null) ? "null" : command[0]);
+                        String errorString = "Unknown API command: " + command[0];
                         s_logger.warn(errorString);
                         auditTrailSb.append(" " + errorString);
                         throw new ServerApiException(ApiErrorCode.UNSUPPORTED_ACTION_ERROR, errorString);
@@ -1115,4 +1115,16 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
     public void setApiAccessCheckers(List<APIChecker> _apiAccessCheckers) {
         this._apiAccessCheckers = _apiAccessCheckers;
     }
+
+    public static boolean isEncodeApiResponse() {
+        return encodeApiResponse;
+    }
+
+    private static void setEncodeApiResponse(boolean encodeApiResponse) {
+        ApiServer.encodeApiResponse = encodeApiResponse;
+    }
+
+    public static String getJsonContentType() {
+        return jsonContentType;
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/594fd42d/server/src/com/cloud/api/ApiServlet.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServlet.java b/server/src/com/cloud/api/ApiServlet.java
index def18d0..6dd826a 100755
--- a/server/src/com/cloud/api/ApiServlet.java
+++ b/server/src/com/cloud/api/ApiServlet.java
@@ -34,6 +34,7 @@ import javax.servlet.http.HttpSession;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.support.SpringBeanAutowiringSupport;
+
 import org.apache.cloudstack.api.ApiErrorCode;
 import org.apache.cloudstack.api.BaseCmd;
 import org.apache.cloudstack.api.ServerApiException;
@@ -366,7 +367,7 @@ public class ApiServlet extends HttpServlet {
     private void writeResponse(HttpServletResponse resp, String response, int responseCode, String responseType) {
         try {
             if (BaseCmd.RESPONSE_TYPE_JSON.equalsIgnoreCase(responseType)) {
-                resp.setContentType(ApiServer.jsonContentType + "; charset=UTF-8");
+                resp.setContentType(ApiServer.getJsonContentType() + "; charset=UTF-8");
             } else {
                 resp.setContentType("text/xml; charset=UTF-8");
             }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/594fd42d/server/src/com/cloud/api/EncodedStringTypeAdapter.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/EncodedStringTypeAdapter.java b/server/src/com/cloud/api/EncodedStringTypeAdapter.java
index daec4fd..dca5828 100644
--- a/server/src/com/cloud/api/EncodedStringTypeAdapter.java
+++ b/server/src/com/cloud/api/EncodedStringTypeAdapter.java
@@ -36,7 +36,7 @@ public class EncodedStringTypeAdapter implements JsonSerializer<String>{
     }
 
     private static String encodeString(String value) {
-        if (!ApiServer.encodeApiResponse) {
+        if (!ApiServer.isEncodeApiResponse()) {
             return value;
         }
         try {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/594fd42d/server/src/com/cloud/api/doc/Alert.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/doc/Alert.java b/server/src/com/cloud/api/doc/Alert.java
index 211f2e9..bfd3b2a 100644
--- a/server/src/com/cloud/api/doc/Alert.java
+++ b/server/src/com/cloud/api/doc/Alert.java
@@ -16,9 +16,15 @@
 // under the License.
 package com.cloud.api.doc;
 
-public class Alert {
-    private String type;
-    private int value;
+import java.io.Serializable;
+
+public class Alert implements Serializable{
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 960408026527837920L;
+    private final String type;
+    private final int value;
     
     public Alert(String type, int value) {
         this.type = type;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/594fd42d/server/src/com/cloud/api/doc/Command.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/doc/Command.java b/server/src/com/cloud/api/doc/Command.java
index a267605..1946b30 100644
--- a/server/src/com/cloud/api/doc/Command.java
+++ b/server/src/com/cloud/api/doc/Command.java
@@ -16,11 +16,16 @@
 // under the License.
 package com.cloud.api.doc;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 
-public class Command {
+public class Command implements Serializable{
 	
-	private String name;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -4318310162503004975L;
+    private String name;
 	private String description;
     private String usage;
 	private boolean isAsync;
@@ -84,7 +89,7 @@ public class Command {
 	}
 	
     public Argument getReqArgByName(String name){
-		for (Argument a : this.getRequest()) {
+		for (Argument a : getRequest()) {
 			if (a.getName().equals(name)) {
                 return a;
             }
@@ -93,7 +98,7 @@ public class Command {
 	}
 	
 	public Argument getResArgByName(String name){
-		for (Argument a : this.getResponse()) {
+		for (Argument a : getResponse()) {
 			if (a.getName().equals(name)) {
                 return a;
             }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/594fd42d/server/src/com/cloud/api/response/ApiResponseSerializer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/response/ApiResponseSerializer.java b/server/src/com/cloud/api/response/ApiResponseSerializer.java
index fb32e7d..a3e6f0f 100644
--- a/server/src/com/cloud/api/response/ApiResponseSerializer.java
+++ b/server/src/com/cloud/api/response/ApiResponseSerializer.java
@@ -277,7 +277,7 @@ public class ApiResponseSerializer {
     }
 
     private static String encodeParam(String value) {
-        if (!ApiServer.encodeApiResponse) {
+        if (!ApiServer.isEncodeApiResponse()) {
             return value;
         }
         try {


[02/11] git commit: updated refs/heads/4.3 to d6bbfbb

Posted by da...@apache.org.
nullpointer dereference guarded

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

Branch: refs/heads/4.3
Commit: 5296c12d2ad87c24a69cafae6a444b650f258485
Parents: da80eaf
Author: Daan Hoogland <da...@onecht.net>
Authored: Sat Jan 25 23:26:53 2014 +0100
Committer: Daan Hoogland <dh...@schubergphilis.com>
Committed: Wed Jan 29 21:27:49 2014 +0100

----------------------------------------------------------------------
 .../impl/UserConcentratedAllocator.java         | 58 ++++++++------------
 1 file changed, 24 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5296c12d/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java b/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
index 3f1994e..8101da9 100755
--- a/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
+++ b/server/src/com/cloud/agent/manager/allocator/impl/UserConcentratedAllocator.java
@@ -32,30 +32,18 @@ import org.apache.log4j.Logger;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 
 import com.cloud.agent.manager.allocator.PodAllocator;
-import com.cloud.capacity.CapacityVO;
-import com.cloud.capacity.dao.CapacityDao;
 import com.cloud.dc.DataCenter;
-import com.cloud.dc.HostPodVO;
 import com.cloud.dc.Pod;
-import com.cloud.dc.dao.HostPodDao;
 import com.cloud.offering.ServiceOffering;
-import com.cloud.service.dao.ServiceOfferingDao;
-import com.cloud.storage.VolumeVO;
-import com.cloud.storage.dao.VMTemplatePoolDao;
-import com.cloud.storage.dao.VolumeDao;
 import com.cloud.template.VirtualMachineTemplate;
 import com.cloud.utils.DateUtil;
 import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Pair;
 import com.cloud.utils.component.AdapterBase;
 import com.cloud.utils.db.SearchCriteria;
-import com.cloud.vm.UserVmVO;
-import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachine.State;
 import com.cloud.vm.VirtualMachineProfile;
-import com.cloud.vm.dao.UserVmDao;
-import com.cloud.vm.dao.VMInstanceDao;
 
 @Local(value = PodAllocator.class)
 public class UserConcentratedAllocator extends AdapterBase implements PodAllocator {
@@ -246,35 +234,37 @@ public class UserConcentratedAllocator extends AdapterBase implements PodAllocat
         // List<VMInstanceVO> vms = _vmInstanceDao.listByLastHostId(hostId);
         List<VMInstanceVO> vms = null;
         long usedCapacity = 0;
-        for (VMInstanceVO vm : vms) {
-            if (skipCalculation(vm)) {
-                continue;
-            }
+        if (vms != null) {
+            for (VMInstanceVO vm : vms) {
+                if (skipCalculation(vm)) {
+                    continue;
+                }
 
-            ServiceOffering so = null;
+                ServiceOffering so = null;
 
-            if (vm.getType() == VirtualMachine.Type.User) {
-                UserVmVO userVm = _vmDao.findById(vm.getId());
-                if (userVm == null) {
-                    continue;
+                if (vm.getType() == VirtualMachine.Type.User) {
+                    UserVmVO userVm = _vmDao.findById(vm.getId());
+                    if (userVm == null) {
+                        continue;
+                    }
                 }
-            }
 
-            so = _offeringDao.findById(vm.getId(), vm.getServiceOfferingId());
+                so = _offeringDao.findById(vm.getId(), vm.getServiceOfferingId());
 
-            if (capacityType == CapacityVO.CAPACITY_TYPE_MEMORY) {
-                usedCapacity += so.getRamSize() * 1024L * 1024L;
+                if (capacityType == CapacityVO.CAPACITY_TYPE_MEMORY) {
+                    usedCapacity += so.getRamSize() * 1024L * 1024L;
 
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("Counting memory capacity used by vm: " + vm.getId() + ", size: " + so.getRamSize() + "MB, host: " + hostId
-                            + ", currently counted: " + usedCapacity + " Bytes");
-                }
-            } else if (capacityType == CapacityVO.CAPACITY_TYPE_CPU) {
-                usedCapacity += so.getCpu() * so.getSpeed();
+                    if (s_logger.isDebugEnabled()) {
+                        s_logger.debug("Counting memory capacity used by vm: " + vm.getId() + ", size: " + so.getRamSize() + "MB, host: " + hostId
+                                + ", currently counted: " + usedCapacity + " Bytes");
+                    }
+                } else if (capacityType == CapacityVO.CAPACITY_TYPE_CPU) {
+                    usedCapacity += so.getCpu() * so.getSpeed();
 
-                if (s_logger.isDebugEnabled()) {
-                    s_logger.debug("Counting cpu capacity used by vm: " + vm.getId() + ", cpu: " + so.getCpu() + ", speed: " + so.getSpeed()
-                            + ", currently counted: " + usedCapacity + " Bytes");
+                    if (s_logger.isDebugEnabled()) {
+                        s_logger.debug("Counting cpu capacity used by vm: " + vm.getId() + ", cpu: " + so.getCpu() + ", speed: " + so.getSpeed()
+                                + ", currently counted: " + usedCapacity + " Bytes");
+                    }
                 }
             }
         }