master
go 39 lines 701 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 //go:build linux || netbsd
4
5 package lvm
6
7 import (
8 "time"
9
10 "github.com/netdata/netdata/go/plugins/logger"
11 "github.com/netdata/netdata/go/plugins/plugin/go.d/pkg/ndexec"
12 )
13
14 type lvmCLI interface {
15 lvsReportJson() ([]byte, error)
16 }
17
18 func newLVMCLIExec(timeout time.Duration, log *logger.Logger) *lvmCLIExec {
19 return &lvmCLIExec{
20 Logger: log,
21 timeout: timeout,
22 }
23 }
24
25 type lvmCLIExec struct {
26 *logger.Logger
27
28 timeout time.Duration
29 }
30
31 func (e *lvmCLIExec) lvsReportJson() ([]byte, error) {
32 return ndexec.RunNDSudo(
33 e.Logger,
34 e.timeout,
35 "lvs-report-json",
36 "--options",
37 "vg_name,lv_name,lv_size,data_percent,metadata_percent,lv_attr",
38 )
39 }