package org.opennaas.client.rest;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.MediaType;
import org.apache.log4j.Logger;
import org.opennaas.extensions.router.model.ComputerSystem;
import org.opennaas.extensions.router.model.EthernetPort;
import org.opennaas.extensions.router.model.LogicalPort;
import org.opennaas.extensions.router.model.NetworkPort;
import org.opennaas.extensions.router.model.ProtocolEndpoint;
import org.opennaas.extensions.router.model.ProtocolEndpoint.ProtocolIFType;
import org.opennaas.extensions.router.model.wrappers.AddInterfacesToLogicalRouterRequest;
import org.opennaas.extensions.router.model.wrappers.RemoveInterfacesFromLogicalRouterRequest;
import org.opennaas.extensions.router.model.wrappers.SetEncapsulationLabelRequest;
import org.opennaas.extensions.router.model.wrappers.SetEncapsulationRequest;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
public class ChassisTest {
private static final Logger LOGGER = Logger.getLogger(ChassisTest.class);
public static void main(String[] args) {
upPhysicalInterface();
downPhysicalInterface();
createSubInterface();
deleteSubInterface();
createLogicalRouter();
deleteLogicalRouter();
addInterfacesToLogicalRouter();
removeInterfacesFromLogicalRouter();
setEncapsulation();
setEncapsulationLabel();
}
/**
*
*/
private static void upPhysicalInterface() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/upPhysicalInterface";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, new LogicalPort());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void downPhysicalInterface() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/downPhysicalInterface";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, new LogicalPort());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void createSubInterface() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/createSubInterface";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, getEthernetPort());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void deleteSubInterface() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/deleteSubInterface";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, getEthernetPort());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void createLogicalRouter() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/createLogicalRouter";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, getComputerSystem());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void deleteLogicalRouter() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/deleteLogicalRouter";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, getComputerSystem());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void addInterfacesToLogicalRouter() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/addInterfacesToLogicalRouter";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, getAddInterfacesToLogicalRouterRequest());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void removeInterfacesFromLogicalRouter() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/removeInterfacesFromLogicalRouter";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, getRemoveInterfacesToLogicalRouterRequest());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void setEncapsulation() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/setEncapsulation";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, getSetEncapsulationRequest());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
*
*/
private static void setEncapsulationLabel() {
ClientResponse response = null;
String url = "http://localhost:8888/opennaas/router/lolaM20/chassis/setEncapsulationLabel";
try {
Client client = Client.create();
WebResource webResource = client.resource(url);
response = webResource.type(MediaType.APPLICATION_XML).post(ClientResponse.class, getSetEncapsulationLabelRequest());
LOGGER.info("Response code: " + response.getStatus());
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
/**
* @return
*/
private static SetEncapsulationRequest getSetEncapsulationRequest() {
SetEncapsulationRequest request = new SetEncapsulationRequest();
NetworkPort networkPort = new NetworkPort();
networkPort.setName("ge-2/0/1.2048");
ProtocolEndpoint endpoint = new ProtocolEndpoint();
endpoint.setProtocolIFType(ProtocolIFType.LAYER_2_VLAN_USING_802_1Q);
endpoint.setName("ge-2/0/1.2042");
List<ProtocolEndpoint> list = new ArrayList<ProtocolEndpoint>();
list.add(endpoint);
networkPort.setProtocolEndpoints(list);
request.setIface(networkPort);
request.setEncapsulation(ProtocolIFType.IPV4);
return request;
}
/**
* @return
*/
private static SetEncapsulationLabelRequest getSetEncapsulationLabelRequest() {
SetEncapsulationLabelRequest request = new SetEncapsulationLabelRequest();
request.setEncapsulationLabel("ge-2/0/1.2041");
NetworkPort networkPort = new NetworkPort();
List<ProtocolEndpoint> list = new ArrayList<ProtocolEndpoint>();
ProtocolEndpoint endpoint = new ProtocolEndpoint();
endpoint.setProtocolIFType(ProtocolIFType.LAYER_2_VLAN_USING_802_1Q);
endpoint.setName("ge-2/0/1.2042");
list.add(endpoint);
networkPort.setProtocolEndpoints(list);
networkPort.setName("ge-2/0/1.2043");
request.setIface(networkPort);
return request;
}
/**
* @return
*/
private static AddInterfacesToLogicalRouterRequest getAddInterfacesToLogicalRouterRequest() {
AddInterfacesToLogicalRouterRequest request = new AddInterfacesToLogicalRouterRequest();
List<LogicalPort> interfaces = new ArrayList<LogicalPort>();
LogicalPort logicalPort = new LogicalPort();
interfaces.add(logicalPort);
request.setInterfaces(interfaces);
return request;
}
/**
* @return
*/
private static RemoveInterfacesFromLogicalRouterRequest getRemoveInterfacesToLogicalRouterRequest() {
RemoveInterfacesFromLogicalRouterRequest request = new RemoveInterfacesFromLogicalRouterRequest();
List<LogicalPort> interfaces = new ArrayList<LogicalPort>();
LogicalPort logicalPort = new LogicalPort();
interfaces.add(logicalPort);
request.setInterfaces(interfaces);
return request;
}
/**
* @return
*/
private static ComputerSystem getComputerSystem() {
ComputerSystem computerSystem = new ComputerSystem();
computerSystem.setName("Name");
return computerSystem;
}
/**
* @return
*/
private static EthernetPort getEthernetPort() {
EthernetPort ethernetPort = new EthernetPort();
ethernetPort.setName("ge-2/0/1.2048");
return ethernetPort;
}
}