From 97fb67f835b8ceeb56eb04d72e3e45459b73a8dd Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Wed, 25 Jul 2018 18:34:55 +0800 Subject: [PATCH] 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. --- src/ui/main.go | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/ui/main.go b/src/ui/main.go index 4a4297103..39ee6d368 100644 --- a/src/ui/main.go +++ b/src/ui/main.go @@ -95,15 +95,6 @@ func main() { if err := dao.InitDatabase(database); err != nil { 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() if err != nil { @@ -126,20 +117,29 @@ func main() { log.Errorf("failed to subscribe scan all policy change topic: %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) - } + 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) + } + //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. - if err = notifier.Publish(notifier.ScanAllPolicyTopic, - notifier.ScanPolicyNotification{Type: scanAllPolicy.Type, DailyTime: (int64)(dailyTime)}); err != nil { - log.Errorf("failed to publish scan all policy topic: %v", err) + //Send notification to handle first policy change. + if err = notifier.Publish(notifier.ScanAllPolicyTopic, + notifier.ScanPolicyNotification{Type: scanAllPolicy.Type, DailyTime: (int64)(dailyTime)}); err != nil { + log.Errorf("failed to publish scan all policy topic: %v", err) + } } }