fix expired token renewal
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/alexanderzobnin/grafana-zabbix/pkg/zabbixapi"
|
"github.com/alexanderzobnin/grafana-zabbix/pkg/zabbixapi"
|
||||||
@@ -96,7 +97,7 @@ func (ds *ZabbixDatasourceInstance) ZabbixRequest(ctx context.Context, method st
|
|||||||
}
|
}
|
||||||
|
|
||||||
result, err = ds.zabbixAPI.Request(ctx, method, params)
|
result, err = ds.zabbixAPI.Request(ctx, method, params)
|
||||||
if err == zabbixapi.ErrNotAuthenticated {
|
if err == zabbixapi.ErrNotAuthenticated || isNotAuthorized(err) {
|
||||||
err = ds.login(ctx)
|
err = ds.login(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -530,3 +531,14 @@ func parseFilter(filter string) (*regexp.Regexp, error) {
|
|||||||
|
|
||||||
return regexp.Compile(pattern)
|
return regexp.Compile(pattern)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isNotAuthorized(err error) bool {
|
||||||
|
if err == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
message := err.Error()
|
||||||
|
return strings.Contains(message, "Session terminated, re-login, please.") ||
|
||||||
|
strings.Contains(message, "Not authorised.") ||
|
||||||
|
strings.Contains(message, "Not authorized.")
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user