Implement kubevirt router store, manager and codec with unit tests
Change-Id: Ib93a71326aa35b4817f0e6b6c97d5f57b26fe470
diff --git a/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtRouters.json b/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtRouters.json
new file mode 100644
index 0000000..3546dff
--- /dev/null
+++ b/apps/kubevirt-networking/app/src/main/resources/definitions/KubevirtRouters.json
@@ -0,0 +1,91 @@
+{
+ "type": "object",
+ "title": "routers",
+ "required": [
+ "routers"
+ ],
+ "properties": {
+ "routers": {
+ "type": "array",
+ "xml": {
+ "name": "routers",
+ "wrapped": true
+ },
+ "items": {
+ "type": "object",
+ "description": "A router object.",
+ "required": [
+ "name",
+ "enableSnat",
+ "internal",
+ "external",
+ "peerRouter"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "example": "router-1",
+ "description": "The name of router."
+ },
+ "enableSnat": {
+ "type": "boolean",
+ "example": "true",
+ "description": "Enable SNAT flag."
+ },
+ "internal": {
+ "type": "array",
+ "xml": {
+ "name": "internal",
+ "wrapped": true
+ },
+ "items": {
+ "type": "string",
+ "example": "vxlan-1",
+ "description": "name of internal network"
+ }
+ },
+ "external": {
+ "type": "object",
+ "description": "external networks",
+ "required": [
+ "ip",
+ "name"
+ ],
+ "properties": {
+ "ipaddress": {
+ "type": "string",
+ "example": "10.10.10.5",
+ "description": "Router IP address of the external network"
+ },
+ "name": {
+ "type": "string",
+ "example": "flat",
+ "description": "Name of the external network"
+ }
+ }
+ },
+ "peerRouter": {
+ "type": "object",
+ "description": "peer router",
+ "required": [
+ "ip",
+ "mac"
+ ],
+ "properties": {
+ "ipaddress": {
+ "type": "string",
+ "example": "10.10.10.1",
+ "description": "IP address of the peer router"
+ },
+ "macaddress": {
+ "type": "string",
+ "example": "11:22:33:44:55:66",
+ "description": "MAC address of the peer router"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file