fix(container): avoid duplicate Wayne workload rows
This commit is contained in:
@@ -65,6 +65,7 @@ func (s *WayneRoleBindingService) ContainerServiceData(ctx context.Context, quer
|
||||
}
|
||||
workloads := make([]ContainerWorkload, 0)
|
||||
clusterNodes := map[string]wayneNodeSummary{}
|
||||
seenWorkloads := map[string]struct{}{}
|
||||
errors := make([]string, 0)
|
||||
|
||||
for _, binding := range query.Namespaces {
|
||||
@@ -88,6 +89,11 @@ func (s *WayneRoleBindingService) ContainerServiceData(ctx context.Context, quer
|
||||
errors = append(errors, fmt.Sprintf("namespace %d apps: %v", binding.WayneNamespaceID, err))
|
||||
continue
|
||||
}
|
||||
if len(apps) == 0 {
|
||||
errors = append(errors, fmt.Sprintf("namespace %d has no apps for deployment query", binding.WayneNamespaceID))
|
||||
continue
|
||||
}
|
||||
appID := apps[0].ID
|
||||
for _, cluster := range clusters {
|
||||
if _, ok := clusterNodes[cluster]; !ok {
|
||||
nodes, err := s.getWayneNodes(ctx, cluster)
|
||||
@@ -97,21 +103,24 @@ func (s *WayneRoleBindingService) ContainerServiceData(ctx context.Context, quer
|
||||
clusterNodes[cluster] = nodes
|
||||
}
|
||||
}
|
||||
for _, app := range apps {
|
||||
items, err := s.listWayneDeployments(ctx, app.ID, kubeNamespace, cluster)
|
||||
if err != nil {
|
||||
errors = append(errors, fmt.Sprintf("namespace %d cluster %s app %d deployments: %v", binding.WayneNamespaceID, cluster, app.ID, err))
|
||||
items, err := s.listWayneDeployments(ctx, appID, kubeNamespace, cluster)
|
||||
if err != nil {
|
||||
errors = append(errors, fmt.Sprintf("namespace %d cluster %s app %d deployments: %v", binding.WayneNamespaceID, cluster, appID, err))
|
||||
continue
|
||||
}
|
||||
for _, item := range items {
|
||||
workload := containerWorkloadFromMap(item, cluster, kubeNamespace, query.BusinessLineName)
|
||||
if workload.Name == "" {
|
||||
continue
|
||||
}
|
||||
for _, item := range items {
|
||||
workload := containerWorkloadFromMap(item, cluster, kubeNamespace, query.BusinessLineName)
|
||||
if workload.Name == "" {
|
||||
continue
|
||||
}
|
||||
workloads = append(workloads, workload)
|
||||
summary.Pods += workload.Pods
|
||||
summary.ReadyPods += workload.ReadyPods
|
||||
key := strings.Join([]string{workload.Cluster, workload.Namespace, workload.Workload, workload.Name}, "\x00")
|
||||
if _, ok := seenWorkloads[key]; ok {
|
||||
continue
|
||||
}
|
||||
seenWorkloads[key] = struct{}{}
|
||||
workloads = append(workloads, workload)
|
||||
summary.Pods += workload.Pods
|
||||
summary.ReadyPods += workload.ReadyPods
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user