diff --git a/topology/server/service/service.go b/topology/server/service/multihost.go similarity index 66% rename from topology/server/service/service.go rename to topology/server/service/multihost.go index e1d7aa90edb9ead749dfbeee9e4c7e6d5e82abee..3b33231925343ad76020457f4b0dfd370bdc311f 100644 --- a/topology/server/service/service.go +++ b/topology/server/service/multihost.go @@ -2,84 +2,12 @@ package service import ( "fmt" - "strings" "gitee.com/openeuler/PilotGo-plugin-topology-server/meta" "gitee.com/openeuler/PilotGo-plugin-topology-server/processor" "github.com/pkg/errors" ) -func SingleHostService(uuid string) ([]*meta.Node, []*meta.Edge, []error, []error) { - dataprocesser := processor.CreateDataProcesser() - nodes, edges, collect_errlist, process_errlist := dataprocesser.Process_data() - if len(collect_errlist) != 0 || len(process_errlist) != 0 { - for i, cerr := range collect_errlist { - collect_errlist[i] = errors.Wrap(cerr, "**3") - } - - for i, perr := range process_errlist { - process_errlist[i] = errors.Wrap(perr, "**7") - } - } - - single_nodes := []*meta.Node{} - for _, node1 := range nodes.Nodes { - if node1.UUID == uuid { - repeat_node := false - for _, node2 := range single_nodes { - if node2.ID == node1.ID { - repeat_node = true - } - } - - if !repeat_node { - single_nodes = append(single_nodes, node1) - } - } - } - - single_edges := []*meta.Edge{} - for _, edge1 := range edges.Edges { - if strings.Split(edge1.Src, "_")[0] == uuid { - repeat_edge := false - for _, edge2 := range single_edges { - if edge2.ID == edge1.ID { - repeat_edge = true - } - } - - if !repeat_edge { - single_edges = append(single_edges, edge1) - } - } - } - - return single_nodes, single_edges, collect_errlist, process_errlist - // if len(collect_errlist) != 0 && len(process_errlist) != 0 { - // for i, cerr := range collect_errlist { - // collect_errlist[i] = errors.Wrap(cerr, "**3") - // } - - // for i, perr := range process_errlist { - // process_errlist[i] = errors.Wrap(perr, "**7") - // } - - // return nil, nil, collect_errlist, process_errlist - // } else if len(collect_errlist) != 0 && len(process_errlist) == 0 { - // for i, cerr := range collect_errlist { - // collect_errlist[i] = errors.Wrap(cerr, "**3") - // } - - // return nil, nil, collect_errlist, nil - // } else if len(collect_errlist) == 0 && len(process_errlist) != 0 { - // for i, perr := range process_errlist { - // process_errlist[i] = errors.Wrap(perr, "**7") - // } - - // return nil, nil, nil, process_errlist - // } -} - func MultiHostService() ([]*meta.Node, []*meta.Edge, []error, []error) { dataprocesser := processor.CreateDataProcesser() nodes, edges, collect_errlist, process_errlist := dataprocesser.Process_data() @@ -102,9 +30,6 @@ func MultiHostService() ([]*meta.Node, []*meta.Edge, []error, []error) { } } - // ttcode - fmt.Printf("\033[32mhostids\033[0m: %v\n", hostids) - multi_edges := []*meta.Edge{} for _, edge := range edges.Edges { if edge.Type == "tcp" || edge.Type == "udp" { @@ -174,6 +99,19 @@ func MultiHostService() ([]*meta.Node, []*meta.Edge, []error, []error) { multi_edges = append(multi_edges, edge1.(*meta.Edge)) } + // 添加 target process node + target_node := nodes.Lookup[edge1.(*meta.Edge).Dst] + repeat_node := false + for _, node2 := range multi_nodes { + if node2.ID == target_node.ID { + repeat_node = true + } + } + + if !repeat_node { + multi_nodes = append(multi_nodes, target_node) + } + start_nodeid = nodes.Lookup[start_nodeid].UUID + "_process_" + nodes.Lookup[start_nodeid].Metrics["Ppid"] continue @@ -223,6 +161,19 @@ func MultiHostService() ([]*meta.Node, []*meta.Edge, []error, []error) { multi_edges = append(multi_edges, edge_to_host.(*meta.Edge)) } + // 添加 process 1 node + target_node := nodes.Lookup[start_nodeid] + repeat_node := false + for _, node2 := range multi_nodes { + if node2.ID == target_node.ID { + repeat_node = true + } + } + + if !repeat_node { + multi_nodes = append(multi_nodes, target_node) + } + break } diff --git a/topology/server/service/singlehost.go b/topology/server/service/singlehost.go new file mode 100644 index 0000000000000000000000000000000000000000..9d95f6f537c953065688ad81ec93cbe3ac2736f4 --- /dev/null +++ b/topology/server/service/singlehost.go @@ -0,0 +1,80 @@ +package service + +import ( + "strings" + + "gitee.com/openeuler/PilotGo-plugin-topology-server/meta" + "gitee.com/openeuler/PilotGo-plugin-topology-server/processor" + "github.com/pkg/errors" +) + +func SingleHostService(uuid string) ([]*meta.Node, []*meta.Edge, []error, []error) { + dataprocesser := processor.CreateDataProcesser() + nodes, edges, collect_errlist, process_errlist := dataprocesser.Process_data() + if len(collect_errlist) != 0 || len(process_errlist) != 0 { + for i, cerr := range collect_errlist { + collect_errlist[i] = errors.Wrap(cerr, "**3") + } + + for i, perr := range process_errlist { + process_errlist[i] = errors.Wrap(perr, "**7") + } + } + + single_nodes := []*meta.Node{} + for _, node1 := range nodes.Nodes { + if node1.UUID == uuid { + repeat_node := false + for _, node2 := range single_nodes { + if node2.ID == node1.ID { + repeat_node = true + } + } + + if !repeat_node { + single_nodes = append(single_nodes, node1) + } + } + } + + single_edges := []*meta.Edge{} + for _, edge1 := range edges.Edges { + if strings.Split(edge1.Src, "_")[0] == uuid { + repeat_edge := false + for _, edge2 := range single_edges { + if edge2.ID == edge1.ID { + repeat_edge = true + } + } + + if !repeat_edge { + single_edges = append(single_edges, edge1) + } + } + } + + return single_nodes, single_edges, collect_errlist, process_errlist + // if len(collect_errlist) != 0 && len(process_errlist) != 0 { + // for i, cerr := range collect_errlist { + // collect_errlist[i] = errors.Wrap(cerr, "**3") + // } + + // for i, perr := range process_errlist { + // process_errlist[i] = errors.Wrap(perr, "**7") + // } + + // return nil, nil, collect_errlist, process_errlist + // } else if len(collect_errlist) != 0 && len(process_errlist) == 0 { + // for i, cerr := range collect_errlist { + // collect_errlist[i] = errors.Wrap(cerr, "**3") + // } + + // return nil, nil, collect_errlist, nil + // } else if len(collect_errlist) == 0 && len(process_errlist) != 0 { + // for i, perr := range process_errlist { + // process_errlist[i] = errors.Wrap(perr, "**7") + // } + + // return nil, nil, nil, process_errlist + // } +}