mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-24 00:28:44 +05:00
Merge branch 'radix'
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user