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

todd 1675386 at bugs.launchpad.net
Mon Mar 27 04:23:56 UTC 2017


** Description changed:

  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
+     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
+         :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)
+         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
+     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
+         :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)

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to nova-lxd in Ubuntu.
https://bugs.launchpad.net/bugs/1675386

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

Status in nova-lxd package in Ubuntu:
  New

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)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nova-lxd/+bug/1675386/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list