summaryrefslogtreecommitdiffstats
path: root/src/go/plugin/go.d/modules/megacli/collect.go
blob: c4e74b78b7e3ff438c95130f74d81bb1305224f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// SPDX-License-Identifier: GPL-3.0-or-later

package megacli

import (
	"strconv"
	"strings"
)

func (m *MegaCli) collect() (map[string]int64, error) {
	mx := make(map[string]int64)

	if err := m.collectPhysDrives(mx); err != nil {
		return nil, err
	}
	if err := m.collectBBU(mx); err != nil {
		return nil, err
	}

	return mx, nil
}

func writeInt(mx map[string]int64, key, value string) {
	v, err := strconv.ParseInt(value, 10, 64)
	if err != nil {
		return
	}
	mx[key] = v
}

func getColonSepValue(line string) string {
	i := strings.IndexByte(line, ':')
	if i == -1 {
		return ""
	}
	return strings.TrimSpace(line[i+1:])
}

func getColonSepNumValue(line string) string {
	v := getColonSepValue(line)
	i := strings.IndexByte(v, ' ')
	if i == -1 {
		return v
	}
	return v[:i]
}