@@ -39,17 +39,28 @@ def mutateKubernetesResults(self, results, report, k8_file=None, k8_file_path=No
39
39
else :
40
40
kustomizeResourceID = "Unknown error. This is a bug."
41
41
42
+ code_lines = entity_context .get ("code_lines" )
43
+ file_line_range = self .line_range (code_lines )
42
44
record = Record (
43
45
check_id = check .id , bc_check_id = check .bc_id , check_name = check .name ,
44
- check_result = check_result , code_block = entity_context . get ( " code_lines" ) , file_path = realKustomizeEnvMetadata ['filePath' ],
45
- file_line_range = [ 0 , 0 ] ,
46
+ check_result = check_result , code_block = code_lines , file_path = realKustomizeEnvMetadata ['filePath' ],
47
+ file_line_range = file_line_range ,
46
48
resource = kustomizeResourceID , evaluations = variable_evaluations ,
47
49
check_class = check .__class__ .__module__ , file_abs_path = realKustomizeEnvMetadata ['filePath' ], severity = check .bc_severity )
48
50
record .set_guideline (check .guideline )
49
51
report .add_record (record = record )
50
52
51
53
return report
52
54
55
+ def line_range (self , code_lines ):
56
+ num_of_lines = len (code_lines )
57
+ file_line_range = [0 , 0 ]
58
+ if num_of_lines > 0 :
59
+ first_line , code = code_lines [0 ]
60
+ last_line , code = code_lines [num_of_lines - 1 ]
61
+ file_line_range = [first_line , last_line ]
62
+ return file_line_range
63
+
53
64
def mutateKubernetesGraphResults (self , root_folder : str , runner_filter : RunnerFilter , report : Report , checks_results , reportMutatorData = None ) -> Report :
54
65
# Moves report generation logic out of run() method in Runner class.
55
66
# Allows function overriding of a much smaller function than run() for other "child" frameworks such as Kustomize, Helm
@@ -73,14 +84,16 @@ def mutateKubernetesGraphResults(self, root_folder: str, runner_filter: RunnerFi
73
84
kustomizeResourceID = f'{ realKustomizeEnvMetadata ["type" ]} :{ entity_id } '
74
85
else :
75
86
kustomizeResourceID = "Unknown error. This is a bug."
87
+ code_lines = entity_context .get ("code_lines" )
88
+ file_line_range = self .line_range (code_lines )
76
89
77
90
record = Record (
78
91
check_id = check .id ,
79
92
check_name = check .name ,
80
93
check_result = check_result ,
81
94
code_block = entity_context .get ("code_lines" ),
82
95
file_path = realKustomizeEnvMetadata ['filePath' ],
83
- file_line_range = [ 0 , 0 ] ,
96
+ file_line_range = file_line_range ,
84
97
resource = kustomizeResourceID , # entity.get(CustomAttributes.ID),
85
98
evaluations = {},
86
99
check_class = check .__class__ .__module__ ,
@@ -408,17 +421,3 @@ def _curWriterValidateStoreMapAndClose(self, cur_writer, FilePath):
408
421
409
422
except IsADirectoryError :
410
423
pass
411
-
412
- def find_lines (node , kv ):
413
- if isinstance (node , str ):
414
- return node
415
- if isinstance (node , list ):
416
- for i in node :
417
- for x in find_lines (i , kv ):
418
- yield x
419
- elif isinstance (node , dict ):
420
- if kv in node :
421
- yield node [kv ]
422
- for j in node .values ():
423
- for x in find_lines (j , kv ):
424
- yield x
0 commit comments