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/K8sSyncStateCommand.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/cli/K8sSyncStateCommand.java
index f9bc2c8..a466e14 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/cli/K8sSyncStateCommand.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/cli/K8sSyncStateCommand.java
@@ -15,6 +15,7 @@
*/
package org.onosproject.k8snetworking.cli;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import io.fabric8.kubernetes.api.model.Endpoints;
import io.fabric8.kubernetes.api.model.Namespace;
@@ -22,6 +23,7 @@
import io.fabric8.kubernetes.api.model.extensions.Ingress;
import io.fabric8.kubernetes.api.model.networking.NetworkPolicy;
import io.fabric8.kubernetes.client.KubernetesClient;
+import org.apache.commons.lang.StringUtils;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractShellCommand;
@@ -38,6 +40,17 @@
import java.util.List;
+import static org.onosproject.k8snetworking.api.Constants.CLI_CONTAINERS_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_IP_ADDRESSES_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_IP_ADDRESS_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_LABELS_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_MARGIN_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_NAMESPACE_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_NAME_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_PHASE_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_PORTS_LENGTH;
+import static org.onosproject.k8snetworking.api.Constants.CLI_TYPES_LENGTH;
+import static org.onosproject.k8snetworking.util.K8sNetworkingUtil.genFormatString;
import static org.onosproject.k8snetworking.util.K8sNetworkingUtil.syncPortFromPod;
/**
@@ -48,12 +61,19 @@
description = "Synchronizes all kubernetes states")
public class K8sSyncStateCommand extends AbstractShellCommand {
- private static final String POD_FORMAT = "%-50s%-15s%-15s%-30s";
- private static final String SERVICE_FORMAT = "%-50s%-30s%-30s";
- private static final String ENDPOINTS_FORMAT = "%-50s%-50s%-20s";
- private static final String INGRESS_FORMAT = "%-50s%-15s%-30s";
- private static final String NETWORK_POLICY_FORMAT = "%-50s%-15s%-30s";
- private static final String NAMESPACE_FORMAT = "%-50s%-15s%-30s";
+ private static final String POD_FORMAT = genFormatString(ImmutableList.of(
+ CLI_NAME_LENGTH, CLI_NAMESPACE_LENGTH, CLI_IP_ADDRESS_LENGTH,
+ CLI_CONTAINERS_LENGTH));
+ private static final String SERVICE_FORMAT = genFormatString(ImmutableList.of(
+ CLI_NAME_LENGTH, CLI_IP_ADDRESS_LENGTH, CLI_PORTS_LENGTH));
+ private static final String ENDPOINTS_FORMAT = genFormatString(ImmutableList.of(
+ CLI_NAME_LENGTH, CLI_IP_ADDRESSES_LENGTH, CLI_PORTS_LENGTH));
+ private static final String INGRESS_FORMAT = genFormatString(ImmutableList.of(
+ CLI_NAME_LENGTH, CLI_NAMESPACE_LENGTH, CLI_IP_ADDRESS_LENGTH));
+ private static final String NETWORK_POLICY_FORMAT = genFormatString(ImmutableList.of(
+ CLI_NAME_LENGTH, CLI_NAMESPACE_LENGTH, CLI_TYPES_LENGTH));
+ private static final String NAMESPACE_FORMAT = genFormatString(ImmutableList.of(
+ CLI_NAME_LENGTH, CLI_PHASE_LENGTH, CLI_LABELS_LENGTH));
@Override
protected void doExecute() {
@@ -164,8 +184,10 @@
.getIngress().forEach(i -> lbIps.add(i.getIp()));
print(INGRESS_FORMAT,
- ingress.getMetadata().getName(),
- ingress.getMetadata().getNamespace(),
+ StringUtils.substring(ingress.getMetadata().getName(),
+ 0, CLI_NAME_LENGTH - CLI_MARGIN_LENGTH),
+ StringUtils.substring(ingress.getMetadata().getNamespace(),
+ 0, CLI_NAMESPACE_LENGTH - CLI_MARGIN_LENGTH),
lbIps.isEmpty() ? "" : lbIps);
}
@@ -179,19 +201,24 @@
});
print(ENDPOINTS_FORMAT,
- endpoints.getMetadata().getName(),
- ips.isEmpty() ? "" : ips,
+ StringUtils.substring(endpoints.getMetadata().getName(),
+ 0, CLI_NAME_LENGTH - CLI_MARGIN_LENGTH),
+ ips.isEmpty() ? "" : StringUtils.substring(ips.toString(),
+ 0, CLI_IP_ADDRESSES_LENGTH - CLI_MARGIN_LENGTH),
ports.isEmpty() ? "" : ports);
}
private void printNamespace(Namespace namespace) {
print(NAMESPACE_FORMAT,
- namespace.getMetadata().getName(),
+ StringUtils.substring(namespace.getMetadata().getName(),
+ 0, CLI_NAME_LENGTH - CLI_MARGIN_LENGTH),
namespace.getStatus().getPhase(),
namespace.getMetadata() != null &&
namespace.getMetadata().getLabels() != null &&
!namespace.getMetadata().getLabels().isEmpty() ?
- namespace.getMetadata().getLabels() : "");
+ StringUtils.substring(namespace.getMetadata()
+ .getLabels().toString(), 0,
+ CLI_LABELS_LENGTH - CLI_MARGIN_LENGTH) : "");
}
private void printService(io.fabric8.kubernetes.api.model.Service service) {
@@ -201,8 +228,10 @@
service.getSpec().getPorts().forEach(p -> ports.add(p.getPort()));
print(SERVICE_FORMAT,
- service.getMetadata().getName(),
- service.getSpec().getClusterIP(),
+ StringUtils.substring(service.getMetadata().getName(),
+ 0, CLI_NAME_LENGTH - CLI_MARGIN_LENGTH),
+ StringUtils.substring(service.getSpec().getClusterIP(),
+ 0, CLI_IP_ADDRESS_LENGTH - CLI_MARGIN_LENGTH),
ports.isEmpty() ? "" : ports);
}
@@ -213,16 +242,21 @@
pod.getSpec().getContainers().forEach(c -> containers.add(c.getName()));
print(POD_FORMAT,
- pod.getMetadata().getName(),
- pod.getMetadata().getNamespace(),
- pod.getStatus().getPodIP(),
+ StringUtils.substring(pod.getMetadata().getName(),
+ 0, CLI_NAME_LENGTH - CLI_MARGIN_LENGTH),
+ StringUtils.substring(pod.getMetadata().getNamespace(),
+ 0, CLI_NAMESPACE_LENGTH - CLI_MARGIN_LENGTH),
+ StringUtils.substring(pod.getStatus().getPodIP(),
+ 0, CLI_IP_ADDRESS_LENGTH - CLI_MARGIN_LENGTH),
containers.isEmpty() ? "" : containers);
}
private void printNetworkPolicy(NetworkPolicy policy) {
print(NETWORK_POLICY_FORMAT,
- policy.getMetadata().getName(),
- policy.getMetadata().getNamespace(),
+ StringUtils.substring(policy.getMetadata().getName(),
+ 0, CLI_NAME_LENGTH - CLI_MARGIN_LENGTH),
+ StringUtils.substring(policy.getMetadata().getNamespace(),
+ 0, CLI_NAMESPACE_LENGTH - CLI_MARGIN_LENGTH),
policy.getSpec().getPolicyTypes().isEmpty() ?
"" : policy.getSpec().getPolicyTypes());
}