Refactor k8s-node and k8s-networking command line interfaces
Change-Id: I1eb20ccea5238893a1c58e7faeb4c3a06accd2a9
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/cli/K8sPortListCommand.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/cli/K8sPortListCommand.java
index e344971..2dabb0e 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/cli/K8sPortListCommand.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/cli/K8sPortListCommand.java
@@ -18,7 +18,9 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
+import org.apache.commons.lang.StringUtils;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.lifecycle.Service;
@@ -30,6 +32,12 @@
import java.util.Comparator;
import java.util.List;
+import static org.onosproject.k8snetworking.api.Constants.CLI_ID_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_IP_ADDRESSES_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_MAC_ADDRESS_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_MARGIN_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_NAME_LENGTH;
+import static org.onosproject.k8snetworking.util.K8sNetworkingUtil.genFormatString;
import static org.onosproject.k8snetworking.util.K8sNetworkingUtil.prettyJson;
/**
@@ -40,8 +48,6 @@
description = "Lists all kubernetes ports")
public class K8sPortListCommand extends AbstractShellCommand {
- private static final String FORMAT = "%-40s%-20s%-20s%-8s";
-
@Argument(name = "networkId", description = "Network ID")
private String networkId = null;
@@ -52,6 +58,9 @@
List<K8sPort> ports = Lists.newArrayList(service.ports());
ports.sort(Comparator.comparing(K8sPort::networkId));
+ String format = genFormatString(ImmutableList.of(CLI_ID_LENGTH,
+ CLI_NAME_LENGTH, CLI_MAC_ADDRESS_LENGTH, CLI_IP_ADDRESSES_LENGTH));
+
if (!Strings.isNullOrEmpty(networkId)) {
ports.removeIf(port -> !port.networkId().equals(networkId));
}
@@ -59,13 +68,17 @@
if (outputJson()) {
print("%s", json(ports));
} else {
- print(FORMAT, "ID", "Network", "MAC Address", "Fixed IPs");
+ print(format, "ID", "Network", "MAC Address", "Fixed IPs");
for (K8sPort port: ports) {
K8sNetwork k8sNet = service.network(port.networkId());
- print(FORMAT, port.portId(),
- k8sNet == null ? "" : k8sNet.name(),
- port.macAddress(),
- port.ipAddress() == null ? "" : port.ipAddress().toString());
+ print(format,
+ StringUtils.substring(port.portId(),
+ 0, CLI_ID_LENGTH - CLI_MARGIN_LENGTH),
+ k8sNet == null ? "" : StringUtils.substring(k8sNet.name(),
+ 0, CLI_NAME_LENGTH - CLI_MARGIN_LENGTH),
+ StringUtils.substring(port.macAddress().toString(),
+ 0, CLI_MAC_ADDRESS_LENGTH - CLI_MARGIN_LENGTH),
+ port.ipAddress() == null ? "" : port.ipAddress());
}
}
}