Merge branch 'radix'

This commit is contained in:
Radu Ioan Fericean
2015-11-16 15:21:02 +02:00
11 changed files with 213 additions and 123 deletions

View File

@@ -8,19 +8,29 @@ import (
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
"github.com/hoisie/redis"
"github.com/mediocregopher/radix.v2/redis"
)
const OLD_ACCOUNT_PREFIX = "ubl_"
type MigratorRC8 struct {
dbNb int
db *redis.Client
ms engine.Marshaler
db *redis.Client
ms engine.Marshaler
}
func NewMigratorRC8(address string, db int, pass, mrshlerStr string) (*MigratorRC8, error) {
ndb := &redis.Client{Addr: address, Db: db, Password: pass}
client, err := redis.Dial("tcp", address)
if err != nil {
return nil, err
}
if err := client.Cmd("SELECT", db).Err; err != nil {
return nil, err
}
if pass != "" {
if err := client.Cmd("AUTH", pass).Err; err != nil {
return nil, err
}
}
var mrshler engine.Marshaler
if mrshlerStr == utils.MSGPACK {
@@ -30,7 +40,7 @@ func NewMigratorRC8(address string, db int, pass, mrshlerStr string) (*MigratorR
} else {
return nil, fmt.Errorf("Unsupported marshaler: %v", mrshlerStr)
}
return &MigratorRC8{db: ndb, dbNb: db, ms: mrshler}, nil
return &MigratorRC8{db: client, ms: mrshler}, nil
}
type Account struct {
@@ -116,7 +126,7 @@ type Action struct {
}
func (mig MigratorRC8) migrateAccounts() error {
keys, err := mig.db.Keys(OLD_ACCOUNT_PREFIX + "*")
keys, err := mig.db.Cmd("KEYS", OLD_ACCOUNT_PREFIX+"*").List()
if err != nil {
return err
}
@@ -125,7 +135,7 @@ func (mig MigratorRC8) migrateAccounts() error {
// get existing accounts
for keyIndex, key := range keys {
log.Printf("Migrating account: %s...", key)
values, err := mig.db.Get(key)
values, err := mig.db.Cmd("GET", key).Bytes()
if err != nil {
continue
}
@@ -249,14 +259,16 @@ func (mig MigratorRC8) migrateAccounts() error {
if err != nil {
return err
}
if err := mig.db.Set(utils.ACCOUNT_PREFIX+newAcc.Id, result); err != nil {
if err := mig.db.Cmd("SET", utils.ACCOUNT_PREFIX+newAcc.Id, result).Err; err != nil {
return err
}
}
// delete old data
log.Printf("Deleting migrated accounts...")
for _, key := range migratedKeys {
_, err = mig.db.Del(key)
if err := mig.db.Cmd("DEL", key).Err; err != nil {
return err
}
}
notMigrated := len(keys) - len(migratedKeys)
if notMigrated > 0 {
@@ -266,7 +278,7 @@ func (mig MigratorRC8) migrateAccounts() error {
}
func (mig MigratorRC8) migrateActionTriggers() error {
keys, err := mig.db.Keys(utils.ACTION_TRIGGER_PREFIX + "*")
keys, err := mig.db.Cmd("KEYS", utils.ACTION_TRIGGER_PREFIX+"*").List()
if err != nil {
return err
}
@@ -275,7 +287,7 @@ func (mig MigratorRC8) migrateActionTriggers() error {
log.Printf("Migrating action trigger: %s...", key)
var oldAtrs ActionTriggers
var values []byte
if values, err = mig.db.Get(key); err == nil {
if values, err = mig.db.Cmd("GET", key).Bytes(); err == nil {
if err := mig.ms.Unmarshal(values, &oldAtrs); err != nil {
return err
}
@@ -317,7 +329,7 @@ func (mig MigratorRC8) migrateActionTriggers() error {
if err != nil {
return err
}
if err = mig.db.Set(key, result); err != nil {
if err = mig.db.Cmd("SET", key, result).Err; err != nil {
return err
}
}
@@ -325,7 +337,7 @@ func (mig MigratorRC8) migrateActionTriggers() error {
}
func (mig MigratorRC8) migrateActions() error {
keys, err := mig.db.Keys(utils.ACTION_PREFIX + "*")
keys, err := mig.db.Cmd("KEYS", utils.ACTION_PREFIX+"*").List()
if err != nil {
return err
}
@@ -334,7 +346,7 @@ func (mig MigratorRC8) migrateActions() error {
log.Printf("Migrating action: %s...", key)
var oldAcs Actions
var values []byte
if values, err = mig.db.Get(key); err == nil {
if values, err = mig.db.Cmd("GET", key).Bytes(); err == nil {
if err := mig.ms.Unmarshal(values, &oldAcs); err != nil {
return err
}
@@ -373,7 +385,7 @@ func (mig MigratorRC8) migrateActions() error {
if err != nil {
return err
}
if err = mig.db.Set(key, result); err != nil {
if err = mig.db.Cmd("SET", key, result).Err; err != nil {
return err
}
}
@@ -381,7 +393,7 @@ func (mig MigratorRC8) migrateActions() error {
}
func (mig MigratorRC8) migrateDerivedChargers() error {
keys, err := mig.db.Keys(utils.DERIVEDCHARGERS_PREFIX + "*")
keys, err := mig.db.Cmd("KEYS", utils.DERIVEDCHARGERS_PREFIX+"*").List()
if err != nil {
return err
}
@@ -390,7 +402,7 @@ func (mig MigratorRC8) migrateDerivedChargers() error {
log.Printf("Migrating derived charger: %s...", key)
var oldDcs []*utils.DerivedCharger
var values []byte
if values, err = mig.db.Get(key); err == nil {
if values, err = mig.db.Cmd("GET", key).Bytes(); err == nil {
if err := mig.ms.Unmarshal(values, &oldDcs); err != nil {
return err
}
@@ -407,7 +419,7 @@ func (mig MigratorRC8) migrateDerivedChargers() error {
if err != nil {
return err
}
if err = mig.db.Set(key, result); err != nil {
if err = mig.db.Cmd("SET", key, result).Err; err != nil {
return err
}
}