diff options
Diffstat (limited to 'vendor/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/system/meminfo_linux.go')
-rw-r--r-- | vendor/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/system/meminfo_linux.go | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/vendor/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/system/meminfo_linux.go b/vendor/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/system/meminfo_linux.go deleted file mode 100644 index c14dbf3..0000000 --- a/vendor/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/system/meminfo_linux.go +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | package system | ||
2 | |||
3 | import ( | ||
4 | "bufio" | ||
5 | "io" | ||
6 | "os" | ||
7 | "strconv" | ||
8 | "strings" | ||
9 | |||
10 | "github.com/fsouza/go-dockerclient/external/github.com/docker/go-units" | ||
11 | ) | ||
12 | |||
13 | // ReadMemInfo retrieves memory statistics of the host system and returns a | ||
14 | // MemInfo type. | ||
15 | func ReadMemInfo() (*MemInfo, error) { | ||
16 | file, err := os.Open("/proc/meminfo") | ||
17 | if err != nil { | ||
18 | return nil, err | ||
19 | } | ||
20 | defer file.Close() | ||
21 | return parseMemInfo(file) | ||
22 | } | ||
23 | |||
24 | // parseMemInfo parses the /proc/meminfo file into | ||
25 | // a MemInfo object given a io.Reader to the file. | ||
26 | // | ||
27 | // Throws error if there are problems reading from the file | ||
28 | func parseMemInfo(reader io.Reader) (*MemInfo, error) { | ||
29 | meminfo := &MemInfo{} | ||
30 | scanner := bufio.NewScanner(reader) | ||
31 | for scanner.Scan() { | ||
32 | // Expected format: ["MemTotal:", "1234", "kB"] | ||
33 | parts := strings.Fields(scanner.Text()) | ||
34 | |||
35 | // Sanity checks: Skip malformed entries. | ||
36 | if len(parts) < 3 || parts[2] != "kB" { | ||
37 | continue | ||
38 | } | ||
39 | |||
40 | // Convert to bytes. | ||
41 | size, err := strconv.Atoi(parts[1]) | ||
42 | if err != nil { | ||
43 | continue | ||
44 | } | ||
45 | bytes := int64(size) * units.KiB | ||
46 | |||
47 | switch parts[0] { | ||
48 | case "MemTotal:": | ||
49 | meminfo.MemTotal = bytes | ||
50 | case "MemFree:": | ||
51 | meminfo.MemFree = bytes | ||
52 | case "SwapTotal:": | ||
53 | meminfo.SwapTotal = bytes | ||
54 | case "SwapFree:": | ||
55 | meminfo.SwapFree = bytes | ||
56 | } | ||
57 | |||
58 | } | ||
59 | |||
60 | // Handle errors that may have occurred during the reading of the file. | ||
61 | if err := scanner.Err(); err != nil { | ||
62 | return nil, err | ||
63 | } | ||
64 | |||
65 | return meminfo, nil | ||
66 | } | ||