Merge pull request #1333 from prometheus/vendorup

Update common/model vendoring
This commit is contained in:
Fabian Reinartz 2016-01-22 12:24:52 +01:00
commit e7b6a01888
3 changed files with 32 additions and 24 deletions

View File

@ -18,7 +18,6 @@ import (
"fmt"
"regexp"
"time"
"unicode/utf8"
)
// Matcher describes a matches the value of a given label.
@ -54,7 +53,7 @@ func (m *Matcher) Validate() error {
if _, err := regexp.Compile(m.Value); err != nil {
return fmt.Errorf("invalid regular expression %q", m.Value)
}
} else if !utf8.ValidString(m.Value) || len(m.Value) == 0 {
} else if !LabelValue(m.Value).IsValid() || len(m.Value) == 0 {
return fmt.Errorf("invalid value %q", m.Value)
}
return nil

View File

@ -163,6 +163,8 @@ func (t *Time) UnmarshalJSON(b []byte) error {
// This type should not propagate beyond the scope of input/output processing.
type Duration time.Duration
var durationRE = regexp.MustCompile("^([0-9]+)(d|h|m|s|ms)$")
// StringToDuration parses a string into a time.Duration, assuming that a year
// a day always has 24h.
func ParseDuration(durationStr string) (Duration, error) {
@ -170,44 +172,51 @@ func ParseDuration(durationStr string) (Duration, error) {
if len(matches) != 3 {
return 0, fmt.Errorf("not a valid duration string: %q", durationStr)
}
durSeconds, _ := strconv.Atoi(matches[1])
dur := time.Duration(durSeconds) * time.Second
unit := matches[2]
switch unit {
var (
n, _ = strconv.Atoi(matches[1])
dur = time.Duration(n) * time.Millisecond
)
switch unit := matches[2]; unit {
case "d":
dur *= 60 * 60 * 24
dur *= 1000 * 60 * 60 * 24
case "h":
dur *= 60 * 60
dur *= 1000 * 60 * 60
case "m":
dur *= 60
dur *= 1000 * 60
case "s":
dur *= 1
dur *= 1000
case "ms":
// Value already correct
default:
return 0, fmt.Errorf("invalid time unit in duration string: %q", unit)
}
return Duration(dur), nil
}
var durationRE = regexp.MustCompile("^([0-9]+)([ywdhms]+)$")
func (d Duration) String() string {
seconds := int64(time.Duration(d) / time.Second)
var (
ms = int64(time.Duration(d) / time.Millisecond)
unit = "ms"
)
factors := map[string]int64{
"d": 60 * 60 * 24,
"h": 60 * 60,
"m": 60,
"s": 1,
"d": 1000 * 60 * 60 * 24,
"h": 1000 * 60 * 60,
"m": 1000 * 60,
"s": 1000,
"ms": 1,
}
unit := "s"
switch int64(0) {
case seconds % factors["d"]:
case ms % factors["d"]:
unit = "d"
case seconds % factors["h"]:
case ms % factors["h"]:
unit = "h"
case seconds % factors["m"]:
case ms % factors["m"]:
unit = "m"
case ms % factors["s"]:
unit = "s"
}
return fmt.Sprintf("%v%v", seconds/factors[unit], unit)
return fmt.Sprintf("%v%v", ms/factors[unit], unit)
}
// MarshalYAML implements the yaml.Marshaler interface.

4
vendor/vendor.json vendored
View File

@ -169,8 +169,8 @@
},
{
"path": "github.com/prometheus/common/model",
"revision": "56b90312e937d43b930f06a59bf0d6a4ae1944bc",
"revisionTime": "2015-12-09T21:44:25+01:00"
"revision": "b0d797186bfbaf6d785031c6c2d32f75c720007d",
"revisionTime": "2016-01-22T12:15:42+01:00"
},
{
"path": "github.com/prometheus/common/route",