retrying if container creation failed

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

Branch: refs/heads/docker-integration
Commit: becdbf2015e79f7b667c1cd16591e705bd116d4a
Parents: 0fc8b90
Author: R-Rajkumar <[email protected]>
Authored: Wed Sep 17 10:59:38 2014 +0530
Committer: R-Rajkumar <[email protected]>
Committed: Wed Sep 17 10:59:38 2014 +0530

----------------------------------------------------------------------
 .../monitor/KubernetesClusterMonitor.java       | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/becdbf20/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
index dc355d5..a534bed 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/KubernetesClusterMonitor.java
@@ -28,6 +28,9 @@ public class KubernetesClusterMonitor implements Runnable{
     private String lbReferenceType;
     private boolean hasPrimary;
     private int numberOfReplicasInServiceCluster = 0;
+    // is container created successfully?
+       boolean success = false;
+       int retryInterval = 60000;
        
     public KubernetesClusterMonitor(KubernetesClusterContext 
kubernetesClusterCtxt, String serviceClusterID, String serviceId, 
                AutoscalePolicy autoscalePolicy) {
@@ -92,17 +95,20 @@ public class KubernetesClusterMonitor implements Runnable{
 
                        if (this.numberOfReplicasInServiceCluster < 
minReplicas) {
                                
-                               int numOfAdditionalReplicas = minReplicas - 
this.numberOfReplicasInServiceCluster;
-
-                               for (int i = 0; i < numOfAdditionalReplicas; 
i++) {
+                               while (success) {
                                        try {
                                                
CloudControllerClient.getInstance().createContainer(kubernetesClusterId, 
clusterId);
-                                               
this.numberOfReplicasInServiceCluster++;
+                                               success = true;
+                                               
numberOfReplicasInServiceCluster = minReplicas;
                                        } catch (Throwable e) {
-                                   String message = "Cannot create a 
container";
-                                   log.error(message, e);
-                                   throw new RuntimeException(message, e);
+                                               String message = "Cannot create 
a container, will retry in "+(retryInterval/1000)+"s";
+                                               log.debug(message, e);
                                        }
+                                       
+                       try {
+                           Thread.sleep(retryInterval);
+                       } catch (InterruptedException e1) {
+                       }
                                }
                        }
                } finally {

Reply via email to