cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From prachida...@apache.org
Subject [8/50] [abbrv] git commit: refs/heads/affinity_groups - fix compile
Date Thu, 14 Mar 2013 22:35:17 GMT
fix compile


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

Branch: refs/heads/affinity_groups
Commit: f4874a459b7405823d2c523d8eeef5b0bc00a6f1
Parents: 0dca6d0
Author: Edison Su <edison.su@citrix.com>
Authored: Tue Feb 26 21:44:36 2013 -0800
Committer: Prachi Damle <prachi@cloud.com>
Committed: Thu Mar 14 15:12:15 2013 -0700

----------------------------------------------------------------------
 plugins/storage-allocators/random/pom.xml          |    8 +-
 .../allocator/RandomStoragePoolAllocator.java      |   78 +++++++++++++++
 2 files changed, 82 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f4874a45/plugins/storage-allocators/random/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage-allocators/random/pom.xml b/plugins/storage-allocators/random/pom.xml
index 223b7cd..6b91908 100644
--- a/plugins/storage-allocators/random/pom.xml
+++ b/plugins/storage-allocators/random/pom.xml
@@ -16,7 +16,8 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <artifactId>cloud-plugin-storage-allocator-random</artifactId>
   <name>Apache CloudStack Plugin - Storage Allocator Random</name>
@@ -26,12 +27,11 @@
     <version>4.2.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
-    <dependencies>
+  <dependencies>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
       <artifactId>cloud-engine-storage</artifactId>
       <version>${project.version}</version>
-      <scope>test</scope>
     </dependency>
-    </dependencies>
+  </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f4874a45/plugins/storage-allocators/random/src/org/apache/cloudstack/storage/allocator/RandomStoragePoolAllocator.java
----------------------------------------------------------------------
diff --git a/plugins/storage-allocators/random/src/org/apache/cloudstack/storage/allocator/RandomStoragePoolAllocator.java
b/plugins/storage-allocators/random/src/org/apache/cloudstack/storage/allocator/RandomStoragePoolAllocator.java
new file mode 100644
index 0000000..cbe6647
--- /dev/null
+++ b/plugins/storage-allocators/random/src/org/apache/cloudstack/storage/allocator/RandomStoragePoolAllocator.java
@@ -0,0 +1,78 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License.  You may obtain a copy of the License at
+//
+//    http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.apache.cloudstack.storage.allocator;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.ejb.Local;
+
+import org.apache.cloudstack.engine.subsystem.api.storage.ScopeType;
+import org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator;
+import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
+import org.apache.log4j.Logger;
+
+import com.cloud.deploy.DeploymentPlan;
+import com.cloud.deploy.DeploymentPlanner.ExcludeList;
+import com.cloud.storage.StoragePool;
+import com.cloud.vm.DiskProfile;
+import com.cloud.vm.VirtualMachine;
+import com.cloud.vm.VirtualMachineProfile;
+
+@Local(value=StoragePoolAllocator.class)
+public class RandomStoragePoolAllocator extends AbstractStoragePoolAllocator {
+    private static final Logger s_logger = Logger.getLogger(RandomStoragePoolAllocator.class);
+    
+    @Override
+    public List<StoragePool> select(DiskProfile dskCh, VirtualMachineProfile<? extends
VirtualMachine> vmProfile, DeploymentPlan plan, ExcludeList avoid, int returnUpTo) {
+
+    	List<StoragePool> suitablePools = new ArrayList<StoragePool>();
+    	
+		long dcId = plan.getDataCenterId();
+		Long podId = plan.getPodId();
+		Long clusterId = plan.getClusterId();
+        s_logger.debug("Looking for pools in dc: " + dcId + "  pod:" + podId + "  cluster:"
+ clusterId);
+    	List<StoragePoolVO> pools = _storagePoolDao.listBy(dcId, podId, clusterId, ScopeType.CLUSTER);
+        if (pools.size() == 0) {
+        	if (s_logger.isDebugEnabled()) {
+        		s_logger.debug("No storage pools available for allocation, returning");
+    		}
+            return suitablePools;
+        }
+        
+        Collections.shuffle(pools);
+    	if (s_logger.isDebugEnabled()) {
+            s_logger.debug("RandomStoragePoolAllocator has " + pools.size() + " pools to
check for allocation");
+        }
+        for (StoragePoolVO pool: pools) {
+        	if(suitablePools.size() == returnUpTo){
+        		break;
+        	}        	
+        	StoragePool pol = (StoragePool)this.dataStoreMgr.getPrimaryDataStore(pool.getId());
+            
+        	if (filter(avoid, pol, dskCh, plan)) {
+        		suitablePools.add(pol);
+        	}
+        }
+
+        if (s_logger.isDebugEnabled()) {
+            s_logger.debug("RandomStoragePoolAllocator returning "+suitablePools.size() +"
suitable storage pools");
+        }
+
+        return suitablePools;
+    }
+}


Mime
View raw message