No scan all policy if Clair is not installed.

This commit fixes #5283 by not registering scan all policy when Harbor
is not deployed with Clair.
This commit is contained in:
Daniel Jiang 2018-07-25 18:34:55 +08:00
parent 9fba539bd4
commit 97fb67f835

View File

@ -95,15 +95,6 @@ func main() {
if err := dao.InitDatabase(database); err != nil { if err := dao.InitDatabase(database); err != nil {
log.Fatalf("failed to initialize database: %v", err) log.Fatalf("failed to initialize database: %v", err)
} }
if config.WithClair() {
clairDB, err := config.ClairDB()
if err != nil {
log.Fatalf("failed to load clair database information: %v", err)
}
if err := dao.InitClairDB(clairDB); err != nil {
log.Fatalf("failed to initialize clair database: %v", err)
}
}
password, err := config.InitialAdminPassword() password, err := config.InitialAdminPassword()
if err != nil { if err != nil {
@ -126,20 +117,29 @@ func main() {
log.Errorf("failed to subscribe scan all policy change topic: %v", err) log.Errorf("failed to subscribe scan all policy change topic: %v", err)
} }
//Get policy configuration. if config.WithClair() {
scanAllPolicy := config.ScanAllPolicy() clairDB, err := config.ClairDB()
if scanAllPolicy.Type == notifier.PolicyTypeDaily { if err != nil {
dailyTime := 0 log.Fatalf("failed to load clair database information: %v", err)
if t, ok := scanAllPolicy.Parm["daily_time"]; ok {
if reflect.TypeOf(t).Kind() == reflect.Int {
dailyTime = t.(int)
}
} }
if err := dao.InitClairDB(clairDB); err != nil {
log.Fatalf("failed to initialize clair database: %v", err)
}
//Get policy configuration.
scanAllPolicy := config.ScanAllPolicy()
if scanAllPolicy.Type == notifier.PolicyTypeDaily {
dailyTime := 0
if t, ok := scanAllPolicy.Parm["daily_time"]; ok {
if reflect.TypeOf(t).Kind() == reflect.Int {
dailyTime = t.(int)
}
}
//Send notification to handle first policy change. //Send notification to handle first policy change.
if err = notifier.Publish(notifier.ScanAllPolicyTopic, if err = notifier.Publish(notifier.ScanAllPolicyTopic,
notifier.ScanPolicyNotification{Type: scanAllPolicy.Type, DailyTime: (int64)(dailyTime)}); err != nil { notifier.ScanPolicyNotification{Type: scanAllPolicy.Type, DailyTime: (int64)(dailyTime)}); err != nil {
log.Errorf("failed to publish scan all policy topic: %v", err) log.Errorf("failed to publish scan all policy topic: %v", err)
}
} }
} }