mirror of
https://github.com/Icinga/icingadb.git
synced 2026-05-28 04:35:54 -04:00
parent
1a10881081
commit
2d8d01fc2b
2 changed files with 114 additions and 0 deletions
102
configobject/user/user.go
Normal file
102
configobject/user/user.go
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
package user
|
||||
|
||||
import (
|
||||
"git.icinga.com/icingadb/icingadb-main/configobject"
|
||||
"git.icinga.com/icingadb/icingadb-main/connection"
|
||||
"git.icinga.com/icingadb/icingadb-main/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
BulkInsertStmt *connection.BulkInsertStmt
|
||||
BulkDeleteStmt *connection.BulkDeleteStmt
|
||||
BulkUpdateStmt *connection.BulkUpdateStmt
|
||||
Fields = []string{
|
||||
"id",
|
||||
"env_id",
|
||||
"name_checksum",
|
||||
"properties_checksum",
|
||||
"customvars_checksum",
|
||||
"groups_checksum",
|
||||
"name",
|
||||
"name_ci",
|
||||
"display_name",
|
||||
"email",
|
||||
"pager",
|
||||
"notifications_enabled",
|
||||
"period_id",
|
||||
"states",
|
||||
"types",
|
||||
"zone_id",
|
||||
}
|
||||
)
|
||||
|
||||
type User struct {
|
||||
Id string `json:"id"`
|
||||
EnvId string `json:"environment_id"`
|
||||
NameChecksum string `json:"name_checksum"`
|
||||
PropertiesChecksum string `json:"properties_checksum"`
|
||||
CustomvarsChecksum string `json:"customvars_checksum"`
|
||||
GroupsChecksum string `json:"groups_checksum"`
|
||||
Name string `json:"name"`
|
||||
NameCi *string `json:"name_ci"`
|
||||
DisplayName string `json:"display_name"`
|
||||
EMail string `json:"email"`
|
||||
Pager string `json:"pager"`
|
||||
NotificationsEnabled bool `json:"notifications_enabled"`
|
||||
PeriodId string `json:"period_id"`
|
||||
States int `json:"states"`
|
||||
Types int `json:"types"`
|
||||
ZoneId string `json:"zone_id"`
|
||||
}
|
||||
|
||||
func NewUser() configobject.Row {
|
||||
u := User{}
|
||||
u.NameCi = &u.Name
|
||||
|
||||
return &u
|
||||
}
|
||||
|
||||
func (u *User) InsertValues() []interface{} {
|
||||
v := u.UpdateValues()
|
||||
|
||||
return append([]interface{}{utils.Checksum(u.Id)}, v...)
|
||||
}
|
||||
|
||||
func (u *User) UpdateValues() []interface{} {
|
||||
v := make([]interface{}, 0)
|
||||
|
||||
v = append(
|
||||
v,
|
||||
utils.Checksum(u.EnvId),
|
||||
utils.Checksum(u.NameChecksum),
|
||||
utils.Checksum(u.PropertiesChecksum),
|
||||
utils.Checksum(u.CustomvarsChecksum),
|
||||
utils.Checksum(u.GroupsChecksum),
|
||||
u.Name,
|
||||
u.NameCi,
|
||||
u.DisplayName,
|
||||
u.EMail,
|
||||
u.Pager,
|
||||
u.NotificationsEnabled,
|
||||
utils.Checksum(u.PeriodId),
|
||||
u.States,
|
||||
u.Types,
|
||||
utils.Checksum(u.ZoneId),
|
||||
)
|
||||
|
||||
return v
|
||||
}
|
||||
|
||||
func (u *User) GetId() string {
|
||||
return u.Id
|
||||
}
|
||||
|
||||
func (u *User) SetId(id string) {
|
||||
u.Id = id
|
||||
}
|
||||
|
||||
func init() {
|
||||
BulkInsertStmt = connection.NewBulkInsertStmt("user", Fields)
|
||||
BulkDeleteStmt = connection.NewBulkDeleteStmt("user")
|
||||
BulkUpdateStmt = connection.NewBulkUpdateStmt("user", Fields)
|
||||
}
|
||||
12
main.go
12
main.go
|
|
@ -9,6 +9,7 @@ import (
|
|||
"git.icinga.com/icingadb/icingadb-main/configobject/service"
|
||||
"git.icinga.com/icingadb/icingadb-main/configobject/servicegroup"
|
||||
"git.icinga.com/icingadb/icingadb-main/configobject/statesync"
|
||||
"git.icinga.com/icingadb/icingadb-main/configobject/user"
|
||||
"git.icinga.com/icingadb/icingadb-main/connection"
|
||||
"git.icinga.com/icingadb/icingadb-main/ha"
|
||||
"git.icinga.com/icingadb/icingadb-main/jsondecoder"
|
||||
|
|
@ -104,6 +105,17 @@ func main() {
|
|||
})
|
||||
}()
|
||||
|
||||
chHAUser := haInstance.RegisterNotificationListener()
|
||||
go func() {
|
||||
super.ChErr <- configsync.Operator(&super, chHAUser, &configsync.Context{
|
||||
ObjectType: "user",
|
||||
Factory: user.NewUser,
|
||||
InsertStmt: user.BulkInsertStmt,
|
||||
DeleteStmt: user.BulkDeleteStmt,
|
||||
UpdateStmt: user.BulkUpdateStmt,
|
||||
})
|
||||
}()
|
||||
|
||||
statesync.StartStateSync(&super)
|
||||
|
||||
go prometheus.HandleHttp("0.0.0.0:8080", super.ChErr)
|
||||
|
|
|
|||
Loading…
Reference in a new issue