launchpad.net/~rogpeppe/juju-core/500-errgo-fix@v0.0.0-20140213181702-000000002356/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  	gc "launchpad.net/gocheck"
    10  
    11  	"launchpad.net/juju-core/container"
    12  	"launchpad.net/juju-core/environs"
    13  	"launchpad.net/juju-core/instance"
    14  	jujutesting "launchpad.net/juju-core/juju/testing"
    15  	jc "launchpad.net/juju-core/testing/checkers"
    16  	"launchpad.net/juju-core/tools"
    17  	"launchpad.net/juju-core/version"
    18  )
    19  
    20  func StartContainer(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", stateInfo, apiInfo)
    24  	machineConfig.SyslogPort = 2345
    25  	machineConfig.Tools = &tools.Tools{
    26  		Version: version.MustParseBinary("2.3.4-foo-bar"),
    27  		URL:     "http://tools.testing.invalid/2.3.4-foo-bar.tgz",
    28  	}
    29  
    30  	series := "series"
    31  	network := container.BridgeNetworkConfig("nic42")
    32  	inst, hardware, err := manager.StartContainer(machineConfig, series, network)
    33  	c.Assert(err, gc.IsNil)
    34  	c.Assert(hardware, gc.NotNil)
    35  	c.Assert(hardware.String(), gc.Not(gc.Equals), "")
    36  	return inst
    37  }
    38  
    39  func AssertCloudInit(c *gc.C, filename string) []byte {
    40  	c.Assert(filename, jc.IsNonEmptyFile)
    41  	data, err := ioutil.ReadFile(filename)
    42  	c.Assert(err, gc.IsNil)
    43  	c.Assert(string(data), jc.HasPrefix, "#cloud-config\n")
    44  	return data
    45  }