You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Animesh Chaturvedi <an...@citrix.com> on 2013/02/14 04:33:08 UTC

RE: Review Request: AWS Style HealthCheck feature BugID : 664

Rajesh

Please respond to reviewer comments and submit a new diff

> -----Original Message-----
> From: Chiradeep Vittal [mailto:noreply@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
> >
> >