func (*NetworkSuite) TestGenerateNetworkConfig(c *gc.C) { for _, test := range []struct { config *lxc.NetworkConfig net string link string }{{ config: nil, net: "veth", link: "lxcbr0", }, { config: lxc.DefaultNetworkConfig(), net: "veth", link: "lxcbr0", }, { config: lxc.BridgeNetworkConfig("foo"), net: "veth", link: "foo", }, { config: lxc.PhysicalNetworkConfig("foo"), net: "phys", link: "foo", }} { config := lxc.GenerateNetworkConfig(test.config) c.Assert(config, jc.Contains, fmt.Sprintf("lxc.network.type = %s\n", test.net)) c.Assert(config, jc.Contains, fmt.Sprintf("lxc.network.link = %s\n", test.link)) } }
func StartContainer(c *gc.C, manager lxc.ContainerManager, machineId string) instance.Instance { config := testing.EnvironConfig(c) stateInfo := jujutesting.FakeStateInfo(machineId) apiInfo := jujutesting.FakeAPIInfo(machineId) network := lxc.BridgeNetworkConfig("nic42") series := "series" nonce := "fake-nonce" tools := &tools.Tools{ Version: version.MustParseBinary("2.3.4-foo-bar"), URL: "http://tools.testing.invalid/2.3.4-foo-bar.tgz", } inst, err := manager.StartContainer(machineId, series, nonce, network, tools, config, stateInfo, apiInfo) c.Assert(err, gc.IsNil) return inst }
func (broker *lxcBroker) StartInstance(machineId, machineNonce string, series string, cons constraints.Value, info *state.Info, apiInfo *api.Info) (instance.Instance, *instance.HardwareCharacteristics, error) { lxcLogger.Infof("starting lxc container for machineId: %s", machineId) // Default to using the host network until we can configure. bridgeDevice := os.Getenv(osenv.JujuLxcBridge) if bridgeDevice == "" { bridgeDevice = lxc.DefaultLxcBridge } network := lxc.BridgeNetworkConfig(bridgeDevice) inst, err := broker.manager.StartContainer(machineId, series, machineNonce, network, broker.tools, broker.config, info, apiInfo) if err != nil { lxcLogger.Errorf("failed to start container: %v", err) return nil, nil, err } lxcLogger.Infof("started lxc container for machineId: %s, %s", machineId, inst.Id()) return inst, nil, nil }