Support JSON output in external router CLI, make router obj immutable
Change-Id: I6c76d9aafd64c1af7c3e28b42beabc268f824b88
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/DeleteExternalPeerRouterCommand.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/DeleteExternalPeerRouterCommand.java
index 551a871..0ef3861 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/DeleteExternalPeerRouterCommand.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/DeleteExternalPeerRouterCommand.java
@@ -42,7 +42,7 @@
OpenstackNetworkAdminService service = AbstractShellCommand.get(OpenstackNetworkAdminService.class);
if (service.externalPeerRouters().stream()
- .noneMatch(router -> router.externalPeerRouterIp().toString().equals(ipAddress))) {
+ .noneMatch(router -> router.ipAddress().toString().equals(ipAddress))) {
print(NO_ELEMENT);
return;
}
@@ -56,9 +56,9 @@
List<ExternalPeerRouter> routers = Lists.newArrayList(service.externalPeerRouters());
for (ExternalPeerRouter router: routers) {
- print(FORMAT, router.externalPeerRouterIp(),
- router.externalPeerRouterMac().toString(),
- router.externalPeerRouterVlanId());
+ print(FORMAT, router.ipAddress(),
+ router.macAddress().toString(),
+ router.vlanId());
}
}
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/ExternalPeerRouterListCommand.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/ExternalPeerRouterListCommand.java
index ebd949c..ae30021 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/ExternalPeerRouterListCommand.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/ExternalPeerRouterListCommand.java
@@ -15,6 +15,9 @@
*/
package org.onosproject.openstacknetworking.cli;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
import com.google.common.collect.Lists;
import org.apache.karaf.shell.commands.Command;
import org.onosproject.cli.AbstractShellCommand;
@@ -23,6 +26,8 @@
import java.util.List;
+import static com.fasterxml.jackson.databind.SerializationFeature.INDENT_OUTPUT;
+
/**
* Lists external peer router lists.
*/
@@ -35,14 +40,25 @@
@Override
protected void execute() {
OpenstackNetworkService service = AbstractShellCommand.get(OpenstackNetworkService.class);
-
- print(FORMAT, "Router IP", "Mac Address", "VLAN ID");
List<ExternalPeerRouter> routers = Lists.newArrayList(service.externalPeerRouters());
- for (ExternalPeerRouter router: routers) {
- print(FORMAT, router.externalPeerRouterIp(),
- router.externalPeerRouterMac().toString(),
- router.externalPeerRouterVlanId());
+ if (outputJson()) {
+ print("%s", json(this, routers));
+ } else {
+ print(FORMAT, "Router IP", "Mac Address", "VLAN ID");
+ for (ExternalPeerRouter router: routers) {
+ print(FORMAT, router.ipAddress(),
+ router.macAddress().toString(),
+ router.vlanId());
+ }
}
}
+
+ private JsonNode json(AbstractShellCommand context, List<ExternalPeerRouter> routers) {
+ ObjectMapper mapper = new ObjectMapper();
+ ArrayNode result = mapper.enable(INDENT_OUTPUT).createArrayNode();
+ routers.forEach(r -> result.add(context.jsonForEntity(r, ExternalPeerRouter.class)));
+
+ return result;
+ }
}
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/IpAddressCompleter.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/IpAddressCompleter.java
index 4ae1dd4..bac877d 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/IpAddressCompleter.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/IpAddressCompleter.java
@@ -38,7 +38,7 @@
StringsCompleter delegate = new StringsCompleter();
OpenstackNetworkService osNetService = AbstractShellCommand.get(OpenstackNetworkService.class);
Set<IpAddress> set = osNetService.externalPeerRouters().stream()
- .map(ExternalPeerRouter::externalPeerRouterIp)
+ .map(ExternalPeerRouter::ipAddress)
.collect(Collectors.toSet());
SortedSet<String> strings = delegate.getStrings();
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/MacAddressCompleter.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/MacAddressCompleter.java
index 6e21de6..3b6e475 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/MacAddressCompleter.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/MacAddressCompleter.java
@@ -38,7 +38,7 @@
StringsCompleter delegate = new StringsCompleter();
OpenstackNetworkService osNetService = AbstractShellCommand.get(OpenstackNetworkService.class);
Set<MacAddress> set = osNetService.externalPeerRouters().stream()
- .map(ExternalPeerRouter::externalPeerRouterMac)
+ .map(ExternalPeerRouter::macAddress)
.collect(Collectors.toSet());
SortedSet<String> strings = delegate.getStrings();
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/UpdateExternalPeerRouterCommand.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/UpdateExternalPeerRouterCommand.java
index 5667fa8..c4090e0 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/UpdateExternalPeerRouterCommand.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/UpdateExternalPeerRouterCommand.java
@@ -62,7 +62,7 @@
print(NO_ELEMENT);
return;
} else if (service.externalPeerRouters().stream()
- .noneMatch(router -> router.externalPeerRouterIp().toString().equals(ipAddress))) {
+ .noneMatch(router -> router.ipAddress().toString().equals(ipAddress))) {
print(NO_ELEMENT);
return;
}
@@ -86,9 +86,9 @@
List<ExternalPeerRouter> routers = Lists.newArrayList(service.externalPeerRouters());
for (ExternalPeerRouter router: routers) {
- print(FORMAT, router.externalPeerRouterIp(),
- router.externalPeerRouterMac().toString(),
- router.externalPeerRouterVlanId());
+ print(FORMAT, router.ipAddress(),
+ router.macAddress().toString(),
+ router.vlanId());
}
}
}
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/UpdateExternalPeerRouterVlanCommand.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/UpdateExternalPeerRouterVlanCommand.java
index 3dc14a7..79125b2 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/UpdateExternalPeerRouterVlanCommand.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/UpdateExternalPeerRouterVlanCommand.java
@@ -61,7 +61,7 @@
print(NO_ELEMENT);
return;
} else if (osNetAdminService.externalPeerRouters().stream()
- .noneMatch(router -> router.externalPeerRouterIp().toString().equals(ipAddress))) {
+ .noneMatch(router -> router.ipAddress().toString().equals(ipAddress))) {
print(NO_ELEMENT);
return;
}
@@ -104,9 +104,9 @@
List<ExternalPeerRouter> routers = Lists.newArrayList(osNetAdminService.externalPeerRouters());
for (ExternalPeerRouter r: routers) {
- print(FORMAT, r.externalPeerRouterIp(),
- r.externalPeerRouterMac().toString(),
- r.externalPeerRouterVlanId());
+ print(FORMAT, r.ipAddress(),
+ r.macAddress().toString(),
+ r.vlanId());
}
}
}
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/VlanIdCompleter.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/VlanIdCompleter.java
index 0768859..8f64642 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/VlanIdCompleter.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/VlanIdCompleter.java
@@ -38,7 +38,7 @@
StringsCompleter delegate = new StringsCompleter();
OpenstackNetworkService osNetService = AbstractShellCommand.get(OpenstackNetworkService.class);
Set<VlanId> set = osNetService.externalPeerRouters().stream()
- .map(ExternalPeerRouter::externalPeerRouterVlanId)
+ .map(ExternalPeerRouter::vlanId)
.collect(Collectors.toSet());
SortedSet<String> strings = delegate.getStrings();