Repository: stratos Updated Branches: refs/heads/docker-grouping-merge 74405a55a -> 6805c113c
Changing package name client.cloud.controller to client Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/6805c113 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6805c113 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6805c113 Branch: refs/heads/docker-grouping-merge Commit: 6805c113c6f4f165533637f8cec87fee8a3dcd7a Parents: 74405a5 Author: Lahiru Sandaruwan <[email protected]> Authored: Fri Nov 7 09:57:33 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Fri Nov 7 09:57:33 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/api/AutoScalerServiceImpl.java | 2 +- .../parser/DefaultApplicationParser.java | 2 +- .../applications/topic/ApplicationBuilder.java | 2 +- .../client/CloudControllerClient.java | 390 +++++++++++++++++++ .../client/InstanceNotificationClient.java | 71 ++++ .../cloud/controller/CloudControllerClient.java | 390 ------------------- .../controller/InstanceNotificationClient.java | 71 ---- .../monitor/cluster/ClusterMonitorFactory.java | 2 +- .../cluster/KubernetesClusterMonitor.java | 2 +- .../monitor/cluster/VMClusterMonitor.java | 2 +- .../autoscaler/partition/PartitionManager.java | 2 +- .../autoscaler/rule/RuleTasksDelegator.java | 4 +- .../src/test/resources/autoscaler-old.drl | 2 +- .../src/test/resources/autoscaler.drl | 2 +- .../test/resources/minimum-autoscaler-rule.drl | 2 +- .../resources/test-minimum-autoscaler-rule.drl | 2 +- .../test-terminating-obsoleted-members-rule.drl | 2 +- .../src/main/conf/drools/mincheck.drl | 2 +- .../src/main/conf/drools/obsoletecheck.drl | 2 +- .../src/main/conf/drools/scaling.drl | 2 +- 20 files changed, 478 insertions(+), 478 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java index 90aac2d..798890c 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java @@ -27,7 +27,7 @@ import org.apache.stratos.autoscaler.applications.parser.ApplicationParser; import org.apache.stratos.autoscaler.applications.parser.DefaultApplicationParser; import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext; import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder; -import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy; import org.apache.stratos.autoscaler.exception.*; import org.apache.stratos.autoscaler.interfaces.AutoScalerServiceInterface; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/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 9be2fa2..c0acb32 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 @@ -27,7 +27,7 @@ import org.apache.stratos.autoscaler.applications.ClusterInformation; import org.apache.stratos.autoscaler.applications.MTClusterInformation; import org.apache.stratos.autoscaler.applications.STClusterInformation; import org.apache.stratos.autoscaler.applications.pojo.*; -import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.exception.ApplicationDefinitionException; import org.apache.stratos.autoscaler.exception.CartridgeInformationException; import org.apache.stratos.autoscaler.pojo.ServiceGroup; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java index a64582f..3bbcf7e 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java @@ -23,7 +23,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.AutoscalerContext; import org.apache.stratos.autoscaler.applications.ApplicationHolder; import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext; -import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.exception.DependencyBuilderException; import org.apache.stratos.autoscaler.exception.TopologyInConsistentException; import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitor; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java new file mode 100644 index 0000000..c8163cf --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java @@ -0,0 +1,390 @@ +/* + * 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. TcSee the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.stratos.autoscaler.client; + +import org.apache.axis2.transport.http.HTTPConstants; +import org.apache.commons.configuration.XMLConfiguration; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.stratos.autoscaler.Constants; +import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext; +import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy; +import org.apache.stratos.autoscaler.exception.*; +import org.apache.stratos.autoscaler.kubernetes.KubernetesManager; +import org.apache.stratos.autoscaler.util.ConfUtil; +import org.apache.stratos.cloud.controller.stub.*; +import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition; +import org.apache.stratos.cloud.controller.stub.pojo.*; +import org.apache.stratos.common.constants.StratosConstants; +import org.apache.stratos.common.kubernetes.KubernetesGroup; +import org.apache.stratos.common.kubernetes.KubernetesMaster; +import org.apache.stratos.cloud.controller.stub.pojo.Properties; +import org.apache.stratos.cloud.controller.stub.pojo.Property; + +import java.rmi.RemoteException; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +/** + * This class will call cloud controller web service to take the action decided by Autoscaler + */ +public class CloudControllerClient { + + private static final Log log = LogFactory.getLog(CloudControllerClient.class); + private static CloudControllerServiceStub stub; + + /* An instance of a CloudControllerClient is created when the class is loaded. + * Since the class is loaded only once, it is guaranteed that an object of + * CloudControllerClient is created only once. Hence it is singleton. + */ + private static class InstanceHolder { + private static final CloudControllerClient INSTANCE = new CloudControllerClient(); + } + + public static CloudControllerClient getInstance() { + return InstanceHolder.INSTANCE; + } + + private CloudControllerClient() { + try { + XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); + int port = conf.getInt("autoscaler.cloudController.port", Constants.CLOUD_CONTROLLER_DEFAULT_PORT); + String hostname = conf.getString("autoscaler.cloudController.hostname", "localhost"); + String epr = "https://" + hostname + ":" + port + "/" + Constants.CLOUD_CONTROLLER_SERVICE_SFX; + int cloudControllerClientTimeout = conf.getInt("autoscaler.cloudController.clientTimeout", 180000); + stub = new CloudControllerServiceStub(epr); + stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, cloudControllerClientTimeout); + stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, cloudControllerClientTimeout); + } catch (Exception e) { + log.error("Stub init error", e); + } + } + + /* + * This will validate the given partitions against the given cartridge type. + */ + + public synchronized boolean validateDeploymentPolicy(String cartridgeType, DeploymentPolicy deploymentPolicy) throws PartitionValidationException { + try { + if (log.isInfoEnabled()) { + log.info(String.format("Validating partitions of policy via cloud controller: [id] %s", deploymentPolicy.getId())); + } + long startTime = System.currentTimeMillis(); + boolean result = stub.validateDeploymentPolicy(cartridgeType, deploymentPolicy.getAllPartitions()); + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call validateDeploymentPolicy() returned in %dms", (endTime - startTime))); + } + return result; + } catch (RemoteException e) { + log.error(e.getMessage(), e); + throw new PartitionValidationException(e.getMessage(), e); + } catch (CloudControllerServiceInvalidPartitionExceptionException e) { + log.error(e.getFaultMessage().getInvalidPartitionException().getMessage(), e); + throw new PartitionValidationException(e.getFaultMessage().getInvalidPartitionException().getMessage()); + } catch (CloudControllerServiceInvalidCartridgeTypeExceptionException e) { + log.error(e.getFaultMessage().getInvalidCartridgeTypeException().getMessage(), e); + throw new PartitionValidationException(e.getFaultMessage().getInvalidCartridgeTypeException().getMessage()); + } + + } + + /* + * Calls the CC to validate the partition. + */ + public synchronized boolean validatePartition(Partition partition) throws PartitionValidationException { + + try { + if (log.isInfoEnabled()) { + log.info(String.format("Validating partition via cloud controller: [id] %s", partition.getId())); + } + long startTime = System.currentTimeMillis(); + boolean result = stub.validatePartition(partition); + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call validatePartition() returned in %dms", (endTime - startTime))); + } + return result; + } catch (RemoteException e) { + log.error(e.getMessage(), e); + throw new PartitionValidationException(e.getMessage(), e); + } catch (CloudControllerServiceInvalidPartitionExceptionException e) { + log.error(e.getFaultMessage().getInvalidPartitionException().getMessage(), e); + throw new PartitionValidationException(e.getFaultMessage().getInvalidPartitionException().getMessage(), e); + } + + } + + public synchronized MemberContext spawnAnInstance(Partition partition, + String clusterId, String lbClusterId, String networkPartitionId, boolean isPrimary, int minMemberCount) throws SpawningException { + try { + if (log.isInfoEnabled()) { + log.info(String.format("Trying to spawn an instance via cloud controller: [cluster] %s [partition] %s [lb-cluster] %s [network-partition-id] %s", + clusterId, partition.getId(), lbClusterId, networkPartitionId)); + } + + MemberContext member = new MemberContext(); + member.setClusterId(clusterId); + member.setPartition(partition); + member.setLbClusterId(lbClusterId); + member.setInitTime(System.currentTimeMillis()); + member.setNetworkPartitionId(networkPartitionId); + Properties memberContextProps = new Properties(); + Property isPrimaryProp = new Property(); + isPrimaryProp.setName("PRIMARY"); + isPrimaryProp.setValue(String.valueOf(isPrimary)); + + Property minCountProp = new Property(); + minCountProp.setName("MIN_COUNT"); + minCountProp.setValue(String.valueOf(minMemberCount)); + + memberContextProps.addProperties(isPrimaryProp); + memberContextProps.addProperties(minCountProp); + member.setProperties(memberContextProps); + + + long startTime = System.currentTimeMillis(); + MemberContext memberContext = stub.startInstance(member); + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call startInstance() returned in %dms", (endTime - startTime))); + } + return memberContext; + } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { + String message = e.getFaultMessage().getUnregisteredCartridgeException().getMessage(); + log.error(message, e); + throw new SpawningException(message, e); + } catch (RemoteException e) { + log.error(e.getMessage(), e); + throw new SpawningException(e.getMessage(), e); + } catch (CloudControllerServiceInvalidIaasProviderExceptionException e) { + String message = e.getFaultMessage().getInvalidIaasProviderException().getMessage(); + log.error(message, e); + throw new SpawningException(message, e); + } + } + + public synchronized void terminateAllInstances(String clusterId) throws TerminationException { + try { + if (log.isInfoEnabled()) { + log.info(String.format("Terminating all instances of cluster via cloud controller: [cluster] %s", clusterId)); + } + long startTime = System.currentTimeMillis(); + stub.terminateAllInstances(clusterId); + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call terminateAllInstances() returned in %dms", (endTime - startTime))); + } + } catch (RemoteException e) { + String msg = e.getMessage(); + log.error(msg, e); + throw new TerminationException(msg, e); + + } catch (CloudControllerServiceInvalidClusterExceptionException e) { + String message = e.getFaultMessage().getInvalidClusterException().getMessage(); + log.error(message, e); + throw new TerminationException(message, e); + } + } + + public synchronized void createApplicationClusters(String appId, + Set<ApplicationClusterContext> appClusterContexts) { + List<ApplicationClusterContextDTO> contextDTOs = + new ArrayList<ApplicationClusterContextDTO>(); + for(ApplicationClusterContext context : appClusterContexts) { + ApplicationClusterContextDTO dto = new ApplicationClusterContextDTO(); + dto.setClusterId(context.getClusterId()); + dto.setAutoscalePolicyName(context.getAutoscalePolicyName()); + dto.setDeploymentPolicyName(context.getDeploymentPolicyName()); + dto.setCartridgeType(context.getCartridgeType()); + dto.setHostName(context.getHostName()); + dto.setTenantRange(context.getTenantRange()); + dto.setTextPayload(context.getTextPayload()); + dto.setLbCluster(context.isLbCluster()); + contextDTOs.add(dto); + } + + ApplicationClusterContextDTO[] applicationClusterContextDTOs = + new ApplicationClusterContextDTO[contextDTOs.size()]; + contextDTOs.toArray(applicationClusterContextDTOs); + try { + stub.createApplicationClusters(appId, applicationClusterContextDTOs); + } catch (RemoteException e) { + String msg = e.getMessage(); + log.error(msg, e); + //throw new TerminationException(msg, e); + } catch (CloudControllerServiceApplicationClusterRegistrationExceptionException e) { + //e.printStackTrace(); + String msg = e.getMessage(); + log.error(msg, e); + } + + + } + + public synchronized void terminate(String memberId) throws TerminationException { + try { + if (log.isInfoEnabled()) { + log.info(String.format("Terminating instance via cloud controller: [member] %s", memberId)); + } + long startTime = System.currentTimeMillis(); + stub.terminateInstance(memberId); + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call terminateInstance() returned in %dms", (endTime - startTime))); + } + } catch (RemoteException e) { + String msg = e.getMessage(); + log.error(msg, e); + throw new TerminationException(msg, e); + } catch (CloudControllerServiceInvalidMemberExceptionException e) { + String msg = e.getFaultMessage().getInvalidMemberException().getMessage(); + log.error(msg, e); + throw new TerminationException(msg, e); + } catch (CloudControllerServiceInvalidCartridgeTypeExceptionException e) { + String msg = e.getFaultMessage().getInvalidCartridgeTypeException().getMessage(); + log.error(msg, e); + throw new TerminationException(msg, e); + } + } + + public CartridgeInfo getCartrdgeInformation(String cartridgeType) throws CartridgeInformationException { + + try { + return stub.getCartridgeInfo(cartridgeType); + + } catch (RemoteException e) { + String msg = e.getMessage(); + log.error(msg, e); + throw new CartridgeInformationException(msg, e); + } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { + String msg = e.getMessage(); + log.error(msg, e); + throw new CartridgeInformationException(msg, e); + } + } + + /** + * @param kubernetesClusterId + * @param clusterId + * @return + * @throws SpawningException + */ + public synchronized MemberContext[] startContainers(String kubernetesClusterId, String clusterId) throws SpawningException { + try { + + KubernetesManager kubernetesManager = KubernetesManager.getInstance(); + KubernetesMaster kubernetesMaster = kubernetesManager.getKubernetesMasterInGroup(kubernetesClusterId); + String kubernetesMasterIP = kubernetesMaster.getHostIpAddress(); + KubernetesGroup kubernetesGroup = kubernetesManager.getKubernetesGroup(kubernetesClusterId); + int lower = kubernetesGroup.getPortRange().getLower(); + int upper = kubernetesGroup.getPortRange().getUpper(); + String portRange = Integer.toString(lower) + "-" + Integer.toString(upper); + + ContainerClusterContext context = new ContainerClusterContext(); + context.setClusterId(clusterId); + Properties memberContextProps = new Properties(); + Property kubernetesClusterMasterIPProps = new Property(); + kubernetesClusterMasterIPProps.setName(StratosConstants.KUBERNETES_MASTER_IP); + kubernetesClusterMasterIPProps.setValue(kubernetesMasterIP); + memberContextProps.addProperties(kubernetesClusterMasterIPProps); + Property kubernetesClusterPortRangeProps = new Property(); + kubernetesClusterPortRangeProps.setName(StratosConstants.KUBERNETES_PORT_RANGE); + kubernetesClusterPortRangeProps.setValue(portRange); + memberContextProps.addProperties(kubernetesClusterPortRangeProps); + context.setProperties(memberContextProps); + long startTime = System.currentTimeMillis(); + MemberContext[] memberContexts = stub.startContainers(context); + + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call startContainer() returned in %dms", (endTime - startTime))); + } + return memberContexts; + } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { + String message = e.getFaultMessage().getUnregisteredCartridgeException().getMessage(); + log.error(message, e); + throw new SpawningException(message, e); + } catch (RemoteException e) { + log.error(e.getMessage(), e); + throw new SpawningException(e.getMessage(), e); + } catch (NonExistingKubernetesGroupException e) { + log.error(e.getMessage(), e); + throw new SpawningException(e.getMessage(), e); + } + } + + public synchronized void terminateAllContainers(String clusterId) throws TerminationException { + try { + if (log.isInfoEnabled()) { + log.info(String.format("Terminating containers via cloud controller: [cluster] %s", clusterId)); + } + long startTime = System.currentTimeMillis(); + stub.terminateAllContainers(clusterId); + if (log.isDebugEnabled()) { + long endTime = System.currentTimeMillis(); + log.debug(String.format("Service call terminateContainer() returned in %dms", (endTime - startTime))); + } + } catch (RemoteException e) { + String msg = e.getMessage(); + log.error(msg, e); + throw new TerminationException(msg, e); + } catch (CloudControllerServiceInvalidClusterExceptionException e) { + String msg = e.getFaultMessage().getInvalidClusterException().getMessage(); + log.error(msg, e); + throw new TerminationException(msg, e); + } + } + + public synchronized MemberContext[] updateContainers(String clusterId, int replicas) + throws SpawningException { + try { + log.info(String.format("Updating kubernetes replication controller via cloud controller: " + + "[cluster] %s [replicas] %s", clusterId, replicas)); + MemberContext[] memberContexts = stub.updateContainers(clusterId, replicas); + return memberContexts; + } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { + String msg = "Error while updating kubernetes controller, cartridge not found for [cluster] " + clusterId; + log.error(msg, e); + throw new SpawningException(msg, e); + } catch (RemoteException e) { + String msg = "Error while updating kubernetes controller, cannot communicate with " + + "cloud controller service"; + log.error(msg, e); + throw new SpawningException(msg, e); + } + } + + public synchronized void terminateContainer(String memberId) throws TerminationException { + try { + stub.terminateContainer(memberId); + } catch (RemoteException e) { + String msg = "Error while updating kubernetes controller, cannot communicate with " + + "cloud controller service"; + log.error(msg, e); + throw new TerminationException(msg, e); + } catch (CloudControllerServiceMemberTerminationFailedExceptionException e) { + String msg = "Error while terminating container, member not valid for member id : " + memberId; + log.error(msg, e); + throw new TerminationException(msg, e); + } + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/InstanceNotificationClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/InstanceNotificationClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/InstanceNotificationClient.java new file mode 100644 index 0000000..1af5599 --- /dev/null +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/InstanceNotificationClient.java @@ -0,0 +1,71 @@ +/* + * 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. TcSee the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.autoscaler.client; + +import org.apache.axis2.transport.http.HTTPConstants; +import org.apache.commons.configuration.XMLConfiguration; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.stratos.autoscaler.Constants; +import org.apache.stratos.autoscaler.util.ConfUtil; +import org.apache.stratos.manager.cleanup.notification.stub.*; + +import java.rmi.RemoteException; + +public class InstanceNotificationClient { + private static final Log log = LogFactory.getLog(InstanceNotificationClient.class); + private static InstanceCleanupNotificationServiceStub stub; + + /* An instance of a InstanceNotificationClient is created when the class is loaded. + * Since the class is loaded only once, it is guaranteed that an object of + * InstanceNotificationClient is created only once. Hence it is singleton. + */ + private static class InstanceHolder { + private static final InstanceNotificationClient INSTANCE = new InstanceNotificationClient(); + } + + public static InstanceNotificationClient getInstance() { + return InstanceHolder.INSTANCE; + } + + private InstanceNotificationClient(){ + try { + XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); + int port = conf.getInt(Constants.STRATOS_MANAGER_DEFAULT_PORT_ELEMENT, + Constants.STRATOS_MANAGER_DEFAULT_PORT); + String hostname = conf.getString(Constants.STRATOS_MANAGER_HOSTNAME_ELEMENT, "localhost"); + String epr = "https://" + hostname + ":" + port + "/" + Constants.STRATOS_MANAGER_SERVICE_SFX; + int instanceNotificationTimeOut = conf.getInt(Constants.STRATOS_MANAGER_CLIENT_TIMEOUT_ELEMENT, 180000); + stub = new InstanceCleanupNotificationServiceStub(epr); + stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, instanceNotificationTimeOut); + stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, instanceNotificationTimeOut); + } catch (Exception e) { + log.error("Stub init error", e); + } + } + + public void sendMemberCleanupEvent(String memberId) { + try { + stub.sendInstanceCleanupNotificationForMember(memberId); + } catch (RemoteException e) { + log.error("error while sending the cleanup notification event to SM", e); + } + + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java deleted file mode 100644 index eb3a1d9..0000000 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/CloudControllerClient.java +++ /dev/null @@ -1,390 +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. TcSee the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.stratos.autoscaler.client.cloud.controller; - -import org.apache.axis2.transport.http.HTTPConstants; -import org.apache.commons.configuration.XMLConfiguration; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.stratos.autoscaler.Constants; -import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext; -import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy; -import org.apache.stratos.autoscaler.exception.*; -import org.apache.stratos.autoscaler.kubernetes.KubernetesManager; -import org.apache.stratos.autoscaler.util.ConfUtil; -import org.apache.stratos.cloud.controller.stub.*; -import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition; -import org.apache.stratos.cloud.controller.stub.pojo.*; -import org.apache.stratos.common.constants.StratosConstants; -import org.apache.stratos.common.kubernetes.KubernetesGroup; -import org.apache.stratos.common.kubernetes.KubernetesMaster; -import org.apache.stratos.cloud.controller.stub.pojo.Properties; -import org.apache.stratos.cloud.controller.stub.pojo.Property; - -import java.rmi.RemoteException; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -/** - * This class will call cloud controller web service to take the action decided by Autoscaler - */ -public class CloudControllerClient { - - private static final Log log = LogFactory.getLog(CloudControllerClient.class); - private static CloudControllerServiceStub stub; - - /* An instance of a CloudControllerClient is created when the class is loaded. - * Since the class is loaded only once, it is guaranteed that an object of - * CloudControllerClient is created only once. Hence it is singleton. - */ - private static class InstanceHolder { - private static final CloudControllerClient INSTANCE = new CloudControllerClient(); - } - - public static CloudControllerClient getInstance() { - return InstanceHolder.INSTANCE; - } - - private CloudControllerClient() { - try { - XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); - int port = conf.getInt("autoscaler.cloudController.port", Constants.CLOUD_CONTROLLER_DEFAULT_PORT); - String hostname = conf.getString("autoscaler.cloudController.hostname", "localhost"); - String epr = "https://" + hostname + ":" + port + "/" + Constants.CLOUD_CONTROLLER_SERVICE_SFX; - int cloudControllerClientTimeout = conf.getInt("autoscaler.cloudController.clientTimeout", 180000); - stub = new CloudControllerServiceStub(epr); - stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, cloudControllerClientTimeout); - stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, cloudControllerClientTimeout); - } catch (Exception e) { - log.error("Stub init error", e); - } - } - - /* - * This will validate the given partitions against the given cartridge type. - */ - - public synchronized boolean validateDeploymentPolicy(String cartridgeType, DeploymentPolicy deploymentPolicy) throws PartitionValidationException { - try { - if (log.isInfoEnabled()) { - log.info(String.format("Validating partitions of policy via cloud controller: [id] %s", deploymentPolicy.getId())); - } - long startTime = System.currentTimeMillis(); - boolean result = stub.validateDeploymentPolicy(cartridgeType, deploymentPolicy.getAllPartitions()); - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call validateDeploymentPolicy() returned in %dms", (endTime - startTime))); - } - return result; - } catch (RemoteException e) { - log.error(e.getMessage(), e); - throw new PartitionValidationException(e.getMessage(), e); - } catch (CloudControllerServiceInvalidPartitionExceptionException e) { - log.error(e.getFaultMessage().getInvalidPartitionException().getMessage(), e); - throw new PartitionValidationException(e.getFaultMessage().getInvalidPartitionException().getMessage()); - } catch (CloudControllerServiceInvalidCartridgeTypeExceptionException e) { - log.error(e.getFaultMessage().getInvalidCartridgeTypeException().getMessage(), e); - throw new PartitionValidationException(e.getFaultMessage().getInvalidCartridgeTypeException().getMessage()); - } - - } - - /* - * Calls the CC to validate the partition. - */ - public synchronized boolean validatePartition(Partition partition) throws PartitionValidationException { - - try { - if (log.isInfoEnabled()) { - log.info(String.format("Validating partition via cloud controller: [id] %s", partition.getId())); - } - long startTime = System.currentTimeMillis(); - boolean result = stub.validatePartition(partition); - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call validatePartition() returned in %dms", (endTime - startTime))); - } - return result; - } catch (RemoteException e) { - log.error(e.getMessage(), e); - throw new PartitionValidationException(e.getMessage(), e); - } catch (CloudControllerServiceInvalidPartitionExceptionException e) { - log.error(e.getFaultMessage().getInvalidPartitionException().getMessage(), e); - throw new PartitionValidationException(e.getFaultMessage().getInvalidPartitionException().getMessage(), e); - } - - } - - public synchronized MemberContext spawnAnInstance(Partition partition, - String clusterId, String lbClusterId, String networkPartitionId, boolean isPrimary, int minMemberCount) throws SpawningException { - try { - if (log.isInfoEnabled()) { - log.info(String.format("Trying to spawn an instance via cloud controller: [cluster] %s [partition] %s [lb-cluster] %s [network-partition-id] %s", - clusterId, partition.getId(), lbClusterId, networkPartitionId)); - } - - MemberContext member = new MemberContext(); - member.setClusterId(clusterId); - member.setPartition(partition); - member.setLbClusterId(lbClusterId); - member.setInitTime(System.currentTimeMillis()); - member.setNetworkPartitionId(networkPartitionId); - Properties memberContextProps = new Properties(); - Property isPrimaryProp = new Property(); - isPrimaryProp.setName("PRIMARY"); - isPrimaryProp.setValue(String.valueOf(isPrimary)); - - Property minCountProp = new Property(); - minCountProp.setName("MIN_COUNT"); - minCountProp.setValue(String.valueOf(minMemberCount)); - - memberContextProps.addProperties(isPrimaryProp); - memberContextProps.addProperties(minCountProp); - member.setProperties(memberContextProps); - - - long startTime = System.currentTimeMillis(); - MemberContext memberContext = stub.startInstance(member); - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call startInstance() returned in %dms", (endTime - startTime))); - } - return memberContext; - } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { - String message = e.getFaultMessage().getUnregisteredCartridgeException().getMessage(); - log.error(message, e); - throw new SpawningException(message, e); - } catch (RemoteException e) { - log.error(e.getMessage(), e); - throw new SpawningException(e.getMessage(), e); - } catch (CloudControllerServiceInvalidIaasProviderExceptionException e) { - String message = e.getFaultMessage().getInvalidIaasProviderException().getMessage(); - log.error(message, e); - throw new SpawningException(message, e); - } - } - - public synchronized void terminateAllInstances(String clusterId) throws TerminationException { - try { - if (log.isInfoEnabled()) { - log.info(String.format("Terminating all instances of cluster via cloud controller: [cluster] %s", clusterId)); - } - long startTime = System.currentTimeMillis(); - stub.terminateAllInstances(clusterId); - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call terminateAllInstances() returned in %dms", (endTime - startTime))); - } - } catch (RemoteException e) { - String msg = e.getMessage(); - log.error(msg, e); - throw new TerminationException(msg, e); - - } catch (CloudControllerServiceInvalidClusterExceptionException e) { - String message = e.getFaultMessage().getInvalidClusterException().getMessage(); - log.error(message, e); - throw new TerminationException(message, e); - } - } - - public synchronized void createApplicationClusters(String appId, - Set<ApplicationClusterContext> appClusterContexts) { - List<ApplicationClusterContextDTO> contextDTOs = - new ArrayList<ApplicationClusterContextDTO>(); - for(ApplicationClusterContext context : appClusterContexts) { - ApplicationClusterContextDTO dto = new ApplicationClusterContextDTO(); - dto.setClusterId(context.getClusterId()); - dto.setAutoscalePolicyName(context.getAutoscalePolicyName()); - dto.setDeploymentPolicyName(context.getDeploymentPolicyName()); - dto.setCartridgeType(context.getCartridgeType()); - dto.setHostName(context.getHostName()); - dto.setTenantRange(context.getTenantRange()); - dto.setTextPayload(context.getTextPayload()); - dto.setLbCluster(context.isLbCluster()); - contextDTOs.add(dto); - } - - ApplicationClusterContextDTO[] applicationClusterContextDTOs = - new ApplicationClusterContextDTO[contextDTOs.size()]; - contextDTOs.toArray(applicationClusterContextDTOs); - try { - stub.createApplicationClusters(appId, applicationClusterContextDTOs); - } catch (RemoteException e) { - String msg = e.getMessage(); - log.error(msg, e); - //throw new TerminationException(msg, e); - } catch (CloudControllerServiceApplicationClusterRegistrationExceptionException e) { - //e.printStackTrace(); - String msg = e.getMessage(); - log.error(msg, e); - } - - - } - - public synchronized void terminate(String memberId) throws TerminationException { - try { - if (log.isInfoEnabled()) { - log.info(String.format("Terminating instance via cloud controller: [member] %s", memberId)); - } - long startTime = System.currentTimeMillis(); - stub.terminateInstance(memberId); - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call terminateInstance() returned in %dms", (endTime - startTime))); - } - } catch (RemoteException e) { - String msg = e.getMessage(); - log.error(msg, e); - throw new TerminationException(msg, e); - } catch (CloudControllerServiceInvalidMemberExceptionException e) { - String msg = e.getFaultMessage().getInvalidMemberException().getMessage(); - log.error(msg, e); - throw new TerminationException(msg, e); - } catch (CloudControllerServiceInvalidCartridgeTypeExceptionException e) { - String msg = e.getFaultMessage().getInvalidCartridgeTypeException().getMessage(); - log.error(msg, e); - throw new TerminationException(msg, e); - } - } - - public CartridgeInfo getCartrdgeInformation(String cartridgeType) throws CartridgeInformationException { - - try { - return stub.getCartridgeInfo(cartridgeType); - - } catch (RemoteException e) { - String msg = e.getMessage(); - log.error(msg, e); - throw new CartridgeInformationException(msg, e); - } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { - String msg = e.getMessage(); - log.error(msg, e); - throw new CartridgeInformationException(msg, e); - } - } - - /** - * @param kubernetesClusterId - * @param clusterId - * @return - * @throws SpawningException - */ - public synchronized MemberContext[] startContainers(String kubernetesClusterId, String clusterId) throws SpawningException { - try { - - KubernetesManager kubernetesManager = KubernetesManager.getInstance(); - KubernetesMaster kubernetesMaster = kubernetesManager.getKubernetesMasterInGroup(kubernetesClusterId); - String kubernetesMasterIP = kubernetesMaster.getHostIpAddress(); - KubernetesGroup kubernetesGroup = kubernetesManager.getKubernetesGroup(kubernetesClusterId); - int lower = kubernetesGroup.getPortRange().getLower(); - int upper = kubernetesGroup.getPortRange().getUpper(); - String portRange = Integer.toString(lower) + "-" + Integer.toString(upper); - - ContainerClusterContext context = new ContainerClusterContext(); - context.setClusterId(clusterId); - Properties memberContextProps = new Properties(); - Property kubernetesClusterMasterIPProps = new Property(); - kubernetesClusterMasterIPProps.setName(StratosConstants.KUBERNETES_MASTER_IP); - kubernetesClusterMasterIPProps.setValue(kubernetesMasterIP); - memberContextProps.addProperties(kubernetesClusterMasterIPProps); - Property kubernetesClusterPortRangeProps = new Property(); - kubernetesClusterPortRangeProps.setName(StratosConstants.KUBERNETES_PORT_RANGE); - kubernetesClusterPortRangeProps.setValue(portRange); - memberContextProps.addProperties(kubernetesClusterPortRangeProps); - context.setProperties(memberContextProps); - long startTime = System.currentTimeMillis(); - MemberContext[] memberContexts = stub.startContainers(context); - - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call startContainer() returned in %dms", (endTime - startTime))); - } - return memberContexts; - } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { - String message = e.getFaultMessage().getUnregisteredCartridgeException().getMessage(); - log.error(message, e); - throw new SpawningException(message, e); - } catch (RemoteException e) { - log.error(e.getMessage(), e); - throw new SpawningException(e.getMessage(), e); - } catch (NonExistingKubernetesGroupException e) { - log.error(e.getMessage(), e); - throw new SpawningException(e.getMessage(), e); - } - } - - public synchronized void terminateAllContainers(String clusterId) throws TerminationException { - try { - if (log.isInfoEnabled()) { - log.info(String.format("Terminating containers via cloud controller: [cluster] %s", clusterId)); - } - long startTime = System.currentTimeMillis(); - stub.terminateAllContainers(clusterId); - if (log.isDebugEnabled()) { - long endTime = System.currentTimeMillis(); - log.debug(String.format("Service call terminateContainer() returned in %dms", (endTime - startTime))); - } - } catch (RemoteException e) { - String msg = e.getMessage(); - log.error(msg, e); - throw new TerminationException(msg, e); - } catch (CloudControllerServiceInvalidClusterExceptionException e) { - String msg = e.getFaultMessage().getInvalidClusterException().getMessage(); - log.error(msg, e); - throw new TerminationException(msg, e); - } - } - - public synchronized MemberContext[] updateContainers(String clusterId, int replicas) - throws SpawningException { - try { - log.info(String.format("Updating kubernetes replication controller via cloud controller: " + - "[cluster] %s [replicas] %s", clusterId, replicas)); - MemberContext[] memberContexts = stub.updateContainers(clusterId, replicas); - return memberContexts; - } catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) { - String msg = "Error while updating kubernetes controller, cartridge not found for [cluster] " + clusterId; - log.error(msg, e); - throw new SpawningException(msg, e); - } catch (RemoteException e) { - String msg = "Error while updating kubernetes controller, cannot communicate with " + - "cloud controller service"; - log.error(msg, e); - throw new SpawningException(msg, e); - } - } - - public synchronized void terminateContainer(String memberId) throws TerminationException { - try { - stub.terminateContainer(memberId); - } catch (RemoteException e) { - String msg = "Error while updating kubernetes controller, cannot communicate with " + - "cloud controller service"; - log.error(msg, e); - throw new TerminationException(msg, e); - } catch (CloudControllerServiceMemberTerminationFailedExceptionException e) { - String msg = "Error while terminating container, member not valid for member id : " + memberId; - log.error(msg, e); - throw new TerminationException(msg, e); - } - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/InstanceNotificationClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/InstanceNotificationClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/InstanceNotificationClient.java deleted file mode 100644 index 00d0431..0000000 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/cloud/controller/InstanceNotificationClient.java +++ /dev/null @@ -1,71 +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. TcSee the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.stratos.autoscaler.client.cloud.controller; - -import org.apache.axis2.transport.http.HTTPConstants; -import org.apache.commons.configuration.XMLConfiguration; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.stratos.autoscaler.Constants; -import org.apache.stratos.autoscaler.util.ConfUtil; -import org.apache.stratos.manager.cleanup.notification.stub.*; - -import java.rmi.RemoteException; - -public class InstanceNotificationClient { - private static final Log log = LogFactory.getLog(InstanceNotificationClient.class); - private static InstanceCleanupNotificationServiceStub stub; - - /* An instance of a InstanceNotificationClient is created when the class is loaded. - * Since the class is loaded only once, it is guaranteed that an object of - * InstanceNotificationClient is created only once. Hence it is singleton. - */ - private static class InstanceHolder { - private static final InstanceNotificationClient INSTANCE = new InstanceNotificationClient(); - } - - public static InstanceNotificationClient getInstance() { - return InstanceHolder.INSTANCE; - } - - private InstanceNotificationClient(){ - try { - XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration(); - int port = conf.getInt(Constants.STRATOS_MANAGER_DEFAULT_PORT_ELEMENT, - Constants.STRATOS_MANAGER_DEFAULT_PORT); - String hostname = conf.getString(Constants.STRATOS_MANAGER_HOSTNAME_ELEMENT, "localhost"); - String epr = "https://" + hostname + ":" + port + "/" + Constants.STRATOS_MANAGER_SERVICE_SFX; - int instanceNotificationTimeOut = conf.getInt(Constants.STRATOS_MANAGER_CLIENT_TIMEOUT_ELEMENT, 180000); - stub = new InstanceCleanupNotificationServiceStub(epr); - stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, instanceNotificationTimeOut); - stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, instanceNotificationTimeOut); - } catch (Exception e) { - log.error("Stub init error", e); - } - } - - public void sendMemberCleanupEvent(String memberId) { - try { - stub.sendInstanceCleanupNotificationForMember(memberId); - } catch (RemoteException e) { - log.error("error while sending the cleanup notification event to SM", e); - } - - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java index 3dd4027..977a9af 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitorFactory.java @@ -22,7 +22,7 @@ package org.apache.stratos.autoscaler.monitor.cluster; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.*; -import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.exception.PartitionValidationException; import org.apache.stratos.autoscaler.exception.PolicyValidationException; import org.apache.stratos.autoscaler.partition.PartitionGroup; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java index 39fbd46..b42791c 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/KubernetesClusterMonitor.java @@ -22,7 +22,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.KubernetesClusterContext; import org.apache.stratos.autoscaler.MemberStatsContext; -import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.exception.TerminationException; import org.apache.stratos.autoscaler.policy.PolicyManager; import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java index 03914fa..dd2895a 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java @@ -26,7 +26,7 @@ import org.apache.stratos.autoscaler.AutoscalerContext; import org.apache.stratos.autoscaler.MemberStatsContext; import org.apache.stratos.autoscaler.NetworkPartitionContext; import org.apache.stratos.autoscaler.PartitionContext; -import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy; import org.apache.stratos.autoscaler.exception.InvalidArgumentException; import org.apache.stratos.autoscaler.exception.TerminationException; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java index 2d39ea0..adc4290 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java @@ -23,7 +23,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.NetworkPartitionLbHolder; -import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy; import org.apache.stratos.autoscaler.exception.AutoScalerException; import org.apache.stratos.autoscaler.exception.InvalidPartitionException; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java index 8ab5308..1fdffa4 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java @@ -30,8 +30,8 @@ import org.apache.stratos.autoscaler.PartitionContext; 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.autoscaler.client.cloud.controller.CloudControllerClient; -import org.apache.stratos.autoscaler.client.cloud.controller.InstanceNotificationClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; +import org.apache.stratos.autoscaler.client.InstanceNotificationClient; import org.apache.stratos.autoscaler.exception.SpawningException; import org.apache.stratos.autoscaler.exception.TerminationException; import org.apache.stratos.autoscaler.partition.PartitionManager; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl b/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl index cf9982f..2b0501d 100644 --- a/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl +++ b/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler-old.drl @@ -31,7 +31,7 @@ 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.client.CloudControllerClient; import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; import org.apache.stratos.autoscaler.algorithm.RoundRobin; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler.drl ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler.drl b/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler.drl index 8b200cb..a10eccb 100644 --- a/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler.drl +++ b/components/org.apache.stratos.autoscaler/src/test/resources/autoscaler.drl @@ -28,7 +28,7 @@ import org.apache.stratos.autoscaler.policy.PolicyManager; import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; 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.client.CloudControllerClient; import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; import org.apache.stratos.autoscaler.algorithm.RoundRobin; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/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 index 69f1890..f17a3bd 100644 --- 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 @@ -31,7 +31,7 @@ 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.client.CloudControllerClient; import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; import org.apache.stratos.autoscaler.algorithm.RoundRobin; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/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 index 0dda4d4..0bc5284 100644 --- 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 @@ -27,7 +27,7 @@ import org.apache.stratos.autoscaler.policy.PolicyManager; import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; 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.client.CloudControllerClient; import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; import org.apache.stratos.autoscaler.algorithm.RoundRobin; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl b/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl index 11d7428..5e6829a 100644 --- a/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl +++ b/components/org.apache.stratos.autoscaler/src/test/resources/test-terminating-obsoleted-members-rule.drl @@ -27,7 +27,7 @@ import org.apache.stratos.autoscaler.policy.PolicyManager; import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; 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.client.CloudControllerClient; import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; import org.apache.stratos.autoscaler.algorithm.RoundRobin; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl ---------------------------------------------------------------------- diff --git a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl index 96d7a09..bcb272b 100755 --- a/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl +++ b/products/stratos/modules/distribution/src/main/conf/drools/mincheck.drl @@ -27,7 +27,7 @@ import org.apache.stratos.autoscaler.policy.PolicyManager; import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; 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.client.CloudControllerClient; import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; import org.apache.stratos.autoscaler.algorithm.RoundRobin; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl ---------------------------------------------------------------------- diff --git a/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl b/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl index 55f80cf..8b25258 100755 --- a/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl +++ b/products/stratos/modules/distribution/src/main/conf/drools/obsoletecheck.drl @@ -27,7 +27,7 @@ import org.apache.stratos.autoscaler.policy.PolicyManager; import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy; 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.client.CloudControllerClient; import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; import org.apache.stratos.autoscaler.algorithm.RoundRobin; http://git-wip-us.apache.org/repos/asf/stratos/blob/6805c113/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl ---------------------------------------------------------------------- diff --git a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl index 1d1ba5d..7bb6c9a 100644 --- a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl +++ b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl @@ -32,7 +32,7 @@ import org.apache.stratos.autoscaler.policy.model.RequestsInFlight; import org.apache.stratos.autoscaler.policy.model.LoadThresholds; import org.apache.stratos.autoscaler.policy.model.MemoryConsumption; import org.apache.stratos.autoscaler.policy.model.LoadAverage; -import org.apache.stratos.autoscaler.client.cloud.controller.CloudControllerClient; +import org.apache.stratos.autoscaler.client.CloudControllerClient; import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm; import org.apache.stratos.autoscaler.algorithm.OneAfterAnother; import org.apache.stratos.autoscaler.algorithm.RoundRobin;
