Rajesh Please respond to reviewer comments and submit a new diff
> -----Original Message----- > From: Chiradeep Vittal [mailto:nore...@reviews.apache.org] On Behalf Of > Chiradeep Vittal > Sent: Wednesday, January 30, 2013 3:25 PM > To: Rajesh Battala; cloudstack; Chiradeep Vittal > 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/#review15898 > ----------------------------------------------------------- > > > Can you > a. ensure there are no tabs > b. ensure that you do not use printStackTrace() any where c. Document the > service interface d. avoid putting code into NetworkManagerImpl.java e. > Remove unneeded imports f. fix indentations g. Avoid implementing the service > and manager interface in the same class file. > > - Chiradeep Vittal > > > On Jan. 30, 2013, 8:17 p.m., Rajesh Battala wrote: > > > > ----------------------------------------------------------- > > This is an automatically generated e-mail. To reply, visit: > > https://reviews.apache.org/r/9165/ > > ----------------------------------------------------------- > > > > (Updated Jan. 30, 2013, 8:17 p.m.) > > > > > > Review request for cloudstack. > > > > > > 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-Mon-<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 63b7cd0 > > api/src/com/cloud/network/element/LoadBalancingServiceProvider.java > 879ea0e > > api/src/com/cloud/network/lb/LBRulesHealthMonitorService.java PRE- > CREATION > > api/src/com/cloud/network/lb/LoadBalancingRule.java b68b9cb > > api/src/com/cloud/network/lb/LoadBalancingRulesService.java 4081f6e > > api/src/com/cloud/network/rules/HealthCheckPolicy.java PRE-CREATION > > api/src/org/apache/cloudstack/api/ApiConstants.java d084271 > > api/src/org/apache/cloudstack/api/ResponseGenerator.java 63df4dc > > > api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHeal > thCheckPolicyCmd.java PRE-CREATION > > > api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHeal > thCheckPolicyCmd.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 3740fb0 > > client/tomcatconf/components-nonoss.xml.in fbfc5cc > > client/tomcatconf/components.xml.in c41d4f4 > > plugins/network-elements/elastic- > loadbalancer/src/com/cloud/network/element/ElasticLoadBalancerElement.jav > a 201b397 > > plugins/network-elements/elastic- > loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java > 82c6120 > > plugins/network- > elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement > .java 2e6f6e7 > > plugins/network- > elements/netscaler/src/com/cloud/network/element/NetscalerElement.java > c2dc1e0 > > plugins/network- > elements/netscaler/src/com/cloud/network/resource/NetscalerResource.java > ca8c8a7 > > server/src/com/cloud/api/ApiResponseHelper.java 1c8849a > > server/src/com/cloud/configuration/Config.java 5e4996b > > server/src/com/cloud/configuration/DefaultComponentLibrary.java > 98da7ad > > server/src/com/cloud/network/ExternalLoadBalancerDeviceManager.java > 5e7b98a > > > server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java > 275401c > > server/src/com/cloud/network/LBHealthCheckPolicyVO.java PRE-CREATION > > server/src/com/cloud/network/LoadBalancerVMMapVO.java 3cc66dc > > server/src/com/cloud/network/NetworkManager.java 546f1bf > > server/src/com/cloud/network/NetworkManagerImpl.java bb60dcf > > 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/element/VirtualRouterElement.java 2b54ae0 > > 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 > c9b3f93 > > server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java > dfd5232 > > > server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.j > ava e1c78e1 > > server/src/com/cloud/server/ConfigurationServerImpl.java b0abd04 > > setup/db/create-schema.sql ead98a5 > > setup/db/db/schema-40to410.sql ed4946e > > > > 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 > > > >