Skip to content

Commit a05acb6

Browse files
committedFeb 1, 2022
Modified output json format
Signed-off-by: Eswar Rajan Subramanian <eswar@accuknox.com>
1 parent d91dbe2 commit a05acb6

File tree

4 files changed

+49
-37
lines changed

4 files changed

+49
-37
lines changed
 

‎src/protobuf/v1/observability/observability.pb.go

+16-16
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/protobuf/v1/observability/observability.proto

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ message SysObsData {
1616
}
1717

1818
message SysObsResponse {
19-
string ClusterName = 1;
20-
string ContainerName = 2;
21-
string Namespace = 3;
22-
string Labels = 4;
19+
repeated string ClusterName = 1;
20+
repeated string ContainerName = 2;
21+
repeated string Namespace = 3;
22+
repeated string Labels = 4;
2323
repeated SysProcessFileData ProcessFiles = 5;
2424
}
2525

‎src/systempolicy/observability.go

+25-13
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,46 @@ import (
66
types "github.com/accuknox/auto-policy-discovery/src/types"
77
)
88

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 {
1022
if len(wpfsSet) != len(policyNames) {
1123
log.Error().Msgf("len(wpfsSet):%d != len(policyNames):%d", len(wpfsSet), len(policyNames))
12-
return nil
24+
return types.SysObservabilityData{}
1325
}
1426

15-
var sysObsProcessFileData []types.SysObsProcessFileData
27+
var sysObsObservabilityData types.SysObservabilityData
1628

1729
for wpfs, fsset := range wpfsSet {
1830
var locSysObsProcessFileData types.SysObsProcessFileData
1931

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+
2037
locSysObsProcessFileData.FromSource = wpfs.FromSource
2138
if wpfs.SetType == SYS_OP_PROCESS {
2239
locSysObsProcessFileData.ProcessPaths = append(locSysObsProcessFileData.ProcessPaths, fsset...)
2340
}
2441
if wpfs.SetType == SYS_OP_FILE {
2542
locSysObsProcessFileData.FilePaths = append(locSysObsProcessFileData.FilePaths, fsset...)
2643
}
27-
sysObsProcessFileData = append(sysObsProcessFileData, locSysObsProcessFileData)
44+
45+
sysObsObservabilityData.SysProcessFileData = append(sysObsObservabilityData.SysProcessFileData, locSysObsProcessFileData)
2846
}
2947

30-
return sysObsProcessFileData
48+
return sysObsObservabilityData
3149
}
3250

3351
func convertSysObsDataToResponse(obsData types.SysObservabilityData) opb.SysObsResponse {
@@ -54,22 +72,16 @@ func convertSysObsDataToResponse(obsData types.SysObservabilityData) opb.SysObsR
5472
func GetSystemObsData(clusterName string, containerName string, namespace string, labels string) (opb.SysObsResponse, error) {
5573

5674
sysObsData := types.SysObservabilityData{}
57-
5875
wpfs := types.WorkloadProcessFileSet{}
76+
5977
wpfs.ClusterName = clusterName
6078
wpfs.ContainerName = containerName
6179
wpfs.Namespace = namespace
6280
wpfs.Labels = labels
6381

6482
res, policyNames, _ := libs.GetWorkloadProcessFileSet(CfgDB, wpfs)
6583

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)
7385

7486
// Write Observability data to json file
7587
libs.WriteSysObsDataToJsonFile(sysObsData)

‎src/types/observabilityData.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ type SysObsProcessFileData struct {
77
}
88

99
type SysObservabilityData struct {
10-
ClusterName string `json:"clustername,omitempty"`
11-
ContainerName string `json:"containername,omitempty"`
12-
Namespace string `json:"namespace,omitempty"`
13-
Labels string `json:"labels,omitempty"`
10+
ClusterName []string `json:"clustername,omitempty"`
11+
ContainerName []string `json:"containername,omitempty"`
12+
Namespace []string `json:"namespace,omitempty"`
13+
Labels []string `json:"labels,omitempty"`
1414
SysProcessFileData []SysObsProcessFileData `json:"process-files,omitempty"`
1515
}

0 commit comments

Comments
 (0)
Please sign in to comment.