Add various customvars

This commit is contained in:
Noah Hilverling 2019-07-17 15:45:53 +02:00
parent f6c07111d3
commit 827a748ab8
6 changed files with 363 additions and 1 deletions

View file

@ -0,0 +1,69 @@
package hostgroupcustomvar
import (
"git.icinga.com/icingadb/icingadb-main/configobject"
"git.icinga.com/icingadb/icingadb-main/connection"
"git.icinga.com/icingadb/icingadb-main/utils"
)
var (
ObjectInformation configobject.ObjectInformation
Fields = []string{
"id",
"hostgroup_id",
"customvar_id",
"env_id",
}
)
type HostgroupCustomvar struct {
Id string `json:"id"`
HostgroupId string `json:"object_id"`
CustomvarId string `json:"customvar_id"`
EnvId string `json:"env_id"`
}
func NewHostgroupCustomvar() connection.Row {
c := HostgroupCustomvar{}
return &c
}
func (c *HostgroupCustomvar) InsertValues() []interface{} {
v := c.UpdateValues()
return append([]interface{}{utils.Checksum(c.Id)}, v...)
}
func (c *HostgroupCustomvar) UpdateValues() []interface{} {
v := make([]interface{}, 0)
v = append(
v,
utils.Checksum(c.HostgroupId),
utils.Checksum(c.CustomvarId),
utils.Checksum(c.EnvId),
)
return v
}
func (c *HostgroupCustomvar) GetId() string {
return c.Id
}
func (c *HostgroupCustomvar) SetId(id string) {
c.Id = id
}
func init() {
name := "hostgroup_customvar"
ObjectInformation = configobject.ObjectInformation{
ObjectType: name,
RedisKey: "hostgroup:customvar",
Factory: NewHostgroupCustomvar,
HasChecksum: false,
BulkInsertStmt: connection.NewBulkInsertStmt(name, Fields),
BulkDeleteStmt: connection.NewBulkDeleteStmt(name),
BulkUpdateStmt: connection.NewBulkUpdateStmt(name, Fields),
}
}

View file

@ -0,0 +1,69 @@
package servicecustomvar
import (
"git.icinga.com/icingadb/icingadb-main/configobject"
"git.icinga.com/icingadb/icingadb-main/connection"
"git.icinga.com/icingadb/icingadb-main/utils"
)
var (
ObjectInformation configobject.ObjectInformation
Fields = []string{
"id",
"service_id",
"customvar_id",
"env_id",
}
)
type ServiceCustomvar struct {
Id string `json:"id"`
ServiceId string `json:"object_id"`
CustomvarId string `json:"customvar_id"`
EnvId string `json:"env_id"`
}
func NewServiceCustomvar() connection.Row {
c := ServiceCustomvar{}
return &c
}
func (c *ServiceCustomvar) InsertValues() []interface{} {
v := c.UpdateValues()
return append([]interface{}{utils.Checksum(c.Id)}, v...)
}
func (c *ServiceCustomvar) UpdateValues() []interface{} {
v := make([]interface{}, 0)
v = append(
v,
utils.Checksum(c.ServiceId),
utils.Checksum(c.CustomvarId),
utils.Checksum(c.EnvId),
)
return v
}
func (c *ServiceCustomvar) GetId() string {
return c.Id
}
func (c *ServiceCustomvar) SetId(id string) {
c.Id = id
}
func init() {
name := "service_customvar"
ObjectInformation = configobject.ObjectInformation{
ObjectType: name,
RedisKey: "service:customvar",
Factory: NewServiceCustomvar,
HasChecksum: false,
BulkInsertStmt: connection.NewBulkInsertStmt(name, Fields),
BulkDeleteStmt: connection.NewBulkDeleteStmt(name),
BulkUpdateStmt: connection.NewBulkUpdateStmt(name, Fields),
}
}

View file

@ -0,0 +1,69 @@
package servicegroupcustomvar
import (
"git.icinga.com/icingadb/icingadb-main/configobject"
"git.icinga.com/icingadb/icingadb-main/connection"
"git.icinga.com/icingadb/icingadb-main/utils"
)
var (
ObjectInformation configobject.ObjectInformation
Fields = []string{
"id",
"servicegroup_id",
"customvar_id",
"env_id",
}
)
type ServicegroupCustomvar struct {
Id string `json:"id"`
ServicegroupId string `json:"object_id"`
CustomvarId string `json:"customvar_id"`
EnvId string `json:"env_id"`
}
func NewServicegroupCustomvar() connection.Row {
c := ServicegroupCustomvar{}
return &c
}
func (c *ServicegroupCustomvar) InsertValues() []interface{} {
v := c.UpdateValues()
return append([]interface{}{utils.Checksum(c.Id)}, v...)
}
func (c *ServicegroupCustomvar) UpdateValues() []interface{} {
v := make([]interface{}, 0)
v = append(
v,
utils.Checksum(c.ServicegroupId),
utils.Checksum(c.CustomvarId),
utils.Checksum(c.EnvId),
)
return v
}
func (c *ServicegroupCustomvar) GetId() string {
return c.Id
}
func (c *ServicegroupCustomvar) SetId(id string) {
c.Id = id
}
func init() {
name := "servicegroup_customvar"
ObjectInformation = configobject.ObjectInformation{
ObjectType: name,
RedisKey: "servicegroup:customvar",
Factory: NewServicegroupCustomvar,
HasChecksum: false,
BulkInsertStmt: connection.NewBulkInsertStmt(name, Fields),
BulkDeleteStmt: connection.NewBulkDeleteStmt(name),
BulkUpdateStmt: connection.NewBulkUpdateStmt(name, Fields),
}
}

View file

@ -0,0 +1,69 @@
package usercustomvar
import (
"git.icinga.com/icingadb/icingadb-main/configobject"
"git.icinga.com/icingadb/icingadb-main/connection"
"git.icinga.com/icingadb/icingadb-main/utils"
)
var (
ObjectInformation configobject.ObjectInformation
Fields = []string{
"id",
"user_id",
"customvar_id",
"env_id",
}
)
type UserCustomvar struct {
Id string `json:"id"`
UserId string `json:"object_id"`
CustomvarId string `json:"customvar_id"`
EnvId string `json:"env_id"`
}
func NewUserCustomvar() connection.Row {
c := UserCustomvar{}
return &c
}
func (c *UserCustomvar) InsertValues() []interface{} {
v := c.UpdateValues()
return append([]interface{}{utils.Checksum(c.Id)}, v...)
}
func (c *UserCustomvar) UpdateValues() []interface{} {
v := make([]interface{}, 0)
v = append(
v,
utils.Checksum(c.UserId),
utils.Checksum(c.CustomvarId),
utils.Checksum(c.EnvId),
)
return v
}
func (c *UserCustomvar) GetId() string {
return c.Id
}
func (c *UserCustomvar) SetId(id string) {
c.Id = id
}
func init() {
name := "user_customvar"
ObjectInformation = configobject.ObjectInformation{
ObjectType: name,
RedisKey: "user:customvar",
Factory: NewUserCustomvar,
HasChecksum: false,
BulkInsertStmt: connection.NewBulkInsertStmt(name, Fields),
BulkDeleteStmt: connection.NewBulkDeleteStmt(name),
BulkUpdateStmt: connection.NewBulkUpdateStmt(name, Fields),
}
}

View file

@ -0,0 +1,69 @@
package usergroupcustomvar
import (
"git.icinga.com/icingadb/icingadb-main/configobject"
"git.icinga.com/icingadb/icingadb-main/connection"
"git.icinga.com/icingadb/icingadb-main/utils"
)
var (
ObjectInformation configobject.ObjectInformation
Fields = []string{
"id",
"usergroup_id",
"customvar_id",
"env_id",
}
)
type UsergroupCustomvar struct {
Id string `json:"id"`
UsergroupId string `json:"object_id"`
CustomvarId string `json:"customvar_id"`
EnvId string `json:"env_id"`
}
func NewUsergroupCustomvar() connection.Row {
c := UsergroupCustomvar{}
return &c
}
func (c *UsergroupCustomvar) InsertValues() []interface{} {
v := c.UpdateValues()
return append([]interface{}{utils.Checksum(c.Id)}, v...)
}
func (c *UsergroupCustomvar) UpdateValues() []interface{} {
v := make([]interface{}, 0)
v = append(
v,
utils.Checksum(c.UsergroupId),
utils.Checksum(c.CustomvarId),
utils.Checksum(c.EnvId),
)
return v
}
func (c *UsergroupCustomvar) GetId() string {
return c.Id
}
func (c *UsergroupCustomvar) SetId(id string) {
c.Id = id
}
func init() {
name := "usergroup_customvar"
ObjectInformation = configobject.ObjectInformation{
ObjectType: name,
RedisKey: "usergroup:customvar",
Factory: NewUsergroupCustomvar,
HasChecksum: false,
BulkInsertStmt: connection.NewBulkInsertStmt(name, Fields),
BulkDeleteStmt: connection.NewBulkDeleteStmt(name),
BulkUpdateStmt: connection.NewBulkUpdateStmt(name, Fields),
}
}

19
main.go
View file

@ -9,10 +9,15 @@ import (
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/host"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/host/hostcustomvar"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/hostgroup"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/hostgroup/hostgroupcustomvar"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/service"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/service/servicecustomvar"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/servicegroup"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/servicegroup/servicegroupcustomvar"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/user"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/user/usercustomvar"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/usergroup"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/usergroup/usergroupcustomvar"
"git.icinga.com/icingadb/icingadb-main/configobject/objecttypes/zone"
"git.icinga.com/icingadb/icingadb-main/configobject/statesync"
"git.icinga.com/icingadb/icingadb-main/connection"
@ -86,12 +91,24 @@ func startConfigSyncOperators(super *supervisor.Supervisor, haInstance *ha.HA) {
objectTypes := []*configobject.ObjectInformation{
&host.ObjectInformation,
&hostcustomvar.ObjectInformation,
&hostgroup.ObjectInformation,
&service.ObjectInformation,
&servicecustomvar.ObjectInformation,
&hostgroup.ObjectInformation,
&hostgroupcustomvar.ObjectInformation,
&servicegroup.ObjectInformation,
&servicegroupcustomvar.ObjectInformation,
&user.ObjectInformation,
&usercustomvar.ObjectInformation,
&usergroup.ObjectInformation,
&usergroupcustomvar.ObjectInformation,
&zone.ObjectInformation,
&endpoint.ObjectInformation,
}