package org.openstack.atlas.api.resources; import org.openstack.atlas.service.domain.entities.LoadBalancer; import org.openstack.atlas.service.domain.entities.LoadBalancerJoinVip; import org.openstack.atlas.service.domain.entities.VirtualIp; import org.openstack.atlas.service.domain.operations.Operation; import org.openstack.atlas.service.domain.pojos.MessageDataContainer; import org.openstack.atlas.api.helpers.ResponseFactory; import org.openstack.atlas.api.resources.providers.CommonDependencyProvider; import javax.ws.rs.DELETE; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.Response; import java.util.ArrayList; import java.util.List; public class VirtualIpResource extends CommonDependencyProvider { private Integer loadBalancerId; private Integer accountId; private Integer id; private HttpHeaders requestHeaders; @DELETE public Response removeVirtualIpFromLoadBalancer() { try { LoadBalancer lb = new LoadBalancer(); lb.setId(loadBalancerId); lb.setAccountId(accountId); virtualIpService.prepareForVirtualIpDeletion(lb, id); List<Integer> vipIdsToDelete = new ArrayList<Integer>(); vipIdsToDelete.add(id); MessageDataContainer dataContainer = new MessageDataContainer(); dataContainer.setAccountId(accountId); dataContainer.setLoadBalancerId(loadBalancerId); dataContainer.setIds(vipIdsToDelete); if (requestHeaders != null) dataContainer.setUserName(requestHeaders.getRequestHeader("X-PP-User").get(0)); asyncService.callAsyncLoadBalancingOperation(Operation.DELETE_VIRTUAL_IPS, dataContainer); return Response.status(Response.Status.ACCEPTED).build(); } catch (Exception ex) { return ResponseFactory.getErrorResponse(ex, null, null); } } public void setAccountId(Integer accountId) { this.accountId = accountId; } public void setLoadBalancerId(Integer loadBalancerId) { this.loadBalancerId = loadBalancerId; } void setId(Integer id) { this.id = id; } public void setRequestHeaders(HttpHeaders requestHeaders) { this.requestHeaders = requestHeaders; } }