diff --git a/cmd/daemon.go b/cmd/daemon.go index 83b0799..f32affd 100644 --- a/cmd/daemon.go +++ b/cmd/daemon.go @@ -35,10 +35,13 @@ import ( ) func newDaemonCommand() *cobra.Command { - var host string - var driver string - var logLevel string - var blockMultipleHosts bool + var ( + host string + driver string + logLevel string + blockMultipleHosts bool + port int + ) var cmd = &cobra.Command{ Use: "daemon", Short: "Setup a daemon", @@ -48,17 +51,18 @@ func newDaemonCommand() *cobra.Command { }, RunE: func(cmd *cobra.Command, args []string) error { host = viper.GetString("host") - return createDaemon(host, driver, logLevel, blockMultipleHosts) + return createDaemon(host, driver, logLevel, blockMultipleHosts, port) }, } flags := cmd.Flags() flags.StringVar(&logLevel, "log", "info", "Log level of SCSI target daemon") flags.StringVar(&driver, "driver", "iscsi", "SCSI low level driver") + flags.IntVar(&port, "port", 3260, "iSCSI default target port") flags.BoolVar(&blockMultipleHosts, "block-multiple-hosts", false, "Disable login from multiple hosts") return cmd } -func createDaemon(host, driver, level string, blockMultipleHosts bool) error { +func createDaemon(host, driver, level string, blockMultipleHosts bool, port int) error { switch level { case "info": log.SetLevel(log.InfoLevel) @@ -101,7 +105,7 @@ func createDaemon(host, driver, level string, blockMultipleHosts bool) error { // comment this to avoid concurrent issue // runtime.GOMAXPROCS(runtime.NumCPU()) // run a service - go targetDriver.Run() + go targetDriver.Run(port) serverConfig := &apiserver.Config{ Addrs: []apiserver.Addr{}, diff --git a/mock/remote.go b/mock/remote.go index 2483fae..ad03f8b 100644 --- a/mock/remote.go +++ b/mock/remote.go @@ -180,7 +180,7 @@ func (r *remoteBs) startScsiTarget(cfg *config.Config) error { } r.targetDriver.NewTarget(r.tgtName, cfg) //r.targetDriver.SetClusterIP(r.clusterIP) - go r.targetDriver.Run() + go r.targetDriver.Run(3260) // Wait here so that listener get started time.Sleep(1 * time.Second) diff --git a/pkg/port/iscsit/iscsid.go b/pkg/port/iscsit/iscsid.go index afa98de..0db6b01 100644 --- a/pkg/port/iscsit/iscsid.go +++ b/pkg/port/iscsit/iscsid.go @@ -192,8 +192,8 @@ func (s *ISCSITargetDriver) HasPortal(tgtName string, tpgt uint16, portal string } } -func (s *ISCSITargetDriver) Run() error { - l, err := net.Listen("tcp", ":3260") +func (s *ISCSITargetDriver) Run(port int) error { + l, err := net.Listen("tcp", ":"+strconv.Itoa(port)) if err != nil { log.Error(err) os.Exit(1) diff --git a/pkg/scsi/drivers.go b/pkg/scsi/drivers.go index 2018019..42e6344 100644 --- a/pkg/scsi/drivers.go +++ b/pkg/scsi/drivers.go @@ -24,7 +24,7 @@ import ( ) type SCSITargetDriver interface { - Run() error + Run(port int) error NewTarget(string, *config.Config) error RereadTargetLUNMap() Close() error