Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

# GOBRICK
**Library for iSCSI/FC/NVMe volume connection**

Expand All @@ -15,3 +16,4 @@ dev, err := connector.ConnectVolume(context.Background(),

err = connector.DisconnectVolumeByDeviceName(context.Background(), "dm-1")
```

10 changes: 5 additions & 5 deletions base.go
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ func (bc *baseConnector) cleanNVMeDevices(ctx context.Context,
err := bc.cleanMultipathDevice(ctx, dm, wwn)
if err != nil {
msg := fmt.Sprintf("failed to flush multipath device: %s", err.Error())
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
if !force {
return err
}
Expand Down Expand Up @@ -266,7 +266,7 @@ func (bc *baseConnector) cleanDevicesByMpathInfo(ctx context.Context, force bool
err := bc.cleanMultipathDeviceByName(ctx, req.mpathName)
if err != nil {
msg := fmt.Sprintf("failed to flush multipath device: %s", err.Error())
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
if !force {
return err
}
Expand Down Expand Up @@ -315,7 +315,7 @@ func (bc *baseConnector) cleanDevices(ctx context.Context,
err := bc.cleanMultipathDevice(ctx, dm, wwn)
if err != nil {
msg := fmt.Sprintf("failed to flush multipath device: %s", err.Error())
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
if !force {
return err
}
Expand Down Expand Up @@ -412,7 +412,7 @@ func (bc *baseConnector) getDMWWN(ctx context.Context, dm string) (string, error
wwn, err := bc.multipath.GetDMWWID(ctx, dm)
if err != nil {
msg := fmt.Sprintf("failed to resolve DM %s WWN: %s", dm, err.Error())
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return "", errors.New(msg)
}
logger.Info(ctx, "WWN for DM %s is: %s", dm, wwn)
Expand All @@ -438,7 +438,7 @@ func (bc *baseConnector) getNVMEDMWWN(ctx context.Context, dm string) (string, e
wwn, err := bc.multipath.GetDMWWID(ctx, dm)
if err != nil {
msg := fmt.Sprintf("failed to resolve DM %s WWN: %s", dm, err.Error())
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return "", errors.New(msg)
}
logger.Info(ctx, "WWN for DM %s is: %s", dm, wwn)
Expand Down
34 changes: 17 additions & 17 deletions fc.go
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ func (fc *FCConnector) ConnectVolume(ctx context.Context, info FCVolumeInfo) (De
}
if len(hbas) == 0 {
msg := "FC HBAs not found. FC is not supported on this host"
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return Device{}, errors.New(msg)
}
device, err := fc.connectDevice(ctx, hbas, info)
Expand Down Expand Up @@ -229,7 +229,7 @@ func (fc *FCConnector) cleanConnection(ctx context.Context, force bool, info FCV
for _, hba := range hbas {
_, hctls, err := fc.findHCTLsForFCHBA(ctx, hba, info)
if err != nil {
logger.Error(ctx, err.Error())
logger.Error(ctx, "%s", err.Error())
}
if len(hctls) == 0 {
continue
Expand All @@ -238,7 +238,7 @@ func (fc *FCConnector) cleanConnection(ctx context.Context, force bool, info FCV
if hctl.IsFullInfo() {
device, err := fc.scsi.GetDeviceNameByHCTL(ctx, hctl)
if err != nil {
logger.Error(ctx, err.Error())
logger.Error(ctx, "%s", err.Error())
continue
}
devices = append(devices, device)
Expand Down Expand Up @@ -301,7 +301,7 @@ func (fc *FCConnector) connectDevice(
devices, err := getDevicesByWWNFunc(ctx, fc)(ctx, wwn)
if err != nil || len(devices) == 0 {
msg := "failed to get devices by WWN: " + wwn
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return Device{}, errors.New(msg)
}

Expand All @@ -311,7 +311,7 @@ func (fc *FCConnector) connectDevice(
device, err = waitPowerpathDeviceFunc(ctx, fc)(ctx, wwn, devices)
if err != nil {
msg := "failed to find powerpath device"
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return Device{}, errors.New(msg)
}
} else if !isMultipathDaemonRunningFunc(ctx, fc)(ctx) {
Expand All @@ -324,13 +324,13 @@ func (fc *FCConnector) connectDevice(
device, err = waitMultipathDeviceFunc(ctx, fc)(ctx, wwn, devices)
if err != nil {
msg := "failed to find multipath device"
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return Device{}, errors.New(msg)
}
}
if !checkDeviceIsValidFunc(ctx, fc)(ctx, path.Join("/dev/", device)) {
msg := "multipath device was found but failed to read data from it"
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return Device{}, errors.New(msg)
}
d := Device{WWN: wwn, Name: device}
Expand All @@ -355,7 +355,7 @@ func (fc *FCConnector) waitSingleDevice(ctx context.Context, wwn string, devices
time.Sleep(time.Second)
}
msg := fmt.Sprintf("timeout waiting device for wwn %s", wwn)
logger.Info(ctx, msg)
logger.Info(ctx, "%s", msg)
return "", errors.New(msg)
}

Expand Down Expand Up @@ -383,7 +383,7 @@ func (fc *FCConnector) waitMultipathDevice(
for _, d := range devices {
devPath := path.Join("/dev/", d)
if err := addPathFunc(ctx, fc)(ctx, devPath); err != nil {
logger.Info(ctx, err.Error())
logger.Info(ctx, "%s", err.Error())
}
}

Expand All @@ -405,7 +405,7 @@ func (fc *FCConnector) waitMultipathDevice(
}
if mpath == "" {
msg := fmt.Sprintf("multipath device for WWN %s not found", wwn)
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return "", errors.New(msg)
}
logger.Info(ctx, "multipath device for WWN %s found: %s", wwn, mpath)
Expand Down Expand Up @@ -434,7 +434,7 @@ func (fc *FCConnector) waitPowerpathDevice(
}
if ppath == "" {
msg := fmt.Sprintf("powerpath device for WWN %s not found", wwn)
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return "", errors.New(msg)
}
logger.Info(ctx, "powerpath device for WWN %s found: %s", wwn, ppath)
Expand Down Expand Up @@ -467,7 +467,7 @@ func (fc *FCConnector) waitForDeviceWWN(
for _, hctl := range hctlsToRescan {
err := fc.scsi.RescanSCSIHostByHCTL(ctx, hctl)
if err != nil {
logger.Error(ctx, err.Error())
logger.Error(ctx, "%s", err.Error())
continue
}
}
Expand All @@ -491,7 +491,7 @@ func (fc *FCConnector) waitForDeviceWWN(
"try to refresh device information", d)
err := fc.scsi.RescanSCSIDeviceByHCTL(ctx, hctl)
if err != nil {
logger.Error(ctx, err.Error())
logger.Error(ctx, "%s", err.Error())
}
}
devicesToValidate = append(devicesToValidate, d)
Expand Down Expand Up @@ -525,7 +525,7 @@ func (fc *FCConnector) waitForDeviceWWN(
}
}
msg := "wwn for FC device not found"
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return "", errors.New(msg)
}

Expand All @@ -541,15 +541,15 @@ func (fc *FCConnector) findHCTLsForFCHBA(
matches, err := fc.filePath.Glob(pattern)
if err != nil {
msg := fmt.Sprintf("HBA: %s failed to match FC target path: %s", hba, err.Error())
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return nil, nil, errors.New(msg)
}
targetMap := make(map[string]string)
for _, m := range matches {
data, err := fc.os.ReadFile(path.Join(m, "port_name"))
if err != nil {
msg := fmt.Sprintf("HBA: %s failed to read port_name for FC target: %s", hba, err.Error())
logger.Error(ctx, msg)
logger.Error(ctx, "%s", msg)
return nil, nil, errors.New(msg)
}
targetMap[m] = strings.Replace(
Expand Down Expand Up @@ -609,7 +609,7 @@ func (fc *FCConnector) getFCHBASInfo(ctx context.Context) ([]FCHBA, error) {
}
match, err := fc.filePath.Glob("/sys/class/fc_host/host*")
if err != nil {
logger.Error(ctx, err.Error())
logger.Error(ctx, "%s", err.Error())
return nil, err
}
var hbas []FCHBA
Expand Down
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
module github.com/dell/gobrick

go 1.25
go 1.26

require (
github.com/dell/goiscsi v1.14.0
github.com/dell/gonvme v1.13.0
github.com/dell/goiscsi v1.15.0
github.com/dell/gonvme v1.14.0
github.com/golang/mock v1.6.0
github.com/sirupsen/logrus v1.9.3
github.com/stretchr/testify v1.11.0
golang.org/x/sync v0.19.0
golang.org/x/sync v0.20.0
)

require (
Expand Down
12 changes: 6 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
github.com/dell/goiscsi v1.14.0 h1:kNDqOlpJ3cLSJh7Hfyn/Kz/FMCKHzV0s/xx4EqnelFw=
github.com/dell/goiscsi v1.14.0/go.mod h1:SCSC8dJCqTosU7SspaoLv6ICTKNEz08rt/I8nZ3+ptc=
github.com/dell/gonvme v1.13.0 h1:j8A1BzYA48gelih3xWd/J6LQ71CbC8Lbdyv0jG8uUNU=
github.com/dell/gonvme v1.13.0/go.mod h1:L5K7V4JZTf12m3k2wdwKwP+/eA6pr8DvlCsJU1QTGOQ=
github.com/dell/goiscsi v1.15.0 h1:71QzLLm4X8XrEkGLnZshpGEDdkgbFuZ8NiwARFwaCtY=
github.com/dell/goiscsi v1.15.0/go.mod h1:jlkRplXgeJHMZZ/dLUkWAnNcOrkIXxuibi9vDbPKYk4=
github.com/dell/gonvme v1.14.0 h1:dRyS0o+3B+cnnncgblb/H0qUJkNzjkPAq/82oqt/eMc=
github.com/dell/gonvme v1.14.0/go.mod h1:bx/tqYBKuY8SHxEpw9b8SiD/98+4TQdMYkYWES39Dgw=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand All @@ -24,8 +24,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
Expand Down
Loading
Loading