add flag to gotgt command

Signed-off-by: shubham <shubham.bajpai@mayadata.io>
This commit is contained in:
shubham
2021-07-01 15:12:26 +05:30
parent b278ab3133
commit 1beca4d230

View File

@@ -37,22 +37,24 @@ func newDaemonCommand(cli *client.Client) *cobra.Command {
var host string var host string
var driver string var driver string
var logLevel string var logLevel string
var blockMultipleHosts bool
var cmd = &cobra.Command{ var cmd = &cobra.Command{
Use: "daemon", Use: "daemon",
Short: "Setup a daemon", Short: "Setup a daemon",
Long: `Setup the Gotgt's daemon`, Long: `Setup the Gotgt's daemon`,
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
return createDaemon(host, driver, logLevel) return createDaemon(host, driver, logLevel, blockMultipleHosts)
}, },
} }
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(&host, "host", "tcp://127.0.0.1:23457", "Host for SCSI target daemon") flags.StringVar(&host, "host", "tcp://127.0.0.1:23457", "Host for SCSI target daemon")
flags.StringVar(&driver, "driver", "iscsi", "SCSI low level driver") flags.StringVar(&driver, "driver", "iscsi", "SCSI low level driver")
flags.BoolVar(&blockMultipleHosts, "block-multiple-hosts", false, "Disable login from multiple hosts")
return cmd return cmd
} }
func createDaemon(host, driver, level string) error { func createDaemon(host, driver, level string, blockMultipleHosts bool) error {
switch level { switch level {
case "info": case "info":
log.SetLevel(log.InfoLevel) log.SetLevel(log.InfoLevel)
@@ -88,6 +90,10 @@ func createDaemon(host, driver, level string) error {
targetDriver.NewTarget(tgtname, config) targetDriver.NewTarget(tgtname, config)
} }
if blockMultipleHosts {
targetDriver.EnableBlockMultipleHostLogin()
}
// 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