← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1675386] Re: [SRU] all network devices aren't added to instance profile

 

This bug was fixed in the package nova-lxd - 13.3.0-0ubuntu2~cloud0
---------------

 nova-lxd (13.3.0-0ubuntu2~cloud0) trusty-mitaka; urgency=medium
 .
   * New update for the Ubuntu Cloud Archive.
 .
 nova-lxd (13.3.0-0ubuntu2) xenial; urgency=medium
 .
   * d/p/01_bug-1675386-ensure-all-net-devices-added.diff:
     Returns all network devices to container (LP: #1675386)


** Changed in: cloud-archive/mitaka
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1675386

Title:
  [SRU] all network devices aren't added to instance profile

Status in Ubuntu Cloud Archive:
  Fix Released
Status in Ubuntu Cloud Archive mitaka series:
  Fix Released
Status in nova-lxd:
  Triaged
Status in nova-lxd package in Ubuntu:
  Fix Released
Status in nova-lxd source package in Xenial:
  Fix Released

Bug 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]
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1675386/+subscriptions