Updated versions

This commit is contained in:
edwardro22
2017-09-06 10:59:09 +00:00
parent 12e66ac902
commit d8a44e64ed
15 changed files with 268 additions and 283 deletions

View File

@@ -1285,30 +1285,6 @@ func (ms *MapStorage) GetSMCost(cgrid, source, runid, originHost, originID strin
return
}
func (ms *MapStorage) SetStructVersion(v *StructVersion) (err error) {
ms.mu.Lock()
defer ms.mu.Unlock()
var result []byte
result, err = ms.ms.Marshal(v)
if err != nil {
return
}
ms.dict[utils.VERSION_PREFIX+"struct"] = result
return
}
func (ms *MapStorage) GetStructVersion() (rsv *StructVersion, err error) {
ms.mu.RLock()
defer ms.mu.RUnlock()
rsv = &StructVersion{}
if values, ok := ms.dict[utils.VERSION_PREFIX+"struct"]; ok {
err = ms.ms.Unmarshal(values, &rsv)
} else {
return nil, utils.ErrNotFound
}
return
}
func (ms *MapStorage) GetResourceCfg(id string, skipCache bool, transactionID string) (rl *ResourceCfg, err error) {
ms.mu.RLock()
defer ms.mu.RUnlock()
@@ -1508,14 +1484,54 @@ func (ms *MapStorage) MatchReqFilterIndex(dbKey, fldName, fldVal string) (itemID
}
func (ms *MapStorage) GetVersions(itm string) (vrs Versions, err error) {
ms.mu.Lock()
defer ms.mu.Unlock()
values, ok := ms.dict[itm]
if !ok {
return nil, utils.ErrNotFound
}
err = ms.ms.Unmarshal(values, &vrs)
if err != nil {
return nil, err
}
return
}
func (ms *MapStorage) SetVersions(vrs Versions, overwrite bool) (err error) {
ms.mu.Lock()
defer ms.mu.Unlock()
var result []byte
var x Versions
if !overwrite{
x,err =ms.GetVersions(utils.TBLVersions)
if err != nil {
return err
}
for key,_:= range vrs{
if x[key]!=vrs[key]{x[key]=vrs[key]}
}
result, err = ms.ms.Marshal(x)
if err != nil {
return err
}
ms.dict[utils.TBLVersions] = result
return
}else{
result, err = ms.ms.Marshal(vrs)
if err != nil {
return err
}
if ms.RemoveVersions(vrs);err != nil {
return err
}
ms.dict[utils.TBLVersions] = result
return
}
}
func (ms *MapStorage) RemoveVersions(vrs Versions) (err error) {
ms.mu.Lock()
defer ms.mu.Unlock()
delete(ms.dict, utils.TBLVersions)
return
}