@Override public void execute() throws ResourceAllocationException, ResourceUnavailableException { HealthCheckPolicy policy = null; boolean success = false; try { CallContext.current() .setEventDetails("Load balancer healthcheck policy Id : " + getEntityId()); success = _lbService.applyLBHealthCheckPolicy(this); if (success) { // State might be different after the rule is applied, so get new object here policy = _entityMgr.findById(HealthCheckPolicy.class, getEntityId()); LoadBalancer lb = _lbService.findById(policy.getLoadBalancerId()); LBHealthCheckResponse hcResponse = _responseGenerator.createLBHealthCheckPolicyResponse(policy, lb); setResponseObject(hcResponse); hcResponse.setResponseName(getCommandName()); } } finally { if (!success || (policy == null)) { throw new ServerApiException( ApiErrorCode.INTERNAL_ERROR, "Failed to create healthcheck policy "); } } }
@Override public void create() { try { HealthCheckPolicy result = _lbService.createLBHealthCheckPolicy(this); this.setEntityId(result.getId()); this.setEntityUuid(result.getUuid()); } catch (InvalidParameterValueException e) { s_logger.warn("Exception: ", e); throw new ServerApiException(ApiErrorCode.MALFORMED_PARAMETER_ERROR, e.getMessage()); } }