Andrea Fazzi пре 5 година
родитељ
комит
1d02bca4e4
3 измењених фајлова са 32 додато и 15 уклоњено
  1. 2 1
      config/config.go
  2. 25 13
      cron/sync/sync.go
  3. 5 1
      main.go

+ 2 - 1
config/config.go

@@ -76,7 +76,8 @@ type ConfigT struct {
 	}
 
 	Sync struct {
-		SafeRun bool `yaml:"safe_run"`
+		Schedule string
+		SafeRun  bool `yaml:"safe_run"`
 	}
 }
 

+ 25 - 13
cron/sync/sync.go

@@ -210,7 +210,9 @@ func (syncJob *SyncJob) syncTeachers(ldapClient *karmen_ldap.Client, karmenClien
 	// Remove
 
 	if !syncJob.conf.Sync.SafeRun {
-		log.Printf("%d will be REMOVED...", len(toBeRemoved))
+		if len(toBeRemoved) > 0 {
+			log.Printf("%d will be REMOVED...", len(toBeRemoved))
+		}
 		for _, entry := range toBeRemoved {
 			err := ldapClient.DeleteByDN(entry)
 			if err != nil {
@@ -219,7 +221,9 @@ func (syncJob *SyncJob) syncTeachers(ldapClient *karmen_ldap.Client, karmenClien
 			log.Printf("REMOVE %s", entry)
 		}
 	} else {
-		log.Printf("%d users WOULD BE removed", len(toBeRemoved))
+		if len(toBeRemoved) > 0 {
+			log.Printf("%d users WOULD BE removed", len(toBeRemoved))
+		}
 		for _, entry := range toBeRemoved {
 			log.Println(entry)
 		}
@@ -228,7 +232,9 @@ func (syncJob *SyncJob) syncTeachers(ldapClient *karmen_ldap.Client, karmenClien
 	// Update
 
 	if !syncJob.conf.Sync.SafeRun {
-		log.Printf("UPDATING %d users", len(toBeUpdated))
+		if len(toBeUpdated) > 0 {
+			log.Printf("UPDATING %d users", len(toBeUpdated))
+		}
 		for _, teacher := range toBeUpdated {
 			if teacher.Regenerate {
 				password, err := password.Generate(8, 2, 0, false, true)
@@ -257,7 +263,9 @@ func (syncJob *SyncJob) syncTeachers(ldapClient *karmen_ldap.Client, karmenClien
 		}
 
 	} else {
-		log.Printf("%d users WOULD BE updated...", len(toBeUpdated))
+		if len(toBeRemoved) > 0 {
+			log.Printf("%d users WOULD BE updated...", len(toBeUpdated))
+		}
 		for _, teacher := range toBeUpdated {
 			log.Println(teacher.CompleteName())
 		}
@@ -299,7 +307,9 @@ func (syncJob *SyncJob) syncGroup(ldapClient *karmen_ldap.Client, groupDN string
 	}
 
 	if !syncJob.conf.Sync.SafeRun {
-		log.Printf("ADDING %d teachers to %s group", len(toBeAdded), groupDN)
+		if len(toBeAdded) > 0 {
+			log.Printf("ADDING %d teachers to %s group", len(toBeAdded), groupDN)
+		}
 		for _, teacher := range toBeAdded {
 			log.Println(teacher.CompleteName())
 			err = ldapClient.AddTeacherToGroup(teacher, groupDN)
@@ -308,24 +318,26 @@ func (syncJob *SyncJob) syncGroup(ldapClient *karmen_ldap.Client, groupDN string
 			}
 		}
 	} else {
-		if len(toBeAdded) == 0 {
-			log.Printf("No users WOULD BE ADDED to %s group", groupDN)
-		} else {
+		if len(toBeAdded) > 0 {
 			log.Printf("%d users WOULD BE ADDED to %s group", len(toBeAdded), groupDN)
-			for _, teacher := range toBeAdded {
-				log.Println(teacher.CompleteName())
-			}
+		}
+		for _, teacher := range toBeAdded {
+			log.Println(teacher.CompleteName())
 		}
 	}
 
 	if !syncJob.conf.Sync.SafeRun {
-		log.Printf("REMOVING %d users from %s group...", len(toBeRemoved), groupDN)
+		if len(toBeRemoved) > 0 {
+			log.Printf("REMOVING %d users from %s group...", len(toBeRemoved), groupDN)
+		}
 		for _, value := range toBeRemoved {
 			log.Printf("REMOVE %s from %s group.", value, groupDN)
 			ldapClient.RemoveTeacherFromGroupByMemberValue(value, groupDN)
 		}
 	} else {
-		log.Printf("%d users WOULD BE REMOVED FROM %s group", len(toBeRemoved), groupDN)
+		if len(toBeRemoved) > 0 {
+			log.Printf("%d users WOULD BE REMOVED FROM %s group", len(toBeRemoved), groupDN)
+		}
 		for _, entry := range toBeRemoved {
 			log.Println(entry)
 		}

+ 5 - 1
main.go

@@ -65,7 +65,11 @@ func main() {
 
 	syncJob := sync.NewSyncJob(config.Config)
 
-	c.AddJob("@every 10m", syncJob)
+	if config.Config.Sync.Schedule == "" {
+		config.Config.Sync.Schedule = "@every 10m"
+	}
+
+	c.AddJob(config.Config.Sync.Schedule, syncJob)
 
 	c.Start()