Revision fc1dc9d7 lib/backend.py

b/lib/backend.py
722 722
  """
723 723
  children = []
724 724
  if disk.children:
725
    mcn = disk.ChildrenNeeded()
726
    if mcn == -1:
727
      mcn = 0 # max number of Nones allowed
728
    else:
729
      mcn = len(disk.children) - mcn # max number of Nones
725 730
    for chld_disk in disk.children:
726
      children.append(_RecursiveAssembleBD(chld_disk, owner, as_primary))
731
      try:
732
        cdev = _RecursiveAssembleBD(chld_disk, owner, as_primary)
733
      except errors.BlockDeviceError, err:
734
        if children.count(None) > mcn:
735
          raise
736
        cdev = None
737
        logger.Debug("Error in child activation: %s" % str(err))
738
      children.append(cdev)
727 739

  
728 740
  if as_primary or disk.AssembleOnSecondary():
729 741
    r_dev = bdev.AttachOrAssemble(disk.dev_type, disk.physical_id, children)

Also available in: Unified diff