You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2015/03/03 12:29:08 UTC

[1/2] stratos git commit: more validation on application policy against application

Repository: stratos
Updated Branches:
  refs/heads/master 38486fca9 -> 57b1dcf8c


more validation on application policy against application


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

Branch: refs/heads/master
Commit: 9281aaaf1fa43c22db2cb466dd8764fc8ff75e70
Parents: 38486fc
Author: R-Rajkumar <rr...@gmail.com>
Authored: Tue Mar 3 16:55:12 2015 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Tue Mar 3 16:55:12 2015 +0530

----------------------------------------------------------------------
 .../parser/DefaultApplicationParser.java        | 16 ++++++++++---
 .../stratos/autoscaler/util/AutoscalerUtil.java | 25 +++++++++++++++++++-
 2 files changed, 37 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/9281aaaf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
index 62cd69d..e2c9f8a 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
@@ -291,7 +291,7 @@ public class DefaultApplicationParser implements ApplicationParser {
                     }
                 }
 
-                // Set termination behaviour
+                // Set termination behavior
                 String terminationBehaviour = dependencyContext.getTerminationBehaviour();
                 validateTerminationBehavior(terminationBehaviour);
                 dependencyOrder.setTerminationBehaviour(terminationBehaviour);
@@ -700,14 +700,24 @@ public class DefaultApplicationParser implements ApplicationParser {
         if (startupOrders != null) {
             setStartUpOrder = ParserUtils.convertStartupOrder(startupOrders, groupCtxt);
             dependencyOrder.setStartupOrders(setStartUpOrder);
+        } else {
+        	if (log.isDebugEnabled()) {
+        		String msg = String.format("No start up order defined [group-alias] %s", groupCtxt.getAlias());
+        		log.debug(msg);
+			}
         }
 
         String[] scaleDependents = getScaleDependentForGroup(groupCtxt.getName(), serviceGroup);
         if (scaleDependents != null) {
             dependencyOrder.setScalingDependents(ParserUtils.convertScalingDependentList(scaleDependents, groupCtxt));
+        } else {
+        	if (log.isDebugEnabled()) {
+        		String msg = String.format("No scaling dependent defined [group-alias] %s", groupCtxt.getAlias());
+        		log.debug(msg);
+			}
         }
 
-        dependencyOrder.setTerminationBehaviour(getKillbehaviour(groupCtxt.getName(), serviceGroup));
+        dependencyOrder.setTerminationBehaviour(getTerminationBehaviour(groupCtxt.getName(), serviceGroup));
         group.setDependencyOrder(dependencyOrder);
 
         Map<String, Map<String, ClusterDataHolder>> clusterDataMap;
@@ -828,7 +838,7 @@ public class DefaultApplicationParser implements ApplicationParser {
      * @return String indicating the kill behavior
      * @throws ApplicationDefinitionException if an error occurs
      */
-    private String getKillbehaviour(String serviceGroupName, ServiceGroup serviceGroup) throws ApplicationDefinitionException {
+    private String getTerminationBehaviour(String serviceGroupName, ServiceGroup serviceGroup) throws ApplicationDefinitionException {
 
         ServiceGroup nestedServiceGroup = getNestedServiceGroup(serviceGroupName, serviceGroup);
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/9281aaaf/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
index 97b8cb8..9e4cdec 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/util/AutoscalerUtil.java
@@ -607,7 +607,16 @@ public class AutoscalerUtil {
 				throw new InvalidApplicationPolicyException(msg);
 			}
 			
-			//TODO validate application policy against the given application
+			// validate application policy against the given application
+			if (!isAppUsingNetworkPartitionId(applicationId, networkPartitionId)) {
+				String msg = String.format("Invalid Application Policy. "
+						+ "Cause -> Network partition [network-partition-id] %s is not used in application [application-id] %s. "
+						+ "Hence application bursting will fail. Either remove %s from application policy or make all the cartridges available in %s", 
+						networkPartitionId, applicationId, networkPartitionId, networkPartitionId);
+				log.error(msg);
+				throw new InvalidApplicationPolicyException(msg);
+			}
+			
 			
 			// counting number of network partitions which are active by default
 			if (true == applicationPolicyNetworkPartitionReference.isActiveByDefault()) {
@@ -622,4 +631,18 @@ public class AutoscalerUtil {
 			throw new InvalidApplicationPolicyException(msg);
 		}
     }
+	
+	private static boolean isAppUsingNetworkPartitionId(String applicationId, String networkPartitionId) {
+		if (applicationId == null || StringUtils.isBlank(applicationId) 
+				|| networkPartitionId == null || StringUtils.isBlank(networkPartitionId)) {
+			return false;
+		}
+		List<String> networkPartitionsReferredInApplication = AutoscalerUtil.getNetworkPartitionIdsReferedInApplication(applicationId);
+		for (String appNetworkPartitionId : networkPartitionsReferredInApplication) {
+			if (appNetworkPartitionId != null && appNetworkPartitionId.equals(networkPartitionId)) {
+				return true;
+			}
+		}
+		return false;
+	}
 }


[2/2] stratos git commit: updating esb-php-nested-with-esb-php-nested-with-mysql-php-app sample

Posted by ra...@apache.org.
updating esb-php-nested-with-esb-php-nested-with-mysql-php-app sample


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

Branch: refs/heads/master
Commit: 57b1dcf8c474564380ac9d471a1bb5c1ca62f12a
Parents: 9281aaa
Author: R-Rajkumar <rr...@gmail.com>
Authored: Tue Mar 3 16:55:19 2015 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Tue Mar 3 16:58:17 2015 +0530

----------------------------------------------------------------------
 .../artifacts/application-policy.json                            | 4 ----
 1 file changed, 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/57b1dcf8/samples/applications/esb-php-nested-with-esb-php-nested-with-mysql-php-app/artifacts/application-policy.json
----------------------------------------------------------------------
diff --git a/samples/applications/esb-php-nested-with-esb-php-nested-with-mysql-php-app/artifacts/application-policy.json b/samples/applications/esb-php-nested-with-esb-php-nested-with-mysql-php-app/artifacts/application-policy.json
index 5aa91dd..9d2c6a1 100644
--- a/samples/applications/esb-php-nested-with-esb-php-nested-with-mysql-php-app/artifacts/application-policy.json
+++ b/samples/applications/esb-php-nested-with-esb-php-nested-with-mysql-php-app/artifacts/application-policy.json
@@ -3,10 +3,6 @@
       {
          "id":"network-partition-1",
          "activeByDefault":"true"
-      },
-      {
-         "id":"network-partition-2",
-         "activeByDefault":"false"
       }
    ]
 }