← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1396664] [NEW] nova raises InvalidBDMBootSequence when boot index 0

 

Public bug reported:

I tried to boot server from volume using API. The following 'block_device_mapping_v2' argument
{
  "boot_index": "0",
  "uuid": image_obj,
  "source_type": "image",
  "volume_size": flavor_obj.disk,
  "destination_type": "volume",
  "delete_on_termination": False
}

Nova raised InvalidBDMBootSequence exception. I checked  nova sources and found that _subsequent_list returns None,
when I use boot index 0:

"""
    def _validate_bdm(self, context, instance, instance_type, all_mappings):
        def _subsequent_list(l):
            return all(el + 1 == l[i + 1] for i, el in enumerate(l[:-1]))

        # Make sure that the boot indexes make sense
        boot_indexes = sorted([bdm['boot_index']
                               for bdm in all_mappings
                               if bdm.get('boot_index') is not None
                               and bdm.get('boot_index') >= 0])

        if 0 not in boot_indexes or not _subsequent_list(boot_indexes):
            raise exception.InvalidBDMBootSequence()
"""

Maybe I don't know use case, but when I use boot_index 1, server boots,
but two block devices attached instead of one: /dev/vda and /dev/vdb.
Both point to the same device.


P.S. I use OpenStack Juno and cinder with LVM.

** Affects: nova
     Importance: Undecided
         Status: New

** Description changed:

- I tried to boot server with using API. The following 'block_device_mapping_v2' argument
+ I tried to boot server from volume using API. The following 'block_device_mapping_v2' argument
  {
-   "boot_index": "0",
-   "uuid": image_obj,
-   "source_type": "image",
-   "volume_size": flavor_obj.disk,
-   "destination_type": "volume",
-   "delete_on_termination": False
+   "boot_index": "0",
+   "uuid": image_obj,
+   "source_type": "image",
+   "volume_size": flavor_obj.disk,
+   "destination_type": "volume",
+   "delete_on_termination": False
  }
  
  Nova raised InvalidBDMBootSequence exception. I checked  nova sources and found that _subsequent_list returns None,
  when I use boot index 0:
  
  """
-     def _validate_bdm(self, context, instance, instance_type, all_mappings):
-         def _subsequent_list(l):
-             return all(el + 1 == l[i + 1] for i, el in enumerate(l[:-1]))
-         
-         # Make sure that the boot indexes make sense
-         boot_indexes = sorted([bdm['boot_index']
-                                for bdm in all_mappings
-                                if bdm.get('boot_index') is not None
-                                and bdm.get('boot_index') >= 0])
-             
-         if 0 not in boot_indexes or not _subsequent_list(boot_indexes):
-             raise exception.InvalidBDMBootSequence()
+     def _validate_bdm(self, context, instance, instance_type, all_mappings):
+         def _subsequent_list(l):
+             return all(el + 1 == l[i + 1] for i, el in enumerate(l[:-1]))
+ 
+         # Make sure that the boot indexes make sense
+         boot_indexes = sorted([bdm['boot_index']
+                                for bdm in all_mappings
+                                if bdm.get('boot_index') is not None
+                                and bdm.get('boot_index') >= 0])
+ 
+         if 0 not in boot_indexes or not _subsequent_list(boot_indexes):
+             raise exception.InvalidBDMBootSequence()
  """
  
  Maybe I don't know use case, but when I use boot_index 1, server boots,
  but two block devices attached instead of one: /dev/vda and /dev/vdb.
  Both point to the same device.
+ 
+ 
+ P.S. I use OpenStack Juno and cinder with LVM.

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1396664

Title:
  nova raises InvalidBDMBootSequence when boot index 0

Status in OpenStack Compute (Nova):
  New

Bug description:
  I tried to boot server from volume using API. The following 'block_device_mapping_v2' argument
  {
    "boot_index": "0",
    "uuid": image_obj,
    "source_type": "image",
    "volume_size": flavor_obj.disk,
    "destination_type": "volume",
    "delete_on_termination": False
  }

  Nova raised InvalidBDMBootSequence exception. I checked  nova sources and found that _subsequent_list returns None,
  when I use boot index 0:

  """
      def _validate_bdm(self, context, instance, instance_type, all_mappings):
          def _subsequent_list(l):
              return all(el + 1 == l[i + 1] for i, el in enumerate(l[:-1]))

          # Make sure that the boot indexes make sense
          boot_indexes = sorted([bdm['boot_index']
                                 for bdm in all_mappings
                                 if bdm.get('boot_index') is not None
                                 and bdm.get('boot_index') >= 0])

          if 0 not in boot_indexes or not _subsequent_list(boot_indexes):
              raise exception.InvalidBDMBootSequence()
  """

  Maybe I don't know use case, but when I use boot_index 1, server
  boots, but two block devices attached instead of one: /dev/vda and
  /dev/vdb. Both point to the same device.

  
  P.S. I use OpenStack Juno and cinder with LVM.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1396664/+subscriptions


Follow ups

References