Repository: stratos Updated Branches: refs/heads/master 94dc9ec67 -> 20f17fa3d
Enabling mock iaas in default distribution and refining method comments Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/20f17fa3 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/20f17fa3 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/20f17fa3 Branch: refs/heads/master Commit: 20f17fa3d45106d2d9b4e30d5d3fae037d2d9931 Parents: 94dc9ec Author: Imesh Gunaratne <[email protected]> Authored: Thu May 14 23:56:56 2015 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Thu May 14 23:57:18 2015 +0530 ---------------------------------------------------------------------- .../stratos/mock/iaas/api/MockIaasApi.java | 1 - .../iaas/config/MockHealthStatisticsConfig.java | 14 ++++++- .../mock/iaas/config/MockIaasConfigParser.java | 38 ++++++++++++------ .../mock/iaas/persistence/RegistryManager.java | 12 ++---- .../services/impl/MockAutoscalingFactor.java | 27 ------------- .../mock/iaas/services/impl/MockConstants.java | 4 +- .../iaas/services/impl/MockIaasServiceImpl.java | 39 ++++++++++--------- .../iaas/services/impl/MockScalingFactor.java | 27 +++++++++++++ .../iaas/statistics/MockHealthStatistics.java | 38 +++++++++--------- .../MockHealthStatisticsGenerator.java | 41 +++++++++----------- .../generator/MockHealthStatisticsPattern.java | 11 +++--- .../publisher/MockHealthStatisticsNotifier.java | 6 +-- .../distribution/src/main/conf/mock-iaas.xml | 2 +- 13 files changed, 137 insertions(+), 123 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas.api/src/main/java/org/apache/stratos/mock/iaas/api/MockIaasApi.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas.api/src/main/java/org/apache/stratos/mock/iaas/api/MockIaasApi.java b/components/org.apache.stratos.mock.iaas.api/src/main/java/org/apache/stratos/mock/iaas/api/MockIaasApi.java index 51adad8..ff8222f 100644 --- a/components/org.apache.stratos.mock.iaas.api/src/main/java/org/apache/stratos/mock/iaas/api/MockIaasApi.java +++ b/components/org.apache.stratos.mock.iaas.api/src/main/java/org/apache/stratos/mock/iaas/api/MockIaasApi.java @@ -161,7 +161,6 @@ public class MockIaasApi { /** * Get mock iaas service instance - * * @return */ private MockIaasService getMockIaasService() { http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockHealthStatisticsConfig.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockHealthStatisticsConfig.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockHealthStatisticsConfig.java index 1980579..9a26397 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockHealthStatisticsConfig.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockHealthStatisticsConfig.java @@ -28,16 +28,28 @@ import java.util.List; * Mock health statistics configuration. */ public class MockHealthStatisticsConfig { - List<MockHealthStatisticsPattern> statisticsPatternList; + private List<MockHealthStatisticsPattern> statisticsPatternList; + + /** + * Default constructor + */ public MockHealthStatisticsConfig() { statisticsPatternList = new ArrayList<MockHealthStatisticsPattern>(); } + /** + * Add statistics pattern + * @param statisticsPattern statistics pattern + */ public void addStatisticsPattern(MockHealthStatisticsPattern statisticsPattern) { statisticsPatternList.add(statisticsPattern); } + /** + * Get statistics patterns + * @return a list of statistics pattern objects + */ public List<MockHealthStatisticsPattern> getStatisticsPatterns() { return statisticsPatternList; } http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockIaasConfigParser.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockIaasConfigParser.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockIaasConfigParser.java index 3116ab3..8209d4b 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockIaasConfigParser.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/config/MockIaasConfigParser.java @@ -23,7 +23,7 @@ import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMElement; import org.apache.commons.lang3.StringUtils; import org.apache.stratos.common.util.AxiomXpathParserUtil; -import org.apache.stratos.mock.iaas.services.impl.MockAutoscalingFactor; +import org.apache.stratos.mock.iaas.services.impl.MockScalingFactor; import org.apache.stratos.mock.iaas.statistics.StatisticsPatternMode; import org.apache.stratos.mock.iaas.statistics.generator.MockHealthStatisticsPattern; @@ -48,7 +48,6 @@ public class MockIaasConfigParser { /** * Parse mock iaas configuration and return configuration object. - * * @param filePath * @return */ @@ -91,7 +90,7 @@ public class MockIaasConfigParser { "[cartridge-type] " + cartridgeType); } String factorStr = factorAttribute.getAttributeValue(); - MockAutoscalingFactor autoscalingFactor = convertAutoscalingFactor(factorStr); + MockScalingFactor scalingFactor = convertScalingFactor(factorStr); OMAttribute modeAttribute = patternElement.getAttribute(MODE_ATTRIBUTE); if (modeAttribute == null) { @@ -126,7 +125,7 @@ public class MockIaasConfigParser { int sampleDuration = Integer.parseInt(sampleDurationStr); MockHealthStatisticsPattern mockHealthStatisticsPattern = new MockHealthStatisticsPattern - (cartridgeType, autoscalingFactor, mode, sampleValues, sampleDuration); + (cartridgeType, scalingFactor, mode, sampleValues, sampleDuration); mockHealthStatisticsConfig.addStatisticsPattern(mockHealthStatisticsPattern); } } @@ -138,6 +137,11 @@ public class MockIaasConfigParser { } } + /** + * Convert mode string to its enumeration + * @param modeStr mode string + * @return statistics pattern enumeration + */ private static StatisticsPatternMode convertMode(String modeStr) { if ("loop".equals(modeStr)) { return StatisticsPatternMode.Loop; @@ -149,17 +153,27 @@ public class MockIaasConfigParser { throw new RuntimeException("An unknown statistics pattern mode found: " + modeStr); } - private static MockAutoscalingFactor convertAutoscalingFactor(String factorStr) { - if ("memory-consumption".equals(factorStr)) { - return MockAutoscalingFactor.MemoryConsumption; - } else if ("load-average".equals(factorStr)) { - return MockAutoscalingFactor.LoadAverage; - } else if ("request-in-flight".equals(factorStr)) { - return MockAutoscalingFactor.RequestInFlight; + /** + * Convert scaling factor string to its enumeration + * @param scalingFactorStr scaling factor string + * @return scaling factor enumeration + */ + private static MockScalingFactor convertScalingFactor(String scalingFactorStr) { + if ("memory-consumption".equals(scalingFactorStr)) { + return MockScalingFactor.MemoryConsumption; + } else if ("load-average".equals(scalingFactorStr)) { + return MockScalingFactor.LoadAverage; + } else if ("request-in-flight".equals(scalingFactorStr)) { + return MockScalingFactor.RequestInFlight; } - throw new RuntimeException("An unknown autoscaling factor found: " + factorStr); + throw new RuntimeException("An unknown autoscaling factor found: " + scalingFactorStr); } + /** + * Convert string array to integer list + * @param stringArray string array + * @return integer list + */ private static List<Integer> convertStringArrayToIntegerList(String[] stringArray) { List<Integer> integerList = new ArrayList<Integer>(); for (String value : stringArray) { http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/persistence/RegistryManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/persistence/RegistryManager.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/persistence/RegistryManager.java index 59e507e..6c96541 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/persistence/RegistryManager.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/persistence/RegistryManager.java @@ -44,7 +44,6 @@ public class RegistryManager implements PersistenceManager { /** * Persist a serializable object in the registry with the given resource path. - * * @param serializableObject object to be persisted. */ @Override @@ -82,9 +81,8 @@ public class RegistryManager implements PersistenceManager { /** * Returns an object stored in the given resource path. - * - * @param resourcePath - * @return + * @param resourcePath resource path + * @return registry resource content * @throws org.wso2.carbon.registry.core.exceptions.RegistryException */ @Override @@ -141,9 +139,8 @@ public class RegistryManager implements PersistenceManager { /** * Serialize an object to a byte array. - * - * @param serializableObject - * @return + * @param serializableObject serializable object + * @return byte array * @throws java.io.IOException */ private byte[] serializeToByteArray(Serializable serializableObject) throws IOException { @@ -165,7 +162,6 @@ public class RegistryManager implements PersistenceManager { /** * Deserialize a byte array and retrieve the object. - * * @param bytes bytes to be deserialized * @return the deserialized {@link Object} * @throws Exception if the deserialization is failed. http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockAutoscalingFactor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockAutoscalingFactor.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockAutoscalingFactor.java deleted file mode 100644 index 518cb0f..0000000 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockAutoscalingFactor.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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.mock.iaas.services.impl; - -/** - * Mock autoscaling factor enumeration - */ -public enum MockAutoscalingFactor { - MemoryConsumption, LoadAverage, RequestInFlight -} http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockConstants.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockConstants.java index dce1899..51db53e 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockConstants.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockConstants.java @@ -23,9 +23,7 @@ package org.apache.stratos.mock.iaas.services.impl; * Mock constant definitions. */ public class MockConstants { - public static final String MOCK_MEMBER_THREAD_POOL = "mock.member.thread.pool"; public static final int MOCK_MEMBER_THREAD_POOL_SIZE = 100; + public static final String MOCK_MEMBER_THREAD_POOL = "mock.member.thread.pool"; public static final String PERSISTENCE_MANAGER_TYPE = "persistence.manager.type"; - public static final String PERSISTENCE_MANAGER_REGISTRY = "registry"; - public static final String PERSISTENCE_MANAGER_MOCK = "mock"; } http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java index f023064..97c28d2 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java @@ -63,6 +63,9 @@ public class MockIaasServiceImpl implements MockIaasService { private MockIaasServiceUtil mockIaasServiceUtil; private Map<String, MockInstance> instanceIdToMockInstanceMap; // Map<InstanceId,MockInstance> + /** + * Default public constructor + */ public MockIaasServiceImpl() { try { String persistenceManagerTypeStr = System.getProperty(MockConstants.PERSISTENCE_MANAGER_TYPE, @@ -85,10 +88,9 @@ public class MockIaasServiceImpl implements MockIaasService { /** * Start mock instance. - * - * @param mockInstanceContext - * @return - * @throws MockIaasException + * @param mockInstanceContext mock instance context containing instance properties + * @return mock instance metadata + * @throws MockIaasException is thrown if mock instance context is null */ @Override public MockInstanceMetadata startInstance(MockInstanceContext mockInstanceContext) throws MockIaasException { @@ -119,6 +121,10 @@ public class MockIaasServiceImpl implements MockIaasService { } } + /** + * Sleep the current thread for a given period of time + * @param time time in milliseconds + */ private void sleep(int time) { try { Thread.sleep(time); @@ -127,9 +133,8 @@ public class MockIaasServiceImpl implements MockIaasService { } /** - * Get mock instance contexts. - * - * @return + * Get mock instances. + * @return a list of mock instance metadata objects */ @Override public List<MockInstanceMetadata> getInstances() { @@ -143,9 +148,8 @@ public class MockIaasServiceImpl implements MockIaasService { /** * Get mock instance context by instance id. - * - * @param instanceId - * @return + * @param instanceId mock instance id + * @return mock instance metadata of the mock instance */ @Override public MockInstanceMetadata getInstance(String instanceId) { @@ -158,10 +162,9 @@ public class MockIaasServiceImpl implements MockIaasService { /** * Allocate ip address to mock instance. - * - * @param instanceId - * @return - * @throws MockIaasException + * @param instanceId mock instance id + * @return mock instance metadata including ip addresses + * @throws MockIaasException is thrown if instance is not found */ @Override public MockInstanceMetadata allocateIpAddress(String instanceId) throws MockIaasException { @@ -180,8 +183,7 @@ public class MockIaasServiceImpl implements MockIaasService { /** * Terminate mock instance by instance id. - * - * @param instanceId + * @param instanceId mock instance id */ @Override public void terminateInstance(String instanceId) { @@ -209,9 +211,8 @@ public class MockIaasServiceImpl implements MockIaasService { /** * Find number of instances available for service type. - * - * @param serviceName - * @return + * @param serviceName service name/cartridge type + * @return the member count */ private int getMemberCount(String serviceName) { int count = 0; http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockScalingFactor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockScalingFactor.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockScalingFactor.java new file mode 100644 index 0000000..554d34f --- /dev/null +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockScalingFactor.java @@ -0,0 +1,27 @@ +/* + * 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.mock.iaas.services.impl; + +/** + * Mock scaling factor enumeration + */ +public enum MockScalingFactor { + MemoryConsumption, LoadAverage, RequestInFlight +} http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/MockHealthStatistics.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/MockHealthStatistics.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/MockHealthStatistics.java index 349644d..8937a4d 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/MockHealthStatistics.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/MockHealthStatistics.java @@ -20,7 +20,7 @@ package org.apache.stratos.mock.iaas.statistics; import org.apache.stratos.mock.iaas.exceptions.NoStatisticsFoundException; -import org.apache.stratos.mock.iaas.services.impl.MockAutoscalingFactor; +import org.apache.stratos.mock.iaas.services.impl.MockScalingFactor; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -56,10 +56,10 @@ public class MockHealthStatistics { * Add statistics value for a cartridge type, autoscaling factor * * @param cartridgeType - * @param autoscalingFactor + * @param scalingFactor * @param value */ - public void addStatistics(String cartridgeType, MockAutoscalingFactor autoscalingFactor, Integer value) { + public void addStatistics(String cartridgeType, MockScalingFactor scalingFactor, Integer value) { Map<String, Integer> factorValueMap = statisticsMap.get(cartridgeType); if (factorValueMap == null) { synchronized (MockHealthStatistics.class) { @@ -69,40 +69,40 @@ public class MockHealthStatistics { } } } - factorValueMap.put(autoscalingFactor.toString(), value); + factorValueMap.put(scalingFactor.toString(), value); } /** * Returns current statistics of the given cartridge type, autoscaling factor * * @param cartridgeType - * @param autoscalingFactor + * @param scalingFactor * @return */ - public int getStatistics(String cartridgeType, MockAutoscalingFactor autoscalingFactor) throws NoStatisticsFoundException { + public int getStatistics(String cartridgeType, MockScalingFactor scalingFactor) throws NoStatisticsFoundException { Map<String, Integer> factorValueMap = statisticsMap.get(cartridgeType); if (factorValueMap != null) { - if (factorValueMap.containsKey(autoscalingFactor.toString())) { - return factorValueMap.get(autoscalingFactor.toString()); + if (factorValueMap.containsKey(scalingFactor.toString())) { + return factorValueMap.get(scalingFactor.toString()); } else { throw new NoStatisticsFoundException(); } } // No statistics patterns found, return default - return findDefault(autoscalingFactor); + return findDefault(scalingFactor); } /** * Remove statistics found for the cartridge type, autoscaling factor * * @param cartridgeType - * @param autoscalingFactor + * @param scalingFactor */ - public void removeStatistics(String cartridgeType, MockAutoscalingFactor autoscalingFactor) { + public void removeStatistics(String cartridgeType, MockScalingFactor scalingFactor) { Map<String, Integer> factorValueMap = statisticsMap.get(cartridgeType); if (factorValueMap != null) { - if (factorValueMap.containsKey(autoscalingFactor.toString())) { - factorValueMap.remove(autoscalingFactor.toString()); + if (factorValueMap.containsKey(scalingFactor.toString())) { + factorValueMap.remove(scalingFactor.toString()); } } } @@ -110,17 +110,17 @@ public class MockHealthStatistics { /** * Find default statistics value of the given autoscaling factor * - * @param autoscalingFactor + * @param scalingFactor * @return */ - private int findDefault(MockAutoscalingFactor autoscalingFactor) { - if (autoscalingFactor == MockAutoscalingFactor.MemoryConsumption) { + private int findDefault(MockScalingFactor scalingFactor) { + if (scalingFactor == MockScalingFactor.MemoryConsumption) { return DEFAULT_MEMORY_CONSUMPTION; - } else if (autoscalingFactor == MockAutoscalingFactor.LoadAverage) { + } else if (scalingFactor == MockScalingFactor.LoadAverage) { return DEFAULT_LOAD_AVERAGE; - } else if (autoscalingFactor == MockAutoscalingFactor.RequestInFlight) { + } else if (scalingFactor == MockScalingFactor.RequestInFlight) { return DEFAULT_REQUESTS_IN_FLIGHT; } - throw new RuntimeException("An unknown autoscaling factor found: " + autoscalingFactor); + throw new RuntimeException("An unknown autoscaling factor found: " + scalingFactor); } } http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java index ade7bf0..3c72ee2 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsGenerator.java @@ -24,7 +24,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.common.threading.StratosThreadPool; import org.apache.stratos.mock.iaas.config.MockIaasConfig; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -43,8 +42,7 @@ public class MockHealthStatisticsGenerator { private static final ScheduledExecutorService scheduledExecutorService = StratosThreadPool.getScheduledExecutorService("mock.iaas.health.statistics.generator.thread.pool", 10); - private boolean scheduled; - // Map<ServiceName, List<ScheduledFuture>> + // Map<ServiceName, Map<ScalingFactor, ScheduledFuture>> private Map<String, Map<String, ScheduledFuture>> serviceNameToTaskListMap; public static MockHealthStatisticsGenerator getInstance() { @@ -58,14 +56,16 @@ public class MockHealthStatisticsGenerator { return instance; } + /** + * Private default constructor. + */ private MockHealthStatisticsGenerator() { serviceNameToTaskListMap = new ConcurrentHashMap<String, Map<String, ScheduledFuture>>(); } /** * Schedule statistics updater tasks for the given service/cartridge type. - * - * @param serviceName + * @param serviceName service name/cartridge type */ public void scheduleStatisticsUpdaterTasks(String serviceName) { synchronized (MockHealthStatisticsGenerator.class) { @@ -98,17 +98,14 @@ public class MockHealthStatisticsGenerator { /** * Stop statistics updater tasks of the given service/cartridge type. - * - * @param serviceName + * @param serviceName service name/cartridge type */ public void stopStatisticsUpdaterTasks(String serviceName) { synchronized (MockHealthStatisticsGenerator.class) { Map<String, ScheduledFuture> taskMap = serviceNameToTaskListMap.get(serviceName); if ((taskMap != null) && (taskMap.size() > 0)) { - Iterator<String> factorIterator = taskMap.keySet().iterator(); - while (factorIterator.hasNext()) { - String factor = factorIterator.next(); - stopStatisticsUpdaterTask(serviceName, factor); + for (String scalingFactor : taskMap.keySet()) { + stopStatisticsUpdaterTask(serviceName, scalingFactor); } } } @@ -116,21 +113,20 @@ public class MockHealthStatisticsGenerator { /** * Stop statistics updater task of a service/cartridge type, factor. - * - * @param serviceName - * @param factor + * @param serviceName service name/cartridge type + * @param scalingFactor scaling factor */ - public void stopStatisticsUpdaterTask(String serviceName, String factor) { - Map<String, ScheduledFuture> factorToTaskMap = serviceNameToTaskListMap.get(serviceName); - if (factorToTaskMap != null) { - ScheduledFuture task = factorToTaskMap.get(factor); + public void stopStatisticsUpdaterTask(String serviceName, String scalingFactor) { + Map<String, ScheduledFuture> autoscalingFactorToTaskMap = serviceNameToTaskListMap.get(serviceName); + if (autoscalingFactorToTaskMap != null) { + ScheduledFuture task = autoscalingFactorToTaskMap.get(scalingFactor); if (task != null) { task.cancel(true); - factorToTaskMap.remove(factor); + autoscalingFactorToTaskMap.remove(scalingFactor); if (log.isInfoEnabled()) { log.info(String.format("Mock statistics updater task stopped: [service-name] %s" + - " [factor] %s", serviceName, factor)); + " [scaling-factor] %s", serviceName, scalingFactor)); } } } @@ -139,9 +135,8 @@ public class MockHealthStatisticsGenerator { /** * Returns true if there are statistics updater tasks scheduled for the given service/cartridge type * else returns false. - * - * @param serviceName - * @return + * @param serviceName service name/cartridge type + * @return true if statistics updater tasks are scheduled */ public boolean statisticsUpdaterTasksScheduled(String serviceName) { Map<String, ScheduledFuture> tasks = serviceNameToTaskListMap.get(serviceName); http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsPattern.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsPattern.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsPattern.java index 4adac3f..1df501e 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsPattern.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/generator/MockHealthStatisticsPattern.java @@ -22,7 +22,7 @@ package org.apache.stratos.mock.iaas.statistics.generator; import org.apache.stratos.mock.iaas.exceptions.ContinueLastSampleValueException; import org.apache.stratos.mock.iaas.exceptions.NoSampleValuesFoundException; import org.apache.stratos.mock.iaas.exceptions.StopStatisticsPublishingException; -import org.apache.stratos.mock.iaas.services.impl.MockAutoscalingFactor; +import org.apache.stratos.mock.iaas.services.impl.MockScalingFactor; import org.apache.stratos.mock.iaas.statistics.StatisticsPatternMode; import java.util.Iterator; @@ -34,13 +34,13 @@ import java.util.List; public class MockHealthStatisticsPattern { private String cartridgeType; - private MockAutoscalingFactor factor; + private MockScalingFactor factor; private StatisticsPatternMode mode; private List<Integer> sampleValues; private int sampleDuration; private Iterator sampleValuesIterator; - public MockHealthStatisticsPattern(String cartridgeType, MockAutoscalingFactor factor, StatisticsPatternMode mode, List<Integer> sampleValues, + public MockHealthStatisticsPattern(String cartridgeType, MockScalingFactor factor, StatisticsPatternMode mode, List<Integer> sampleValues, int sampleDuration) { this.cartridgeType = cartridgeType; this.factor = factor; @@ -55,11 +55,10 @@ public class MockHealthStatisticsPattern { } /** - * Returns autoscaling factor - * + * Returns scaling factor * @return */ - public MockAutoscalingFactor getFactor() { + public MockScalingFactor getFactor() { return factor; } http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/publisher/MockHealthStatisticsNotifier.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/publisher/MockHealthStatisticsNotifier.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/publisher/MockHealthStatisticsNotifier.java index 3060ae4..b9e081c 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/publisher/MockHealthStatisticsNotifier.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/statistics/publisher/MockHealthStatisticsNotifier.java @@ -26,7 +26,7 @@ import org.apache.stratos.common.statistics.publisher.HealthStatisticsPublisherF import org.apache.stratos.common.statistics.publisher.StatisticsPublisherType; import org.apache.stratos.mock.iaas.domain.MockInstanceContext; import org.apache.stratos.mock.iaas.exceptions.NoStatisticsFoundException; -import org.apache.stratos.mock.iaas.services.impl.MockAutoscalingFactor; +import org.apache.stratos.mock.iaas.services.impl.MockScalingFactor; import org.apache.stratos.mock.iaas.statistics.MockHealthStatistics; /** @@ -59,7 +59,7 @@ public class MockHealthStatisticsNotifier implements Runnable { try { double memoryConsumption = MockHealthStatistics.getInstance().getStatistics( - mockMemberContext.getServiceName(), MockAutoscalingFactor.MemoryConsumption); + mockMemberContext.getServiceName(), MockScalingFactor.MemoryConsumption); if (log.isDebugEnabled()) { log.debug(String.format("Publishing memory consumption: [member-id] %s [value] %f", @@ -84,7 +84,7 @@ public class MockHealthStatisticsNotifier implements Runnable { try { double loadAvereage = MockHealthStatistics.getInstance().getStatistics( - mockMemberContext.getServiceName(), MockAutoscalingFactor.LoadAverage); + mockMemberContext.getServiceName(), MockScalingFactor.LoadAverage); if (log.isDebugEnabled()) { log.debug(String.format("Publishing load average: [member-id] %s [value] %f", mockMemberContext.getMemberId(), loadAvereage)); http://git-wip-us.apache.org/repos/asf/stratos/blob/20f17fa3/products/stratos/modules/distribution/src/main/conf/mock-iaas.xml ---------------------------------------------------------------------- diff --git a/products/stratos/modules/distribution/src/main/conf/mock-iaas.xml b/products/stratos/modules/distribution/src/main/conf/mock-iaas.xml index 6e70c75..6828e0c 100644 --- a/products/stratos/modules/distribution/src/main/conf/mock-iaas.xml +++ b/products/stratos/modules/distribution/src/main/conf/mock-iaas.xml @@ -17,7 +17,7 @@ ~ under the License. --> -<mock-iaas enabled="false"> +<mock-iaas enabled="true"> <health-statistics> <cartridge type="tomcat"> <!-- factor:memory-consumption|load-average|request-in-flight-->
