test and update asset pattern to catch ip addresses
parent
7c2d663401
commit
5f21098fdc
|
|
@ -38,7 +38,7 @@ type Config struct {
|
|||
}
|
||||
|
||||
var (
|
||||
renderAssetPattern = `(dpg|svc|red)-[a-z0-9-]*[a-z0-9]`
|
||||
renderAssetPattern = `(dpg|svc|red)-[a-z0-9-]*[a-z0-9]|ip-[0-9]+-[0-9]+-[0-9]+-[0-9]+\.[a-z]+-[a-z]+-[0-9]+\.compute\.internal`
|
||||
renderDatacenterPattern = `[a-z]{4}[a-z]*-[0-9]`
|
||||
renderEventNamePattern = `(\[[^\]]*\] *)?(?P<result>.*)`
|
||||
)
|
||||
|
|
|
|||
20
slack.go
20
slack.go
|
|
@ -61,14 +61,7 @@ func newSlackToModelProcess(cfg Config) processFunc {
|
|||
cfg.DatacenterPattern: &s.Datacenter,
|
||||
cfg.EventNamePattern: &s.EventName,
|
||||
} {
|
||||
r := regexp.MustCompile(pattern)
|
||||
parsed := r.FindString(*ptr)
|
||||
for i, name := range r.SubexpNames() {
|
||||
if i > 0 && name != "" {
|
||||
parsed = r.FindStringSubmatch(*ptr)[i]
|
||||
}
|
||||
}
|
||||
*ptr = parsed
|
||||
*ptr = withPattern(pattern, *ptr)
|
||||
}
|
||||
|
||||
event := model.Event{}
|
||||
|
|
@ -93,6 +86,17 @@ func newSlackToModelProcess(cfg Config) processFunc {
|
|||
}
|
||||
}
|
||||
|
||||
func withPattern(pattern string, given string) string {
|
||||
r := regexp.MustCompile(pattern)
|
||||
parsed := r.FindString(given)
|
||||
for i, name := range r.SubexpNames() {
|
||||
if i > 0 && name != "" {
|
||||
parsed = r.FindStringSubmatch(given)[i]
|
||||
}
|
||||
}
|
||||
return parsed
|
||||
}
|
||||
|
||||
type (
|
||||
parsedSlackMessage struct {
|
||||
ID string
|
||||
|
|
|
|||
|
|
@ -266,3 +266,37 @@ func TestWrappedSlack(t *testing.T) {
|
|||
t.Error(got, got2)
|
||||
}
|
||||
}
|
||||
|
||||
func TestWithPattern(t *testing.T) {
|
||||
cases := map[string]struct {
|
||||
given string
|
||||
pattern string
|
||||
want string
|
||||
}{
|
||||
"pods unavailable on node": {
|
||||
given: `pods are unavailable on node ip-12-345-67-890.xx-yyyyy-1.compute.internal.`,
|
||||
pattern: renderAssetPattern,
|
||||
want: `ip-12-345-67-890.xx-yyyyy-1.compute.internal`,
|
||||
},
|
||||
"redis err": {
|
||||
given: `Redis instance red-abc123 is emitting Some error repeatedly`,
|
||||
pattern: renderAssetPattern,
|
||||
want: `red-abc123`,
|
||||
},
|
||||
"pg err": {
|
||||
given: `db dpg-xyz123 is in a pinch`,
|
||||
pattern: renderAssetPattern,
|
||||
want: `dpg-xyz123`,
|
||||
},
|
||||
}
|
||||
|
||||
for name, d := range cases {
|
||||
c := d
|
||||
t.Run(name, func(t *testing.T) {
|
||||
got := withPattern(c.pattern, c.given)
|
||||
if got != c.want {
|
||||
t.Errorf("withPattern(%q, %q) expected %q but got %q", c.pattern, c.given, c.want, got)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue