Skip to content

Commit 8887d2a

Browse files
jfmyers9aramprice
authored andcommitted
encapsulate filepath, path, and container id logic
These generally depended on Job name and process name. Renamed `bpm` package to `config`. Renamed `Config` to `ProcessConfig`. [finishes #147770663] Signed-off-by: aram price <aprice@pivotal.io>
1 parent 25c70ad commit 8887d2a

File tree

19 files changed

+369
-326
lines changed

19 files changed

+369
-326
lines changed

packages/bpm/spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ dependencies:
77

88
files:
99
- bpm/*.go # gosub
10-
- bpm/bpm/*.go # gosub
1110
- bpm/commands/*.go # gosub
11+
- bpm/config/*.go # gosub
1212
- bpm/models/*.go # gosub
1313
- bpm/presenters/*.go # gosub
1414
- bpm/runc/adapter/*.go # gosub

src/bpm/commands/pid.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package commands
1717

1818
import (
19-
"bpm/bpm"
19+
"bpm/config"
2020
"errors"
2121
"fmt"
2222

@@ -41,13 +41,13 @@ func pidPre(cmd *cobra.Command, args []string) error {
4141
}
4242

4343
func pidForJob(cmd *cobra.Command, _ []string) error {
44-
_, err := bpm.ParseConfig(configPath)
44+
_, err := config.ParseProcessConfig(bpmCfg.ConfigPath())
4545
if err != nil {
4646
return fmt.Errorf("failed to get job: %s", err.Error())
4747
}
4848

4949
runcLifecycle := newRuncLifecycle()
50-
job, err := runcLifecycle.GetJob(jobName, processName)
50+
job, err := runcLifecycle.GetJob(bpmCfg)
5151
if err != nil {
5252
return fmt.Errorf("failed to get job: %s", err.Error())
5353
}

src/bpm/commands/root.go

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@
1616
package commands
1717

1818
import (
19-
"bpm/bpm"
19+
"bpm/config"
2020
"bpm/runc/adapter"
2121
"bpm/runc/client"
2222
"bpm/runc/lifecycle"
2323
"bpm/usertools"
2424
"errors"
25-
"fmt"
2625
"os"
27-
"path/filepath"
2826

2927
"golang.org/x/sys/unix"
3028

@@ -35,8 +33,11 @@ import (
3533
"github.com/spf13/cobra"
3634
)
3735

38-
var jobName, processName, configPath string
39-
var logger lager.Logger
36+
var (
37+
processName string
38+
bpmCfg *config.BPMConfig
39+
logger lager.Logger
40+
)
4041

4142
var userFinder = usertools.NewUserFinder()
4243

@@ -58,29 +59,24 @@ func validateInput(args []string) error {
5859
return errors.New("must specify a job")
5960
}
6061

61-
jobName = args[0]
62+
jobName := args[0]
6263

6364
if processName == "" {
6465
processName = jobName
6566
}
6667

67-
configPath = filepath.Join(
68-
bpm.BoshRoot(),
69-
"jobs", jobName, "config", "bpm",
70-
fmt.Sprintf("%s.yml", processName),
71-
)
68+
bpmCfg = config.NewBPMConfig(config.BoshRoot(), jobName, processName)
7269

7370
return nil
7471
}
7572

7673
func setupBpmLogs(sessionName string) error {
77-
bpmLogFileLocation := filepath.Join(bpm.BoshRoot(), "sys", "log", jobName, "bpm.log")
78-
err := os.MkdirAll(filepath.Join(bpm.BoshRoot(), "sys", "log", jobName), 0750)
74+
err := os.MkdirAll(bpmCfg.LogDir(), 0750)
7975
if err != nil {
8076
return err
8177
}
8278

83-
logFile, err := os.OpenFile(bpmLogFileLocation, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600)
79+
logFile, err := os.OpenFile(bpmCfg.BPMLog(), os.O_RDWR|os.O_CREATE|os.O_APPEND, 0600)
8480
if err != nil {
8581
return err
8682
}
@@ -90,14 +86,14 @@ func setupBpmLogs(sessionName string) error {
9086
return err
9187
}
9288

93-
err = os.Chown(bpmLogFileLocation, int(usr.UID), int(usr.GID))
89+
err = os.Chown(bpmCfg.BPMLog(), int(usr.UID), int(usr.GID))
9490
if err != nil {
9591
return err
9692
}
9793

9894
logger, _ = lagerflags.NewFromConfig("bpm", lagerflags.DefaultLagerConfig())
9995
logger.RegisterSink(lager.NewWriterSink(logFile, lager.INFO))
100-
logger = logger.WithData(lager.Data{"job": jobName, "process": processName})
96+
logger = logger.WithData(lager.Data{"job": bpmCfg.JobName(), "process": bpmCfg.ProcName()})
10197
logger = logger.Session(sessionName)
10298

10399
return nil
@@ -108,15 +104,13 @@ func acquireLifecycleLock() error {
108104
l.Info("starting")
109105
defer l.Info("complete")
110106

111-
bpmPidDir := filepath.Join(bpm.BoshRoot(), "sys", "run", "bpm", jobName)
112-
err := os.MkdirAll(bpmPidDir, 0700)
107+
err := os.MkdirAll(bpmCfg.PidDir(), 0700)
113108
if err != nil {
114109
l.Error("failed-to-create-lock-dir", err)
115110
return err
116111
}
117112

118-
lockFile := filepath.Join(bpmPidDir, fmt.Sprintf("%s.lock", processName))
119-
f, err := os.OpenFile(lockFile, os.O_CREATE|os.O_RDWR, 0600)
113+
f, err := os.OpenFile(bpmCfg.LockFile(), os.O_CREATE|os.O_RDWR, 0600)
120114
if err != nil {
121115
l.Error("failed-to-create-lock-file", err)
122116
return err
@@ -136,8 +130,7 @@ func releaseLifecycleLock() error {
136130
l.Info("starting")
137131
defer l.Info("complete")
138132

139-
lockFile := filepath.Join(bpm.BoshRoot(), "sys", "run", "bpm", jobName, fmt.Sprintf("%s.lock", processName))
140-
err := os.RemoveAll(lockFile)
133+
err := os.RemoveAll(bpmCfg.LockFile())
141134
if err != nil {
142135
l.Error("failed-to-remove-lock-file", err)
143136
return err
@@ -147,7 +140,10 @@ func releaseLifecycleLock() error {
147140
}
148141

149142
func newRuncLifecycle() *lifecycle.RuncLifecycle {
150-
runcClient := client.NewRuncClient(bpm.RuncPath(), bpm.RuncRoot())
143+
runcClient := client.NewRuncClient(
144+
config.RuncPath(config.BoshRoot()),
145+
config.RuncRoot(config.BoshRoot()),
146+
)
151147
runcAdapter := adapter.NewRuncAdapter()
152148
clock := clock.NewClock()
153149

@@ -157,6 +153,5 @@ func newRuncLifecycle() *lifecycle.RuncLifecycle {
157153
userFinder,
158154
lifecycle.NewCommandRunner(),
159155
clock,
160-
bpm.BoshRoot(),
161156
)
162157
}

src/bpm/commands/shell.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
package commands
1717

1818
import (
19+
"bpm/config"
20+
"fmt"
1921
"os"
2022

2123
"github.com/spf13/cobra"
@@ -39,8 +41,13 @@ func shellPre(cmd *cobra.Command, args []string) error {
3941
}
4042

4143
func shell(cmd *cobra.Command, _ []string) error {
44+
_, err := config.ParseProcessConfig(bpmCfg.ConfigPath())
45+
if err != nil {
46+
return fmt.Errorf("failed to get job: %s", err.Error())
47+
}
48+
4249
cmd.SilenceUsage = true
4350

4451
runcLifecycle := newRuncLifecycle()
45-
return runcLifecycle.OpenShell(jobName, processName, os.Stdin, cmd.OutOrStdout(), cmd.OutOrStderr())
52+
return runcLifecycle.OpenShell(bpmCfg, os.Stdin, cmd.OutOrStdout(), cmd.OutOrStderr())
4653
}

src/bpm/commands/start.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package commands
1717

1818
import (
19-
"bpm/bpm"
19+
"bpm/config"
2020

2121
"github.com/spf13/cobra"
2222
)
@@ -55,18 +55,19 @@ func start(cmd *cobra.Command, _ []string) error {
5555
logger.Info("starting")
5656
defer logger.Info("complete")
5757

58-
cfg, err := bpm.ParseConfig(configPath)
58+
procCfg, err := config.ParseProcessConfig(bpmCfg.ConfigPath())
5959
if err != nil {
6060
logger.Error("failed-to-parse-config", err)
6161
return err
6262
}
6363

6464
runcLifecycle := newRuncLifecycle()
65-
err = runcLifecycle.StartJob(jobName, processName, cfg)
65+
66+
err = runcLifecycle.StartJob(bpmCfg, procCfg)
6667
if err != nil {
6768
logger.Error("failed-to-start", err)
6869

69-
removeErr := runcLifecycle.RemoveJob(jobName, processName)
70+
removeErr := runcLifecycle.RemoveJob(bpmCfg)
7071
if removeErr != nil {
7172
logger.Error("failed-to-cleanup", removeErr)
7273
}

src/bpm/commands/stop.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package commands
1717

1818
import (
19-
"bpm/bpm"
19+
"bpm/config"
2020
"fmt"
2121
"time"
2222

@@ -59,13 +59,13 @@ func stop(cmd *cobra.Command, _ []string) error {
5959
logger.Info("starting")
6060
defer logger.Info("complete")
6161

62-
_, err := bpm.ParseConfig(configPath)
62+
_, err := config.ParseProcessConfig(bpmCfg.ConfigPath())
6363
if err != nil {
6464
return fmt.Errorf("failed to get job: %s", err.Error())
6565
}
6666

6767
runcLifecycle := newRuncLifecycle()
68-
job, err := runcLifecycle.GetJob(jobName, processName)
68+
job, err := runcLifecycle.GetJob(bpmCfg)
6969
if err != nil {
7070
logger.Error("failed-to-get-job", err)
7171
return err
@@ -76,10 +76,10 @@ func stop(cmd *cobra.Command, _ []string) error {
7676
return nil
7777
}
7878

79-
err = runcLifecycle.StopJob(logger, jobName, processName, DefaultStopTimeout)
79+
err = runcLifecycle.StopJob(logger, bpmCfg, DefaultStopTimeout)
8080
if err != nil {
8181
logger.Error("failed-to-stop", err)
8282
}
8383

84-
return runcLifecycle.RemoveJob(jobName, processName)
84+
return runcLifecycle.RemoveJob(bpmCfg)
8585
}

src/bpm/commands/trace.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package commands
1717

1818
import (
19-
"bpm/bpm"
19+
"bpm/config"
2020
"errors"
2121
"fmt"
2222
"os"
@@ -54,13 +54,13 @@ func tracePre(cmd *cobra.Command, args []string) error {
5454
}
5555

5656
func trace(cmd *cobra.Command, _ []string) error {
57-
_, err := bpm.ParseConfig(configPath)
57+
_, err := config.ParseProcessConfig(bpmCfg.ConfigPath())
5858
if err != nil {
5959
return fmt.Errorf("failed to get job: %s", err.Error())
6060
}
6161

6262
runcLifecycle := newRuncLifecycle()
63-
job, err := runcLifecycle.GetJob(jobName, processName)
63+
job, err := runcLifecycle.GetJob(bpmCfg)
6464
if err != nil {
6565
return fmt.Errorf("failed to get job: %s", err.Error())
6666
}

0 commit comments

Comments
 (0)