Skip to content

Commit

Permalink
sysfs: golangci-lint fixes.
Browse files Browse the repository at this point in the history
Signed-off-by: Krisztian Litkey <[email protected]>
  • Loading branch information
klihub authored and askervin committed Dec 11, 2024
1 parent 659194b commit a122a15
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 74 deletions.
38 changes: 19 additions & 19 deletions pkg/sysfs/parsers.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
package sysfs

import (
"io/ioutil"
"os"
"strconv"
"strings"
)
Expand Down Expand Up @@ -70,43 +70,43 @@ func parseNumeric(path, value string, ptr interface{}) error {
return err
}

switch ptr.(type) {
switch ptr := ptr.(type) {
case *int:
num, err = strconv.ParseInt(numstr, 0, strconv.IntSize)
*ptr.(*int) = int(num * unit)
*ptr = int(num * unit)
case *int8:
num, err = strconv.ParseInt(numstr, 0, 8)
*ptr.(*int8) = int8(num * unit)
*ptr = int8(num * unit)
case *int16:
num, err = strconv.ParseInt(numstr, 0, 16)
*ptr.(*int16) = int16(num * unit)
*ptr = int16(num * unit)
case *int32:
num, err = strconv.ParseInt(numstr, 0, 32)
*ptr.(*int32) = int32(num * unit)
*ptr = int32(num * unit)
case *int64:
num, err = strconv.ParseInt(numstr, 0, 64)
*ptr.(*int64) = int64(num * unit)
*ptr = int64(num * unit)
case *uint:
num, err = strconv.ParseInt(numstr, 0, strconv.IntSize)
*ptr.(*uint) = uint(num * unit)
*ptr = uint(num * unit)
case *uint8:
num, err = strconv.ParseInt(numstr, 0, 8)
*ptr.(*uint8) = uint8(num * unit)
*ptr = uint8(num * unit)
case *uint16:
num, err = strconv.ParseInt(numstr, 0, 16)
*ptr.(*uint16) = uint16(num * unit)
*ptr = uint16(num * unit)
case *uint32:
num, err = strconv.ParseInt(numstr, 0, 32)
*ptr.(*uint32) = uint32(num * unit)
*ptr = uint32(num * unit)
case *uint64:
num, err = strconv.ParseInt(numstr, 0, 64)
*ptr.(*uint64) = uint64(num * unit)
*ptr = uint64(num * unit)
case *float32:
f, err = strconv.ParseFloat(numstr, 32)
*ptr.(*float32) = float32(f) * float32(unit)
*ptr = float32(f) * float32(unit)
case *float64:
f, err = strconv.ParseFloat(numstr, 64)
*ptr.(*float64) = f * float64(unit)
*ptr = f * float64(unit)

default:
err = sysfsError(path, "can't parse numeric value '%s' into type %T", value, ptr)
Expand All @@ -119,9 +119,9 @@ func parseNumeric(path, value string, ptr interface{}) error {
func ParseFileEntries(path string, values map[string]interface{}, pickFn PickEntryFn) error {
var err error

data, err := ioutil.ReadFile(path)
data, err := os.ReadFile(path)
if err != nil {
sysfsError(path, "failed to read file: %v", err)
return sysfsError(path, "failed to read file: %v", err)
}

left := len(values)
Expand All @@ -136,7 +136,7 @@ func ParseFileEntries(path string, values map[string]interface{}, pickFn PickEnt
continue
}

switch ptr.(type) {
switch ptr := ptr.(type) {
case *int, *int8, *int32, *int16, *int64, *uint, *uint8, *uint16, *uint32, *uint64:
if err = parseNumeric(path, value, ptr); err != nil {
return err
Expand All @@ -146,9 +146,9 @@ func ParseFileEntries(path string, values map[string]interface{}, pickFn PickEnt
return err
}
case *string:
*ptr.(*string) = value
*ptr = value
case *bool:
*ptr.(*bool), err = strconv.ParseBool(value)
*ptr, err = strconv.ParseBool(value)
if err != nil {
return sysfsError(path, "failed to parse line %s, value '%s' for boolean key '%s'",
line, value, key)
Expand Down
13 changes: 8 additions & 5 deletions pkg/sysfs/system.go
Original file line number Diff line number Diff line change
Expand Up @@ -243,9 +243,8 @@ type cpu struct {

// CPUFreq is a CPU frequency scaling range
type CPUFreq struct {
min uint64 // minimum frequency (kHz)
max uint64 // maximum frequency (kHz)
all []uint64 // discrete set of frequencies if applicable/known
min uint64 // minimum frequency (kHz)
max uint64 // maximum frequency (kHz)
}

// EPP represents the value of a CPU energy performance profile
Expand Down Expand Up @@ -926,8 +925,12 @@ func (sys *system) discoverCPU(path string) error {
if _, err := readSysfsEntry(path, "topology/physical_package_id", &cpu.pkg); err != nil {
return err
}
readSysfsEntry(path, "topology/die_id", &cpu.die)
readSysfsEntry(path, "topology/cluster_id", &cpu.cluster)
if _, err := readSysfsEntry(path, "topology/die_id", &cpu.die); err != nil {
log.Warnf("failed to read die ID for CPU %d: %v", cpu.id, err)
}
if _, err := readSysfsEntry(path, "topology/cluster_id", &cpu.cluster); err != nil {
log.Warnf("failed to read cluster ID for CPU %d: %v", cpu.id, err)
}
if _, err := readSysfsEntry(path, "topology/core_id", &cpu.core); err != nil {
return err
}
Expand Down
100 changes: 50 additions & 50 deletions pkg/sysfs/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ package sysfs

import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strconv"
Expand Down Expand Up @@ -54,7 +53,7 @@ func readSysfsEntry(base, entry string, ptr interface{}, args ...interface{}) (s

path := filepath.Join(base, entry)

blob, err := ioutil.ReadFile(path)
blob, err := os.ReadFile(path)
if err != nil {
return "", sysfsError(path, "failed to read sysfs entry: %w", err)
}
Expand All @@ -64,7 +63,7 @@ func readSysfsEntry(base, entry string, ptr interface{}, args ...interface{}) (s
return buf, nil
}

switch ptr.(type) {
switch ptr := ptr.(type) {
case *string, *int, *uint, *int8, *uint8, *int16, *uint16, *int32, *uint32, *int64, *uint64:
err := parseValue(buf, ptr)
if err != nil {
Expand All @@ -83,7 +82,7 @@ func readSysfsEntry(base, entry string, ptr interface{}, args ...interface{}) (s
}
return buf, nil
case *EPP:
*ptr.(*EPP) = EPPFromString(buf)
*ptr = EPPFromString(buf)
return buf, nil
}

Expand Down Expand Up @@ -151,27 +150,27 @@ func getSeparator(defaultVal string, args []interface{}) (string, error) {

// Parse a value from a string.
func parseValue(str string, value interface{}) error {
switch value.(type) {
switch value := value.(type) {
case *string:
*value.(*string) = str
*value = str

case *int, *int8, *int16, *int32, *int64:
v, err := strconv.ParseInt(str, 0, 0)
if err != nil {
return fmt.Errorf("invalid entry '%s': %w", str, err)
}

switch value.(type) {
switch value := value.(type) {
case *int:
*value.(*int) = int(v)
*value = int(v)
case *int8:
*value.(*int8) = int8(v)
*value = int8(v)
case *int16:
*value.(*int16) = int16(v)
*value = int16(v)
case *int32:
*value.(*int32) = int32(v)
case int64:
*value.(*int64) = v
*value = int32(v)
case *int64:
*value = v
}

case *uint, *uint8, *uint16, *uint32, *uint64:
Expand All @@ -180,17 +179,17 @@ func parseValue(str string, value interface{}) error {
return fmt.Errorf("invalid entry: '%s': %w", str, err)
}

switch value.(type) {
switch value := value.(type) {
case *uint:
*value.(*uint) = uint(v)
*value = uint(v)
case *uint8:
*value.(*uint8) = uint8(v)
*value = uint8(v)
case *uint16:
*value.(*uint16) = uint16(v)
*value = uint16(v)
case *uint32:
*value.(*uint32) = uint32(v)
*value = uint32(v)
case *uint64:
*value.(*uint64) = v
*value = v
}
}

Expand Down Expand Up @@ -232,14 +231,14 @@ func parseValueList(str, sep string, valuep interface{}) error {
if s == "" {
break
}
switch value.(type) {
switch val := value.(type) {
case idset.IDSet:
if rng := strings.Split(s, "-"); len(rng) == 1 {
id, err := strconv.Atoi(s)
if err != nil {
return fmt.Errorf("invalid entry '%s': %w", s, err)
}
value.(idset.IDSet).Add(idset.ID(id))
val.Add(idset.ID(id))
} else {
beg, err := strconv.Atoi(rng[0])
if err != nil {
Expand All @@ -250,81 +249,82 @@ func parseValueList(str, sep string, valuep interface{}) error {
return fmt.Errorf("invalid entry '%s': %w", s, err)
}
for id := beg; id <= end; id++ {
value.(idset.IDSet).Add(idset.ID(id))
val.Add(idset.ID(id))
}
}
value = val

case []int, []int8, []int16, []int32, []int64:
v, err := strconv.ParseInt(s, 0, 0)
if err != nil {
return fmt.Errorf("invalid entry '%s': %w", s, err)
}
switch value.(type) {
switch val := value.(type) {
case []int:
value = append(value.([]int), int(v))
value = append(val, int(v))
case []int8:
value = append(value.([]int8), int8(v))
value = append(val, int8(v))
case []int16:
value = append(value.([]int16), int16(v))
value = append(val, int16(v))
case []int32:
value = append(value.([]int32), int32(v))
value = append(val, int32(v))
case []int64:
value = append(value.([]int64), v)
value = append(val, v)
}

case []uint, []uint8, []uint16, []uint32, []uint64:
v, err := strconv.ParseUint(s, 0, 0)
if err != nil {
return fmt.Errorf("invalid entry '%s': %w", s, err)
}
switch value.(type) {
switch val := value.(type) {
case []uint:
value = append(value.([]uint), uint(v))
value = append(val, uint(v))
case []uint8:
value = append(value.([]uint8), uint8(v))
value = append(val, uint8(v))
case []uint16:
value = append(value.([]uint16), uint16(v))
value = append(val, uint16(v))
case []uint32:
value = append(value.([]uint32), uint32(v))
value = append(val, uint32(v))
case []uint64:
value = append(value.([]uint64), v)
value = append(val, v)
}
}
}

switch valuep.(type) {
switch valuep := valuep.(type) {
case *idset.IDSet:
*valuep.(*idset.IDSet) = value.(idset.IDSet)
*valuep = value.(idset.IDSet)
case *[]int:
*valuep.(*[]int) = value.([]int)
*valuep = value.([]int)
case *[]uint:
*valuep.(*[]uint) = value.([]uint)
*valuep = value.([]uint)
case *[]int8:
*valuep.(*[]int8) = value.([]int8)
*valuep = value.([]int8)
case *[]uint8:
*valuep.(*[]uint8) = value.([]uint8)
*valuep = value.([]uint8)
case *[]int16:
*valuep.(*[]int16) = value.([]int16)
*valuep = value.([]int16)
case *[]uint16:
*valuep.(*[]uint16) = value.([]uint16)
*valuep = value.([]uint16)
case *[]int32:
*valuep.(*[]int32) = value.([]int32)
*valuep = value.([]int32)
case *[]uint32:
*valuep.(*[]uint32) = value.([]uint32)
*valuep = value.([]uint32)
case *[]int64:
*valuep.(*[]int64) = value.([]int64)
*valuep = value.([]int64)
case *[]uint64:
*valuep.(*[]uint64) = value.([]uint64)
*valuep = value.([]uint64)
}

return nil
}

// Format a value into a string.
func formatValue(value interface{}) (string, error) {
switch value.(type) {
switch value := value.(type) {
case string:
return value.(string), nil
return value, nil
case int, uint, int8, uint8, int16, uint16, int32, uint32, int64, uint64:
return fmt.Sprintf("%d", value), nil
default:
Expand All @@ -336,9 +336,9 @@ func formatValue(value interface{}) (string, error) {
func formatValueList(sep string, value interface{}) (string, error) {
var v []interface{}

switch value.(type) {
switch value := value.(type) {
case idset.IDSet:
return value.(idset.IDSet).StringWithSeparator(sep), nil
return value.StringWithSeparator(sep), nil
case []int, []uint, []int8, []uint8, []int16, []uint16, []int32, []uint32, []int64, []uint64:
v = value.([]interface{})
default:
Expand Down

0 comments on commit a122a15

Please sign in to comment.