55 "encoding/json"
66 "fmt"
77 "os"
8- "strconv"
98
109 bosherr "github.com/cloudfoundry/bosh-utils/errors"
1110 boshlog "github.com/cloudfoundry/bosh-utils/logger"
@@ -68,21 +67,24 @@ type CPICmdRunner interface {
6867
6968type cpiCmdRunner struct {
7069 cmdRunner boshsys.CmdRunner
71- cpi CPI
72- logger boshlog.Logger
73- logTag string
70+ cpi CPI
71+ logger boshlog.Logger
72+ logTag string
73+ useIsolatedEnv bool
7474}
7575
7676func NewCPICmdRunner (
7777 cmdRunner boshsys.CmdRunner ,
7878 cpi CPI ,
7979 logger boshlog.Logger ,
80+ useIsolatedEnv bool ,
8081) CPICmdRunner {
8182 return & cpiCmdRunner {
8283 cmdRunner : cmdRunner ,
8384 cpi : cpi ,
8485 logger : logger ,
8586 logTag : "cpiCmdRunner" ,
87+ useIsolatedEnv : useIsolatedEnv ,
8688 }
8789}
8890
@@ -100,14 +102,6 @@ func (r *cpiCmdRunner) Run(context CmdContext, method string, apiVersion int, ar
100102 if err != nil {
101103 return CmdOutput {}, bosherr .WrapErrorf (err , "Marshalling external CPI command input %#v" , cmdInput )
102104 }
103- useIsolatedEnv := true
104- value , present := os .LookupEnv ("BOSH_CPI_USE_ISOLATED_ENV" )
105- if present {
106- useIsolatedEnv , err = strconv .ParseBool (value )
107- if err != nil {
108- return CmdOutput {}, bosherr .WrapErrorf (err , "Parsing $BOSH_CPI_USE_ISOLATED_ENV error, could not parse value: %v" , value )
109- }
110- }
111105
112106 cmdPath := r .cpi .ExecutablePath ()
113107 cmd := boshsys.Command {
@@ -117,11 +111,11 @@ func (r *cpiCmdRunner) Run(context CmdContext, method string, apiVersion int, ar
117111 "BOSH_JOBS_DIR" : r .cpi .JobsDir ,
118112 "PATH" : os .Getenv ("PATH" ),
119113 },
120- // 🚧 To-do: Make this configurable via cli-flag or use everywhere the environment-variable
121- // “BOSH_CPI_USE_ISOLATED_ENV” as in cpi_cmd_runner.go, see <https://github.com/cloudfoundry/bosh-cli/issues/660>.
122- UseIsolatedEnv : useIsolatedEnv ,
114+ UseIsolatedEnv : r .useIsolatedEnv ,
123115 Stdin : bytes .NewReader (inputBytes ),
124116 }
117+ fmt .Printf ("cpi_cmd_runner.go: UseIsolatedEnv = %t\n " , cmd .UseIsolatedEnv ) // 🚧 To-do: Debug-code
118+
125119 stdout , stderr , exitCode , err := r .cmdRunner .RunComplexCommand (cmd )
126120 r .logger .Debug (r .logTag , "Exit Code %d when executing external CPI command '%s'\n STDIN: '%s'\n STDOUT: '%s'\n STDERR: '%s'" , exitCode , cmdPath , string (inputBytes ), stdout , stderr )
127121 if err != nil {
0 commit comments