mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Fix issues found by staticcheck (#28802)
* Fix linting issues Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
parent
dff84f6a31
commit
574553ec7b
@ -50,20 +50,20 @@ func New(hash string) *Avatar {
|
||||
}
|
||||
}
|
||||
|
||||
func (this *Avatar) Expired() bool {
|
||||
return time.Since(this.timestamp) > (time.Minute * 10)
|
||||
func (a *Avatar) Expired() bool {
|
||||
return time.Since(a.timestamp) > (time.Minute * 10)
|
||||
}
|
||||
|
||||
func (this *Avatar) Encode(wr io.Writer) error {
|
||||
_, err := wr.Write(this.data.Bytes())
|
||||
func (a *Avatar) Encode(wr io.Writer) error {
|
||||
_, err := wr.Write(a.data.Bytes())
|
||||
return err
|
||||
}
|
||||
|
||||
func (this *Avatar) Update() (err error) {
|
||||
func (a *Avatar) Update() (err error) {
|
||||
select {
|
||||
case <-time.After(time.Second * 3):
|
||||
err = fmt.Errorf("get gravatar image %s timeout", this.hash)
|
||||
case err = <-thunder.GoFetch(gravatarSource+this.hash+"?"+this.reqParams, this):
|
||||
err = fmt.Errorf("get gravatar image %s timeout", a.hash)
|
||||
case err = <-thunder.GoFetch(gravatarSource+a.hash+"?"+a.reqParams, a):
|
||||
}
|
||||
return err
|
||||
}
|
||||
@ -75,7 +75,7 @@ type CacheServer struct {
|
||||
|
||||
var validMD5 = regexp.MustCompile("^[a-fA-F0-9]{32}$")
|
||||
|
||||
func (this *CacheServer) Handler(ctx *models.ReqContext) {
|
||||
func (a *CacheServer) Handler(ctx *models.ReqContext) {
|
||||
hash := ctx.Params("hash")
|
||||
|
||||
if len(hash) != 32 || !validMD5.MatchString(hash) {
|
||||
@ -84,7 +84,7 @@ func (this *CacheServer) Handler(ctx *models.ReqContext) {
|
||||
}
|
||||
|
||||
var avatar *Avatar
|
||||
obj, exists := this.cache.Get(hash)
|
||||
obj, exists := a.cache.Get(hash)
|
||||
if exists {
|
||||
avatar = obj.(*Avatar)
|
||||
} else {
|
||||
@ -95,14 +95,14 @@ func (this *CacheServer) Handler(ctx *models.ReqContext) {
|
||||
// The cache item is either expired or newly created, update it from the server
|
||||
if err := avatar.Update(); err != nil {
|
||||
log.Tracef("avatar update error: %v", err)
|
||||
avatar = this.notFound
|
||||
avatar = a.notFound
|
||||
}
|
||||
}
|
||||
|
||||
if avatar.notFound {
|
||||
avatar = this.notFound
|
||||
avatar = a.notFound
|
||||
} else if !exists {
|
||||
if err := this.cache.Add(hash, avatar, gocache.DefaultExpiration); err != nil {
|
||||
if err := a.cache.Add(hash, avatar, gocache.DefaultExpiration); err != nil {
|
||||
log.Tracef("Error adding avatar to cache: %s", err)
|
||||
}
|
||||
}
|
||||
@ -195,9 +195,9 @@ type thunderTask struct {
|
||||
err error
|
||||
}
|
||||
|
||||
func (this *thunderTask) Fetch() {
|
||||
this.err = this.fetch()
|
||||
this.Done()
|
||||
func (a *thunderTask) Fetch() {
|
||||
a.err = a.fetch()
|
||||
a.Done()
|
||||
}
|
||||
|
||||
var client = &http.Client{
|
||||
@ -205,11 +205,11 @@ var client = &http.Client{
|
||||
Transport: &http.Transport{Proxy: http.ProxyFromEnvironment},
|
||||
}
|
||||
|
||||
func (this *thunderTask) fetch() error {
|
||||
this.Avatar.timestamp = time.Now()
|
||||
func (a *thunderTask) fetch() error {
|
||||
a.Avatar.timestamp = time.Now()
|
||||
|
||||
log.Debugf("avatar.fetch(fetch new avatar): %s", this.Url)
|
||||
req, _ := http.NewRequest("GET", this.Url, nil)
|
||||
log.Debugf("avatar.fetch(fetch new avatar): %s", a.Url)
|
||||
req, _ := http.NewRequest("GET", a.Url, nil)
|
||||
req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/jpeg,image/png,*/*;q=0.8")
|
||||
req.Header.Set("Accept-Encoding", "deflate,sdch")
|
||||
req.Header.Set("Accept-Language", "zh-CN,zh;q=0.8")
|
||||
@ -217,19 +217,19 @@ func (this *thunderTask) fetch() error {
|
||||
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36")
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
this.Avatar.notFound = true
|
||||
a.Avatar.notFound = true
|
||||
return fmt.Errorf("gravatar unreachable, %v", err)
|
||||
}
|
||||
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != 200 {
|
||||
this.Avatar.notFound = true
|
||||
a.Avatar.notFound = true
|
||||
return fmt.Errorf("status code: %d", resp.StatusCode)
|
||||
}
|
||||
|
||||
this.Avatar.data = &bytes.Buffer{}
|
||||
writer := bufio.NewWriter(this.Avatar.data)
|
||||
a.Avatar.data = &bytes.Buffer{}
|
||||
writer := bufio.NewWriter(a.Avatar.data)
|
||||
|
||||
_, err = io.Copy(writer, resp.Body)
|
||||
return err
|
||||
|
@ -179,7 +179,7 @@ func (e *ApplicationInsightsDatasource) executeQuery(ctx context.Context, query
|
||||
|
||||
if res.StatusCode/100 != 2 {
|
||||
azlog.Debug("Request failed", "status", res.Status, "body", string(body))
|
||||
return nil, fmt.Errorf("Request failed status: %v", res.Status)
|
||||
return nil, fmt.Errorf("request failed, status: %s", res.Status)
|
||||
}
|
||||
|
||||
mr := MetricsResult{}
|
||||
@ -204,7 +204,7 @@ func (e *ApplicationInsightsDatasource) createRequest(ctx context.Context, dsInf
|
||||
// find plugin
|
||||
plugin, ok := plugins.DataSources[dsInfo.Type]
|
||||
if !ok {
|
||||
return nil, errors.New("Unable to find datasource plugin Azure Application Insights")
|
||||
return nil, errors.New("unable to find datasource plugin Azure Application Insights")
|
||||
}
|
||||
|
||||
cloudName := dsInfo.JsonData.Get("cloudName").MustString("azuremonitor")
|
||||
|
@ -207,7 +207,7 @@ func (e *AzureLogAnalyticsDatasource) createRequest(ctx context.Context, dsInfo
|
||||
req, err := http.NewRequest(http.MethodGet, u.String(), nil)
|
||||
if err != nil {
|
||||
azlog.Debug("Failed to create request", "error", err)
|
||||
return nil, errutil.Wrap("Failed to create request", err)
|
||||
return nil, errutil.Wrap("failed to create request", err)
|
||||
}
|
||||
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
@ -216,7 +216,7 @@ func (e *AzureLogAnalyticsDatasource) createRequest(ctx context.Context, dsInfo
|
||||
// find plugin
|
||||
plugin, ok := plugins.DataSources[dsInfo.Type]
|
||||
if !ok {
|
||||
return nil, errors.New("Unable to find datasource plugin Azure Monitor")
|
||||
return nil, errors.New("unable to find datasource plugin Azure Monitor")
|
||||
}
|
||||
cloudName := dsInfo.JsonData.Get("cloudName").MustString("azuremonitor")
|
||||
|
||||
@ -272,7 +272,7 @@ func (e *AzureLogAnalyticsDatasource) unmarshalResponse(res *http.Response) (Azu
|
||||
|
||||
if res.StatusCode/100 != 2 {
|
||||
azlog.Debug("Request failed", "status", res.Status, "body", string(body))
|
||||
return AzureLogAnalyticsResponse{}, fmt.Errorf("Request failed status: %v: %w", res.Status, fmt.Errorf(string(body)))
|
||||
return AzureLogAnalyticsResponse{}, fmt.Errorf("request failed, status: %s, body: %s", res.Status, string(body))
|
||||
}
|
||||
|
||||
var data AzureLogAnalyticsResponse
|
||||
|
@ -220,7 +220,7 @@ func (e *AzureMonitorDatasource) createRequest(ctx context.Context, dsInfo *mode
|
||||
// find plugin
|
||||
plugin, ok := plugins.DataSources[dsInfo.Type]
|
||||
if !ok {
|
||||
return nil, errors.New("Unable to find datasource plugin Azure Monitor")
|
||||
return nil, errors.New("unable to find datasource plugin Azure Monitor")
|
||||
}
|
||||
|
||||
cloudName := dsInfo.JsonData.Get("cloudName").MustString("azuremonitor")
|
||||
@ -263,7 +263,7 @@ func (e *AzureMonitorDatasource) unmarshalResponse(res *http.Response) (AzureMon
|
||||
|
||||
if res.StatusCode/100 != 2 {
|
||||
azlog.Debug("Request failed", "status", res.Status, "body", string(body))
|
||||
return AzureMonitorResponse{}, fmt.Errorf("Request failed status: %v", res.Status)
|
||||
return AzureMonitorResponse{}, fmt.Errorf("request failed, status: %s", res.Status)
|
||||
}
|
||||
|
||||
var data AzureMonitorResponse
|
||||
|
@ -66,7 +66,7 @@ func (e *AzureMonitorExecutor) Query(ctx context.Context, dsInfo *models.DataSou
|
||||
case "Insights Analytics":
|
||||
insightsAnalyticsQueries = append(insightsAnalyticsQueries, query)
|
||||
default:
|
||||
return nil, fmt.Errorf("Alerting not supported for %s", queryType)
|
||||
return nil, fmt.Errorf("alerting not supported for %q", queryType)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -139,7 +139,7 @@ func (e *InsightsAnalyticsDatasource) executeQuery(ctx context.Context, query *I
|
||||
|
||||
if res.StatusCode/100 != 2 {
|
||||
azlog.Debug("Request failed", "status", res.Status, "body", string(body))
|
||||
return queryResultError(fmt.Errorf("Request failed status: %v %w", res.Status, fmt.Errorf(string(body))))
|
||||
return queryResultError(fmt.Errorf("request failed, status: %s, body: %s", res.Status, body))
|
||||
}
|
||||
var logResponse AzureLogAnalyticsResponse
|
||||
d := json.NewDecoder(bytes.NewReader(body))
|
||||
@ -180,7 +180,7 @@ func (e *InsightsAnalyticsDatasource) createRequest(ctx context.Context, dsInfo
|
||||
// find plugin
|
||||
plugin, ok := plugins.DataSources[dsInfo.Type]
|
||||
if !ok {
|
||||
return nil, errors.New("Unable to find datasource plugin Azure Application Insights")
|
||||
return nil, errors.New("unable to find datasource plugin Azure Application Insights")
|
||||
}
|
||||
|
||||
cloudName := dsInfo.JsonData.Get("cloudName").MustString("azuremonitor")
|
||||
|
@ -126,7 +126,7 @@ func (m *kqlMacroEngine) evaluateMacro(name string, defaultTimeField string, arg
|
||||
case "escapeMulti":
|
||||
return "", fmt.Errorf("escapeMulti macro not formatted correctly")
|
||||
default:
|
||||
return "", fmt.Errorf("Unknown macro %v", name)
|
||||
return "", fmt.Errorf("unknown macro %q", name)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ func (tg *TimeGrain) createISO8601DurationFromIntervalMS(interval int64) (string
|
||||
timeValueString := formatted[0 : len(formatted)-1]
|
||||
timeValue, err := strconv.Atoi(timeValueString)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("Could not parse interval %v to an ISO 8061 duration", interval)
|
||||
return "", fmt.Errorf("could not parse interval %q to an ISO 8061 duration: %w", interval, err)
|
||||
}
|
||||
|
||||
unit := formatted[len(formatted)-1:]
|
||||
|
@ -103,7 +103,7 @@ func (e *CloudMonitoringExecutor) getGCEDefaultProject(ctx context.Context, tsdb
|
||||
|
||||
gceDefaultProject, err := e.getDefaultProject(ctx)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to retrieve default project from GCE metadata server. error: %v", err)
|
||||
return nil, fmt.Errorf("failed to retrieve default project from GCE metadata server, error: %w", err)
|
||||
}
|
||||
|
||||
queryResult.Meta.Set("defaultProject", gceDefaultProject)
|
||||
@ -769,7 +769,7 @@ func (e *CloudMonitoringExecutor) createRequest(ctx context.Context, dsInfo *mod
|
||||
req, err := http.NewRequest(http.MethodGet, "https://monitoring.googleapis.com/", nil)
|
||||
if err != nil {
|
||||
slog.Error("Failed to create request", "error", err)
|
||||
return nil, fmt.Errorf("Failed to create request. error: %v", err)
|
||||
return nil, fmt.Errorf("failed to create request: %w", err)
|
||||
}
|
||||
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
@ -778,7 +778,7 @@ func (e *CloudMonitoringExecutor) createRequest(ctx context.Context, dsInfo *mod
|
||||
// find plugin
|
||||
plugin, ok := plugins.DataSources[dsInfo.Type]
|
||||
if !ok {
|
||||
return nil, errors.New("Unable to find datasource plugin CloudMonitoring")
|
||||
return nil, errors.New("unable to find datasource plugin CloudMonitoring")
|
||||
}
|
||||
|
||||
var cloudMonitoringRoute *plugins.AppPluginRoute
|
||||
@ -799,14 +799,14 @@ func (e *CloudMonitoringExecutor) getDefaultProject(ctx context.Context) (string
|
||||
if authenticationType == gceAuthentication {
|
||||
defaultCredentials, err := google.FindDefaultCredentials(ctx, "https://www.googleapis.com/auth/monitoring.read")
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("Failed to retrieve default project from GCE metadata server. error: %v", err)
|
||||
return "", fmt.Errorf("failed to retrieve default project from GCE metadata server: %w", err)
|
||||
}
|
||||
token, err := defaultCredentials.TokenSource.Token()
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("Failed to retrieve GCP credential token. error: %v", err)
|
||||
return "", fmt.Errorf("failed to retrieve GCP credential token: %w", err)
|
||||
}
|
||||
if !token.Valid() {
|
||||
return "", errors.New("Failed to validate GCP credentials")
|
||||
return "", errors.New("failed to validate GCP credentials")
|
||||
}
|
||||
|
||||
return defaultCredentials.ProjectID, nil
|
||||
|
@ -68,7 +68,7 @@ func (e *GraphiteExecutor) Query(ctx context.Context, dsInfo *models.DataSource,
|
||||
|
||||
if target == "" {
|
||||
glog.Error("No targets in query model", "models without targets", strings.Join(emptyQueries, "\n"))
|
||||
return nil, errors.New("No query target found for the alert rule")
|
||||
return nil, errors.New("no query target found for the alert rule")
|
||||
}
|
||||
|
||||
formData["target"] = []string{target}
|
||||
@ -140,7 +140,7 @@ func (e *GraphiteExecutor) parseResponse(res *http.Response) ([]TargetResponseDT
|
||||
|
||||
if res.StatusCode/100 != 2 {
|
||||
glog.Info("Request failed", "status", res.Status, "body", string(body))
|
||||
return nil, fmt.Errorf("Request failed status: %v", res.Status)
|
||||
return nil, fmt.Errorf("request failed, status: %s", res.Status)
|
||||
}
|
||||
|
||||
var data []TargetResponseDTO
|
||||
@ -163,7 +163,7 @@ func (e *GraphiteExecutor) createRequest(dsInfo *models.DataSource, data url.Val
|
||||
req, err := http.NewRequest(http.MethodPost, u.String(), strings.NewReader(data.Encode()))
|
||||
if err != nil {
|
||||
glog.Info("Failed to create request", "error", err)
|
||||
return nil, fmt.Errorf("Failed to create request. error: %v", err)
|
||||
return nil, fmt.Errorf("failed to create request: %w", err)
|
||||
}
|
||||
|
||||
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
|
||||
|
@ -125,7 +125,7 @@ func (fb *frameBuilder) Init(metadata *query.FluxTableMetadata) error {
|
||||
if col != nil {
|
||||
fb.timeColumn = col.Name()
|
||||
fb.timeDisplay = "Time"
|
||||
if "_time" != fb.timeColumn {
|
||||
if fb.timeColumn != "_time" {
|
||||
fb.timeDisplay = col.Name()
|
||||
}
|
||||
return nil
|
||||
|
@ -85,7 +85,7 @@ func (e *InfluxDBExecutor) Query(ctx context.Context, dsInfo *models.DataSource,
|
||||
|
||||
defer resp.Body.Close()
|
||||
if resp.StatusCode/100 != 2 {
|
||||
return nil, fmt.Errorf("Influxdb returned statuscode invalid status code: %v", resp.Status)
|
||||
return nil, fmt.Errorf("InfluxDB returned statuscode invalid status code: %s", resp.Status)
|
||||
}
|
||||
|
||||
var response Response
|
||||
|
@ -129,6 +129,6 @@ func (m *msSqlMacroEngine) evaluateMacro(name string, args []string) (string, er
|
||||
}
|
||||
return "", err
|
||||
default:
|
||||
return "", fmt.Errorf("Unknown macro %v", name)
|
||||
return "", fmt.Errorf("unknown macro %q", name)
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ func (m *mySqlMacroEngine) Interpolate(query *tsdb.Query, timeRange *tsdb.TimeRa
|
||||
matches := restrictedRegExp.FindAllStringSubmatch(sql, 1)
|
||||
if len(matches) > 0 {
|
||||
m.logger.Error("show grants, session_user(), current_user(), system_user() or user() not allowed in query")
|
||||
return "", errors.New("Invalid query. Inspect Grafana server log for details")
|
||||
return "", errors.New("invalid query - inspect Grafana server log for details")
|
||||
}
|
||||
|
||||
rExp, _ := regexp.Compile(sExpr)
|
||||
@ -135,6 +135,6 @@ func (m *mySqlMacroEngine) evaluateMacro(name string, args []string) (string, er
|
||||
}
|
||||
return "", err
|
||||
default:
|
||||
return "", fmt.Errorf("Unknown macro %v", name)
|
||||
return "", fmt.Errorf("unknown macro %v", name)
|
||||
}
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ func TestMacroEngine(t *testing.T) {
|
||||
|
||||
for _, tc := range tcs {
|
||||
_, err := engine.Interpolate(nil, nil, tc)
|
||||
So(err.Error(), ShouldEqual, "Invalid query. Inspect Grafana server log for details")
|
||||
So(err.Error(), ShouldEqual, "invalid query - inspect Grafana server log for details")
|
||||
}
|
||||
})
|
||||
})
|
||||
|
@ -150,4 +150,4 @@ func (t *mysqlQueryResultTransformer) TransformQueryError(err error) error {
|
||||
return err
|
||||
}
|
||||
|
||||
var errQueryFailed = errors.New("Query failed. Please inspect Grafana server log for details")
|
||||
var errQueryFailed = errors.New("query failed - please inspect Grafana server log for details")
|
||||
|
@ -88,13 +88,13 @@ func (e *OpenTsdbExecutor) createRequest(dsInfo *models.DataSource, data OpenTsd
|
||||
postData, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
plog.Info("Failed marshaling data", "error", err)
|
||||
return nil, fmt.Errorf("Failed to create request. error: %v", err)
|
||||
return nil, fmt.Errorf("failed to create request: %w", err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequest(http.MethodPost, u.String(), strings.NewReader(string(postData)))
|
||||
if err != nil {
|
||||
plog.Info("Failed to create request", "error", err)
|
||||
return nil, fmt.Errorf("Failed to create request. error: %v", err)
|
||||
return nil, fmt.Errorf("failed to create request: %w", err)
|
||||
}
|
||||
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
@ -117,7 +117,7 @@ func (e *OpenTsdbExecutor) parseResponse(query OpenTsdbQuery, res *http.Response
|
||||
|
||||
if res.StatusCode/100 != 2 {
|
||||
plog.Info("Request failed", "status", res.Status, "body", string(body))
|
||||
return nil, fmt.Errorf("Request failed status: %v", res.Status)
|
||||
return nil, fmt.Errorf("request failed, status: %s", res.Status)
|
||||
}
|
||||
|
||||
var data []OpenTsdbResponse
|
||||
|
@ -159,6 +159,6 @@ func (m *postgresMacroEngine) evaluateMacro(name string, args []string) (string,
|
||||
}
|
||||
return "", err
|
||||
default:
|
||||
return "", fmt.Errorf("Unknown macro %v", name)
|
||||
return "", fmt.Errorf("unknown macro %q", name)
|
||||
}
|
||||
}
|
||||
|
@ -193,7 +193,7 @@ func parseResponse(value model.Value, query *PrometheusQuery) (*tsdb.QueryResult
|
||||
|
||||
data, ok := value.(model.Matrix)
|
||||
if !ok {
|
||||
return queryRes, fmt.Errorf("Unsupported result format: %s", value.Type().String())
|
||||
return queryRes, fmt.Errorf("unsupported result format: %q", value.Type().String())
|
||||
}
|
||||
|
||||
for _, v := range data {
|
||||
|
@ -343,7 +343,7 @@ func (e *sqlQueryEndpoint) transformToTimeSeries(query *tsdb.Query, rows *core.R
|
||||
}
|
||||
|
||||
if cfg.timeIndex == -1 {
|
||||
return fmt.Errorf("Found no column named %s", strings.Join(e.timeColumnNames, " or "))
|
||||
return fmt.Errorf("found no column named %q", strings.Join(e.timeColumnNames, " or "))
|
||||
}
|
||||
|
||||
if cfg.fillMissing {
|
||||
@ -666,7 +666,10 @@ func ConvertSqlValueColumnToFloat(columnName string, columnValue interface{}) (n
|
||||
case nil:
|
||||
value.Valid = false
|
||||
default:
|
||||
return null.NewFloat(0, false), fmt.Errorf("Value column must have numeric datatype, column: %s type: %T value: %v", columnName, typedValue, typedValue)
|
||||
return null.NewFloat(0, false), fmt.Errorf(
|
||||
"value column must have numeric datatype, column: %s, type: %T, value: %v",
|
||||
columnName, typedValue, typedValue,
|
||||
)
|
||||
}
|
||||
|
||||
return value, nil
|
||||
|
@ -57,7 +57,7 @@ func DecodeBasicAuthHeader(header string) (string, string, error) {
|
||||
|
||||
userAndPass := strings.SplitN(string(decoded), ":", 2)
|
||||
if len(userAndPass) != 2 {
|
||||
return "", "", errors.New("Invalid basic auth header")
|
||||
return "", "", errors.New("invalid basic auth header")
|
||||
}
|
||||
|
||||
return userAndPass[0], userAndPass[1], nil
|
||||
|
@ -63,7 +63,7 @@ func walk(path string, info os.FileInfo, resolvedPath string, symlinkPathsFollow
|
||||
// vout("SymLink Path: %v, links to: %v", resolvedPath, path2)
|
||||
if symlinkPathsFollowed != nil {
|
||||
if _, ok := symlinkPathsFollowed[path2]; ok {
|
||||
errMsg := "Potential SymLink Infinite Loop. Path: %v, Link To: %v"
|
||||
errMsg := "potential symLink infinite loop, path: %v, link to: %v"
|
||||
return fmt.Errorf(errMsg, resolvedPath, path2)
|
||||
}
|
||||
symlinkPathsFollowed[path2] = true
|
||||
|
@ -53,7 +53,7 @@ func SplitHostPortDefault(input, defaultHost, defaultPort string) (NetworkAddres
|
||||
addrEnd := strings.LastIndex(input, "]")
|
||||
if addrEnd < 0 {
|
||||
// Malformed address
|
||||
return addr, fmt.Errorf("Malformed IPv6 address: '%s'", input)
|
||||
return addr, fmt.Errorf("malformed IPv6 address: '%s'", input)
|
||||
}
|
||||
|
||||
start = addrEnd
|
||||
@ -83,7 +83,7 @@ func SplitHostPortDefault(input, defaultHost, defaultPort string) (NetworkAddres
|
||||
// SplitHostPort splits ip address/hostname string by host and port
|
||||
func SplitHostPort(input string) (NetworkAddress, error) {
|
||||
if len(input) == 0 {
|
||||
return NetworkAddress{}, fmt.Errorf("Input is empty")
|
||||
return NetworkAddress{}, fmt.Errorf("input is empty")
|
||||
}
|
||||
return SplitHostPortDefault(input, "", "")
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ func TestParseIPAddress_Invalid(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
input: "[::1",
|
||||
err: "failed to split network address \"[::1\" by host and port: Malformed IPv6 address: '[::1'",
|
||||
err: "failed to split network address \"[::1\" by host and port: malformed IPv6 address: '[::1'",
|
||||
},
|
||||
{
|
||||
input: "::1]",
|
||||
@ -40,7 +40,7 @@ func TestParseIPAddress_Invalid(t *testing.T) {
|
||||
},
|
||||
{
|
||||
input: "",
|
||||
err: "failed to split network address \"\" by host and port: Input is empty",
|
||||
err: "failed to split network address \"\" by host and port: input is empty",
|
||||
},
|
||||
}
|
||||
for _, testcase := range tests {
|
||||
|
Loading…
Reference in New Issue
Block a user