http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/21aadd0a/components/org.apache.stratos.autoscaler/src/test/resources/minimum-autoscaler-rule.drl ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/resources/minimum-autoscaler-rule.drl b/components/org.apache.stratos.autoscaler/src/test/resources/minimum-autoscaler-rule.drl new file mode 100644 index 0000000..69f1890 --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/test/resources/minimum-autoscaler-rule.drl @@ -0,0 +1,62 @@ +/* + * 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.stratos.autoscaler.rule; + +import org.apache.stratos.messaging.domain.topology.Service; +import org.apache.stratos.messaging.domain.topology.Cluster; +import org.apache.stratos.autoscaler.AutoscalerContext; +import org.apache.stratos.autoscaler.ClusterContext; +import org.apache.stratos.autoscaler.Constants; +import org.apache.stratos.autoscaler.policy.PolicyManager; +import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; +import org.apache.stratos.messaging.domain.policy.Partition; +import org.apache.stratos.messaging.domain.policy.PartitionGroup; +import org.apache.stratos.messaging.domain.policy.DeploymentPolicy; +import org.apache.stratos.autoscaler.policy.model.RequestsInFlight; +import org.apache.stratos.autoscaler.policy.model.LoadThresholds; +import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; +import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; +import org.apache.stratos.autoscaler.algorithm.RoundRobin; +import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; +import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator; +import org.apache.commons.logging.Log; + +global org.apache.stratos.autoscaler.policy.PolicyManager $manager; +global org.apache.stratos.autoscaler.AutoscalerContext $context; +global org.apache.commons.logging.Log log; +global org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator $evaluator; +global org.apache.stratos.messaging.domain.topology.Topology $topology; +global java.util.Map partitionCtxts; +global java.lang.String clusterId; + +rule "Minimum Rule" +dialect "mvel" + when + $ctxt : PartitionContext () + eval($ctxt.getCurrentMemberCount() < $ctxt.getMinimumMemberCount()) + + then + int memberCountToBeIncreased = 1 ; + if(AutoscalerRuleEvaluator.delegateSpawn($ctxt.getPartition() ,$clusterId)){ + $ctxt.incrementCurrentMemberCount(memberCountToBeIncreased); + } + +end \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/21aadd0a/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl b/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl new file mode 100644 index 0000000..c2f2a65 --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/test/resources/test-minimum-autoscaler-rule.drl @@ -0,0 +1,60 @@ +/* + * 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.stratos.autoscaler.rule; + +import org.apache.stratos.messaging.domain.topology.Service; +import org.apache.stratos.messaging.domain.topology.Cluster; +import org.apache.stratos.autoscaler.AutoscalerContext; +import org.apache.stratos.autoscaler.ClusterContext; +import org.apache.stratos.autoscaler.Constants; +import org.apache.stratos.autoscaler.policy.PolicyManager; +import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; +import org.apache.stratos.messaging.domain.policy.Partition; +import org.apache.stratos.messaging.domain.policy.PartitionGroup; +import org.apache.stratos.messaging.domain.policy.DeploymentPolicy; +import org.apache.stratos.autoscaler.policy.model.RequestsInFlight; +import org.apache.stratos.autoscaler.policy.model.LoadThresholds; +import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; +import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; +import org.apache.stratos.autoscaler.algorithm.RoundRobin; +import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; +import org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator; +import org.apache.commons.logging.Log; +import java.util.ArrayList; + +global org.apache.stratos.autoscaler.policy.PolicyManager $manager; +global org.apache.stratos.autoscaler.AutoscalerContext $context; +global org.apache.commons.logging.Log log; +global org.apache.stratos.autoscaler.rule.AutoscalerRuleEvaluator $evaluator; +global org.apache.stratos.messaging.domain.topology.Topology $topology; +global org.apache.stratos.messaging.domain.policy.Partition pa; + + +rule "Minimum Rule" +dialect "mvel" + when + $p : ArrayList() + $x : String() from $p + eval(true) + + then + System.out.println($x+ "SSsSS"); +end \ No newline at end of file
