Revision 0c3d9c7c lib/backend.py

b/lib/backend.py
3634 3634

  
3635 3635
    assert isinstance(disk_index, (int, long))
3636 3636

  
3637
    real_disk = _OpenRealBD(disk)
3638

  
3639 3637
    inst_os = OSFromDisk(instance.os)
3640 3638
    env = OSEnvironment(instance, inst_os)
3641 3639

  
......
3645 3643
      script = inst_os.import_script
3646 3644

  
3647 3645
    elif mode == constants.IEM_EXPORT:
3646
      real_disk = _OpenRealBD(disk)
3648 3647
      env["EXPORT_DEVICE"] = real_disk.dev_path
3649 3648
      env["EXPORT_INDEX"] = str(disk_index)
3650 3649
      script = inst_os.export_script
......
3872 3871
  shutil.rmtree(status_dir, ignore_errors=True)
3873 3872

  
3874 3873

  
3875
def _SetPhysicalId(target_node_uuid, nodes_ip, disks):
3876
  """Sets the correct physical ID on all passed disks.
3877

  
3878
  """
3879
  for cf in disks:
3880
    cf.SetPhysicalID(target_node_uuid, nodes_ip)
3874
def _FindDisks(disks):
3875
  """Finds attached L{BlockDev}s for the given disks.
3881 3876

  
3877
  @type disks: list of L{objects.Disk}
3878
  @param disks: the disk objects we need to find
3882 3879

  
3883
def _FindDisks(target_node_uuid, nodes_ip, disks):
3884
  """Sets the physical ID on disks and returns the block devices.
3880
  @return: list of L{BlockDev} objects or C{None} if a given disk
3881
           was not found or was no attached.
3885 3882

  
3886 3883
  """
3887
  _SetPhysicalId(target_node_uuid, nodes_ip, disks)
3888

  
3889 3884
  bdevs = []
3890 3885

  
3891
  for cf in disks:
3892
    rd = _RecursiveFindBD(cf)
3886
  for disk in disks:
3887
    rd = _RecursiveFindBD(disk)
3893 3888
    if rd is None:
3894
      _Fail("Can't find device %s", cf)
3889
      _Fail("Can't find device %s", disk)
3895 3890
    bdevs.append(rd)
3896 3891
  return bdevs
3897 3892

  
3898 3893

  
3899
def DrbdDisconnectNet(target_node_uuid, nodes_ip, disks):
3894
def DrbdDisconnectNet(disks):
3900 3895
  """Disconnects the network on a list of drbd devices.
3901 3896

  
3902 3897
  """
3903
  bdevs = _FindDisks(target_node_uuid, nodes_ip, disks)
3898
  bdevs = _FindDisks(disks)
3904 3899

  
3905 3900
  # disconnect disks
3906 3901
  for rd in bdevs:
......
3911 3906
            err, exc=True)
3912 3907

  
3913 3908

  
3914
def DrbdAttachNet(target_node_uuid, nodes_ip, disks, instance_name,
3915
                  multimaster):
3909
def DrbdAttachNet(disks, instance_name, multimaster):
3916 3910
  """Attaches the network on a list of drbd devices.
3917 3911

  
3918 3912
  """
3919
  bdevs = _FindDisks(target_node_uuid, nodes_ip, disks)
3913
  bdevs = _FindDisks(disks)
3920 3914

  
3921 3915
  if multimaster:
3922 3916
    for idx, rd in enumerate(bdevs):
......
3974 3968
        _Fail("Can't change to primary mode: %s", err)
3975 3969

  
3976 3970

  
3977
def DrbdWaitSync(target_node_uuid, nodes_ip, disks):
3971
def DrbdWaitSync(disks):
3978 3972
  """Wait until DRBDs have synchronized.
3979 3973

  
3980 3974
  """
......
3984 3978
      raise utils.RetryAgain()
3985 3979
    return stats
3986 3980

  
3987
  bdevs = _FindDisks(target_node_uuid, nodes_ip, disks)
3981
  bdevs = _FindDisks(disks)
3988 3982

  
3989 3983
  min_resync = 100
3990 3984
  alldone = True
......
4004 3998
  return (alldone, min_resync)
4005 3999

  
4006 4000

  
4007
def DrbdNeedsActivation(target_node_uuid, nodes_ip, disks):
4001
def DrbdNeedsActivation(disks):
4008 4002
  """Checks which of the passed disks needs activation and returns their UUIDs.
4009 4003

  
4010 4004
  """
4011
  _SetPhysicalId(target_node_uuid, nodes_ip, disks)
4012 4005
  faulty_disks = []
4013 4006

  
4014 4007
  for disk in disks:

Also available in: Unified diff