refactor dependencies retrieval

This commit is contained in:
pb
2024-08-06 11:40:30 +02:00
parent aaac37a883
commit 010b659858
3 changed files with 178 additions and 149 deletions

View File

@@ -9,7 +9,6 @@ import (
"oc-monitor/logger"
. "oc-monitor/models"
"os"
"slices"
"strings"
"time"
@@ -21,7 +20,6 @@ import (
type ArgoBuilder struct {
graph graph.Graph
branches [][]int
Workflow Workflow
}
@@ -42,7 +40,6 @@ type Spec struct {
}
func (b *ArgoBuilder) CreateDAG() (string, error) {
fmt.Println("list of branches : ", b.branches)
b.createTemplates()
b.createDAGstep()
@@ -52,7 +49,7 @@ func (b *ArgoBuilder) CreateDAG() (string, error) {
b.Workflow.ApiVersion = "argoproj.io/v1alpha1"
b.Workflow.Kind = "Workflow"
random_name := generateWfName()
b.Workflow.Metadata.GenerateName = "oc-test-" + random_name
b.Workflow.Metadata.GenerateName = "oc-monitor-" + random_name
yamlified, err := yaml.Marshal(b.Workflow)
if err != nil {
@@ -147,21 +144,15 @@ func (b *ArgoBuilder) createVolumes() {
}
func (b *ArgoBuilder) getDependency(current_computing_id string) (dependencies []string) {
var dependencies_id []string
for _, link := range b.graph.Links {
source := b.graph.Items[link.Source.ID].Processing // Instead of searching for the AbstractResource we load the Processing pointer and test if it's nil to know if the item is a processing
if current_computing_id == link.Destination.ID && source != nil && !slices.Contains(dependencies_id, link.Source.ID) {
dependencies_id = append(dependencies_id, link.Source.ID)
source := b.graph.Items[link.Source.ID].Processing
if current_computing_id == link.Destination.ID && source != nil {
dependency_name := getArgoName(source.GetName(), link.Source.ID)
dependencies = append(dependencies, dependency_name)
}
}
for _, dependency := range dependencies_id {
source := b.graph.Items[dependency].Processing
dependency_name := getArgoName(source.GetName(), dependency)
dependencies = append(dependencies, dependency_name)
}
return
}
@@ -217,9 +208,7 @@ func getComputingArgs(user_input []string, command string) (list_args []string)
return
}
for _, arg := range user_input {
list_args = append(list_args, arg)
}
list_args = append(list_args, user_input...)
return
}
@@ -312,4 +301,5 @@ func getStringValue(comp resource_model.AbstractResource, key string) string {
return res.(string)
}
return ""
}
}