aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir Lavor <vlavor@cisco.com>2021-03-11 15:27:02 +0100
committerOndrej Fabry <ofabry@cisco.com>2021-04-20 16:51:29 +0000
commitd0b973030fe07dc7875da72f5ebe42d8bd9544b1 (patch)
tree665b9b3072c485ff2e472ff88d18660efcecbbd8
parent1d574a786662498896d0e5e089f3c312910e0ffa (diff)
Recognize stat_dir_type_empty
Do not to handle empty stats directory as unknown. Empty dir's value is always treated as zero. Change-Id: I40a3829675c5b7c9da80ceaa7e2d0a87fe02dc7c Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
-rw-r--r--adapter/stats_api.go10
-rw-r--r--adapter/statsclient/statseg_v2.go1
2 files changed, 11 insertions, 0 deletions
diff --git a/adapter/stats_api.go b/adapter/stats_api.go
index 4b398f5..d15dee8 100644
--- a/adapter/stats_api.go
+++ b/adapter/stats_api.go
@@ -60,6 +60,7 @@ const (
CombinedCounterVector StatType = 3
ErrorIndex StatType = 4
NameVector StatType = 5
+ Empty StatType = 6
)
func (d StatType) String() string {
@@ -74,6 +75,8 @@ func (d StatType) String() string {
return "ErrorIndex"
case NameVector:
return "NameVector"
+ case Empty:
+ return "Empty"
}
return fmt.Sprintf("UnknownStatType(%d)", d)
}
@@ -144,11 +147,15 @@ type CombinedCounterStat [][]CombinedCounter
// NameStat represents stat for NameVector.
type NameStat []Name
+// EmptyStat represents removed counter directory
+type EmptyStat string
+
func (ScalarStat) isStat() {}
func (ErrorStat) isStat() {}
func (SimpleCounterStat) isStat() {}
func (CombinedCounterStat) isStat() {}
func (NameStat) isStat() {}
+func (EmptyStat) isStat() {}
func (s ScalarStat) IsZero() bool {
return s == 0
@@ -204,6 +211,9 @@ func (s NameStat) IsZero() bool {
}
return true
}
+func (s EmptyStat) IsZero() bool {
+ return true
+}
// ReduceSimpleCounterStatIndex returns reduced SimpleCounterStat s for index i.
func ReduceSimpleCounterStatIndex(s SimpleCounterStat, i int) uint64 {
diff --git a/adapter/statsclient/statseg_v2.go b/adapter/statsclient/statseg_v2.go
index 68411f9..08467c1 100644
--- a/adapter/statsclient/statseg_v2.go
+++ b/adapter/statsclient/statseg_v2.go
@@ -202,6 +202,7 @@ func (ss *statSegmentV2) CopyEntryData(statSegDir unsafe.Pointer) adapter.Stat {
return adapter.NameStat(data)
case statDirEmpty:
+ return adapter.EmptyStat("<none>")
// no-op
default: