From 94cbbb541f38528f12cd5a257ae6dfee6fcf7abc Mon Sep 17 00:00:00 2001 From: Le Zhang Date: Wed, 5 Oct 2016 11:14:37 +0800 Subject: [PATCH] fix citd --- citd.go | 17 ++++++----------- pkg/port/service.go | 10 +++++----- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/citd.go b/citd.go index e0ea52e..e94a287 100644 --- a/citd.go +++ b/citd.go @@ -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) diff --git a/pkg/port/service.go b/pkg/port/service.go index 93a8a43..77dd881 100644 --- a/pkg/port/service.go +++ b/pkg/port/service.go @@ -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) }