Support multiple (physical & virtual) network interfaces with the same MAC address on the same machine
Bug #1307513 reported by
Dimiter Naydenov
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
juju-core |
Fix Released
|
Critical
|
Dimiter Naydenov |
Bug Description
In order to support more than one VLAN on the same physical interface and/or multiple virtual interfaces on the same physical one, we need to change state networkInterfaces collection to use a different key. Now it assumes the MAC address is unique, but this is not adequate. We also need to make sure we have ways to ensure that:
1. Only one interface with a given name on a given machine id can exist.
2. Only one interface with a given MAC address and a given network name can exist (the network document contains the VLAN tag which along with the MAC address uniquely identifies an interface regardless of the machine it's on).
Related branches
lp:~dimitern/juju-core/400-lp-1307513-multiple-nics-same-mac
- Juju Engineering: Pending requested
-
Diff: 1776 lines (+456/-256)31 files modifiedenvirons/broker.go (+2/-27)
environs/network/network.go (+37/-0)
juju/testing/instance.go (+4/-3)
provider/azure/environ.go (+2/-1)
provider/common/bootstrap_test.go (+5/-4)
provider/common/mock_test.go (+3/-2)
provider/dummy/environs.go (+13/-11)
provider/ec2/ec2.go (+2/-1)
provider/joyent/environ_instance.go (+2/-1)
provider/local/environ.go (+2/-1)
provider/maas/environ.go (+36/-39)
provider/maas/environ_test.go (+20/-2)
provider/manual/environ.go (+2/-1)
provider/openstack/provider.go (+2/-1)
state/api/params/internal.go (+6/-1)
state/api/provisioner/provisioner_test.go (+31/-11)
state/apiserver/provisioner/provisioner.go (+1/-0)
state/apiserver/provisioner/provisioner_test.go (+34/-10)
state/machine.go (+47/-35)
state/machine_test.go (+43/-29)
state/networkinterfaces.go (+46/-6)
state/networkinterfaces_test.go (+11/-2)
state/networks.go (+22/-3)
state/networks_test.go (+15/-5)
state/open.go (+1/-0)
state/state.go (+19/-25)
state/state_test.go (+27/-21)
worker/provisioner/kvm-broker.go (+2/-1)
worker/provisioner/lxc-broker.go (+2/-1)
worker/provisioner/provisioner_task.go (+6/-4)
worker/provisioner/provisioner_test.go (+11/-8)
Changed in juju-core: | |
importance: | High → Critical |
Changed in juju-core: | |
status: | Triaged → In Progress |
Changed in juju-core: | |
status: | In Progress → Fix Committed |
Changed in juju-core: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
When this lands and we're about to release 1.19.1, we should mention in the release notes that if you deployed anything with specified networks with 1.19.0, you should redeploy your environment because of schema changes to how networks/interfaces are stored internally (confirmed with William).