org.apache.stratos.lb.common.conf
Class LoadBalancerConfiguration

java.lang.Object
  extended by org.apache.stratos.lb.common.conf.LoadBalancerConfiguration
All Implemented Interfaces:
Serializable

public class LoadBalancerConfiguration
extends Object
implements Serializable

Data object which hold configuration data of the load analyzer task

See Also:
Serialized Form

Nested Class Summary
 class LoadBalancerConfiguration.Configuration
           
 class LoadBalancerConfiguration.LBConfiguration
           
 class LoadBalancerConfiguration.ServiceConfiguration
           
 
Field Summary
protected  LoadBalancerConfiguration.ServiceConfiguration defaultServiceConfig
           
protected  LoadBalancerConfiguration.LBConfiguration lbConfig
           
protected  String lbConfigString
          LBConfig file as a String
protected  Node rootNode
          Root node object for loadbalancer.conf
protected static long serialVersionUID
           
 
Method Summary
 boolean addServiceConfiguration(LoadBalancerConfiguration.ServiceConfiguration serviceConfig)
           
 void addToHostContextMap(String hostName, HostContext ctxt)
           
 void addToHostNameTrackerMap(String name, List<String> hosts)
           
protected  void createConfiguration(LoadBalancerConfiguration.Configuration config, Node node)
           
 String createLBConfigString(InputStream configFileName)
           
 String createLBConfigString(String configFileName)
          Convert given configuration file to a single String
 List<LoadBalancerConfiguration.ServiceConfiguration> createServicesConfig(Node servicesConfigNode)
          Process the content of the following 'services' element

services { defaults { min_app_instances 1; max_app_instances 5; queue_length_per_node 400; rounds_to_average 10; instances_per_scale_up 1; message_expiry_time 60000; }

appserver { hosts appserver.cloud-test.wso2.com,as.cloud-test.wso2.com; domains { wso2.as1.domain { tenant_range 1-100; } wso2.as2.domain { tenant_range 101-200; } wso2.as3.domain { tenant_range *; } } } }

 Map<String,HostContext> getHostContextMap()
          Return a map of HostContext.
 Map<String,Set<String>> getHostNamesTracker()
           
static LoadBalancerConfiguration getInstance()
           
 LoadBalancerConfiguration.LBConfiguration getLoadBalancerConfig()
           
 Node getRootNode()
           
 LoadBalancerConfiguration.ServiceConfiguration getServiceConfig(String domain, String subDomain)
           
 List<LoadBalancerConfiguration.ServiceConfiguration> getServiceConfigs(String serviceName)
           
 Map<String,Map<String,LoadBalancerConfiguration.ServiceConfiguration>> getServiceConfigurations()
           
 String[] getServiceDomains()
           
 Map<String,List<LoadBalancerConfiguration.ServiceConfiguration>> getServiceNameToServiceConfigurations()
           
 String[] getServiceSubDomains(String domain)
           
 void init(String configURL)
          Sample loadbalancer.conf:

loadbalancer { # minimum number of load balancer instances instances 1; # whether autoscaling enable or not enable_autoscaler true; # End point reference of the Autoscaler Service autoscaler_service_epr https://10.100.3.81:9443/services/AutoscalerService/; # interval between two task executions in milliseconds autoscaler_task_interval 1000; # after an instance booted up, task will wait till this much of time and let the server started up server_startup_delay 15000; }

services { defaults { min_app_instances 1; max_app_instances 5; queue_length_per_node 400; rounds_to_average 10; instances_per_scale_up 1; message_expiry_time 60000; }

appserver { hosts appserver.cloud-test.wso2.com,as.cloud-test.wso2.com; domains { wso2.as1.domain { tenant_range 1-100; } wso2.as2.domain { tenant_range 101-200; } wso2.as3.domain { tenant_range *; } } } }

 boolean isDuplicatedHost(String name, LoadBalancerConfiguration.ServiceConfiguration serviceConfig)
          Duplications can only be seen, when you traverse down the configuration file.
 LoadBalancerConfiguration.ServiceConfiguration removeServiceConfiguration(String domain, String subDomain)
           
 void resetData()
           
static void setInstance(LoadBalancerConfiguration instance)
           
 void setRootNode(Node rootNode)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

protected static final long serialVersionUID
See Also:
Constant Field Values

defaultServiceConfig

protected LoadBalancerConfiguration.ServiceConfiguration defaultServiceConfig

lbConfig

protected LoadBalancerConfiguration.LBConfiguration lbConfig

lbConfigString

protected String lbConfigString
LBConfig file as a String


rootNode

protected Node rootNode
Root node object for loadbalancer.conf

Method Detail

getInstance

public static LoadBalancerConfiguration getInstance()

init

public void init(String configURL)
Sample loadbalancer.conf:

loadbalancer { # minimum number of load balancer instances instances 1; # whether autoscaling enable or not enable_autoscaler true; # End point reference of the Autoscaler Service autoscaler_service_epr https://10.100.3.81:9443/services/AutoscalerService/; # interval between two task executions in milliseconds autoscaler_task_interval 1000; # after an instance booted up, task will wait till this much of time and let the server started up server_startup_delay 15000; }

services { defaults { min_app_instances 1; max_app_instances 5; queue_length_per_node 400; rounds_to_average 10; instances_per_scale_up 1; message_expiry_time 60000; }

appserver { hosts appserver.cloud-test.wso2.com,as.cloud-test.wso2.com; domains { wso2.as1.domain { tenant_range 1-100; } wso2.as2.domain { tenant_range 101-200; } wso2.as3.domain { tenant_range *; } } } }

Parameters:
configURL - URL of the load balancer config

createServicesConfig

public List<LoadBalancerConfiguration.ServiceConfiguration> createServicesConfig(Node servicesConfigNode)
Process the content of the following 'services' element

services { defaults { min_app_instances 1; max_app_instances 5; queue_length_per_node 400; rounds_to_average 10; instances_per_scale_up 1; message_expiry_time 60000; }

appserver { hosts appserver.cloud-test.wso2.com,as.cloud-test.wso2.com; domains { wso2.as1.domain { tenant_range 1-100; } wso2.as2.domain { tenant_range 101-200; } wso2.as3.domain { tenant_range *; } } } }

Parameters:
servicesConfigNode - services element's Node

addServiceConfiguration

public boolean addServiceConfiguration(LoadBalancerConfiguration.ServiceConfiguration serviceConfig)

removeServiceConfiguration

public LoadBalancerConfiguration.ServiceConfiguration removeServiceConfiguration(String domain,
                                                                                 String subDomain)

resetData

public void resetData()

isDuplicatedHost

public boolean isDuplicatedHost(String name,
                                LoadBalancerConfiguration.ServiceConfiguration serviceConfig)
Duplications can only be seen, when you traverse down the configuration file.


addToHostNameTrackerMap

public void addToHostNameTrackerMap(String name,
                                    List<String> hosts)

addToHostContextMap

public void addToHostContextMap(String hostName,
                                HostContext ctxt)

getHostContextMap

public Map<String,HostContext> getHostContextMap()
Return a map of HostContext.

Returns:

createConfiguration

protected void createConfiguration(LoadBalancerConfiguration.Configuration config,
                                   Node node)

getLoadBalancerConfig

public LoadBalancerConfiguration.LBConfiguration getLoadBalancerConfig()

getServiceDomains

public String[] getServiceDomains()

getServiceSubDomains

public String[] getServiceSubDomains(String domain)

getServiceConfig

public LoadBalancerConfiguration.ServiceConfiguration getServiceConfig(String domain,
                                                                       String subDomain)

getServiceConfigs

public List<LoadBalancerConfiguration.ServiceConfiguration> getServiceConfigs(String serviceName)

createLBConfigString

public String createLBConfigString(String configFileName)
                            throws FileNotFoundException
Convert given configuration file to a single String

Parameters:
configFileName - - file name to convert
Returns:
String with complete lb configuration
Throws:
FileNotFoundException

createLBConfigString

public String createLBConfigString(InputStream configFileName)
                            throws IOException
Throws:
IOException

getHostNamesTracker

public Map<String,Set<String>> getHostNamesTracker()

getServiceConfigurations

public Map<String,Map<String,LoadBalancerConfiguration.ServiceConfiguration>> getServiceConfigurations()

getRootNode

public Node getRootNode()

setRootNode

public void setRootNode(Node rootNode)

setInstance

public static void setInstance(LoadBalancerConfiguration instance)

getServiceNameToServiceConfigurations

public Map<String,List<LoadBalancerConfiguration.ServiceConfiguration>> getServiceNameToServiceConfigurations()


Copyright © 2013 The Apache Software Foundation. All Rights Reserved.