@@ -9,26 +9,27 @@ import (
9
9
"github.com/devtron-labs/image-scanner/pkg/klarService"
10
10
"github.com/devtron-labs/image-scanner/pkg/security"
11
11
"github.com/devtron-labs/image-scanner/pkg/user"
12
- "github.com/devtron-labs/image-scanner/pubsub"
12
+ // "github.com/devtron-labs/image-scanner/pubsub"
13
13
"go.uber.org/zap"
14
14
"net/http"
15
15
"os"
16
16
)
17
17
18
18
type RestHandler interface {
19
19
ScanForVulnerability (w http.ResponseWriter , r * http.Request )
20
+ ScanForVulnerabilityEvent (scanConfig * common.ImageScanEvent ) (* common.ScanEventResponse , error )
20
21
}
21
22
22
23
func NewRestHandlerImpl (logger * zap.SugaredLogger ,
23
- testPublish pubsub.TestPublish ,
24
+ // testPublish pubsub.TestPublish,
24
25
grafeasService grafeasService.GrafeasService ,
25
26
userService user.UserService , imageScanService security.ImageScanService ,
26
27
klarService klarService.KlarService ,
27
28
clairService clairService.ClairService ,
28
29
imageScanConfig * security.ImageScanConfig ) * RestHandlerImpl {
29
30
return & RestHandlerImpl {
30
- logger : logger ,
31
- testPublish : testPublish ,
31
+ logger : logger ,
32
+ // testPublish: testPublish,
32
33
grafeasService : grafeasService ,
33
34
userService : userService ,
34
35
imageScanService : imageScanService ,
@@ -39,8 +40,8 @@ func NewRestHandlerImpl(logger *zap.SugaredLogger,
39
40
}
40
41
41
42
type RestHandlerImpl struct {
42
- logger * zap.SugaredLogger
43
- testPublish pubsub.TestPublish
43
+ logger * zap.SugaredLogger
44
+ // testPublish pubsub.TestPublish
44
45
grafeasService grafeasService.GrafeasService
45
46
userService user.UserService
46
47
imageScanService security.ImageScanService
@@ -76,6 +77,17 @@ func (impl *RestHandlerImpl) ScanForVulnerability(w http.ResponseWriter, r *http
76
77
writeJsonResp (w , err , nil , http .StatusBadRequest )
77
78
return
78
79
}
80
+ result , err := impl .ScanForVulnerabilityEvent (& scanConfig )
81
+ if err != nil {
82
+ writeJsonResp (w , err , nil , http .StatusInternalServerError )
83
+ return
84
+ }
85
+ impl .logger .Debugw ("save" , "status" , result )
86
+ writeJsonResp (w , err , result , http .StatusOK )
87
+ }
88
+
89
+ func (impl * RestHandlerImpl ) ScanForVulnerabilityEvent (scanConfig * common.ImageScanEvent ) (* common.ScanEventResponse , error ) {
90
+
79
91
if scanConfig .UserId == 0 {
80
92
scanConfig .UserId = 1 //setting user as system user in case of empty user data
81
93
}
@@ -84,45 +96,37 @@ func (impl *RestHandlerImpl) ScanForVulnerability(w http.ResponseWriter, r *http
84
96
tool , err := impl .imageScanService .GetActiveTool ()
85
97
if err != nil {
86
98
impl .logger .Errorw ("err in image scanning" , "err" , err )
87
- writeJsonResp (w , err , nil , http .StatusInternalServerError )
88
- return
99
+ return nil , err
89
100
}
90
- executionHistory , executionHistoryDirPath , err := impl .imageScanService .RegisterScanExecutionHistoryAndState (& scanConfig , tool )
101
+ executionHistory , executionHistoryDirPath , err := impl .imageScanService .RegisterScanExecutionHistoryAndState (scanConfig , tool )
91
102
if err != nil {
92
103
impl .logger .Errorw ("service err, RegisterScanExecutionHistoryAndState" , "err" , err )
93
- writeJsonResp (w , err , nil , http .StatusInternalServerError )
94
- return
104
+ return nil , err
95
105
}
96
106
if tool .Name == bean .ScanToolClair && tool .Version == bean .ScanToolVersion2 {
97
- result , err = impl .klarService .Process (& scanConfig , executionHistory )
107
+ result , err = impl .klarService .Process (scanConfig , executionHistory )
98
108
if err != nil {
99
109
impl .logger .Errorw ("err in process msg" , "err" , err )
100
- writeJsonResp (w , err , nil , http .StatusInternalServerError )
101
- return
110
+ return nil , err
102
111
}
103
112
} else if tool .Name == bean .ScanToolClair && tool .Version == bean .ScanToolVersion4 {
104
- result , err = impl .clairService .ScanImage (& scanConfig , tool , executionHistory )
113
+ result , err = impl .clairService .ScanImage (scanConfig , tool , executionHistory )
105
114
if err != nil {
106
115
impl .logger .Errorw ("err in process msg" , "err" , err )
107
- writeJsonResp (w , err , nil , http .StatusInternalServerError )
108
- return
116
+ return nil , err
109
117
}
110
118
} else {
111
- err = impl .imageScanService .ScanImage (& scanConfig , tool , executionHistory , executionHistoryDirPath )
119
+ err = impl .imageScanService .ScanImage (scanConfig , tool , executionHistory , executionHistoryDirPath )
112
120
if err != nil {
113
121
impl .logger .Errorw ("err in process msg" , "err" , err )
114
- writeJsonResp (w , err , nil , http .StatusInternalServerError )
115
- return
122
+ return nil , err
116
123
}
117
124
}
118
125
//deleting executionDirectoryPath with files as well
119
126
err = os .RemoveAll (executionHistoryDirPath )
120
127
if err != nil {
121
128
impl .logger .Errorw ("error in deleting executionHistoryDirectory" , "err" , err )
122
- writeJsonResp (w , err , nil , http .StatusInternalServerError )
123
- return
129
+ return nil , err
124
130
}
125
-
126
- impl .logger .Debugw ("save" , "status" , result )
127
- writeJsonResp (w , err , result , http .StatusOK )
131
+ return result , nil
128
132
}
0 commit comments