github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/environs/testing/bootstrap.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package testing 5 6 import ( 7 "github.com/juju/loggo" 8 "github.com/juju/testing" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/cloudconfig/instancecfg" 12 "github.com/juju/juju/cmd/envcmd" 13 "github.com/juju/juju/environs" 14 "github.com/juju/juju/instance" 15 "github.com/juju/juju/provider/common" 16 coretesting "github.com/juju/juju/testing" 17 "github.com/juju/juju/utils/ssh" 18 ) 19 20 var logger = loggo.GetLogger("juju.environs.testing") 21 22 // DisableFinishBootstrap disables common.FinishBootstrap so that tests 23 // do not attempt to SSH to non-existent machines. The result is a function 24 // that restores finishBootstrap. 25 func DisableFinishBootstrap() func() { 26 f := func(environs.BootstrapContext, ssh.Client, instance.Instance, *instancecfg.InstanceConfig) error { 27 logger.Warningf("provider/common.FinishBootstrap is disabled") 28 return nil 29 } 30 return testing.PatchValue(&common.FinishBootstrap, f) 31 } 32 33 // BootstrapContext creates a simple bootstrap execution context. 34 func BootstrapContext(c *gc.C) environs.BootstrapContext { 35 return envcmd.BootstrapContext(coretesting.Context(c)) 36 }