diff --git a/data/storage/mysql/create_tariffplan_tables.sql b/data/storage/mysql/create_tariffplan_tables.sql index a6368e71c..82a7690a2 100644 --- a/data/storage/mysql/create_tariffplan_tables.sql +++ b/data/storage/mysql/create_tariffplan_tables.sql @@ -147,10 +147,10 @@ CREATE TABLE `tp_actions` ( `action` varchar(24) NOT NULL, `balance_tag` varchar(64) NOT NULL, `balance_type` varchar(24) NOT NULL, - `direction` varchar(8) NOT NULL, + `balance_direction` varchar(8) NOT NULL, `units` DECIMAL(20,4) NOT NULL, `expiry_time` varchar(24) NOT NULL, - `destination_tag` varchar(64) NOT NULL, + `balance_destination_tag` varchar(64) NOT NULL, `rating_subject` varchar(64) NOT NULL, `category` varchar(16) NOT NULL, `shared_group` varchar(64) NOT NULL, @@ -192,12 +192,12 @@ CREATE TABLE `tp_action_triggers` ( `tag` varchar(64) NOT NULL, `balance_tag` varchar(64) NOT NULL, `balance_type` varchar(24) NOT NULL, - `direction` varchar(8) NOT NULL, + `balance_direction` varchar(8) NOT NULL, `threshold_type` char(12) NOT NULL, `threshold_value` DECIMAL(20,4) NOT NULL, `recurrent` BOOLEAN NOT NULL, `min_sleep` BIGINT NOT NULL, - `destination_tag` varchar(64) NOT NULL, + `balance_destination_tag` varchar(64) NOT NULL, `balance_weight` DECIMAL(8,2) NOT NULL, `balance_expiry_time` varchar(24) NOT NULL, `balance_rating_subject` varchar(64) NOT NULL, @@ -209,7 +209,7 @@ CREATE TABLE `tp_action_triggers` ( `created_at` TIMESTAMP, PRIMARY KEY (`id`), KEY `tpid` (`tpid`), - UNIQUE KEY `unique_trigger_definition` (`tpid`,`tag`,`balance_tag`,`balance_type`,`direction`,`threshold_type`,`threshold_value`,`destination_tag`,`actions_tag`) + UNIQUE KEY `unique_trigger_definition` (`tpid`,`tag`,`balance_tag`,`balance_type`,`balance_direction`,`threshold_type`,`threshold_value`,`balance_destination_tag`,`actions_tag`) ); -- diff --git a/data/storage/postgres/create_tariffplan_tables.sql b/data/storage/postgres/create_tariffplan_tables.sql index aad65ae64..807cfade9 100644 --- a/data/storage/postgres/create_tariffplan_tables.sql +++ b/data/storage/postgres/create_tariffplan_tables.sql @@ -169,12 +169,12 @@ CREATE TABLE tp_action_triggers ( tag VARCHAR(64) NOT NULL, balance_tag VARCHAR(64) NOT NULL, balance_type VARCHAR(24) NOT NULL, - direction VARCHAR(8) NOT NULL, + balance_direction VARCHAR(8) NOT NULL, threshold_type char(12) NOT NULL, threshold_value NUMERIC(20,4) NOT NULL, recurrent BOOLEAN NOT NULL, min_sleep BIGINT NOT NULL, - destination_tag VARCHAR(64) NOT NULL, + balance_destination_tag VARCHAR(64) NOT NULL, balance_weight NUMERIC(8,2) NOT NULL, balance_expiry_time VARCHAR(24) NOT NULL, balance_rating_subject VARCHAR(64) NOT NULL, @@ -184,7 +184,7 @@ CREATE TABLE tp_action_triggers ( actions_tag VARCHAR(64) NOT NULL, weight NUMERIC(8,2) NOT NULL, created_at TIMESTAMP, - UNIQUE (tpid, tag, balance_tag, balance_type, direction, threshold_type, threshold_value, destination_tag, actions_tag) + UNIQUE (tpid, tag, balance_tag, balance_type, balance_direction, threshold_type, threshold_value, balance_destination_tag, actions_tag) ); -- diff --git a/utils/coreutils.go b/utils/coreutils.go index 7d4279fb5..0a1f15618 100644 --- a/utils/coreutils.go +++ b/utils/coreutils.go @@ -24,12 +24,12 @@ import ( "crypto/rand" "crypto/sha1" "crypto/tls" - "encoding/hex" "encoding/json" "errors" "fmt" "io" "io/ioutil" + "log" "math" "net/http" "os" @@ -62,8 +62,7 @@ func NewTPid() string { return Sha1(GenUUID()) } -// helper function for uuid generation -func GenUUID() string { +/*func GenUUID() string { uuid := make([]byte, 16) n, err := rand.Read(uuid) if n != len(uuid) || err != nil { @@ -74,6 +73,19 @@ func GenUUID() string { uuid[4] = 0x40 // version 4 Pseudo Random, see page 7 return hex.EncodeToString(uuid) +}*/ + +// helper function for uuid generation +func GenUUID() string { + b := make([]byte, 16) + _, err := io.ReadFull(rand.Reader, b) + if err != nil { + log.Fatal(err) + } + b[6] = (b[6] & 0x0F) | 0x40 + b[8] = (b[8] &^ 0x40) | 0x80 + return fmt.Sprintf("%x-%x-%x-%x-%x", b[:4], b[4:6], b[6:8], b[8:10], + b[10:]) } // Round return rounded version of x with prec precision.