Merge pull request #143 from containernetworking/v0.7

Merge v0.7.1 fix into master
This commit is contained in:
Dan Williams 2018-04-12 09:21:42 -05:00 committed by GitHub
commit bb1e8d10a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 2 deletions

View File

@ -43,8 +43,14 @@ func makeVethPair(name, peer string, mtu int) (netlink.Link, error) {
if err := netlink.LinkAdd(veth); err != nil { if err := netlink.LinkAdd(veth); err != nil {
return nil, err return nil, err
} }
// Re-fetch the link to get its creation-time parameters, e.g. index and mac
veth2, err := netlink.LinkByName(name)
if err != nil {
netlink.LinkDel(veth) // try and clean up the link if possible.
return nil, err
}
return veth, nil return veth2, nil
} }
func peerExists(name string) bool { func peerExists(name string) bool {

View File

@ -257,7 +257,14 @@ func (tester *testerV03x) cmdAddTest(tc testCase) {
Expect(len(result.Interfaces)).To(Equal(3)) Expect(len(result.Interfaces)).To(Equal(3))
Expect(result.Interfaces[0].Name).To(Equal(BRNAME)) Expect(result.Interfaces[0].Name).To(Equal(BRNAME))
Expect(result.Interfaces[0].Mac).To(HaveLen(17))
Expect(result.Interfaces[1].Name).To(HavePrefix("veth"))
Expect(result.Interfaces[1].Mac).To(HaveLen(17))
Expect(result.Interfaces[2].Name).To(Equal(IFNAME)) Expect(result.Interfaces[2].Name).To(Equal(IFNAME))
Expect(result.Interfaces[2].Mac).To(HaveLen(17)) //mac is random
Expect(result.Interfaces[2].Sandbox).To(Equal(tester.targetNS.Path()))
// Make sure bridge link exists // Make sure bridge link exists
link, err := netlink.LinkByName(result.Interfaces[0].Name) link, err := netlink.LinkByName(result.Interfaces[0].Name)

View File

@ -78,12 +78,14 @@ var _ = Describe("ptp Operations", func() {
// Make sure ptp link exists in the target namespace // Make sure ptp link exists in the target namespace
// Then, ping the gateway // Then, ping the gateway
seenIPs := 0 seenIPs := 0
wantMac := ""
err = targetNs.Do(func(ns.NetNS) error { err = targetNs.Do(func(ns.NetNS) error {
defer GinkgoRecover() defer GinkgoRecover()
link, err := netlink.LinkByName(IFNAME) link, err := netlink.LinkByName(IFNAME)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
Expect(link.Attrs().Name).To(Equal(IFNAME)) wantMac = link.Attrs().HardwareAddr.String()
for _, ipc := range res.IPs { for _, ipc := range res.IPs {
if *ipc.Interface != 1 { if *ipc.Interface != 1 {
@ -105,6 +107,17 @@ var _ = Describe("ptp Operations", func() {
Expect(seenIPs).To(Equal(numIPs)) Expect(seenIPs).To(Equal(numIPs))
// make sure the interfaces are correct
Expect(res.Interfaces).To(HaveLen(2))
Expect(res.Interfaces[0].Name).To(HavePrefix("veth"))
Expect(res.Interfaces[0].Mac).To(HaveLen(17))
Expect(res.Interfaces[0].Sandbox).To(BeEmpty())
Expect(res.Interfaces[1].Name).To(Equal(IFNAME))
Expect(res.Interfaces[1].Mac).To(Equal(wantMac))
Expect(res.Interfaces[1].Sandbox).To(Equal(targetNs.Path()))
// Call the plugins with the DEL command, deleting the veth endpoints // Call the plugins with the DEL command, deleting the veth endpoints
err = originalNS.Do(func(ns.NetNS) error { err = originalNS.Do(func(ns.NetNS) error {
defer GinkgoRecover() defer GinkgoRecover()