mirror of
https://github.com/grafana/grafana.git
synced 2024-11-27 03:11:01 -06:00
de8696d5d3
This commit fixes the following golint warnings: pkg/bus/bus.go:64:9: if block ends with a return statement, so drop this else and outdent its block pkg/bus/bus.go:84:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:137:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:177:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:183:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:199:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:208:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/components/dynmap/dynmap.go:236:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:242:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:257:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:263:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:278:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:284:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:299:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:331:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:350:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:356:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:366:12: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:390:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:396:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:405:12: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:427:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:433:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:442:12: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:459:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:465:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:474:12: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:491:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:497:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:506:12: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:523:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:529:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:538:12: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:555:9: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:561:10: if block ends with a return statement, so drop this else and outdent its block pkg/components/dynmap/dynmap.go:570:12: if block ends with a return statement, so drop this else and outdent its block pkg/login/ldap.go:55:11: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/login/ldap_test.go:372:10: if block ends with a return statement, so drop this else and outdent its block pkg/middleware/middleware_test.go:213:12: if block ends with a return statement, so drop this else and outdent its block pkg/plugins/dashboard_importer.go:153:11: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/plugins/dashboards_updater.go:39:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/plugins/dashboards_updater.go:121:10: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/plugins/plugins.go:210:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/plugins/plugins.go:235:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/alerting/eval_context.go:111:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/alerting/notifier.go:92:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/alerting/notifier.go:98:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/alerting/notifier.go:122:10: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/alerting/rule.go:108:10: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/alerting/rule.go:118:10: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/alerting/rule.go:121:11: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/alerting/notifiers/telegram.go:94:10: if block ends with a return statement, so drop this else and outdent its block pkg/services/sqlstore/annotation.go:34:11: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/sqlstore/annotation.go:99:11: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/sqlstore/dashboard_test.go:107:13: if block ends with a return statement, so drop this else and outdent its block pkg/services/sqlstore/plugin_setting.go:78:10: if block ends with a return statement, so drop this else and outdent its block pkg/services/sqlstore/preferences.go:91:10: if block ends with a return statement, so drop this else and outdent its block pkg/services/sqlstore/user.go:50:10: if block ends with a return statement, so drop this else and outdent its block pkg/services/sqlstore/migrator/migrator.go:106:11: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/services/sqlstore/migrator/postgres_dialect.go:48:10: if block ends with a return statement, so drop this else and outdent its block pkg/tsdb/time_range.go:59:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/tsdb/time_range.go:67:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary) pkg/tsdb/cloudwatch/metric_find_query.go:225:9: if block ends with a return statement, so drop this else and outdent its block pkg/util/filepath.go:68:11: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary)
130 lines
2.6 KiB
Go
130 lines
2.6 KiB
Go
package tsdb
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func NewTimeRange(from, to string) *TimeRange {
|
|
return &TimeRange{
|
|
From: from,
|
|
To: to,
|
|
now: time.Now(),
|
|
}
|
|
}
|
|
|
|
func NewFakeTimeRange(from, to string, now time.Time) *TimeRange {
|
|
return &TimeRange{
|
|
From: from,
|
|
To: to,
|
|
now: now,
|
|
}
|
|
}
|
|
|
|
type TimeRange struct {
|
|
From string
|
|
To string
|
|
now time.Time
|
|
}
|
|
|
|
func (tr *TimeRange) GetFromAsMsEpoch() int64 {
|
|
return tr.MustGetFrom().UnixNano() / int64(time.Millisecond)
|
|
}
|
|
|
|
func (tr *TimeRange) GetFromAsSecondsEpoch() int64 {
|
|
return tr.GetFromAsMsEpoch() / 1000
|
|
}
|
|
|
|
func (tr *TimeRange) GetFromAsTimeUTC() time.Time {
|
|
return tr.MustGetFrom().UTC()
|
|
}
|
|
|
|
func (tr *TimeRange) GetToAsMsEpoch() int64 {
|
|
return tr.MustGetTo().UnixNano() / int64(time.Millisecond)
|
|
}
|
|
|
|
func (tr *TimeRange) GetToAsSecondsEpoch() int64 {
|
|
return tr.GetToAsMsEpoch() / 1000
|
|
}
|
|
|
|
func (tr *TimeRange) GetToAsTimeUTC() time.Time {
|
|
return tr.MustGetTo().UTC()
|
|
}
|
|
|
|
func (tr *TimeRange) MustGetFrom() time.Time {
|
|
res, err := tr.ParseFrom()
|
|
if err != nil {
|
|
return time.Unix(0, 0)
|
|
}
|
|
return res
|
|
}
|
|
|
|
func (tr *TimeRange) MustGetTo() time.Time {
|
|
res, err := tr.ParseTo()
|
|
if err != nil {
|
|
return time.Unix(0, 0)
|
|
}
|
|
return res
|
|
}
|
|
|
|
func tryParseUnixMsEpoch(val string) (time.Time, bool) {
|
|
if val, err := strconv.ParseInt(val, 10, 64); err == nil {
|
|
seconds := val / 1000
|
|
nano := (val - seconds*1000) * 1000000
|
|
return time.Unix(seconds, nano), true
|
|
}
|
|
return time.Time{}, false
|
|
}
|
|
|
|
func (tr *TimeRange) ParseFrom() (time.Time, error) {
|
|
if res, ok := tryParseUnixMsEpoch(tr.From); ok {
|
|
return res, nil
|
|
}
|
|
|
|
fromRaw := strings.Replace(tr.From, "now-", "", 1)
|
|
diff, err := time.ParseDuration("-" + fromRaw)
|
|
if err != nil {
|
|
return time.Time{}, err
|
|
}
|
|
|
|
return tr.now.Add(diff), nil
|
|
}
|
|
|
|
func (tr *TimeRange) ParseTo() (time.Time, error) {
|
|
if tr.To == "now" {
|
|
return tr.now, nil
|
|
} else if strings.HasPrefix(tr.To, "now-") {
|
|
withoutNow := strings.Replace(tr.To, "now-", "", 1)
|
|
|
|
diff, err := time.ParseDuration("-" + withoutNow)
|
|
if err != nil {
|
|
return time.Time{}, nil
|
|
}
|
|
|
|
return tr.now.Add(diff), nil
|
|
}
|
|
|
|
if res, ok := tryParseUnixMsEpoch(tr.To); ok {
|
|
return res, nil
|
|
}
|
|
|
|
return time.Time{}, fmt.Errorf("cannot parse to value %s", tr.To)
|
|
}
|
|
|
|
// EpochPrecisionToMs converts epoch precision to millisecond, if needed.
|
|
// Only seconds to milliseconds supported right now
|
|
func EpochPrecisionToMs(value float64) float64 {
|
|
s := strconv.FormatFloat(value, 'e', -1, 64)
|
|
if strings.HasSuffix(s, "e+09") {
|
|
return value * float64(1e3)
|
|
}
|
|
|
|
if strings.HasSuffix(s, "e+18") {
|
|
return value / float64(time.Millisecond)
|
|
}
|
|
|
|
return value
|
|
}
|