Skip to content

Commit ed3d5c8

Browse files
pubsub fix and refactor
1 parent addb995 commit ed3d5c8

File tree

6 files changed

+43
-35
lines changed

6 files changed

+43
-35
lines changed

App.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func NewApp(Router *api.Router, Logger *zap.SugaredLogger,
3939
}
4040

4141
type ServerConfig struct {
42-
SERVER_HTTP_PORT int `env:"SERVER_HTTP_PORT" envDefault:"8080"`
42+
SERVER_HTTP_PORT int `env:"SERVER_HTTP_PORT" envDefault:"8083"`
4343
}
4444

4545
func (app *App) Start() {

Wire.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ func InitializeApp() (*App, error) {
3737
pubsub.NewNatSubscription,
3838
grafeasService.NewKlarServiceImpl,
3939
wire.Bind(new(grafeasService.GrafeasService), new(*grafeasService.GrafeasServiceImpl)),
40-
pubsub.NewTestPublishImpl,
41-
wire.Bind(new(pubsub.TestPublish), new(*pubsub.TestPublishImpl)),
40+
//pubsub.NewTestPublishImpl,
41+
//wire.Bind(new(pubsub.TestPublish), new(*pubsub.TestPublishImpl)),
4242

4343
clairService.GetClairConfig,
4444
clairService.NewClairServiceImpl,

api/RestHandler.go

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,27 @@ import (
99
"github.com/devtron-labs/image-scanner/pkg/klarService"
1010
"github.com/devtron-labs/image-scanner/pkg/security"
1111
"github.com/devtron-labs/image-scanner/pkg/user"
12-
"github.com/devtron-labs/image-scanner/pubsub"
12+
//"github.com/devtron-labs/image-scanner/pubsub"
1313
"go.uber.org/zap"
1414
"net/http"
1515
"os"
1616
)
1717

1818
type RestHandler interface {
1919
ScanForVulnerability(w http.ResponseWriter, r *http.Request)
20+
ScanForVulnerabilityEvent(scanConfig *common.ImageScanEvent) (*common.ScanEventResponse, error)
2021
}
2122

2223
func NewRestHandlerImpl(logger *zap.SugaredLogger,
23-
testPublish pubsub.TestPublish,
24+
//testPublish pubsub.TestPublish,
2425
grafeasService grafeasService.GrafeasService,
2526
userService user.UserService, imageScanService security.ImageScanService,
2627
klarService klarService.KlarService,
2728
clairService clairService.ClairService,
2829
imageScanConfig *security.ImageScanConfig) *RestHandlerImpl {
2930
return &RestHandlerImpl{
30-
logger: logger,
31-
testPublish: testPublish,
31+
logger: logger,
32+
//testPublish: testPublish,
3233
grafeasService: grafeasService,
3334
userService: userService,
3435
imageScanService: imageScanService,
@@ -39,8 +40,8 @@ func NewRestHandlerImpl(logger *zap.SugaredLogger,
3940
}
4041

4142
type RestHandlerImpl struct {
42-
logger *zap.SugaredLogger
43-
testPublish pubsub.TestPublish
43+
logger *zap.SugaredLogger
44+
//testPublish pubsub.TestPublish
4445
grafeasService grafeasService.GrafeasService
4546
userService user.UserService
4647
imageScanService security.ImageScanService
@@ -76,6 +77,17 @@ func (impl *RestHandlerImpl) ScanForVulnerability(w http.ResponseWriter, r *http
7677
writeJsonResp(w, err, nil, http.StatusBadRequest)
7778
return
7879
}
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+
7991
if scanConfig.UserId == 0 {
8092
scanConfig.UserId = 1 //setting user as system user in case of empty user data
8193
}
@@ -84,45 +96,37 @@ func (impl *RestHandlerImpl) ScanForVulnerability(w http.ResponseWriter, r *http
8496
tool, err := impl.imageScanService.GetActiveTool()
8597
if err != nil {
8698
impl.logger.Errorw("err in image scanning", "err", err)
87-
writeJsonResp(w, err, nil, http.StatusInternalServerError)
88-
return
99+
return nil, err
89100
}
90-
executionHistory, executionHistoryDirPath, err := impl.imageScanService.RegisterScanExecutionHistoryAndState(&scanConfig, tool)
101+
executionHistory, executionHistoryDirPath, err := impl.imageScanService.RegisterScanExecutionHistoryAndState(scanConfig, tool)
91102
if err != nil {
92103
impl.logger.Errorw("service err, RegisterScanExecutionHistoryAndState", "err", err)
93-
writeJsonResp(w, err, nil, http.StatusInternalServerError)
94-
return
104+
return nil, err
95105
}
96106
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)
98108
if err != nil {
99109
impl.logger.Errorw("err in process msg", "err", err)
100-
writeJsonResp(w, err, nil, http.StatusInternalServerError)
101-
return
110+
return nil, err
102111
}
103112
} 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)
105114
if err != nil {
106115
impl.logger.Errorw("err in process msg", "err", err)
107-
writeJsonResp(w, err, nil, http.StatusInternalServerError)
108-
return
116+
return nil, err
109117
}
110118
} else {
111-
err = impl.imageScanService.ScanImage(&scanConfig, tool, executionHistory, executionHistoryDirPath)
119+
err = impl.imageScanService.ScanImage(scanConfig, tool, executionHistory, executionHistoryDirPath)
112120
if err != nil {
113121
impl.logger.Errorw("err in process msg", "err", err)
114-
writeJsonResp(w, err, nil, http.StatusInternalServerError)
115-
return
122+
return nil, err
116123
}
117124
}
118125
//deleting executionDirectoryPath with files as well
119126
err = os.RemoveAll(executionHistoryDirPath)
120127
if err != nil {
121128
impl.logger.Errorw("error in deleting executionHistoryDirectory", "err", err)
122-
writeJsonResp(w, err, nil, http.StatusInternalServerError)
123-
return
129+
return nil, err
124130
}
125-
126-
impl.logger.Debugw("save", "status", result)
127-
writeJsonResp(w, err, result, http.StatusOK)
131+
return result, nil
128132
}

internal/sql/bean/bean.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
)
88

99
const (
10-
ScanOutputDirectory = "/security/devtronimagescan" // This is not configurable due to permissions for devtron-user
10+
ScanOutputDirectory = "/Users/subhashish/tmp/security/devtronimagescan" // This is not configurable due to permissions for devtron-user
1111
NullProcessIndex = -1
1212
JsonOutputFileNameSuffix = "_out.json"
1313
ScannerTypeClairV4 = "CLAIRV4"

pubsub/NatSubscription.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"encoding/json"
55
pubsub1 "github.com/devtron-labs/common-lib/pubsub-lib"
66
"github.com/devtron-labs/common-lib/pubsub-lib/model"
7+
"github.com/devtron-labs/image-scanner/api"
78
"github.com/devtron-labs/image-scanner/common"
89
"github.com/devtron-labs/image-scanner/pkg/clairService"
910
"go.uber.org/zap"
@@ -17,15 +18,18 @@ type NatSubscriptionImpl struct {
1718
pubSubClient *pubsub1.PubSubClientServiceImpl
1819
logger *zap.SugaredLogger
1920
clairService clairService.ClairService
21+
restHandler *api.RestHandlerImpl
2022
}
2123

2224
func NewNatSubscription(pubSubClient *pubsub1.PubSubClientServiceImpl,
2325
logger *zap.SugaredLogger,
24-
clairService clairService.ClairService) (*NatSubscriptionImpl, error) {
26+
clairService clairService.ClairService,
27+
restHandler *api.RestHandlerImpl) (*NatSubscriptionImpl, error) {
2528
ns := &NatSubscriptionImpl{
2629
pubSubClient: pubSubClient,
2730
logger: logger,
2831
clairService: clairService,
32+
restHandler: restHandler,
2933
}
3034
return ns, ns.Subscribe()
3135
}
@@ -44,7 +48,8 @@ func (impl *NatSubscriptionImpl) Subscribe() error {
4448
// NOTE: This is not being used, thats why not updated the call
4549
// TODO: Will have to update if any usage in future
4650
// scanConfig.Image = "quay.io/coreos/clair:v2.0.0"
47-
_, err = impl.clairService.ScanImage(scanConfig, nil, nil)
51+
_, err = impl.restHandler.ScanForVulnerabilityEvent(scanConfig)
52+
//_, err = impl.clairService.ScanImage(scanConfig, nil, nil)
4853
if err != nil {
4954
impl.logger.Infow("err in process msg", "err", err)
5055
return

wire_gen.go

Lines changed: 3 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)