Ocean/ICCC/InitDB.go
Thorsten Sommer f33f7b5c29 Refactoring, Bugfix & Updates
+ Refactored all imports
+ Fixed a bug for the logging regarding removing \n \t \r
+ Updated to current MGO release
+ Changed the name of ICCC
2014-10-19 19:19:11 +02:00

61 lines
2.0 KiB
Go

package ICCC
import (
"github.com/SommerEngineering/Ocean/CustomerDB"
"github.com/SommerEngineering/Ocean/Log"
LM "github.com/SommerEngineering/Ocean/Log/Meta"
"gopkg.in/mgo.v2"
)
func initDB() {
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Start init of the ICCC collections.`)
defer Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Done init the ICCC collection.`)
// Get the database:
dbSession, db = CustomerDB.DB()
if db == nil {
Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityCritical, LM.ImpactCritical, LM.MessageNameDATABASE, `Was not able to get the customer database.`)
return
}
// Get my collections:
collectionListener = db.C(`ICCCListener`)
collectionHosts = db.C(`ICCCHosts`)
// Take care about the indexes for ICCCListener:
collectionListener.EnsureIndexKey(`Command`)
collectionListener.EnsureIndexKey(`Command`, `IsActive`)
collectionListener.EnsureIndexKey(`Command`, `Channel`)
collectionListener.EnsureIndexKey(`Command`, `Channel`, `IsActive`)
collectionListener.EnsureIndexKey(`Channel`)
collectionListener.EnsureIndexKey(`Channel`, `IsActive`)
collectionListener.EnsureIndexKey(`Channel`, `Command`, `IPAddressPort`, `IsActive`)
collectionListener.EnsureIndexKey(`Channel`, `Command`, `IsActive`)
collectionListener.EnsureIndexKey(`IsActive`)
collectionListener.EnsureIndexKey(`IsActive`, `IPAddressPort`)
collectionListener.EnsureIndexKey(`IPAddressPort`)
indexName1 := mgo.Index{}
indexName1.Key = []string{`Channel`, `Command`, `IPAddressPort`}
indexName1.Unique = true
collectionListener.EnsureIndex(indexName1)
// Index for hosts:
collectionHosts.EnsureIndexKey(`Hostname`, `IPAddressPort`)
indexName2 := mgo.Index{}
indexName2.Key = []string{`Hostname`}
indexName2.Unique = true
collectionHosts.EnsureIndex(indexName2)
indexName3 := mgo.Index{}
indexName3.Key = []string{`IPAddressPort`}
indexName3.Unique = true
collectionHosts.EnsureIndex(indexName3)
}