This commit is contained in:
Le Zhang
2016-10-05 11:14:37 +08:00
parent 13e73124a2
commit 94cbbb541f
2 changed files with 11 additions and 16 deletions

17
citd.go
View File

@@ -22,7 +22,6 @@ import (
"fmt"
"os"
"os/signal"
"reflect"
"runtime"
"strings"
"syscall"
@@ -70,29 +69,25 @@ Help Options:
os.Exit(1)
}
service := scsi.NewSCSITargetService()
t, err := port.NewTargetService(*flDriver, service)
scsiTarget := scsi.NewSCSITargetService()
targetDriver, err := port.NewTargetService(*flDriver, scsiTarget)
if err != nil {
glog.Error(err)
os.Exit(1)
}
iscsit := reflect.ValueOf(t)
// create a new target
for tgtname, tgt := range config.Targets {
create := iscsit.MethodByName("NewTarget")
create.Call([]reflect.Value{reflect.ValueOf(tgtname),
reflect.ValueOf(tgt.Portals)})
targetDriver.NewTarget(tgtname, tgt.Portals)
}
runtime.GOMAXPROCS(runtime.NumCPU())
// run a service
run := iscsit.MethodByName("Run")
go run.Call([]reflect.Value{})
go targetDriver.Run()
serverConfig := &apiserver.Config{
Addrs: []apiserver.Addr{},
}
//hosts := []string{"unix:///var/run/gotgt.sock"}
hosts := []string{}
if *flHost != "" {
hosts = append(hosts, *flHost)

View File

@@ -36,13 +36,13 @@ func RegisterTargetService(name string, f TargetServiceFunc) {
registeredPlugins[name] = f
}
func NewTargetService(name string, s *scsi.SCSITargetService) (SCSITargetService, error) {
if name == "" {
func NewTargetService(targetDriverName string, s *scsi.SCSITargetService) (SCSITargetService, error) {
if targetDriverName == "" {
return nil, nil
}
f, ok := registeredPlugins[name]
targetInitFunc, ok := registeredPlugins[targetDriverName]
if !ok {
return nil, fmt.Errorf("SCSI target driver %s is not found.", name)
return nil, fmt.Errorf("SCSI target driver %s is not found.", targetDriverName)
}
return f(s)
return targetInitFunc(s)
}