1616package commands
1717
1818import (
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
4142var 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
7673func 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
149142func 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}
0 commit comments