llconsolidate/dbs.go

84 lines
1.9 KiB
Go
Raw Normal View History

2015-11-20 17:11:36 +01:00
// dbs
package main
import (
"log"
"os"
"time"
2016-04-15 15:28:52 +02:00
"gopkg.in/mgo.v2"
2015-11-20 17:11:36 +01:00
)
type Dbs struct {
mdbSrc *mgo.Session
mdbDst *mgo.Session
ll *mgo.Collection
lc *mgo.Collection
2016-04-15 15:28:52 +02:00
bulk *mgo.Bulk
}
2015-11-20 17:11:36 +01:00
type LastLogin struct {
User string `json: "user" bson:"user"`
Protocol string `json: "protocol" bson:"protocol"`
IP string `json: "ip" bson:"ip"`
Date time.Time `json: "date" bson:"date"`
ID string `json: "_id" bson:"_id"`
2015-11-20 17:11:36 +01:00
}
type LastLoginDay struct {
User string `json:"user" bson:"user"`
Date time.Time `json:"date" bson:"date"`
Protocols Protocols `json:"protocols" bson:"protocols"`
IPs []IPs `json:"ips" bson:"ips"`
2015-11-20 17:11:36 +01:00
}
type IPs struct {
IP string `json:"ip" bson:"ip"`
Date time.Time `json:"date" bson:"date"`
Protocol string `json:"protocol" bson:"protocol"`
2015-11-20 17:11:36 +01:00
}
type Protocols struct {
Pop int `json:"pop" bson:"pop"`
Imap int `json:"imap" bson:"imap"`
Web int `json:"web" bson:"web"`
2015-11-20 17:11:36 +01:00
}
type Index struct {
User string `json:"user" bson:"user"`
Date time.Time `json:"date" bson:"date"`
2015-11-20 17:11:36 +01:00
}
2016-04-15 15:28:52 +02:00
type Users struct {
User string `json:"_id" bson:"_id"`
Logins []IPs `json:"logins" bson:"logins"`
2016-04-15 15:28:52 +02:00
}
func connectMongo(data string) {
2015-11-20 17:11:36 +01:00
if opts.MongoSrc == "" {
log.Fatalf("Mongodb URI invalid: '%s'\n", opts.MongoSrc)
}
var err error
//opts.mdbSrc, err = mgo.DialWithTimeout(opts.MongoSrc, time.Minute*5)
dbs.mdbSrc, err = mgo.Dial(opts.MongoSrc)
2015-11-20 17:11:36 +01:00
if err != nil {
log.Println("Mongodb connect Error: ", err.Error())
os.Exit(-3)
}
dbs.mdbSrc.SetSocketTimeout(0)
dbs.ll = dbs.mdbSrc.DB("lastlogin").C("lastlogin_" + data)
2015-11-20 17:11:36 +01:00
if opts.MongoDst == "" {
dbs.mdbDst = dbs.mdbSrc
dbs.lc = dbs.mdbSrc.DB("dovecot").C("lastlogin_day")
2015-11-20 17:11:36 +01:00
} else {
dbs.mdbDst, err = mgo.Dial(opts.MongoDst)
2015-11-20 17:11:36 +01:00
if err != nil {
log.Println("Mongodb connect Error: ", err.Error())
os.Exit(-3)
}
dbs.lc = dbs.mdbDst.DB(opts.DstDB).C("lastlogin_day")
2015-11-20 17:11:36 +01:00
}
}