Revision ba5619c2 lib/masterd/instance.py

b/lib/masterd/instance.py
1270 1270
    try:
1271 1271
      for idx, (dev, (host, port, magic)) in enumerate(zip(instance.disks,
1272 1272
                                                           disk_info)):
1273
        # Decide whether to use IPv6
1274
        ipv6 = netutils.IP6Address.IsValid(host)
1275

  
1273 1276
        opts = objects.ImportExportOptions(key_name=key_name,
1274 1277
                                           ca_pem=dest_ca_pem,
1275
                                           magic=magic)
1278
                                           magic=magic, ipv6=ipv6)
1276 1279

  
1277 1280
        self._feedback_fn("Sending disk %s to %s:%s" % (idx, host, port))
1278 1281
        finished_fn = compat.partial(self._TransferFinished, idx)
......
1404 1407
    self._dresults[idx] = bool(ie.success)
1405 1408

  
1406 1409

  
1407
def RemoteImport(lu, feedback_fn, instance, source_x509_ca, cds, timeouts):
1410
def RemoteImport(lu, feedback_fn, instance, pnode, source_x509_ca,
1411
                 cds, timeouts):
1408 1412
  """Imports an instance from another cluster.
1409 1413

  
1410 1414
  @param lu: Logical unit instance
1411 1415
  @param feedback_fn: Feedback function
1412 1416
  @type instance: L{objects.Instance}
1413 1417
  @param instance: Instance object
1418
  @type pnode: L{objects.Node}
1419
  @param pnode: Primary node of instance as an object
1414 1420
  @type source_x509_ca: OpenSSL.crypto.X509
1415 1421
  @param source_x509_ca: Import source's X509 CA
1416 1422
  @type cds: string
......
1424 1430

  
1425 1431
  magic_base = utils.GenerateSecret(6)
1426 1432

  
1433
  # Decide whether to use IPv6
1434
  ipv6 = netutils.IP6Address.IsValid(pnode.primary_ip)
1435

  
1427 1436
  # Create crypto key
1428 1437
  result = lu.rpc.call_x509_cert_create(instance.primary_node,
1429 1438
                                        constants.RIE_CERT_VALIDITY)
......
1440 1449
      utils.SignX509Certificate(x509_cert, cds, utils.GenerateSecret(8))
1441 1450

  
1442 1451
    cbs = _RemoteImportCb(feedback_fn, cds, signed_x509_cert_pem,
1443
                          len(instance.disks), instance.primary_node)
1452
                          len(instance.disks), pnode.primary_ip)
1444 1453

  
1445 1454
    ieloop = ImportExportLoop(lu)
1446 1455
    try:
......
1450 1459
        # Import daemon options
1451 1460
        opts = objects.ImportExportOptions(key_name=x509_key_name,
1452 1461
                                           ca_pem=source_ca_pem,
1453
                                           magic=magic)
1462
                                           magic=magic, ipv6=ipv6)
1454 1463

  
1455 1464
        ieloop.Add(DiskImport(lu, instance.primary_node, opts, instance,
1456 1465
                              constants.IEIO_SCRIPT, (dev, idx),
......
1554 1563
  if not utils.VerifySha1Hmac(cds, msg, hmac_digest, salt=hmac_salt):
1555 1564
    raise errors.GenericError("HMAC is wrong")
1556 1565

  
1557
  return (netutils.Hostname.GetNormalizedName(host),
1566
  if netutils.IP6Address.IsValid(host) or netutils.IP4Address.IsValid(host):
1567
    destination = host
1568
  else:
1569
    destination = netutils.Hostname.GetNormalizedName(host)
1570

  
1571
  return (destination,
1558 1572
          utils.ValidateServiceName(port),
1559 1573
          magic)
1560 1574

  

Also available in: Unified diff