/**
*
*/
package org.opennaas.gui.vcpe.services.rest.vcpe;
import javax.ws.rs.core.MediaType;
import org.apache.log4j.Logger;
import org.opennaas.extensions.vcpe.model.VCPENetworkModel;
import org.opennaas.gui.vcpe.services.rest.GenericRestService;
import org.opennaas.gui.vcpe.services.rest.RestServiceException;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientHandlerException;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
/**
* @author Jordi
*/
public class BuilderCapabilityService extends GenericRestService {
private static final Logger LOGGER = Logger.getLogger(BuilderCapabilityService.class);
/**
* Call a rest url to update the ips
*
* @param request
* @return true if the environment has been created
* @throws RestServiceException
*/
public Boolean updateIpsVCPENetwork(VCPENetworkModel request) throws RestServiceException {
ClientResponse response = null;
try {
LOGGER.info("Calling update ips VCPENetworkBuilderCapability service");
String url = getURL("vcpenet/" + request.getName() + "/vcpenet_ip/updateIps");
Client client = Client.create();
addHTTPBasicAuthentication(client);
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML)
.accept(MediaType.APPLICATION_XML).post(ClientResponse.class, request);
LOGGER.info("ips updated: " + response);
} catch (ClientHandlerException e) {
LOGGER.error(e.getMessage());
throw e;
}
return checkResponse(response);
}
/**
* Call a rest url to update the vrrp ip address
*
* @param vcpeNetwork
* @return true if the vrrp ip address has been created
* @throws RestServiceException
*/
public Boolean updateVRRPIp(VCPENetworkModel request) throws RestServiceException {
ClientResponse response = null;
try {
LOGGER.info("Calling update vrrp ip VCPENetworkBuilderCapability service");
String url = getURL("vcpenet/" + request.getName() + "/vcpenet_vrrp/updateVRRPIp");
Client client = Client.create();
addHTTPBasicAuthentication(client);
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML)
.accept(MediaType.APPLICATION_XML).post(ClientResponse.class, request);
LOGGER.info("vrrp ip updated: " + response);
} catch (ClientHandlerException e) {
LOGGER.error(e.getMessage());
throw e;
}
return checkResponse(response);
}
/**
* Call a rest url to change the priority vrrp
*
* @param vcpeNetwork
* @return new model
* @throws RestServiceException
*/
public VCPENetworkModel changeVRRPPriority(VCPENetworkModel request) throws RestServiceException {
ClientResponse response = null;
try {
LOGGER.info("Calling change priority vrrp VCPENetworkBuilderCapability service");
String url = getURL("vcpenet/" + request.getName() + "/vcpenet_vrrp/changeVRRPPriority");
Client client = Client.create();
addHTTPBasicAuthentication(client);
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML)
.accept(MediaType.APPLICATION_XML).post(ClientResponse.class, request);
LOGGER.info("priority vrrp changed: " + response);
} catch (ClientHandlerException e) {
LOGGER.error(e.getMessage());
throw e;
}
return checkResponse(response) ? response.getEntity(VCPENetworkModel.class) : null;
}
}