control-panel-dns/problems.go

88 lines
1.4 KiB
Go

// this defines the kinds of problems that can be detected
package main
import (
"time"
)
type ProblemType int
type ActionType int
type Problem struct {
kind ProblemType
action ActionType
id int
Name string
desc string
value string
aaaa string
fixed bool
duration time.Duration // how long until you should check to see if it's fixed
born time.Time // when first reported
begun bool // weather or not fixing it has begun
begunTime time.Time // when the attempt to fix the problem happened
begunResult bool // weather or not the attempt worked
}
var IPcreate = Problem{
kind: RR,
action: CREATE,
desc: "This RR entry in the zonefile needs to be removed",
}
/*
var hostname Problem = (
kind: ProblemType.OS,
action: ActionType.CREATE,
Name: "Your /etc/hostname file is incorrect",
fixed: false,
)
*/
const (
OS ProblemType = iota
ETC
RESOLVE
RR
PING
LOOKUP
)
const (
USER ActionType = iota
CREATE
DELETE
)
func (s Problem) String() string {
return s.Name
}
func (s ProblemType) String() string {
switch s {
case OS:
return "OS"
case RR:
return "RR"
default:
return "FIXMEP"
}
return "FIXMEP"
}
func (s ActionType) String() string {
switch s {
case USER:
return "USER"
case CREATE:
return "CREATE"
case DELETE:
return "DELETE"
default:
return "FIXMEA"
}
return "FIXMEA"
}