add target port as command flag

This commit is contained in:
Lei Xue
2022-12-13 09:49:34 +08:00
parent cec0938186
commit d94641a8d7
4 changed files with 15 additions and 11 deletions

View File

@@ -35,10 +35,13 @@ import (
) )
func newDaemonCommand() *cobra.Command { func newDaemonCommand() *cobra.Command {
var host string var (
var driver string host string
var logLevel string driver string
var blockMultipleHosts bool logLevel string
blockMultipleHosts bool
port int
)
var cmd = &cobra.Command{ var cmd = &cobra.Command{
Use: "daemon", Use: "daemon",
Short: "Setup a daemon", Short: "Setup a daemon",
@@ -48,17 +51,18 @@ func newDaemonCommand() *cobra.Command {
}, },
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
host = viper.GetString("host") host = viper.GetString("host")
return createDaemon(host, driver, logLevel, blockMultipleHosts) return createDaemon(host, driver, logLevel, blockMultipleHosts, port)
}, },
} }
flags := cmd.Flags() flags := cmd.Flags()
flags.StringVar(&logLevel, "log", "info", "Log level of SCSI target daemon") flags.StringVar(&logLevel, "log", "info", "Log level of SCSI target daemon")
flags.StringVar(&driver, "driver", "iscsi", "SCSI low level driver") 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") flags.BoolVar(&blockMultipleHosts, "block-multiple-hosts", false, "Disable login from multiple hosts")
return cmd return cmd
} }
func createDaemon(host, driver, level string, blockMultipleHosts bool) error { func createDaemon(host, driver, level string, blockMultipleHosts bool, port int) error {
switch level { switch level {
case "info": case "info":
log.SetLevel(log.InfoLevel) log.SetLevel(log.InfoLevel)
@@ -101,7 +105,7 @@ func createDaemon(host, driver, level string, blockMultipleHosts bool) error {
// comment this to avoid concurrent issue // comment this to avoid concurrent issue
// runtime.GOMAXPROCS(runtime.NumCPU()) // runtime.GOMAXPROCS(runtime.NumCPU())
// run a service // run a service
go targetDriver.Run() go targetDriver.Run(port)
serverConfig := &apiserver.Config{ serverConfig := &apiserver.Config{
Addrs: []apiserver.Addr{}, Addrs: []apiserver.Addr{},

View File

@@ -180,7 +180,7 @@ func (r *remoteBs) startScsiTarget(cfg *config.Config) error {
} }
r.targetDriver.NewTarget(r.tgtName, cfg) r.targetDriver.NewTarget(r.tgtName, cfg)
//r.targetDriver.SetClusterIP(r.clusterIP) //r.targetDriver.SetClusterIP(r.clusterIP)
go r.targetDriver.Run() go r.targetDriver.Run(3260)
// Wait here so that listener get started // Wait here so that listener get started
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)

View File

@@ -192,8 +192,8 @@ func (s *ISCSITargetDriver) HasPortal(tgtName string, tpgt uint16, portal string
} }
} }
func (s *ISCSITargetDriver) Run() error { func (s *ISCSITargetDriver) Run(port int) error {
l, err := net.Listen("tcp", ":3260") l, err := net.Listen("tcp", ":"+strconv.Itoa(port))
if err != nil { if err != nil {
log.Error(err) log.Error(err)
os.Exit(1) os.Exit(1)

View File

@@ -24,7 +24,7 @@ import (
) )
type SCSITargetDriver interface { type SCSITargetDriver interface {
Run() error Run(port int) error
NewTarget(string, *config.Config) error NewTarget(string, *config.Config) error
RereadTargetLUNMap() RereadTargetLUNMap()
Close() error Close() error