diff --git a/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/K8sMetadata.java b/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/K8sMetadata.java index c27ee67..f6ecc6b 100644 --- a/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/K8sMetadata.java +++ b/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/K8sMetadata.java @@ -13,14 +13,17 @@ public class K8sMetadata extends AbstractSchema { private final Map tableMap = new HashMap<>(); private final K8sDatabaseTable databaseTable; private final K8sEngineTable engineTable; + private final K8sPipelineTable pipelineTable; private final K8sViewTable viewTable; public K8sMetadata(K8sContext context) { this.engineTable = new K8sEngineTable(context); this.databaseTable = new K8sDatabaseTable(context, engineTable); + this.pipelineTable = new K8sPipelineTable(context); this.viewTable = new K8sViewTable(context); tableMap.put("DATABASES", databaseTable); tableMap.put("ENGINES", engineTable); + tableMap.put("PIPELINES", pipelineTable); tableMap.put("VIEWS", viewTable); } @@ -36,6 +39,10 @@ public K8sViewTable viewTable() { return viewTable; } + public K8sPipelineTable pipelineTable() { + return pipelineTable; + } + @Override public Map getTableMap() { return tableMap; diff --git a/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/K8sPipelineTable.java b/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/K8sPipelineTable.java new file mode 100644 index 0000000..981bf42 --- /dev/null +++ b/hoptimator-k8s/src/main/java/com/linkedin/hoptimator/k8s/K8sPipelineTable.java @@ -0,0 +1,42 @@ +package com.linkedin.hoptimator.k8s; + +import org.apache.calcite.schema.Schema; + +import com.linkedin.hoptimator.k8s.models.V1alpha1Pipeline; +import com.linkedin.hoptimator.k8s.models.V1alpha1PipelineList; +import com.linkedin.hoptimator.k8s.models.V1alpha1PipelineSpec; + + +public class K8sPipelineTable extends K8sTable { + + // CHECKSTYLE:OFF + public static class Row { + public String NAME; + public String STATUS; + + public Row(String name, String status) { + this.NAME = name; + this.STATUS = status; + } + + @Override + public String toString() { + return String.join("\t", NAME, STATUS); + } + } + // CHECKSTYLE:ON + + public K8sPipelineTable(K8sContext context) { + super(context, K8sApiEndpoints.PIPELINES, Row.class); + } + + @Override + public Row toRow(V1alpha1Pipeline obj) { + return new Row(obj.getMetadata().getName(), obj.getStatus().getMessage()); + } + + @Override + public Schema.TableType getJdbcTableType() { + return Schema.TableType.SYSTEM_TABLE; + } +}