aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config
diff options
context:
space:
mode:
Diffstat (limited to 'os_net_config')
-rw-r--r--os_net_config/impl_eni.py5
-rw-r--r--os_net_config/impl_ifcfg.py3
-rw-r--r--os_net_config/objects.py3
3 files changed, 7 insertions, 4 deletions
diff --git a/os_net_config/impl_eni.py b/os_net_config/impl_eni.py
index c40a4b0..944893e 100644
--- a/os_net_config/impl_eni.py
+++ b/os_net_config/impl_eni.py
@@ -89,8 +89,9 @@ class ENINetConfig(os_net_config.NetConfig):
for i in interface.members:
data += " %s" % i.name
data += "\n"
- for i in interface.members:
- data += " pre-up ip addr flush dev %s\n" % i.name
+ for mem in interface.members:
+ if isinstance(mem, objects.Interface):
+ data += " pre-up ip addr flush dev %s\n" % mem.name
if interface.primary_interface_name:
mac = utils.interface_mac(interface.primary_interface_name)
data += (" ovs_extra set bridge %s "
diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py
index f603054..ab6bf4d 100644
--- a/os_net_config/impl_ifcfg.py
+++ b/os_net_config/impl_ifcfg.py
@@ -61,7 +61,8 @@ class IfcfgNetConfig(os_net_config.NetConfig):
data += "HOTPLUG=no\n"
if isinstance(base_opt, objects.Vlan):
data += "VLAN=yes\n"
- data += "PHYSDEV=%s\n" % base_opt.device
+ if base_opt.device:
+ data += "PHYSDEV=%s\n" % base_opt.device
if base_opt.ovs_port:
data += "DEVICETYPE=ovs\n"
if base_opt.bridge_name:
diff --git a/os_net_config/objects.py b/os_net_config/objects.py
index b73122c..12b1c99 100644
--- a/os_net_config/objects.py
+++ b/os_net_config/objects.py
@@ -205,7 +205,8 @@ class Vlan(_BaseOpts):
@staticmethod
def from_json(json):
- device = _get_required_field(json, 'device', 'Vlan')
+ # A vlan on an OVS bridge won't require a device (OVS Int Port)
+ device = json.get('device')
vlan_id = _get_required_field(json, 'vlan_id', 'Vlan')
opts = _BaseOpts.base_opts_from_json(json)
return Vlan(device, vlan_id, *opts)