From 385d6ecc4841d64466232a83c01b72e53f8c7dbb Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Thu, 18 Mar 2021 15:23:36 +0100 Subject: [PATCH] make runtime port and host configurable --- ocis-pkg/config/config.go | 7 +++++++ ocis/pkg/command/kill.go | 16 +++++++++------- ocis/pkg/command/list.go | 16 +++++++++------- ocis/pkg/command/run.go | 16 +++++++++------- ocis/pkg/flagset/flagset.go | 14 ++++++++++++++ ocis/pkg/runtime/service/service.go | 6 ++---- 6 files changed, 50 insertions(+), 25 deletions(-) diff --git a/ocis-pkg/config/config.go b/ocis-pkg/config/config.go index 2e484880d6..5b0ddfcf43 100644 --- a/ocis-pkg/config/config.go +++ b/ocis-pkg/config/config.go @@ -68,6 +68,12 @@ const ( type Mode int +// Runtime configures the oCIS runtime when running in supervised mode. +type Runtime struct { + Port string + Host string +} + // Config combines all available configuration parts. type Config struct { Mode Mode @@ -80,6 +86,7 @@ type Config struct { GRPC GRPC Tracing Tracing TokenManager TokenManager + Runtime Runtime Accounts *accounts.Config GLAuth *glauth.Config diff --git a/ocis/pkg/command/kill.go b/ocis/pkg/command/kill.go index 6b673473f4..07c29edf5f 100644 --- a/ocis/pkg/command/kill.go +++ b/ocis/pkg/command/kill.go @@ -20,18 +20,20 @@ func KillCommand(cfg *config.Config) *cli.Command { Category: "Runtime", Flags: []cli.Flag{ &cli.StringFlag{ - Name: "hostname", - Value: "localhost", - EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"}, + Name: "hostname", + Value: "localhost", + EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"}, + Destination: &cfg.Runtime.Host, }, &cli.StringFlag{ - Name: "port", - Value: "6060", - EnvVars: []string{"OCIS_RUNTIME_PORT"}, + Name: "port", + Value: "6060", + EnvVars: []string{"OCIS_RUNTIME_PORT"}, + Destination: &cfg.Runtime.Port, }, }, Action: func(c *cli.Context) error { - client, err := rpc.DialHTTP("tcp", net.JoinHostPort("localhost", "6060")) + client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Runtime.Host, cfg.Runtime.Port)) if err != nil { log.Fatal("dialing:", err) } diff --git a/ocis/pkg/command/list.go b/ocis/pkg/command/list.go index 0e04647165..cb91e0cf95 100644 --- a/ocis/pkg/command/list.go +++ b/ocis/pkg/command/list.go @@ -19,18 +19,20 @@ func ListCommand(cfg *config.Config) *cli.Command { Category: "Runtime", Flags: []cli.Flag{ &cli.StringFlag{ - Name: "hostname", - Value: "localhost", - EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"}, + Name: "hostname", + Value: "localhost", + EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"}, + Destination: &cfg.Runtime.Host, }, &cli.StringFlag{ - Name: "port", - Value: "6060", - EnvVars: []string{"OCIS_RUNTIME_PORT"}, + Name: "port", + Value: "6060", + EnvVars: []string{"OCIS_RUNTIME_PORT"}, + Destination: &cfg.Runtime.Port, }, }, Action: func(c *cli.Context) error { - client, err := rpc.DialHTTP("tcp", net.JoinHostPort("localhost", "6060")) + client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Runtime.Host, cfg.Runtime.Port)) if err != nil { log.Fatal("dialing:", err) } diff --git a/ocis/pkg/command/run.go b/ocis/pkg/command/run.go index ae45e7dc7e..07936a7cc0 100644 --- a/ocis/pkg/command/run.go +++ b/ocis/pkg/command/run.go @@ -21,18 +21,20 @@ func RunCommand(cfg *config.Config) *cli.Command { Category: "Runtime", Flags: []cli.Flag{ &cli.StringFlag{ - Name: "hostname", - Value: "localhost", - EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"}, + Name: "hostname", + Value: "localhost", + EnvVars: []string{"OCIS_RUNTIME_HOSTNAME"}, + Destination: &cfg.Runtime.Host, }, &cli.StringFlag{ - Name: "port", - Value: "6060", - EnvVars: []string{"OCIS_RUNTIME_PORT"}, + Name: "port", + Value: "6060", + EnvVars: []string{"OCIS_RUNTIME_PORT"}, + Destination: &cfg.Runtime.Port, }, }, Action: func(c *cli.Context) error { - client, err := rpc.DialHTTP("tcp", net.JoinHostPort("localhost", "6060")) + client, err := rpc.DialHTTP("tcp", net.JoinHostPort(cfg.Runtime.Host, cfg.Runtime.Port)) if err != nil { log.Fatal("dialing:", err) } diff --git a/ocis/pkg/flagset/flagset.go b/ocis/pkg/flagset/flagset.go index fb43c6cab6..77d113b70b 100644 --- a/ocis/pkg/flagset/flagset.go +++ b/ocis/pkg/flagset/flagset.go @@ -82,6 +82,20 @@ func RootWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"OCIS_JWT_SECRET"}, Destination: &cfg.TokenManager.JWTSecret, }, + &cli.StringFlag{ + Name: "runtime-port", + Value: "6060", + Usage: "Configures which port the runtime starts", + EnvVars: []string{"OCIS_RUNTIME_PORT"}, + Destination: &cfg.Runtime.Port, + }, + &cli.StringFlag{ + Name: "runtime-host", + Value: "localhost", + Usage: "Configures the host where the runtime process is running", + EnvVars: []string{"OCIS_RUNTIME_HOST"}, + Destination: &cfg.Runtime.Host, + }, } } diff --git a/ocis/pkg/runtime/service/service.go b/ocis/pkg/runtime/service/service.go index 7eeb49f836..d8a80dcc3c 100644 --- a/ocis/pkg/runtime/service/service.go +++ b/ocis/pkg/runtime/service/service.go @@ -149,8 +149,7 @@ func Start(o ...Option) error { halt := make(chan os.Signal, 1) signal.Notify(halt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGHUP) - // TODO(refs) change default port - l, err := net.Listen("tcp", fmt.Sprintf("%v:%v", "localhost", "6060")) + l, err := net.Listen("tcp", net.JoinHostPort(s.cfg.Runtime.Host, s.cfg.Runtime.Port)) if err != nil { s.Log.Fatal().Err(err) } @@ -158,8 +157,7 @@ func Start(o ...Option) error { defer func() { if r := recover(); r != nil { reason := strings.Builder{} - // TODO(refs) change default port - if _, err := net.Dial("localhost", "6060"); err != nil { + if _, err := net.Dial("tcp", net.JoinHostPort(s.cfg.Runtime.Host, s.cfg.Runtime.Port)); err != nil { reason.WriteString("runtime address already in use") }