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  }