2017-03-23 12:23:24 |
todd |
bug |
|
|
added bug |
2017-03-27 04:23:56 |
todd |
description |
RELEASE: nova-compute-lxd 13.3.0-0ubuntu1
DESCRIPTION:
In config.py the network_devices object should be returned after the 'for vifaddr in network_info:' loop to ensure the network_devices object includes all network devices.
CURRENT CODE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
PROPOSED CHANGE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
>>>> return network_devices |
RELEASE: nova-compute-lxd 13.3.0-0ubuntu1
DESCRIPTION:
In config.py the network_devices object should be returned after the 'for vifaddr in network_info:' loop to ensure the network_devices object includes all network devices.
CURRENT CODE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
PROPOSED CHANGE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance) |
|
2017-10-20 10:55:32 |
James Page |
nova-lxd (Ubuntu): status |
New |
Confirmed |
|
2017-10-20 10:55:34 |
James Page |
nova-lxd (Ubuntu): importance |
Undecided |
High |
|
2017-10-20 10:55:40 |
James Page |
bug task added |
|
nova-lxd |
|
2017-10-20 10:55:45 |
James Page |
nova-lxd: status |
New |
Triaged |
|
2017-10-20 10:55:47 |
James Page |
nova-lxd: importance |
Undecided |
High |
|
2017-10-20 10:58:02 |
James Page |
nominated for series |
|
Ubuntu Xenial |
|
2017-10-20 10:58:02 |
James Page |
bug task added |
|
nova-lxd (Ubuntu Xenial) |
|
2017-10-20 10:58:08 |
James Page |
nova-lxd (Ubuntu): status |
Confirmed |
Fix Released |
|
2017-10-20 10:58:10 |
James Page |
nova-lxd (Ubuntu Xenial): status |
New |
Triaged |
|
2017-10-20 10:58:13 |
James Page |
nova-lxd (Ubuntu Xenial): importance |
Undecided |
High |
|
2017-10-20 10:58:19 |
James Page |
nova-lxd (Ubuntu Xenial): importance |
High |
Medium |
|
2017-10-20 10:58:21 |
James Page |
nova-lxd: importance |
High |
Medium |
|
2018-05-30 16:51:38 |
Corey Bryant |
summary |
all network devices aren't added to instance profile |
[SRU] all network devices aren't added to instance profile |
|
2018-05-30 16:52:14 |
Corey Bryant |
bug task added |
|
cloud-archive |
|
2018-05-30 16:52:26 |
Corey Bryant |
nominated for series |
|
cloud-archive/mitaka |
|
2018-05-30 16:52:26 |
Corey Bryant |
bug task added |
|
cloud-archive/mitaka |
|
2018-05-30 16:52:43 |
Corey Bryant |
cloud-archive: status |
New |
Fix Released |
|
2018-05-30 16:52:48 |
Corey Bryant |
cloud-archive: importance |
Undecided |
Medium |
|
2018-05-30 16:52:53 |
Corey Bryant |
cloud-archive/mitaka: importance |
Undecided |
Medium |
|
2018-05-30 16:52:57 |
Corey Bryant |
cloud-archive/mitaka: status |
New |
Triaged |
|
2018-05-30 16:54:05 |
Corey Bryant |
description |
RELEASE: nova-compute-lxd 13.3.0-0ubuntu1
DESCRIPTION:
In config.py the network_devices object should be returned after the 'for vifaddr in network_info:' loop to ensure the network_devices object includes all network devices.
CURRENT CODE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
PROPOSED CHANGE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance) |
RELEASE: nova-compute-lxd 13.3.0-0ubuntu1
DESCRIPTION:
In config.py the network_devices object should be returned after the 'for vifaddr in network_info:' loop to ensure the network_devices object includes all network devices.
CURRENT CODE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
PROPOSED CHANGE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
Adding fields for Ubuntu SRU template:
[Impact]
See Description above.
[Test Case]
TBD
[Regression Potential]
TBD |
|
2018-05-30 16:54:22 |
Corey Bryant |
description |
RELEASE: nova-compute-lxd 13.3.0-0ubuntu1
DESCRIPTION:
In config.py the network_devices object should be returned after the 'for vifaddr in network_info:' loop to ensure the network_devices object includes all network devices.
CURRENT CODE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
PROPOSED CHANGE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
Adding fields for Ubuntu SRU template:
[Impact]
See Description above.
[Test Case]
TBD
[Regression Potential]
TBD |
RELEASE: nova-compute-lxd 13.3.0-0ubuntu1
DESCRIPTION:
In config.py the network_devices object should be returned after the 'for vifaddr in network_info:' loop to ensure the network_devices object includes all network devices.
CURRENT CODE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
PROPOSED CHANGE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
------------------------------------------------------------
Adding fields for Ubuntu SRU template:
[Impact]
See Description above.
[Test Case]
TBD
[Regression Potential]
TBD |
|
2018-05-31 14:17:57 |
Alex Kavanagh |
description |
RELEASE: nova-compute-lxd 13.3.0-0ubuntu1
DESCRIPTION:
In config.py the network_devices object should be returned after the 'for vifaddr in network_info:' loop to ensure the network_devices object includes all network devices.
CURRENT CODE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
PROPOSED CHANGE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
------------------------------------------------------------
Adding fields for Ubuntu SRU template:
[Impact]
See Description above.
[Test Case]
TBD
[Regression Potential]
TBD |
RELEASE: nova-compute-lxd 13.3.0-0ubuntu1
DESCRIPTION:
In config.py the network_devices object should be returned after the 'for vifaddr in network_info:' loop to ensure the network_devices object includes all network devices.
CURRENT CODE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
PROPOSED CHANGE (annotated area of interest with >>>>):
def create_network(self, instance_name, instance, network_info):
"""Create the LXD container network on the host
:param instance_name: nova instance name
:param instance: nova instance object
:param network_info: instance network configuration object
:return:network configuration dictionary
"""
LOG.debug('create_network called for instance', instance=instance)
try:
network_devices = {}
if not network_info:
return
for vifaddr in network_info:
cfg = self.vif_driver.get_config(instance, vifaddr)
key = str(cfg['bridge'])
network_devices[key] = {'nictype': 'bridged', 'hwaddr': str(cfg['mac_address']), 'parent': key, 'type': 'nic'}
host_device = self.vif_driver.get_vif_devname(vifaddr)
if host_device:
network_devices[key]['host_name'] = host_device
>>>> return network_devices
except Exception as ex:
with excutils.save_and_reraise_exception():
LOG.error(
_LE('Fail to configure network for %(instance)s: %(ex)s'),
{'instance': instance_name, 'ex': ex}, instance=instance)
------------------------------------------------------------
Adding fields for Ubuntu SRU template:
[Impact]
See Description above.
[Test Case]
Manual test with devstack to ensure no regressions. Manual check to verify that container gets multiple net devices.
[Regression Potential]
Low, as virtually all openstack deployments with containers tend to only have one network device. |
|
2018-05-31 14:23:31 |
Alex Kavanagh |
attachment added |
|
To be applied to stable/mitaka branch https://bugs.launchpad.net/nova-lxd/+bug/1675386/+attachment/5146972/+files/01_bug-1675386-ensure-all-net-devices-added.patch |
|
2018-05-31 14:38:18 |
Alex Kavanagh |
bug |
|
|
added subscriber Alex Kavanagh |
2018-05-31 16:39:26 |
Alex Kavanagh |
attachment added |
|
Updated patch for stable/mitaka https://bugs.launchpad.net/nova-lxd/+bug/1675386/+attachment/5147055/+files/01_bug-1675386-ensure-all-net-devices-added.patch |
|
2018-05-31 17:07:22 |
Corey Bryant |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2018-05-31 23:10:31 |
Brian Murray |
nova-lxd (Ubuntu Xenial): status |
Triaged |
Fix Committed |
|
2018-05-31 23:10:36 |
Brian Murray |
bug |
|
|
added subscriber SRU Verification |
2018-05-31 23:10:40 |
Brian Murray |
tags |
|
verification-needed verification-needed-xenial |
|
2018-06-01 19:27:44 |
Corey Bryant |
cloud-archive/mitaka: status |
Triaged |
Fix Committed |
|
2018-06-01 19:27:46 |
Corey Bryant |
tags |
verification-needed verification-needed-xenial |
verification-mitaka-needed verification-needed verification-needed-xenial |
|
2018-11-13 16:13:03 |
Alex Kavanagh |
tags |
verification-mitaka-needed verification-needed verification-needed-xenial |
verification-done verification-mitaka-done verification-xenial-done |
|
2018-11-14 10:16:52 |
Alex Kavanagh |
tags |
verification-done verification-mitaka-done verification-xenial-done |
verification-mitaka-done verification-needed verification-xenial-done |
|
2018-11-20 16:35:21 |
Brian Murray |
tags |
verification-mitaka-done verification-needed verification-xenial-done |
verification-done-xenial verification-mitaka-done verification-needed |
|
2018-11-20 16:35:38 |
Launchpad Janitor |
nova-lxd (Ubuntu Xenial): status |
Fix Committed |
Fix Released |
|
2018-11-20 16:35:43 |
Brian Murray |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2018-11-20 17:23:49 |
Corey Bryant |
cloud-archive/mitaka: status |
Fix Committed |
Fix Released |
|