----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/9165/#review17237 -----------------------------------------------------------
api/src/com/cloud/network/lb/LoadBalancingRule.java <https://reviews.apache.org/r/9165/#comment36625> Can you reuse the other constructor? using this() api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java <https://reviews.apache.org/r/9165/#comment36609> Watch out for Threshold typo api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java <https://reviews.apache.org/r/9165/#comment36610> Watch out for Threshold typo api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java <https://reviews.apache.org/r/9165/#comment36611> Camel Case Please api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java <https://reviews.apache.org/r/9165/#comment36613> Watch out it is not LbRule Id, it is actually using health check id. You might want to correct stickiness policy. api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java <https://reviews.apache.org/r/9165/#comment36614> This Exception is never thrown!! api/src/org/apache/cloudstack/api/command/user/loadbalancer/CreateLBHealthCheckPolicyCmd.java <https://reviews.apache.org/r/9165/#comment36615> Typo: "Create" api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java <https://reviews.apache.org/r/9165/#comment36616> Wrong Id reference it is not LBStickinessResponse!! api/src/org/apache/cloudstack/api/command/user/loadbalancer/DeleteLBHealthCheckPolicyCmd.java <https://reviews.apache.org/r/9165/#comment36618> Please use consistent terms, either LB Rule, seems to have been conveyed differently in different places api/src/org/apache/cloudstack/api/command/user/loadbalancer/ListLBHealthCheckPoliciesCmd.java <https://reviews.apache.org/r/9165/#comment36619> check User access need not be done here, it is done again at LBService Layer, please remove one. api/src/org/apache/cloudstack/api/response/LBHealthCheckPolicyResponse.java <https://reviews.apache.org/r/9165/#comment36620> Copy Paste Error api/src/org/apache/cloudstack/api/response/LBHealthCheckPolicyResponse.java <https://reviews.apache.org/r/9165/#comment36621> Copy Paste Error api/src/org/apache/cloudstack/api/response/LBHealthCheckResponse.java <https://reviews.apache.org/r/9165/#comment36624> Why do we need this wrapper? api/src/org/apache/cloudstack/api/response/LBHealthCheckResponse.java <https://reviews.apache.org/r/9165/#comment36622> Unused public function? client/tomcatconf/commands.properties.in <https://reviews.apache.org/r/9165/#comment36623> No command called listLBHealthCheckPolicy - Vijay Venkatachalam On March 1, 2013, 9:07 a.m., Rajesh Battala wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/9165/ > ----------------------------------------------------------- > > (Updated March 1, 2013, 9:07 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-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 0087edc > 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 a26b468 > api/src/org/apache/cloudstack/api/ResponseGenerator.java 267238a > > 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 f03e8d5 > client/tomcatconf/components.xml.in 7d86a1c > > 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 eafee8a > server/src/com/cloud/configuration/Config.java 8a75a96 > server/src/com/cloud/network/ExternalLoadBalancerDeviceManager.java d979f07 > server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java > bcefccc > server/src/com/cloud/network/LBHealthCheckPolicyVO.java PRE-CREATION > server/src/com/cloud/network/NetworkManagerImpl.java f527b73 > 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 > 0e2eb63 > server/src/com/cloud/server/ManagementServerImpl.java e80d48c > setup/db/db/schema-410to420.sql 4349bd0 > > 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 > >