concourse / concourse

Usage of both value and pointer receivers GO-W1029
Anti-pattern
Major
11 occurrences in this check
Type "WorkerCommand" has both value and pointer receivers
142
143var ErrNotRoot = errors.New("worker must be run as root")
144
145func (cmd *WorkerCommand) checkRoot() error {146	currentUser, err := user.Current()
147	if err != nil {
148		return err
Type "WorkerCommand" has both value and pointer receivers
155	return nil
156}
157
158func (cmd *WorkerCommand) dnsProxyRunner(logger lager.Logger) (ifrit.Runner, error) {159	server, err := network.DNSServer()
160	if err != nil {
161		return nil, err
Type "WorkerCommand" has both value and pointer receivers
 68const guardianRuntime = "guardian"
 69const houdiniRuntime = "houdini"
 70
 71func (cmd WorkerCommand) LessenRequirements(prefix string, command *flags.Command) { 72	// configured as work-dir/volumes
 73	command.FindOptionByLongName(prefix + "baggageclaim-volumes").Required = false
 74}
Type "WorkerCommand" has both value and pointer receivers
184	}), nil
185}
186
187func (cmd *WorkerCommand) loadResources(logger lager.Logger) ([]atc.WorkerResourceType, error) {188	var types []atc.WorkerResourceType
189
190	if cmd.ResourceTypes != "" {
Type "WorkerCommand" has both value and pointer receivers
235const containerdEnvPrefix = "CONCOURSE_CONTAINERD_"
236
237// Checks if runtime specific flags provided match the selected runtime type
238func (cmd *WorkerCommand) verifyRuntimeFlags() error {239	switch {
240	case cmd.Runtime == houdiniRuntime:
241		if cmd.hasFlags(guardianEnvPrefix) || cmd.hasFlags(containerdEnvPrefix) {
Type "WorkerCommand" has both value and pointer receivers
219	return types, nil
220}
221
222func (cmd *WorkerCommand) hasFlags(prefix string) bool {223	env := os.Environ()
224
225	for _, envVar := range env {
Type "WorkerCommand" has both value and pointer receivers
 77// The runtime is represented as a Ifrit runner that must include a Garden Server process. The Garden server exposes API
 78// endpoints that allow the ATC to make container related requests to the worker.
 79// The runner may also include additional processes such as the runtime's daemon or a DNS proxy server.
 80func (cmd *WorkerCommand) gardenServerRunner(logger lager.Logger) (atc.Worker, ifrit.Runner, error) { 81	err := cmd.checkRoot()
 82	if err != nil {
 83		return atc.Worker{}, nil, err
Type "WorkerCommand" has both value and pointer receivers
 88	), nil
 89}
 90
 91func (cmd *WorkerCommand) buildUpNetworkOpts(logger lager.Logger, dnsServers []string) (runtime.Network, error) { 92	logger.Debug("create-cni-network-opts")
 93	if cmd.Containerd.CNIPluginsDir == "" {
 94		pluginsDir := concourseCmd.DiscoverAsset("bin")
Type "WorkerCommand" has both value and pointer receivers
130	return runtime.NewCNINetwork(networkOpts...)
131}
132
133func (cmd *WorkerCommand) buildUpBackendOpts(logger lager.Logger, cniNetwork runtime.Network) ([]runtime.GardenBackendOpt, error) {134	logger.Debug("create-containerd-backendOpts")
135
136	if cmd.Containerd.InitBin == "" {
Type "WorkerCommand" has both value and pointer receivers
153
154// containerdRunner spawns a containerd and a Garden server process for use as the container
155// runtime of Concourse.
156func (cmd *WorkerCommand) containerdRunner(logger lager.Logger) (ifrit.Runner, error) {157	const sock = "/run/containerd/containerd.sock"
158
159	var (
Type "WorkerCommand" has both value and pointer receivers
 54
 55// containerdGardenServerRunner launches a Garden server configured to interact
 56// with containerd via the containerdAddr socket.
 57func (cmd *WorkerCommand) containerdGardenServerRunner( 58	logger lager.Logger,
 59	containerdAddr string,
 60	dnsServers []string,