Thanks a lot Vijay for your review. Thanks Rajesh Battala
> -----Original Message----- > From: Vijay Venkatachalam [mailto:nore...@reviews.apache.org] On Behalf Of > Vijay Venkatachalam > Sent: Thursday, March 14, 2013 8:43 PM > To: Vijay Venkatachalam > Cc: Rajesh Battala; cloudstack > Subject: Re: Review Request: AWS Style HealthCheck feature BugID : 664 > > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/9165/#review17874 > ----------------------------------------------------------- > > Ship it! > > > Ship It! > > - Vijay Venkatachalam > > > On March 14, 2013, 12:36 p.m., Rajesh Battala wrote: > > > > ----------------------------------------------------------- > > This is an automatically generated e-mail. To reply, visit: > > https://reviews.apache.org/r/9165/ > > ----------------------------------------------------------- > > > > (Updated March 14, 2013, 12:36 p.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/CreateLBHeal > thCheckPolicyCmd.java PRE-CREATION > > > api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealt > hCheckPolicyCmd.java PRE-CREATION > > > api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthC > heckPoliciesCmd.java PRE-CREATION > > > api/src/org/apache/cloudstack/api/response/LBHealthCheckPolicyResponse.jav > a 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.jav > a 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 > c1c735a > > plugins/network- > elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java > abea464 > > server/src/com/cloud/api/ApiResponseHelper.java 2546f29 > > 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.ja > va 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 > > > >