> On March 12, 2013, 1:59 p.m., Vijay Venkatachalam wrote:
> > server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java, line 773
> > <https://reviews.apache.org/r/9165/diff/5/?file=269507#file269507line773>
> >
> >     In AWS, health checks are collected for every LBrule. In upgrade case 
> > the adapter could report status of service vms as seen by the 
> > appliance(there would have been default monitors anyway) for existing 
> > config. If you don't want to do this now you might want to file an 
> > enhancement bug. If you plan to do this right away, the logic currently 
> > adopted by collecting stats per LB Rule wont scale. I will advice to 
> > collect per device/appliance. ExternalUsage (Stats) collection already 
> > works this way.

I have created a bug for the same. 
https://issues.apache.org/jira/browse/CLOUDSTACK-1680.


- Rajesh


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/9165/#review17734
-----------------------------------------------------------


On March 13, 2013, 9:49 a.m., Rajesh Battala wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/9165/
> -----------------------------------------------------------
> 
> (Updated March 13, 2013, 9:49 a.m.)
> 
> 
> Review request for cloudstack and Vijay Venkatachalam.
> 
> 
> Description
> -------
> 
> Code Review for AWS Style Health Check Feature :
> Added API commands :
> 1. createLBHealthCheck
> 2. deleteLBHealthCheck
> 3. listLBHealthCheck
> 
> load_balancer_healthcheck_policies table will hold the data for healthcheck 
> polices. 
> 
> commands will take the lbrule id as mandatory param and execute the action.
> 1. createLBHealthCheck :
> ========================
>    LB ruleid is the mandatory param to the api.  Remaining params (pingpath, 
> responstime, request Healthcheck_interval, Healthy_thresshold, 
> Unhealth_thresshold) have default values. if not specified in the command.
>   It will create monitor (tcp/http) depending upon the LB protocol.
>   after creating the LB Monitor, it will bind the monitor to all the services 
> present in the LB rule.
>   NetScaler will take care of monitoring according to the monitor params.
>   Monitor name will be (Cloud-Hc-<LB IP>-<port>)
> 
>  Initially only one monitor is supported for an LB rule.
>  if createLBHealthCheck returns an error, it will cleanup the entry created 
> in db.
>   
> 2. deleteLBHealthCheck:
> ========================
>    LB ruleid is the mandatory param to the api.
>    the command will first unbind all the services attached to it and then the 
> monitor will be deleted.
>    DB entry in load_balancer_healthcheck_policies will be deleted.
> 
> 3. listLBHealthChecks:
> ======================
>     LB ruleid is the mandatory param to the api.
>       this command will list LB HealthChecks created on the LB rule.
> 
> LBHealthCheckManager:
> =====================
> A new field is introduce in the table load_balancer_vm_map (state of string 
> type)
> 
> The task of the LBHealthCheckManager is at every period of time, it will 
> fetch the service status of LB rules and update them in the 
> load_balancer_vm_map.
> The time interval fo the LBHealthManager can be configured from Global 
> Settings(healthcheck.update.interval). default value is 600 sec.  
> possible values UP, DOWN, UNKNOWN, BUSY, OUT OF SERVICE, GOING OUT OF 
> SERVICE, DOWN WHEN GOING OUT OF SERVICE
> 
> 
> This addresses bug https://issues.apache.org/jira/browse/CLOUDSTACK-664.
> 
> 
> Diffs
> -----
> 
>   api/src/com/cloud/agent/api/routing/HealthCheckLBConfigAnswer.java 
> PRE-CREATION 
>   api/src/com/cloud/agent/api/routing/HealthCheckLBConfigCommand.java 
> PRE-CREATION 
>   api/src/com/cloud/agent/api/to/LoadBalancerTO.java 2d166ea 
>   api/src/com/cloud/event/EventTypes.java 0087edc 
>   api/src/com/cloud/network/Network.java efed5cd 
>   api/src/com/cloud/network/element/LoadBalancingServiceProvider.java 879ea0e 
>   api/src/com/cloud/network/lb/LoadBalancingRule.java fb1d988 
>   api/src/com/cloud/network/lb/LoadBalancingRulesService.java 3743aae 
>   api/src/com/cloud/network/rules/HealthCheckPolicy.java PRE-CREATION 
>   api/src/org/apache/cloudstack/api/ApiConstants.java b40b26c 
>   api/src/org/apache/cloudstack/api/ResponseGenerator.java a602514 
>   
> api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java
>  PRE-CREATION 
>   
> api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java
>  PRE-CREATION 
>   
> api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthCheckPoliciesCmd.java
>  PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/LBHealthCheckPolicyResponse.java 
> PRE-CREATION 
>   api/src/org/apache/cloudstack/api/response/LBHealthCheckResponse.java 
> PRE-CREATION 
>   client/tomcatconf/commands.properties.in 5018236 
>   plugins/network-elements/dns-notifier/resources/components-example.xml 
> 36441bd 
>   
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/element/ElasticLoadBalancerElement.java
>  abb36c3 
>   
> plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
>  81039d1 
>   
> plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
>  94c098e 
>   
> plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
>  8f902df 
>   
> plugins/network-elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java
>  abea464 
>   server/src/com/cloud/api/ApiResponseHelper.java fbfc955 
>   server/src/com/cloud/configuration/Config.java 64465a2 
>   server/src/com/cloud/network/ExternalLoadBalancerDeviceManager.java d979f07 
>   server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java 
> d7b6d78 
>   server/src/com/cloud/network/LBHealthCheckPolicyVO.java PRE-CREATION 
>   server/src/com/cloud/network/NetworkManagerImpl.java 3220c91 
>   server/src/com/cloud/network/dao/LBHealthCheckPolicyDao.java PRE-CREATION 
>   server/src/com/cloud/network/dao/LBHealthCheckPolicyDaoImpl.java 
> PRE-CREATION 
>   server/src/com/cloud/network/dao/LoadBalancerVMMapVO.java 8856993 
>   server/src/com/cloud/network/element/VirtualRouterElement.java 500d0b6 
>   server/src/com/cloud/network/lb/LBHealthCheckManager.java PRE-CREATION 
>   server/src/com/cloud/network/lb/LBHealthCheckManagerImpl.java PRE-CREATION 
>   server/src/com/cloud/network/lb/LoadBalancingRulesManager.java 9d7d22f 
>   server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java 531a428 
>   server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 
> 3cbd51d 
>   server/src/com/cloud/server/ManagementServerImpl.java d70c45f 
>   setup/db/db/schema-410to420.sql ca15bda 
> 
> Diff: https://reviews.apache.org/r/9165/diff/
> 
> 
> Testing
> -------
> 
> Testing Done:
> =============
> 
> 1. create LB rule of TCP protocol and assing instances, create lb healthcheck 
> on lb rule. A TCP monitor is created and it will binded to all the services.
> 2. create LB rule of HTTP protocol and assing instances, create lb 
> healthcheck on lb rule. HTTP monitor is created and it will binded to all the 
> services.
> 3. create LB rule of HTTP protocol and assing instances, create lb 
> healthcheck on lb rule with pingpath and other params, HTTP monitor is 
> created and it will binded to all the services and its properties pingpath 
> value will be present.
> 4.for an existing LB with an Monitor, add a new service to LB, monitor will 
> be binded to the newly added service.
> 5.for an existing LB with an Monitor, delete a service from LB, monitor will 
> be unbinded and service will be removed.
> 6.delete an monitor for LB rule, all the service binded to the monitor will 
> be unbinded and monitor will get removed.
> 7.delete LB rule, lb vserver will be deleted and the monitor will be deleted. 
> 8. list the LB rules giving the lb rule id, healtcheckpolicy created on the 
> LB rule will be returned. if not it will return empty list
> 9.Modify the healthcheck.update.interval to 1 min, at every one minute 
> LBHealthCheckManager will be updating the service state from the Netscaler.
> 
> 
> Thanks,
> 
> Rajesh Battala
> 
>

Reply via email to