checker: Add offline mode which assumes student default parameters

This commit is contained in:
nemunaire 2022-03-10 19:40:02 +01:00
commit 55b1af83f0
3 changed files with 30 additions and 10 deletions

View file

@ -560,13 +560,23 @@ func minTunnelVersion(std *adlin.Student, suffixip int) (int, error) {
return minversion, nil
}
func studentChecker(std *adlin.Student, also_check_matrix bool) {
func studentChecker(std *adlin.Student, also_check_matrix bool, offline bool) {
tuns, err := std.GetActivesTunnels()
if err != nil {
if verbose2 {
log.Printf("SKip %s due to error when getting active tunnels: %s", std.Login, err.Error())
if offline {
tuns, err = std.GetDefaultTunnels()
if err != nil {
if verbose {
log.Printf("SKip %s as I'm unable to generate default tunnels: %s", std.Login, err.Error())
}
return
}
} else {
if verbose2 {
log.Printf("SKip %s due to error when getting active tunnels: %s", std.Login, err.Error())
}
return
}
return
}
if verbose2 && len(tuns) == 0 {
log.Printf("%s has no active tunnels: %s", std.Login, err.Error())
@ -585,7 +595,7 @@ func studentChecker(std *adlin.Student, also_check_matrix bool) {
}
std.OnPong(true)
if tunnel_version == 2147483647 || tunnel_version == 0 {
if !offline && (tunnel_version == 2147483647 || tunnel_version == 0) {
log.Printf("%s unknown tunnel version: %d skipping tests (%v)", std.Login, tunnel_version, err)
return
}
@ -809,7 +819,7 @@ func studentChecker(std *adlin.Student, also_check_matrix bool) {
}
}
func studentsChecker() {
func studentsChecker(offline bool) {
students, err := adlin.GetStudents()
if err != nil {
log.Println("Unable to check students:", err)
@ -821,6 +831,6 @@ func studentsChecker() {
for istd, s := range students {
time.Sleep(250 * time.Millisecond)
go studentChecker(s, istd%10 == check_matrix_for)
go studentChecker(s, istd%10 == check_matrix_for, offline)
}
}