forked from juju/juju
/
common.go
44 lines (37 loc) · 1.33 KB
/
common.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Copyright 2013 Canonical Ltd.
// Licensed under the AGPLv3, see LICENCE file for details.
package testing
import (
"io/ioutil"
jc "github.com/juju/testing/checkers"
gc "launchpad.net/gocheck"
"github.com/juju/juju/container"
"github.com/juju/juju/environs"
"github.com/juju/juju/instance"
jujutesting "github.com/juju/juju/juju/testing"
"github.com/juju/juju/tools"
"github.com/juju/juju/version"
)
func CreateContainer(c *gc.C, manager container.Manager, machineId string) instance.Instance {
stateInfo := jujutesting.FakeStateInfo(machineId)
apiInfo := jujutesting.FakeAPIInfo(machineId)
machineConfig := environs.NewMachineConfig(machineId, "fake-nonce", nil, stateInfo, apiInfo)
machineConfig.Tools = &tools.Tools{
Version: version.MustParseBinary("2.3.4-foo-bar"),
URL: "http://tools.testing.invalid/2.3.4-foo-bar.tgz",
}
series := "series"
network := container.BridgeNetworkConfig("nic42")
inst, hardware, err := manager.CreateContainer(machineConfig, series, network)
c.Assert(err, gc.IsNil)
c.Assert(hardware, gc.NotNil)
c.Assert(hardware.String(), gc.Not(gc.Equals), "")
return inst
}
func AssertCloudInit(c *gc.C, filename string) []byte {
c.Assert(filename, jc.IsNonEmptyFile)
data, err := ioutil.ReadFile(filename)
c.Assert(err, gc.IsNil)
c.Assert(string(data), jc.HasPrefix, "#cloud-config\n")
return data
}