Merge pull request #1250 from ygalblum/network_ignore
Libnetwork: Add IgnoreIfExists flag to network create method
This commit is contained in:
commit
fe43935658
|
|
@ -17,7 +17,7 @@ import (
|
|||
|
||||
// NetworkCreate will take a partial filled Network and fill the
|
||||
// missing fields. It creates the Network and returns the full Network.
|
||||
func (n *cniNetwork) NetworkCreate(net types.Network) (types.Network, error) {
|
||||
func (n *cniNetwork) NetworkCreate(net types.Network, options *types.NetworkCreateOptions) (types.Network, error) {
|
||||
n.lock.Lock()
|
||||
defer n.lock.Unlock()
|
||||
err := n.loadNetworks()
|
||||
|
|
@ -26,6 +26,11 @@ func (n *cniNetwork) NetworkCreate(net types.Network) (types.Network, error) {
|
|||
}
|
||||
network, err := n.networkCreate(&net, false)
|
||||
if err != nil {
|
||||
if options != nil && options.IgnoreIfExists && errors.Is(err, types.ErrNetworkExists) {
|
||||
if network, ok := n.networks[net.Name]; ok {
|
||||
return *network.libpodNet, nil
|
||||
}
|
||||
}
|
||||
return types.Network{}, err
|
||||
}
|
||||
// add the new network to the map
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ var _ = Describe("Config", func() {
|
|||
// loss so lets remove 500 milliseconds to make sure this test does not flake.
|
||||
now := time.Now().Add(-500 * time.Millisecond)
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(cniConfDir, network1.Name+".conflist")
|
||||
|
|
@ -129,13 +129,13 @@ var _ = Describe("Config", func() {
|
|||
|
||||
It("create two networks", func() {
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
||||
network = types.Network{}
|
||||
network2, err := libpodNet.NetworkCreate(network)
|
||||
network2, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network2.Name).ToNot(Equal(network1.Name))
|
||||
Expect(network2.ID).ToNot(Equal(network1.ID))
|
||||
|
|
@ -144,19 +144,44 @@ var _ = Describe("Config", func() {
|
|||
Expect(network2.Subnets[0].Subnet.Contains(network1.Subnets[0].Subnet.IP)).To(BeFalse())
|
||||
})
|
||||
|
||||
It("fail when creating two networks with the same name", func() {
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
||||
network = types.Network{Name: network1.Name}
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(MatchError(types.ErrNetworkExists))
|
||||
})
|
||||
|
||||
It("return the same network when creating two networks with the same name and ignore", func() {
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
||||
network = types.Network{Name: network1.Name}
|
||||
network2, err := libpodNet.NetworkCreate(network, &types.NetworkCreateOptions{IgnoreIfExists: true})
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network2).To(Equal(network1))
|
||||
})
|
||||
|
||||
It("create network with NetworDNSServers with DNSEnabled=false", func() {
|
||||
network := types.Network{
|
||||
NetworkDNSServers: []string{"8.8.8.8", "3.3.3.3"},
|
||||
DNSEnabled: false,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`NetworkDNSServers cannot be configured for backend CNI`))
|
||||
})
|
||||
|
||||
It("create bridge config", func() {
|
||||
network := types.Network{Driver: "bridge"}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(filepath.Join(cniConfDir, network1.Name+".conflist")).To(BeARegularFile())
|
||||
|
|
@ -183,7 +208,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.DNSEnabled).To(BeFalse())
|
||||
|
|
@ -212,7 +237,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(Equal("none ipam driver is set but subnets are given"))
|
||||
})
|
||||
|
|
@ -224,7 +249,7 @@ var _ = Describe("Config", func() {
|
|||
"driver": "dhcp",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.IPAMOptions).ToNot(BeEmpty())
|
||||
|
|
@ -252,7 +277,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(Equal("dhcp ipam driver is set but subnets are given"))
|
||||
})
|
||||
|
|
@ -262,21 +287,21 @@ var _ = Describe("Config", func() {
|
|||
Driver: "bridge",
|
||||
NetworkInterface: "cni-podman2",
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
Expect(network1.NetworkInterface).To(Equal("cni-podman2"))
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("bridge name cni-podman2 already in use"))
|
||||
})
|
||||
|
||||
It("create macvlan config", func() {
|
||||
network := types.Network{Driver: "macvlan"}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(filepath.Join(cniConfDir, network1.Name+".conflist")).To(BeARegularFile())
|
||||
|
|
@ -296,7 +321,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "macvlan",
|
||||
NetworkInterface: "lo",
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(cniConfDir, network1.Name+".conflist")
|
||||
|
|
@ -323,7 +348,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(cniConfDir, network1.Name+".conflist")
|
||||
|
|
@ -352,7 +377,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(cniConfDir, network1.Name+".conflist")
|
||||
|
|
@ -375,7 +400,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(cniConfDir, network1.Name+".conflist")
|
||||
|
|
@ -402,7 +427,7 @@ var _ = Describe("Config", func() {
|
|||
types.ModeOption: mode,
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(cniConfDir, network1.Name+".conflist")
|
||||
|
|
@ -422,7 +447,7 @@ var _ = Describe("Config", func() {
|
|||
types.ModeOption: "test",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`unknown macvlan mode "test"`))
|
||||
})
|
||||
|
|
@ -432,7 +457,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "macvlan",
|
||||
NetworkInterface: "idonotexists",
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("parent interface idonotexists does not exist"))
|
||||
})
|
||||
|
|
@ -447,7 +472,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
net1, err := libpodNet.NetworkCreate(network)
|
||||
net1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(net1.Internal).To(Equal(true))
|
||||
path := filepath.Join(cniConfDir, net1.Name+".conflist")
|
||||
|
|
@ -460,7 +485,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "macvlan",
|
||||
Internal: true,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("internal is not supported with macvlan"))
|
||||
})
|
||||
|
|
@ -498,7 +523,7 @@ var _ = Describe("Config", func() {
|
|||
types.ModeOption: mode,
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(cniConfDir, network1.Name+".conflist")
|
||||
|
|
@ -526,7 +551,7 @@ var _ = Describe("Config", func() {
|
|||
types.ModeOption: "test",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`unknown ipvlan mode "test"`))
|
||||
})
|
||||
|
|
@ -541,7 +566,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -563,7 +588,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -589,7 +614,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "bridge",
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -615,7 +640,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -641,7 +666,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -669,7 +694,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -697,7 +722,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -726,7 +751,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n, Gateway: g},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -749,7 +774,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n, Gateway: g},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("not in subnet"))
|
||||
})
|
||||
|
|
@ -766,7 +791,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -789,7 +814,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
network1, err = libpodNet.NetworkCreate(network)
|
||||
network1, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(filepath.Join(cniConfDir, network1.Name+".conflist")).To(BeARegularFile())
|
||||
|
|
@ -813,7 +838,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
network1, err = libpodNet.NetworkCreate(network)
|
||||
network1, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -854,7 +879,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("not in subnet"))
|
||||
|
||||
|
|
@ -867,7 +892,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("not in subnet"))
|
||||
})
|
||||
|
|
@ -879,7 +904,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: types.IPNet{}},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("subnet ip is nil"))
|
||||
})
|
||||
|
|
@ -889,7 +914,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Name: name,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).To(Equal(name))
|
||||
Expect(network1.NetworkInterface).ToNot(Equal(name))
|
||||
|
|
@ -901,7 +926,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Name: name,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
})
|
||||
|
||||
|
|
@ -910,7 +935,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Name: name,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).To(Equal(name))
|
||||
Expect(network1.NetworkInterface).ToNot(Equal(name))
|
||||
|
|
@ -922,7 +947,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Name: name,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
})
|
||||
|
||||
|
|
@ -931,7 +956,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
NetworkInterface: name,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(Equal(name))
|
||||
Expect(network1.NetworkInterface).To(Equal(name))
|
||||
|
|
@ -943,7 +968,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
NetworkInterface: name,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
})
|
||||
|
||||
|
|
@ -952,7 +977,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
ID: id,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("ID can not be set for network create"))
|
||||
})
|
||||
|
|
@ -962,7 +987,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "bridge",
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.DNSEnabled).To(BeTrue())
|
||||
|
|
@ -976,7 +1001,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "bridge",
|
||||
Internal: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
|
@ -994,7 +1019,7 @@ var _ = Describe("Config", func() {
|
|||
"key": "value",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Labels).ToNot(BeNil())
|
||||
|
|
@ -1007,7 +1032,7 @@ var _ = Describe("Config", func() {
|
|||
types.MTUOption: "1500",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Options).ToNot(BeNil())
|
||||
|
|
@ -1023,7 +1048,7 @@ var _ = Describe("Config", func() {
|
|||
types.MTUOption: "abc",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`parsing "abc": invalid syntax`))
|
||||
|
||||
|
|
@ -1032,7 +1057,7 @@ var _ = Describe("Config", func() {
|
|||
types.MTUOption: "-1",
|
||||
},
|
||||
}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`mtu -1 is less than zero`))
|
||||
})
|
||||
|
|
@ -1044,7 +1069,7 @@ var _ = Describe("Config", func() {
|
|||
types.MTUOption: "1500",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("macvlan"))
|
||||
Expect(network1.Options).ToNot(BeNil())
|
||||
|
|
@ -1060,7 +1085,7 @@ var _ = Describe("Config", func() {
|
|||
types.VLANOption: "5",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Options).ToNot(BeNil())
|
||||
|
|
@ -1076,7 +1101,7 @@ var _ = Describe("Config", func() {
|
|||
types.VLANOption: "abc",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`parsing "abc": invalid syntax`))
|
||||
|
||||
|
|
@ -1085,7 +1110,7 @@ var _ = Describe("Config", func() {
|
|||
types.VLANOption: "-1",
|
||||
},
|
||||
}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`vlan ID -1 must be between 0 and 4094`))
|
||||
})
|
||||
|
|
@ -1094,7 +1119,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{Options: map[string]string{
|
||||
"someopt": "",
|
||||
}}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("unsupported network option someopt"))
|
||||
})
|
||||
|
|
@ -1103,7 +1128,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Driver: "someDriver",
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("unsupported driver someDriver"))
|
||||
})
|
||||
|
|
@ -1114,7 +1139,7 @@ var _ = Describe("Config", func() {
|
|||
Internal: true,
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
|
@ -1129,11 +1154,11 @@ var _ = Describe("Config", func() {
|
|||
|
||||
It("network inspect partial ID", func() {
|
||||
network := types.Network{Name: "net4"}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.ID).To(Equal("b44b7426c006839e7fe6f15d1faf64db58079d5233cba09b43be2257c1652cf5"))
|
||||
network = types.Network{Name: "net5"}
|
||||
network1, err = libpodNet.NetworkCreate(network)
|
||||
network1, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.ID).To(Equal("b67e86fb039828ad686aa13667975b9e51f192eb617044faf06cded9d31602af"))
|
||||
|
||||
|
|
@ -1146,11 +1171,11 @@ var _ = Describe("Config", func() {
|
|||
|
||||
It("network create two with same name", func() {
|
||||
network := types.Network{Name: "net"}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).To(Equal("net"))
|
||||
network = types.Network{Name: "net"}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("network name net already used"))
|
||||
})
|
||||
|
|
@ -1173,15 +1198,15 @@ var _ = Describe("Config", func() {
|
|||
subnet2 := "10.10.0.0/24"
|
||||
n2, _ := types.ParseCIDR(subnet2)
|
||||
network := types.Network{Subnets: []types.Subnet{{Subnet: n}, {Subnet: n2}}}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Subnets).To(HaveLen(2))
|
||||
network = types.Network{Subnets: []types.Subnet{{Subnet: n}}}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("subnet 10.0.0.0/24 is already used on the host or by another config"))
|
||||
network = types.Network{Subnets: []types.Subnet{{Subnet: n2}}}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("subnet 10.10.0.0/24 is already used on the host or by another config"))
|
||||
})
|
||||
|
|
@ -1193,7 +1218,7 @@ var _ = Describe("Config", func() {
|
|||
"driver": "blah",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(Equal("unsupported ipam driver \"blah\""))
|
||||
})
|
||||
|
|
@ -1204,7 +1229,7 @@ var _ = Describe("Config", func() {
|
|||
types.IsolateOption: "true",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Options).ToNot(BeNil())
|
||||
|
|
@ -1227,7 +1252,7 @@ var _ = Describe("Config", func() {
|
|||
types.IsolateOption: "123",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
})
|
||||
})
|
||||
|
|
@ -1583,7 +1608,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
NetworkInterface: "cni-podman9",
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("bridge name cni-podman9 already in use"))
|
||||
})
|
||||
|
|
|
|||
|
|
@ -362,7 +362,7 @@ var _ = Describe("run CNI", func() {
|
|||
It("call setup twice", func() {
|
||||
runTest(func() {
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
intName1 := "eth0"
|
||||
|
|
@ -419,7 +419,7 @@ var _ = Describe("run CNI", func() {
|
|||
Expect(err).To(BeNil())
|
||||
|
||||
network = types.Network{}
|
||||
network2, err := libpodNet.NetworkCreate(network)
|
||||
network2, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
intName2 := "eth1"
|
||||
|
|
@ -541,7 +541,7 @@ var _ = Describe("run CNI", func() {
|
|||
{Subnet: subnet1},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
network = types.Network{
|
||||
|
|
@ -549,7 +549,7 @@ var _ = Describe("run CNI", func() {
|
|||
{Subnet: subnet2},
|
||||
},
|
||||
}
|
||||
network2, err := libpodNet.NetworkCreate(network)
|
||||
network2, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
intName1 := "eth0"
|
||||
|
|
@ -672,7 +672,7 @@ var _ = Describe("run CNI", func() {
|
|||
{Subnet: subnet1}, {Subnet: subnet2},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
mac, _ := net.ParseMAC("40:15:2f:d8:42:36")
|
||||
|
|
@ -776,7 +776,7 @@ var _ = Describe("run CNI", func() {
|
|||
{Subnet: subnet1},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
netName := network1.Name
|
||||
intName := "eth0"
|
||||
|
|
@ -837,7 +837,7 @@ var _ = Describe("run CNI", func() {
|
|||
},
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
intName1 := "eth0"
|
||||
|
|
@ -1195,7 +1195,7 @@ var _ = Describe("run CNI", func() {
|
|||
{Subnet: subnet1},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
subnet2, _ := types.ParseCIDR("192.168.1.0/31")
|
||||
|
|
@ -1204,7 +1204,7 @@ var _ = Describe("run CNI", func() {
|
|||
{Subnet: subnet2},
|
||||
},
|
||||
}
|
||||
network2, err := libpodNet.NetworkCreate(network)
|
||||
network2, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
intName1 := "eth0"
|
||||
|
|
@ -1345,7 +1345,7 @@ var _ = Describe("run CNI", func() {
|
|||
It("teardown on not connected network", func() {
|
||||
runTest(func() {
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
interfaceName := "eth0"
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import (
|
|||
|
||||
// NetworkCreate will take a partial filled Network and fill the
|
||||
// missing fields. It creates the Network and returns the full Network.
|
||||
func (n *netavarkNetwork) NetworkCreate(net types.Network) (types.Network, error) {
|
||||
func (n *netavarkNetwork) NetworkCreate(net types.Network, options *types.NetworkCreateOptions) (types.Network, error) {
|
||||
n.lock.Lock()
|
||||
defer n.lock.Unlock()
|
||||
err := n.loadNetworks()
|
||||
|
|
@ -30,6 +30,11 @@ func (n *netavarkNetwork) NetworkCreate(net types.Network) (types.Network, error
|
|||
}
|
||||
network, err := n.networkCreate(&net, false)
|
||||
if err != nil {
|
||||
if options != nil && options.IgnoreIfExists && errors.Is(err, types.ErrNetworkExists) {
|
||||
if network, ok := n.networks[net.Name]; ok {
|
||||
return *network, nil
|
||||
}
|
||||
}
|
||||
return types.Network{}, err
|
||||
}
|
||||
// add the new network to the map
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ var _ = Describe("Config", func() {
|
|||
// loss so lets remove 500 milliseconds to make sure this test does not flake.
|
||||
now := time.Now().Add(-500 * time.Millisecond)
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(networkConfDir, network1.Name+".json")
|
||||
|
|
@ -127,13 +127,13 @@ var _ = Describe("Config", func() {
|
|||
|
||||
It("create two networks", func() {
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
||||
network = types.Network{}
|
||||
network2, err := libpodNet.NetworkCreate(network)
|
||||
network2, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network2.Name).ToNot(Equal(network1.Name))
|
||||
Expect(network2.ID).ToNot(Equal(network1.ID))
|
||||
|
|
@ -142,9 +142,34 @@ var _ = Describe("Config", func() {
|
|||
Expect(network2.Subnets[0].Subnet.Contains(network1.Subnets[0].Subnet.IP)).To(BeFalse())
|
||||
})
|
||||
|
||||
It("fail when creating two networks with the same name", func() {
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
||||
network = types.Network{Name: network1.Name}
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(MatchError(types.ErrNetworkExists))
|
||||
})
|
||||
|
||||
It("return the same network when creating two networks with the same name and ignore", func() {
|
||||
network := types.Network{}
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
||||
network = types.Network{Name: network1.Name}
|
||||
network2, err := libpodNet.NetworkCreate(network, &types.NetworkCreateOptions{IgnoreIfExists: true})
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network2).To(Equal(network1))
|
||||
})
|
||||
|
||||
It("create bridge config", func() {
|
||||
network := types.Network{Driver: "bridge"}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(filepath.Join(networkConfDir, network1.Name+".json")).To(BeARegularFile())
|
||||
|
|
@ -168,14 +193,14 @@ var _ = Describe("Config", func() {
|
|||
Driver: "bridge",
|
||||
NetworkInterface: "podman2",
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
Expect(network1.NetworkInterface).To(Equal("podman2"))
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("bridge name podman2 already in use"))
|
||||
})
|
||||
|
|
@ -190,7 +215,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -212,7 +237,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -238,7 +263,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "bridge",
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -264,7 +289,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -290,7 +315,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -318,7 +343,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -346,7 +371,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
IPv6Enabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -375,7 +400,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n, Gateway: g},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -398,7 +423,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n, Gateway: g},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("not in subnet"))
|
||||
})
|
||||
|
|
@ -415,7 +440,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -438,7 +463,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
network1, err = libpodNet.NetworkCreate(network)
|
||||
network1, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(filepath.Join(networkConfDir, network1.Name+".json")).To(BeARegularFile())
|
||||
|
|
@ -462,7 +487,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
network1, err = libpodNet.NetworkCreate(network)
|
||||
network1, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -487,7 +512,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("not in subnet"))
|
||||
|
||||
|
|
@ -500,7 +525,7 @@ var _ = Describe("Config", func() {
|
|||
}},
|
||||
},
|
||||
}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("not in subnet"))
|
||||
})
|
||||
|
|
@ -512,7 +537,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: types.IPNet{}},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("subnet ip is nil"))
|
||||
})
|
||||
|
|
@ -522,7 +547,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Name: name,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).To(Equal(name))
|
||||
Expect(network1.NetworkInterface).ToNot(Equal(name))
|
||||
|
|
@ -534,7 +559,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Name: name,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
})
|
||||
|
||||
|
|
@ -543,7 +568,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Name: name,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).To(Equal(name))
|
||||
Expect(network1.NetworkInterface).ToNot(Equal(name))
|
||||
|
|
@ -555,7 +580,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Name: name,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
})
|
||||
|
||||
|
|
@ -564,7 +589,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
NetworkInterface: name,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(Equal(name))
|
||||
Expect(network1.NetworkInterface).To(Equal(name))
|
||||
|
|
@ -576,7 +601,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
NetworkInterface: name,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
})
|
||||
|
||||
|
|
@ -585,7 +610,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
ID: id,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("ID can not be set for network create"))
|
||||
})
|
||||
|
|
@ -595,7 +620,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "bridge",
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.DNSEnabled).To(BeTrue())
|
||||
|
|
@ -609,7 +634,7 @@ var _ = Describe("Config", func() {
|
|||
Driver: "bridge",
|
||||
Internal: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Subnets).To(HaveLen(1))
|
||||
|
|
@ -623,7 +648,7 @@ var _ = Describe("Config", func() {
|
|||
NetworkDNSServers: []string{"8.8.8.8", "3.3.3.3"},
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.NetworkDNSServers).To(Equal([]string{"8.8.8.8", "3.3.3.3"}))
|
||||
})
|
||||
|
|
@ -633,7 +658,7 @@ var _ = Describe("Config", func() {
|
|||
NetworkDNSServers: []string{"a.b.c.d", "3.3.3.3"},
|
||||
DNSEnabled: true,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`Unable to parse ip a.b.c.d`))
|
||||
})
|
||||
|
|
@ -643,7 +668,7 @@ var _ = Describe("Config", func() {
|
|||
NetworkDNSServers: []string{"8.8.8.8", "3.3.3.3"},
|
||||
DNSEnabled: false,
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`Cannot set NetworkDNSServers if DNS is not enabled for the network`))
|
||||
})
|
||||
|
|
@ -654,7 +679,7 @@ var _ = Describe("Config", func() {
|
|||
"key": "value",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Labels).ToNot(BeNil())
|
||||
|
|
@ -667,7 +692,7 @@ var _ = Describe("Config", func() {
|
|||
types.MTUOption: "1500",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Options).ToNot(BeNil())
|
||||
|
|
@ -683,7 +708,7 @@ var _ = Describe("Config", func() {
|
|||
types.MTUOption: "abc",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`parsing "abc": invalid syntax`))
|
||||
|
||||
|
|
@ -692,7 +717,7 @@ var _ = Describe("Config", func() {
|
|||
types.MTUOption: "-1",
|
||||
},
|
||||
}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`mtu -1 is less than zero`))
|
||||
})
|
||||
|
|
@ -703,7 +728,7 @@ var _ = Describe("Config", func() {
|
|||
types.VLANOption: "5",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Options).ToNot(BeNil())
|
||||
|
|
@ -719,7 +744,7 @@ var _ = Describe("Config", func() {
|
|||
"vlan": "abc",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`parsing "abc": invalid syntax`))
|
||||
|
||||
|
|
@ -728,7 +753,7 @@ var _ = Describe("Config", func() {
|
|||
"vlan": "-1",
|
||||
},
|
||||
}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring(`vlan ID -1 must be between 0 and 4094`))
|
||||
})
|
||||
|
|
@ -737,7 +762,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{Options: map[string]string{
|
||||
"someopt": "",
|
||||
}}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("unsupported bridge network option someopt"))
|
||||
})
|
||||
|
|
@ -746,7 +771,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
Driver: "someDriver",
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("unsupported driver someDriver"))
|
||||
})
|
||||
|
|
@ -757,7 +782,7 @@ var _ = Describe("Config", func() {
|
|||
Internal: true,
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Internal).To(Equal(true))
|
||||
|
|
@ -766,7 +791,7 @@ var _ = Describe("Config", func() {
|
|||
|
||||
It("network inspect partial ID", func() {
|
||||
network := types.Network{Name: "net4"}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.ID).To(HaveLen(64))
|
||||
|
||||
|
|
@ -777,11 +802,11 @@ var _ = Describe("Config", func() {
|
|||
|
||||
It("network create two with same name", func() {
|
||||
network := types.Network{Name: "net"}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).To(Equal("net"))
|
||||
network = types.Network{Name: "net"}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("network name net already used"))
|
||||
})
|
||||
|
|
@ -804,22 +829,22 @@ var _ = Describe("Config", func() {
|
|||
subnet2 := "10.10.0.0/24"
|
||||
n2, _ := types.ParseCIDR(subnet2)
|
||||
network := types.Network{Subnets: []types.Subnet{{Subnet: n}, {Subnet: n2}}}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Subnets).To(HaveLen(2))
|
||||
network = types.Network{Subnets: []types.Subnet{{Subnet: n}}}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("subnet 10.0.0.0/24 is already used on the host or by another config"))
|
||||
network = types.Network{Subnets: []types.Subnet{{Subnet: n2}}}
|
||||
_, err = libpodNet.NetworkCreate(network)
|
||||
_, err = libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("subnet 10.10.0.0/24 is already used on the host or by another config"))
|
||||
})
|
||||
|
||||
It("create macvlan config without subnet", func() {
|
||||
network := types.Network{Driver: "macvlan"}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(Equal("macvlan driver needs at least one subnet specified, DHCP is not yet supported with netavark"))
|
||||
})
|
||||
|
|
@ -832,7 +857,7 @@ var _ = Describe("Config", func() {
|
|||
Internal: true,
|
||||
Subnets: []types.Subnet{{Subnet: n}},
|
||||
}
|
||||
net1, err := libpodNet.NetworkCreate(network)
|
||||
net1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(net1.Internal).To(Equal(true))
|
||||
})
|
||||
|
|
@ -846,7 +871,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(networkConfDir, network1.Name+".json")
|
||||
|
|
@ -875,7 +900,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.ID).ToNot(BeEmpty())
|
||||
|
|
@ -896,7 +921,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
path := filepath.Join(networkConfDir, network1.Name+".json")
|
||||
|
|
@ -927,7 +952,7 @@ var _ = Describe("Config", func() {
|
|||
types.ModeOption: "private",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.Options).To(HaveKeyWithValue("mode", "private"))
|
||||
|
|
@ -945,7 +970,7 @@ var _ = Describe("Config", func() {
|
|||
types.ModeOption: "abc",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(Equal("unknown macvlan mode \"abc\""))
|
||||
})
|
||||
|
|
@ -962,7 +987,7 @@ var _ = Describe("Config", func() {
|
|||
"abc": "123",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(Equal("unsupported macvlan network option abc"))
|
||||
})
|
||||
|
|
@ -979,7 +1004,7 @@ var _ = Describe("Config", func() {
|
|||
types.MTUOption: "9000",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Name).ToNot(BeEmpty())
|
||||
Expect(network1.Options).To(HaveKeyWithValue("mtu", "9000"))
|
||||
|
|
@ -992,7 +1017,7 @@ var _ = Describe("Config", func() {
|
|||
"driver": "none",
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.IPAMOptions).ToNot(BeEmpty())
|
||||
|
|
@ -1020,7 +1045,7 @@ var _ = Describe("Config", func() {
|
|||
{Subnet: n},
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(Equal("none ipam driver is set but subnets are given"))
|
||||
})
|
||||
|
|
@ -1033,7 +1058,7 @@ var _ = Describe("Config", func() {
|
|||
},
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("macvlan"))
|
||||
Expect(network1.DNSEnabled).To(BeFalse())
|
||||
|
|
@ -1057,7 +1082,7 @@ var _ = Describe("Config", func() {
|
|||
types.IsolateOption: val,
|
||||
},
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
Expect(network1.Driver).To(Equal("bridge"))
|
||||
Expect(network1.Options).ToNot(BeNil())
|
||||
|
|
@ -1074,7 +1099,7 @@ var _ = Describe("Config", func() {
|
|||
types.IsolateOption: "123",
|
||||
},
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
})
|
||||
})
|
||||
|
|
@ -1359,7 +1384,7 @@ var _ = Describe("Config", func() {
|
|||
network := types.Network{
|
||||
NetworkInterface: "podman9",
|
||||
}
|
||||
_, err := libpodNet.NetworkCreate(network)
|
||||
_, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err.Error()).To(ContainSubstring("bridge name podman9 already in use"))
|
||||
})
|
||||
|
|
|
|||
|
|
@ -97,17 +97,20 @@ var _ = Describe("IPAM", func() {
|
|||
|
||||
It("ipam try to alloc more ips as in range", func() {
|
||||
s, _ := types.ParseCIDR("10.0.0.1/24")
|
||||
network, err := networkInterface.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
LeaseRange: &types.LeaseRange{
|
||||
StartIP: net.ParseIP("10.0.0.10"),
|
||||
EndIP: net.ParseIP("10.0.0.20"),
|
||||
network, err := networkInterface.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
LeaseRange: &types.LeaseRange{
|
||||
StartIP: net.ParseIP("10.0.0.10"),
|
||||
EndIP: net.ParseIP("10.0.0.20"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName := network.Name
|
||||
|
|
@ -186,16 +189,19 @@ var _ = Describe("IPAM", func() {
|
|||
It("ipam dual stack", func() {
|
||||
s1, _ := types.ParseCIDR("10.0.0.0/26")
|
||||
s2, _ := types.ParseCIDR("fd80::/24")
|
||||
network, err := networkInterface.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s1,
|
||||
},
|
||||
{
|
||||
Subnet: s2,
|
||||
network, err := networkInterface.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s1,
|
||||
},
|
||||
{
|
||||
Subnet: s2,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName := network.Name
|
||||
|
|
@ -240,25 +246,31 @@ var _ = Describe("IPAM", func() {
|
|||
|
||||
It("ipam with two networks", func() {
|
||||
s, _ := types.ParseCIDR("10.0.0.0/24")
|
||||
network, err := networkInterface.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
network, err := networkInterface.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName1 := network.Name
|
||||
|
||||
s, _ = types.ParseCIDR("10.0.1.0/24")
|
||||
network, err = networkInterface.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
network, err = networkInterface.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName2 := network.Name
|
||||
|
|
@ -313,13 +325,16 @@ var _ = Describe("IPAM", func() {
|
|||
|
||||
It("ipam alloc more ips as in subnet", func() {
|
||||
s, _ := types.ParseCIDR("10.0.0.0/26")
|
||||
network, err := networkInterface.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
network, err := networkInterface.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName := network.Name
|
||||
|
|
@ -346,13 +361,16 @@ var _ = Describe("IPAM", func() {
|
|||
|
||||
It("ipam alloc -> dealloc -> alloc", func() {
|
||||
s, _ := types.ParseCIDR("10.0.0.0/27")
|
||||
network, err := networkInterface.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
network, err := networkInterface.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{
|
||||
Subnet: s,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName := network.Name
|
||||
|
|
@ -399,11 +417,14 @@ var _ = Describe("IPAM", func() {
|
|||
})
|
||||
|
||||
It("ipam with none driver should not set ips", func() {
|
||||
network, err := networkInterface.NetworkCreate(types.Network{
|
||||
IPAMOptions: map[string]string{
|
||||
"driver": types.NoneIPAMDriver,
|
||||
network, err := networkInterface.NetworkCreate(
|
||||
types.Network{
|
||||
IPAMOptions: map[string]string{
|
||||
"driver": types.NoneIPAMDriver,
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName := network.Name
|
||||
|
|
|
|||
|
|
@ -311,11 +311,14 @@ var _ = Describe("run netavark", func() {
|
|||
runTest(func() {
|
||||
s1, _ := types.ParseCIDR("10.0.0.1/24")
|
||||
s2, _ := types.ParseCIDR("fd10:88:a::/64")
|
||||
network, err := libpodNet.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{Subnet: s1}, {Subnet: s2},
|
||||
network, err := libpodNet.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{Subnet: s1}, {Subnet: s2},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName := network.Name
|
||||
|
|
@ -391,22 +394,28 @@ var _ = Describe("run netavark", func() {
|
|||
It("setup two networks", func() {
|
||||
runTest(func() {
|
||||
s1, _ := types.ParseCIDR("10.0.0.1/24")
|
||||
network1, err := libpodNet.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{Subnet: s1},
|
||||
network1, err := libpodNet.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{Subnet: s1},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName1 := network1.Name
|
||||
intName1 := "eth0"
|
||||
|
||||
s2, _ := types.ParseCIDR("10.1.0.0/24")
|
||||
network2, err := libpodNet.NetworkCreate(types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{Subnet: s2},
|
||||
network2, err := libpodNet.NetworkCreate(
|
||||
types.Network{
|
||||
Subnets: []types.Subnet{
|
||||
{Subnet: s2},
|
||||
},
|
||||
},
|
||||
})
|
||||
nil,
|
||||
)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
netName2 := network2.Name
|
||||
|
|
@ -707,7 +716,7 @@ var _ = Describe("run netavark", func() {
|
|||
},
|
||||
DNSEnabled: true,
|
||||
}
|
||||
network1, err := libpodNet.NetworkCreate(network)
|
||||
network1, err := libpodNet.NetworkCreate(network, nil)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
intName1 := "eth0"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
type ContainerNetwork interface {
|
||||
// NetworkCreate will take a partial filled Network and fill the
|
||||
// missing fields. It creates the Network and returns the full Network.
|
||||
NetworkCreate(Network) (Network, error)
|
||||
NetworkCreate(Network, *NetworkCreateOptions) (Network, error)
|
||||
// NetworkRemove will remove the Network with the given name or ID.
|
||||
NetworkRemove(nameOrID string) error
|
||||
// NetworkList will return all known Networks. Optionally you can
|
||||
|
|
@ -289,3 +289,8 @@ type TeardownOptions struct {
|
|||
|
||||
// FilterFunc can be passed to NetworkList to filter the networks.
|
||||
type FilterFunc func(Network) bool
|
||||
|
||||
type NetworkCreateOptions struct {
|
||||
// IgnoreIfExists if true, do not fail if the network already exists
|
||||
IgnoreIfExists bool
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue