StatsV1.GetQueueIDs API, add integration tests for StatS

This commit is contained in:
DanB
2017-09-25 14:28:19 +02:00
parent c3110af3db
commit e0898fe7bc
5 changed files with 69 additions and 46 deletions

View File

@@ -307,3 +307,18 @@ func (sS *StatService) V1GetQueueFloatMetrics(args *utils.TenantID, reply *map[s
*reply = metrics
return
}
// V1GetQueueIDs returns list of queueIDs registered for a tenant
func (sS *StatService) V1GetQueueIDs(tenant string, qIDs *[]string) (err error) {
prfx := utils.StatQueuePrefix + tenant + utils.CONCATENATED_KEY_SEP
keys, err := sS.dm.DataDB().GetKeysForPrefix(prfx)
if err != nil {
return err
}
retIDs := make([]string, len(keys))
for i, key := range keys {
retIDs[i] = key[len(prfx):]
}
*qIDs = retIDs
return
}

View File

@@ -34,6 +34,7 @@ type TpReader struct {
tpid string
timezone string
dataStorage DataDB
dm *DataManager
lr LoadReader
actions map[string][]*Action
actionPlans map[string]*ActionPlan
@@ -69,6 +70,7 @@ func NewTpReader(db DataDB, lr LoadReader, tpid, timezone string) *TpReader {
tpid: tpid,
timezone: timezone,
dataStorage: db,
dm: NewDataManager(db),
lr: lr,
}
tpr.Init()
@@ -2010,8 +2012,16 @@ func (tpr *TpReader) WriteToDatabase(flush, verbose, disable_reverse bool) (err
log.Print("StatQueues:")
}
for _, sqTntID := range tpr.statQueues {
if err = tpr.dataStorage.SetStoredStatQueue(&StoredStatQueue{Tenant: sqTntID.Tenant, ID: sqTntID.ID,
SQMetrics: make(map[string][]byte)}); err != nil {
sq := &StatQueue{Tenant: sqTntID.Tenant, ID: sqTntID.ID,
SQMetrics: make(map[string]StatMetric)}
for _, metricID := range tpr.sqProfiles[sqTntID.Tenant][sqTntID.ID].Metrics {
if metric, err := NewStatMetric(metricID); err != nil {
return err
} else {
sq.SQMetrics[metricID] = metric
}
}
if err = tpr.dm.SetStatQueue(sq); err != nil {
return
}
if verbose {