71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
package port
|
|
|
|
import (
|
|
"github.com/gostor/gotgt/pkg/api"
|
|
"github.com/gostor/gotgt/pkg/port/iscsit"
|
|
)
|
|
|
|
type SCSITargetDriver interface {
|
|
Init() error
|
|
Exit() error
|
|
|
|
CreateTarget(target *api.SCSITarget) error
|
|
DestroyTarget(target *api.SCSITarget) error
|
|
CreatePortal(name string) error
|
|
DestroyPortal(name string) error
|
|
CreateLu(lu *api.SCSILu) error
|
|
GetLu(lun uint8) (uint64, error)
|
|
|
|
ProcessCommand(buf []byte) ([]byte, error)
|
|
CommandNotify(nid uint64, result int, cmd *api.SCSICommand) error
|
|
}
|
|
|
|
type fakeSCSITargetDriver struct {
|
|
api.SCSITargetDriverCommon
|
|
}
|
|
|
|
func (fake *fakeSCSITargetDriver) Init() error {
|
|
return nil
|
|
}
|
|
|
|
func (fake *fakeSCSITargetDriver) Exit() error {
|
|
return nil
|
|
}
|
|
|
|
func (fake *fakeSCSITargetDriver) CreateTarget(target *api.SCSITarget) error {
|
|
return nil
|
|
}
|
|
|
|
func (fake *fakeSCSITargetDriver) DestroyTarget(target *api.SCSITarget) error {
|
|
return nil
|
|
}
|
|
|
|
func (fake *fakeSCSITargetDriver) CreatePortal(name string) error {
|
|
return nil
|
|
}
|
|
|
|
func (fake *fakeSCSITargetDriver) DestroyPortal(name string) error {
|
|
return nil
|
|
}
|
|
|
|
func (fake *fakeSCSITargetDriver) CreateLu(lu *api.SCSILu) error {
|
|
return nil
|
|
}
|
|
|
|
func (fake *fakeSCSITargetDriver) GetLun(lun uint8) (uint64, error) {
|
|
return 0, nil
|
|
}
|
|
func (fake *fakeSCSITargetDriver) CommandNotify(nid uint64, result int, cmd *api.SCSICommand) error {
|
|
return nil
|
|
}
|
|
func (fake *fakeSCSITargetDriver) ProcessCommand(buf []byte) ([]byte, error) {
|
|
return []byte(""), nil
|
|
}
|
|
|
|
func NewTargetDriver(driver string, tgt *api.SCSITarget) SCSITargetDriver {
|
|
if driver == "iscsi" {
|
|
return iscsit.NewISCSITarget(tgt)
|
|
}
|
|
return nil
|
|
}
|