github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/container/testing/common.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  	"io/ioutil"
     8  
     9  	jc "github.com/juju/testing/checkers"
    10  	gc "launchpad.net/gocheck"
    11  
    12  	"github.com/juju/juju/container"
    13  	"github.com/juju/juju/environs"
    14  	"github.com/juju/juju/instance"
    15  	jujutesting "github.com/juju/juju/juju/testing"
    16  	"github.com/juju/juju/tools"
    17  	"github.com/juju/juju/version"
    18  )
    19  
    20  func CreateContainer(c *gc.C, manager container.Manager, machineId string) instance.Instance {
    21  	stateInfo := jujutesting.FakeStateInfo(machineId)
    22  	apiInfo := jujutesting.FakeAPIInfo(machineId)
    23  	machineConfig := environs.NewMachineConfig(machineId, "fake-nonce", nil, stateInfo, apiInfo)
    24  	machineConfig.Tools = &tools.Tools{
    25  		Version: version.MustParseBinary("2.3.4-foo-bar"),
    26  		URL:     "http://tools.testing.invalid/2.3.4-foo-bar.tgz",
    27  	}
    28  
    29  	series := "series"
    30  	network := container.BridgeNetworkConfig("nic42")
    31  	inst, hardware, err := manager.CreateContainer(machineConfig, series, network)
    32  	c.Assert(err, gc.IsNil)
    33  	c.Assert(hardware, gc.NotNil)
    34  	c.Assert(hardware.String(), gc.Not(gc.Equals), "")
    35  	return inst
    36  }
    37  
    38  func AssertCloudInit(c *gc.C, filename string) []byte {
    39  	c.Assert(filename, jc.IsNonEmptyFile)
    40  	data, err := ioutil.ReadFile(filename)
    41  	c.Assert(err, gc.IsNil)
    42  	c.Assert(string(data), jc.HasPrefix, "#cloud-config\n")
    43  	return data
    44  }