summaryrefslogtreecommitdiff
path: root/cleaner.go
diff options
context:
space:
mode:
Diffstat (limited to 'cleaner.go')
-rw-r--r--cleaner.go36
1 files changed, 19 insertions, 17 deletions
diff --git a/cleaner.go b/cleaner.go
index 986d556..21b6842 100644
--- a/cleaner.go
+++ b/cleaner.go
@@ -9,9 +9,9 @@ import (
"time"
)
-func cleanData(conf Config, db_user, db_pass, db_conn, db_name string) (rowsLeft int, err error) {
+func cleanData(cfg *Config) (rowsLeft int, err error) {
- db, err := sql.Open("mysql", db_user+":"+db_pass+"@"+db_conn+"/"+db_name)
+ db, err := sql.Open("mysql", cfg.DBUser+":"+cfg.DBPass+"@"+cfg.DBConn+"/"+cfg.DBName)
if err != nil {
log.Println("Failed to connect to db")
return
@@ -19,25 +19,25 @@ func cleanData(conf Config, db_user, db_pass, db_conn, db_name string) (rowsLeft
defer db.Close()
//Remove the processed mark on entries older than 6 hours
- err = reprocess(db, time.Now().Add(-1*time.Hour))
+ err = reprocess(db, cfg, time.Now().Add(-1*time.Hour))
if err != nil {
return
}
- interval, err := conf.getInterval()
+ interval, err := cfg.getInterval()
if err != nil {
return
}
cleanLimit := time.Now().Add(-2 * interval)
//Fetch data that should be cleaned
- rDat, err := fetchRawData(db, cleanLimit, conf.Limit)
+ rDat, err := fetchRawData(db, cfg, cleanLimit)
if err != nil {
log.Println("Faild to fetch raw data")
return
}
- cDat, err := clean(rDat, conf)
+ cDat, err := clean(rDat, cfg)
if err != nil {
log.Println("Failed to clean data")
return
@@ -51,7 +51,7 @@ func cleanData(conf Config, db_user, db_pass, db_conn, db_name string) (rowsLeft
}
//save cleaned data
- err = insertCleanData(tx, cDat)
+ err = insertCleanData(tx, cfg, cDat)
if err != nil {
tx.Rollback()
log.Println("Failed to save cleaned data")
@@ -59,13 +59,13 @@ func cleanData(conf Config, db_user, db_pass, db_conn, db_name string) (rowsLeft
}
//remove old data
- err = purgeRawData(tx, rDat)
+ err = purgeRawData(tx, cfg, rDat)
if err != nil {
tx.Rollback()
log.Println("Failed to remove old data")
return
}
- rowsLeft, err = availableRows(tx, cleanLimit)
+ rowsLeft, err = availableRows(tx, cfg, cleanLimit)
if err != nil {
tx.Rollback()
log.Println("Failed to fetch available rows")
@@ -76,42 +76,42 @@ func cleanData(conf Config, db_user, db_pass, db_conn, db_name string) (rowsLeft
return
}
-func getTimespan(t time.Time, conf Config) (span time.Time, err error) {
+func getTimespan(t time.Time, cfg *Config) (span time.Time, err error) {
loc, err := time.LoadLocation(TIMEZONE)
if err != nil {
return
}
switch {
- case conf.Interval == "5min": //Round the date into 5 minutes
+ case cfg.Interval == "5min": //Round the date into 5 minutes
y, m, d := t.Date()
h := t.Hour()
min := t.Minute()
min = (min / 5) * 5
span = time.Date(y, m, d, h, min, 0, 0, loc)
- case conf.Interval == "10min": //Round the date into 10 minutes
+ case cfg.Interval == "10min": //Round the date into 10 minutes
y, m, d := t.Date()
h := t.Hour()
min := t.Minute()
min = (min / 10) * 10
span = time.Date(y, m, d, h, min, 0, 0, loc)
- case conf.Interval == "hour": //Round the date into hour
+ case cfg.Interval == "hour": //Round the date into hour
y, m, d := t.Date()
h := t.Hour()
span = time.Date(y, m, d, h, 0, 0, 0, loc)
- case conf.Interval == "day": //Round the date into day
+ case cfg.Interval == "day": //Round the date into day
y, m, d := t.Date()
span = time.Date(y, m, d, 0, 0, 0, 0, loc)
default:
- err = errors.New(fmt.Sprintf("Bad interval in config %s", conf.Interval))
+ err = errors.New(fmt.Sprintf("Bad interval in config %s", cfg.Interval))
return
}
return
}
-func clean(rDat []rawData, conf Config) (cDat []cleanedData, err error) {
+func clean(rDat []rawData, cfg *Config) (cDat []cleanedData, err error) {
// collect all ips so we can query for their ip blocks
ips := make(map[string]struct{})
for _, rd := range rDat {
@@ -124,14 +124,16 @@ func clean(rDat []rawData, conf Config) (cDat []cleanedData, err error) {
iplist = append(iplist, ip)
}
+ log.Println("Querying for ip-blocks...")
pairs, err := findIPBlock(iplist...)
if err != nil {
return
}
+ log.Println("ip-blocks returned")
for _, rd := range rDat {
var tim time.Time
- tim, err = getTimespan(rd.time, conf)
+ tim, err = getTimespan(rd.time, cfg)
if err != nil {
return
}