package org.opennaas.extensions.router.opener.client.test;
import junit.framework.Assert;
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
import org.junit.Ignore;
import org.junit.Test;
import org.opennaas.core.resources.protocol.ProtocolSessionContext;
import org.opennaas.extensions.router.opener.client.OpenerQuaggaOpenAPI;
import org.opennaas.extensions.router.opener.client.model.Interface;
import org.opennaas.extensions.router.opener.client.rpc.DeleteInterfaceIPRequest;
import org.opennaas.extensions.router.opener.client.rpc.GetInterfaceResponse;
import org.opennaas.extensions.router.opener.client.rpc.GetInterfacesResponse;
import org.opennaas.extensions.router.opener.client.rpc.IPDataRequest;
import org.opennaas.extensions.router.opener.client.rpc.IPRequest;
import org.opennaas.extensions.router.opener.client.rpc.SetInterfaceIPRequest;
import org.opennaas.extensions.router.opener.protocol.OpenerProtocolSession;
import org.opennaas.extensions.router.opener.protocol.OpenerProtocolSessionFactory;
public class OpenerClientTest {
private static final String host = "opener.opennaas.org";
private static final String port = "9090";
private static final String path = "axis2/services/quagga_openapi/linux";
private static final String managementInterface = "eth0";
private static final String testInterface = "eth1";
private static final String testIPAddress = "192.168.1.12";
private static final String testIPPrefix = "24";
@Ignore
@Test
public void openerClientTest() throws Exception {
OpenerQuaggaOpenAPI proxy = JAXRSClientFactory.create("http://" + host + ":" + port + "/" + path, OpenerQuaggaOpenAPI.class);
GetInterfacesResponse response = proxy.getInterfaces();
for (String ifaceName : response.getInterfaces()) {
GetInterfaceResponse ifaceResponse = proxy.getInterface(ifaceName);
Interface iface = ifaceResponse.getInterface();
Assert.assertNotNull(iface);
}
IPRequest ipReq = new IPRequest();
ipReq.setName(testInterface);
IPDataRequest ip = new IPDataRequest();
ip.setAddress(testIPAddress);
ip.setPrefixLength(testIPPrefix);
ipReq.setIp(ip);
// set IP Address
SetInterfaceIPRequest setIPRequest = new SetInterfaceIPRequest();
setIPRequest.setIface(ipReq);
proxy.setInterfaceIPAddress(setIPRequest, 0);
// remove IP Address
DeleteInterfaceIPRequest delIPRequest = new DeleteInterfaceIPRequest();
delIPRequest.setIface(ipReq);
proxy.deleteInterfaceIPAddress(delIPRequest);
// //create virtual interface
// InterfaceID vifaceId = new InterfaceID();
// vifaceId.setName(testInterface + ".1");
//
// // DISABLED DUE TO ERROR IN OPENER
// AddInterfaceRequest addIfaceReq = new AddInterfaceRequest();
// addIfaceReq.setId(vifaceId);
// proxy.addInterface(addIfaceReq);
//
// //set IP
// IPRequest ipReq2 = new IPRequest();
// ipReq2.setName(vifaceId.getName());
// ipReq2.setIp(ip);
//
// SetInterfaceIPRequest setIPRequest2 = new SetInterfaceIPRequest();
// setIPRequest.setIface(ipReq2);
// proxy.setInterfaceIPAddress(setIPRequest2, 1);
//
// //remove IP
// DeleteInterfaceIPRequest delIPRequest2 = new DeleteInterfaceIPRequest();
// delIPRequest.setIface(ipReq2);
// proxy.deleteInterfaceIPAddress(delIPRequest2);
//
//
// // NOT TESTED
// // remove virtual iface
// proxy.deleteInterface(vifaceId.getName());
}
@Ignore
@Test
public void openerProtocolSessionTest() throws Exception {
ProtocolSessionContext protocolSessionContext = new ProtocolSessionContext();
protocolSessionContext.addParameter(ProtocolSessionContext.PROTOCOL, OpenerProtocolSession.OPENER_PROTOCOL_TYPE);
protocolSessionContext.addParameter(ProtocolSessionContext.PROTOCOL_URI, "http://" + host + ":" + port + "/" + path);
OpenerProtocolSessionFactory factory = new OpenerProtocolSessionFactory();
OpenerProtocolSession session = (OpenerProtocolSession) factory.createProtocolSession("OPENER-SESSION-001", protocolSessionContext);
session.connect();
OpenerQuaggaOpenAPI openerClient = session.getOpenerClientForUse();
GetInterfacesResponse response = openerClient.getInterfaces();
Assert.assertNotNull(response);
session.disconnect();
}
}