pull out workercmd from cmd/concourse
Signed-off-by: Divya Dadlani <ddadlani@pivotal.io> Signed-off-by: Denise Yu <dyu@pivotal.io>
This commit is contained in:
parent
bdcb9d0d85
commit
e5066df1db
|
@ -0,0 +1,13 @@
|
|||
package cmd_test
|
||||
|
||||
import (
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestCmd(t *testing.T) {
|
||||
RegisterFailHandler(Fail)
|
||||
RunSpecs(t, "Cmd Suite")
|
||||
}
|
|
@ -4,15 +4,16 @@ import (
|
|||
"github.com/concourse/concourse/atc/atccmd"
|
||||
"github.com/concourse/concourse/worker/land"
|
||||
"github.com/concourse/concourse/worker/retire"
|
||||
flags "github.com/jessevdk/go-flags"
|
||||
"github.com/concourse/concourse/worker/workercmd"
|
||||
"github.com/jessevdk/go-flags"
|
||||
)
|
||||
|
||||
type ConcourseCommand struct {
|
||||
Version func() `short:"v" long:"version" description:"Print the version of Concourse and exit"`
|
||||
|
||||
Web WebCommand `command:"web" description:"Run the web UI and build scheduler."`
|
||||
Worker WorkerCommand `command:"worker" description:"Run and register a worker."`
|
||||
Migrate atccmd.Migration `command:"migrate" description:"Run database migrations."`
|
||||
Web WebCommand `command:"web" description:"Run the web UI and build scheduler."`
|
||||
Worker workercmd.WorkerCommand `command:"worker" description:"Run and register a worker."`
|
||||
Migrate atccmd.Migration `command:"migrate" description:"Run database migrations."`
|
||||
|
||||
Quickstart QuickstartCommand `command:"quickstart" description:"Run both 'web' and 'worker' together, auto-wired. Not recommended for production."`
|
||||
|
||||
|
@ -22,8 +23,8 @@ type ConcourseCommand struct {
|
|||
GenerateKey GenerateKeyCommand `command:"generate-key" description:"Generate RSA key for use with Concourse components."`
|
||||
}
|
||||
|
||||
func (cmd ConcourseCommand) lessenRequirements(parser *flags.Parser) {
|
||||
cmd.Quickstart.lessenRequirements(parser.Find("quickstart"))
|
||||
cmd.Web.lessenRequirements(parser.Find("web"))
|
||||
cmd.Worker.lessenRequirements("", parser.Find("worker"))
|
||||
func (cmd ConcourseCommand) LessenRequirements(parser *flags.Parser) {
|
||||
cmd.Quickstart.LessenRequirements(parser.Find("quickstart"))
|
||||
cmd.Web.LessenRequirements(parser.Find("web"))
|
||||
cmd.Worker.LessenRequirements("", parser.Find("worker"))
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ func main() {
|
|||
parser := flags.NewParser(&cmd, flags.HelpFlag|flags.PassDoubleDash)
|
||||
parser.NamespaceDelimiter = "-"
|
||||
|
||||
cmd.lessenRequirements(parser)
|
||||
cmd.LessenRequirements(parser)
|
||||
|
||||
cmd.Web.WireDynamicFlags(parser.Command.Find("web"))
|
||||
cmd.Quickstart.WebCommand.WireDynamicFlags(parser.Command.Find("quickstart"))
|
||||
|
|
|
@ -6,8 +6,10 @@ import (
|
|||
"fmt"
|
||||
"os"
|
||||
|
||||
concourseCmd "github.com/concourse/concourse/cmd"
|
||||
"github.com/concourse/concourse/worker/workercmd"
|
||||
"github.com/concourse/flag"
|
||||
flags "github.com/jessevdk/go-flags"
|
||||
"github.com/jessevdk/go-flags"
|
||||
"github.com/tedsuo/ifrit"
|
||||
"github.com/tedsuo/ifrit/grouper"
|
||||
"github.com/tedsuo/ifrit/sigmon"
|
||||
|
@ -15,13 +17,13 @@ import (
|
|||
)
|
||||
|
||||
type QuickstartCommand struct {
|
||||
*WebCommand `group:"Web Configuration"`
|
||||
*WorkerCommand `group:"Worker Configuration" namespace:"worker"`
|
||||
*WebCommand `group:"Web Configuration"`
|
||||
*workercmd.WorkerCommand `group:"Worker Configuration" namespace:"worker"`
|
||||
}
|
||||
|
||||
func (cmd QuickstartCommand) lessenRequirements(command *flags.Command) {
|
||||
cmd.WebCommand.lessenRequirements(command)
|
||||
cmd.WorkerCommand.lessenRequirements("worker-", command)
|
||||
func (cmd QuickstartCommand) LessenRequirements(command *flags.Command) {
|
||||
cmd.WebCommand.LessenRequirements(command)
|
||||
cmd.WorkerCommand.LessenRequirements("worker-", command)
|
||||
|
||||
// autogenerated
|
||||
command.FindOptionByLongName("session-signing-key").Required = false
|
||||
|
@ -106,9 +108,9 @@ func (cmd *QuickstartCommand) Runner(args []string) (ifrit.Runner, error) {
|
|||
return grouper.NewParallel(os.Interrupt, grouper.Members{
|
||||
{
|
||||
Name: "web",
|
||||
Runner: NewLoggingRunner(logger.Session("web-runner"), webRunner)},
|
||||
Runner: concourseCmd.NewLoggingRunner(logger.Session("web-runner"), webRunner)},
|
||||
{
|
||||
Name: "worker",
|
||||
Runner: NewLoggingRunner(logger.Session("worker-runner"), workerRunner)},
|
||||
Runner: concourseCmd.NewLoggingRunner(logger.Session("worker-runner"), workerRunner)},
|
||||
}), nil
|
||||
}
|
||||
|
|
|
@ -6,10 +6,12 @@ import (
|
|||
"fmt"
|
||||
"os"
|
||||
|
||||
concourseCmd "github.com/concourse/concourse/cmd"
|
||||
|
||||
"github.com/concourse/concourse/atc/atccmd"
|
||||
"github.com/concourse/concourse/tsa/tsacmd"
|
||||
"github.com/concourse/flag"
|
||||
flags "github.com/jessevdk/go-flags"
|
||||
"github.com/jessevdk/go-flags"
|
||||
"github.com/tedsuo/ifrit"
|
||||
"github.com/tedsuo/ifrit/grouper"
|
||||
"github.com/tedsuo/ifrit/sigmon"
|
||||
|
@ -22,7 +24,7 @@ type WebCommand struct {
|
|||
*tsacmd.TSACommand `group:"TSA Configuration" namespace:"tsa"`
|
||||
}
|
||||
|
||||
func (WebCommand) lessenRequirements(command *flags.Command) {
|
||||
func (WebCommand) LessenRequirements(command *flags.Command) {
|
||||
// defaults to atc external URL
|
||||
command.FindOptionByLongName("tsa-atc-url").Required = false
|
||||
|
||||
|
@ -41,7 +43,7 @@ func (cmd *WebCommand) Execute(args []string) error {
|
|||
|
||||
func (cmd *WebCommand) Runner(args []string) (ifrit.Runner, error) {
|
||||
if cmd.RunCommand.CLIArtifactsDir == "" {
|
||||
cmd.RunCommand.CLIArtifactsDir = flag.Dir(discoverAsset("fly-assets"))
|
||||
cmd.RunCommand.CLIArtifactsDir = flag.Dir(concourseCmd.DiscoverAsset("fly-assets"))
|
||||
}
|
||||
|
||||
cmd.populateTSAFlagsFromATCFlags()
|
||||
|
@ -60,11 +62,11 @@ func (cmd *WebCommand) Runner(args []string) (ifrit.Runner, error) {
|
|||
return grouper.NewParallel(os.Interrupt, grouper.Members{
|
||||
{
|
||||
Name: "atc",
|
||||
Runner: NewLoggingRunner(logger.Session("atc-runner"), atcRunner),
|
||||
Runner: concourseCmd.NewLoggingRunner(logger.Session("atc-runner"), atcRunner),
|
||||
},
|
||||
{
|
||||
Name: "tsa",
|
||||
Runner: NewLoggingRunner(logger.Session("tsa-runner"), tsaRunner),
|
||||
Runner: concourseCmd.NewLoggingRunner(logger.Session("tsa-runner"), tsaRunner),
|
||||
},
|
||||
}), nil
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
@ -8,7 +8,7 @@ import (
|
|||
// discoverAsset will find an asset path relative to the executable, assuming
|
||||
// the executable is installed as /usr/local/concourse/bin/concourse, and the
|
||||
// asset lives under /usr/local/concourse
|
||||
func discoverAsset(name string) string {
|
||||
func DiscoverAsset(name string) string {
|
||||
self, err := os.Executable()
|
||||
if err != nil {
|
||||
return ""
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"os"
|
|
@ -1,11 +1,11 @@
|
|||
package main_test
|
||||
package cmd_test
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
|
||||
"code.cloudfoundry.org/lager/lagertest"
|
||||
. "github.com/concourse/concourse/cmd/concourse"
|
||||
. "github.com/concourse/concourse/cmd"
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/tedsuo/ifrit"
|
|
@ -323,7 +323,7 @@ func listenForTokenCallback(tokenChannel chan string, errorChannel chan error, p
|
|||
w.Header().Set("Access-Control-Allow-Origin", targetUrl)
|
||||
tokenChannel <- r.FormValue("token")
|
||||
w.WriteHeader(200)
|
||||
_,_ = fmt.Fprint(w, "token received by fly")
|
||||
_, _ = fmt.Fprint(w, "token received by fly")
|
||||
}),
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package workercmd
|
||||
|
||||
import (
|
||||
"os"
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package workercmd
|
||||
|
||||
import (
|
||||
"fmt"
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package workercmd
|
||||
|
||||
import (
|
||||
"os"
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package workercmd
|
||||
|
||||
import (
|
||||
"fmt"
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package workercmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
@ -13,6 +13,7 @@ import (
|
|||
"github.com/concourse/baggageclaim/baggageclaimcmd"
|
||||
bclient "github.com/concourse/baggageclaim/client"
|
||||
"github.com/concourse/concourse"
|
||||
concourseCmd "github.com/concourse/concourse/cmd"
|
||||
"github.com/concourse/concourse/worker"
|
||||
"github.com/concourse/flag"
|
||||
"github.com/tedsuo/ifrit"
|
||||
|
@ -70,7 +71,7 @@ func (cmd *WorkerCommand) Execute(args []string) error {
|
|||
|
||||
func (cmd *WorkerCommand) Runner(args []string) (ifrit.Runner, error) {
|
||||
if cmd.ResourceTypes == "" {
|
||||
cmd.ResourceTypes = flag.Dir(discoverAsset("resource-types"))
|
||||
cmd.ResourceTypes = flag.Dir(concourseCmd.DiscoverAsset("resource-types"))
|
||||
}
|
||||
|
||||
logger, _ := cmd.Logger.Logger("worker")
|
||||
|
@ -150,18 +151,18 @@ func (cmd *WorkerCommand) Runner(args []string) (ifrit.Runner, error) {
|
|||
if !cmd.gardenIsExternal() {
|
||||
members = append(members, grouper.Member{
|
||||
Name: "garden",
|
||||
Runner: NewLoggingRunner(logger.Session("garden-runner"), gardenRunner),
|
||||
Runner: concourseCmd.NewLoggingRunner(logger.Session("garden-runner"), gardenRunner),
|
||||
})
|
||||
}
|
||||
|
||||
members = append(members, grouper.Members{
|
||||
{
|
||||
Name: "baggageclaim",
|
||||
Runner: NewLoggingRunner(logger.Session("baggageclaim-runner"), baggageclaimRunner),
|
||||
Runner: concourseCmd.NewLoggingRunner(logger.Session("baggageclaim-runner"), baggageclaimRunner),
|
||||
},
|
||||
{
|
||||
Name: "debug",
|
||||
Runner: NewLoggingRunner(
|
||||
Runner: concourseCmd.NewLoggingRunner(
|
||||
logger.Session("debug-runner"),
|
||||
http_server.New(
|
||||
fmt.Sprintf("%s:%d", cmd.DebugBindIP.IP, cmd.DebugBindPort),
|
||||
|
@ -171,7 +172,7 @@ func (cmd *WorkerCommand) Runner(args []string) (ifrit.Runner, error) {
|
|||
},
|
||||
{
|
||||
Name: "healthcheck",
|
||||
Runner: NewLoggingRunner(
|
||||
Runner: concourseCmd.NewLoggingRunner(
|
||||
logger.Session("healthcheck-runner"),
|
||||
http_server.New(
|
||||
fmt.Sprintf("%s:%d", cmd.HealthcheckBindIP.IP, cmd.HealthcheckBindPort),
|
||||
|
@ -181,21 +182,21 @@ func (cmd *WorkerCommand) Runner(args []string) (ifrit.Runner, error) {
|
|||
},
|
||||
{
|
||||
Name: "beacon",
|
||||
Runner: NewLoggingRunner(
|
||||
Runner: concourseCmd.NewLoggingRunner(
|
||||
logger.Session("beacon-runner"),
|
||||
beaconRunner,
|
||||
),
|
||||
},
|
||||
{
|
||||
Name: "container-sweeper",
|
||||
Runner: NewLoggingRunner(
|
||||
Runner: concourseCmd.NewLoggingRunner(
|
||||
logger.Session("container-sweeper"),
|
||||
containerSweeper,
|
||||
),
|
||||
},
|
||||
{
|
||||
Name: "volume-sweeper",
|
||||
Runner: NewLoggingRunner(
|
||||
Runner: concourseCmd.NewLoggingRunner(
|
||||
logger.Session("volume-sweeper"),
|
||||
volumeSweeper,
|
||||
),
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package workercmd
|
||||
|
||||
import (
|
||||
"time"
|
|
@ -1,4 +1,4 @@
|
|||
package main
|
||||
package workercmd
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
@ -15,8 +15,9 @@ import (
|
|||
"code.cloudfoundry.org/lager"
|
||||
"code.cloudfoundry.org/localip"
|
||||
"github.com/concourse/concourse/atc"
|
||||
concourseCmd "github.com/concourse/concourse/cmd"
|
||||
"github.com/concourse/flag"
|
||||
flags "github.com/jessevdk/go-flags"
|
||||
"github.com/jessevdk/go-flags"
|
||||
"github.com/tedsuo/ifrit"
|
||||
"github.com/tedsuo/ifrit/grouper"
|
||||
)
|
||||
|
@ -34,7 +35,7 @@ type GardenBackend struct {
|
|||
DNS DNSConfig `group:"DNS Proxy Configuration" namespace:"dns-proxy"`
|
||||
}
|
||||
|
||||
func (cmd WorkerCommand) lessenRequirements(prefix string, command *flags.Command) {
|
||||
func (cmd WorkerCommand) LessenRequirements(prefix string, command *flags.Command) {
|
||||
// configured as work-dir/volumes
|
||||
command.FindOptionByLongName(prefix + "baggageclaim-volumes").Required = false
|
||||
}
|
||||
|
@ -76,7 +77,7 @@ func (cmd *WorkerCommand) gardenRunner(logger lager.Logger) (atc.Worker, ifrit.R
|
|||
}
|
||||
|
||||
func (cmd *WorkerCommand) gdnRunner(logger lager.Logger) (ifrit.Runner, error) {
|
||||
if binDir := discoverAsset("bin"); binDir != "" {
|
||||
if binDir := concourseCmd.DiscoverAsset("bin"); binDir != "" {
|
||||
// ensure packaged 'gdn' executable is available in $PATH
|
||||
err := os.Setenv("PATH", binDir+":"+os.Getenv("PATH"))
|
||||
if err != nil {
|
||||
|
@ -130,7 +131,7 @@ func (cmd *WorkerCommand) gdnRunner(logger lager.Logger) (ifrit.Runner, error) {
|
|||
|
||||
members = append(members, grouper.Member{
|
||||
Name: "dns-proxy",
|
||||
Runner: NewLoggingRunner(
|
||||
Runner: concourseCmd.NewLoggingRunner(
|
||||
logger.Session("dns-proxy-runner"),
|
||||
dnsProxyRunner,
|
||||
),
|
||||
|
@ -153,7 +154,7 @@ func (cmd *WorkerCommand) gdnRunner(logger lager.Logger) (ifrit.Runner, error) {
|
|||
|
||||
members = append(members, grouper.Member{
|
||||
Name: "gdn",
|
||||
Runner: NewLoggingRunner(
|
||||
Runner: concourseCmd.NewLoggingRunner(
|
||||
logger.Session("gdn-runner"),
|
||||
cmdRunner{gdnCmd},
|
||||
),
|
|
@ -1,13 +1,13 @@
|
|||
// +build !linux
|
||||
|
||||
package main
|
||||
package workercmd
|
||||
|
||||
import (
|
||||
"runtime"
|
||||
|
||||
"code.cloudfoundry.org/lager"
|
||||
"github.com/concourse/concourse/atc"
|
||||
flags "github.com/jessevdk/go-flags"
|
||||
"github.com/jessevdk/go-flags"
|
||||
"github.com/tedsuo/ifrit"
|
||||
)
|
||||
|
||||
|
@ -15,7 +15,7 @@ type GardenBackend struct{}
|
|||
|
||||
type Certs struct{}
|
||||
|
||||
func (cmd WorkerCommand) lessenRequirements(prefix string, command *flags.Command) {
|
||||
func (cmd WorkerCommand) LessenRequirements(prefix string, command *flags.Command) {
|
||||
// created in the work-dir
|
||||
command.FindOptionByLongName(prefix + "baggageclaim-volumes").Required = false
|
||||
}
|
Loading…
Reference in New Issue