REST interface for VPLS application
Change-Id: I2cab5bd6ff0ce026d0ef844bba6199fdd7f3e50d
This repository contains the files that provide a REST interface for VPLS
application.I create a new package in org.onosproject.vpls
called rest that contains the java classes VplsWebApplication and
VplsWebResource. The VplsWebResource provides create/update/read/delete
(CURD) functionality, leveraging the methods defined in the Vpls java
interface. I create a new folder called resources that contains
the json definitions and the files for the "web page".
diff --git a/apps/vpls/src/test/java/org/onosproject/vpls/VplsManagerTest.java b/apps/vpls/src/test/java/org/onosproject/vpls/VplsManagerTest.java
index d9bba87..472860f 100644
--- a/apps/vpls/src/test/java/org/onosproject/vpls/VplsManagerTest.java
+++ b/apps/vpls/src/test/java/org/onosproject/vpls/VplsManagerTest.java
@@ -19,6 +19,8 @@
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.onosproject.codec.CodecService;
+import org.onosproject.codec.JsonCodec;
import org.onosproject.net.EncapsulationType;
import org.onosproject.net.host.HostEvent;
import org.onosproject.vpls.api.VplsData;
@@ -27,6 +29,7 @@
import org.onosproject.vpls.store.VplsStoreEvent;
import java.util.Collection;
+import java.util.Set;
import static org.junit.Assert.*;
import static org.onosproject.net.EncapsulationType.*;
@@ -37,6 +40,7 @@
*/
public class VplsManagerTest extends VplsTest {
private VplsManager vplsManager;
+ private CodecService codecService = new TestCodecService();
private TestVplsStore vplsStore = new TestVplsStore();
private TestHostService hostService = new TestHostService();
private TestInterfaceService interfaceService = new TestInterfaceService();
@@ -45,6 +49,7 @@
@Before
public void setup() {
vplsManager = new VplsManager();
+ vplsManager.codecService = codecService;
vplsManager.hostService = hostService;
vplsManager.vplsStore = vplsStore;
vplsManager.operationService = vplsOperationService;
@@ -336,4 +341,31 @@
}
}
+ /**
+ * Test Codec service.
+ */
+ class TestCodecService implements CodecService {
+
+
+ @Override
+ public Set<Class<?>> getCodecs() {
+ return null;
+ }
+
+ @Override
+ public <T> JsonCodec<T> getCodec(Class<T> entityClass) {
+ return null;
+ }
+
+ @Override
+ public <T> void registerCodec(Class<T> entityClass, JsonCodec<T> codec) {
+
+ }
+
+ @Override
+ public void unregisterCodec(Class<?> entityClass) {
+
+ }
+ }
+
}
diff --git a/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java b/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
index 6051f92..9920a22 100644
--- a/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
+++ b/apps/vpls/src/test/java/org/onosproject/vpls/VplsTest.java
@@ -629,6 +629,7 @@
NetworkConfigListener listener;
VplsAppConfig vplsAppConfig;
+
@Override
public void addListener(NetworkConfigListener listener) {
this.listener = listener;
diff --git a/apps/vpls/src/test/java/resources/vpls-cfg.json b/apps/vpls/src/test/java/resources/vpls-cfg.json
new file mode 100644
index 0000000..5236124
--- /dev/null
+++ b/apps/vpls/src/test/java/resources/vpls-cfg.json
@@ -0,0 +1,67 @@
+{
+ "ports": {
+ "of:0000000000000001/1": {
+ "interfaces": [
+ {
+ "name": "h1",
+ "vlan": "100"
+ }
+ ]
+ },
+ "of:0000000000000002/1": {
+ "interfaces": [
+ {
+ "name": "h2",
+ "vlan": "200"
+ }
+ ]
+ },
+ "of:0000000000000003/1": {
+ "interfaces": [
+ {
+ "name": "h3",
+ "vlan": "300"
+ }
+ ]
+ },
+ "of:0000000000000004/1": {
+ "interfaces": [
+ {
+ "name": "h4",
+ "vlan": "400"
+ }
+ ]
+ },
+ "of:0000000000000005/1": {
+ "interfaces": [
+ {
+ "name": "h5"
+ }
+ ]
+ },
+ "of:0000000000000006/1": {
+ "interfaces": [
+ {
+ "name": "h6"
+ }
+ ]
+ }
+ },
+ "apps" : {
+ "org.onosproject.vpls" : {
+ "vpls" : {
+ "vplsList" : [
+ {
+ "name" : "VPLS1",
+ "interfaces" : ["h1", "h2", "h5", "h6"]
+ },
+ {
+ "name" : "VPLS2",
+ "interfaces" : ["h3", "h4"],
+ "encapsulation" : "vlan"
+ }
+ ]
+ }
+ }
+ }
+}
\ No newline at end of file