From 827a748ab8779b2cd85e2ebe18d3199b7bd01e17 Mon Sep 17 00:00:00 2001 From: Noah Hilverling Date: Wed, 17 Jul 2019 15:45:53 +0200 Subject: [PATCH] Add various customvars --- .../hostgroupcustomvar/hostgroupcustomvar.go | 69 +++++++++++++++++++ .../servicecustomvar/servicecustomvar.go | 69 +++++++++++++++++++ .../servicegroupcustomvar.go | 69 +++++++++++++++++++ .../user/usercustomvar/usercustomvar.go | 69 +++++++++++++++++++ .../usergroupcustomvar/usergroupcustomvar.go | 69 +++++++++++++++++++ main.go | 19 ++++- 6 files changed, 363 insertions(+), 1 deletion(-) create mode 100644 configobject/objecttypes/hostgroup/hostgroupcustomvar/hostgroupcustomvar.go create mode 100644 configobject/objecttypes/service/servicecustomvar/servicecustomvar.go create mode 100644 configobject/objecttypes/servicegroup/servicegroupcustomvar/servicegroupcustomvar.go create mode 100644 configobject/objecttypes/user/usercustomvar/usercustomvar.go create mode 100644 configobject/objecttypes/usergroup/usergroupcustomvar/usergroupcustomvar.go diff --git a/configobject/objecttypes/hostgroup/hostgroupcustomvar/hostgroupcustomvar.go b/configobject/objecttypes/hostgroup/hostgroupcustomvar/hostgroupcustomvar.go new file mode 100644 index 00000000..5f92417c --- /dev/null +++ b/configobject/objecttypes/hostgroup/hostgroupcustomvar/hostgroupcustomvar.go @@ -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), + } +} \ No newline at end of file diff --git a/configobject/objecttypes/service/servicecustomvar/servicecustomvar.go b/configobject/objecttypes/service/servicecustomvar/servicecustomvar.go new file mode 100644 index 00000000..460f26b5 --- /dev/null +++ b/configobject/objecttypes/service/servicecustomvar/servicecustomvar.go @@ -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), + } +} \ No newline at end of file diff --git a/configobject/objecttypes/servicegroup/servicegroupcustomvar/servicegroupcustomvar.go b/configobject/objecttypes/servicegroup/servicegroupcustomvar/servicegroupcustomvar.go new file mode 100644 index 00000000..cd6ac18f --- /dev/null +++ b/configobject/objecttypes/servicegroup/servicegroupcustomvar/servicegroupcustomvar.go @@ -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), + } +} \ No newline at end of file diff --git a/configobject/objecttypes/user/usercustomvar/usercustomvar.go b/configobject/objecttypes/user/usercustomvar/usercustomvar.go new file mode 100644 index 00000000..7083cf08 --- /dev/null +++ b/configobject/objecttypes/user/usercustomvar/usercustomvar.go @@ -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), + } +} \ No newline at end of file diff --git a/configobject/objecttypes/usergroup/usergroupcustomvar/usergroupcustomvar.go b/configobject/objecttypes/usergroup/usergroupcustomvar/usergroupcustomvar.go new file mode 100644 index 00000000..c4098454 --- /dev/null +++ b/configobject/objecttypes/usergroup/usergroupcustomvar/usergroupcustomvar.go @@ -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), + } +} \ No newline at end of file diff --git a/main.go b/main.go index c450e3ac..4517125f 100644 --- a/main.go +++ b/main.go @@ -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, }