@@ -6,28 +6,46 @@ import (
6
6
types "github.com/accuknox/auto-policy-discovery/src/types"
7
7
)
8
8
9
- func convertWPFSToObservabilityData (wpfsSet map [types.WorkloadProcessFileSet ][]string , policyNames []string ) []types.SysObsProcessFileData {
9
+ func addStrToArrIfNotDuplicate (strArr []string , value string ) []string {
10
+
11
+ for _ , str := range strArr {
12
+ if str == value {
13
+ return strArr
14
+ }
15
+ }
16
+
17
+ strArr = append (strArr , value )
18
+ return strArr
19
+ }
20
+
21
+ func convertWPFSToObservabilityData (wpfsSet map [types.WorkloadProcessFileSet ][]string , policyNames []string ) types.SysObservabilityData {
10
22
if len (wpfsSet ) != len (policyNames ) {
11
23
log .Error ().Msgf ("len(wpfsSet):%d != len(policyNames):%d" , len (wpfsSet ), len (policyNames ))
12
- return nil
24
+ return types. SysObservabilityData {}
13
25
}
14
26
15
- var sysObsProcessFileData [] types.SysObsProcessFileData
27
+ var sysObsObservabilityData types.SysObservabilityData
16
28
17
29
for wpfs , fsset := range wpfsSet {
18
30
var locSysObsProcessFileData types.SysObsProcessFileData
19
31
32
+ sysObsObservabilityData .ClusterName = addStrToArrIfNotDuplicate (sysObsObservabilityData .ClusterName , wpfs .ClusterName )
33
+ sysObsObservabilityData .ContainerName = addStrToArrIfNotDuplicate (sysObsObservabilityData .ContainerName , wpfs .ContainerName )
34
+ sysObsObservabilityData .Namespace = addStrToArrIfNotDuplicate (sysObsObservabilityData .Namespace , wpfs .Namespace )
35
+ sysObsObservabilityData .Labels = addStrToArrIfNotDuplicate (sysObsObservabilityData .Labels , wpfs .Labels )
36
+
20
37
locSysObsProcessFileData .FromSource = wpfs .FromSource
21
38
if wpfs .SetType == SYS_OP_PROCESS {
22
39
locSysObsProcessFileData .ProcessPaths = append (locSysObsProcessFileData .ProcessPaths , fsset ... )
23
40
}
24
41
if wpfs .SetType == SYS_OP_FILE {
25
42
locSysObsProcessFileData .FilePaths = append (locSysObsProcessFileData .FilePaths , fsset ... )
26
43
}
27
- sysObsProcessFileData = append (sysObsProcessFileData , locSysObsProcessFileData )
44
+
45
+ sysObsObservabilityData .SysProcessFileData = append (sysObsObservabilityData .SysProcessFileData , locSysObsProcessFileData )
28
46
}
29
47
30
- return sysObsProcessFileData
48
+ return sysObsObservabilityData
31
49
}
32
50
33
51
func convertSysObsDataToResponse (obsData types.SysObservabilityData ) opb.SysObsResponse {
@@ -54,22 +72,16 @@ func convertSysObsDataToResponse(obsData types.SysObservabilityData) opb.SysObsR
54
72
func GetSystemObsData (clusterName string , containerName string , namespace string , labels string ) (opb.SysObsResponse , error ) {
55
73
56
74
sysObsData := types.SysObservabilityData {}
57
-
58
75
wpfs := types.WorkloadProcessFileSet {}
76
+
59
77
wpfs .ClusterName = clusterName
60
78
wpfs .ContainerName = containerName
61
79
wpfs .Namespace = namespace
62
80
wpfs .Labels = labels
63
81
64
82
res , policyNames , _ := libs .GetWorkloadProcessFileSet (CfgDB , wpfs )
65
83
66
- sysObsProcessFileData := convertWPFSToObservabilityData (res , policyNames )
67
-
68
- sysObsData .ClusterName = clusterName
69
- sysObsData .ContainerName = containerName
70
- sysObsData .Labels = labels
71
- sysObsData .Namespace = namespace
72
- sysObsData .SysProcessFileData = sysObsProcessFileData
84
+ sysObsData = convertWPFSToObservabilityData (res , policyNames )
73
85
74
86
// Write Observability data to json file
75
87
libs .WriteSysObsDataToJsonFile (sysObsData )
0 commit comments