mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	CLOUDSTACK-6596: UUID and display flag update support for LBStickinessPolicy and LBHealthCheckPolicy
This commit is contained in:
		
							parent
							
								
									25ab05a189
								
							
						
					
					
						commit
						66d5ebc657
					
				| @ -134,9 +134,11 @@ public class EventTypes { | |||||||
|     public static final String EVENT_LOAD_BALANCER_CREATE = "LB.CREATE"; |     public static final String EVENT_LOAD_BALANCER_CREATE = "LB.CREATE"; | ||||||
|     public static final String EVENT_LOAD_BALANCER_DELETE = "LB.DELETE"; |     public static final String EVENT_LOAD_BALANCER_DELETE = "LB.DELETE"; | ||||||
|     public static final String EVENT_LB_STICKINESSPOLICY_CREATE = "LB.STICKINESSPOLICY.CREATE"; |     public static final String EVENT_LB_STICKINESSPOLICY_CREATE = "LB.STICKINESSPOLICY.CREATE"; | ||||||
|  |     public static final String EVENT_LB_STICKINESSPOLICY_UPDATE = "LB.STICKINESSPOLICY.UPDATE"; | ||||||
|     public static final String EVENT_LB_STICKINESSPOLICY_DELETE = "LB.STICKINESSPOLICY.DELETE"; |     public static final String EVENT_LB_STICKINESSPOLICY_DELETE = "LB.STICKINESSPOLICY.DELETE"; | ||||||
|     public static final String EVENT_LB_HEALTHCHECKPOLICY_CREATE = "LB.HEALTHCHECKPOLICY.CREATE"; |     public static final String EVENT_LB_HEALTHCHECKPOLICY_CREATE = "LB.HEALTHCHECKPOLICY.CREATE"; | ||||||
|     public static final String EVENT_LB_HEALTHCHECKPOLICY_DELETE = "LB.HEALTHCHECKPOLICY.DELETE"; |     public static final String EVENT_LB_HEALTHCHECKPOLICY_DELETE = "LB.HEALTHCHECKPOLICY.DELETE"; | ||||||
|  |     public static final String EVENT_LB_HEALTHCHECKPOLICY_UPDATE = "LB.HEALTHCHECKPOLICY.UPDATE"; | ||||||
|     public static final String EVENT_LOAD_BALANCER_UPDATE = "LB.UPDATE"; |     public static final String EVENT_LOAD_BALANCER_UPDATE = "LB.UPDATE"; | ||||||
|     public static final String EVENT_LB_CERT_UPLOAD = "LB.CERT.UPLOAD"; |     public static final String EVENT_LB_CERT_UPLOAD = "LB.CERT.UPLOAD"; | ||||||
|     public static final String EVENT_LB_CERT_DELETE = "LB.CERT.DELETE"; |     public static final String EVENT_LB_CERT_DELETE = "LB.CERT.DELETE"; | ||||||
|  | |||||||
| @ -155,4 +155,8 @@ public interface LoadBalancingRulesService { | |||||||
|     boolean isLbRuleMappedToVmGuestIp(String vmSecondaryIp); |     boolean isLbRuleMappedToVmGuestIp(String vmSecondaryIp); | ||||||
| 
 | 
 | ||||||
|     List<String> listLbVmIpAddress(long id, long vmId); |     List<String> listLbVmIpAddress(long id, long vmId); | ||||||
|  | 
 | ||||||
|  |     StickinessPolicy updateLBStickinessPolicy(long id, String customId, Boolean forDisplay); | ||||||
|  | 
 | ||||||
|  |     HealthCheckPolicy updateLBHealthCheckPolicy(long id, String customId, Boolean forDisplay); | ||||||
| } | } | ||||||
|  | |||||||
| @ -39,4 +39,9 @@ public interface HealthCheckPolicy extends InternalIdentity, Identity { | |||||||
| 
 | 
 | ||||||
|     public boolean isRevoke(); |     public boolean isRevoke(); | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     boolean isDisplay(); | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -39,4 +39,9 @@ public interface StickinessPolicy extends InternalIdentity, Identity { | |||||||
| 
 | 
 | ||||||
|     public List<Pair<String, String>> getParams(); /* get params in Map <string,String> format */ |     public List<Pair<String, String>> getParams(); /* get params in Map <string,String> format */ | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * @return | ||||||
|  |      */ | ||||||
|  |     boolean isDisplay(); | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -16,8 +16,7 @@ | |||||||
| // under the License. | // under the License. | ||||||
| package org.apache.cloudstack.api.command.user.loadbalancer; | package org.apache.cloudstack.api.command.user.loadbalancer; | ||||||
| 
 | 
 | ||||||
| import org.apache.log4j.Logger; | import org.apache.cloudstack.acl.RoleType; | ||||||
| 
 |  | ||||||
| import org.apache.cloudstack.api.APICommand; | import org.apache.cloudstack.api.APICommand; | ||||||
| import org.apache.cloudstack.api.ApiConstants; | import org.apache.cloudstack.api.ApiConstants; | ||||||
| import org.apache.cloudstack.api.ApiErrorCode; | import org.apache.cloudstack.api.ApiErrorCode; | ||||||
| @ -27,6 +26,7 @@ import org.apache.cloudstack.api.ServerApiException; | |||||||
| import org.apache.cloudstack.api.response.FirewallRuleResponse; | import org.apache.cloudstack.api.response.FirewallRuleResponse; | ||||||
| import org.apache.cloudstack.api.response.LBHealthCheckResponse; | import org.apache.cloudstack.api.response.LBHealthCheckResponse; | ||||||
| import org.apache.cloudstack.context.CallContext; | import org.apache.cloudstack.context.CallContext; | ||||||
|  | import org.apache.log4j.Logger; | ||||||
| 
 | 
 | ||||||
| import com.cloud.event.EventTypes; | import com.cloud.event.EventTypes; | ||||||
| import com.cloud.exception.InvalidParameterValueException; | import com.cloud.exception.InvalidParameterValueException; | ||||||
| @ -89,10 +89,18 @@ public class CreateLBHealthCheckPolicyCmd extends BaseAsyncCreateCmd { | |||||||
|                description = "Number of consecutive health check failures before declaring an instance unhealthy") |                description = "Number of consecutive health check failures before declaring an instance unhealthy") | ||||||
|     private int unhealthyThreshold; |     private int unhealthyThreshold; | ||||||
| 
 | 
 | ||||||
|  |     @Parameter(name = ApiConstants.FOR_DISPLAY, type = CommandType.BOOLEAN, description = "an optional field, whether to the display the rule to the end user or not", since = "4.4", authorized = {RoleType.Admin}) | ||||||
|  |     private Boolean display; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
|     // ///////////////// Accessors /////////////////////// |     // ///////////////// Accessors /////////////////////// | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
| 
 | 
 | ||||||
|  |     public Boolean getDisplay() { | ||||||
|  |         return display; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public Long getLbRuleId() { |     public Long getLbRuleId() { | ||||||
|         return lbRuleId; |         return lbRuleId; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -18,8 +18,7 @@ package org.apache.cloudstack.api.command.user.loadbalancer; | |||||||
| 
 | 
 | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| 
 | 
 | ||||||
| import org.apache.log4j.Logger; | import org.apache.cloudstack.acl.RoleType; | ||||||
| 
 |  | ||||||
| import org.apache.cloudstack.api.APICommand; | import org.apache.cloudstack.api.APICommand; | ||||||
| import org.apache.cloudstack.api.ApiConstants; | import org.apache.cloudstack.api.ApiConstants; | ||||||
| import org.apache.cloudstack.api.ApiErrorCode; | import org.apache.cloudstack.api.ApiErrorCode; | ||||||
| @ -30,6 +29,7 @@ import org.apache.cloudstack.api.ServerApiException; | |||||||
| import org.apache.cloudstack.api.response.FirewallRuleResponse; | import org.apache.cloudstack.api.response.FirewallRuleResponse; | ||||||
| import org.apache.cloudstack.api.response.LBStickinessResponse; | import org.apache.cloudstack.api.response.LBStickinessResponse; | ||||||
| import org.apache.cloudstack.context.CallContext; | import org.apache.cloudstack.context.CallContext; | ||||||
|  | import org.apache.log4j.Logger; | ||||||
| 
 | 
 | ||||||
| import com.cloud.event.EventTypes; | import com.cloud.event.EventTypes; | ||||||
| import com.cloud.exception.InvalidParameterValueException; | import com.cloud.exception.InvalidParameterValueException; | ||||||
| @ -74,10 +74,18 @@ public class CreateLBStickinessPolicyCmd extends BaseAsyncCreateCmd { | |||||||
|     @Parameter(name = ApiConstants.PARAM_LIST, type = CommandType.MAP, description = "param list. Example: param[0].name=cookiename¶m[0].value=LBCookie ") |     @Parameter(name = ApiConstants.PARAM_LIST, type = CommandType.MAP, description = "param list. Example: param[0].name=cookiename¶m[0].value=LBCookie ") | ||||||
|     private Map paramList; |     private Map paramList; | ||||||
| 
 | 
 | ||||||
|  |     @Parameter(name = ApiConstants.FOR_DISPLAY, type = CommandType.BOOLEAN, description = "an optional field, whether to the display the rule to the end user or not", since = "4.4", authorized = {RoleType.Admin}) | ||||||
|  |     private Boolean display; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
|     // ///////////////// Accessors /////////////////////// |     // ///////////////// Accessors /////////////////////// | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
| 
 | 
 | ||||||
|  |     public Boolean getDisplay() { | ||||||
|  |         return display; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public Long getLbRuleId() { |     public Long getLbRuleId() { | ||||||
|         return lbRuleId; |         return lbRuleId; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -19,8 +19,7 @@ package org.apache.cloudstack.api.command.user.loadbalancer; | |||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
| import org.apache.log4j.Logger; | import org.apache.cloudstack.acl.RoleType; | ||||||
| 
 |  | ||||||
| import org.apache.cloudstack.api.APICommand; | import org.apache.cloudstack.api.APICommand; | ||||||
| import org.apache.cloudstack.api.ApiConstants; | import org.apache.cloudstack.api.ApiConstants; | ||||||
| import org.apache.cloudstack.api.BaseListCmd; | import org.apache.cloudstack.api.BaseListCmd; | ||||||
| @ -28,6 +27,7 @@ import org.apache.cloudstack.api.Parameter; | |||||||
| import org.apache.cloudstack.api.response.FirewallRuleResponse; | import org.apache.cloudstack.api.response.FirewallRuleResponse; | ||||||
| import org.apache.cloudstack.api.response.LBHealthCheckResponse; | import org.apache.cloudstack.api.response.LBHealthCheckResponse; | ||||||
| import org.apache.cloudstack.api.response.ListResponse; | import org.apache.cloudstack.api.response.ListResponse; | ||||||
|  | import org.apache.log4j.Logger; | ||||||
| 
 | 
 | ||||||
| import com.cloud.network.rules.HealthCheckPolicy; | import com.cloud.network.rules.HealthCheckPolicy; | ||||||
| import com.cloud.network.rules.LoadBalancer; | import com.cloud.network.rules.LoadBalancer; | ||||||
| @ -49,6 +49,9 @@ public class ListLBHealthCheckPoliciesCmd extends BaseListCmd { | |||||||
|                description = "the ID of the load balancer rule") |                description = "the ID of the load balancer rule") | ||||||
|     private Long lbRuleId; |     private Long lbRuleId; | ||||||
| 
 | 
 | ||||||
|  |     @Parameter(name = ApiConstants.FOR_DISPLAY, type = CommandType.BOOLEAN, description = "list resources by display flag; only ROOT admin is eligible to pass this parameter", since = "4.4", authorized = {RoleType.Admin}) | ||||||
|  |     private Boolean display; | ||||||
|  | 
 | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
|     // ///////////////// Accessors /////////////////////// |     // ///////////////// Accessors /////////////////////// | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
| @ -56,6 +59,13 @@ public class ListLBHealthCheckPoliciesCmd extends BaseListCmd { | |||||||
|         return lbRuleId; |         return lbRuleId; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     public boolean getDisplay() { | ||||||
|  |         if (display != null) { | ||||||
|  |             return display; | ||||||
|  |         } | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
|     // ///////////// API Implementation/////////////////// |     // ///////////// API Implementation/////////////////// | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
|  | |||||||
| @ -19,8 +19,7 @@ package org.apache.cloudstack.api.command.user.loadbalancer; | |||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| 
 | 
 | ||||||
| import org.apache.log4j.Logger; | import org.apache.cloudstack.acl.RoleType; | ||||||
| 
 |  | ||||||
| import org.apache.cloudstack.api.APICommand; | import org.apache.cloudstack.api.APICommand; | ||||||
| import org.apache.cloudstack.api.ApiConstants; | import org.apache.cloudstack.api.ApiConstants; | ||||||
| import org.apache.cloudstack.api.BaseListCmd; | import org.apache.cloudstack.api.BaseListCmd; | ||||||
| @ -29,6 +28,7 @@ import org.apache.cloudstack.api.response.FirewallRuleResponse; | |||||||
| import org.apache.cloudstack.api.response.LBStickinessResponse; | import org.apache.cloudstack.api.response.LBStickinessResponse; | ||||||
| import org.apache.cloudstack.api.response.ListResponse; | import org.apache.cloudstack.api.response.ListResponse; | ||||||
| import org.apache.cloudstack.context.CallContext; | import org.apache.cloudstack.context.CallContext; | ||||||
|  | import org.apache.log4j.Logger; | ||||||
| 
 | 
 | ||||||
| import com.cloud.network.rules.LoadBalancer; | import com.cloud.network.rules.LoadBalancer; | ||||||
| import com.cloud.network.rules.StickinessPolicy; | import com.cloud.network.rules.StickinessPolicy; | ||||||
| @ -51,6 +51,9 @@ public class ListLBStickinessPoliciesCmd extends BaseListCmd { | |||||||
|                description = "the ID of the load balancer rule") |                description = "the ID of the load balancer rule") | ||||||
|     private Long lbRuleId; |     private Long lbRuleId; | ||||||
| 
 | 
 | ||||||
|  |     @Parameter(name = ApiConstants.FOR_DISPLAY, type = CommandType.BOOLEAN, description = "list resources by display flag; only ROOT admin is eligible to pass this parameter", since = "4.4", authorized = {RoleType.Admin}) | ||||||
|  |     private Boolean display; | ||||||
|  | 
 | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
|     // ///////////////// Accessors /////////////////////// |     // ///////////////// Accessors /////////////////////// | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
| @ -58,6 +61,13 @@ public class ListLBStickinessPoliciesCmd extends BaseListCmd { | |||||||
|         return lbRuleId; |         return lbRuleId; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     public boolean getDisplay() { | ||||||
|  |         if (display != null) { | ||||||
|  |             return display; | ||||||
|  |         } | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
|     // ///////////// API Implementation/////////////////// |     // ///////////// API Implementation/////////////////// | ||||||
|     // /////////////////////////////////////////////////// |     // /////////////////////////////////////////////////// | ||||||
|  | |||||||
| @ -0,0 +1,100 @@ | |||||||
|  | // Copyright 2012 Citrix Systems, Inc. Licensed under the | ||||||
|  | // Apache License, Version 2.0 (the "License"); you may not use this | ||||||
|  | // file except in compliance with the License.  Citrix Systems, Inc. | ||||||
|  | // reserves all rights not expressly granted by the License. | ||||||
|  | // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  | // Unless required by applicable law or agreed to in writing, software | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | // See the License for the specific language governing permissions and | ||||||
|  | // limitations under the License. | ||||||
|  | // | ||||||
|  | // Automatically generated by addcopyright.py at 04/03/2012 | ||||||
|  | package org.apache.cloudstack.api.command.user.loadbalancer; | ||||||
|  | 
 | ||||||
|  | import org.apache.cloudstack.acl.RoleType; | ||||||
|  | import org.apache.cloudstack.api.APICommand; | ||||||
|  | import org.apache.cloudstack.api.ApiConstants; | ||||||
|  | import org.apache.cloudstack.api.BaseAsyncCustomIdCmd; | ||||||
|  | import org.apache.cloudstack.api.Parameter; | ||||||
|  | import org.apache.cloudstack.api.response.LBHealthCheckResponse; | ||||||
|  | import org.apache.cloudstack.context.CallContext; | ||||||
|  | import org.apache.log4j.Logger; | ||||||
|  | 
 | ||||||
|  | import com.cloud.event.EventTypes; | ||||||
|  | import com.cloud.network.rules.HealthCheckPolicy; | ||||||
|  | import com.cloud.network.rules.LoadBalancer; | ||||||
|  | import com.cloud.network.rules.StickinessPolicy; | ||||||
|  | import com.cloud.user.Account; | ||||||
|  | 
 | ||||||
|  | @APICommand(name = "updateLBHealthCheckPolicy", description = "Updates LB HealthCheck policy", responseObject = LBHealthCheckResponse.class, since = "4.4", | ||||||
|  | requestHasSensitiveInfo = false, responseHasSensitiveInfo = false) | ||||||
|  | public class UpdateLBHealthCheckPolicyCmd extends BaseAsyncCustomIdCmd{ | ||||||
|  |     public static final Logger s_logger = Logger.getLogger(UpdateLBHealthCheckPolicyCmd.class.getName()); | ||||||
|  | 
 | ||||||
|  |     private static final String s_name = "updatelbhealthcheckpolicyresponse"; | ||||||
|  | 
 | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     //////////////// API parameters ///////////////////// | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = LBHealthCheckResponse.class, required = true, description = "id of lb healthcheck policy") | ||||||
|  |     private Long id; | ||||||
|  | 
 | ||||||
|  |     @Parameter(name = ApiConstants.FOR_DISPLAY, type = CommandType.BOOLEAN, description = "an optional field, whether to the display the policy to the end user or not", since = "4.4", authorized = {RoleType.Admin}) | ||||||
|  |     private Boolean display; | ||||||
|  | 
 | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     /////////////////// Accessors /////////////////////// | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     public Long getId() { | ||||||
|  |         return id; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Boolean getDisplay() { | ||||||
|  |         return display; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getCommandName() { | ||||||
|  |         return s_name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public long getEntityOwnerId() { | ||||||
|  |         Account account = CallContext.current().getCallingAccount(); | ||||||
|  |         if (account != null) { | ||||||
|  |             return account.getId(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getEventDescription() { | ||||||
|  |         return "Update LB healthcheck policy id= " + id; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getEventType() { | ||||||
|  |         return EventTypes.EVENT_LB_HEALTHCHECKPOLICY_UPDATE; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     /////////////// API Implementation/////////////////// | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     @Override | ||||||
|  |     public void execute() { | ||||||
|  |         HealthCheckPolicy policy = _lbService.updateLBHealthCheckPolicy(this.getId(), this.getCustomId(), this.getDisplay()); | ||||||
|  |         LoadBalancer lb = _lbService.findById(policy.getLoadBalancerId()); | ||||||
|  |         LBHealthCheckResponse hcResponse = _responseGenerator.createLBHealthCheckPolicyResponse(policy, lb); | ||||||
|  |         setResponseObject(hcResponse); | ||||||
|  |         hcResponse.setResponseName(getCommandName()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void checkUuid() { | ||||||
|  |         if (this.getCustomId() != null) { | ||||||
|  |             _uuidMgr.checkUuid(this.getCustomId(), StickinessPolicy.class); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,99 @@ | |||||||
|  | // Copyright 2012 Citrix Systems, Inc. Licensed under the | ||||||
|  | // Apache License, Version 2.0 (the "License"); you may not use this | ||||||
|  | // file except in compliance with the License.  Citrix Systems, Inc. | ||||||
|  | // reserves all rights not expressly granted by the License. | ||||||
|  | // You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  | // Unless required by applicable law or agreed to in writing, software | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | // See the License for the specific language governing permissions and | ||||||
|  | // limitations under the License. | ||||||
|  | // | ||||||
|  | // Automatically generated by addcopyright.py at 04/03/2012 | ||||||
|  | package org.apache.cloudstack.api.command.user.loadbalancer; | ||||||
|  | 
 | ||||||
|  | import org.apache.cloudstack.acl.RoleType; | ||||||
|  | import org.apache.cloudstack.api.APICommand; | ||||||
|  | import org.apache.cloudstack.api.ApiConstants; | ||||||
|  | import org.apache.cloudstack.api.BaseAsyncCustomIdCmd; | ||||||
|  | import org.apache.cloudstack.api.Parameter; | ||||||
|  | import org.apache.cloudstack.api.response.LBStickinessResponse; | ||||||
|  | import org.apache.cloudstack.context.CallContext; | ||||||
|  | import org.apache.log4j.Logger; | ||||||
|  | 
 | ||||||
|  | import com.cloud.event.EventTypes; | ||||||
|  | import com.cloud.network.rules.LoadBalancer; | ||||||
|  | import com.cloud.network.rules.StickinessPolicy; | ||||||
|  | import com.cloud.user.Account; | ||||||
|  | 
 | ||||||
|  | @APICommand(name = "updateLBStickinessPolicy", description = "Updates LB Stickiness policy", responseObject = LBStickinessResponse.class, since = "4.4", | ||||||
|  | requestHasSensitiveInfo = false, responseHasSensitiveInfo = false) | ||||||
|  | public class UpdateLBStickinessPolicyCmd extends BaseAsyncCustomIdCmd{ | ||||||
|  |     public static final Logger s_logger = Logger.getLogger(UpdateLBStickinessPolicyCmd.class.getName()); | ||||||
|  | 
 | ||||||
|  |     private static final String s_name = "updatelbstickinesspolicyresponse"; | ||||||
|  | 
 | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     //////////////// API parameters ///////////////////// | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = LBStickinessResponse.class, required = true, description = "id of lb stickiness policy") | ||||||
|  |     private Long id; | ||||||
|  | 
 | ||||||
|  |     @Parameter(name = ApiConstants.FOR_DISPLAY, type = CommandType.BOOLEAN, description = "an optional field, whether to the display the policy to the end user or not", since = "4.4", authorized = {RoleType.Admin}) | ||||||
|  |     private Boolean display; | ||||||
|  | 
 | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     /////////////////// Accessors /////////////////////// | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     public Long getId() { | ||||||
|  |         return id; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public Boolean getDisplay() { | ||||||
|  |         return display; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getCommandName() { | ||||||
|  |         return s_name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public long getEntityOwnerId() { | ||||||
|  |         Account account = CallContext.current().getCallingAccount(); | ||||||
|  |         if (account != null) { | ||||||
|  |             return account.getId(); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getEventDescription() { | ||||||
|  |         return "Update LB stickiness policy id= " + id; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public String getEventType() { | ||||||
|  |         return EventTypes.EVENT_LB_STICKINESSPOLICY_UPDATE; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     /////////////// API Implementation/////////////////// | ||||||
|  |     ///////////////////////////////////////////////////// | ||||||
|  |     @Override | ||||||
|  |     public void execute() { | ||||||
|  |         StickinessPolicy policy = _lbService.updateLBStickinessPolicy(this.getId(), this.getCustomId(), this.getDisplay()); | ||||||
|  |         LoadBalancer lb = _lbService.findById(policy.getLoadBalancerId()); | ||||||
|  |         LBStickinessResponse spResponse = _responseGenerator.createLBStickinessPolicyResponse(policy, lb); | ||||||
|  |         setResponseObject(spResponse); | ||||||
|  |         spResponse.setResponseName(getCommandName()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void checkUuid() { | ||||||
|  |         if (this.getCustomId() != null) { | ||||||
|  |             _uuidMgr.checkUuid(this.getCustomId(), StickinessPolicy.class); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -16,12 +16,13 @@ | |||||||
| // under the License. | // under the License. | ||||||
| package org.apache.cloudstack.api.response; | package org.apache.cloudstack.api.response; | ||||||
| 
 | 
 | ||||||
| import com.google.gson.annotations.SerializedName; | import org.apache.cloudstack.acl.RoleType; | ||||||
| 
 | import org.apache.cloudstack.api.ApiConstants; | ||||||
| import org.apache.cloudstack.api.BaseResponse; | import org.apache.cloudstack.api.BaseResponse; | ||||||
| 
 | 
 | ||||||
| import com.cloud.network.rules.HealthCheckPolicy; | import com.cloud.network.rules.HealthCheckPolicy; | ||||||
| import com.cloud.serializer.Param; | import com.cloud.serializer.Param; | ||||||
|  | import com.google.gson.annotations.SerializedName; | ||||||
| 
 | 
 | ||||||
| public class LBHealthCheckPolicyResponse extends BaseResponse { | public class LBHealthCheckPolicyResponse extends BaseResponse { | ||||||
|     @SerializedName("id") |     @SerializedName("id") | ||||||
| @ -56,6 +57,10 @@ public class LBHealthCheckPolicyResponse extends BaseResponse { | |||||||
|     @Param(description = "Number of consecutive health check failures before declaring an instance unhealthy.") |     @Param(description = "Number of consecutive health check failures before declaring an instance unhealthy.") | ||||||
|     private int unhealthcheckthresshold; |     private int unhealthcheckthresshold; | ||||||
| 
 | 
 | ||||||
|  |     @SerializedName(ApiConstants.FOR_DISPLAY) | ||||||
|  |     @Param(description = "is policy for display to the regular user", since = "4.4", authorized = {RoleType.Admin}) | ||||||
|  |     private Boolean forDisplay; | ||||||
|  | 
 | ||||||
|     public void setId(String id) { |     public void setId(String id) { | ||||||
|         this.id = id; |         this.id = id; | ||||||
|     } |     } | ||||||
| @ -95,6 +100,11 @@ public class LBHealthCheckPolicyResponse extends BaseResponse { | |||||||
|         this.responseTime = healthcheckpolicy.getResponseTime(); |         this.responseTime = healthcheckpolicy.getResponseTime(); | ||||||
|         this.healthcheckthresshold = healthcheckpolicy.getHealthcheckThresshold(); |         this.healthcheckthresshold = healthcheckpolicy.getHealthcheckThresshold(); | ||||||
|         this.unhealthcheckthresshold = healthcheckpolicy.getUnhealthThresshold(); |         this.unhealthcheckthresshold = healthcheckpolicy.getUnhealthThresshold(); | ||||||
|  |         this.forDisplay = healthcheckpolicy.isDisplay(); | ||||||
|         setObjectName("healthcheckpolicy"); |         setObjectName("healthcheckpolicy"); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public void setForDisplay(Boolean forDisplay) { | ||||||
|  |         this.forDisplay = forDisplay; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -22,6 +22,8 @@ import java.util.Map; | |||||||
| 
 | 
 | ||||||
| import com.google.gson.annotations.SerializedName; | import com.google.gson.annotations.SerializedName; | ||||||
| 
 | 
 | ||||||
|  | import org.apache.cloudstack.acl.RoleType; | ||||||
|  | import org.apache.cloudstack.api.ApiConstants; | ||||||
| import org.apache.cloudstack.api.BaseResponse; | import org.apache.cloudstack.api.BaseResponse; | ||||||
| 
 | 
 | ||||||
| import com.cloud.network.rules.StickinessPolicy; | import com.cloud.network.rules.StickinessPolicy; | ||||||
| @ -49,6 +51,10 @@ public class LBStickinessPolicyResponse extends BaseResponse { | |||||||
|     @Param(description = "the state of the policy") |     @Param(description = "the state of the policy") | ||||||
|     private String state; |     private String state; | ||||||
| 
 | 
 | ||||||
|  |     @SerializedName(ApiConstants.FOR_DISPLAY) | ||||||
|  |     @Param(description = "is policy for display to the regular user", since = "4.4", authorized = {RoleType.Admin}) | ||||||
|  |     private Boolean forDisplay; | ||||||
|  | 
 | ||||||
|     // FIXME : if prams with the same name exists more then once then value are concatinated with ":" as delimitor . |     // FIXME : if prams with the same name exists more then once then value are concatinated with ":" as delimitor . | ||||||
|     // Reason: Map does not support duplicate keys, need to look for the alernate data structure |     // Reason: Map does not support duplicate keys, need to look for the alernate data structure | ||||||
|     // Example: <params>{indirect=null, name=testcookie, nocache=null, domain=www.yahoo.com:www.google.com, postonly=null}</params> |     // Example: <params>{indirect=null, name=testcookie, nocache=null, domain=www.yahoo.com:www.google.com, postonly=null}</params> | ||||||
| @ -98,6 +104,7 @@ public class LBStickinessPolicyResponse extends BaseResponse { | |||||||
|         List<Pair<String, String>> paramsList = stickinesspolicy.getParams(); |         List<Pair<String, String>> paramsList = stickinesspolicy.getParams(); | ||||||
|         this.methodName = stickinesspolicy.getMethodName(); |         this.methodName = stickinesspolicy.getMethodName(); | ||||||
|         this.description = stickinesspolicy.getDescription(); |         this.description = stickinesspolicy.getDescription(); | ||||||
|  |         this.forDisplay = stickinesspolicy.isDisplay(); | ||||||
|         if (stickinesspolicy.isRevoke()) { |         if (stickinesspolicy.isRevoke()) { | ||||||
|             this.setState("Revoked"); |             this.setState("Revoked"); | ||||||
|         } |         } | ||||||
| @ -126,4 +133,8 @@ public class LBStickinessPolicyResponse extends BaseResponse { | |||||||
|         this.params = tempParamList; |         this.params = tempParamList; | ||||||
|         setObjectName("stickinesspolicy"); |         setObjectName("stickinesspolicy"); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public void setForDisplay(Boolean forDisplay) { | ||||||
|  |         this.forDisplay = forDisplay; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -167,11 +167,13 @@ deleteLoadBalancerRule=15 | |||||||
| removeFromLoadBalancerRule=15 | removeFromLoadBalancerRule=15 | ||||||
| assignToLoadBalancerRule=15 | assignToLoadBalancerRule=15 | ||||||
| createLBStickinessPolicy=15 | createLBStickinessPolicy=15 | ||||||
|  | updateLBStickinessPolicy=15 | ||||||
| deleteLBStickinessPolicy=15 | deleteLBStickinessPolicy=15 | ||||||
| listLoadBalancerRules=15 | listLoadBalancerRules=15 | ||||||
| listLBStickinessPolicies=15 | listLBStickinessPolicies=15 | ||||||
| listLBHealthCheckPolicies=15 | listLBHealthCheckPolicies=15 | ||||||
| createLBHealthCheckPolicy=15 | createLBHealthCheckPolicy=15 | ||||||
|  | updateLBHealthCheckPolicy=15 | ||||||
| deleteLBHealthCheckPolicy=15 | deleteLBHealthCheckPolicy=15 | ||||||
| listLoadBalancerRuleInstances=15 | listLoadBalancerRuleInstances=15 | ||||||
| updateLoadBalancerRule=15 | updateLoadBalancerRule=15 | ||||||
|  | |||||||
| @ -64,6 +64,9 @@ public class LBHealthCheckPolicyVO implements HealthCheckPolicy { | |||||||
|     @Column(name = "revoke") |     @Column(name = "revoke") | ||||||
|     private boolean revoke = false; |     private boolean revoke = false; | ||||||
| 
 | 
 | ||||||
|  |     @Column(name = "display", updatable = true, nullable = false) | ||||||
|  |     protected boolean display = true; | ||||||
|  | 
 | ||||||
|     protected LBHealthCheckPolicyVO() { |     protected LBHealthCheckPolicyVO() { | ||||||
|         this.uuid = UUID.randomUUID().toString(); |         this.uuid = UUID.randomUUID().toString(); | ||||||
|     } |     } | ||||||
| @ -157,4 +160,13 @@ public class LBHealthCheckPolicyVO implements HealthCheckPolicy { | |||||||
|     public void setUuid(String uuid) { |     public void setUuid(String uuid) { | ||||||
|         this.uuid = uuid; |         this.uuid = uuid; | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public void setDisplay(boolean display) { | ||||||
|  |         this.display = display; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean isDisplay() { | ||||||
|  |         return display; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -26,7 +26,7 @@ public interface LBHealthCheckPolicyDao extends GenericDao<LBHealthCheckPolicyVO | |||||||
| 
 | 
 | ||||||
|     void remove(long loadBalancerId, Boolean pending); |     void remove(long loadBalancerId, Boolean pending); | ||||||
| 
 | 
 | ||||||
|     List<LBHealthCheckPolicyVO> listByLoadBalancerId(long loadBalancerId); |     List<LBHealthCheckPolicyVO> listByLoadBalancerIdAndDisplayFlag(long loadBalancerId, Boolean forDisplay); | ||||||
| 
 | 
 | ||||||
|     List<LBHealthCheckPolicyVO> listByLoadBalancerId(long loadBalancerId, boolean revoke); |     List<LBHealthCheckPolicyVO> listByLoadBalancerId(long loadBalancerId, boolean revoke); | ||||||
| } | } | ||||||
|  | |||||||
| @ -48,9 +48,12 @@ public class LBHealthCheckPolicyDaoImpl extends GenericDaoBase<LBHealthCheckPoli | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public List<LBHealthCheckPolicyVO> listByLoadBalancerId(long loadBalancerId) { |     public List<LBHealthCheckPolicyVO> listByLoadBalancerIdAndDisplayFlag(long loadBalancerId, Boolean forDisplay) { | ||||||
|         SearchCriteria<LBHealthCheckPolicyVO> sc = createSearchCriteria(); |         SearchCriteria<LBHealthCheckPolicyVO> sc = createSearchCriteria(); | ||||||
|         sc.addAnd("loadBalancerId", SearchCriteria.Op.EQ, loadBalancerId); |         sc.addAnd("loadBalancerId", SearchCriteria.Op.EQ, loadBalancerId); | ||||||
|  |         if (forDisplay != null) { | ||||||
|  |             sc.addAnd("display", SearchCriteria.Op.EQ, forDisplay); | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         return listBy(sc); |         return listBy(sc); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -25,7 +25,7 @@ public interface LBStickinessPolicyDao extends GenericDao<LBStickinessPolicyVO, | |||||||
| 
 | 
 | ||||||
|     void remove(long loadBalancerId, Boolean pending); |     void remove(long loadBalancerId, Boolean pending); | ||||||
| 
 | 
 | ||||||
|     List<LBStickinessPolicyVO> listByLoadBalancerId(long loadBalancerId); |     List<LBStickinessPolicyVO> listByLoadBalancerIdAndDisplayFlag(long loadBalancerId, boolean forDisplay); | ||||||
| 
 | 
 | ||||||
|     List<LBStickinessPolicyVO> listByLoadBalancerId(long loadBalancerId, boolean revoke); |     List<LBStickinessPolicyVO> listByLoadBalancerId(long loadBalancerId, boolean revoke); | ||||||
| } | } | ||||||
|  | |||||||
| @ -47,9 +47,10 @@ public class LBStickinessPolicyDaoImpl extends GenericDaoBase<LBStickinessPolicy | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public List<LBStickinessPolicyVO> listByLoadBalancerId(long loadBalancerId) { |     public List<LBStickinessPolicyVO> listByLoadBalancerIdAndDisplayFlag(long loadBalancerId, boolean forDisplay) { | ||||||
|         SearchCriteria<LBStickinessPolicyVO> sc = createSearchCriteria(); |         SearchCriteria<LBStickinessPolicyVO> sc = createSearchCriteria(); | ||||||
|         sc.addAnd("loadBalancerId", SearchCriteria.Op.EQ, loadBalancerId); |         sc.addAnd("loadBalancerId", SearchCriteria.Op.EQ, loadBalancerId); | ||||||
|  |         sc.addAnd("display", SearchCriteria.Op.EQ, forDisplay); | ||||||
| 
 | 
 | ||||||
|         return listBy(sc); |         return listBy(sc); | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -64,6 +64,9 @@ public class LBStickinessPolicyVO implements StickinessPolicy { | |||||||
|     @Column(name = "revoke") |     @Column(name = "revoke") | ||||||
|     private boolean revoke = false; |     private boolean revoke = false; | ||||||
| 
 | 
 | ||||||
|  |     @Column(name = "display", updatable = true, nullable = false) | ||||||
|  |     protected boolean display = true; | ||||||
|  | 
 | ||||||
|     protected LBStickinessPolicyVO() { |     protected LBStickinessPolicyVO() { | ||||||
|         this.uuid = UUID.randomUUID().toString(); |         this.uuid = UUID.randomUUID().toString(); | ||||||
|     } |     } | ||||||
| @ -150,4 +153,13 @@ public class LBStickinessPolicyVO implements StickinessPolicy { | |||||||
|     public void setUuid(String uuid) { |     public void setUuid(String uuid) { | ||||||
|         this.uuid = uuid; |         this.uuid = uuid; | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public void setDisplay(boolean display) { | ||||||
|  |         this.display = display; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public boolean isDisplay() { | ||||||
|  |         return display; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -30,11 +30,6 @@ import java.util.Set; | |||||||
| import javax.ejb.Local; | import javax.ejb.Local; | ||||||
| import javax.inject.Inject; | import javax.inject.Inject; | ||||||
| 
 | 
 | ||||||
| import org.apache.log4j.Logger; |  | ||||||
| 
 |  | ||||||
| import com.google.gson.Gson; |  | ||||||
| import com.google.gson.reflect.TypeToken; |  | ||||||
| 
 |  | ||||||
| import org.apache.cloudstack.api.ApiConstants; | import org.apache.cloudstack.api.ApiConstants; | ||||||
| import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd; | import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBHealthCheckPolicyCmd; | ||||||
| import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBStickinessPolicyCmd; | import org.apache.cloudstack.api.command.user.loadbalancer.CreateLBStickinessPolicyCmd; | ||||||
| @ -50,6 +45,7 @@ import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationSe | |||||||
| import org.apache.cloudstack.framework.config.dao.ConfigurationDao; | import org.apache.cloudstack.framework.config.dao.ConfigurationDao; | ||||||
| import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO; | import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO; | ||||||
| import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao; | import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao; | ||||||
|  | import org.apache.log4j.Logger; | ||||||
| 
 | 
 | ||||||
| import com.cloud.agent.api.to.LoadBalancerTO; | import com.cloud.agent.api.to.LoadBalancerTO; | ||||||
| import com.cloud.configuration.ConfigurationManager; | import com.cloud.configuration.ConfigurationManager; | ||||||
| @ -169,6 +165,8 @@ import com.cloud.vm.VirtualMachine.State; | |||||||
| import com.cloud.vm.dao.NicDao; | import com.cloud.vm.dao.NicDao; | ||||||
| import com.cloud.vm.dao.NicSecondaryIpDao; | import com.cloud.vm.dao.NicSecondaryIpDao; | ||||||
| import com.cloud.vm.dao.UserVmDao; | import com.cloud.vm.dao.UserVmDao; | ||||||
|  | import com.google.gson.Gson; | ||||||
|  | import com.google.gson.reflect.TypeToken; | ||||||
| 
 | 
 | ||||||
| @Local(value = {LoadBalancingRulesManager.class, LoadBalancingRulesService.class}) | @Local(value = {LoadBalancingRulesManager.class, LoadBalancingRulesService.class}) | ||||||
| public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements LoadBalancingRulesManager, LoadBalancingRulesService { | public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements LoadBalancingRulesManager, LoadBalancingRulesService { | ||||||
| @ -557,6 +555,10 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements | |||||||
|         /* Finally Insert into DB */ |         /* Finally Insert into DB */ | ||||||
|         LBStickinessPolicyVO policy = |         LBStickinessPolicyVO policy = | ||||||
|             new LBStickinessPolicyVO(loadBalancer.getId(), cmd.getLBStickinessPolicyName(), cmd.getStickinessMethodName(), cmd.getparamList(), cmd.getDescription()); |             new LBStickinessPolicyVO(loadBalancer.getId(), cmd.getLBStickinessPolicyName(), cmd.getStickinessMethodName(), cmd.getparamList(), cmd.getDescription()); | ||||||
|  |         Boolean forDisplay = cmd.getDisplay(); | ||||||
|  |         if (forDisplay != null) { | ||||||
|  |             policy.setDisplay(forDisplay); | ||||||
|  |         } | ||||||
|         policy = _lb2stickinesspoliciesDao.persist(policy); |         policy = _lb2stickinesspoliciesDao.persist(policy); | ||||||
| 
 | 
 | ||||||
|         return policy; |         return policy; | ||||||
| @ -621,6 +623,11 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements | |||||||
|             new LBHealthCheckPolicyVO(loadBalancer.getId(), cmd.getPingPath(), cmd.getDescription(), cmd.getResponsTimeOut(), cmd.getHealthCheckInterval(), |             new LBHealthCheckPolicyVO(loadBalancer.getId(), cmd.getPingPath(), cmd.getDescription(), cmd.getResponsTimeOut(), cmd.getHealthCheckInterval(), | ||||||
|                 cmd.getHealthyThreshold(), cmd.getUnhealthyThreshold()); |                 cmd.getHealthyThreshold(), cmd.getUnhealthyThreshold()); | ||||||
| 
 | 
 | ||||||
|  |         Boolean forDisplay = cmd.getDisplay(); | ||||||
|  |         if (forDisplay != null) { | ||||||
|  |             policy.setDisplay(forDisplay); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         policy = _lb2healthcheckDao.persist(policy); |         policy = _lb2healthcheckDao.persist(policy); | ||||||
|         return policy; |         return policy; | ||||||
|     } |     } | ||||||
| @ -1494,7 +1501,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements | |||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 List<LBHealthCheckPolicyVO> hcPolicies = _lb2healthcheckDao.listByLoadBalancerId(loadBalancerId); |                 List<LBHealthCheckPolicyVO> hcPolicies = _lb2healthcheckDao.listByLoadBalancerIdAndDisplayFlag(loadBalancerId, null); | ||||||
|                 for (LBHealthCheckPolicyVO lbHealthCheck : hcPolicies) { |                 for (LBHealthCheckPolicyVO lbHealthCheck : hcPolicies) { | ||||||
|                     lbHealthCheck.setRevoke(true); |                     lbHealthCheck.setRevoke(true); | ||||||
|                     _lb2healthcheckDao.persist(lbHealthCheck); |                     _lb2healthcheckDao.persist(lbHealthCheck); | ||||||
| @ -2008,7 +2015,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements | |||||||
|     @Override |     @Override | ||||||
|     public List<LbHealthCheckPolicy> getHealthCheckPolicies(long lbId) { |     public List<LbHealthCheckPolicy> getHealthCheckPolicies(long lbId) { | ||||||
|         List<LbHealthCheckPolicy> healthCheckPolicies = new ArrayList<LbHealthCheckPolicy>(); |         List<LbHealthCheckPolicy> healthCheckPolicies = new ArrayList<LbHealthCheckPolicy>(); | ||||||
|         List<LBHealthCheckPolicyVO> hcDbpolicies = _lb2healthcheckDao.listByLoadBalancerId(lbId); |         List<LBHealthCheckPolicyVO> hcDbpolicies = _lb2healthcheckDao.listByLoadBalancerIdAndDisplayFlag(lbId, null); | ||||||
| 
 | 
 | ||||||
|         for (LBHealthCheckPolicyVO policy : hcDbpolicies) { |         for (LBHealthCheckPolicyVO policy : hcDbpolicies) { | ||||||
|             String pingpath = policy.getpingpath(); |             String pingpath = policy.getpingpath(); | ||||||
| @ -2206,6 +2213,8 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements | |||||||
|     public List<LBStickinessPolicyVO> searchForLBStickinessPolicies(ListLBStickinessPoliciesCmd cmd) throws PermissionDeniedException { |     public List<LBStickinessPolicyVO> searchForLBStickinessPolicies(ListLBStickinessPoliciesCmd cmd) throws PermissionDeniedException { | ||||||
|         Account caller = CallContext.current().getCallingAccount(); |         Account caller = CallContext.current().getCallingAccount(); | ||||||
|         Long loadBalancerId = cmd.getLbRuleId(); |         Long loadBalancerId = cmd.getLbRuleId(); | ||||||
|  |         boolean forDisplay = cmd.getDisplay(); | ||||||
|  | 
 | ||||||
|         LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId); |         LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId); | ||||||
|         if (loadBalancer == null) { |         if (loadBalancer == null) { | ||||||
|             return null; |             return null; | ||||||
| @ -2213,7 +2222,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements | |||||||
| 
 | 
 | ||||||
|         _accountMgr.checkAccess(caller, null, loadBalancer); |         _accountMgr.checkAccess(caller, null, loadBalancer); | ||||||
| 
 | 
 | ||||||
|         List<LBStickinessPolicyVO> sDbpolicies = _lb2stickinesspoliciesDao.listByLoadBalancerId(cmd.getLbRuleId()); |         List<LBStickinessPolicyVO> sDbpolicies = _lb2stickinesspoliciesDao.listByLoadBalancerIdAndDisplayFlag(cmd.getLbRuleId(), forDisplay); | ||||||
| 
 | 
 | ||||||
|         return sDbpolicies; |         return sDbpolicies; | ||||||
|     } |     } | ||||||
| @ -2222,12 +2231,14 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements | |||||||
|     public List<LBHealthCheckPolicyVO> searchForLBHealthCheckPolicies(ListLBHealthCheckPoliciesCmd cmd) throws PermissionDeniedException { |     public List<LBHealthCheckPolicyVO> searchForLBHealthCheckPolicies(ListLBHealthCheckPoliciesCmd cmd) throws PermissionDeniedException { | ||||||
|         Account caller = CallContext.current().getCallingAccount(); |         Account caller = CallContext.current().getCallingAccount(); | ||||||
|         Long loadBalancerId = cmd.getLbRuleId(); |         Long loadBalancerId = cmd.getLbRuleId(); | ||||||
|  |         boolean forDisplay = cmd.getDisplay(); | ||||||
|  | 
 | ||||||
|         LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId); |         LoadBalancerVO loadBalancer = _lbDao.findById(loadBalancerId); | ||||||
|         if (loadBalancer == null) { |         if (loadBalancer == null) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         _accountMgr.checkAccess(caller, null, loadBalancer); |         _accountMgr.checkAccess(caller, null, loadBalancer); | ||||||
|         List<LBHealthCheckPolicyVO> hcDbpolicies = _lb2healthcheckDao.listByLoadBalancerId(cmd.getLbRuleId()); |         List<LBHealthCheckPolicyVO> hcDbpolicies = _lb2healthcheckDao.listByLoadBalancerIdAndDisplayFlag(cmd.getLbRuleId(), forDisplay); | ||||||
|         return hcDbpolicies; |         return hcDbpolicies; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -2456,4 +2467,58 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements | |||||||
|         this._lbProviders = lbProviders; |         this._lbProviders = lbProviders; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @Override | ||||||
|  |     @ActionEvent(eventType = EventTypes.EVENT_LB_STICKINESSPOLICY_UPDATE, eventDescription = "updating lb stickiness policy", async = true) | ||||||
|  |     public StickinessPolicy updateLBStickinessPolicy(long id, String customId, Boolean forDisplay) { | ||||||
|  |         LBStickinessPolicyVO policy = _lb2stickinesspoliciesDao.findById(id); | ||||||
|  |         if (policy == null) { | ||||||
|  |             throw new InvalidParameterValueException("Fail to find stickiness policy with " + id); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         LoadBalancerVO loadBalancer = _lbDao.findById(Long.valueOf(policy.getLoadBalancerId())); | ||||||
|  |         if (loadBalancer == null) { | ||||||
|  |             throw new InvalidParameterException("Invalid Load balancer : " + policy.getLoadBalancerId() + " for Stickiness policy id: " + id); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, loadBalancer); | ||||||
|  | 
 | ||||||
|  |         if (customId != null) { | ||||||
|  |             policy.setUuid(customId); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (forDisplay != null) { | ||||||
|  |             policy.setDisplay(forDisplay); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         _lb2stickinesspoliciesDao.update(id, policy); | ||||||
|  |         return _lb2stickinesspoliciesDao.findById(id); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     @ActionEvent(eventType = EventTypes.EVENT_LB_HEALTHCHECKPOLICY_UPDATE, eventDescription = "updating lb healthcheck policy", async = true) | ||||||
|  |     public HealthCheckPolicy updateLBHealthCheckPolicy(long id, String customId, Boolean forDisplay) { | ||||||
|  |         LBHealthCheckPolicyVO policy = _lb2healthcheckDao.findById(id); | ||||||
|  |         if (policy == null) { | ||||||
|  |             throw new InvalidParameterValueException("Fail to find stickiness policy with " + id); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         LoadBalancerVO loadBalancer = _lbDao.findById(Long.valueOf(policy.getLoadBalancerId())); | ||||||
|  |         if (loadBalancer == null) { | ||||||
|  |             throw new InvalidParameterException("Invalid Load balancer : " + policy.getLoadBalancerId() + " for Stickiness policy id: " + id); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, loadBalancer); | ||||||
|  | 
 | ||||||
|  |         if (customId != null) { | ||||||
|  |             policy.setUuid(customId); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (forDisplay != null) { | ||||||
|  |             policy.setDisplay(forDisplay); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         _lb2healthcheckDao.update(id, policy); | ||||||
|  |         return _lb2healthcheckDao.findById(id); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -38,9 +38,6 @@ import javax.crypto.spec.SecretKeySpec; | |||||||
| import javax.inject.Inject; | import javax.inject.Inject; | ||||||
| import javax.naming.ConfigurationException; | import javax.naming.ConfigurationException; | ||||||
| 
 | 
 | ||||||
| import org.apache.commons.codec.binary.Base64; |  | ||||||
| import org.apache.log4j.Logger; |  | ||||||
| 
 |  | ||||||
| import org.apache.cloudstack.acl.ControlledEntity; | import org.apache.cloudstack.acl.ControlledEntity; | ||||||
| import org.apache.cloudstack.affinity.AffinityGroupProcessor; | import org.apache.cloudstack.affinity.AffinityGroupProcessor; | ||||||
| import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao; | import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao; | ||||||
| @ -346,6 +343,8 @@ import org.apache.cloudstack.api.command.user.loadbalancer.ListSslCertsCmd; | |||||||
| import org.apache.cloudstack.api.command.user.loadbalancer.RemoveCertFromLoadBalancerCmd; | import org.apache.cloudstack.api.command.user.loadbalancer.RemoveCertFromLoadBalancerCmd; | ||||||
| import org.apache.cloudstack.api.command.user.loadbalancer.RemoveFromLoadBalancerRuleCmd; | import org.apache.cloudstack.api.command.user.loadbalancer.RemoveFromLoadBalancerRuleCmd; | ||||||
| import org.apache.cloudstack.api.command.user.loadbalancer.UpdateApplicationLoadBalancerCmd; | import org.apache.cloudstack.api.command.user.loadbalancer.UpdateApplicationLoadBalancerCmd; | ||||||
|  | import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLBHealthCheckPolicyCmd; | ||||||
|  | import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLBStickinessPolicyCmd; | ||||||
| import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLoadBalancerRuleCmd; | import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLoadBalancerRuleCmd; | ||||||
| import org.apache.cloudstack.api.command.user.loadbalancer.UploadSslCertCmd; | import org.apache.cloudstack.api.command.user.loadbalancer.UploadSslCertCmd; | ||||||
| import org.apache.cloudstack.api.command.user.nat.CreateIpForwardingRuleCmd; | import org.apache.cloudstack.api.command.user.nat.CreateIpForwardingRuleCmd; | ||||||
| @ -508,6 +507,8 @@ import org.apache.cloudstack.storage.datastore.db.ImageStoreVO; | |||||||
| import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; | import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; | ||||||
| import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; | import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; | ||||||
| import org.apache.cloudstack.utils.identity.ManagementServerNode; | import org.apache.cloudstack.utils.identity.ManagementServerNode; | ||||||
|  | import org.apache.commons.codec.binary.Base64; | ||||||
|  | import org.apache.log4j.Logger; | ||||||
| 
 | 
 | ||||||
| import com.cloud.agent.AgentManager; | import com.cloud.agent.AgentManager; | ||||||
| import com.cloud.agent.api.GetVncPortAnswer; | import com.cloud.agent.api.GetVncPortAnswer; | ||||||
| @ -2991,6 +2992,9 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe | |||||||
|         cmdList.add(CreateVPCCmdByAdmin.class); |         cmdList.add(CreateVPCCmdByAdmin.class); | ||||||
|         cmdList.add(ListVPCsCmdByAdmin.class); |         cmdList.add(ListVPCsCmdByAdmin.class); | ||||||
|         cmdList.add(UpdateVPCCmdByAdmin.class); |         cmdList.add(UpdateVPCCmdByAdmin.class); | ||||||
|  |         cmdList.add(UpdateLBStickinessPolicyCmd.class); | ||||||
|  |         cmdList.add(UpdateLBHealthCheckPolicyCmd.class); | ||||||
|  | 
 | ||||||
|         return cmdList; |         return cmdList; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1662,3 +1662,8 @@ CREATE TABLE `cloud`.`network_acl_item_cidrs` ( | |||||||
|   PRIMARY KEY (`id`), |   PRIMARY KEY (`id`), | ||||||
|   CONSTRAINT `fk_network_acl_item_id` FOREIGN KEY `fk_network_acl_item_id`(`network_acl_item_id`) REFERENCES `network_acl_item`(`id`) ON DELETE CASCADE |   CONSTRAINT `fk_network_acl_item_id` FOREIGN KEY `fk_network_acl_item_id`(`network_acl_item_id`) REFERENCES `network_acl_item`(`id`) ON DELETE CASCADE | ||||||
| ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ALTER TABLE `cloud`.`load_balancer_healthcheck_policies` ADD COLUMN `display` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'True if the policy can be displayed to the end user'; | ||||||
|  | ALTER TABLE `cloud`.`load_balancer_stickiness_policies` ADD COLUMN `display` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'True if the policy can be displayed to the end user'; | ||||||
|  | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user