Skip to content
3 changes: 2 additions & 1 deletion pkg/datasource/datasource.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package datasource
import (
"context"
"errors"
"fmt"

"github.com/alexanderzobnin/grafana-zabbix/pkg/httpclient"
"github.com/alexanderzobnin/grafana-zabbix/pkg/metrics"
Expand Down Expand Up @@ -99,7 +100,7 @@ func (ds *ZabbixDatasource) CheckHealth(ctx context.Context, req *backend.CheckH
}

res.Status = backend.HealthStatusOk
res.Message = message
res.Message = fmt.Sprintf("Zabbix API version %s", message)
return res, nil
}

Expand Down
5 changes: 2 additions & 3 deletions pkg/datasource/zabbix.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,12 @@ func (ds *ZabbixDatasourceInstance) TestConnection(ctx context.Context) (string,
return "", err
}

response, err := ds.zabbix.Request(ctx, &zabbix.ZabbixAPIRequest{Method: "apiinfo.version"})
zabbixVersion, err := ds.zabbix.GetFullVersion(ctx)
if err != nil {
return "", err
}

resultByte, _ := response.MarshalJSON()
return string(resultByte), nil
return zabbixVersion, nil
}

func (ds *ZabbixDatasourceInstance) queryNumericItems(ctx context.Context, query *QueryModel) ([]*data.Frame, error) {
Expand Down
8 changes: 4 additions & 4 deletions pkg/settings/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ type ZabbixDatasourceSettingsDTO struct {
CacheTTL string `json:"cacheTTL"`
Timeout interface{} `json:"timeout"`

DisableDataAlignment bool `json:"disableDataAlignment"`
DisableReadOnlyUsersAck bool `json:"disableReadOnlyUsersAck"`
DisableDataAlignment bool `json:"disableDataAlignment"`
DisableReadOnlyUsersAck bool `json:"disableReadOnlyUsersAck"`
}

// ZabbixDatasourceSettings model
Expand All @@ -29,6 +29,6 @@ type ZabbixDatasourceSettings struct {
CacheTTL time.Duration
Timeout time.Duration

DisableDataAlignment bool `json:"disableDataAlignment"`
DisableReadOnlyUsersAck bool `json:"disableReadOnlyUsersAck"`
DisableDataAlignment bool `json:"disableDataAlignment"`
DisableReadOnlyUsersAck bool `json:"disableReadOnlyUsersAck"`
}
15 changes: 12 additions & 3 deletions pkg/zabbix/methods.go
Original file line number Diff line number Diff line change
Expand Up @@ -524,19 +524,28 @@ func (ds *Zabbix) GetValueMappings(ctx context.Context) ([]ValueMap, error) {
return valuemaps, err
}

func (ds *Zabbix) GetVersion(ctx context.Context) (int, error) {
func (ds *Zabbix) GetFullVersion(ctx context.Context) (string, error) {
result, err := ds.request(ctx, "apiinfo.version", ZabbixAPIParams{})
if err != nil {
return 0, err
return "", err
}

var version string
err = convertTo(result, &version)
if err != nil {
return "", err
}

return version, nil
}

func (ds *Zabbix) GetVersion(ctx context.Context) (int, error) {
fullStringVersion, err := ds.GetFullVersion(ctx)
if err != nil {
return 0, err
}

version = strings.Replace(version[0:3], ".", "", 1)
version := strings.Replace(fullStringVersion[0:3], ".", "", 1)
versionNum, err := strconv.Atoi(version)
return versionNum, err
}
Loading
Loading