return a string instead of Stat struct

Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/7adadd54
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/7adadd54
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/7adadd54

Branch: refs/heads/master
Commit: 7adadd5468f157adcc07320581171c00d8b5e847
Parents: 86c1166
Author: David Neuman <david.neuma...@gmail.com>
Authored: Tue Jan 17 14:08:22 2017 -0700
Committer: Jeff Elsloo <jeffrey_els...@cable.comcast.com>
Committed: Tue Jan 24 08:38:45 2017 -0700

----------------------------------------------------------------------
 .../traffic_monitor/deliveryservice/stat.go     | 23 +++++++++++---------
 1 file changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/7adadd54/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go
----------------------------------------------------------------------
diff --git 
a/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go 
b/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go
index d93fb7e..6000012 100644
--- a/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go
+++ b/traffic_monitor/experimental/traffic_monitor/deliveryservice/stat.go
@@ -106,7 +106,14 @@ func addAvailableData(dsStats Stats, crStates 
peer.Crstates, serverCachegroups m
                        }
 
                        if available.IsAvailable {
-                               setDsState(deliveryService, &stat, mc)
+                               stat.CommonStats.IsAvailable.Value = true
+                               stat.CommonStats.IsHealthy.Value = true
+                               errStr := getDsErrString(deliveryService, stat, 
mc)
+                               if errStr != "" {
+                                       stat.CommonStats.IsAvailable.Value = 
false
+                                       stat.CommonStats.IsHealthy.Value = false
+                                       stat.CommonStats.ErrorStr.Value = errStr
+                               }
                                stat.CommonStats.CachesAvailableNum.Value++
                                cacheGroupStats := stat.CacheGroups[cacheGroup]
                                cacheGroupStats.IsAvailable.Value = true
@@ -506,19 +513,15 @@ func (s Stats) JSON(filter dsdata.Filter, params 
url.Values) dsdata.StatsOld {
        return *jsonObj
 }
 
-func setDsState(dsName enum.DeliveryServiceName, dsStats *dsdata.Stat, 
monitorConfig to.TrafficMonitorConfigMap) {
+func getDsErrString(dsName enum.DeliveryServiceName, dsStats dsdata.Stat, 
monitorConfig to.TrafficMonitorConfigMap) string {
        dsNameString := fmt.Sprintf("%s", dsName)
-       dsStats.CommonStats.IsAvailable.Value = true
-       dsStats.CommonStats.IsHealthy.Value = true
 
        if dsStats.Total().TpsTotal.Value > 
monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold {
-               dsStats.CommonStats.ErrorStr.Value = fmt.Sprintf("TPSTotal too 
high (%v > %v)", dsStats.Total().TpsTotal.Value, 
monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold)
-               dsStats.CommonStats.IsAvailable.Value = false
-               dsStats.CommonStats.IsHealthy.Value = false
+               return fmt.Sprintf("TPSTotal too high (%v > %v)", 
dsStats.Total().TpsTotal.Value, 
monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold)
+
        }
        if dsStats.Total().Kbps.Value > 
float64(monitorConfig.DeliveryService[dsNameString].TotalKbpsThreshold) {
-               dsStats.CommonStats.ErrorStr.Value = fmt.Sprintf("TotalKbps too 
high (%v > %v)", dsStats.Total().Kbps.Value, 
monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold)
-               dsStats.CommonStats.IsAvailable.Value = false
-               dsStats.CommonStats.IsHealthy.Value = false
+               return fmt.Sprintf("TotalKbps too high (%v > %v)", 
dsStats.Total().Kbps.Value, 
monitorConfig.DeliveryService[dsNameString].TotalTPSThreshold)
        }
+       return ""
 }

Reply via email to