...
1
16
17 package v2
18
19 import (
20 "os"
21 "path/filepath"
22 "strings"
23 )
24
25
26 type State string
27
28 const (
29 Unknown State = ""
30 Thawed State = "thawed"
31 Frozen State = "frozen"
32 Deleted State = "deleted"
33
34 cgroupFreeze = "cgroup.freeze"
35 )
36
37 func (s State) Values() []Value {
38 v := Value{
39 filename: cgroupFreeze,
40 }
41 switch s {
42 case Frozen:
43 v.value = "1"
44 case Thawed:
45 v.value = "0"
46 }
47 return []Value{
48 v,
49 }
50 }
51
52 func fetchState(path string) (State, error) {
53 current, err := os.ReadFile(filepath.Join(path, cgroupFreeze))
54 if err != nil {
55 return Unknown, err
56 }
57 switch strings.TrimSpace(string(current)) {
58 case "1":
59 return Frozen, nil
60 case "0":
61 return Thawed, nil
62 default:
63 return Unknown, nil
64 }
65 }
66
View as plain text