本文整理汇总了Golang中github.com/juju/juju/container.BridgeNetworkConfig函数的典型用法代码示例。如果您正苦于以下问题:Golang BridgeNetworkConfig函数的具体用法?Golang BridgeNetworkConfig怎么用?Golang BridgeNetworkConfig使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了BridgeNetworkConfig函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: createContainer
func createContainer(c *gc.C, manager container.Manager, machineId string) instance.Instance {
machineNonce := "fake-nonce"
stateInfo := jujutesting.FakeStateInfo(machineId)
apiInfo := jujutesting.FakeAPIInfo(machineId)
instanceConfig, err := instancecfg.NewInstanceConfig(machineId, machineNonce, imagemetadata.ReleasedStream, "quantal", "", true, stateInfo, apiInfo)
c.Assert(err, jc.ErrorIsNil)
network := container.BridgeNetworkConfig("virbr0", 0, nil)
err = instanceConfig.SetTools(tools.List{
&tools.Tools{
Version: version.MustParseBinary("2.3.4-foo-bar"),
URL: "http://tools.testing.invalid/2.3.4-foo-bar.tgz",
},
})
c.Assert(err, jc.ErrorIsNil)
environConfig := dummyConfig(c)
err = instancecfg.FinishInstanceConfig(instanceConfig, environConfig)
c.Assert(err, jc.ErrorIsNil)
callback := func(settableStatus status.Status, info string, data map[string]interface{}) error { return nil }
inst, hardware, err := manager.CreateContainer(instanceConfig, "precise", network, nil, callback)
c.Assert(err, jc.ErrorIsNil)
c.Assert(hardware, gc.NotNil)
expected := fmt.Sprintf("arch=%s cpu-cores=1 mem=512M root-disk=8192M", arch.HostArch())
c.Assert(hardware.String(), gc.Equals, expected)
return inst
}
开发者ID:makyo,项目名称:juju,代码行数:26,代码来源:live_test.go
示例2: TestGenerateNetworkConfig
func (*NetworkSuite) TestGenerateNetworkConfig(c *gc.C) {
for _, test := range []struct {
config *container.NetworkConfig
net string
link string
}{{
config: nil,
net: "veth",
link: "lxcbr0",
}, {
config: lxc.DefaultNetworkConfig(),
net: "veth",
link: "lxcbr0",
}, {
config: container.BridgeNetworkConfig("foo"),
net: "veth",
link: "foo",
}, {
config: container.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))
}
}
开发者ID:kapilt,项目名称:juju,代码行数:27,代码来源:lxc_test.go
示例3: TestCloudInitUserDataFallbackConfigWithContainerHostname
func (s *UserDataSuite) TestCloudInitUserDataFallbackConfigWithContainerHostname(c *gc.C) {
instanceConfig, err := containertesting.MockMachineConfig("1/lxd/0")
instanceConfig.MachineContainerHostname = "lxdhostname"
c.Assert(err, jc.ErrorIsNil)
networkConfig := container.BridgeNetworkConfig("foo", 0, nil)
data, err := containerinit.CloudInitUserData(instanceConfig, networkConfig)
c.Assert(err, jc.ErrorIsNil)
c.Assert(data, gc.NotNil)
linesToMatch := CloudInitDataExcludingOutputSection(string(data))
expected := fmt.Sprintf(s.expectedFallbackUserData, s.networkInterfacesFile, s.systemNetworkInterfacesFile)
var expectedLinesToMatch []string
for _, line := range strings.Split(expected, "\n") {
if strings.HasPrefix(line, "runcmd:") {
break
}
expectedLinesToMatch = append(expectedLinesToMatch, line)
}
expectedLinesToMatch = append(expectedLinesToMatch, "hostname: lxdhostname")
expectedLinesToMatch = append(expectedLinesToMatch, "manage_etc_hosts: true")
c.Assert(strings.Join(linesToMatch, "\n")+"\n", gc.Equals, strings.Join(expectedLinesToMatch, "\n")+"\n")
}
开发者ID:bac,项目名称:juju,代码行数:26,代码来源:container_userdata_test.go
示例4: CreateContainerTest
// CreateContainerTest tries to create a container and returns any errors encountered along the
// way
func CreateContainerTest(c *gc.C, manager container.Manager, machineId string) (instance.Instance, error) {
instanceConfig, err := MockMachineConfig(machineId)
if err != nil {
return nil, errors.Trace(err)
}
envConfig, err := config.New(config.NoDefaults, dummy.SampleConfig())
if err != nil {
return nil, errors.Trace(err)
}
instanceConfig.Config = envConfig
network := container.BridgeNetworkConfig("nic42", 0, nil)
storage := &container.StorageConfig{}
callback := func(settableStatus status.Status, info string, data map[string]interface{}) error { return nil }
inst, hardware, err := manager.CreateContainer(instanceConfig, "quantal", network, storage, callback)
if err != nil {
return nil, errors.Trace(err)
}
if hardware == nil {
return nil, errors.New("nil hardware characteristics")
}
if hardware.String() == "" {
return nil, errors.New("empty hardware characteristics")
}
return inst, nil
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:32,代码来源:common.go
示例5: TestNewCloudInitConfigWithNetworksNoConfig
func (s *UserDataSuite) TestNewCloudInitConfigWithNetworksNoConfig(c *gc.C) {
netConfig := container.BridgeNetworkConfig("foo", 0, nil)
cloudConf, err := containerinit.NewCloudInitConfigWithNetworks("quantal", netConfig)
c.Assert(err, jc.ErrorIsNil)
expected := "#cloud-config\n{}\n"
assertUserData(c, cloudConf, expected)
}
开发者ID:imoapps,项目名称:juju,代码行数:7,代码来源:container_userdata_test.go
示例6: TestCreateContainerWithBlockStorage
func (s *LxcSuite) TestCreateContainerWithBlockStorage(c *gc.C) {
err := os.Remove(s.RestartDir)
c.Assert(err, jc.ErrorIsNil)
manager := s.makeManager(c, "test")
machineConfig, err := containertesting.MockMachineConfig("1/lxc/0")
c.Assert(err, jc.ErrorIsNil)
storageConfig := &container.StorageConfig{AllowMount: true}
networkConfig := container.BridgeNetworkConfig("nic42", 4321, nil)
instance := containertesting.CreateContainerWithMachineAndNetworkAndStorageConfig(c, manager, machineConfig, networkConfig, storageConfig)
name := string(instance.Id())
autostartLink := lxc.RestartSymlink(name)
config, err := ioutil.ReadFile(lxc.ContainerConfigFilename(name))
c.Assert(err, jc.ErrorIsNil)
expected := fmt.Sprintf(`
# network config
# interface "eth0"
lxc.network.type = veth
lxc.network.link = nic42
lxc.network.flags = up
lxc.network.mtu = 4321
lxc.start.auto = 1
lxc.mount.entry = %s var/log/juju none defaults,bind 0 0
lxc.aa_profile = lxc-container-default-with-mounting
lxc.cgroup.devices.allow = b 7:* rwm
lxc.cgroup.devices.allow = c 10:237 rwm
`, s.logDir)
c.Assert(string(config), gc.Equals, expected)
c.Assert(autostartLink, jc.DoesNotExist)
}
开发者ID:makyo,项目名称:juju,代码行数:32,代码来源:lxc_test.go
示例7: TestGenerateNetworkConfig
func (s *UserDataSuite) TestGenerateNetworkConfig(c *gc.C) {
data, err := containerinit.GenerateNetworkConfig(nil)
c.Assert(err, gc.ErrorMatches, "missing container network config")
c.Assert(data, gc.Equals, "")
netConfig := container.BridgeNetworkConfig("foo", 0, nil)
data, err = containerinit.GenerateNetworkConfig(netConfig)
c.Assert(err, jc.ErrorIsNil)
c.Assert(data, gc.Equals, s.expectedFallbackConfig)
// Test with all interface types.
netConfig = container.BridgeNetworkConfig("foo", 0, s.fakeInterfaces)
data, err = containerinit.GenerateNetworkConfig(netConfig)
c.Assert(err, jc.ErrorIsNil)
c.Assert(data, gc.Equals, s.expectedSampleConfig)
}
开发者ID:kat-co,项目名称:juju,代码行数:16,代码来源:container_userdata_test.go
示例8: TestGenerateNetworkConfig
func (s *UserDataSuite) TestGenerateNetworkConfig(c *gc.C) {
// No config or no interfaces - no error, but also noting to generate.
data, err := containerinit.GenerateNetworkConfig(nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(data, gc.HasLen, 0)
netConfig := container.BridgeNetworkConfig("foo", 0, nil)
data, err = containerinit.GenerateNetworkConfig(netConfig)
c.Assert(err, jc.ErrorIsNil)
c.Assert(data, gc.HasLen, 0)
// Test with all interface types.
netConfig = container.BridgeNetworkConfig("foo", 0, s.fakeInterfaces)
data, err = containerinit.GenerateNetworkConfig(netConfig)
c.Assert(err, jc.ErrorIsNil)
c.Assert(data, gc.Equals, s.expectedNetConfig)
}
开发者ID:imoapps,项目名称:juju,代码行数:16,代码来源:container_userdata_test.go
示例9: TestNewCloudInitConfigWithNetworksFallbackConfig
func (s *UserDataSuite) TestNewCloudInitConfigWithNetworksFallbackConfig(c *gc.C) {
netConfig := container.BridgeNetworkConfig("foo", 0, nil)
cloudConf, err := containerinit.NewCloudInitConfigWithNetworks("quantal", netConfig)
c.Assert(err, jc.ErrorIsNil)
c.Assert(cloudConf, gc.NotNil)
expected := fmt.Sprintf(s.expectedFallbackUserData, s.networkInterfacesFile, s.systemNetworkInterfacesFile)
assertUserData(c, cloudConf, expected)
}
开发者ID:kat-co,项目名称:juju,代码行数:8,代码来源:container_userdata_test.go
示例10: CreateContainerWithMachineConfig
func CreateContainerWithMachineConfig(
c *gc.C,
manager container.Manager,
instanceConfig *instancecfg.InstanceConfig,
) instance.Instance {
networkConfig := container.BridgeNetworkConfig("nic42", 0, nil)
storageConfig := &container.StorageConfig{}
return CreateContainerWithMachineAndNetworkAndStorageConfig(c, manager, instanceConfig, networkConfig, storageConfig)
}
开发者ID:bac,项目名称:juju,代码行数:10,代码来源:common.go
示例11: TestCloudInitUserData
func (s *UserDataSuite) TestCloudInitUserData(c *gc.C) {
instanceConfig, err := containertesting.MockMachineConfig("1/lxc/0")
c.Assert(err, jc.ErrorIsNil)
networkConfig := container.BridgeNetworkConfig("foo", 0, nil)
data, err := containerinit.CloudInitUserData(instanceConfig, networkConfig)
c.Assert(err, jc.ErrorIsNil)
// No need to test the exact contents here, as they are already
// tested separately.
c.Assert(string(data), jc.HasPrefix, "#cloud-config\n")
}
开发者ID:imoapps,项目名称:juju,代码行数:10,代码来源:container_userdata_test.go
示例12: createRunningContainer
func (s *KVMSuite) createRunningContainer(c *gc.C, name string) kvm.Container {
kvmContainer := s.ContainerFactory.New(name)
network := container.BridgeNetworkConfig("testbr0")
c.Assert(kvmContainer.Start(kvm.StartParams{
Series: "quantal",
Arch: version.Current.Arch,
UserDataFile: "userdata.txt",
Network: network}), gc.IsNil)
return kvmContainer
}
开发者ID:klyachin,项目名称:juju,代码行数:10,代码来源:kvm_test.go
示例13: CreateContainerWithMachineConfig
func CreateContainerWithMachineConfig(
c *gc.C,
manager container.Manager,
machineConfig *cloudinit.MachineConfig,
) instance.Instance {
network := container.BridgeNetworkConfig("nic42")
inst, hardware, err := manager.CreateContainer(machineConfig, "quantal", network)
c.Assert(err, gc.IsNil)
c.Assert(hardware, gc.NotNil)
c.Assert(hardware.String(), gc.Not(gc.Equals), "")
return inst
}
开发者ID:kapilt,项目名称:juju,代码行数:13,代码来源:common.go
示例14: TestCloudInitUserDataFallbackConfig
func (s *UserDataSuite) TestCloudInitUserDataFallbackConfig(c *gc.C) {
instanceConfig, err := containertesting.MockMachineConfig("1/lxd/0")
c.Assert(err, jc.ErrorIsNil)
networkConfig := container.BridgeNetworkConfig("foo", 0, nil)
data, err := containerinit.CloudInitUserData(instanceConfig, networkConfig)
c.Assert(err, jc.ErrorIsNil)
c.Assert(data, gc.NotNil)
// Extract the "#cloud-config" header and all lines between
// from the "bootcmd" section up to (but not including) the
// "output" sections to match against expected. But we cannot
// possibly handle all the /other/ output that may be added by
// CloudInitUserData() in the future, so we also truncate at
// the first runcmd which now happens to include the runcmd's
// added for raising the network interfaces captured in
// expectedFallbackUserData. However, the other tests above do
// check for that output.
var linesToMatch []string
seenBootcmd := false
for _, line := range strings.Split(string(data), "\n") {
if strings.HasPrefix(line, "#cloud-config") {
linesToMatch = append(linesToMatch, line)
continue
}
if strings.HasPrefix(line, "bootcmd:") {
seenBootcmd = true
}
if strings.HasPrefix(line, "output:") && seenBootcmd {
break
}
if seenBootcmd {
linesToMatch = append(linesToMatch, line)
}
}
expected := fmt.Sprintf(s.expectedFallbackUserData, s.networkInterfacesFile, s.systemNetworkInterfacesFile)
var expectedLinesToMatch []string
for _, line := range strings.Split(expected, "\n") {
if strings.HasPrefix(line, "runcmd:") {
break
}
expectedLinesToMatch = append(expectedLinesToMatch, line)
}
c.Assert(strings.Join(linesToMatch, "\n")+"\n", gc.Equals, strings.Join(expectedLinesToMatch, "\n")+"\n")
}
开发者ID:kat-co,项目名称:juju,代码行数:51,代码来源:container_userdata_test.go
示例15: createTemplate
func (s *LxcSuite) createTemplate(c *gc.C) golxc.Container {
name := "juju-quantal-lxc-template"
ch := s.ensureTemplateStopped(name)
defer func() { <-ch }()
network := container.BridgeNetworkConfig("nic42", 4321, nil)
authorizedKeys := "authorized keys list"
aptProxy := proxy.Settings{}
aptMirror := "http://my.archive.ubuntu.com/ubuntu"
callback := func(containerStatus status.Status, info string, data map[string]interface{}) error { return nil }
template, err := lxc.EnsureCloneTemplate(
"ext4",
"quantal",
network,
authorizedKeys,
aptProxy,
aptMirror,
true,
true,
&containertesting.MockURLGetter{},
false,
callback,
)
c.Assert(err, jc.ErrorIsNil)
c.Assert(template.Name(), gc.Equals, name)
createEvent := <-s.events
c.Assert(createEvent.Action, gc.Equals, mock.Created)
c.Assert(createEvent.InstanceId, gc.Equals, name)
argsSet := set.NewStrings(createEvent.TemplateArgs...)
c.Assert(argsSet.Contains("imageURL"), jc.IsTrue)
s.AssertEvent(c, <-s.events, mock.Started, name)
s.AssertEvent(c, <-s.events, mock.Stopped, name)
autostartLink := lxc.RestartSymlink(name)
config, err := ioutil.ReadFile(lxc.ContainerConfigFilename(name))
c.Assert(err, jc.ErrorIsNil)
expected := `
# network config
# interface "eth0"
lxc.network.type = veth
lxc.network.link = nic42
lxc.network.flags = up
lxc.network.mtu = 4321
`
// NOTE: no autostart, no mounting the log dir
c.Assert(string(config), gc.Equals, expected)
c.Assert(autostartLink, jc.DoesNotExist)
return template
}
开发者ID:makyo,项目名称:juju,代码行数:51,代码来源:lxc_test.go
示例16: StartInstance
// StartInstance is specified in the Broker interface.
func (broker *kvmBroker) StartInstance(args environs.StartInstanceParams) (instance.Instance, *instance.HardwareCharacteristics, []network.Info, error) {
if args.MachineConfig.HasNetworks() {
return nil, nil, nil, fmt.Errorf("starting kvm containers with networks is not supported yet.")
}
// TODO: refactor common code out of the container brokers.
machineId := args.MachineConfig.MachineId
kvmLogger.Infof("starting kvm container for machineId: %s", machineId)
// TODO: Default to using the host network until we can configure. Yes,
// this is using the LxcBridge value, we should put it in the api call for
// container config.
bridgeDevice := broker.agentConfig.Value(agent.LxcBridge)
if bridgeDevice == "" {
bridgeDevice = kvm.DefaultKvmBridge
}
network := container.BridgeNetworkConfig(bridgeDevice)
series := args.Tools.OneSeries()
args.MachineConfig.MachineContainerType = instance.KVM
args.MachineConfig.Tools = args.Tools[0]
config, err := broker.api.ContainerConfig()
if err != nil {
kvmLogger.Errorf("failed to get container config: %v", err)
return nil, nil, nil, err
}
if err := environs.PopulateMachineConfig(
args.MachineConfig,
config.ProviderType,
config.AuthorizedKeys,
config.SSLHostnameVerification,
config.Proxy,
config.AptProxy,
config.PreferIPv6,
config.EnableOSRefreshUpdate,
config.EnableOSUpgrade,
); err != nil {
kvmLogger.Errorf("failed to populate machine config: %v", err)
return nil, nil, nil, err
}
inst, hardware, err := broker.manager.CreateContainer(args.MachineConfig, series, network)
if err != nil {
kvmLogger.Errorf("failed to start container: %v", err)
return nil, nil, nil, err
}
kvmLogger.Infof("started kvm container for machineId: %s, %s, %s", machineId, inst.Id(), hardware.String())
return inst, hardware, nil, nil
}
开发者ID:kapilt,项目名称:juju,代码行数:51,代码来源:kvm-broker.go
示例17: CreateContainer
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
}
开发者ID:klyachin,项目名称:juju,代码行数:17,代码来源:common.go
示例18: StartInstance
// StartInstance is specified in the Broker interface.
func (broker *lxcBroker) StartInstance(args environs.StartInstanceParams) (instance.Instance, *instance.HardwareCharacteristics, []network.Info, error) {
if args.MachineConfig.HasNetworks() {
return nil, nil, nil, fmt.Errorf("starting lxc containers with networks is not supported yet.")
}
// TODO: refactor common code out of the container brokers.
machineId := args.MachineConfig.MachineId
lxcLogger.Infof("starting lxc container for machineId: %s", machineId)
// Default to using the host network until we can configure.
bridgeDevice := broker.agentConfig.Value(agent.LxcBridge)
if bridgeDevice == "" {
bridgeDevice = lxc.DefaultLxcBridge
}
network := container.BridgeNetworkConfig(bridgeDevice)
series := args.Tools.OneSeries()
args.MachineConfig.MachineContainerType = instance.LXC
args.MachineConfig.Tools = args.Tools[0]
config, err := broker.api.ContainerConfig()
if err != nil {
lxcLogger.Errorf("failed to get container config: %v", err)
return nil, nil, nil, err
}
if err := environs.PopulateMachineConfig(
args.MachineConfig,
config.ProviderType,
config.AuthorizedKeys,
config.SSLHostnameVerification,
config.Proxy,
config.AptProxy,
); err != nil {
lxcLogger.Errorf("failed to populate machine config: %v", err)
return nil, nil, nil, err
}
inst, hardware, err := broker.manager.CreateContainer(args.MachineConfig, series, network)
if err != nil {
lxcLogger.Errorf("failed to start container: %v", err)
return nil, nil, nil, err
}
lxcLogger.Infof("started lxc container for machineId: %s, %s, %s", machineId, inst.Id(), hardware.String())
return inst, hardware, nil, nil
}
开发者ID:rogpeppe,项目名称:juju,代码行数:45,代码来源:lxc-broker.go
示例19: TestNewCloudInitConfigWithNetworks
func (s *UserDataSuite) TestNewCloudInitConfigWithNetworks(c *gc.C) {
netConfig := container.BridgeNetworkConfig("foo", 0, s.fakeInterfaces)
cloudConf, err := containerinit.NewCloudInitConfigWithNetworks("quantal", netConfig)
c.Assert(err, jc.ErrorIsNil)
// We need to indent expectNetConfig to make it valid YAML,
// dropping the last new line and using unindented blank lines.
lines := strings.Split(s.expectedNetConfig, "\n")
indentedNetConfig := strings.Join(lines[:len(lines)-1], "\n ")
indentedNetConfig = strings.Replace(indentedNetConfig, "\n \n", "\n\n", -1)
expected := `
#cloud-config
bootcmd:
- install -D -m 644 /dev/null '`[1:] + s.networkInterfacesFile + `'
- |-
printf '%s\n' '` + indentedNetConfig + `
' > '` + s.networkInterfacesFile + `'
`
assertUserData(c, cloudConf, expected)
}
开发者ID:imoapps,项目名称:juju,代码行数:19,代码来源:container_userdata_test.go
示例20: TestNotAllContainersAreDeleted
func (t *LxdSuite) TestNotAllContainersAreDeleted(c *gc.C) {
c.Skip("Test skipped because it talks directly to LXD agent.")
lxdClient, err := lxd.ConnectLocal("")
c.Assert(err, jc.ErrorIsNil)
/* create a container to make sure isn't deleted */
instanceSpec := lxdclient.InstanceSpec{
Name: "juju-lxd-tests",
Image: "ubuntu-xenial",
}
_, err = lxdClient.AddInstance(instanceSpec)
c.Assert(err, jc.ErrorIsNil)
defer lxdClient.RemoveInstances("", "juju-lxd-tests")
instanceConfig, err := containertesting.MockMachineConfig("1/lxd/0")
c.Assert(err, jc.ErrorIsNil)
envConfig, err := config.New(config.NoDefaults, dummy.SampleConfig())
c.Assert(err, jc.ErrorIsNil)
instanceConfig.Config = envConfig
storageConfig := &container.StorageConfig{}
networkConfig := container.BridgeNetworkConfig("nic42", 4321, nil)
manager := t.makeManager(c, "manager")
callback := func(settableStatus status.Status, info string, data map[string]interface{}) error { return nil }
_, _, err = manager.CreateContainer(
instanceConfig,
"xenial",
networkConfig,
storageConfig,
callback,
)
c.Assert(err, jc.ErrorIsNil)
instances, err := manager.ListContainers()
c.Assert(err, jc.ErrorIsNil)
for _, inst := range instances {
err = manager.DestroyContainer(inst.Id())
c.Assert(err, jc.ErrorIsNil)
}
}
开发者ID:makyo,项目名称:juju,代码行数:42,代码来源:lxd_test.go
注:本文中的github.com/juju/juju/container.BridgeNetworkConfig函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论