Revision ffa1c0dc lib/objects.py

b/lib/objects.py
412 412
    if self.logical_id is None and self.physical_id is not None:
413 413
      return
414 414
    if self.dev_type in constants.LDS_DRBD:
415
      pnode, snode, port = self.logical_id
415
      pnode, snode, port, pminor, sminor = self.logical_id
416 416
      if target_node not in (pnode, snode):
417 417
        raise errors.ConfigurationError("DRBD device not knowing node %s" %
418 418
                                        target_node)
......
421 421
      if pnode_ip is None or snode_ip is None:
422 422
        raise errors.ConfigurationError("Can't find primary or secondary node"
423 423
                                        " for %s" % str(self))
424
      p_data = (pnode_ip, port)
425
      s_data = (snode_ip, port)
424 426
      if pnode == target_node:
425
        self.physical_id = (pnode_ip, port,
426
                            snode_ip, port)
427
        self.physical_id = p_data + s_data + (pminor,)
427 428
      else: # it must be secondary, we tested above
428
        self.physical_id = (snode_ip, port,
429
                            pnode_ip, port)
429
        self.physical_id = s_data + p_data + (sminor,)
430 430
    else:
431 431
      self.physical_id = self.logical_id
432 432
    return
......
458 458
      obj.logical_id = tuple(obj.logical_id)
459 459
    if obj.physical_id and isinstance(obj.physical_id, list):
460 460
      obj.physical_id = tuple(obj.physical_id)
461
    if obj.dev_type in constants.LDS_DRBD and len(obj.logical_id) == 3:
462
      # old non-minor based disk type
463
      obj.logical_id += (None, None)
461 464
    return obj
462 465

  
463 466
  def __str__(self):
......
529 532
    def _Helper(primary, sec_nodes, device):
530 533
      """Recursively computes secondary nodes given a top device."""
531 534
      if device.dev_type in constants.LDS_DRBD:
532
        nodea, nodeb, dummy = device.logical_id
535
        nodea, nodeb, dummy = device.logical_id[:3]
533 536
        if nodea == primary:
534 537
          candidate = nodeb
535 538
        else:

Also available in: Unified diff