本文整理汇总了Golang中github.com/juju/juju/network.NewAddress函数的典型用法代码示例。如果您正苦于以下问题:Golang NewAddress函数的具体用法?Golang NewAddress怎么用?Golang NewAddress使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewAddress函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: mockedAPIState
func mockedAPIState(flags mockedStateFlags) *mockAPIState {
hasHostPort := flags&mockedHostPort == mockedHostPort
hasEnvironTag := flags&mockedEnvironTag == mockedEnvironTag
preferIPv6 := flags&mockedPreferIPv6 == mockedPreferIPv6
apiHostPorts := [][]network.HostPort{}
if hasHostPort {
ipv4Address := network.NewAddress("0.1.2.3", network.ScopeUnknown)
ipv6Address := network.NewAddress("fc00::1", network.ScopeUnknown)
if preferIPv6 {
apiHostPorts = [][]network.HostPort{
network.AddressesWithPort([]network.Address{ipv6Address, ipv4Address}, 1234),
}
} else {
apiHostPorts = [][]network.HostPort{
network.AddressesWithPort([]network.Address{ipv4Address, ipv6Address}, 1234),
}
}
}
environTag := ""
if hasEnvironTag {
environTag = "environment-fake-uuid"
}
return &mockAPIState{
apiHostPorts: apiHostPorts,
environTag: environTag,
}
}
示例2: TestSubnetRemoveKillsAddresses
func (s *SubnetSuite) TestSubnetRemoveKillsAddresses(c *gc.C) {
subnetInfo := state.SubnetInfo{CIDR: "192.168.1.0/24"}
subnet, err := s.State.AddSubnet(subnetInfo)
c.Assert(err, jc.ErrorIsNil)
_, err = s.State.AddIPAddress(
network.NewAddress("192.168.1.0"),
subnet.ID(),
)
c.Assert(err, jc.ErrorIsNil)
_, err = s.State.AddIPAddress(
network.NewAddress("192.168.1.1"),
subnet.ID(),
)
c.Assert(err, jc.ErrorIsNil)
err = subnet.EnsureDead()
c.Assert(err, jc.ErrorIsNil)
err = subnet.Remove()
c.Assert(err, jc.ErrorIsNil)
_, err = s.State.IPAddress("192.168.1.0")
c.Assert(err, jc.Satisfies, errors.IsNotFound)
_, err = s.State.IPAddress("192.168.1.1")
c.Assert(err, jc.Satisfies, errors.IsNotFound)
}
示例3: TestSetMachineAddresses
func (s *machinerSuite) TestSetMachineAddresses(c *gc.C) {
c.Assert(s.machine0.Addresses(), gc.HasLen, 0)
c.Assert(s.machine1.Addresses(), gc.HasLen, 0)
addresses := []network.Address{
network.NewAddress("127.0.0.1", network.ScopeUnknown),
network.NewAddress("8.8.8.8", network.ScopeUnknown),
}
args := params.SetMachinesAddresses{MachineAddresses: []params.MachineAddresses{
{Tag: "machine-1", Addresses: addresses},
{Tag: "machine-0", Addresses: addresses},
{Tag: "machine-42", Addresses: addresses},
}}
result, err := s.machiner.SetMachineAddresses(args)
c.Assert(err, gc.IsNil)
c.Assert(result, gc.DeepEquals, params.ErrorResults{
Results: []params.ErrorResult{
{nil},
{apiservertesting.ErrUnauthorized},
{apiservertesting.ErrUnauthorized},
},
})
err = s.machine1.Refresh()
c.Assert(err, gc.IsNil)
c.Assert(s.machine1.MachineAddresses(), gc.DeepEquals, addresses)
err = s.machine0.Refresh()
c.Assert(err, gc.IsNil)
c.Assert(s.machine0.MachineAddresses(), gc.HasLen, 0)
}
示例4: TestSetupRoutesAndIPTablesAddsRuleIfMissing
func (s *lxcBrokerSuite) TestSetupRoutesAndIPTablesAddsRuleIfMissing(c *gc.C) {
// Isolate the test from the host machine. Because PatchExecutable
// does not allow us to assert on subsequent executions of the
// same binary, we need to replace the iptables commands with
// separate ones. The check returns code=1 to trigger calling
// add.
fakeptablesRules := map[string]provisioner.IptablesRule{
"IPTablesSNAT": {
"nat",
"POSTROUTING",
"{{.HostIF}} {{.HostIP}}",
},
}
s.PatchValue(provisioner.IptablesRules, fakeptablesRules)
gitjujutesting.PatchExecutableAsEchoArgs(c, s, "iptables", 1, 0)
gitjujutesting.PatchExecutableAsEchoArgs(c, s, "ip")
ifaceInfo := []network.InterfaceInfo{{
Address: network.NewAddress("0.1.2.3"),
}}
addr := network.NewAddress("0.1.2.1")
err := provisioner.SetupRoutesAndIPTables("nic", addr, "bridge", ifaceInfo, false)
c.Assert(err, jc.ErrorIsNil)
// Now verify the expected commands - since check returns 1, add
// will be called before ip route add.
gitjujutesting.AssertEchoArgs(c, "iptables", "-t", "nat", "-C", "POSTROUTING", "nic", "0.1.2.1")
gitjujutesting.AssertEchoArgs(c, "iptables", "-t", "nat", "-I", "POSTROUTING", "1", "nic", "0.1.2.1")
gitjujutesting.AssertEchoArgs(c, "ip", "route", "add", "0.1.2.3", "dev", "bridge")
}
示例5: mockedAPIState
func mockedAPIState(flags mockedStateFlags) *mockAPIState {
hasHostPort := flags&mockedHostPort == mockedHostPort
hasEnvironTag := flags&mockedEnvironTag == mockedEnvironTag
preferIPv6 := flags&mockedPreferIPv6 == mockedPreferIPv6
addr := ""
apiHostPorts := [][]network.HostPort{}
if hasHostPort {
var apiAddrs []network.Address
ipv4Address := network.NewAddress("0.1.2.3")
ipv6Address := network.NewAddress("2001:db8::1")
if preferIPv6 {
addr = net.JoinHostPort(ipv6Address.Value, "1234")
apiAddrs = append(apiAddrs, ipv6Address, ipv4Address)
} else {
addr = net.JoinHostPort(ipv4Address.Value, "1234")
apiAddrs = append(apiAddrs, ipv4Address, ipv6Address)
}
apiHostPorts = [][]network.HostPort{
network.AddressesWithPort(apiAddrs, 1234),
}
}
environTag := ""
if hasEnvironTag {
environTag = "environment-df136476-12e9-11e4-8a70-b2227cce2b54"
}
return &mockAPIState{
apiHostPorts: apiHostPorts,
environTag: environTag,
addr: addr,
}
}
示例6: TestParseHostPortsSuccess
func (*HostPortSuite) TestParseHostPortsSuccess(c *gc.C) {
for i, test := range []struct {
args []string
expect []network.HostPort
}{{
args: nil,
expect: []network.HostPort{},
}, {
args: []string{"1.2.3.4:42"},
expect: network.NewHostPorts(42, "1.2.3.4"),
}, {
args: []string{"[fc00::1]:1234"},
expect: network.NewHostPorts(1234, "fc00::1"),
}, {
args: []string{"[fc00::1]:1234", "127.0.0.1:4321", "example.com:42"},
expect: []network.HostPort{
{network.NewAddress("fc00::1"), 1234},
{network.NewAddress("127.0.0.1"), 4321},
{network.NewAddress("example.com"), 42},
},
}} {
c.Logf("test %d: args %v", i, test.args)
hps, err := network.ParseHostPorts(test.args...)
c.Check(err, jc.ErrorIsNil)
c.Check(hps, jc.DeepEquals, test.expect)
}
}
示例7: TestAllocateAddress
func (s *suite) TestAllocateAddress(c *gc.C) {
e := s.bootstrapTestEnviron(c, false)
defer func() {
err := e.Destroy()
c.Assert(err, gc.IsNil)
}()
inst, _ := jujutesting.AssertStartInstance(c, e, "0")
c.Assert(inst, gc.NotNil)
netId := network.Id("net1")
opc := make(chan dummy.Operation, 200)
dummy.Listen(opc)
expectAddress := network.NewAddress("0.1.2.1", network.ScopeCloudLocal)
address, err := e.AllocateAddress(inst.Id(), netId)
c.Assert(err, gc.IsNil)
c.Assert(address, gc.DeepEquals, expectAddress)
assertAllocateAddress(c, e, opc, inst.Id(), netId, expectAddress)
expectAddress = network.NewAddress("0.1.2.2", network.ScopeCloudLocal)
address, err = e.AllocateAddress(inst.Id(), netId)
c.Assert(err, gc.IsNil)
c.Assert(address, gc.DeepEquals, expectAddress)
assertAllocateAddress(c, e, opc, inst.Id(), netId, expectAddress)
}
示例8: TestMachineAddresses
func (s *MachinerSuite) TestMachineAddresses(c *gc.C) {
s.PatchValue(machiner.InterfaceAddrs, func() ([]net.Addr, error) {
addrs := []net.Addr{
&net.IPAddr{IP: net.IPv4(10, 0, 0, 1)},
&net.IPAddr{IP: net.IPv4(127, 0, 0, 1)},
&net.IPAddr{IP: net.IPv6loopback},
&net.UnixAddr{}, // not IP, ignored
&net.IPNet{IP: net.ParseIP("2001:db8::1")},
&net.IPAddr{IP: net.IPv4(169, 254, 1, 20)}, // LinkLocal Ignored
&net.IPNet{IP: net.ParseIP("fe80::1")}, // LinkLocal Ignored
}
return addrs, nil
})
mr := s.makeMachiner()
defer worker.Stop(mr)
c.Assert(s.machine.Destroy(), gc.IsNil)
s.State.StartSync()
c.Assert(mr.Wait(), gc.Equals, worker.ErrTerminateAgent)
c.Assert(s.machine.Refresh(), gc.IsNil)
c.Assert(s.machine.MachineAddresses(), jc.DeepEquals, []network.Address{
network.NewAddress("2001:db8::1", network.ScopeUnknown),
network.NewAddress("::1", network.ScopeMachineLocal),
network.NewAddress("10.0.0.1", network.ScopeCloudLocal),
network.NewAddress("127.0.0.1", network.ScopeMachineLocal),
})
}
示例9: mockedAPIState
// mockedAPIState returns a mocked-up implementation
// of api.Connection. The logical OR of the flags specifies
// whether to include a fake host port and model tag
// in the result.
func mockedAPIState(flags mockedStateFlags) *mockAPIState {
hasHostPort := flags&mockedHostPort == mockedHostPort
hasModelTag := flags&mockedModelTag == mockedModelTag
addr := ""
apiHostPorts := [][]network.HostPort{}
if hasHostPort {
var apiAddrs []network.Address
ipv4Address := network.NewAddress("0.1.2.3")
ipv6Address := network.NewAddress("2001:db8::1")
addr = net.JoinHostPort(ipv4Address.Value, "1234")
apiAddrs = append(apiAddrs, ipv4Address, ipv6Address)
apiHostPorts = [][]network.HostPort{
network.AddressesWithPort(apiAddrs, 1234),
}
}
modelTag := ""
if hasModelTag {
modelTag = "model-df136476-12e9-11e4-8a70-b2227cce2b54"
}
return &mockAPIState{
apiHostPorts: apiHostPorts,
modelTag: modelTag,
controllerTag: testing.ControllerTag.Id(),
addr: addr,
}
}
示例10: TestWatchAddresses
func (s *unitSuite) TestWatchAddresses(c *gc.C) {
w, err := s.apiUnit.WatchAddresses()
c.Assert(err, jc.ErrorIsNil)
wc := watchertest.NewNotifyWatcherC(c, w, s.BackingState.StartSync)
defer wc.AssertStops()
// Initial event.
wc.AssertOneChange()
// Update config a couple of times, check a single event.
err = s.wordpressMachine.SetProviderAddresses(network.NewAddress("0.1.2.3"))
c.Assert(err, jc.ErrorIsNil)
err = s.wordpressMachine.SetProviderAddresses(network.NewAddress("0.1.2.4"))
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Non-change is not reported.
err = s.wordpressMachine.SetProviderAddresses(network.NewAddress("0.1.2.4"))
c.Assert(err, jc.ErrorIsNil)
wc.AssertNoChange()
// Change is reported for machine addresses.
err = s.wordpressMachine.SetMachineAddresses(network.NewAddress("0.1.2.5"))
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
// Set machine addresses to empty is reported.
err = s.wordpressMachine.SetMachineAddresses()
c.Assert(err, jc.ErrorIsNil)
wc.AssertOneChange()
}
示例11: TestConfigEvents
func (s *FilterSuite) TestConfigEvents(c *gc.C) {
f, err := filter.NewFilter(s.uniter, s.unit.Tag().(names.UnitTag))
c.Assert(err, jc.ErrorIsNil)
defer statetesting.AssertStop(c, f)
err = s.machine.SetProviderAddresses(network.NewAddress("0.1.2.3"))
c.Assert(err, jc.ErrorIsNil)
// Test no changes before the charm URL is set.
configC := s.notifyAsserterC(c, f.ConfigEvents())
configC.AssertNoReceive()
// Set the charm URL to trigger config events.
err = f.SetCharm(s.wpcharm.URL())
c.Assert(err, jc.ErrorIsNil)
s.EvilSync()
configC.AssertOneReceive()
// Change the config; new event received.
changeConfig := func(title interface{}) {
err := s.wordpress.UpdateConfigSettings(charm.Settings{
"blog-title": title,
})
c.Assert(err, jc.ErrorIsNil)
}
changeConfig("20,000 leagues in the cloud")
configC.AssertOneReceive()
// Change the config a few more times, then reset the events. We sync to
// make sure the events have arrived in the watcher -- and then wait a
// little longer, to allow for the delay while the events are coalesced
// -- before we tell it to discard all received events. This would be
// much better tested by controlling a mocked-out watcher directly, but
// that's a bit inconvenient for this change.
changeConfig(nil)
changeConfig("the curious incident of the dog in the cloud")
s.EvilSync()
f.DiscardConfigEvent()
configC.AssertNoReceive()
// Change the addresses of the unit's assigned machine; new event received.
err = s.machine.SetProviderAddresses(network.NewAddress("0.1.2.4"))
c.Assert(err, jc.ErrorIsNil)
s.BackingState.StartSync()
configC.AssertOneReceive()
// Check that a filter's initial event works with DiscardConfigEvent
// as expected.
f, err = filter.NewFilter(s.uniter, s.unit.Tag().(names.UnitTag))
c.Assert(err, jc.ErrorIsNil)
defer statetesting.AssertStop(c, f)
s.BackingState.StartSync()
f.DiscardConfigEvent()
configC.AssertNoReceive()
// Further changes are still collapsed as appropriate.
changeConfig("forsooth")
changeConfig("imagination failure")
configC.AssertOneReceive()
}
示例12: TestSetupRoutesAndIPTablesIPTablesAddError
func (s *lxcBrokerSuite) TestSetupRoutesAndIPTablesIPTablesAddError(c *gc.C) {
// Isolate the test from the host machine. Patch iptables with a
// script which returns code=1 for the check but fails when adding
// the rule.
script := `if [[ "$3" == "-C" ]]; then exit 1; else exit 42; fi`
gitjujutesting.PatchExecutable(c, s, "iptables", script)
gitjujutesting.PatchExecutableThrowError(c, s, "ip", 123)
fakeptablesRules := map[string]provisioner.IptablesRule{
"IPTablesSNAT": {
"nat",
"POSTROUTING",
"{{.HostIF}} {{.HostIP}}",
},
}
s.PatchValue(provisioner.IptablesRules, fakeptablesRules)
ifaceInfo := []network.InterfaceInfo{{
Address: network.NewAddress("0.1.2.3"),
}}
addr := network.NewAddress("0.1.2.1")
err := provisioner.SetupRoutesAndIPTables("nic", addr, "bridge", ifaceInfo, false)
c.Assert(err, gc.ErrorMatches, `command "iptables -t nat -I .*" failed with exit code 42`)
}
示例13: SetUpTest
func (s *kvmProvisionerSuite) SetUpTest(c *gc.C) {
s.CommonProvisionerSuite.SetUpTest(c)
s.kvmSuite.SetUpTest(c)
// The kvm provisioner actually needs the machine it is being created on
// to be in state, in order to get the watcher.
m, err := s.State.AddMachine(coretesting.FakeDefaultSeries, state.JobHostUnits, state.JobManageEnviron)
c.Assert(err, gc.IsNil)
err = m.SetAddresses(network.NewAddress("0.1.2.3", network.ScopeUnknown))
c.Assert(err, gc.IsNil)
hostPorts := [][]network.HostPort{{{
Address: network.NewAddress("0.1.2.3", network.ScopeUnknown),
Port: 1234,
}}}
err = s.State.SetAPIHostPorts(hostPorts)
c.Assert(err, gc.IsNil)
s.machineId = m.Id()
s.APILogin(c, m)
err = m.SetAgentVersion(version.Current)
c.Assert(err, gc.IsNil)
s.events = make(chan mock.Event, 25)
s.ContainerFactory.AddListener(s.events)
}
示例14: TestAdditionalFields
func (s *InterfaceInfoSuite) TestAdditionalFields(c *gc.C) {
c.Check(s.info[3].ConfigType, gc.Equals, network.ConfigDHCP)
c.Check(s.info[3].NoAutoStart, jc.IsTrue)
c.Check(s.info[4].Address, jc.DeepEquals, network.NewAddress("0.1.2.3"))
c.Check(s.info[5].DNSServers, jc.DeepEquals, network.NewAddresses("1.1.1.1", "2.2.2.2"))
c.Check(s.info[6].GatewayAddress, jc.DeepEquals, network.NewAddress("4.3.2.1"))
c.Check(s.info[7].AvailabilityZones, jc.DeepEquals, []string{"foo", "bar"})
}
示例15: APIHostPorts
func (fakeAddresses) APIHostPorts() ([][]network.HostPort, error) {
return [][]network.HostPort{{{
Address: network.NewAddress("apiaddresses", network.ScopeUnknown),
Port: 1,
}}, {{
Address: network.NewAddress("apiaddresses", network.ScopeUnknown),
Port: 2,
}}}, nil
}