utils.go 984 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package cgroup
  2. import (
  3. "io/ioutil"
  4. "strconv"
  5. "strings"
  6. "k8s.io/klog/v2"
  7. )
  8. func readVariablesFromFile(filePath string) (map[string]uint64, error) {
  9. data, err := ioutil.ReadFile(filePath)
  10. if err != nil {
  11. return nil, err
  12. }
  13. res := map[string]uint64{}
  14. for _, line := range strings.Split(string(data), "\n") {
  15. parts := strings.Fields(line)
  16. if len(parts) == 2 {
  17. v, err := strconv.ParseUint(parts[1], 10, 64)
  18. if err != nil {
  19. klog.Warningf(`failed to parse cgroup stat line "%s": %s`, line, err)
  20. continue
  21. }
  22. res[parts[0]] = v
  23. }
  24. }
  25. return res, nil
  26. }
  27. func readIntFromFile(filePath string) (int64, error) {
  28. data, err := ioutil.ReadFile(filePath)
  29. if err != nil {
  30. return 0, err
  31. }
  32. return strconv.ParseInt(strings.TrimSpace(string(data)), 10, 64)
  33. }
  34. func readUintFromFile(filePath string) (uint64, error) {
  35. data, err := ioutil.ReadFile(filePath)
  36. if err != nil {
  37. return 0, err
  38. }
  39. return strconv.ParseUint(strings.TrimSpace(string(data)), 10, 64)
  40. }