Adding Instance count rounding algorithm class

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

Branch: refs/heads/master
Commit: 8c3a6c68833d2cef506ea9a33135b28ea005f3f5
Parents: ffe345f
Author: Lahiru Sandaruwan <[email protected]>
Authored: Sat Nov 8 20:02:21 2014 +0530
Committer: Lahiru Sandaruwan <[email protected]>
Committed: Sat Nov 8 20:02:21 2014 +0530

----------------------------------------------------------------------
 .../algorithm/AutoscaleAlgorithm.java           |  2 +-
 .../InstanceCountRoundingAlgorithm.java         | 22 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/8c3a6c68/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java
index 64cba92..8ae0fb6 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/AutoscaleAlgorithm.java
@@ -25,7 +25,7 @@ import 
org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
 
 
 /**
- * This interface is should be implemented by all the algorithms that are 
there to select partitions of a particuler
+ * This interface is should be implemented by all the algorithms that are 
there to select partitions of a particular
  * partition group
  */
 public interface AutoscaleAlgorithm {

http://git-wip-us.apache.org/repos/asf/stratos/blob/8c3a6c68/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/InstanceCountRoundingAlgorithm.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/InstanceCountRoundingAlgorithm.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/InstanceCountRoundingAlgorithm.java
new file mode 100644
index 0000000..1d59c8e
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/InstanceCountRoundingAlgorithm.java
@@ -0,0 +1,22 @@
+package org.apache.stratos.autoscaler.algorithm;
+
+public class InstanceCountRoundingAlgorithm {
+
+    public double getFloorCount(float requiredInstances){
+
+        return (int)Math.floor(requiredInstances);
+    }
+
+    public int getCeilCount(float requiredInstances){
+
+        return (int)Math.ceil(requiredInstances);
+    }
+
+    public int getFractionBasedCount(float requiredInstances, float fraction){
+
+        return (requiredInstances - Math.floor(requiredInstances) > fraction) 
? (int)Math.ceil(requiredInstances)
+                : (int)Math.floor(requiredInstances);
+    }
+
+
+}

Reply via email to