diff options
author | Yaguang Tang <yaguang.tang@canonical.com> | 2013-03-05 15:44:27 +0800 |
---|---|---|
committer | Yaguang Tang <yaguang.tang@canonical.com> | 2013-03-12 12:56:36 +0800 |
commit | 76c47c1c3057d5ee479cf1e55b803f5ac9faba1d (patch) | |
tree | 6f22c23ba9e1bf4be3c99655e79b7c4a837871ff | |
parent | ae251b99a3fb6aa99ec8898152d79dfa2c026a92 (diff) | |
download | nova-76c47c1c3057d5ee479cf1e55b803f5ac9faba1d.tar.gz nova-76c47c1c3057d5ee479cf1e55b803f5ac9faba1d.tar.xz nova-76c47c1c3057d5ee479cf1e55b803f5ac9faba1d.zip |
Remove the usage of instance['extra_specs'].
Instance type extra specs is remove from instance dict, so use inst_type['extra_specs']
instead of instance['extra_specs'].
fix bug #1146253
Change-Id: I1d3542e5142f490269607b779daa507f9d7b36e4
-rw-r--r-- | nova/tests/fake_network.py | 3 | ||||
-rwxr-xr-x | nova/virt/libvirt/driver.py | 3 | ||||
-rw-r--r-- | nova/virt/libvirt/vif.py | 18 |
3 files changed, 16 insertions, 8 deletions
diff --git a/nova/tests/fake_network.py b/nova/tests/fake_network.py index 42ce71ded..a51a40f16 100644 --- a/nova/tests/fake_network.py +++ b/nova/tests/fake_network.py @@ -54,7 +54,8 @@ class FakeVIFDriver(object): def setattr(self, key, val): self.__setattr__(key, val) - def get_config(self, instance, network, mapping, image_meta): + def get_config(self, instance, network, mapping, image_meta, + inst_type=None): conf = libvirt_config.LibvirtConfigGuestInterface() for attr, val in conf.__dict__.iteritems(): diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 5e6b0e742..c43965266 100755 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -2244,7 +2244,8 @@ class LibvirtDriver(driver.ComputeDriver): for (network, mapping) in network_info: cfg = self.vif_driver.get_config(instance, network, mapping, - image_meta) + image_meta, + inst_type) guest.add_device(cfg) if CONF.libvirt_type == "qemu" or CONF.libvirt_type == "kvm": diff --git a/nova/virt/libvirt/vif.py b/nova/virt/libvirt/vif.py index 68b0505aa..1fe7385e1 100644 --- a/nova/virt/libvirt/vif.py +++ b/nova/virt/libvirt/vif.py @@ -92,7 +92,8 @@ class LibvirtBaseVIFDriver(object): return mapping['vif_devname'] return ("nic" + mapping['vif_uuid'])[:network_model.NIC_NAME_LEN] - def get_config(self, instance, network, mapping, image_meta): + def get_config(self, instance, network, mapping, image_meta, + inst_type=None): conf = vconfig.LibvirtConfigGuestInterface() # Default to letting libvirt / the hypervisor choose the model model = None @@ -159,13 +160,15 @@ class LibvirtGenericVIFDriver(LibvirtBaseVIFDriver): return True return False - def get_config_bridge(self, instance, network, mapping, image_meta): + def get_config_bridge(self, instance, network, mapping, image_meta, + inst_type=None): """Get VIF configurations for bridge type.""" conf = super(LibvirtGenericVIFDriver, self).get_config(instance, network, mapping, - image_meta) + image_meta, + inst_type) designer.set_vif_host_backend_bridge_config( conf, self.get_bridge_name(network), @@ -175,7 +178,8 @@ class LibvirtGenericVIFDriver(LibvirtBaseVIFDriver): name = "nova-instance-" + instance['name'] + "-" + mac_id if self.get_firewall_required(): conf.filtername = name - designer.set_vif_bandwidth_config(conf, instance) + if inst_type and inst_type.get('extra_specs') is not None: + designer.set_vif_bandwidth_config(conf, inst_type['extra_specs']) return conf @@ -258,7 +262,8 @@ class LibvirtGenericVIFDriver(LibvirtBaseVIFDriver): return conf - def get_config(self, instance, network, mapping, image_meta): + def get_config(self, instance, network, mapping, image_meta, + inst_type=None): vif_type = mapping.get('vif_type') LOG.debug(_("vif_type=%(vif_type)s instance=%(instance)s " @@ -273,7 +278,8 @@ class LibvirtGenericVIFDriver(LibvirtBaseVIFDriver): if vif_type == network_model.VIF_TYPE_BRIDGE: return self.get_config_bridge(instance, network, mapping, - image_meta) + image_meta, + inst_type) elif vif_type == network_model.VIF_TYPE_OVS: return self.get_config_ovs(instance, network, mapping, |