Skip to content

Commit ecb6826

Browse files
authored
feat: improve pool support (#100)
1 parent cd3d100 commit ecb6826

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

daemon/services/core/array.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,17 @@ import (
44
"fmt"
55
"os"
66
"path/filepath"
7-
"regexp"
87
"sort"
98
"strconv"
109
"strings"
1110
"syscall"
1211
"time"
13-
14-
"gopkg.in/ini.v1"
15-
1612
"unbalance/daemon/domain"
1713
"unbalance/daemon/lib"
1814
"unbalance/daemon/logger"
19-
)
2015

21-
var regStrip = regexp.MustCompile("[0-9 ]")
16+
"gopkg.in/ini.v1"
17+
)
2218

2319
func (c *Core) sanityCheck() error {
2420
locations := []string{"/var/local/emhttp"}
@@ -81,10 +77,6 @@ func (c *Core) refreshUnraid() *domain.Unraid {
8177
return newunraid
8278
}
8379

84-
func stripSpacesAndNumbers(input string) string {
85-
return regStrip.ReplaceAllString(input, "")
86-
}
87-
8880
func getArrayData() (*domain.Unraid, error) {
8981
unraid := &domain.Unraid{}
9082

@@ -125,6 +117,7 @@ func getArrayData() (*domain.Unraid, error) {
125117
// get free/size data
126118
free := make(map[string]uint64)
127119
size := make(map[string]uint64)
120+
mounts := make(map[string]bool)
128121

129122
// err = lib.Shell("df --block-size=1 /mnt/*", mlog.Warning, "Refresh error:", "", func(line string) {
130123
// data := strings.Fields(line)
@@ -136,6 +129,7 @@ func getArrayData() (*domain.Unraid, error) {
136129
data := strings.Fields(line)
137130
size[data[5]], _ = strconv.ParseUint(data[1], 10, 64)
138131
free[data[5]], _ = strconv.ParseUint(data[3], 10, 64)
132+
mounts[data[5]] = true
139133
})
140134
if err != nil {
141135
return nil, fmt.Errorf("unable to get free/size data: %w", err)
@@ -166,12 +160,11 @@ func getArrayData() (*domain.Unraid, error) {
166160
continue
167161
}
168162

169-
name := stripSpacesAndNumbers(diskName)
170-
if pools[name] {
163+
if _, ok := mounts["/mnt/"+diskName]; !ok {
171164
continue
172165
}
173166

174-
pools[name] = true
167+
pools[diskName] = true
175168
}
176169

177170
for _, section := range file.Sections() {

0 commit comments

Comments
 (0)