Add Items in config in stordb

This commit is contained in:
TeoV
2020-01-13 10:58:36 -05:00
parent 55ff64ddba
commit 04d38094e5
4 changed files with 27 additions and 7 deletions

View File

@@ -39,7 +39,7 @@ type DataDbCfg struct {
QueryTimeout time.Duration
RmtConns []string // Remote DataDB connIDs
RplConns []string // Replication connIDs
Items map[string]*ItemRmtRplOpt
Items map[string]*ItemOpt
}
//loadFromJsonCfg loads Database config from JsonCfg
@@ -100,9 +100,9 @@ func (dbcfg *DataDbCfg) loadFromJsonCfg(jsnDbCfg *DbJsonCfg) (err error) {
}
}
if jsnDbCfg.Items != nil {
dbcfg.Items = make(map[string]*ItemRmtRplOpt)
dbcfg.Items = make(map[string]*ItemOpt)
for kJsn, vJsn := range *jsnDbCfg.Items {
val := new(ItemRmtRplOpt)
val := new(ItemOpt)
if err := val.loadFromJsonCfg(vJsn); err != nil {
return err
}
@@ -123,15 +123,17 @@ func (dbcfg *DataDbCfg) Clone() *DataDbCfg {
DataDbPass: dbcfg.DataDbPass,
DataDbSentinelName: dbcfg.DataDbSentinelName,
QueryTimeout: dbcfg.QueryTimeout,
Items: dbcfg.Items,
}
}
type ItemRmtRplOpt struct {
type ItemOpt struct {
Remote bool
Replicate bool
TTL time.Duration
}
func (itm *ItemRmtRplOpt) loadFromJsonCfg(jsonItm *ItemRmtRplOptJson) (err error) {
func (itm *ItemOpt) loadFromJsonCfg(jsonItm *ItemOptJson) (err error) {
if jsonItm == nil {
return
}
@@ -141,5 +143,10 @@ func (itm *ItemRmtRplOpt) loadFromJsonCfg(jsonItm *ItemRmtRplOptJson) (err error
if jsonItm.Replicate != nil {
itm.Replicate = *jsonItm.Replicate
}
if jsonItm.Ttl != nil {
if itm.TTL, err = utils.ParseDurationWithNanosecs(*jsonItm.Ttl); err != nil {
return err
}
}
return
}

View File

@@ -93,12 +93,13 @@ type DbJsonCfg struct {
Sslmode *string // Used only in case of storDb
Remote_conns *[]string
Replication_conns *[]string
Items *map[string]*ItemRmtRplOptJson
Items *map[string]*ItemOptJson
}
type ItemRmtRplOptJson struct {
type ItemOptJson struct {
Remote *bool
Replicate *bool
Ttl *string
}
// Filters config

View File

@@ -41,6 +41,7 @@ type StorDbCfg struct {
PrefixIndexedFields []string
QueryTimeout time.Duration
SSLMode string // for PostgresDB used to change default sslmode
Items map[string]*ItemOpt
}
// loadFromJsonCfg loads StoreDb config from JsonCfg
@@ -93,6 +94,16 @@ func (dbcfg *StorDbCfg) loadFromJsonCfg(jsnDbCfg *DbJsonCfg) (err error) {
if jsnDbCfg.Sslmode != nil {
dbcfg.SSLMode = *jsnDbCfg.Sslmode
}
if jsnDbCfg.Items != nil {
dbcfg.Items = make(map[string]*ItemOpt)
for kJsn, vJsn := range *jsnDbCfg.Items {
val := new(ItemOpt)
if err := val.loadFromJsonCfg(vJsn); err != nil {
return err
}
dbcfg.Items[kJsn] = val
}
}
return nil
}
@@ -112,5 +123,6 @@ func (dbcfg *StorDbCfg) Clone() *StorDbCfg {
PrefixIndexedFields: dbcfg.PrefixIndexedFields,
QueryTimeout: dbcfg.QueryTimeout,
SSLMode: dbcfg.SSLMode,
Items: dbcfg.Items,
}
}