Return-Path: X-Original-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 851139679 for ; Tue, 12 Mar 2013 07:41:12 +0000 (UTC) Received: (qmail 33859 invoked by uid 500); 12 Mar 2013 07:41:12 -0000 Delivered-To: apmail-incubator-cloudstack-dev-archive@incubator.apache.org Received: (qmail 33614 invoked by uid 500); 12 Mar 2013 07:41:11 -0000 Mailing-List: contact cloudstack-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-dev@incubator.apache.org Received: (qmail 33584 invoked by uid 99); 12 Mar 2013 07:41:11 -0000 Received: from reviews-vm.apache.org (HELO reviews.apache.org) (140.211.11.40) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Mar 2013 07:41:11 +0000 Received: from reviews.apache.org (localhost [127.0.0.1]) by reviews.apache.org (Postfix) with ESMTP id 767081C7306; Tue, 12 Mar 2013 07:41:02 +0000 (UTC) Content-Type: multipart/alternative; boundary="===============0474298190099909989==" MIME-Version: 1.0 Subject: Re: Review Request: AWS Style HealthCheck feature BugID : 664 From: "Rajesh Battala" To: "Vijay Venkatachalam" Cc: "Rajesh Battala" , "cloudstack" Date: Tue, 12 Mar 2013 07:41:02 -0000 Message-ID: <20130312074102.2800.38929@reviews.apache.org> X-ReviewBoard-URL: https://reviews.apache.org Auto-Submitted: auto-generated Sender: "Rajesh Battala" X-ReviewGroup: cloudstack X-ReviewRequest-URL: https://reviews.apache.org/r/9165/ X-Sender: "Rajesh Battala" References: <20130306124009.27129.76704@reviews.apache.org> In-Reply-To: <20130306124009.27129.76704@reviews.apache.org> Reply-To: "Rajesh Battala" --===============0474298190099909989== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable > On March 6, 2013, 12:40 p.m., Vijay Venkatachalam wrote: > > server/src/com/cloud/network/dao/LBHealthCheckPolicyDaoImpl.java, line = 62 > > > > > > Looks like an unused public function Am using this method LBRulesManagerImpl. = > On March 6, 2013, 12:40 p.m., Vijay Venkatachalam wrote: > > server/src/com/cloud/network/dao/LBHealthCheckPolicyDaoImpl.java, line = 37 > > > > > > You might want to remove this if not used! this is being used in LBRulesManagerImpl > On March 6, 2013, 12:40 p.m., Vijay Venkatachalam wrote: > > plugins/network-elements/netscaler/src/com/cloud/network/resource/Netsc= alerResource.java, line 2524 > > > > > > Looks like the monitor name conflicts with AutoScale Monitor! Check= generateAutoScaleVmGroupIdentifier() changed with prefix "Cloud-HC" > On March 6, 2013, 12:40 p.m., Vijay Venkatachalam wrote: > > plugins/network-elements/netscaler/src/com/cloud/network/resource/Netsc= alerResource.java, line 1700 > > > > > > Checking state for each service, is expensive. Please use lbvserver= _service_binding resource for querying all the service bindings of a lbvser= ver and then check for curState property on each binding. Please NOTE: the = NetScaler doc wrongly claims it as LB state now using the lbvserver_service_binding to get the states of the services > On March 6, 2013, 12:40 p.m., Vijay Venkatachalam wrote: > > plugins/network-elements/netscaler/src/com/cloud/network/resource/Netsc= alerResource.java, line 1758 > > > > > > You might not be required to do the delete twice. Just check by set= ting resp_code to null and it should work after setting the respcode for http based monitor to null and then executin= g deleting the monitor api is properly deleting the http monitor. - Rajesh ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/9165/#review17454 ----------------------------------------------------------- On March 5, 2013, 6:56 p.m., Rajesh Battala wrote: > = > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/9165/ > ----------------------------------------------------------- > = > (Updated March 5, 2013, 6:56 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 healthche= ck polices. = > = > commands will take the lbrule id as mandatory param and execute the actio= n. > 1. createLBHealthCheck : > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > LB ruleid is the mandatory param to the api. Remaining params (pingpa= th, 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 serv= ices present in the LB rule. > NetScaler will take care of monitoring according to the monitor params. > Monitor name will be (Cloud-Mon--) > = > Initially only one monitor is supported for an LB rule. > if createLBHealthCheck returns an error, it will cleanup the entry creat= ed in db. > = > 2. deleteLBHealthCheck: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > 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: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > LB ruleid is the mandatory param to the api. > this command will list LB HealthChecks created on the LB rule. > = > LBHealthCheckManager: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > A new field is introduce in the table load_balancer_vm_map (state of stri= ng 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_v= m_map. > The time interval fo the LBHealthManager can be configured from Global Se= ttings(healthcheck.update.interval). default value is 600 sec. = > possible values UP, DOWN, UNKNOWN, BUSY, OUT OF SERVICE, GOING OUT OF SER= VICE, 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/element/LoadBalancingServiceProvider.java 879= ea0e = > 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 1b544fd = > api/src/org/apache/cloudstack/api/ResponseGenerator.java a602514 = > api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHea= lthCheckPolicyCmd.java PRE-CREATION = > api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHea= lthCheckPolicyCmd.java PRE-CREATION = > api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealt= hCheckPoliciesCmd.java PRE-CREATION = > api/src/org/apache/cloudstack/api/response/LBHealthCheckPolicyResponse.= java PRE-CREATION = > api/src/org/apache/cloudstack/api/response/LBHealthCheckResponse.java P= RE-CREATION = > client/tomcatconf/commands.properties.in dd0c3f8 = > client/tomcatconf/components.xml.in 1d3faf3 = > plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/ele= ment/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/F5ExternalLoa= dBalancerElement.java 94c098e = > plugins/network-elements/netscaler/src/com/cloud/network/element/Netsca= lerElement.java 8f902df = > plugins/network-elements/netscaler/src/com/cloud/network/resource/Netsc= alerResource.java abea464 = > server/src/com/cloud/api/ApiResponseHelper.java fbfc955 = > server/src/com/cloud/configuration/Config.java 418f97d = > server/src/com/cloud/network/ExternalLoadBalancerDeviceManager.java d97= 9f07 = > server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java= bcefccc = > server/src/com/cloud/network/LBHealthCheckPolicyVO.java PRE-CREATION = > server/src/com/cloud/network/NetworkManagerImpl.java a575183 = > server/src/com/cloud/network/dao/LBHealthCheckPolicyDao.java PRE-CREATI= ON = > server/src/com/cloud/network/dao/LBHealthCheckPolicyDaoImpl.java PRE-CR= EATION = > 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-CREAT= ION = > server/src/com/cloud/network/lb/LoadBalancingRulesManager.java 9d7d22f = > server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java 531a= 428 = > server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.= java b387ab5 = > server/src/com/cloud/server/ManagementServerImpl.java 3c615e1 = > setup/db/db/schema-410to420.sql f3112a1 = > = > Diff: https://reviews.apache.org/r/9165/diff/ > = > = > Testing > ------- > = > Testing Done: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > = > 1. create LB rule of TCP protocol and assing instances, create lb healthc= heck on lb rule. A TCP monitor is created and it will binded to all the ser= vices. > 2. create LB rule of HTTP protocol and assing instances, create lb health= check on lb rule. HTTP monitor is created and it will binded to all the ser= vices. > 3. create LB rule of HTTP protocol and assing instances, create lb health= check on lb rule with pingpath and other params, HTTP monitor is created an= d 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 wi= ll be binded to the newly added service. > 5.for an existing LB with an Monitor, delete a service from LB, monitor w= ill be unbinded and service will be removed. > 6.delete an monitor for LB rule, all the service binded to the monitor wi= ll be unbinded and monitor will get removed. > 7.delete LB rule, lb vserver will be deleted and the monitor will be dele= ted. = > 8. list the LB rules giving the lb rule id, healtcheckpolicy created on t= he 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 LB= HealthCheckManager will be updating the service state from the Netscaler. > = > = > Thanks, > = > Rajesh Battala > = > --===============0474298190099909989==--