github.com/mwhudson/juju@v0.0.0-20160512215208-90ff01f3497f/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 "github.com/juju/utils/ssh" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/cloudconfig/instancecfg" 13 "github.com/juju/juju/cmd/modelcmd" 14 "github.com/juju/juju/environs" 15 "github.com/juju/juju/instance" 16 "github.com/juju/juju/provider/common" 17 coretesting "github.com/juju/juju/testing" 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, environs.Environ, 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 modelcmd.BootstrapContext(coretesting.Context(c)) 36 }