Merge pull request #15 from orzhang/fix_citd

fix citd
This commit is contained in:
Lei Xue
2016-10-05 11:30:38 +08:00
committed by GitHub
2 changed files with 11 additions and 16 deletions

17
citd.go
View File

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

View File

@@ -36,13 +36,13 @@ func RegisterTargetService(name string, f TargetServiceFunc) {
registeredPlugins[name] = f registeredPlugins[name] = f
} }
func NewTargetService(name string, s *scsi.SCSITargetService) (SCSITargetService, error) { func NewTargetService(targetDriverName string, s *scsi.SCSITargetService) (SCSITargetService, error) {
if name == "" { if targetDriverName == "" {
return nil, nil return nil, nil
} }
f, ok := registeredPlugins[name] targetInitFunc, ok := registeredPlugins[targetDriverName]
if !ok { 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)
} }