package ICCC import "labix.org/v2/mgo" import "github.com/SommerEngineering/Ocean/CustomerDB" import "github.com/SommerEngineering/Ocean/Log" import LM "github.com/SommerEngineering/Ocean/Log/Meta" 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: 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) }